7 #include "GaudiKernel/ITHistSvc.h"
8 #include "GaudiKernel/SystemOfUnits.h"
25 ISvcLocator *pSvcLocator)
32 <<
" ******************");
35 showerShapesAll = std::make_unique<egammaMonitoring::ShowerShapesHistograms>(
36 "showerShapesAll",
"Shower Shapes ",
"/MONITORING/showerShapesAll/",
40 std::make_unique<egammaMonitoring::ShowerShapesHistograms>(
41 "showerShapes10GeV",
"Shower Shapes - 10 GeV",
44 isolationAll = std::make_unique<egammaMonitoring::IsolationHistograms>(
45 "isolationAll",
"Isolation ",
"/MONITORING/isolationAll/",
rootHistSvc);
52 clusterAll = std::make_unique<egammaMonitoring::ClusterHistograms>(
53 "clustersAll",
"Clusters",
"/MONITORING/clusterAll/",
rootHistSvc);
55 cluster10GeV = std::make_unique<egammaMonitoring::ClusterHistograms>(
56 "clusters10GeV",
"Clusters - 10 GeV",
"/MONITORING/cluster10GeV/",
60 "clustersPromptAll",
"Clusters from Prompt",
64 "clustersPrompt10GeV",
"Clusters from Prompt - 10 GeV",
72 m_clusterReco = std::make_unique<egammaMonitoring::RecoClusterHistograms>(
73 "clustersReco",
"Clusters from Z->ee candidates in data",
76 std::make_unique<egammaMonitoring::RecoElectronHistograms>(
77 "recoElectronAll",
"Reco electrons from Z->ee candidates in data",
79 m_diElectron = std::make_unique<egammaMonitoring::DiObjectHistograms>(
80 "diElectrons",
"Z->ee candidates in data",
"/MONITORING/diElectrons/",
91 std::make_unique<egammaMonitoring::RecoElectronHistograms>(
92 "recoElectronAll",
"Electrons Reco Electron",
96 std::make_unique<egammaMonitoring::TruthElectronHistograms>(
97 "truthElectronAll",
"All Truth Electrons",
101 std::make_unique<egammaMonitoring::TruthElectronHistograms>(
102 "truthPromptElectronAll",
"All Truth Prompt Electrons",
103 "/MONITORING/truthPromptElectronAll/",
rootHistSvc);
106 std::make_unique<egammaMonitoring::TruthElectronHistograms>(
107 "truthElectronRecoElectronAll",
"Truth Electrons Reco Electron",
108 "/MONITORING/truthElectronRecoElectronAll/",
rootHistSvc);
111 std::make_unique<egammaMonitoring::TruthElectronHistograms>(
112 "truthPromptElectronWithTrack",
"Truth Prompt Electrons With Track",
113 "/MONITORING/truthPromptElectronWithTrack/",
rootHistSvc);
116 std::make_unique<egammaMonitoring::TruthElectronHistograms>(
117 "truthPromptElectronWithGSFTrack",
118 "Truth Prompt Electrons With GSFTrack",
119 "/MONITORING/truthPromptElectronWithGSFTrack/",
rootHistSvc);
122 std::make_unique<egammaMonitoring::TruthElectronHistograms>(
123 "truthPromptElectronWithReco",
124 "Truth Prompt Electrons With GSFTrack or just with a fwd cluster",
125 "/MONITORING/truthPromptElectronWithReco/",
rootHistSvc);
128 std::make_unique<egammaMonitoring::TruthElectronHistograms>(
129 "truthPromptElectronWithRecoTrack",
130 "Truth Prompt Electrons With GSFTrack",
131 "/MONITORING/truthPromptElectronWithRecoTrack/",
rootHistSvc);
134 std::make_unique<egammaMonitoring::TruthElectronHistograms>(
135 "truthRecoElectronLooseLH",
"LLH Electrons Reco Electron",
136 "/MONITORING/truthRecoElectronLooseLH/",
rootHistSvc);
139 std::make_unique<egammaMonitoring::TruthElectronHistograms>(
140 "truthRecoElectronMediumLH",
"MLH Electrons Reco Electron",
141 "/MONITORING/truthRecoElectronMediumLH/",
rootHistSvc);
144 std::make_unique<egammaMonitoring::TruthElectronHistograms>(
145 "truthRecoElectronTightLH",
"TLH Electrons Reco Electron",
146 "/MONITORING/truthRecoElectronTightLH/",
rootHistSvc);
178 recoPhotonAll = std::make_unique<egammaMonitoring::RecoPhotonHistograms>(
179 "recoPhotonAll",
"Reco Photon",
"/MONITORING/recoPhotonAll/",
184 "clusterConvPhoton",
"Clusters from Converted Photons",
188 "clusterConvPhotonSi",
"Clusters from Converted Photons - Si",
192 std::make_unique<egammaMonitoring::ClusterHistograms>(
193 "clusterConvPhotonSiSi",
"Clusters from Converted Photons - SiSi",
194 "/MONITORING/clusterConvPhotonSiSi/",
rootHistSvc);
197 "clusterUnconvPhoton",
"Clusters from Converted Photons",
208 std::make_unique<egammaMonitoring::ClusterHistograms>(
209 "clusterConvPhotonTRT",
"Clusters from Converted Photons - TRT",
213 std::make_unique<egammaMonitoring::ClusterHistograms>(
214 "clusterConvPhotonTRTTRT",
215 "Clusters from Converted Photons - TRTTRT",
216 "/MONITORING/clusterConvPhotonTRTTRT/",
rootHistSvc);
219 std::make_unique<egammaMonitoring::ClusterHistograms>(
220 "clusterConvPhotonSiTRT",
221 "Clusters from Converted Photons - SiTRT",
222 "/MONITORING/clusterConvPhotonSiTRT/",
rootHistSvc);
225 std::make_unique<egammaMonitoring::TruthPhotonHistograms>(
226 "truthConvRecoConv1TRT",
"truthConvRecoConv1TRT",
227 "/MONITORING/truthConvRecoConv1TRT/",
rootHistSvc);
230 std::make_unique<egammaMonitoring::TruthPhotonHistograms>(
231 "truthConvRecoConv2TRT",
"truthConvRecoConv2TRT",
232 "/MONITORING/truthConvRecoConv2TRT/",
rootHistSvc);
235 std::make_unique<egammaMonitoring::TruthPhotonHistograms>(
236 "truthConvRecoConv2SiTRT",
"truthConvRecoConv2SiTRT",
237 "/MONITORING/truthConvRecoConv2SiTRT/",
rootHistSvc);
240 std::make_unique<egammaMonitoring::TruthPhotonHistograms>(
241 "truthUnconvRecoConv1TRT",
"truthUnconvRecoConv1TRT",
242 "/MONITORING/truthUnconvRecoConv1TRT/",
rootHistSvc);
245 std::make_unique<egammaMonitoring::TruthPhotonHistograms>(
246 "truthUnconvRecoConv2TRT",
"truthUnconvRecoConv2TRT",
247 "/MONITORING/truthUnconvRecoConv2TRT/",
rootHistSvc);
250 std::make_unique<egammaMonitoring::TruthPhotonHistograms>(
251 "truthUnconvRecoConv2SiTRT",
"truthUnconvRecoConv2SiTRT",
252 "/MONITORING/truthUnconvRecoConv2SiTRT/",
rootHistSvc);
266 truthPhotonAll = std::make_unique<egammaMonitoring::TruthPhotonHistograms>(
267 "truthPhotonAll",
"truthPhotonAll",
"/MONITORING/truthPhotonAll/",
271 std::make_unique<egammaMonitoring::TruthPhotonHistograms>(
272 "truthPhotonAllUnconv",
"truthPhotonAllUnconv",
276 std::make_unique<egammaMonitoring::TruthPhotonHistograms>(
277 "truthPhotonAllConv",
"truthPhotonAllConv",
281 std::make_unique<egammaMonitoring::TruthPhotonHistograms>(
282 "truthPhotonAllLateConv",
"truthPhotonAllLateConv",
283 "/MONITORING/truthPhotonAllLateConv/",
rootHistSvc);
287 std::make_unique<egammaMonitoring::TruthPhotonHistograms>(
288 "truthPhotonRecoPhoton",
"truthPhotonRecoPhoton",
289 "/MONITORING/truthPhotonRecoPhoton/",
rootHistSvc);
292 std::make_unique<egammaMonitoring::TruthPhotonHistograms>(
293 "truthPhotonRecoPhotonOrElectron",
294 "truthPhotonRecoPhotonOrElectron",
295 "/MONITORING/truthPhotonRecoPhotonOrElectron/",
rootHistSvc);
298 std::make_unique<egammaMonitoring::TruthPhotonHistograms>(
299 "truthConvPhoton",
"truthConvPhoton",
303 std::make_unique<egammaMonitoring::TruthPhotonHistograms>(
304 "truthConvRecoConv",
"truthConvRecoConv",
308 std::make_unique<egammaMonitoring::TruthPhotonHistograms>(
309 "truthConvRecoConv1Si",
"truthConvRecoConv1Si",
313 std::make_unique<egammaMonitoring::TruthPhotonHistograms>(
314 "truthConvRecoConv2Si",
"truthConvRecoConv2Si",
318 std::make_unique<egammaMonitoring::TruthPhotonHistograms>(
319 "truthConvRecoUnconv",
"truthConvRecoUnconv",
323 std::make_unique<egammaMonitoring::TruthPhotonHistograms>(
324 "truthUnconvPhoton",
"truthUnconvPhoton",
328 std::make_unique<egammaMonitoring::TruthPhotonHistograms>(
329 "truthUnconvRecoConv",
"truthUnconvRecoConv",
333 std::make_unique<egammaMonitoring::TruthPhotonHistograms>(
334 "truthUnconvRecoConv1Si",
"truthUnconvRecoConv1Si",
335 "/MONITORING/truthUnconvRecoConv1Si/",
rootHistSvc);
338 std::make_unique<egammaMonitoring::TruthPhotonHistograms>(
339 "truthUnconvRecoConv2Si",
"truthUnconvRecoConv2Si",
340 "/MONITORING/truthUnconvRecoConv2Si/",
rootHistSvc);
343 std::make_unique<egammaMonitoring::TruthPhotonHistograms>(
344 "truthUnconvRecoUnconv",
"truthUnconvRecoUnconv",
345 "/MONITORING/truthUnconvRecoUnconv/",
rootHistSvc);
348 std::make_unique<egammaMonitoring::TruthPhotonHistograms>(
349 "recoPhotonUnconvLoose",
"Loose Photons Reco Photon",
350 "/MONITORING/recoPhotonUnconvLoose/",
rootHistSvc);
353 std::make_unique<egammaMonitoring::TruthPhotonHistograms>(
354 "recoPhotonUnconvTight",
"Tight Photons Reco Photon",
355 "/MONITORING/recoPhotonUnconvTight/",
rootHistSvc);
358 std::make_unique<egammaMonitoring::TruthPhotonHistograms>(
359 "recoPhotonConvLoose",
"Loose Photons Reco Photon",
363 std::make_unique<egammaMonitoring::TruthPhotonHistograms>(
364 "recoPhotonConvTight",
"Tight Photons Reco Photon",
368 std::make_unique<egammaMonitoring::TruthPhotonHistograms>(
369 "recoPhotonUnconvIsoFixedCutTight",
370 "Isolation Fixed Cut Tight Photons Reco Photon",
371 "/MONITORING/recoPhotonUnconvIsoFixedCutTight/",
rootHistSvc);
374 std::make_unique<egammaMonitoring::TruthPhotonHistograms>(
375 "recoPhotonUnconvIsoFixedCutTightCaloOnly",
376 "Isolation Fixed Cut Tight Calo Only Photons Reco Photon",
377 "/MONITORING/recoPhotonUnconvIsoFixedCutTightCaloOnly/",
381 std::make_unique<egammaMonitoring::TruthPhotonHistograms>(
382 "recoPhotonUnconvIsoFixedCutLoose",
383 "Isolation Fixed Cut Loose Photons Reco Photon",
384 "/MONITORING/recoPhotonUnconvIsoFixedCutLoose/",
rootHistSvc);
387 std::make_unique<egammaMonitoring::TruthPhotonHistograms>(
388 "recoPhotonConvIsoFixedCutTight",
389 "Isolation Fixed Cut Tight Photons Reco Photon",
390 "/MONITORING/recoPhotonConvIsoFixedCutTight/",
rootHistSvc);
393 std::make_unique<egammaMonitoring::TruthPhotonHistograms>(
394 "recoPhotonConvIsoFixedCutTightCaloOnly",
395 "Isolation Fixed Cut Tight Calo Only Photons Reco Photon",
396 "/MONITORING/recoPhotonConvIsoFixedCutTightCaloOnly/",
rootHistSvc);
399 std::make_unique<egammaMonitoring::TruthPhotonHistograms>(
400 "recoPhotonConvIsoFixedCutLoose",
401 "Isolation Fixed Cut Loose Photons Reco Photon",
402 "/MONITORING/recoPhotonConvIsoFixedCutLoose/",
rootHistSvc);
407 static const std::string typeMatch[5] = {
"",
"MatchElectron",
"NotElectron",
408 "MatchPion",
"NotMatched"};
409 static const std::string typeTrk[2] = {
"",
"TRT"};
410 static const std::string ptTrk[2] = {
"",
"highpT"};
411 static const std::string ctypeMatch[5] = {
412 "",
" match to electrons",
" not matched to electrons",
413 " match to pions",
" not matched"};
414 static const std::string ctypeTrk[2] = {
"",
" TRTSA"};
415 static const std::string cptTrk[2] = {
"",
" pT > 3 GeV"};
417 for (
int im = 0;
im < 5;
im++) {
418 std::string mN = typeMatch[
im];
420 std::string tN = typeTrk[
it];
421 for (
int ip = 0;
ip < 2;
ip++) {
422 std::string pN = ptTrk[
ip];
425 "InDetTracks" + typeTrk[
it] + typeMatch[
im] + ptTrk[
ip];
426 std::string fN =
"/MONITORING/" + nN +
"/";
428 "InDet Tracks" + ctypeTrk[
it] + ctypeMatch[
im] + cptTrk[
ip];
432 std::make_unique<egammaMonitoring::TrackHistograms>(
485 m_dR1 =
new TH1D(
"dR1",
";#Delta R;Events", 1000, 0, 0.1);
487 m_dR2 =
new TH1D(
"dR2",
";#Delta R;Events", 1000, 0, 0.1);
521 return StatusCode::SUCCESS;
526 const EventContext &ctx = Gaudi::Hive::currentContext();
554 ATH_MSG_DEBUG(
"------------ Truth Egamma Container ---------------");
555 for (
const auto *egtruth : *egTruthParticles) {
572 ATH_MSG_DEBUG(
"------------ Truth Particles Container ---------------");
573 unsigned int promptElectronTruthIndex =
575 for (
const auto *truth : *truthParticles) {
579 if (std::abs(truth->pdgId()) != 11)
588 bool haspVtx = truth->hasProdVtx();
592 rProd = pvtx->
perp();
594 bool hasdVtx = truth->hasDecayVtx();
602 << truth <<
" TO " << TO <<
" TT " <<
TT
603 <<
" Rprod = " << rProd <<
" Rdec = " << rDec
609 TT == MCTruthPartClassifier::IsoElectron &&
612 promptElectronTruthIndex = truth->index();
623 for (
const auto *
tp : *InDetTPs) {
634 if ((nPi + nSCT) < 7)
640 if (!truth || std::abs(truth->
pdgId()) != 11)
647 TT == MCTruthPartClassifier::IsoElectron &&
648 truth->
index() == promptElectronTruthIndex) {
664 if (firstElTruth->
index() == promptElectronTruthIndex) {
672 for (
const auto *gsf : *GSFTracks) {
689 if ((nPi + nSCT) < 7)
699 ATH_MSG_DEBUG(
" ** Truth particle associated to track Found: "
700 << truth <<
" index " << truth->
index() <<
" bkg T0 "
701 << bkgTO <<
" bkg TT " << bkgTT <<
" T0 " << TO
702 <<
" TT " <<
TT <<
" eventNumber "
706 TT == MCTruthPartClassifier::IsoElectron &&
707 truth->
index() == promptElectronTruthIndex) {
720 << firstElTruth->
index());
724 if (firstElTruth->
index() == promptElectronTruthIndex) {
731 ATH_MSG_DEBUG(
"------------ Reco central electrons ---------------");
732 bool foundPromptElectron =
false;
734 for (
const auto *elrec : *RecoEl) {
755 if (std::abs(truth->
pdgId()) != 11 || foundPromptElectron)
762 TT == MCTruthPartClassifier::IsoElectron &&
763 truth->
index() == promptElectronTruthIndex) {
774 if (firstElTruth->
index() == promptElectronTruthIndex) {
776 elTruth = firstElTruth;
780 foundPromptElectron =
true;
795 for (
const auto *
el : *RecoFwdEl) {
819 if (std::abs(truth->
pdgId()) != 11 &&
820 promptElectronTruthIndex < truthParticles->
size()) {
822 truthParticles->at(promptElectronTruthIndex);
823 double dR1 = vtruth->
p4().DeltaR(
el->caloCluster()->p4());
824 double dR2 = truth->
p4().DeltaR(
el->caloCluster()->p4());
831 if (std::abs(truth->
pdgId()) != 11)
836 res.first == MCTruthPartClassifier::IsoElectron &&
837 truth->
index() == promptElectronTruthIndex) {
845 if (firstElTruth->
index() == promptElectronTruthIndex) {
847 elTruth = firstElTruth;
851 if (foundPromptElectron) {
852 ATH_MSG_DEBUG(
"A fwd electron also reconstructed as central "
857 if (
el->nTrackParticles() > 0)
860 foundPromptElectron =
true;
862 if (
el->nTrackParticles() > 0)
882 for (
const auto *phrec : *RecoPh) {
898 for (
const auto *egtruth : *egTruthParticles) {
906 bool isTrueLateConv =
917 if (!isTrueConv && !isTrueLateConv)
1022 for (
const auto *
tp : *InDetTPs) {
1034 if (
tp->pt() > 3000.) {
1060 if (
tp->pt() > 3000.) {
1079 return StatusCode::SUCCESS;
1088 ATH_MSG_INFO(
"Number of events with electron reconstructed "
1089 "as both Central and Forward "
1094 "trackingEfficiency",
"/MONITORING/trackingEfficiency/",
rootHistSvc);
1098 "GSFEfficiency",
"/MONITORING/GSFEfficiency/",
rootHistSvc);
1102 "matchingEfficiency",
"/MONITORING/matchingEfficiency/",
rootHistSvc);
1106 "reconstructionEfficiency",
"/MONITORING/reconstructionEfficiency/",
1111 "recoElectronLooseLHEfficiency",
1112 "/MONITORING/recoElectronLooseLHEfficiency/",
rootHistSvc);
1116 "recoElectronMediumLHEfficiency",
1117 "/MONITORING/recoElectronMediumLHEfficiency/",
rootHistSvc);
1121 "recoElectronTightLHEfficiency",
1122 "/MONITORING/recoElectronTightLHEfficiency/",
rootHistSvc);
1131 "truthPhotonRecoPhotonEfficiency",
1132 "/MONITORING/truthPhotonRecoPhotonEfficiency/",
rootHistSvc);
1136 "truthPhotonRecoPhotonOrElectronEfficiency",
1137 "/MONITORING/truthPhotonRecoPhotonOrElectronEfficiency/",
rootHistSvc);
1141 "truthPhotonConvRecoEfficiency",
1142 "/MONITORING/truthPhotonConvRecoEfficiency/",
rootHistSvc);
1146 "truthPhotonUnconvRecoEfficiency",
1147 "/MONITORING/truthPhotonUnconvRecoEfficiency/",
rootHistSvc);
1151 "truthPhotonConvRecoConvEfficiency",
1152 "/MONITORING/truthPhotonConvRecoConvEfficiency/",
rootHistSvc);
1156 "truthPhotonConvRecoConv1SiEfficiency",
1157 "/MONITORING/truthPhotonConvRecoConv1SiEfficiency/",
rootHistSvc);
1161 "truthPhotonConvRecoConv2SiEfficiency",
1162 "/MONITORING/truthPhotonConvRecoConv2SiEfficiency/",
rootHistSvc);
1166 "truthPhotonConvRecoUnconvEfficiency",
1167 "/MONITORING/truthPhotonConvRecoUnconvEfficiency/",
rootHistSvc);
1171 "truthPhotonUnconvRecoConvEfficiency",
1172 "/MONITORING/truthPhotonUnconvRecoConvEfficiency/",
rootHistSvc);
1176 "truthPhotonUnconvRecoConv1SiEfficiency",
1177 "/MONITORING/truthPhotonUnconvRecoConv1SiEfficiency/",
rootHistSvc);
1181 "truthPhotonUnconvRecoConv2SiEfficiency",
1182 "/MONITORING/truthPhotonUnconvRecoConv2SiEfficiency/",
rootHistSvc);
1186 "truthPhotonUnconvRecoUnconvEfficiency",
1187 "/MONITORING/truthPhotonUnconvRecoUnconvEfficiency/",
rootHistSvc);
1191 "truthPhotonRecoConvEfficiency",
1192 "/MONITORING/truthPhotonRecoConvEfficiency/",
rootHistSvc);
1196 "truthPhotonRecoUnconvEfficiency",
1197 "/MONITORING/truthPhotonRecoUnconvEfficiency/",
rootHistSvc);
1201 "recoPhotonUnconvIsoFixedCutTightEfficiency",
1202 "/MONITORING/recoPhotonUnconvIsoFixedCutTightEfficiency/",
rootHistSvc);
1207 recoPhotonUnconvIsoFixedCutTightCaloOnlyEfficiency(
1208 "recoPhotonUnconvIsoFixedCutTightCaloOnlyEfficiency",
1209 "/MONITORING/recoPhotonUnconvIsoFixedCutTightCaloOnlyEfficiency/",
1215 "recoPhotonUnconvIsoFixedCutLooseEfficiency",
1216 "/MONITORING/recoPhotonUnconvIsoFixedCutLooseEfficiency/",
rootHistSvc);
1221 "recoPhotonConvIsoFixedCutTightEfficiency",
1222 "/MONITORING/recoPhotonConvIsoFixedCutTightEfficiency/",
rootHistSvc);
1226 recoPhotonConvIsoFixedCutTightCaloOnlyEfficiency(
1227 "recoPhotonConvIsoFixedCutTightCaloOnlyEfficiency",
1228 "/MONITORING/recoPhotonConvIsoFixedCutTightCaloOnlyEfficiency/",
1234 "recoPhotonConvIsoFixedCutLooseEfficiency",
1235 "/MONITORING/recoPhotonConvIsoFixedCutLooseEfficiency/",
rootHistSvc);
1239 "recoPhotonConvLooseEfficiency",
1240 "/MONITORING/recoPhotonConvLooseEfficiency/",
rootHistSvc);
1244 "recoPhotonConvTightEfficiency",
1245 "/MONITORING/recoPhotonConvTightEfficiency/",
rootHistSvc);
1249 "recoPhotonUnconvLooseEfficiency",
1250 "/MONITORING/recoPhotonUnconvLooseEfficiency/",
rootHistSvc);
1254 "recoPhotonUnconvTightEfficiency",
1255 "/MONITORING/recoPhotonUnconvTightEfficiency/",
rootHistSvc);
1260 "truthPhotonRecoPhotonWidth",
"/MONITORING/truthPhotonRecoPhotonWidth/",
1264 "truthPhotonConvPhotonWidth",
"/MONITORING/truthPhotonConvPhotonWidth/",
1268 "truthPhotonConvRecoConvWidth",
1269 "/MONITORING/truthPhotonConvRecoConvWidth/",
rootHistSvc);
1272 "truthPhotonConvRecoConv1SiWidth",
1273 "/MONITORING/truthPhotonConvRecoConv1SiWidth/",
rootHistSvc);
1277 "truthPhotonConvRecoConv2SiWidth",
1278 "/MONITORING/truthPhotonConvRecoConv2SiWidth/",
rootHistSvc);
1283 "truthPhotonConvRecoConv1TRTEfficiency",
1284 "/MONITORING/truthPhotonConvRecoConv1TRTEfficiency/",
rootHistSvc);
1288 "truthPhotonConvRecoConv2TRTEfficiency",
1289 "/MONITORING/truthPhotonConvRecoConv2TRTEfficiency/",
rootHistSvc);
1293 "truthPhotonConvRecoConv2SiTRTEfficiency",
1294 "/MONITORING/truthPhotonConvRecoConv2SiTRTEfficiency/",
rootHistSvc);
1298 "truthPhotonUnconvRecoConv1TRTEfficiency",
1299 "/MONITORING/truthPhotonUnconvRecoConv1TRTEfficiency/",
rootHistSvc);
1303 "truthPhotonUnconvRecoConv2TRTEfficiency",
1304 "/MONITORING/truthPhotonUnconvRecoConv2TRTEfficiency/",
rootHistSvc);
1308 truthPhotonUnconvRecoConv2SiTRTEfficiency(
1309 "truthPhotonUnconvRecoConv2SiTRTEfficiency",
1310 "/MONITORING/truthPhotonUnconvRecoConv2SiTRTEfficiency/",
1316 "truthPhotonConvRecoConv1TRTWidth",
1317 "/MONITORING/truthPhotonConvRecoConv1TRTWidth/",
rootHistSvc);
1321 "truthPhotonConvRecoConv2TRTWidth",
1322 "/MONITORING/truthPhotonConvRecoConv2TRTWidth/",
rootHistSvc);
1326 "truthPhotonConvRecoConv2SiTRTWidth",
1327 "/MONITORING/truthPhotonConvRecoConv2SiTRTWidth/",
rootHistSvc);
1332 "truthPhotonConvRecoUnconvWidth",
1333 "/MONITORING/truthPhotonConvRecoUnconvWidth/",
rootHistSvc);
1337 "truthPhotonUnconvPhotonWidth",
1338 "/MONITORING/truthPhotonUnconvPhotonWidth/",
rootHistSvc);
1341 "truthPhotonUnconvRecoConvWidth",
1342 "/MONITORING/truthPhotonUnconvRecoConvWidth/",
rootHistSvc);
1346 "truthPhotonUnconvRecoUnconvWidth",
1347 "/MONITORING/truthPhotonUnconvRecoUnconvWidth/",
rootHistSvc);
1354 return StatusCode::SUCCESS;
1359 return truth && abs(truth->
pdgId()) == 11;
1364 return truth && abs(truth->
pdgId()) == 211;
1378 double pTL = -9e9, pTSL = -9e9;
1379 for (
const auto *
el : *RecoEl) {
1380 double pt =
el->pt();
1388 }
else if (
pt > pTSL) {
1395 return StatusCode::SUCCESS;
1413 return StatusCode::SUCCESS;
1419 double xmi = 66, xma = 116, eps = 0.01;
1420 int ib1 = hRef->FindBin(xmi + eps);
1421 int ib2 = hRef->FindBin(xma - eps);
1422 TH1D *hmee =
new TH1D(
"mee",
";m_{ee} [GeV];Events / 0.5 GeV", ib2 - ib1 + 1,
1424 for (
int ib = ib1;
ib <= ib2;
ib++) {
1426 double ec = hRef->GetBinError(
ib);
1428 hmee->SetBinError(
ib - ib1 + 1, ec);
1432 TString vsX[3] = {
"Et",
"Etetale0p8",
"Eta"};
1433 TString coo[3] = {
"x",
"x",
"y"};
1434 for (
int iL = 0; iL < 5; iL++) {
1440 for (
int iX = 0;
iX < 3;
iX++) {
1441 if (iL == 4 &&
iX == 2)
1445 int ieta08 =
nRef->GetYaxis()->FindBin(0.79);
1446 nRef->GetYaxis()->SetRange(1, ieta08);
1447 }
else if (
iX == 2) {
1448 nRef->GetYaxis()->SetRange(1, 25);
1453 pN = Form(
"pn%ivs%s", iL, vsX[
iX].
Data());
1455 pN = Form(
"pEopvs%s", vsX[
iX].
Data());
1456 TProfile *pRefvsX = nRefvsX->ProfileX(pN.Data());
1457 pRefvsX->SetTitle(pN.Data());
1458 pRefvsX->GetXaxis()->SetTitle(
iX < 2 ?
"E_{T} [GeV]" :
"|#eta|");
1459 pRefvsX->GetYaxis()->SetTitle(iL < 4 ? Form(
"nCells_Lr%i", iL) :
"E/p");
1461 Form(
"/MONITORING/Data/%s", pRefvsX->GetName()), pRefvsX));
1465 return StatusCode::SUCCESS;