7 #include "GaudiKernel/SystemOfUnits.h"
24 ISvcLocator *pSvcLocator)
31 <<
" ******************");
34 showerShapesAll = std::make_unique<egammaMonitoring::ShowerShapesHistograms>(
35 "showerShapesAll",
"Shower Shapes ",
"/MONITORING/showerShapesAll/",
39 std::make_unique<egammaMonitoring::ShowerShapesHistograms>(
40 "showerShapes10GeV",
"Shower Shapes - 10 GeV",
43 isolationAll = std::make_unique<egammaMonitoring::IsolationHistograms>(
44 "isolationAll",
"Isolation ",
"/MONITORING/isolationAll/",
rootHistSvc);
51 clusterAll = std::make_unique<egammaMonitoring::ClusterHistograms>(
52 "clustersAll",
"Clusters",
"/MONITORING/clusterAll/",
rootHistSvc);
54 cluster10GeV = std::make_unique<egammaMonitoring::ClusterHistograms>(
55 "clusters10GeV",
"Clusters - 10 GeV",
"/MONITORING/cluster10GeV/",
59 "clustersPromptAll",
"Clusters from Prompt",
63 "clustersPrompt10GeV",
"Clusters from Prompt - 10 GeV",
71 m_clusterReco = std::make_unique<egammaMonitoring::RecoClusterHistograms>(
72 "clustersReco",
"Clusters from Z->ee candidates in data",
75 std::make_unique<egammaMonitoring::RecoElectronHistograms>(
76 "recoElectronAll",
"Reco electrons from Z->ee candidates in data",
78 m_diElectron = std::make_unique<egammaMonitoring::DiObjectHistograms>(
79 "diElectrons",
"Z->ee candidates in data",
"/MONITORING/diElectrons/",
90 std::make_unique<egammaMonitoring::RecoElectronHistograms>(
91 "recoElectronAll",
"Electrons Reco Electron",
95 std::make_unique<egammaMonitoring::TruthElectronHistograms>(
96 "truthElectronAll",
"All Truth Electrons",
100 std::make_unique<egammaMonitoring::TruthElectronHistograms>(
101 "truthPromptElectronAll",
"All Truth Prompt Electrons",
102 "/MONITORING/truthPromptElectronAll/",
rootHistSvc);
105 std::make_unique<egammaMonitoring::TruthElectronHistograms>(
106 "truthElectronRecoElectronAll",
"Truth Electrons Reco Electron",
107 "/MONITORING/truthElectronRecoElectronAll/",
rootHistSvc);
110 std::make_unique<egammaMonitoring::TruthElectronHistograms>(
111 "truthPromptElectronWithTrack",
"Truth Prompt Electrons With Track",
112 "/MONITORING/truthPromptElectronWithTrack/",
rootHistSvc);
115 std::make_unique<egammaMonitoring::TruthElectronHistograms>(
116 "truthPromptElectronWithGSFTrack",
117 "Truth Prompt Electrons With GSFTrack",
118 "/MONITORING/truthPromptElectronWithGSFTrack/",
rootHistSvc);
121 std::make_unique<egammaMonitoring::TruthElectronHistograms>(
122 "truthPromptElectronWithReco",
123 "Truth Prompt Electrons With GSFTrack or just with a fwd cluster",
124 "/MONITORING/truthPromptElectronWithReco/",
rootHistSvc);
127 std::make_unique<egammaMonitoring::TruthElectronHistograms>(
128 "truthPromptElectronWithRecoTrack",
129 "Truth Prompt Electrons With GSFTrack",
130 "/MONITORING/truthPromptElectronWithRecoTrack/",
rootHistSvc);
133 std::make_unique<egammaMonitoring::TruthElectronHistograms>(
134 "truthRecoElectronLooseLH",
"LLH Electrons Reco Electron",
135 "/MONITORING/truthRecoElectronLooseLH/",
rootHistSvc);
138 std::make_unique<egammaMonitoring::TruthElectronHistograms>(
139 "truthRecoElectronMediumLH",
"MLH Electrons Reco Electron",
140 "/MONITORING/truthRecoElectronMediumLH/",
rootHistSvc);
143 std::make_unique<egammaMonitoring::TruthElectronHistograms>(
144 "truthRecoElectronTightLH",
"TLH Electrons Reco Electron",
145 "/MONITORING/truthRecoElectronTightLH/",
rootHistSvc);
177 recoPhotonAll = std::make_unique<egammaMonitoring::RecoPhotonHistograms>(
178 "recoPhotonAll",
"Reco Photon",
"/MONITORING/recoPhotonAll/",
183 "clusterConvPhoton",
"Clusters from Converted Photons",
187 "clusterConvPhotonSi",
"Clusters from Converted Photons - Si",
191 std::make_unique<egammaMonitoring::ClusterHistograms>(
192 "clusterConvPhotonSiSi",
"Clusters from Converted Photons - SiSi",
193 "/MONITORING/clusterConvPhotonSiSi/",
rootHistSvc);
196 "clusterUnconvPhoton",
"Clusters from Converted Photons",
207 std::make_unique<egammaMonitoring::ClusterHistograms>(
208 "clusterConvPhotonTRT",
"Clusters from Converted Photons - TRT",
212 std::make_unique<egammaMonitoring::ClusterHistograms>(
213 "clusterConvPhotonTRTTRT",
214 "Clusters from Converted Photons - TRTTRT",
215 "/MONITORING/clusterConvPhotonTRTTRT/",
rootHistSvc);
218 std::make_unique<egammaMonitoring::ClusterHistograms>(
219 "clusterConvPhotonSiTRT",
220 "Clusters from Converted Photons - SiTRT",
221 "/MONITORING/clusterConvPhotonSiTRT/",
rootHistSvc);
224 std::make_unique<egammaMonitoring::TruthPhotonHistograms>(
225 "truthConvRecoConv1TRT",
"truthConvRecoConv1TRT",
226 "/MONITORING/truthConvRecoConv1TRT/",
rootHistSvc);
229 std::make_unique<egammaMonitoring::TruthPhotonHistograms>(
230 "truthConvRecoConv2TRT",
"truthConvRecoConv2TRT",
231 "/MONITORING/truthConvRecoConv2TRT/",
rootHistSvc);
234 std::make_unique<egammaMonitoring::TruthPhotonHistograms>(
235 "truthConvRecoConv2SiTRT",
"truthConvRecoConv2SiTRT",
236 "/MONITORING/truthConvRecoConv2SiTRT/",
rootHistSvc);
239 std::make_unique<egammaMonitoring::TruthPhotonHistograms>(
240 "truthUnconvRecoConv1TRT",
"truthUnconvRecoConv1TRT",
241 "/MONITORING/truthUnconvRecoConv1TRT/",
rootHistSvc);
244 std::make_unique<egammaMonitoring::TruthPhotonHistograms>(
245 "truthUnconvRecoConv2TRT",
"truthUnconvRecoConv2TRT",
246 "/MONITORING/truthUnconvRecoConv2TRT/",
rootHistSvc);
249 std::make_unique<egammaMonitoring::TruthPhotonHistograms>(
250 "truthUnconvRecoConv2SiTRT",
"truthUnconvRecoConv2SiTRT",
251 "/MONITORING/truthUnconvRecoConv2SiTRT/",
rootHistSvc);
265 truthPhotonAll = std::make_unique<egammaMonitoring::TruthPhotonHistograms>(
266 "truthPhotonAll",
"truthPhotonAll",
"/MONITORING/truthPhotonAll/",
270 std::make_unique<egammaMonitoring::TruthPhotonHistograms>(
271 "truthPhotonAllUnconv",
"truthPhotonAllUnconv",
275 std::make_unique<egammaMonitoring::TruthPhotonHistograms>(
276 "truthPhotonAllConv",
"truthPhotonAllConv",
280 std::make_unique<egammaMonitoring::TruthPhotonHistograms>(
281 "truthPhotonAllLateConv",
"truthPhotonAllLateConv",
282 "/MONITORING/truthPhotonAllLateConv/",
rootHistSvc);
286 std::make_unique<egammaMonitoring::TruthPhotonHistograms>(
287 "truthPhotonRecoPhoton",
"truthPhotonRecoPhoton",
288 "/MONITORING/truthPhotonRecoPhoton/",
rootHistSvc);
291 std::make_unique<egammaMonitoring::TruthPhotonHistograms>(
292 "truthPhotonRecoPhotonOrElectron",
293 "truthPhotonRecoPhotonOrElectron",
294 "/MONITORING/truthPhotonRecoPhotonOrElectron/",
rootHistSvc);
297 std::make_unique<egammaMonitoring::TruthPhotonHistograms>(
298 "truthConvPhoton",
"truthConvPhoton",
302 std::make_unique<egammaMonitoring::TruthPhotonHistograms>(
303 "truthConvRecoConv",
"truthConvRecoConv",
307 std::make_unique<egammaMonitoring::TruthPhotonHistograms>(
308 "truthConvRecoConv1Si",
"truthConvRecoConv1Si",
312 std::make_unique<egammaMonitoring::TruthPhotonHistograms>(
313 "truthConvRecoConv2Si",
"truthConvRecoConv2Si",
317 std::make_unique<egammaMonitoring::TruthPhotonHistograms>(
318 "truthConvRecoUnconv",
"truthConvRecoUnconv",
322 std::make_unique<egammaMonitoring::TruthPhotonHistograms>(
323 "truthUnconvPhoton",
"truthUnconvPhoton",
327 std::make_unique<egammaMonitoring::TruthPhotonHistograms>(
328 "truthUnconvRecoConv",
"truthUnconvRecoConv",
332 std::make_unique<egammaMonitoring::TruthPhotonHistograms>(
333 "truthUnconvRecoConv1Si",
"truthUnconvRecoConv1Si",
334 "/MONITORING/truthUnconvRecoConv1Si/",
rootHistSvc);
337 std::make_unique<egammaMonitoring::TruthPhotonHistograms>(
338 "truthUnconvRecoConv2Si",
"truthUnconvRecoConv2Si",
339 "/MONITORING/truthUnconvRecoConv2Si/",
rootHistSvc);
342 std::make_unique<egammaMonitoring::TruthPhotonHistograms>(
343 "truthUnconvRecoUnconv",
"truthUnconvRecoUnconv",
344 "/MONITORING/truthUnconvRecoUnconv/",
rootHistSvc);
347 std::make_unique<egammaMonitoring::TruthPhotonHistograms>(
348 "recoPhotonUnconvLoose",
"Loose Photons Reco Photon",
349 "/MONITORING/recoPhotonUnconvLoose/",
rootHistSvc);
352 std::make_unique<egammaMonitoring::TruthPhotonHistograms>(
353 "recoPhotonUnconvTight",
"Tight Photons Reco Photon",
354 "/MONITORING/recoPhotonUnconvTight/",
rootHistSvc);
357 std::make_unique<egammaMonitoring::TruthPhotonHistograms>(
358 "recoPhotonConvLoose",
"Loose Photons Reco Photon",
362 std::make_unique<egammaMonitoring::TruthPhotonHistograms>(
363 "recoPhotonConvTight",
"Tight Photons Reco Photon",
367 std::make_unique<egammaMonitoring::TruthPhotonHistograms>(
368 "recoPhotonUnconvIsoFixedCutTight",
369 "Isolation Fixed Cut Tight Photons Reco Photon",
370 "/MONITORING/recoPhotonUnconvIsoFixedCutTight/",
rootHistSvc);
373 std::make_unique<egammaMonitoring::TruthPhotonHistograms>(
374 "recoPhotonUnconvIsoFixedCutTightCaloOnly",
375 "Isolation Fixed Cut Tight Calo Only Photons Reco Photon",
376 "/MONITORING/recoPhotonUnconvIsoFixedCutTightCaloOnly/",
380 std::make_unique<egammaMonitoring::TruthPhotonHistograms>(
381 "recoPhotonUnconvIsoFixedCutLoose",
382 "Isolation Fixed Cut Loose Photons Reco Photon",
383 "/MONITORING/recoPhotonUnconvIsoFixedCutLoose/",
rootHistSvc);
386 std::make_unique<egammaMonitoring::TruthPhotonHistograms>(
387 "recoPhotonConvIsoFixedCutTight",
388 "Isolation Fixed Cut Tight Photons Reco Photon",
389 "/MONITORING/recoPhotonConvIsoFixedCutTight/",
rootHistSvc);
392 std::make_unique<egammaMonitoring::TruthPhotonHistograms>(
393 "recoPhotonConvIsoFixedCutTightCaloOnly",
394 "Isolation Fixed Cut Tight Calo Only Photons Reco Photon",
395 "/MONITORING/recoPhotonConvIsoFixedCutTightCaloOnly/",
rootHistSvc);
398 std::make_unique<egammaMonitoring::TruthPhotonHistograms>(
399 "recoPhotonConvIsoFixedCutLoose",
400 "Isolation Fixed Cut Loose Photons Reco Photon",
401 "/MONITORING/recoPhotonConvIsoFixedCutLoose/",
rootHistSvc);
406 static const std::string typeMatch[5] = {
"",
"MatchElectron",
"NotElectron",
407 "MatchPion",
"NotMatched"};
408 static const std::string typeTrk[2] = {
"",
"TRT"};
409 static const std::string ptTrk[2] = {
"",
"highpT"};
410 static const std::string ctypeMatch[5] = {
411 "",
" match to electrons",
" not matched to electrons",
412 " match to pions",
" not matched"};
413 static const std::string ctypeTrk[2] = {
"",
" TRTSA"};
414 static const std::string cptTrk[2] = {
"",
" pT > 3 GeV"};
416 for (
int im = 0;
im < 5;
im++) {
417 std::string mN = typeMatch[
im];
419 std::string tN = typeTrk[
it];
420 for (
int ip = 0;
ip < 2;
ip++) {
421 std::string pN = ptTrk[
ip];
424 "InDetTracks" + typeTrk[
it] + typeMatch[
im] + ptTrk[
ip];
425 std::string fN =
"/MONITORING/" + nN +
"/";
427 "InDet Tracks" + ctypeTrk[
it] + ctypeMatch[
im] + cptTrk[
ip];
431 std::make_unique<egammaMonitoring::TrackHistograms>(
484 m_dR1 =
new TH1D(
"dR1",
";#Delta R;Events", 1000, 0, 0.1);
486 m_dR2 =
new TH1D(
"dR2",
";#Delta R;Events", 1000, 0, 0.1);
520 return StatusCode::SUCCESS;
525 const EventContext &ctx = Gaudi::Hive::currentContext();
553 ATH_MSG_DEBUG(
"------------ Truth Egamma Container ---------------");
554 for (
const auto *egtruth : *egTruthParticles) {
571 ATH_MSG_DEBUG(
"------------ Truth Particles Container ---------------");
572 unsigned int promptElectronTruthIndex =
574 for (
const auto *truth : *truthParticles) {
576 if (!truth)
continue;
577 if (std::abs(truth->pdgId()) != 11)
continue;
585 bool haspVtx = truth->hasProdVtx();
589 rProd = pvtx->
perp();
591 bool hasdVtx = truth->hasDecayVtx();
599 << truth <<
" TO " << TO <<
" TT " <<
TT
600 <<
" Rprod = " << rProd <<
" Rdec = " << rDec
606 TT == MCTruthPartClassifier::IsoElectron &&
609 promptElectronTruthIndex = truth->index();
620 for (
const auto *
tp : *InDetTPs) {
631 if ((nPi + nSCT) < 7)
continue;
635 if (!truth || std::abs(truth->
pdgId()) != 11)
continue;
641 TT == MCTruthPartClassifier::IsoElectron &&
642 truth->
index() == promptElectronTruthIndex) {
658 if (firstElTruth->
index() == promptElectronTruthIndex) {
666 for (
const auto *gsf : *GSFTracks) {
672 if (!truth)
continue;
680 if ((nPi + nSCT) < 7)
continue;
686 TT == MCTruthPartClassifier::IsoElectron &&
687 truth->
index() == promptElectronTruthIndex) {
700 << firstElTruth->
index());
704 if (firstElTruth->
index() == promptElectronTruthIndex) {
711 ATH_MSG_DEBUG(
"------------ Reco central electrons ---------------");
712 bool foundPromptElectron =
false;
714 for (
const auto *elrec : *RecoEl) {
716 if (!elrec)
continue;
734 if (std::abs(truth->
pdgId()) != 11 || foundPromptElectron)
741 TT == MCTruthPartClassifier::IsoElectron &&
742 truth->
index() == promptElectronTruthIndex) {
747 if (!firstElTruth)
continue;
751 if (firstElTruth->
index() == promptElectronTruthIndex) {
753 elTruth = firstElTruth;
757 foundPromptElectron =
true;
768 for (
const auto *
el : *RecoFwdEl) {
790 if (std::abs(truth->
pdgId()) != 11 &&
791 promptElectronTruthIndex < truthParticles->
size()) {
793 double dR1 = vtruth->
p4().DeltaR(
el->caloCluster()->p4());
794 double dR2 = truth->
p4().DeltaR(
el->caloCluster()->p4());
801 if (std::abs(truth->
pdgId()) != 11)
continue;
805 res.first == MCTruthPartClassifier::IsoElectron &&
806 truth->
index() == promptElectronTruthIndex) {
812 if (!firstElTruth)
continue;
813 if (firstElTruth->
index() == promptElectronTruthIndex) {
815 elTruth = firstElTruth;
819 if (foundPromptElectron) {
820 ATH_MSG_DEBUG(
"A fwd electron also reconstructed as central "
825 if (
el->nTrackParticles() > 0)
828 foundPromptElectron =
true;
830 if (
el->nTrackParticles() > 0)
850 for (
const auto *phrec : *RecoPh) {
866 for (
const auto *egtruth : *egTruthParticles) {
874 bool isTrueLateConv =
885 if (!isTrueConv && !isTrueLateConv)
990 for (
const auto *
tp : *InDetTPs) {
1002 if (
tp->pt() > 3000.) {
1028 if (
tp->pt() > 3000.) {
1047 return StatusCode::SUCCESS;
1056 ATH_MSG_INFO(
"Number of events with electron reconstructed "
1057 "as both Central and Forward "
1062 "trackingEfficiency",
"/MONITORING/trackingEfficiency/",
rootHistSvc);
1066 "GSFEfficiency",
"/MONITORING/GSFEfficiency/",
rootHistSvc);
1070 "matchingEfficiency",
"/MONITORING/matchingEfficiency/",
rootHistSvc);
1074 "reconstructionEfficiency",
"/MONITORING/reconstructionEfficiency/",
1079 "recoElectronLooseLHEfficiency",
1080 "/MONITORING/recoElectronLooseLHEfficiency/",
rootHistSvc);
1084 "recoElectronMediumLHEfficiency",
1085 "/MONITORING/recoElectronMediumLHEfficiency/",
rootHistSvc);
1089 "recoElectronTightLHEfficiency",
1090 "/MONITORING/recoElectronTightLHEfficiency/",
rootHistSvc);
1099 "truthPhotonRecoPhotonEfficiency",
1100 "/MONITORING/truthPhotonRecoPhotonEfficiency/",
rootHistSvc);
1104 "truthPhotonRecoPhotonOrElectronEfficiency",
1105 "/MONITORING/truthPhotonRecoPhotonOrElectronEfficiency/",
rootHistSvc);
1109 "truthPhotonConvRecoEfficiency",
1110 "/MONITORING/truthPhotonConvRecoEfficiency/",
rootHistSvc);
1114 "truthPhotonUnconvRecoEfficiency",
1115 "/MONITORING/truthPhotonUnconvRecoEfficiency/",
rootHistSvc);
1119 "truthPhotonConvRecoConvEfficiency",
1120 "/MONITORING/truthPhotonConvRecoConvEfficiency/",
rootHistSvc);
1124 "truthPhotonConvRecoConv1SiEfficiency",
1125 "/MONITORING/truthPhotonConvRecoConv1SiEfficiency/",
rootHistSvc);
1129 "truthPhotonConvRecoConv2SiEfficiency",
1130 "/MONITORING/truthPhotonConvRecoConv2SiEfficiency/",
rootHistSvc);
1134 "truthPhotonConvRecoUnconvEfficiency",
1135 "/MONITORING/truthPhotonConvRecoUnconvEfficiency/",
rootHistSvc);
1139 "truthPhotonUnconvRecoConvEfficiency",
1140 "/MONITORING/truthPhotonUnconvRecoConvEfficiency/",
rootHistSvc);
1144 "truthPhotonUnconvRecoConv1SiEfficiency",
1145 "/MONITORING/truthPhotonUnconvRecoConv1SiEfficiency/",
rootHistSvc);
1149 "truthPhotonUnconvRecoConv2SiEfficiency",
1150 "/MONITORING/truthPhotonUnconvRecoConv2SiEfficiency/",
rootHistSvc);
1154 "truthPhotonUnconvRecoUnconvEfficiency",
1155 "/MONITORING/truthPhotonUnconvRecoUnconvEfficiency/",
rootHistSvc);
1159 "truthPhotonRecoConvEfficiency",
1160 "/MONITORING/truthPhotonRecoConvEfficiency/",
rootHistSvc);
1164 "truthPhotonRecoUnconvEfficiency",
1165 "/MONITORING/truthPhotonRecoUnconvEfficiency/",
rootHistSvc);
1169 "recoPhotonUnconvIsoFixedCutTightEfficiency",
1170 "/MONITORING/recoPhotonUnconvIsoFixedCutTightEfficiency/",
rootHistSvc);
1175 recoPhotonUnconvIsoFixedCutTightCaloOnlyEfficiency(
1176 "recoPhotonUnconvIsoFixedCutTightCaloOnlyEfficiency",
1177 "/MONITORING/recoPhotonUnconvIsoFixedCutTightCaloOnlyEfficiency/",
1183 "recoPhotonUnconvIsoFixedCutLooseEfficiency",
1184 "/MONITORING/recoPhotonUnconvIsoFixedCutLooseEfficiency/",
rootHistSvc);
1189 "recoPhotonConvIsoFixedCutTightEfficiency",
1190 "/MONITORING/recoPhotonConvIsoFixedCutTightEfficiency/",
rootHistSvc);
1194 recoPhotonConvIsoFixedCutTightCaloOnlyEfficiency(
1195 "recoPhotonConvIsoFixedCutTightCaloOnlyEfficiency",
1196 "/MONITORING/recoPhotonConvIsoFixedCutTightCaloOnlyEfficiency/",
1202 "recoPhotonConvIsoFixedCutLooseEfficiency",
1203 "/MONITORING/recoPhotonConvIsoFixedCutLooseEfficiency/",
rootHistSvc);
1207 "recoPhotonConvLooseEfficiency",
1208 "/MONITORING/recoPhotonConvLooseEfficiency/",
rootHistSvc);
1212 "recoPhotonConvTightEfficiency",
1213 "/MONITORING/recoPhotonConvTightEfficiency/",
rootHistSvc);
1217 "recoPhotonUnconvLooseEfficiency",
1218 "/MONITORING/recoPhotonUnconvLooseEfficiency/",
rootHistSvc);
1222 "recoPhotonUnconvTightEfficiency",
1223 "/MONITORING/recoPhotonUnconvTightEfficiency/",
rootHistSvc);
1228 "truthPhotonRecoPhotonWidth",
"/MONITORING/truthPhotonRecoPhotonWidth/",
1232 "truthPhotonConvPhotonWidth",
"/MONITORING/truthPhotonConvPhotonWidth/",
1236 "truthPhotonConvRecoConvWidth",
1237 "/MONITORING/truthPhotonConvRecoConvWidth/",
rootHistSvc);
1240 "truthPhotonConvRecoConv1SiWidth",
1241 "/MONITORING/truthPhotonConvRecoConv1SiWidth/",
rootHistSvc);
1245 "truthPhotonConvRecoConv2SiWidth",
1246 "/MONITORING/truthPhotonConvRecoConv2SiWidth/",
rootHistSvc);
1251 "truthPhotonConvRecoConv1TRTEfficiency",
1252 "/MONITORING/truthPhotonConvRecoConv1TRTEfficiency/",
rootHistSvc);
1256 "truthPhotonConvRecoConv2TRTEfficiency",
1257 "/MONITORING/truthPhotonConvRecoConv2TRTEfficiency/",
rootHistSvc);
1261 "truthPhotonConvRecoConv2SiTRTEfficiency",
1262 "/MONITORING/truthPhotonConvRecoConv2SiTRTEfficiency/",
rootHistSvc);
1266 "truthPhotonUnconvRecoConv1TRTEfficiency",
1267 "/MONITORING/truthPhotonUnconvRecoConv1TRTEfficiency/",
rootHistSvc);
1271 "truthPhotonUnconvRecoConv2TRTEfficiency",
1272 "/MONITORING/truthPhotonUnconvRecoConv2TRTEfficiency/",
rootHistSvc);
1276 truthPhotonUnconvRecoConv2SiTRTEfficiency(
1277 "truthPhotonUnconvRecoConv2SiTRTEfficiency",
1278 "/MONITORING/truthPhotonUnconvRecoConv2SiTRTEfficiency/",
1284 "truthPhotonConvRecoConv1TRTWidth",
1285 "/MONITORING/truthPhotonConvRecoConv1TRTWidth/",
rootHistSvc);
1289 "truthPhotonConvRecoConv2TRTWidth",
1290 "/MONITORING/truthPhotonConvRecoConv2TRTWidth/",
rootHistSvc);
1294 "truthPhotonConvRecoConv2SiTRTWidth",
1295 "/MONITORING/truthPhotonConvRecoConv2SiTRTWidth/",
rootHistSvc);
1300 "truthPhotonConvRecoUnconvWidth",
1301 "/MONITORING/truthPhotonConvRecoUnconvWidth/",
rootHistSvc);
1305 "truthPhotonUnconvPhotonWidth",
1306 "/MONITORING/truthPhotonUnconvPhotonWidth/",
rootHistSvc);
1309 "truthPhotonUnconvRecoConvWidth",
1310 "/MONITORING/truthPhotonUnconvRecoConvWidth/",
rootHistSvc);
1314 "truthPhotonUnconvRecoUnconvWidth",
1315 "/MONITORING/truthPhotonUnconvRecoUnconvWidth/",
rootHistSvc);
1322 return StatusCode::SUCCESS;
1327 return truth && abs(truth->
pdgId()) == 11;
1332 return truth && abs(truth->
pdgId()) == 211;
1346 double pTL = -9e9, pTSL = -9e9;
1347 for (
const auto *
el : *RecoEl) {
1348 double pt =
el->pt();
1356 }
else if (
pt > pTSL) {
1363 return StatusCode::SUCCESS;
1381 return StatusCode::SUCCESS;
1387 double xmi = 66, xma = 116, eps = 0.01;
1388 int ib1 = hRef->FindBin(xmi + eps);
1389 int ib2 = hRef->FindBin(xma - eps);
1390 TH1D *hmee =
new TH1D(
"mee",
";m_{ee} [GeV];Events / 0.5 GeV", ib2 - ib1 + 1,
1392 for (
int ib = ib1;
ib <= ib2;
ib++) {
1393 double c = hRef->GetBinContent(
ib);
1394 double ec = hRef->GetBinError(
ib);
1395 hmee->SetBinContent(
ib - ib1 + 1,
c);
1396 hmee->SetBinError(
ib - ib1 + 1, ec);
1400 TString vsX[3] = {
"Et",
"Etetale0p8",
"Eta"};
1401 TString coo[3] = {
"x",
"x",
"y"};
1402 for (
int iL = 0; iL < 5; iL++) {
1408 for (
int iX = 0;
iX < 3;
iX++) {
1409 if (iL == 4 &&
iX == 2)
1413 int ieta08 =
nRef->GetYaxis()->FindBin(0.79);
1414 nRef->GetYaxis()->SetRange(1, ieta08);
1415 }
else if (
iX == 2) {
1416 nRef->GetYaxis()->SetRange(1, 25);
1418 TH2D *nRefvsX = (TH2D *)
nRef->Project3D(Form(
"z%s", coo[
iX].
Data()));
1421 pN = Form(
"pn%ivs%s", iL, vsX[
iX].
Data());
1423 pN = Form(
"pEopvs%s", vsX[
iX].
Data());
1424 TProfile *pRefvsX = nRefvsX->ProfileX(pN.Data());
1425 pRefvsX->SetTitle(pN.Data());
1426 pRefvsX->GetXaxis()->SetTitle(
iX < 2 ?
"E_{T} [GeV]" :
"|#eta|");
1427 pRefvsX->GetYaxis()->SetTitle(iL < 4 ? Form(
"nCells_Lr%i", iL) :
"E/p");
1429 Form(
"/MONITORING/Data/%s", pRefvsX->GetName()), pRefvsX));
1433 return StatusCode::SUCCESS;