Back to home page

sPhenix code displayed by LXR

 
 

    


File indexing completed on 2026-10-15 08:20:45

0001 #ifndef PVSVUNCERTAINTY_H
0002 #define PVSVUNCERTAINTY_H
0003 
0004 struct PVSVUncertainty
0005 {
0006   // uncertainty on reco calculation
0007   TH1F* PV_sigma;
0008   TH1F* PV_sigma_xy;
0009   TH1F* SV_sigma;
0010   TH1F* track_1_PV_DCA_sigma;
0011   TH1F* track_2_PV_DCA_sigma;
0012   TH1F* track_1_PV_DCA_xy_sigma;
0013   TH1F* track_2_PV_DCA_xy_sigma;
0014 
0015   PVSVUncertainty(const std::string& mother_name,const std::string& mother_title,int sigma_nBins,float sigma_min,float sigma_max)
0016   {
0017     PV_sigma = new TH1F((mother_name+"_PV_sigma").c_str(),(mother_title+" primary vertex reco uncertainty").c_str(),sigma_nBins,sigma_min,sigma_max);
0018     PV_sigma_xy = new TH1F((mother_name+"_PV_sigma_xy").c_str(),(mother_title+" primary vertex xy reco uncertainty").c_str(),sigma_nBins,sigma_min,sigma_max);
0019     SV_sigma = new TH1F((mother_name+"_SV_sigma").c_str(),(mother_title+" secondary vertex reco uncertainty").c_str(),sigma_nBins,sigma_min,sigma_max);
0020     track_1_PV_DCA_sigma = new TH1F((mother_name+"_track_1_PV_DCA_sigma").c_str(),(mother_title+" track 1 PV DCA reco uncertainty").c_str(),sigma_nBins,sigma_min,sigma_max);
0021     track_2_PV_DCA_sigma = new TH1F((mother_name+"_track_2_PV_DCA_sigma").c_str(),(mother_title+" track 2 PV DCA reco uncertainty").c_str(),sigma_nBins,sigma_min,sigma_max);
0022     track_1_PV_DCA_xy_sigma = new TH1F((mother_name+"_track_1_PV_DCA_xy_sigma").c_str(),(mother_title+" track 1 PV DCA xy reco uncertainty").c_str(),sigma_nBins,sigma_min,sigma_max);
0023     track_2_PV_DCA_xy_sigma = new TH1F((mother_name+"_track_2_PV_DCA_xy_sigma").c_str(),(mother_title+" track 2 PV DCA xy reco uncertainty").c_str(),sigma_nBins,sigma_min,sigma_max);
0024   }
0025 
0026   PVSVUncertainty(TFile* infile, const std::string& mother_name)
0027   {
0028     PV_sigma = (TH1F*)infile->Get((mother_name+"_PV_sigma").c_str());
0029     PV_sigma_xy = (TH1F*)infile->Get((mother_name+"_PV_sigma_xy").c_str());
0030     SV_sigma = (TH1F*)infile->Get((mother_name+"_SV_sigma").c_str());
0031     track_1_PV_DCA_sigma = (TH1F*)infile->Get((mother_name+"_track_1_PV_DCA_sigma").c_str());
0032     track_2_PV_DCA_sigma = (TH1F*)infile->Get((mother_name+"_track_2_PV_DCA_sigma").c_str());
0033     track_1_PV_DCA_xy_sigma = (TH1F*)infile->Get((mother_name+"_track_1_PV_DCA_xy_sigma").c_str());
0034     track_2_PV_DCA_xy_sigma = (TH1F*)infile->Get((mother_name+"_track_2_PV_DCA_xy_sigma").c_str());
0035   }
0036 
0037   ~PVSVUncertainty()
0038   {
0039     delete PV_sigma;
0040     delete PV_sigma_xy;
0041     delete SV_sigma;
0042     delete track_1_PV_DCA_sigma;
0043     delete track_2_PV_DCA_sigma;
0044     delete track_1_PV_DCA_xy_sigma;
0045     delete track_2_PV_DCA_xy_sigma;
0046   }
0047 
0048   PVSVUncertainty(const PVSVUncertainty& c)
0049   {
0050     PV_sigma = new TH1F(*c.PV_sigma);
0051     PV_sigma_xy = new TH1F(*c.PV_sigma_xy);
0052     SV_sigma = new TH1F(*c.SV_sigma);
0053     track_1_PV_DCA_sigma = new TH1F(*c.track_1_PV_DCA_sigma);
0054     track_2_PV_DCA_sigma = new TH1F(*c.track_2_PV_DCA_sigma);
0055     track_1_PV_DCA_xy_sigma = new TH1F(*c.track_1_PV_DCA_xy_sigma);
0056     track_2_PV_DCA_xy_sigma = new TH1F(*c.track_2_PV_DCA_xy_sigma);
0057   }
0058 
0059   void Write()
0060   {
0061     PV_sigma->Write();
0062     PV_sigma_xy->Write();
0063     SV_sigma->Write();
0064     track_1_PV_DCA_sigma->Write();
0065     track_2_PV_DCA_sigma->Write();
0066     track_1_PV_DCA_xy_sigma->Write();
0067     track_2_PV_DCA_xy_sigma->Write();
0068   }
0069 };
0070 
0071 #endif // PVSVUNCERTAINTY_H