/* * BatClusterErrorModel.cxx * * Created on: Apr 10, 2015 * Author: mberger */ //#include #include "BatClusterErrorModel.h" #include "TpcClusterErrorCalib.h" BatClusterErrorModel::BatClusterErrorModel(TpcClusterErrorCalib* calibrator) { fCalibrator=calibrator; fchi2=0; /* //bat fit parameters data AddParameter("OffsetX",0,0.003,"Offset X"); // 0 AddParameter("OffsetY",0,0.003,"Offset Y"); // 1 0 AddParameter("OffsetZ",0,0.003,"Offset Z"); // 2 AddParameter("DiffusionX",0,0.0001,"Diffusion X"); // 3 AddParameter("DiffusionY",0,0.0001,"Diffusion Y"); // 4 1 AddParameter("DiffusionZ",0,0.0001,"Diffusion Z"); // 5 AddParameter("PadDecayX",0,4,"PadDecay X"); // 6 AddParameter("PadDecayY",0,4,"PadDecay Y"); // 7 2 AddParameter("PadDecayZ",0,4,"PadDecay Z"); // 8 AddParameter("PadDecayAmpX",-0.01,0.001,"PadDecayAmpX"); // 9 AddParameter("PadDecayAmpY",-0.01,0.001,"PadDecayAmpY"); //10 3 AddParameter("PadDecayAmpZ",-0.01,0.001,"PadDecayAmpZ"); //11 AddParameter("AngleX",-0.003,0.003,"Angle X"); //12 AddParameter("AngleY",-0.003,0.003,"Angle Y"); //13 4 AddParameter("AngleZ",-0.003,0.003,"Angle Z"); //14 AddParameter("AngleX2",-0.02,0.02,"Angle X 2"); //15 AddParameter("AngleY2",-0.02,0.02,"Angle Y 2"); //16 5 AddParameter("AngleZ2",-0.02,0.02,"Angle Z 2"); //17 AddParameter("AngleXmixZ",-0.0005,0.0005,"Angle X mix Z"); //18 AddParameter("AngleYmixZ",-0.0005,0.0005,"Angle Y mix Z"); //19 6 AddParameter("AngleZmixZ",-0.0005,0.0005,"Angle Z mix Z"); //20 AddParameter("FitContrib",0,100,"Contribution from fit"); //21 */ //bat fit parameters MC (no amp correction) AddParameter("OffsetX",0,0.001,"Offset X"); // 0 AddParameter("OffsetY",-0.002,0.002,"Offset Y"); // 1 0 AddParameter("OffsetZ",0,0.004,"Offset Z"); // 2 AddParameter("DiffusionX",0,0.00006,"Diffusion X"); // 3 AddParameter("DiffusionY",0,0.00006,"Diffusion Y"); // 4 1 AddParameter("DiffusionZ",0,0.00006,"Diffusion Z"); // 5 AddParameter("PadDecayX",0,8,"PadDecay X"); // 6 AddParameter("PadDecayY",0,8,"PadDecay Y"); // 7 2 AddParameter("PadDecayZ",0,8,"PadDecay Z"); // 8 AddParameter("PadDecayAmpX",-0.06,0.1,"PadDecayAmpX"); // 9 AddParameter("PadDecayAmpY",-0.06,0.1,"PadDecayAmpY"); //10 3 AddParameter("PadDecayAmpZ",-0.06,0.1,"PadDecayAmpZ"); //11 AddParameter("AngleX",-0.002,0.002,"Angle X"); //12 AddParameter("AngleY",-0.002,0.002,"Angle Y"); //13 4 AddParameter("AngleZ",-0.004,0.002,"Angle Z"); //14 AddParameter("AngleX2",0,0.01,"Angle X 2"); //15 AddParameter("AngleY2",0,0.01,"Angle Y 2"); //16 5 AddParameter("AngleZ2",0,0.01,"Angle Z 2"); //17 AddParameter("AngleXmixZ",0,0.0001,"Angle X mix Z"); //18 AddParameter("AngleYmixZ",0,0.0001,"Angle Y mix Z"); //19 6 AddParameter("AngleZmixZ",0,0.0001,"Angle Z mix Z"); //20 AddParameter("FitContrib",-150,150,"Contribution from fit"); //21 /* AddParameter("OffsetX",0,0.001,"Offset X"); // 0 AddParameter("OffsetY",0,0.0005,"Offset Y"); // 1 0 AddParameter("OffsetZ",-0.001,0.001,"Offset Z"); // 2 AddParameter("DiffusionX",0,0.4,"Diffusion X"); // 3 AddParameter("DiffusionY",0,0.4,"Diffusion Y"); // 4 1 AddParameter("DiffusionZ",0,0.6,"Diffusion Z"); // 5 AddParameter("PadDecayX",0,8,"PadDecay X"); // 6 AddParameter("PadDecayY",0,2,"PadDecay Y"); // 7 2 AddParameter("PadDecayZ",0,8,"PadDecay Z"); // 8 AddParameter("PadDecayAmpX",0,0.1,"PadDecayAmpX"); // 9 AddParameter("PadDecayAmpY",0,0.1,"PadDecayAmpY"); //10 3 AddParameter("PadDecayAmpZ",0,0.1,"PadDecayAmpZ"); //11 AddParameter("AngleX",-0.02,0.02,"Angle X"); //12 AddParameter("AngleY",0,0.1,"Angle Y"); //13 4 AddParameter("AngleZ",-0.02,0.02,"Angle Z"); //14 AddParameter("AngleX2",0,0.1,"Angle X 2"); //15 AddParameter("AngleY2",0.,0,"Angle Y 2"); //16 5 AddParameter("AngleZ2",-0.005,0.005,"Angle Z 2"); //17 AddParameter("AngleXmixZ",-0.0005,0.0005,"Angle X mix Z"); //18 AddParameter("AngleYmixZ",0,0.1,"Angle Y mix Z"); //19 6 AddParameter("AngleZmixZ",-0.0002,0.0002,"Angle Z mix Z"); //20 AddParameter("FitContrib",0,1,"Contribution from fit"); //21 */ SetPriorConstantAll(); //start with no prior for all parameters AddObservable("chi2",0,10000,"Chi2"); //0 /* AddObservable("chi2Gaus1",-500,500,"Chi2Gaus1"); //1 AddObservable("chi2Gaus2",-500,500,"Chi2Gaus2"); //2 AddObservable("chi2GausT1",-500,500,"Chi2GausT1"); //3 AddObservable("chi2GausT2",-500,500,"Chi2GausT2"); //4 AddObservable("Mean1",-1,1,"Mean Mean 1"); //5 AddObservable("Mean2",-1,1,"Mean Mean 2"); //6 AddObservable("RMS1",0,2,"Mean RMS 1"); //7 AddObservable("RMS2",0,2,"Mean RMS 2"); //8 AddObservable("MeanT1",-1,1,"Mean Mean T1"); //9 AddObservable("MeanT2",-1,1,"Mean Mean T2"); //10 AddObservable("RMST1",0,2,"Mean RMS T1"); //11 AddObservable("RMST2",0,2,"Mean RMS T2"); //12 AddObservable("RMSRMS1",0,2,"Mean RMS RMS 1"); //13 AddObservable("RMSRMS2",0,2,"Mean RMS RMS 2"); //14 AddObservable("RMSRMST1",0,2,"Mean RMS RMS T1"); //15 AddObservable("RMSRMST2",0,2,"Mean RMS RMS T2"); //16 AddObservable("test_mean1",0,1000,"lltest mean 1"); //9 AddObservable("test_sigma1",0,1000,"lltest sigma 1"); //10 AddObservable("test_n1",0,1000,"tlltest n 1"); //11 AddObservable("test_mean2",0,1000,"lltest mean 2"); //12 AddObservable("test_sigma2",0,1000,"lltest sigma 2"); //13 AddObservable("test_n2",0,1000,"tlltest n 2"); //14 AddObservable("test_meanT1",0,1000,"lltest mean theta 1"); //15 AddObservable("test_sigmaT1",0,1000,"lltest sigma theta 1"); //16 AddObservable("test_nT1",0,1000,"tlltest n theta 1"); //17 AddObservable("test_meanT2",0,1000,"lltest mean theta 2"); //18 AddObservable("test_sigmaT2",0,1000,"lltest sigma theta 2"); //19 AddObservable("test_nT2",0,1000,"tlltest n theta 2 "); //20 */ } BatClusterErrorModel::~BatClusterErrorModel() { // TODO Auto-generated destructor stub } double BatClusterErrorModel::LogLikelihood(std::vector const &pars) { //double chi2=fCalibrator->getChi2(pars); double chi2=fCalibrator->getChi2Res(pars); fchi2=chi2; GetObservable(0).Value(chi2); //return -(chi2/2.); return chi2; } void BatClusterErrorModel::CalculateObservables(const std::vector &pars) { /* double* chi2s=fCalibrator->getChi2s(); GetObservable(1).Value(chi2s[4]); GetObservable(2).Value(chi2s[5]); GetObservable(3).Value(chi2s[8]); GetObservable(4).Value(chi2s[9]); double* Mean_RMS=fCalibrator->getMeanRMS(); for (int i=0;i<12;i++) { GetObservable(i+5).Value(Mean_RMS[i]); } double* obs=fCalibrator->getObservables(); for (int i=0;i<12;i++) { GetObservable(i+17).Value(obs[i]); } */ }