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