File indexing completed on 2024-04-06 12:31:37
0001 double scale( double energy, double eta = 0 )
0002 {
0003 if (fabs(eta)<1.3){
0004
0005 return energy*113.2;
0006 } else {
0007
0008 if (fabs(eta) <3) {
0009 return 167.2*energy;
0010 }
0011 }
0012
0013 return energy;
0014 }
0015
0016 void makePlots(TString filename, bool fit = false)
0017 {
0018 TFile* file = new TFile(filename);
0019 TTree* tree = (TTree*)file->Get("calomatch");
0020 if (fit) gROOT->LoadMacro("CruijffPdf.cc++");
0021 if (fit) gROOT->LoadMacro("resolution_fit.cxx++");
0022 gROOT->SetStyle("Plain");
0023 gStyle->SetPalette(1);
0024
0025 TCanvas* c = new TCanvas("matches","matches",600,900);
0026
0027
0028
0029
0030 TH1F* h1 = new TH1F("he1","Matched ECAL crystal energy",100,0,5);
0031 h1->SetFillColor(7);
0032 TH1F* h1_1 = new TH1F("he11","Matched ECAL crystal energy, pt<10",100,0,5);
0033 TH1F* h1_2 = new TH1F("he12","Matched ECAL crystal energy, 10<pt<30",100,0,5);
0034 TH1F* h1_3 = new TH1F("he13","Matched ECAL crystal energy, 30<pt",100,0,5);
0035 TH1F* h2 = new TH1F("he2","3x3 ECAL crystal energy",100,0,5);
0036 h2->SetFillColor(7);
0037 TH1F* h3 = new TH1F("he3","5x5 ECAL crystal energy",100,0,5);
0038 h3->SetFillColor(7);
0039
0040 TH1F* h4 = new TH1F("he4","Matched HCAL crystal energy",100,0,25);
0041 h4->SetFillColor(3);
0042 TH1F* h5 = new TH1F("he5","3x3 HCAL crystal energy",100,0,25);
0043 h5->SetFillColor(3);
0044 TH1F* h6 = new TH1F("he6","5x5 HCAL crystal energy",100,0,25);
0045 h6->SetFillColor(3);
0046 tree->Draw("ecalCrossedEnergy>>he1");
0047 tree->Draw("ecal3x3Energy>>he2");
0048 tree->Draw("ecal5x5Energy>>he3");
0049 tree->Draw("hcalCrossedEnergy>>he4");
0050 tree->Draw("hcal3x3Energy>>he5");
0051 tree->Draw("hcal5x5Energy>>he6");
0052
0053
0054
0055 c->Clear();
0056 c->Divide(2,3);
0057 c->cd(1); h1->Draw();
0058 c->cd(2); h4->Draw();
0059 c->cd(3); h2->Draw();
0060 c->cd(4); h5->Draw();
0061 c->cd(5); h3->Draw();
0062 c->cd(6); h6->Draw();
0063 c->Update();
0064 c->Print("calo_match.pdf(","pdf");
0065
0066 std::cout << "NextPage" << std::endl;
0067
0068
0069
0070 c->Clear();
0071 c->Divide(2,3);
0072
0073 c->cd(1);
0074 TH1F* hh1 = new TH1F("hh1","ECAL dEta, energy deposition vs track propagatation",100,-0.1,0.1);
0075 tree->Draw("trkPosAtEcal[][0]-ecalMaxPos[][0]>>hh1");
0076
0077
0078 c->cd(2);
0079 TH1F* hh2 = new TH1F("hh2","ECAL dPhi, energy deposition vs track propagatation",100,-0.1,0.1);
0080 tree->Draw("trkPosAtEcal[][1]-ecalMaxPos[][1]>>hh2");
0081
0082 c->cd(3);
0083 TH1F* hh3 = new TH1F("hh3","HCAL dEta, energy deposition vs track propagatation",100,-0.1,0.1);
0084 tree->Draw("trkPosAtHcal[][0]-hcalMaxPos[][0]>>hh3");
0085
0086 c->cd(4);
0087 TH1F* hh4 = new TH1F("hh4","HCAL dPhi, energy deposition vs track propagatation",100,-0.1,0.1);
0088 tree->Draw("trkPosAtHcal[][1]-hcalMaxPos[][1]>>hh4");
0089
0090 c->cd(5);
0091 TH1F* hh5 = new TH1F("hh5","ECAL crystal Eta for failed matches",100,-3.5,3.5);
0092 tree->Draw("trkPosAtEcal[][0]>>hh5","fabs(ecalCrossedEnergy)<0.001");
0093
0094 c->cd(6);
0095 TH1F* hh6 = new TH1F("hh6","ECAL crystal Phi for failed matches",100,-3.5,3.5);
0096 tree->Draw("trkPosAtEcal[][1]>>hh6","fabs(ecalCrossedEnergy)<0.001");
0097
0098 c->Update();
0099 c->Print("calo_match.pdf","pdf");
0100
0101 std::cout << "NextPage" << std::endl;
0102
0103
0104
0105 c->Clear();
0106 c->Divide(2,3);
0107 c->cd(1);
0108 calomatch->Draw("ecal5x5Energy/ecalTrueEnergy:trkPosAtEcal[0][0]","ecal5x5Energy>0&&ecalTrueEnergy>0&&ecal5x5Energy/ecalTrueEnergy>0&&ecal5x5Energy/ecalTrueEnergy<5&&nTracks==1","colz");
0109 c->cd(2);
0110 calomatch->Draw("ecal5x5Energy/ecalTrueEnergy:trkPosAtEcal[0][1]","ecal5x5Energy>0&&ecalTrueEnergy>0&&ecal5x5Energy/ecalTrueEnergy>0&&ecal5x5Energy/ecalTrueEnergy<5&&nTracks==1","colz");
0111 c->cd(3);
0112 calomatch->Draw("ecal3x3Energy/ecalTrueEnergy:trkPosAtEcal[0][0]","ecal3x3Energy>0&&ecalTrueEnergy>0&&ecal3x3Energy/ecalTrueEnergy>0&&ecal3x3Energy/ecalTrueEnergy<5&&nTracks==1","colz");
0113 c->cd(4);
0114 calomatch->Draw("ecal3x3Energy/ecalTrueEnergy:trkPosAtEcal[0][1]","ecal3x3Energy>0&&ecalTrueEnergy>0&&ecal3x3Energy/ecalTrueEnergy>0&&ecal3x3Energy/ecalTrueEnergy<5&&nTracks==1","colz");
0115 c->cd(5);
0116 calomatch->Draw("ecalCrossedEnergy/ecalTrueEnergy:trkPosAtEcal[0][0]","ecalCrossedEnergy>0&&ecalTrueEnergy>0&&ecalCrossedEnergy/ecalTrueEnergy>0&&ecalCrossedEnergy/ecalTrueEnergy<5&&nTracks==1","colz");
0117 c->cd(6);
0118 calomatch->Draw("ecalCrossedEnergy/ecalTrueEnergy:trkPosAtEcal[0][1]","ecalCrossedEnergy>0&&ecalTrueEnergy>0&&ecalCrossedEnergy/ecalTrueEnergy>0&&ecalCrossedEnergy/ecalTrueEnergy<5&&nTracks==1","colz");
0119
0120 c->Update();
0121 c->Print("calo_match.pdf","pdf");
0122
0123 std::cout << "NextPage" << std::endl;
0124
0125
0126
0127 c->Clear();
0128 c->Divide(2,3);
0129 c->cd(1);
0130 calomatch->Draw("hcal5x5Energy/hcalTrueEnergyCorrected:trkPosAtHcal[0][0]",
0131 "hcalTrueEnergy>0&&hcal5x5Energy/hcalTrueEnergy>0&&hcal5x5Energy/hcalTrueEnergyCorrected<5&&nTracks==1","colz");
0132 std::cout << "NextCD" << std::endl;
0133 c->cd(2);
0134 calomatch->Draw("hcal5x5Energy/hcalTrueEnergyCorrected:trkPosAtHcal[0][1]",
0135 "hcalTrueEnergy>0&&hcal5x5Energy/hcalTrueEnergy>0&&hcal5x5Energy/hcalTrueEnergyCorrected<5&&nTracks==1","colz");
0136 std::cout << "NextCD" << std::endl;
0137 c->cd(3);
0138 calomatch->Draw("hcal3x3Energy/hcalTrueEnergyCorrected:trkPosAtHcal[0][0]",
0139 "hcal3x3Energy>0&&hcalTrueEnergy>0&&hcal3x3Energy/hcalTrueEnergy>0&&hcal3x3Energy/hcalTrueEnergyCorrected<5&&nTracks==1","colz");
0140 std::cout << "NextCD" << std::endl;
0141 c->cd(4);
0142 calomatch->Draw("hcal3x3Energy/hcalTrueEnergyCorrected:trkPosAtHcal[0][1]",
0143 "hcal3x3Energy>0&&hcalTrueEnergy>0&&hcal3x3Energy/hcalTrueEnergy>0&&hcal3x3Energy/hcalTrueEnergyCorrected<5&&nTracks==1","colz");
0144 std::cout << "NextCD" << std::endl;
0145 c->cd(5);
0146 calomatch->Draw("hcalCrossedEnergy/hcalTrueEnergyCorrected:trkPosAtHcal[0][0]",
0147 "hcalCrossedEnergy>0&&hcalTrueEnergy>0&&hcalCrossedEnergy/hcalTrueEnergy>0&&hcalCrossedEnergy/hcalTrueEnergyCorrected<5&&nTracks==1","colz");
0148 std::cout << "NextCD" << std::endl;
0149 c->cd(6);
0150 calomatch->Draw("hcalCrossedEnergy/hcalTrueEnergyCorrected:trkPosAtHcal[0][1]",
0151 "hcalCrossedEnergy>0&&hcalTrueEnergy>0&&hcalCrossedEnergy/hcalTrueEnergy>0&&hcalCrossedEnergy/hcalTrueEnergyCorrected<5&&nTracks==1","colz");
0152
0153 c->Update();
0154
0155 c->Print("calo_match.pdf","pdf");
0156 std::cout << "NextPage" << std::endl;
0157
0158
0159
0160 c->Clear();
0161 c->Divide(2,3);
0162 c->cd(1);
0163 calomatch->Draw("ecal5x5Energy/ecalTrueEnergy>>h11(50,0.2,3)","fabs(trkPosAtEcal[0][0])<1.48");
0164 if (fit) cruijff_fit(h11,"ecal5x5Energy/ecalTrueEnergy Barrel",0.5,1.5,0.1,10,0.1,10);
0165 c->cd(3);
0166 calomatch->Draw("ecal3x3Energy/ecalTrueEnergy>>h21(50,0.2,3)","fabs(trkPosAtEcal[0][0])<1.48");
0167 if (fit) cruijff_fit(h21,"ecal3x3Energy/ecalTrueEnergy Barrel",0.5,1.5,0.1,10,0.1,10);
0168 c->cd(5);
0169 calomatch->Draw("ecalCrossedEnergy/ecalTrueEnergy>>h31(50,0.2,3)","fabs(trkPosAtEcal[0][0])<1.48");
0170 if (fit) cruijff_fit(h31,"ecalCrossedEnergy/ecalTrueEnergy Barrel",0.5,1.5,0.1,10,0.1,10);
0171
0172 c->cd(2);
0173 calomatch->Draw("hcal5x5Energy/hcalTrueEnergyCorrected>>h12(50,0.2,3.2)");
0174 if (fit) cruijff_fit(h12,"HCAL 5x5Energy/expectedEnergy",0.5,1.5,0.1,10,0.1,10);
0175 c->cd(4);
0176 calomatch->Draw("hcal3x3Energy/hcalTrueEnergyCorrected>>h22(50,0.2,3.2)");
0177 if (fit) cruijff_fit(h22,"HCAL 3x3Energy/expectedEnergy",0.5,1.5,0.1,10,0.1,10);
0178 c->cd(6);
0179 calomatch->Draw("hcalCrossedEnergy/hcalTrueEnergyCorrected>>h32(50,0.2,3.2)");
0180 if (fit) cruijff_fit(h32,"HCAL crossedEnergy/expectedEnergy",0.5,1.5,0.1,10,0.1,10);
0181 c->Print("calo_match.pdf)","pdf");
0182
0183 std::cout << "Done" << std::endl;
0184
0185 }