|
ATLAS Offline Software
|
#include <EgammaMonitoring.h>
|
| EgammaMonitoring (const std::string &name, ISvcLocator *pSvcLocator) |
|
| ~EgammaMonitoring () |
|
virtual StatusCode | initialize () |
|
virtual StatusCode | execute () |
|
virtual StatusCode | finalize () |
|
virtual StatusCode | sysInitialize () override |
| Override sysInitialize. More...
|
|
virtual const DataObjIDColl & | extraOutputDeps () const override |
| Return the list of extra output dependencies. More...
|
|
ServiceHandle< StoreGateSvc > & | evtStore () |
| The standard StoreGateSvc (event store) Returns (kind of) a pointer to the StoreGateSvc . More...
|
|
const ServiceHandle< StoreGateSvc > & | evtStore () const |
| The standard StoreGateSvc (event store) Returns (kind of) a pointer to the StoreGateSvc . More...
|
|
const ServiceHandle< StoreGateSvc > & | detStore () const |
| The standard StoreGateSvc/DetectorStore Returns (kind of) a pointer to the StoreGateSvc . More...
|
|
virtual StatusCode | sysStart () override |
| Handle START transition. More...
|
|
virtual std::vector< Gaudi::DataHandle * > | inputHandles () const override |
| Return this algorithm's input handles. More...
|
|
virtual std::vector< Gaudi::DataHandle * > | outputHandles () const override |
| Return this algorithm's output handles. More...
|
|
Gaudi::Details::PropertyBase & | declareProperty (Gaudi::Property< T > &t) |
|
Gaudi::Details::PropertyBase * | declareProperty (const std::string &name, SG::VarHandleKey &hndl, const std::string &doc, const SG::VarHandleKeyType &) |
| Declare a new Gaudi property. More...
|
|
Gaudi::Details::PropertyBase * | declareProperty (const std::string &name, SG::VarHandleBase &hndl, const std::string &doc, const SG::VarHandleType &) |
| Declare a new Gaudi property. More...
|
|
Gaudi::Details::PropertyBase * | declareProperty (const std::string &name, SG::VarHandleKeyArray &hndArr, const std::string &doc, const SG::VarHandleKeyArrayType &) |
|
Gaudi::Details::PropertyBase * | declareProperty (const std::string &name, T &property, const std::string &doc, const SG::NotHandleType &) |
| Declare a new Gaudi property. More...
|
|
Gaudi::Details::PropertyBase * | declareProperty (const std::string &name, T &property, const std::string &doc="none") |
| Declare a new Gaudi property. More...
|
|
void | updateVHKA (Gaudi::Details::PropertyBase &) |
|
MsgStream & | msg () const |
|
MsgStream & | msg (const MSG::Level lvl) const |
|
bool | msgLvl (const MSG::Level lvl) const |
|
|
Gaudi::Property< std::string > | m_sampleType { this, "sampleType", "Unknown", "electron or gamma" } |
| Sample name ///. More...
|
|
Gaudi::Property< bool > | m_hasTRT { this, "hasTRT", true, "is there a TRT in the ID" } |
| is it run 3 or run 4 and later ? More...
|
|
ToolHandle< IAsgElectronLikelihoodTool > | m_Loose_Ele { this, "Loose_Ele", "", "" } |
| Selector tools. More...
|
|
ToolHandle< IAsgElectronLikelihoodTool > | m_Medium_Ele { this, "Medium_Ele", "", "" } |
|
ToolHandle< IAsgElectronLikelihoodTool > | m_Tight_Ele { this, "Tight_Ele", "", "" } |
|
ToolHandle< IAsgElectronLikelihoodTool > | m_Loose_FwdEle { this, "Loose_FwdEle", "", "" } |
|
ToolHandle< IAsgElectronLikelihoodTool > | m_Medium_FwdEle { this, "Medium_FwdEle", "", "" } |
|
ToolHandle< IAsgElectronLikelihoodTool > | m_Tight_FwdEle { this, "Tight_FwdEle", "", "" } |
|
ToolHandle< IAsgPhotonIsEMSelector > | m_Loose_Photon { this, "Loose_Photon", "", "" } |
|
ToolHandle< IAsgPhotonIsEMSelector > | m_Tight_Photon { this, "Tight_Photon", "", "" } |
|
ToolHandle< CP::IIsolationSelectionTool > | m_IsoFixedCutTight { this, "IsoFixedCutTight", "", "" } |
|
ToolHandle< CP::IIsolationSelectionTool > | m_IsoFixedCutTightCaloOnly { this, "IsoTightCaloOnly", "", "" } |
|
ToolHandle< CP::IIsolationSelectionTool > | m_IsoFixedCutLoose { this, "IsoFixedCutLoose", "", "" } |
|
ToolHandle< IMCTruthClassifier > | m_mcTruthClassifier { this, "MCTruthClassifier", "", "" } |
|
SG::ReadHandleKey< xAOD::EventInfo > | m_eventInfoKey { this, "EventInfoKey", "EventInfo", "" } |
|
SG::ReadHandleKey< xAOD::TruthParticleContainer > | m_egTruthParticlesKey { this, "egammaTruthParticlesKey", "", "" } |
|
SG::ReadHandleKey< xAOD::TruthParticleContainer > | m_truthParticlesKey { this, "truthParticlesKey", "", "" } |
|
SG::ReadHandleKey< xAOD::ElectronContainer > | m_ElectronsKey { this, "ElectronsKey", "", "" } |
|
SG::ReadHandleKey< xAOD::ElectronContainer > | m_FwdElectronsKey { this, "FwdElectronsKey", "", "" } |
|
SG::ReadHandleKey< xAOD::PhotonContainer > | m_PhotonsKey { this, "PhotonsKey", "", "" } |
|
SG::ReadHandleKey< xAOD::TrackParticleContainer > | m_InDetTrackParticlesKey { this, "InDetTrackParticlesKey", "InDetTrackParticles", "" } |
|
SG::ReadHandleKey< xAOD::TrackParticleContainer > | m_GSFTrackParticlesKey { this, "GSFTrackParticlesKey", "", "" } |
|
int | m_CenFwdOverlap [2] = { 0, 0 } |
|
TH1D * | m_dR1 {} |
|
TH1D * | m_dR2 {} |
|
DataObjIDColl | m_extendedExtraObjects |
|
StoreGateSvc_t | m_evtStore |
| Pointer to StoreGate (event store by default) More...
|
|
StoreGateSvc_t | m_detStore |
| Pointer to StoreGate (detector store by default) More...
|
|
std::vector< SG::VarHandleKeyArray * > | m_vhka |
|
bool | m_varHandleArraysDeclared |
|
Definition at line 49 of file EgammaMonitoring.h.
◆ StoreGateSvc_t
◆ EgammaMonitoring()
EgammaMonitoring::EgammaMonitoring |
( |
const std::string & |
name, |
|
|
ISvcLocator * |
pSvcLocator |
|
) |
| |
◆ ~EgammaMonitoring()
EgammaMonitoring::~EgammaMonitoring |
( |
| ) |
|
|
inline |
◆ declareGaudiProperty() [1/4]
specialization for handling Gaudi::Property<SG::VarHandleKeyArray>
Definition at line 170 of file AthCommonDataStore.h.
175 hndl.documentation());
◆ declareGaudiProperty() [2/4]
specialization for handling Gaudi::Property<SG::VarHandleKey>
Definition at line 156 of file AthCommonDataStore.h.
161 hndl.documentation());
◆ declareGaudiProperty() [3/4]
specialization for handling Gaudi::Property<SG::VarHandleBase>
Definition at line 184 of file AthCommonDataStore.h.
189 hndl.documentation());
◆ declareGaudiProperty() [4/4]
◆ declareProperty() [1/6]
Declare a new Gaudi property.
- Parameters
-
name | Name of the property. |
hndl | Object holding the property value. |
doc | Documentation string for the property. |
This is the version for types that derive from SG::VarHandleBase
. The property value object is put on the input and output lists as appropriate; then we forward to the base class.
Definition at line 245 of file AthCommonDataStore.h.
250 this->declare(hndl.
vhKey());
251 hndl.
vhKey().setOwner(
this);
253 return PBASE::declareProperty(
name,hndl,
doc);
◆ declareProperty() [2/6]
Declare a new Gaudi property.
- Parameters
-
name | Name of the property. |
hndl | Object holding the property value. |
doc | Documentation string for the property. |
This is the version for types that derive from SG::VarHandleKey
. The property value object is put on the input and output lists as appropriate; then we forward to the base class.
Definition at line 221 of file AthCommonDataStore.h.
229 return PBASE::declareProperty(
name,hndl,
doc);
◆ declareProperty() [3/6]
◆ declareProperty() [4/6]
Declare a new Gaudi property.
- Parameters
-
name | Name of the property. |
property | Object holding the property value. |
doc | Documentation string for the property. |
This is the generic version, for types that do not derive from SG::VarHandleKey
. It just forwards to the base class version of declareProperty
.
Definition at line 333 of file AthCommonDataStore.h.
338 return PBASE::declareProperty(
name, property,
doc);
◆ declareProperty() [5/6]
Declare a new Gaudi property.
- Parameters
-
name | Name of the property. |
property | Object holding the property value. |
doc | Documentation string for the property. |
This dispatches to either the generic declareProperty
or the one for VarHandle/Key/KeyArray.
Definition at line 352 of file AthCommonDataStore.h.
◆ declareProperty() [6/6]
◆ detStore()
◆ evtStore() [1/2]
◆ evtStore() [2/2]
◆ execute()
StatusCode EgammaMonitoring::execute |
( |
| ) |
|
|
virtual |
Definition at line 523 of file EgammaMonitoring.cxx.
525 const EventContext &ctx = Gaudi::Hive::currentContext();
529 const float mu = eventInfo->averageInteractionsPerCrossing();
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
601 <<
" eventNumber " << eventInfo->eventNumber());
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 "
823 <<
" event = " << eventInfo->eventNumber());
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;
◆ extraDeps_update_handler()
Add StoreName to extra input/output deps as needed.
use the logic of the VarHandleKey to parse the DataObjID keys supplied via the ExtraInputs and ExtraOuputs Properties to add the StoreName if it's not explicitly given
◆ extraOutputDeps()
const DataObjIDColl & AthAlgorithm::extraOutputDeps |
( |
| ) |
const |
|
overridevirtualinherited |
Return the list of extra output dependencies.
This list is extended to include symlinks implied by inheritance relations.
Definition at line 50 of file AthAlgorithm.cxx.
57 return Algorithm::extraOutputDeps();
◆ finalize()
StatusCode EgammaMonitoring::finalize |
( |
| ) |
|
|
virtual |
Definition at line 1052 of file EgammaMonitoring.cxx.
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);
1086 ATH_CHECK(recoElectronMediumEfficiency.divide(
1089 "recoElectronTightLHEfficiency",
1090 "/MONITORING/recoElectronTightLHEfficiency/",
rootHistSvc);
1099 "truthPhotonRecoPhotonEfficiency",
1100 "/MONITORING/truthPhotonRecoPhotonEfficiency/",
rootHistSvc);
1101 ATH_CHECK(truthPhotonRecoPhotonEfficiency.divide(
1104 "truthPhotonRecoPhotonOrElectronEfficiency",
1105 "/MONITORING/truthPhotonRecoPhotonOrElectronEfficiency/",
rootHistSvc);
1106 ATH_CHECK(truthPhotonRecoPhotonOrElectronEfficiency.divide(
1109 "truthPhotonConvRecoEfficiency",
1110 "/MONITORING/truthPhotonConvRecoEfficiency/",
rootHistSvc);
1114 "truthPhotonUnconvRecoEfficiency",
1115 "/MONITORING/truthPhotonUnconvRecoEfficiency/",
rootHistSvc);
1116 ATH_CHECK(truthPhotonUnconvRecoEfficiency.divide(
1119 "truthPhotonConvRecoConvEfficiency",
1120 "/MONITORING/truthPhotonConvRecoConvEfficiency/",
rootHistSvc);
1121 ATH_CHECK(truthPhotonConvRecoConvEfficiency.divide(
1124 "truthPhotonConvRecoConv1SiEfficiency",
1125 "/MONITORING/truthPhotonConvRecoConv1SiEfficiency/",
rootHistSvc);
1126 ATH_CHECK(truthPhotonConvRecoConv1SiEfficiency.divide(
1129 "truthPhotonConvRecoConv2SiEfficiency",
1130 "/MONITORING/truthPhotonConvRecoConv2SiEfficiency/",
rootHistSvc);
1131 ATH_CHECK(truthPhotonConvRecoConv2SiEfficiency.divide(
1134 "truthPhotonConvRecoUnconvEfficiency",
1135 "/MONITORING/truthPhotonConvRecoUnconvEfficiency/",
rootHistSvc);
1136 ATH_CHECK(truthPhotonConvRecoUnconvEfficiency.divide(
1139 "truthPhotonUnconvRecoConvEfficiency",
1140 "/MONITORING/truthPhotonUnconvRecoConvEfficiency/",
rootHistSvc);
1141 ATH_CHECK(truthPhotonUnconvRecoConvEfficiency.divide(
1144 "truthPhotonUnconvRecoConv1SiEfficiency",
1145 "/MONITORING/truthPhotonUnconvRecoConv1SiEfficiency/",
rootHistSvc);
1146 ATH_CHECK(truthPhotonUnconvRecoConv1SiEfficiency.divide(
1149 "truthPhotonUnconvRecoConv2SiEfficiency",
1150 "/MONITORING/truthPhotonUnconvRecoConv2SiEfficiency/",
rootHistSvc);
1151 ATH_CHECK(truthPhotonUnconvRecoConv2SiEfficiency.divide(
1154 "truthPhotonUnconvRecoUnconvEfficiency",
1155 "/MONITORING/truthPhotonUnconvRecoUnconvEfficiency/",
rootHistSvc);
1156 ATH_CHECK(truthPhotonUnconvRecoUnconvEfficiency.divide(
1159 "truthPhotonRecoConvEfficiency",
1160 "/MONITORING/truthPhotonRecoConvEfficiency/",
rootHistSvc);
1161 ATH_CHECK(truthPhotonRecoConvEfficiency.divide(
1164 "truthPhotonRecoUnconvEfficiency",
1165 "/MONITORING/truthPhotonRecoUnconvEfficiency/",
rootHistSvc);
1166 ATH_CHECK(truthPhotonRecoUnconvEfficiency.divide(
1169 "recoPhotonUnconvIsoFixedCutTightEfficiency",
1170 "/MONITORING/recoPhotonUnconvIsoFixedCutTightEfficiency/",
rootHistSvc);
1171 ATH_CHECK(recoPhotonUnconvIsoFixedCutTightEfficiency.divide(
1175 recoPhotonUnconvIsoFixedCutTightCaloOnlyEfficiency(
1176 "recoPhotonUnconvIsoFixedCutTightCaloOnlyEfficiency",
1177 "/MONITORING/recoPhotonUnconvIsoFixedCutTightCaloOnlyEfficiency/",
1179 ATH_CHECK(recoPhotonUnconvIsoFixedCutTightCaloOnlyEfficiency.divide(
1183 "recoPhotonUnconvIsoFixedCutLooseEfficiency",
1184 "/MONITORING/recoPhotonUnconvIsoFixedCutLooseEfficiency/",
rootHistSvc);
1185 ATH_CHECK(recoPhotonUnconvIsoFixedCutLooseEfficiency.divide(
1189 "recoPhotonConvIsoFixedCutTightEfficiency",
1190 "/MONITORING/recoPhotonConvIsoFixedCutTightEfficiency/",
rootHistSvc);
1191 ATH_CHECK(recoPhotonConvIsoFixedCutTightEfficiency.divide(
1194 recoPhotonConvIsoFixedCutTightCaloOnlyEfficiency(
1195 "recoPhotonConvIsoFixedCutTightCaloOnlyEfficiency",
1196 "/MONITORING/recoPhotonConvIsoFixedCutTightCaloOnlyEfficiency/",
1198 ATH_CHECK(recoPhotonConvIsoFixedCutTightCaloOnlyEfficiency.divide(
1202 "recoPhotonConvIsoFixedCutLooseEfficiency",
1203 "/MONITORING/recoPhotonConvIsoFixedCutLooseEfficiency/",
rootHistSvc);
1204 ATH_CHECK(recoPhotonConvIsoFixedCutLooseEfficiency.divide(
1207 "recoPhotonConvLooseEfficiency",
1208 "/MONITORING/recoPhotonConvLooseEfficiency/",
rootHistSvc);
1209 ATH_CHECK(recoPhotonConvLooseEfficiency.divide(
1212 "recoPhotonConvTightEfficiency",
1213 "/MONITORING/recoPhotonConvTightEfficiency/",
rootHistSvc);
1214 ATH_CHECK(recoPhotonConvTightEfficiency.divide(
1217 "recoPhotonUnconvLooseEfficiency",
1218 "/MONITORING/recoPhotonUnconvLooseEfficiency/",
rootHistSvc);
1219 ATH_CHECK(recoPhotonUnconvLooseEfficiency.divide(
1222 "recoPhotonUnconvTightEfficiency",
1223 "/MONITORING/recoPhotonUnconvTightEfficiency/",
rootHistSvc);
1224 ATH_CHECK(recoPhotonUnconvTightEfficiency.divide(
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);
1253 ATH_CHECK(truthPhotonConvRecoConv1TRTEfficiency.divide(
1256 "truthPhotonConvRecoConv2TRTEfficiency",
1257 "/MONITORING/truthPhotonConvRecoConv2TRTEfficiency/",
rootHistSvc);
1258 ATH_CHECK(truthPhotonConvRecoConv2TRTEfficiency.divide(
1261 "truthPhotonConvRecoConv2SiTRTEfficiency",
1262 "/MONITORING/truthPhotonConvRecoConv2SiTRTEfficiency/",
rootHistSvc);
1263 ATH_CHECK(truthPhotonConvRecoConv2SiTRTEfficiency.divide(
1266 "truthPhotonUnconvRecoConv1TRTEfficiency",
1267 "/MONITORING/truthPhotonUnconvRecoConv1TRTEfficiency/",
rootHistSvc);
1268 ATH_CHECK(truthPhotonUnconvRecoConv1TRTEfficiency.divide(
1271 "truthPhotonUnconvRecoConv2TRTEfficiency",
1272 "/MONITORING/truthPhotonUnconvRecoConv2TRTEfficiency/",
rootHistSvc);
1273 ATH_CHECK(truthPhotonUnconvRecoConv2TRTEfficiency.divide(
1276 truthPhotonUnconvRecoConv2SiTRTEfficiency(
1277 "truthPhotonUnconvRecoConv2SiTRTEfficiency",
1278 "/MONITORING/truthPhotonUnconvRecoConv2SiTRTEfficiency/",
1280 ATH_CHECK(truthPhotonUnconvRecoConv2SiTRTEfficiency.divide(
1284 "truthPhotonConvRecoConv1TRTWidth",
1285 "/MONITORING/truthPhotonConvRecoConv1TRTWidth/",
rootHistSvc);
1286 ATH_CHECK(truthPhotonConvRecoConv1TRTWidth.fill(
1289 "truthPhotonConvRecoConv2TRTWidth",
1290 "/MONITORING/truthPhotonConvRecoConv2TRTWidth/",
rootHistSvc);
1291 ATH_CHECK(truthPhotonConvRecoConv2TRTWidth.fill(
1294 "truthPhotonConvRecoConv2SiTRTWidth",
1295 "/MONITORING/truthPhotonConvRecoConv2SiTRTWidth/",
rootHistSvc);
1296 ATH_CHECK(truthPhotonConvRecoConv2SiTRTWidth.fill(
1300 "truthPhotonConvRecoUnconvWidth",
1301 "/MONITORING/truthPhotonConvRecoUnconvWidth/",
rootHistSvc);
1305 "truthPhotonUnconvPhotonWidth",
1306 "/MONITORING/truthPhotonUnconvPhotonWidth/",
rootHistSvc);
1309 "truthPhotonUnconvRecoConvWidth",
1310 "/MONITORING/truthPhotonUnconvRecoConvWidth/",
rootHistSvc);
1314 "truthPhotonUnconvRecoUnconvWidth",
1315 "/MONITORING/truthPhotonUnconvRecoUnconvWidth/",
rootHistSvc);
1316 ATH_CHECK(truthPhotonUnconvRecoUnconvWidth.fill(
1322 return StatusCode::SUCCESS;
◆ initialize()
StatusCode EgammaMonitoring::initialize |
( |
| ) |
|
|
virtual |
Definition at line 29 of file EgammaMonitoring.cxx.
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;
◆ inputHandles()
Return this algorithm's input handles.
We override this to include handle instances from key arrays if they have not yet been declared. See comments on updateVHKA.
◆ matchedToElectron()
◆ matchedToPion()
◆ msg() [1/2]
◆ msg() [2/2]
◆ msgLvl()
◆ notMatchedToTruth()
◆ outputHandles()
Return this algorithm's output handles.
We override this to include handle instances from key arrays if they have not yet been declared. See comments on updateVHKA.
◆ renounce()
◆ renounceArray()
◆ sysInitialize()
StatusCode AthAlgorithm::sysInitialize |
( |
| ) |
|
|
overridevirtualinherited |
◆ sysStart()
Handle START transition.
We override this in order to make sure that conditions handle keys can cache a pointer to the conditions container.
◆ updateVHKA()
◆ ZeePostProc()
StatusCode EgammaMonitoring::ZeePostProc |
( |
| ) |
|
|
private |
Definition at line 1384 of file EgammaMonitoring.cxx.
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;
◆ ZeeSelection()
StatusCode EgammaMonitoring::ZeeSelection |
( |
float |
mu, |
|
|
const EventContext & |
ctx |
|
) |
| |
|
private |
Definition at line 1340 of file EgammaMonitoring.cxx.
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;
◆ cluster10GeV
◆ clusterAll
◆ clusterConvPhoton
◆ clusterConvPhotonSi
◆ clusterConvPhotonSiSi
◆ clusterConvPhotonSiTRT
◆ clusterConvPhotonTRT
◆ clusterConvPhotonTRTTRT
◆ clusterPrompt10GeV
◆ clusterPromptAll
◆ clusterUnconvPhoton
◆ isolationAll
◆ m_CenFwdOverlap
int EgammaMonitoring::m_CenFwdOverlap[2] = { 0, 0 } |
|
private |
◆ m_clusterReco
◆ m_detStore
◆ m_diElectron
◆ m_dR1
TH1D* EgammaMonitoring::m_dR1 {} |
|
private |
◆ m_dR2
TH1D* EgammaMonitoring::m_dR2 {} |
|
private |
◆ m_egTruthParticlesKey
◆ m_ElectronsKey
◆ m_eventInfoKey
◆ m_evtStore
◆ m_extendedExtraObjects
DataObjIDColl AthAlgorithm::m_extendedExtraObjects |
|
privateinherited |
◆ m_FwdElectronsKey
◆ m_GSFTrackParticlesKey
◆ m_hasTRT
Gaudi::Property<bool> EgammaMonitoring::m_hasTRT { this, "hasTRT", true, "is there a TRT in the ID" } |
|
private |
◆ m_InDetTrackParticlesKey
◆ m_IsoFixedCutLoose
◆ m_IsoFixedCutTight
◆ m_IsoFixedCutTightCaloOnly
◆ m_Loose_Ele
◆ m_Loose_FwdEle
◆ m_Loose_Photon
◆ m_mcTruthClassifier
ToolHandle<IMCTruthClassifier> EgammaMonitoring::m_mcTruthClassifier { this, "MCTruthClassifier", "", "" } |
|
private |
◆ m_Medium_Ele
◆ m_Medium_FwdEle
◆ m_PhotonsKey
◆ m_sampleType
Gaudi::Property<std::string> EgammaMonitoring::m_sampleType { this, "sampleType", "Unknown", "electron or gamma" } |
|
private |
◆ m_Tight_Ele
◆ m_Tight_FwdEle
◆ m_Tight_Photon
◆ m_truthParticlesKey
◆ m_varHandleArraysDeclared
◆ m_vhka
◆ mapTrkHistograms
◆ recoElectronAll
◆ recoPhotonAll
◆ recoPhotonConvIsoFixedCutLoose
◆ recoPhotonConvIsoFixedCutTight
◆ recoPhotonConvIsoFixedCutTightCaloOnly
◆ recoPhotonConvLoose
◆ recoPhotonConvTight
◆ recoPhotonUnconvIsoFixedCutLoose
◆ recoPhotonUnconvIsoFixedCutTight
◆ recoPhotonUnconvIsoFixedCutTightCaloOnly
◆ recoPhotonUnconvLoose
◆ recoPhotonUnconvTight
◆ rootHistSvc
SmartIF<ITHistSvc> EgammaMonitoring::rootHistSvc |
◆ showerShapes10GeV
◆ showerShapesAll
◆ truthElectronAll
◆ truthElectronRecoElectronAll
◆ truthPhotonAll
◆ truthPhotonAllConv
◆ truthPhotonAllLateConv
◆ truthPhotonAllUnconv
◆ truthPhotonConvPhoton
◆ truthPhotonConvRecoConv
◆ truthPhotonConvRecoConv1Si
◆ truthPhotonConvRecoConv1TRT
◆ truthPhotonConvRecoConv2Si
◆ truthPhotonConvRecoConv2SiTRT
◆ truthPhotonConvRecoConv2TRT
◆ truthPhotonConvRecoUnconv
◆ truthPhotonRecoPhoton
◆ truthPhotonRecoPhotonOrElectron
◆ truthPhotonUnconvPhoton
◆ truthPhotonUnconvRecoConv
◆ truthPhotonUnconvRecoConv1Si
◆ truthPhotonUnconvRecoConv1TRT
◆ truthPhotonUnconvRecoConv2Si
◆ truthPhotonUnconvRecoConv2SiTRT
◆ truthPhotonUnconvRecoConv2TRT
◆ truthPhotonUnconvRecoUnconv
◆ truthPromptElectronAll
◆ truthPromptElectronWithGSFTrack
◆ truthPromptElectronWithReco
◆ truthPromptElectronWithRecoTrack
◆ truthPromptElectronWithTrack
◆ truthRecoElectronLoose
◆ truthRecoElectronMedium
◆ truthRecoElectronTight
The documentation for this class was generated from the following files:
SG::ReadHandleKey< xAOD::EventInfo > m_eventInfoKey
std::unique_ptr< egammaMonitoring::IHistograms > recoPhotonConvTight
std::unique_ptr< egammaMonitoring::IHistograms > truthPhotonUnconvRecoConv
ToolHandle< CP::IIsolationSelectionTool > m_IsoFixedCutTight
std::map< std::string, std::unique_ptr< egammaMonitoring::TrackHistograms > > mapTrkHistograms
const xAOD::Photon * getRecoPhoton(const xAOD::TruthParticle *particle)
return the reco photon associated to the given TruthParticle (if any)
std::unique_ptr< egammaMonitoring::IHistograms > truthPhotonConvRecoUnconv
std::unique_ptr< egammaMonitoring::IHistograms > truthPhotonUnconvRecoUnconv
ToolHandle< CP::IIsolationSelectionTool > m_IsoFixedCutLoose
std::unique_ptr< egammaMonitoring::ClusterHistograms > clusterPrompt10GeV
static bool matchedToPion(const xAOD::TrackParticle &tp)
std::unique_ptr< egammaMonitoring::IHistograms > recoPhotonUnconvLoose
double e1(const xAOD::CaloCluster &cluster)
return the uncorrected cluster energy in 1st sampling
static bool notMatchedToTruth(const xAOD::TrackParticle &tp)
std::unique_ptr< egammaMonitoring::IHistograms > recoPhotonConvIsoFixedCutTight
Gaudi::Details::PropertyBase & declareProperty(Gaudi::Property< T > &t)
std::unique_ptr< egammaMonitoring::IHistograms > truthPhotonAllConv
SG::ReadHandleKey< xAOD::TruthParticleContainer > m_egTruthParticlesKey
std::unique_ptr< egammaMonitoring::IHistograms > truthPhotonConvRecoConv
StoreGateSvc_t m_evtStore
Pointer to StoreGate (event store by default)
ToolHandle< IAsgElectronLikelihoodTool > m_Medium_FwdEle
std::vector< SG::VarHandleKeyArray * > m_vhka
bool msgLvl(const MSG::Level lvl) const
std::unique_ptr< egammaMonitoring::IHistograms > truthPhotonUnconvRecoConv2TRT
ICaloAffectedTool is abstract interface for tools checking if 4 mom is in calo affected region.
@ numberOfPixelHits
these are the pixel hits, including the b-layer [unit8_t].
bool isValid(const T &p)
Av: we implement here an ATLAS-sepcific convention: all particles which are 99xxxxx are fine.
bool const RAWDATA *ch2 const
bool empty() const
Test if the key is blank.
SG::ReadHandleKey< xAOD::TruthParticleContainer > m_truthParticlesKey
ToolHandle< IMCTruthClassifier > m_mcTruthClassifier
StatusCode ZeeSelection(float mu, const EventContext &ctx)
SG::ReadHandleKey< xAOD::TrackParticleContainer > m_GSFTrackParticlesKey
const xAOD::TruthParticle * getBkgElectronMother(const xAOD::Electron *el, const bool allTheWayBack=true)
Helper wrapper function for calling the function above extracting the truth from a reco electron.
Class describing an photon
SG::ReadHandleKey< xAOD::PhotonContainer > m_PhotonsKey
std::unique_ptr< egammaMonitoring::IHistograms > recoPhotonUnconvIsoFixedCutLoose
virtual void setOwner(IDataHandleHolder *o)=0
std::unique_ptr< egammaMonitoring::TruthElectronHistograms > truthPromptElectronWithGSFTrack
ToolHandle< IAsgPhotonIsEMSelector > m_Tight_Photon
std::unique_ptr< egammaMonitoring::ClusterHistograms > clusterAll
std::unique_ptr< egammaMonitoring::TruthElectronHistograms > truthPromptElectronWithRecoTrack
std::unique_ptr< egammaMonitoring::TruthElectronHistograms > truthRecoElectronTight
bool isConvertedPhoton(const xAOD::Egamma *eg, bool excludeTRT=false)
is the object a converted photon
std::unique_ptr< egammaMonitoring::IHistograms > truthPhotonUnconvPhoton
virtual StatusCode sysInitialize() override
Override sysInitialize.
std::unique_ptr< egammaMonitoring::IHistograms > truthPhotonConvRecoConv2Si
SmartIF< ITHistSvc > rootHistSvc
Tools and services ///.
virtual std::vector< Gaudi::DataHandle * > outputHandles() const override
Return this algorithm's output handles.
std::unique_ptr< egammaMonitoring::IHistograms > truthPhotonUnconvRecoConv1TRT
ToolHandle< IAsgElectronLikelihoodTool > m_Tight_Ele
std::unique_ptr< egammaMonitoring::DiObjectHistograms > m_diElectron
def TProfile(*args, **kwargs)
std::unique_ptr< egammaMonitoring::ShowerShapesHistograms > showerShapes10GeV
std::unique_ptr< egammaMonitoring::RecoElectronHistograms > recoElectronAll
ToolHandle< IAsgElectronLikelihoodTool > m_Tight_FwdEle
std::unique_ptr< egammaMonitoring::IHistograms > recoPhotonUnconvIsoFixedCutTightCaloOnly
::StatusCode StatusCode
StatusCode definition for legacy code.
std::unique_ptr< egammaMonitoring::IHistograms > truthPhotonUnconvRecoConv1Si
Class describing a truth particle in the MC record.
std::unique_ptr< egammaMonitoring::IsolationHistograms > isolationAll
std::unique_ptr< egammaMonitoring::ClusterHistograms > clusterConvPhotonSi
float perp() const
Vertex transverse distance from the beam line.
std::pair< std::vector< unsigned int >, bool > res
std::unique_ptr< egammaMonitoring::ClusterHistograms > clusterPromptAll
@ doubleSi
two tracks, both with Si hits
std::unique_ptr< egammaMonitoring::TruthElectronHistograms > truthPromptElectronAll
std::unique_ptr< egammaMonitoring::ShowerShapesHistograms > showerShapesAll
ToolHandle< CP::IIsolationSelectionTool > m_IsoFixedCutTightCaloOnly
std::unique_ptr< egammaMonitoring::ClusterHistograms > clusterUnconvPhoton
static bool matchedToElectron(const xAOD::TrackParticle &tp)
StoreGateSvc_t m_detStore
Pointer to StoreGate (detector store by default)
StatusCode initialize(bool used=true)
If this object is used as a property, then this should be called during the initialize phase.
bool isSingleParticle(const T &p)
Identify a particlegun particle.
std::unique_ptr< egammaMonitoring::IHistograms > truthPhotonAllUnconv
std::unique_ptr< egammaMonitoring::ClusterHistograms > clusterConvPhoton
size_t index() const
Return the index of this element within its container.
Gaudi::Property< std::string > m_sampleType
Sample name ///.
std::unique_ptr< egammaMonitoring::IHistograms > truthPhotonConvRecoConv2SiTRT
std::unique_ptr< egammaMonitoring::IHistograms > truthPhotonAll
std::unique_ptr< egammaMonitoring::IHistograms > truthPhotonAllLateConv
std::unique_ptr< egammaMonitoring::ClusterHistograms > clusterConvPhotonSiSi
std::unique_ptr< egammaMonitoring::IHistograms > recoPhotonConvIsoFixedCutLoose
@ doubleSiTRT
two tracks, only one with Si hits
std::unique_ptr< egammaMonitoring::ClusterHistograms > clusterConvPhotonTRTTRT
@ singleTRT
one track only, no Si hits (TRT only)
std::unique_ptr< egammaMonitoring::IHistograms > truthPhotonUnconvRecoConv2Si
std::unique_ptr< egammaMonitoring::IHistograms > truthPhotonRecoPhoton
virtual void renounce()=0
std::conditional< std::is_base_of< SG::VarHandleKeyArray, T >::value, VarHandleKeyArrayType, type2 >::type type
void fill(H5::Group &out_file, size_t iterations)
std::unique_ptr< egammaMonitoring::IHistograms > truthPhotonConvRecoConv2TRT
SG::ReadHandleKey< xAOD::TrackParticleContainer > m_InDetTrackParticlesKey
bool isTrueConvertedPhoton(const xAOD::Photon *ph, float maxRadius=800.)
is the object matched to a true converted photon with R < maxRadius
Class describing a truth vertex in the MC record.
ToolHandle< IAsgElectronLikelihoodTool > m_Medium_Ele
SG::ReadHandleKey< xAOD::ElectronContainer > m_FwdElectronsKey
@ singleSi
one track only, with Si hits
Gaudi::Property< bool > m_hasTRT
is it run 3 or run 4 and later ?
const xAOD::TruthParticle * getTruthParticle(const xAOD::IParticle &p)
Return the truthParticle associated to the given IParticle (if any)
const xAOD::Electron * getRecoElectron(const xAOD::TruthParticle *)
return the reco electron associated to the given TruthParticle (if any)
std::unique_ptr< egammaMonitoring::TruthElectronHistograms > truthElectronRecoElectronAll
std::size_t numberOfSiHits(const xAOD::TrackParticle *tp)
return the number of Si hits in the track particle
ToolHandle< IAsgPhotonIsEMSelector > m_Loose_Photon
std::unique_ptr< egammaMonitoring::RecoPhotonHistograms > recoPhotonAll
std::unique_ptr< egammaMonitoring::TruthElectronHistograms > truthPromptElectronWithTrack
std::unique_ptr< egammaMonitoring::ClusterHistograms > clusterConvPhotonTRT
DataObjIDColl m_extendedExtraObjects
std::unique_ptr< egammaMonitoring::TruthElectronHistograms > truthElectronAll
std::unique_ptr< egammaMonitoring::IHistograms > truthPhotonConvPhoton
std::unique_ptr< egammaMonitoring::IHistograms > truthPhotonConvRecoConv1TRT
std::unique_ptr< egammaMonitoring::IHistograms > recoPhotonUnconvIsoFixedCutTight
double e2(const xAOD::CaloCluster &cluster)
return the uncorrected cluster energy in 2nd sampling
std::unique_ptr< egammaMonitoring::TruthElectronHistograms > truthPromptElectronWithReco
#define ATH_MSG_WARNING(x)
std::unique_ptr< egammaMonitoring::IHistograms > truthPhotonConvRecoConv1Si
SG::ReadHandleKey< xAOD::ElectronContainer > m_ElectronsKey
std::unique_ptr< egammaMonitoring::IHistograms > truthPhotonUnconvRecoConv2SiTRT
Class describing an electron.
std::unique_ptr< egammaMonitoring::ClusterHistograms > clusterConvPhotonSiTRT
xAOD::EgammaParameters::ConversionType conversionType(const xAOD::Photon *ph)
return the photon conversion type (see EgammaEnums)
std::unique_ptr< egammaMonitoring::RecoClusterHistograms > m_clusterReco
std::unique_ptr< egammaMonitoring::IHistograms > truthPhotonRecoPhotonOrElectron
SG::VarHandleKey & vhKey()
Return a non-const reference to the HandleKey.
=============================================================================
@ numberOfSCTHits
number of hits in SCT [unit8_t].
std::unique_ptr< egammaMonitoring::TruthElectronHistograms > truthRecoElectronLoose
AthAlgorithm()
Default constructor:
@ doubleTRT
two tracks, none with Si hits (TRT only)
std::unique_ptr< egammaMonitoring::TruthElectronHistograms > truthRecoElectronMedium
virtual FourMom_t p4() const override final
The full 4-momentum of the particle.
ToolHandle< IAsgElectronLikelihoodTool > m_Loose_Ele
Selector tools.
int pdgId() const
PDG ID code.
ToolHandle< IAsgElectronLikelihoodTool > m_Loose_FwdEle
std::unique_ptr< egammaMonitoring::IHistograms > recoPhotonConvIsoFixedCutTightCaloOnly
Gaudi::Details::PropertyBase & declareGaudiProperty(Gaudi::Property< T > &hndl, const SG::VarHandleKeyType &)
specialization for handling Gaudi::Property<SG::VarHandleKey>
std::unique_ptr< egammaMonitoring::IHistograms > recoPhotonConvLoose
std::unique_ptr< egammaMonitoring::ClusterHistograms > cluster10GeV
std::unique_ptr< egammaMonitoring::IHistograms > recoPhotonUnconvTight