9 double locMinNumCountsForRatio = 50.0;
12 TDirectory *
locDirectory = (TDirectory*)gDirectory->FindObjectAny(
"Hist_DetectorMatching");
18 gDirectory->cd(
"TimeBased/BCAL");
33 gStyle->SetPadLeftMargin(0.15);
34 gStyle->SetPadRightMargin(0.12);
40 if(TVirtualPad::Pad() == NULL)
41 locCanvas =
new TCanvas(
"Matching_BCAL",
"Matching_BCAL", 1200, 800);
43 locCanvas = gPad->GetCanvas();
44 locCanvas->Divide(3, 2);
50 if(locHist_BCAL_DeltaPhiVsP != NULL)
52 locHist_BCAL_DeltaPhiVsP->Rebin2D(2, 2);
53 locHist_BCAL_DeltaPhiVsP->GetYaxis()->SetTitleOffset(1.3);
54 locHist_BCAL_DeltaPhiVsP->GetXaxis()->SetTitleSize(0.05);
55 locHist_BCAL_DeltaPhiVsP->GetYaxis()->SetTitleSize(0.05);
56 locHist_BCAL_DeltaPhiVsP->GetXaxis()->SetLabelSize(0.05);
57 locHist_BCAL_DeltaPhiVsP->GetYaxis()->SetLabelSize(0.05);
58 locHist_BCAL_DeltaPhiVsP->Draw(
"COLZ");
59 TF1* locFunc_High =
new TF1(
"BCAL_PhiCut_High",
"[0] + [1]*exp(-1.0*[2]*x)", 0.0, 4.0);
60 locFunc_High->SetParameters(3.0, 12.0, 0.8);
61 locFunc_High->Draw(
"SAME");
62 TF1* locFunc_Low =
new TF1(
"BCAL_PhiCut_Low",
"-1.0*([0] + [1]*exp(-1.0*[2]*x))", 0.0, 4.0);
63 locFunc_Low->SetParameters(3.0, 12.0, 0.8);
64 locFunc_Low->Draw(
"SAME");
71 if(locHist_BCAL_DeltaZVsZ != NULL)
73 locHist_BCAL_DeltaZVsZ->Rebin2D(2, 2);
74 locHist_BCAL_DeltaZVsZ->GetYaxis()->SetTitleOffset(1.3);
75 locHist_BCAL_DeltaZVsZ->GetXaxis()->SetTitleSize(0.05);
76 locHist_BCAL_DeltaZVsZ->GetYaxis()->SetTitleSize(0.05);
77 locHist_BCAL_DeltaZVsZ->GetXaxis()->SetLabelSize(0.05);
78 locHist_BCAL_DeltaZVsZ->GetYaxis()->SetLabelSize(0.05);
79 locHist_BCAL_DeltaZVsZ->Draw(
"COLZ");
80 TF1* locFunc_High =
new TF1(
"BCAL_ZCut_High",
"30.0", 0.0, 450.0);
81 locFunc_High->Draw(
"SAME");
82 TF1* locFunc_Low =
new TF1(
"BCAL_ZCut_Low",
"-30.0", 0.0, 450.0);
83 locFunc_Low->Draw(
"SAME");
90 if((locHist_PVsTheta_HasHit_BCAL != NULL) && (locHist_PVsTheta_NoHit_BCAL != NULL))
92 locHist_PVsTheta_HasHit_BCAL->Rebin2D(4, 10);
93 locHist_PVsTheta_NoHit_BCAL->Rebin2D(4, 10);
97 string locHistName =
string(locFoundHist->GetName()) +
string(
"_Acceptance");
98 string locHistTitle =
string(
"Track / BCAL Match Rate;") +
string(locFoundHist->GetXaxis()->GetTitle()) +
string(
";") +
string(locFoundHist->GetYaxis()->GetTitle());
99 TH2D* locAcceptanceHist =
new TH2D(locHistName.c_str(), locHistTitle.c_str(), locFoundHist->GetNbinsX(), locFoundHist->GetXaxis()->GetXmin(), locFoundHist->GetXaxis()->GetXmax(), locFoundHist->GetNbinsY(), locFoundHist->GetYaxis()->GetXmin(), locFoundHist->GetYaxis()->GetXmax());
100 for(Int_t loc_m = 1; loc_m <= locFoundHist->GetNbinsX(); ++loc_m)
102 for(Int_t loc_j = 1; loc_j <= locFoundHist->GetNbinsY(); ++loc_j)
104 double locNumMissing = locMissingHist->GetBinContent(loc_m, loc_j);
105 double locNumFound = locFoundHist->GetBinContent(loc_m, loc_j);
106 double locTotal = locNumMissing + locNumFound;
107 if(!(locTotal >= locMinNumCountsForRatio))
109 locAcceptanceHist->SetBinContent(loc_m, loc_j, 0.0);
110 locAcceptanceHist->SetBinError(loc_m, loc_j, 1.0/0.0);
114 double locAcceptance = locNumFound/locTotal;
115 if(!(locAcceptance > 0.0))
116 locAcceptance = 0.00001;
117 locAcceptanceHist->SetBinContent(loc_m, loc_j, locAcceptance);
118 double locNumFoundError =
sqrt(locNumFound*(1.0 - locAcceptance));
120 double locAcceptanceError = locNumFoundError/locTotal;
121 locAcceptanceHist->SetBinError(loc_m, loc_j, locAcceptanceError);
124 locAcceptanceHist->SetEntries(locMissingHist->GetEntries() + locFoundHist->GetEntries());
125 locAcceptanceHist->SetStats(kFALSE);
126 locAcceptanceHist->GetYaxis()->SetTitleOffset(1.3);
127 locAcceptanceHist->GetXaxis()->SetTitleSize(0.05);
128 locAcceptanceHist->GetYaxis()->SetTitleSize(0.05);
129 locAcceptanceHist->GetXaxis()->SetLabelSize(0.05);
130 locAcceptanceHist->GetYaxis()->SetLabelSize(0.05);
131 locAcceptanceHist->Draw(
"COLZ");
137 if((locHist_TrackBCALModuleVsZ_HasHit_BCAL != NULL) && (locHist_TrackBCALModuleVsZ_NoHit_BCAL != NULL))
139 locHist_TrackBCALModuleVsZ_HasHit_BCAL->Rebin2D(5, 1);
140 locHist_TrackBCALModuleVsZ_NoHit_BCAL->Rebin2D(5, 1);
144 string locHistName =
string(locFoundHist->GetName()) +
string(
"_Acceptance");
145 string locHistTitle =
string(
"Track / BCAL Match Rate;") +
string(locFoundHist->GetXaxis()->GetTitle()) +
string(
";") +
string(locFoundHist->GetYaxis()->GetTitle());
146 TH2D* locAcceptanceHist =
new TH2D(locHistName.c_str(), locHistTitle.c_str(), locFoundHist->GetNbinsX(), locFoundHist->GetXaxis()->GetXmin(), locFoundHist->GetXaxis()->GetXmax(), locFoundHist->GetNbinsY(), locFoundHist->GetYaxis()->GetXmin(), locFoundHist->GetYaxis()->GetXmax());
147 for(Int_t loc_m = 1; loc_m <= locFoundHist->GetNbinsX(); ++loc_m)
149 for(Int_t loc_j = 1; loc_j <= locFoundHist->GetNbinsY(); ++loc_j)
151 double locNumMissing = locMissingHist->GetBinContent(loc_m, loc_j);
152 double locNumFound = locFoundHist->GetBinContent(loc_m, loc_j);
153 double locTotal = locNumMissing + locNumFound;
154 if(!(locTotal >= locMinNumCountsForRatio))
156 locAcceptanceHist->SetBinContent(loc_m, loc_j, 0.0);
157 locAcceptanceHist->SetBinError(loc_m, loc_j, 1.0/0.0);
161 double locAcceptance = locNumFound/locTotal;
162 if(!(locAcceptance > 0.0))
163 locAcceptance = 0.00001;
164 locAcceptanceHist->SetBinContent(loc_m, loc_j, locAcceptance);
165 double locNumFoundError =
sqrt(locNumFound*(1.0 - locAcceptance));
167 double locAcceptanceError = locNumFoundError/locTotal;
168 locAcceptanceHist->SetBinError(loc_m, loc_j, locAcceptanceError);
171 locAcceptanceHist->SetEntries(locMissingHist->GetEntries() + locFoundHist->GetEntries());
172 locAcceptanceHist->SetStats(kFALSE);
173 locAcceptanceHist->GetYaxis()->SetTitleOffset(1.3);
174 locAcceptanceHist->GetXaxis()->SetTitleSize(0.05);
175 locAcceptanceHist->GetYaxis()->SetTitleSize(0.05);
176 locAcceptanceHist->GetXaxis()->SetLabelSize(0.05);
177 locAcceptanceHist->GetYaxis()->SetLabelSize(0.05);
178 locAcceptanceHist->Draw(
"COLZ");
184 if((locHist_TrackBCALModuleVsZ_HasHit_BCAL != NULL) && (locHist_TrackBCALModuleVsZ_NoHit_BCAL != NULL))
186 TH1D* locHist_TrackBCALModule_HasHit = locHist_TrackBCALModuleVsZ_HasHit_BCAL->ProjectionY(
"BCALModule_HasHit");
187 TH1D* locHist_TrackBCALModule_NoHit = locHist_TrackBCALModuleVsZ_NoHit_BCAL->ProjectionY(
"BCALModule_NoHit");
189 TH1D* loc1DFoundHist = locHist_TrackBCALModule_HasHit;
190 TH1D* loc1DMissingHist = locHist_TrackBCALModule_NoHit;
191 string locHistName =
string(loc1DFoundHist->GetName()) +
string(
"_Acceptance");
192 string locHistTitle =
string(
"Track / BCAL Match Rate;") +
string(loc1DFoundHist->GetXaxis()->GetTitle()) +
string(
";") +
string(loc1DFoundHist->GetYaxis()->GetTitle());
194 TH1D* loc1DAcceptanceHist =
new TH1D(locHistName.c_str(), locHistTitle.c_str(), loc1DFoundHist->GetNbinsX(), loc1DFoundHist->GetXaxis()->GetXmin(), loc1DFoundHist->GetXaxis()->GetXmax());
195 for(Int_t loc_m = 1; loc_m <= loc1DFoundHist->GetNbinsX(); ++loc_m)
197 double locNumMissing = loc1DMissingHist->GetBinContent(loc_m);
198 double locNumFound = loc1DFoundHist->GetBinContent(loc_m);
199 double locTotal = locNumMissing + locNumFound;
200 if(!(locTotal >= locMinNumCountsForRatio))
202 loc1DAcceptanceHist->SetBinContent(loc_m, 0.0);
203 loc1DAcceptanceHist->SetBinError(loc_m, 1.0/0.0);
207 double locAcceptance = locNumFound/locTotal;
208 if(!(locAcceptance > 0.0))
209 locAcceptance = 0.00001;
210 loc1DAcceptanceHist->SetBinContent(loc_m, locAcceptance);
211 double locNumFoundError =
sqrt(locNumFound*(1.0 - locAcceptance));
213 double locAcceptanceError = locNumFoundError/locTotal;
214 loc1DAcceptanceHist->SetBinError(loc_m, locAcceptanceError);
216 loc1DAcceptanceHist->SetEntries(loc1DMissingHist->GetEntries() + loc1DFoundHist->GetEntries());
217 loc1DAcceptanceHist->SetStats(kFALSE);
219 loc1DAcceptanceHist->GetXaxis()->SetTitleSize(0.05);
220 loc1DAcceptanceHist->GetYaxis()->SetTitleSize(0.05);
221 loc1DAcceptanceHist->GetXaxis()->SetLabelSize(0.05);
222 loc1DAcceptanceHist->GetYaxis()->SetLabelSize(0.05);
223 loc1DAcceptanceHist->Draw(
"E1");
229 if((locHist_TrackBCALModuleVsZ_HasHit_BCAL != NULL) && (locHist_TrackBCALModuleVsZ_NoHit_BCAL != NULL))
231 string locHistName =
string(locHist_TrackBCALModuleVsZ_HasHit_BCAL->GetName()) +
string(
"_ProjX");
232 TH1* locFoundHist = locHist_TrackBCALModuleVsZ_HasHit_BCAL->ProjectionX(locHistName.c_str());
234 locHistName =
string(locHist_TrackBCALModuleVsZ_NoHit_BCAL->GetName()) +
string(
"_ProjX");
235 TH1* locMissingHist = locHist_TrackBCALModuleVsZ_NoHit_BCAL->ProjectionX(locHistName.c_str());
237 locHistName =
string(locFoundHist->GetName()) +
string(
"_Acceptance");
238 string locHistTitle =
string(
"Track / BCAL Match Rate;") +
string(locFoundHist->GetXaxis()->GetTitle());
239 TH1D* locAcceptanceHist =
new TH1D(locHistName.c_str(), locHistTitle.c_str(), locFoundHist->GetNbinsX(), locFoundHist->GetXaxis()->GetXmin(), locFoundHist->GetXaxis()->GetXmax());
240 for(Int_t loc_m = 1; loc_m <= locFoundHist->GetNbinsX(); ++loc_m)
242 double locNumMissing = locMissingHist->GetBinContent(loc_m);
243 double locNumFound = locFoundHist->GetBinContent(loc_m);
244 double locTotal = locNumMissing + locNumFound;
245 if(!(locTotal >= locMinNumCountsForRatio))
247 locAcceptanceHist->SetBinContent(loc_m, 0.0);
248 locAcceptanceHist->SetBinError(loc_m, 0.0);
252 double locAcceptance = locNumFound/locTotal;
253 locAcceptanceHist->SetBinContent(loc_m, locAcceptance);
254 double locNumFoundError =
sqrt(locNumFound*(1.0 - locAcceptance));
256 double locAcceptanceError = locNumFoundError/locTotal;
257 locAcceptanceHist->SetBinError(loc_m, locAcceptanceError);
259 locAcceptanceHist->SetEntries(locMissingHist->GetEntries() + locFoundHist->GetEntries());
260 locAcceptanceHist->SetStats(kFALSE);
261 locAcceptanceHist->GetXaxis()->SetTitleSize(0.05);
262 locAcceptanceHist->GetYaxis()->SetTitleSize(0.05);
263 locAcceptanceHist->GetXaxis()->SetLabelSize(0.05);
264 locAcceptanceHist->GetYaxis()->SetLabelSize(0.05);
265 locAcceptanceHist->Draw(
"E1");
269 gStyle->SetPadLeftMargin(locLeftPadMargin);
270 gStyle->SetPadRightMargin(locRightPadMargin);
271 gStyle->SetPadTopMargin(locTopPadMargin);
272 gStyle->SetPadBottomMargin(locBottomPadMargin);
TH2I * locHist_PVsTheta_NoHit_BCAL
TH2I * locHist_TrackBCALModuleVsZ_NoHit_BCAL
TH2I * locHist_PVsTheta_HasHit_BCAL
TH2I * locHist_BCAL_DeltaPhiVsP
double locBottomPadMargin
TDirectory * locDirectory
TH2I * locHist_BCAL_DeltaZVsZ
TH2I * locHist_TrackBCALModuleVsZ_HasHit_BCAL