![]() |
![]() |
#include <Validation/DTRecHits/plugins/Histograms.h>
Public Member Functions | |
void | ComputeEfficiency () |
void | Fill (float etaSimSegm, float phiSimSegm, float xSimSegm, float ySimSegm, float alphaSimSegm, float betaSimSegm, bool fillRecHit) |
HEff4DHit (TString name_, TFile *file) | |
HEff4DHit (std::string name_) | |
void | Write () |
~HEff4DHit () | |
Public Attributes | |
TH1F * | hAlphaRecHit |
TH1F * | hAlphaSimSegm |
TH1F * | hBetaRecHit |
TH1F * | hBetaSimSegm |
TH1F * | hEffVsAlpha |
TH1F * | hEffVsBeta |
TH1F * | hEffVsEta |
TH1F * | hEffVsPhi |
TH1F * | hEffVsX |
TH1F * | hEffVsY |
TH1F * | hEtaRecHit |
TH1F * | hEtaSimSegm |
TH1F * | hPhiRecHit |
TH1F * | hPhiSimSegm |
TH1F * | hXRecHit |
TH1F * | hXSimSegm |
TH1F * | hYRecHit |
TH1F * | hYSimSegm |
TString | name |
Definition at line 1076 of file Histograms.h.
HEff4DHit::HEff4DHit | ( | std::string | name_ | ) | [inline] |
Definition at line 1078 of file Histograms.h.
References hAlphaRecHit, hAlphaSimSegm, hBetaRecHit, hBetaSimSegm, hEffVsAlpha, hEffVsBeta, hEffVsEta, hEffVsPhi, hEffVsX, hEffVsY, hEtaRecHit, hEtaSimSegm, hPhiRecHit, hPhiSimSegm, hXRecHit, hXSimSegm, hYRecHit, hYSimSegm, N, name, and Pi.
01078 { 01079 TString N = name_.c_str(); 01080 name=N; 01081 01082 hEtaSimSegm = new TH1F("4D_"+N+"_hEtaSimSegm", "Eta of SimHit segment", 100, -1.5, 1.5); 01083 hEtaRecHit = new TH1F("4D_"+N+"_hEtaRecHit", "Eta distribution of SimHit segment with 4D RecHit", 01084 100, -1.5, 1.5); 01085 hEffVsEta = 0; 01086 01087 hPhiSimSegm = new TH1F("4D_"+N+"_hPhiSimSegm", "Phi of SimHit segment", 01088 100, -TMath::Pi(),TMath::Pi()); 01089 hPhiRecHit = new TH1F("4D_"+N+"_hPhiRecHit", "Phi distribution of SimHit segment with 4D RecHit", 01090 100, -TMath::Pi(),TMath::Pi()); 01091 hEffVsPhi = 0; 01092 01093 01094 hXSimSegm = new TH1F("4D_"+N+"_hXSimSegm", "X position in Chamber of SimHit segment (cm)", 01095 100, -200, 200); 01096 hXRecHit = new TH1F("4D_"+N+"_hXRecHit", "X position in Chamber of SimHit segment with 4D RecHit (cm)", 01097 100, -200, 200); 01098 hEffVsX = 0; 01099 01100 hYSimSegm = new TH1F("4D_"+N+"_hYSimSegm", "Y position in Chamber of SimHit segment (cm)", 01101 100, -200, 200); 01102 hYRecHit = new TH1F("4D_"+N+"_hYRecHit", "Y position in Chamber of SimHit segment with 4D RecHit (cm)", 01103 100, -200, 200); 01104 hEffVsY = 0; 01105 01106 hAlphaSimSegm = new TH1F("4D_"+N+"_hAlphaSimSegm", "Alpha of SimHit segment (rad)", 01107 100, -1.5, 1.5); 01108 hAlphaRecHit = new TH1F("4D_"+N+"_hAlphaRecHit", "Alpha of SimHit segment with 4D RecHit (rad)", 01109 100, -1.5, 1.5); 01110 hEffVsAlpha = 0; 01111 01112 hBetaSimSegm = new TH1F("4D_"+N+"_hBetaSimSegm", "Beta of SimHit segment (rad)", 01113 100, -2, 2); 01114 hBetaRecHit = new TH1F("4D_"+N+"_hBetaRecHit", "Beta of SimHit segment with 4D RecHit (rad)", 01115 100, -2, 2); 01116 hEffVsBeta = 0; 01117 01118 }
HEff4DHit::HEff4DHit | ( | TString | name_, | |
TFile * | file | |||
) | [inline] |
Definition at line 1120 of file Histograms.h.
References hAlphaRecHit, hAlphaSimSegm, hBetaRecHit, hBetaSimSegm, hEffVsAlpha, hEffVsBeta, hEffVsEta, hEffVsPhi, hEffVsX, hEffVsY, hEtaRecHit, hEtaSimSegm, hPhiRecHit, hPhiSimSegm, hXRecHit, hXSimSegm, hYRecHit, hYSimSegm, and name.
01120 { 01121 name=name_; 01122 hEtaSimSegm = (TH1F *) file->Get("4D_"+name+"_hEtaSimSegm"); 01123 hEtaRecHit = (TH1F *) file->Get("4D_"+name+"_hEtaRecHit"); 01124 hEffVsEta = (TH1F *) file->Get("4D_"+name+"_hEffVsEta"); 01125 01126 hPhiSimSegm = (TH1F *) file->Get("4D_"+name+"_hPhiSimSegm"); 01127 hPhiRecHit = (TH1F *) file->Get("4D_"+name+"_hPhiRecHit"); 01128 hEffVsPhi = (TH1F *) file->Get("4D_"+name+"_hEffVsPhi"); 01129 01130 hXSimSegm = (TH1F *) file->Get("4D_"+name+"_hXSimSegm"); 01131 hXRecHit = (TH1F *) file->Get("4D_"+name+"_hXRecHit"); 01132 hEffVsX = (TH1F *) file->Get("4D_"+name+"_hEffVsX"); 01133 01134 hYSimSegm = (TH1F *) file->Get("4D_"+name+"_hYSimSegm"); 01135 hYRecHit = (TH1F *) file->Get("4D_"+name+"_hYRecHit"); 01136 hEffVsY = (TH1F *) file->Get("4D_"+name+"_hEffVsY"); 01137 01138 hAlphaSimSegm = (TH1F *) file->Get("4D_"+name+"_hAlphaSimSegm"); 01139 hAlphaRecHit = (TH1F *) file->Get("4D_"+name+"_hAlphaRecHit"); 01140 hEffVsAlpha = (TH1F *) file->Get("4D_"+name+"_hEffVsAlpha"); 01141 01142 hBetaSimSegm = (TH1F *) file->Get("4D_"+name+"_hBetaSimSegm"); 01143 hBetaRecHit = (TH1F *) file->Get("4D_"+name+"_hBetaRecHit"); 01144 hEffVsBeta = (TH1F *) file->Get("4D_"+name+"_hEffVsBeta"); 01145 }
HEff4DHit::~HEff4DHit | ( | ) | [inline] |
Definition at line 1148 of file Histograms.h.
01148 { 01149 01150 /*delete hEtaSimSegm; 01151 delete hEtaRecHit; 01152 delete hEffVsEta; 01153 delete hPhiSimSegm; 01154 delete hPhiRecHit; 01155 delete hEffVsPhi; 01156 delete hXSimSegm; 01157 delete hXRecHit; 01158 delete hEffVsX; 01159 delete hYSimSegm; 01160 delete hYRecHit; 01161 delete hEffVsY; 01162 delete hAlphaSimSegm; 01163 delete hAlphaRecHit; 01164 delete hEffVsAlpha; 01165 delete hBetaSimSegm; 01166 delete hBetaRecHit; 01167 delete hEffVsBeta;*/ 01168 }
void HEff4DHit::ComputeEfficiency | ( | ) | [inline] |
Definition at line 1197 of file Histograms.h.
References error, hAlphaRecHit, hAlphaSimSegm, hBetaRecHit, hBetaSimSegm, hEffVsAlpha, hEffVsBeta, hEffVsEta, hEffVsPhi, hEffVsX, hEffVsY, hEtaRecHit, hEtaSimSegm, hPhiRecHit, hPhiSimSegm, hXRecHit, hXSimSegm, hYRecHit, hYSimSegm, name, and funct::sqrt().
Referenced by DTSegment4DQuality::endJob().
01197 { 01198 01199 hEffVsEta = (TH1F *) hEtaRecHit->Clone(); 01200 hEffVsEta->SetName("4D_"+name+"_hEffVsEta"); 01201 hEffVsEta->SetTitle("4D RecHit Efficiency as a function of Eta"); 01202 hEffVsEta->Divide(hEtaSimSegm); 01203 // Set the error accordingly to binomial statistics 01204 int nBinsEta = hEffVsEta->GetNbinsX(); 01205 for(int bin = 1; bin <= nBinsEta; bin++) { 01206 float nSimHit = hEtaSimSegm->GetBinContent(bin); 01207 float eff = hEffVsEta->GetBinContent(bin); 01208 float error = 0; 01209 if(nSimHit != 0) { 01210 error = sqrt(eff*(1-eff)/nSimHit); 01211 } 01212 hEffVsEta->SetBinError(bin, error); 01213 } 01214 01215 hEffVsPhi = (TH1F *) hPhiRecHit->Clone(); 01216 hEffVsPhi->SetName("4D_"+name+"_hEffVsPhi"); 01217 hEffVsPhi->SetTitle("4D RecHit Efficiency as a function of Phi"); 01218 hEffVsPhi->Divide(hPhiSimSegm); 01219 // Set the error accordingly to binomial statistics 01220 int nBinsPhi = hEffVsPhi->GetNbinsX(); 01221 for(int bin = 1; bin <= nBinsPhi; bin++) { 01222 float nSimHit = hPhiSimSegm->GetBinContent(bin); 01223 float eff = hEffVsPhi->GetBinContent(bin); 01224 float error = 0; 01225 if(nSimHit != 0) { 01226 error = sqrt(eff*(1-eff)/nSimHit); 01227 } 01228 hEffVsPhi->SetBinError(bin, error); 01229 } 01230 01231 hEffVsX = (TH1F *) hXRecHit->Clone(); 01232 hEffVsX->SetName("4D_"+name+"_hEffVsX"); 01233 hEffVsX->SetTitle("4D RecHit Efficiency as a function of x position in Chamber"); 01234 hEffVsX->Divide(hXSimSegm); 01235 // Set the error accordingly to binomial statistics 01236 int nBinsX = hEffVsX->GetNbinsX(); 01237 for(int bin = 1; bin <= nBinsX; bin++) { 01238 float nSimHit = hXSimSegm->GetBinContent(bin); 01239 float eff = hEffVsX->GetBinContent(bin); 01240 float error = 0; 01241 if(nSimHit != 0) { 01242 error = sqrt(eff*(1-eff)/nSimHit); 01243 } 01244 hEffVsX->SetBinError(bin, error); 01245 } 01246 01247 01248 hEffVsY = (TH1F *) hYRecHit->Clone(); 01249 hEffVsY->SetName("4D_"+name+"_hEffVsY"); 01250 hEffVsY->SetTitle("4D RecHit Efficiency as a function of y position in Chamber"); 01251 hEffVsY->Divide(hYSimSegm); 01252 // Set the error accordingly to binomial statistics 01253 int nBinsY = hEffVsY->GetNbinsX(); 01254 for(int bin = 1; bin <= nBinsY; bin++) { 01255 float nSimHit = hYSimSegm->GetBinContent(bin); 01256 float eff = hEffVsY->GetBinContent(bin); 01257 float error = 0; 01258 if(nSimHit != 0) { 01259 error = sqrt(eff*(1-eff)/nSimHit); 01260 } 01261 hEffVsY->SetBinError(bin, error); 01262 } 01263 01264 hEffVsAlpha = (TH1F *) hAlphaRecHit->Clone(); 01265 hEffVsAlpha->SetName("4D_"+name+"_hEffVsAlpha"); 01266 hEffVsAlpha->SetTitle("4D RecHit Efficiency as a function of alpha"); 01267 hEffVsAlpha->Divide(hAlphaSimSegm); 01268 // Set the error accordingly to binomial statistics 01269 int nBinsAlpha = hEffVsAlpha->GetNbinsX(); 01270 for(int bin = 1; bin <= nBinsAlpha; bin++) { 01271 float nSimHit = hAlphaSimSegm->GetBinContent(bin); 01272 float eff = hEffVsAlpha->GetBinContent(bin); 01273 float error = 0; 01274 if(nSimHit != 0) { 01275 error = sqrt(eff*(1-eff)/nSimHit); 01276 } 01277 hEffVsAlpha->SetBinError(bin, error); 01278 } 01279 01280 01281 hEffVsBeta = (TH1F *) hBetaRecHit->Clone(); 01282 hEffVsBeta->SetName("4D_"+name+"_hEffVsBeta"); 01283 hEffVsBeta->SetTitle("4D RecHit Efficiency as a function of beta"); 01284 hEffVsBeta->Divide(hBetaSimSegm); 01285 // Set the error accordingly to binomial statistics 01286 int nBinsBeta = hEffVsBeta->GetNbinsX(); 01287 for(int bin = 1; bin <= nBinsBeta; bin++) { 01288 float nSimHit = hBetaSimSegm->GetBinContent(bin); 01289 float eff = hEffVsBeta->GetBinContent(bin); 01290 float error = 0; 01291 if(nSimHit != 0) { 01292 error = sqrt(eff*(1-eff)/nSimHit); 01293 } 01294 hEffVsBeta->SetBinError(bin, error); 01295 } 01296 }
void HEff4DHit::Fill | ( | float | etaSimSegm, | |
float | phiSimSegm, | |||
float | xSimSegm, | |||
float | ySimSegm, | |||
float | alphaSimSegm, | |||
float | betaSimSegm, | |||
bool | fillRecHit | |||
) | [inline] |
Definition at line 1170 of file Histograms.h.
References hAlphaRecHit, hAlphaSimSegm, hBetaRecHit, hBetaSimSegm, hEtaRecHit, hEtaSimSegm, hPhiRecHit, hPhiSimSegm, hXRecHit, hXSimSegm, hYRecHit, and hYSimSegm.
Referenced by DTSegment4DQuality::analyze().
01176 { 01177 01178 hEtaSimSegm->Fill(etaSimSegm); 01179 hPhiSimSegm->Fill(phiSimSegm); 01180 hXSimSegm->Fill(xSimSegm); 01181 hYSimSegm->Fill(ySimSegm); 01182 hAlphaSimSegm->Fill(alphaSimSegm); 01183 hBetaSimSegm->Fill(betaSimSegm); 01184 01185 if(fillRecHit) { 01186 hEtaRecHit->Fill(etaSimSegm); 01187 hPhiRecHit->Fill(phiSimSegm); 01188 hXRecHit->Fill(xSimSegm); 01189 hYRecHit->Fill(ySimSegm); 01190 hAlphaRecHit->Fill(alphaSimSegm); 01191 hBetaRecHit->Fill(betaSimSegm); 01192 } 01193 }
void HEff4DHit::Write | ( | ) | [inline] |
Definition at line 1298 of file Histograms.h.
References hAlphaRecHit, hAlphaSimSegm, hBetaRecHit, hBetaSimSegm, hEffVsAlpha, hEffVsBeta, hEffVsEta, hEffVsPhi, hEffVsX, hEffVsY, hEtaRecHit, hEtaSimSegm, hPhiRecHit, hPhiSimSegm, hXRecHit, hXSimSegm, hYRecHit, and hYSimSegm.
Referenced by DTSegment4DQuality::endJob().
01298 { 01299 hEtaSimSegm->Write(); 01300 hEtaRecHit->Write(); 01301 if(hEffVsEta != 0) 01302 hEffVsEta->Write(); 01303 hPhiSimSegm->Write(); 01304 hPhiRecHit->Write(); 01305 if(hEffVsPhi != 0) 01306 hEffVsPhi->Write(); 01307 hXSimSegm->Write(); 01308 hXRecHit->Write(); 01309 if(hEffVsX != 0) 01310 hEffVsX->Write(); 01311 hYSimSegm->Write(); 01312 hYRecHit->Write(); 01313 if(hEffVsY != 0) 01314 hEffVsY->Write(); 01315 hAlphaSimSegm->Write(); 01316 hAlphaRecHit->Write(); 01317 if(hEffVsAlpha != 0) 01318 hEffVsAlpha->Write(); 01319 hBetaSimSegm->Write(); 01320 hBetaRecHit->Write(); 01321 if(hEffVsBeta != 0) 01322 hEffVsBeta->Write(); 01323 01324 }
TH1F* HEff4DHit::hAlphaRecHit |
Definition at line 1340 of file Histograms.h.
Referenced by ComputeEfficiency(), Fill(), HEff4DHit(), and Write().
TH1F* HEff4DHit::hAlphaSimSegm |
Definition at line 1339 of file Histograms.h.
Referenced by ComputeEfficiency(), Fill(), HEff4DHit(), and Write().
TH1F* HEff4DHit::hBetaRecHit |
Definition at line 1343 of file Histograms.h.
Referenced by ComputeEfficiency(), Fill(), HEff4DHit(), and Write().
TH1F* HEff4DHit::hBetaSimSegm |
Definition at line 1342 of file Histograms.h.
Referenced by ComputeEfficiency(), Fill(), HEff4DHit(), and Write().
TH1F* HEff4DHit::hEffVsAlpha |
Definition at line 1341 of file Histograms.h.
Referenced by ComputeEfficiency(), HEff4DHit(), and Write().
TH1F* HEff4DHit::hEffVsBeta |
Definition at line 1344 of file Histograms.h.
Referenced by ComputeEfficiency(), HEff4DHit(), and Write().
TH1F* HEff4DHit::hEffVsEta |
Definition at line 1329 of file Histograms.h.
Referenced by ComputeEfficiency(), HEff4DHit(), and Write().
TH1F* HEff4DHit::hEffVsPhi |
Definition at line 1332 of file Histograms.h.
Referenced by ComputeEfficiency(), HEff4DHit(), and Write().
TH1F* HEff4DHit::hEffVsX |
Definition at line 1335 of file Histograms.h.
Referenced by ComputeEfficiency(), HEff4DHit(), and Write().
TH1F* HEff4DHit::hEffVsY |
Definition at line 1338 of file Histograms.h.
Referenced by ComputeEfficiency(), HEff4DHit(), and Write().
TH1F* HEff4DHit::hEtaRecHit |
Definition at line 1328 of file Histograms.h.
Referenced by ComputeEfficiency(), Fill(), HEff4DHit(), and Write().
TH1F* HEff4DHit::hEtaSimSegm |
Definition at line 1327 of file Histograms.h.
Referenced by ComputeEfficiency(), Fill(), HEff4DHit(), and Write().
TH1F* HEff4DHit::hPhiRecHit |
Definition at line 1331 of file Histograms.h.
Referenced by ComputeEfficiency(), Fill(), HEff4DHit(), and Write().
TH1F* HEff4DHit::hPhiSimSegm |
Definition at line 1330 of file Histograms.h.
Referenced by ComputeEfficiency(), Fill(), HEff4DHit(), and Write().
TH1F* HEff4DHit::hXRecHit |
Definition at line 1334 of file Histograms.h.
Referenced by ComputeEfficiency(), Fill(), HEff4DHit(), and Write().
TH1F* HEff4DHit::hXSimSegm |
Definition at line 1333 of file Histograms.h.
Referenced by ComputeEfficiency(), Fill(), HEff4DHit(), and Write().
TH1F* HEff4DHit::hYRecHit |
Definition at line 1337 of file Histograms.h.
Referenced by ComputeEfficiency(), Fill(), HEff4DHit(), and Write().
TH1F* HEff4DHit::hYSimSegm |
Definition at line 1336 of file Histograms.h.
Referenced by ComputeEfficiency(), Fill(), HEff4DHit(), and Write().
TString HEff4DHit::name |