|
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 47 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);
◆ 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.
◆ 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.
◆ 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 524 of file EgammaMonitoring.cxx.
526 const EventContext &ctx = Gaudi::Hive::currentContext();
530 const float mu = eventInfo->averageInteractionsPerCrossing();
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
604 <<
" eventNumber " << eventInfo->eventNumber());
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 "
703 << eventInfo->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 "
855 <<
" event = " << eventInfo->eventNumber());
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;
◆ 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 1084 of file EgammaMonitoring.cxx.
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);
1118 ATH_CHECK(recoElectronMediumEfficiency.divide(
1121 "recoElectronTightLHEfficiency",
1122 "/MONITORING/recoElectronTightLHEfficiency/",
rootHistSvc);
1131 "truthPhotonRecoPhotonEfficiency",
1132 "/MONITORING/truthPhotonRecoPhotonEfficiency/",
rootHistSvc);
1133 ATH_CHECK(truthPhotonRecoPhotonEfficiency.divide(
1136 "truthPhotonRecoPhotonOrElectronEfficiency",
1137 "/MONITORING/truthPhotonRecoPhotonOrElectronEfficiency/",
rootHistSvc);
1138 ATH_CHECK(truthPhotonRecoPhotonOrElectronEfficiency.divide(
1141 "truthPhotonConvRecoEfficiency",
1142 "/MONITORING/truthPhotonConvRecoEfficiency/",
rootHistSvc);
1146 "truthPhotonUnconvRecoEfficiency",
1147 "/MONITORING/truthPhotonUnconvRecoEfficiency/",
rootHistSvc);
1148 ATH_CHECK(truthPhotonUnconvRecoEfficiency.divide(
1151 "truthPhotonConvRecoConvEfficiency",
1152 "/MONITORING/truthPhotonConvRecoConvEfficiency/",
rootHistSvc);
1153 ATH_CHECK(truthPhotonConvRecoConvEfficiency.divide(
1156 "truthPhotonConvRecoConv1SiEfficiency",
1157 "/MONITORING/truthPhotonConvRecoConv1SiEfficiency/",
rootHistSvc);
1158 ATH_CHECK(truthPhotonConvRecoConv1SiEfficiency.divide(
1161 "truthPhotonConvRecoConv2SiEfficiency",
1162 "/MONITORING/truthPhotonConvRecoConv2SiEfficiency/",
rootHistSvc);
1163 ATH_CHECK(truthPhotonConvRecoConv2SiEfficiency.divide(
1166 "truthPhotonConvRecoUnconvEfficiency",
1167 "/MONITORING/truthPhotonConvRecoUnconvEfficiency/",
rootHistSvc);
1168 ATH_CHECK(truthPhotonConvRecoUnconvEfficiency.divide(
1171 "truthPhotonUnconvRecoConvEfficiency",
1172 "/MONITORING/truthPhotonUnconvRecoConvEfficiency/",
rootHistSvc);
1173 ATH_CHECK(truthPhotonUnconvRecoConvEfficiency.divide(
1176 "truthPhotonUnconvRecoConv1SiEfficiency",
1177 "/MONITORING/truthPhotonUnconvRecoConv1SiEfficiency/",
rootHistSvc);
1178 ATH_CHECK(truthPhotonUnconvRecoConv1SiEfficiency.divide(
1181 "truthPhotonUnconvRecoConv2SiEfficiency",
1182 "/MONITORING/truthPhotonUnconvRecoConv2SiEfficiency/",
rootHistSvc);
1183 ATH_CHECK(truthPhotonUnconvRecoConv2SiEfficiency.divide(
1186 "truthPhotonUnconvRecoUnconvEfficiency",
1187 "/MONITORING/truthPhotonUnconvRecoUnconvEfficiency/",
rootHistSvc);
1188 ATH_CHECK(truthPhotonUnconvRecoUnconvEfficiency.divide(
1191 "truthPhotonRecoConvEfficiency",
1192 "/MONITORING/truthPhotonRecoConvEfficiency/",
rootHistSvc);
1193 ATH_CHECK(truthPhotonRecoConvEfficiency.divide(
1196 "truthPhotonRecoUnconvEfficiency",
1197 "/MONITORING/truthPhotonRecoUnconvEfficiency/",
rootHistSvc);
1198 ATH_CHECK(truthPhotonRecoUnconvEfficiency.divide(
1201 "recoPhotonUnconvIsoFixedCutTightEfficiency",
1202 "/MONITORING/recoPhotonUnconvIsoFixedCutTightEfficiency/",
rootHistSvc);
1203 ATH_CHECK(recoPhotonUnconvIsoFixedCutTightEfficiency.divide(
1207 recoPhotonUnconvIsoFixedCutTightCaloOnlyEfficiency(
1208 "recoPhotonUnconvIsoFixedCutTightCaloOnlyEfficiency",
1209 "/MONITORING/recoPhotonUnconvIsoFixedCutTightCaloOnlyEfficiency/",
1211 ATH_CHECK(recoPhotonUnconvIsoFixedCutTightCaloOnlyEfficiency.divide(
1215 "recoPhotonUnconvIsoFixedCutLooseEfficiency",
1216 "/MONITORING/recoPhotonUnconvIsoFixedCutLooseEfficiency/",
rootHistSvc);
1217 ATH_CHECK(recoPhotonUnconvIsoFixedCutLooseEfficiency.divide(
1221 "recoPhotonConvIsoFixedCutTightEfficiency",
1222 "/MONITORING/recoPhotonConvIsoFixedCutTightEfficiency/",
rootHistSvc);
1223 ATH_CHECK(recoPhotonConvIsoFixedCutTightEfficiency.divide(
1226 recoPhotonConvIsoFixedCutTightCaloOnlyEfficiency(
1227 "recoPhotonConvIsoFixedCutTightCaloOnlyEfficiency",
1228 "/MONITORING/recoPhotonConvIsoFixedCutTightCaloOnlyEfficiency/",
1230 ATH_CHECK(recoPhotonConvIsoFixedCutTightCaloOnlyEfficiency.divide(
1234 "recoPhotonConvIsoFixedCutLooseEfficiency",
1235 "/MONITORING/recoPhotonConvIsoFixedCutLooseEfficiency/",
rootHistSvc);
1236 ATH_CHECK(recoPhotonConvIsoFixedCutLooseEfficiency.divide(
1239 "recoPhotonConvLooseEfficiency",
1240 "/MONITORING/recoPhotonConvLooseEfficiency/",
rootHistSvc);
1241 ATH_CHECK(recoPhotonConvLooseEfficiency.divide(
1244 "recoPhotonConvTightEfficiency",
1245 "/MONITORING/recoPhotonConvTightEfficiency/",
rootHistSvc);
1246 ATH_CHECK(recoPhotonConvTightEfficiency.divide(
1249 "recoPhotonUnconvLooseEfficiency",
1250 "/MONITORING/recoPhotonUnconvLooseEfficiency/",
rootHistSvc);
1251 ATH_CHECK(recoPhotonUnconvLooseEfficiency.divide(
1254 "recoPhotonUnconvTightEfficiency",
1255 "/MONITORING/recoPhotonUnconvTightEfficiency/",
rootHistSvc);
1256 ATH_CHECK(recoPhotonUnconvTightEfficiency.divide(
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);
1285 ATH_CHECK(truthPhotonConvRecoConv1TRTEfficiency.divide(
1288 "truthPhotonConvRecoConv2TRTEfficiency",
1289 "/MONITORING/truthPhotonConvRecoConv2TRTEfficiency/",
rootHistSvc);
1290 ATH_CHECK(truthPhotonConvRecoConv2TRTEfficiency.divide(
1293 "truthPhotonConvRecoConv2SiTRTEfficiency",
1294 "/MONITORING/truthPhotonConvRecoConv2SiTRTEfficiency/",
rootHistSvc);
1295 ATH_CHECK(truthPhotonConvRecoConv2SiTRTEfficiency.divide(
1298 "truthPhotonUnconvRecoConv1TRTEfficiency",
1299 "/MONITORING/truthPhotonUnconvRecoConv1TRTEfficiency/",
rootHistSvc);
1300 ATH_CHECK(truthPhotonUnconvRecoConv1TRTEfficiency.divide(
1303 "truthPhotonUnconvRecoConv2TRTEfficiency",
1304 "/MONITORING/truthPhotonUnconvRecoConv2TRTEfficiency/",
rootHistSvc);
1305 ATH_CHECK(truthPhotonUnconvRecoConv2TRTEfficiency.divide(
1308 truthPhotonUnconvRecoConv2SiTRTEfficiency(
1309 "truthPhotonUnconvRecoConv2SiTRTEfficiency",
1310 "/MONITORING/truthPhotonUnconvRecoConv2SiTRTEfficiency/",
1312 ATH_CHECK(truthPhotonUnconvRecoConv2SiTRTEfficiency.divide(
1316 "truthPhotonConvRecoConv1TRTWidth",
1317 "/MONITORING/truthPhotonConvRecoConv1TRTWidth/",
rootHistSvc);
1318 ATH_CHECK(truthPhotonConvRecoConv1TRTWidth.fill(
1321 "truthPhotonConvRecoConv2TRTWidth",
1322 "/MONITORING/truthPhotonConvRecoConv2TRTWidth/",
rootHistSvc);
1323 ATH_CHECK(truthPhotonConvRecoConv2TRTWidth.fill(
1326 "truthPhotonConvRecoConv2SiTRTWidth",
1327 "/MONITORING/truthPhotonConvRecoConv2SiTRTWidth/",
rootHistSvc);
1328 ATH_CHECK(truthPhotonConvRecoConv2SiTRTWidth.fill(
1332 "truthPhotonConvRecoUnconvWidth",
1333 "/MONITORING/truthPhotonConvRecoUnconvWidth/",
rootHistSvc);
1337 "truthPhotonUnconvPhotonWidth",
1338 "/MONITORING/truthPhotonUnconvPhotonWidth/",
rootHistSvc);
1341 "truthPhotonUnconvRecoConvWidth",
1342 "/MONITORING/truthPhotonUnconvRecoConvWidth/",
rootHistSvc);
1346 "truthPhotonUnconvRecoUnconvWidth",
1347 "/MONITORING/truthPhotonUnconvRecoUnconvWidth/",
rootHistSvc);
1348 ATH_CHECK(truthPhotonUnconvRecoUnconvWidth.fill(
1354 return StatusCode::SUCCESS;
◆ initialize()
StatusCode EgammaMonitoring::initialize |
( |
| ) |
|
|
virtual |
Definition at line 30 of file EgammaMonitoring.cxx.
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;
◆ 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 1416 of file EgammaMonitoring.cxx.
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;
◆ ZeeSelection()
StatusCode EgammaMonitoring::ZeeSelection |
( |
float |
mu, |
|
|
const EventContext & |
ctx |
|
) |
| |
|
private |
Definition at line 1372 of file EgammaMonitoring.cxx.
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;
◆ 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
ITHistSvc* EgammaMonitoring::rootHistSvc = nullptr |
◆ 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 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 below that accepts truth input.
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
double GetBinContent(int) const
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
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
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)
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
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)
void SetBinContent(int, double)
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
ITHistSvc * rootHistSvc
Tools and services ///.
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