File indexing completed on 2026-10-15 08:20:45
0001 #ifndef PVSVUNCERTAINTY_H
0002 #define PVSVUNCERTAINTY_H
0003
0004 struct PVSVUncertainty
0005 {
0006
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