7 #ifndef Tomato_OXFACTORYOFCalculators_HXX     8 #define Tomato_OXFACTORYOFCalculators_HXX    12 #ifdef USE_PRIVATE_NR2    13 #include "OxCalculatorT1ShmolliOriginal.h"    14 #include "OxCalculatorT2.h"    15 #include "OxCalculatorT2Truncation.h"    16 #include "OxCalculatorT2TruncationNoise.h"    17 #include "OxCalculatorT2Linear.h"    25     template < 
typename TYPE >
    27     FactoryOfCalculators<TYPE>
    28     ::newByFactory(TomatoOptions<TYPE> *opts){
    29         Calculator<TYPE> *calculator = 0; 
    30         switch (opts->parameter_to_map){
    32                 calculator = 
new CalculatorT1WithSignCheck<TYPE>();
    36                 calculator = 
new CalculatorT1Shmolli<TYPE>();
    39 #ifdef USE_PRIVATE_NR2    40             case T1_SHMOLLI_original: {
    41                 calculator = 
new CalculatorT1ShmolliOriginal<TYPE>();
    45                 calculator = 
new CalculatorT2<TYPE>();
    49                 calculator = 
new CalculatorT2Truncation<TYPE>();
    52             case T2_truncation_noise: {
    53                 calculator = 
new CalculatorT2TruncationNoise<TYPE>();
    57                 calculator = 
new CalculatorT2Linear<TYPE>();
    62                 throw std::runtime_error(
"parameter_to_map not available");
    66         calculator->setMeanCutOff(opts->mean_cut_off);
    71     template < 
typename TYPE >
    73     FactoryOfCalculators<TYPE>
    74     ::disp(
int parameter_to_map){
    76         if (parameter_to_map >= 0) {
    77             printf(
"%-28s%-22s", 
" parameter_to_map: ", calculatorsTypeNames[parameter_to_map]);
    80         printf(
"options: [ ");
    82         for (
int i = 0; i < lastCalculatorType+1; i++){
    83             if(calculatorsAvailability[i]){
    84                 printf(
"%s ", calculatorsTypeNames[i]);
    93 #endif //Tomato_OXFACTORYOFCalculators_HXX 
Definition: OxCalculator.h:19