MTFitSetup.h

Go to the documentation of this file.
00001 #ifndef MTFITSETUP_H_
00002 #define MTFITSETUP_H_
00003 #include "C1DMTObjective.h"
00004 #include "Adaptors.h"
00005 namespace gplib
00006   {
00007     template<typename tConfObject>
00008     void SetupMTFitParameters(const tConfObject &Configuration,
00009         C1DMTObjective &Objective)
00010       {
00011         if (Configuration.mode == "xy")
00012           {
00013             if (Configuration.mtfit == "phase")
00014               Objective.AppendFitParameters(&MTTensor::GetPhixy,
00015                   &MTTensor::GetdPhixy, Configuration.phaseerror);
00016             if (Configuration.mtfit == "appres")
00017               Objective.AppendFitParameters(&MTTensor::GetRhoxy,
00018                   &MTTensor::GetdRhoxy, Configuration.reserror);
00019             if (Configuration.mtfit == "resphase")
00020               {
00021                 Objective.AppendFitParameters(&MTTensor::GetRhoxy,
00022                     &MTTensor::GetdRhoxy, Configuration.reserror);
00023                 Objective.AppendFitParameters(&MTTensor::GetPhixy,
00024                     &MTTensor::GetdPhixy, Configuration.phaseerror);
00025               }
00026           }
00027         else
00028           {
00029             if (Configuration.mtfit == "phase")
00030               Objective.AppendFitParameters(&MTTensor::GetPhiyx,
00031                   &MTTensor::GetdPhiyx, Configuration.phaseerror);
00032             if (Configuration.mtfit == "appres")
00033               Objective.AppendFitParameters(&MTTensor::GetRhoyx,
00034                   &MTTensor::GetdRhoyx, Configuration.reserror);
00035             if (Configuration.mtfit == "resphase")
00036               {
00037                 Objective.AppendFitParameters(&MTTensor::GetRhoyx,
00038                     &MTTensor::GetdRhoyx, Configuration.reserror);
00039                 Objective.AppendFitParameters(&MTTensor::GetPhiyx,
00040                     &MTTensor::GetdPhiyx, Configuration.phaseerror);
00041               }
00042           }
00043         if (Configuration.mtfit == "berd")
00044           {
00045             Objective.AppendFitParameters(boost::bind(gplib::real(),
00046                 boost::bind(&MTTensor::GetBerd, _1)), &MTTensor::GetdBerd,
00047                 Configuration.tensorerror);
00048             Objective.AppendFitParameters(boost::bind(gplib::imag(),
00049                 boost::bind(&MTTensor::GetBerd, _1)), &MTTensor::GetdBerd,
00050                 Configuration.tensorerror);
00051           }
00052         if (Configuration.mtfit == "det")
00053           {
00054             Objective.AppendFitParameters(boost::bind(gplib::real(),
00055                 boost::bind(&MTTensor::GetDet, _1)), &MTTensor::GetdDet,
00056                 Configuration.tensorerror);
00057             Objective.AppendFitParameters(boost::bind(gplib::imag(),
00058                 boost::bind(&MTTensor::GetDet, _1)), &MTTensor::GetdDet,
00059                 Configuration.tensorerror);
00060           }
00061         if (Configuration.mtfit == "all")
00062           {
00063             Objective.AppendFitParameters(&MTTensor::GetRhoxx,
00064                 &MTTensor::GetdRhoxx, Configuration.reserror);
00065             Objective.AppendFitParameters(&MTTensor::GetPhixx,
00066                 &MTTensor::GetdPhixx, Configuration.phaseerror);
00067             Objective.AppendFitParameters(&MTTensor::GetRhoxy,
00068                 &MTTensor::GetdRhoxy, Configuration.reserror);
00069             Objective.AppendFitParameters(&MTTensor::GetPhixy,
00070                 &MTTensor::GetdPhixy, Configuration.phaseerror);
00071             Objective.AppendFitParameters(&MTTensor::GetRhoyx,
00072                 &MTTensor::GetdRhoyx, Configuration.reserror);
00073             Objective.AppendFitParameters(&MTTensor::GetPhiyx,
00074                 &MTTensor::GetdPhiyx, Configuration.phaseerror);
00075             Objective.AppendFitParameters(&MTTensor::GetRhoyy,
00076                 &MTTensor::GetdRhoyy, Configuration.reserror);
00077             Objective.AppendFitParameters(&MTTensor::GetPhiyy,
00078                 &MTTensor::GetdPhiyy, Configuration.phaseerror);
00079           }
00080         if (Configuration.mtfit == "allphase")
00081           {
00082             Objective.AppendFitParameters(&MTTensor::GetPhixx,
00083                 &MTTensor::GetdPhixx, Configuration.phaseerror);
00084             Objective.AppendFitParameters(&MTTensor::GetPhixy,
00085                 &MTTensor::GetdPhixy, Configuration.phaseerror);
00086             Objective.AppendFitParameters(&MTTensor::GetPhiyx,
00087                 &MTTensor::GetdPhiyx, Configuration.phaseerror);
00088             Objective.AppendFitParameters(&MTTensor::GetPhiyy,
00089                 &MTTensor::GetdPhiyy, Configuration.phaseerror);
00090           }
00091         if (Configuration.mtfit == "offdphase")
00092           {
00093             Objective.AppendFitParameters(&MTTensor::GetPhixy,
00094                 &MTTensor::GetdPhixy, Configuration.phaseerror);
00095             Objective.AppendFitParameters(&MTTensor::GetPhiyx,
00096                 &MTTensor::GetdPhiyx, Configuration.phaseerror);
00097             Objective.AppendFitParameters(&MTTensor::GetAlpha,
00098                 &MTTensor::GetdZero, Configuration.phaseerror);
00099           }
00100         if (Configuration.mtfit == "ptensor")
00101           {
00102             Objective.AppendFitParameters(&MTTensor::GetPhi11,
00103                 &MTTensor::GetdZero, Configuration.phaseerror);
00104             Objective.AppendFitParameters(&MTTensor::GetPhi12,
00105                 &MTTensor::GetdZero, Configuration.phaseerror);
00106             Objective.AppendFitParameters(&MTTensor::GetPhi21,
00107                 &MTTensor::GetdZero, Configuration.phaseerror);
00108             Objective.AppendFitParameters(&MTTensor::GetPhi22,
00109                 &MTTensor::GetdZero, Configuration.phaseerror);
00110           }
00111         if (Configuration.mtfit == "ptellip")
00112           {
00113             Objective.AppendFitParameters(&MTTensor::GetPhiMax,
00114                 &MTTensor::GetdZero, Configuration.phaseerror);
00115             Objective.AppendFitParameters(&MTTensor::GetPhiMin,
00116                 &MTTensor::GetdZero, Configuration.phaseerror);
00117             Objective.AppendFitParameters(&MTTensor::GetAlpha_phi,
00118                 &MTTensor::GetdZero, Configuration.phaseerror);
00119             Objective.AppendFitParameters(&MTTensor::GetBeta_phi,
00120                 &MTTensor::GetdZero, Configuration.phaseerror);
00121           }
00122       }
00123   }
00124 #endif /*MTFITSETUP_H_*/

Generated on Tue Nov 3 13:24:14 2009 for GPLIB++ by  doxygen 1.5.8