ATLAS Offline Software
TrigEgammaFastElectronReAlgo.h
Go to the documentation of this file.
1 // -*- C++ -*-
2 
3 /*
4  Copyright (C) 2002-2021 CERN for the benefit of the ATLAS collaboration
5 */
6 
7 /**************************************************************************
8  ** Description: Fex algo to be run before TrigL2ElectronHypo
9  **
10  ** Authors: R. Goncalo <r.goncalo@rhul.ac.uk>
11  ** V. Perez-Reale <perezr@mail.cern.ch>
12  ** N. Berger <Nicolas.Berger@cern.ch> Tue Nov 28 0:56:50 CET 2006
13  ** P. Urquijo <Phillip.Urquijo@cern.ch>
14  **
15  ** Created: 27 Jul 2017
16  **************************************************************************/
17 
18 #ifndef TrigEgammaFastElectronReAlgo_H
19 #define TrigEgammaFastElectronReAlgo_H
20 
21 #include <vector>
22 #include <cmath>
23 #include "GaudiKernel/ToolHandle.h"
24 #include "GaudiKernel/SystemOfUnits.h"
37 
50 
51  public:
52 
53  TrigEgammaFastElectronReAlgo(const std::string & name, ISvcLocator* pSvcLocator);
54 
55  virtual StatusCode initialize() override;
56  virtual StatusCode execute(const EventContext& ctx) const override;
57 
58 
59  private:
60 
61 
62  // Static getter methods for monitoring of TrigElectron container
63  static inline double getCaloPt(const xAOD::TrigElectron* el) {
64  if(!el) return -999.0;
65  return el->pt();
66  }
67 
68  static inline double getTkPt(const xAOD::TrigElectron* el) {
69  if(!el) return -999.0;
70  return (el->trackParticle() ? el->trackParticle()->pt() : -999);
71  }
72 
73  bool extrapolate(const EventContext& ctx,
74  const CaloDetDescrManager& caloDD,
75  const xAOD::TrigEMCluster *,
76  const xAOD::TrackParticle *,
77  double &, double &) const;
78 
79  // Algorithm properties: the parameters are {this, <name>, <default value>, <documentation>}
80  Gaudi::Property<bool> m_acceptAll {this, "AcceptAll", false, "Build electrons for all tracks"};
81  Gaudi::Property<float> m_clusEtthr {this, "ClusEt", 20.0*Gaudi::Units::GeV , " lower limit on cluster Et"};
82  Gaudi::Property<float> m_trackPtthr {this, "TrackPt", 5.0*Gaudi::Units::GeV , "lower limit on TrackPt cut" };
83  Gaudi::Property<float> m_calotrkdeta_noextrap {this, "CaloTrackdEtaNoExtrap", 0.5, "Upper limit on DEta between Calo cluster and Track for track preselection before extrapolation"};
84  Gaudi::Property<float> m_trackPtthr_highet {this, "TrackPtHighEt", 2.0*Gaudi::Units::GeV , "lower limit on TrackPt cut High Et Cluster (20GeV)"};
85  Gaudi::Property<float> m_calotrkdeta_noextrap_highet {this, "CaloTrackdEtaNoExtrapHighEt", 0, "upper limit on DEta between Calo cluster and Track for track preselection before extrapolation for High Et cluster (20GeV)"};
86  Gaudi::Property<float> m_calotrackdeta {this, "CaloTrackdETA", 0, "Upper limit on DEta between Calo cluster and Track"};
87  Gaudi::Property<float> m_calotrackdphi {this, "CaloTrackdPHI", 0, "Upper limit on DPhi between Calo cluster and Track"};
88  Gaudi::Property<float> m_calotrackdeoverp_low {this, "CaloTrackdEoverPLow", 0, "lower limit on E(calo)/p(track)"};
89  Gaudi::Property<float> m_calotrackdeoverp_high {this, "CaloTrackdEoverPHigh", 0, "upper limit on track E(calo)/p(track)"};
90  Gaudi::Property<float> m_RCAL {this, "RCalBarrelFace", 1470.0*Gaudi::Units::mm , "Radius of inner face of the barrel calorimeter"};
91  Gaudi::Property<float> m_ZCAL {this, "ZCalEndcapFace", 3800.0*Gaudi::Units::mm, "z of the inner face of endcap calorimeter"};
92 
93  //
94  ToolHandle<Trk::IParticleCaloExtensionTool> m_caloExtensionTool{
95  this, "ParticleCaloExtensionTool",
96  "Trk::ParticleCaloExtensionTool/ParticleCaloExtensionTool",
97  "Tool to extrapolate Track to Calo inner surface"};
98 
100  "RoIs", // property name
101  "rois", // default value of StoreGate key
102  "input RoI Collection name"};
103 
105  "TrigEMClusterName", // property name
106  "clusters", // default value of StoreGate key
107  "input TrigEMCluster Container name"};
108 
110  "TrackParticlesName", // property name
111  "Tracks", // default value of StoreGate key
112  "input TrackParticle container name"};
113 
115  this,
116  "CaloDetDescrManager",
117  "CaloDetDescrManager",
118  "SG Key for CaloDetDescrManager in the Condition Store"};
119 
121  this,
122  "ElectronsName", // property name
123  "Electrons", // default value of StoreGate key
124  "output Electron container name "};
125 
127  "DummyElectronsName", // property name
128  "Electrons", // default value of StoreGate key
129  "output Dummy Electron container name "};
130 
131  ToolHandle< GenericMonitoringTool > m_monTool { this, "MonTool", "", "Monitoring tool" };
132 
133 };
134 
135 #endif
ReadHandleKey.h
Property holding a SG store/key/clid from which a ReadHandle is made.
TrigEgammaFastElectronReAlgo::extrapolate
bool extrapolate(const EventContext &ctx, const CaloDetDescrManager &caloDD, const xAOD::TrigEMCluster *, const xAOD::TrackParticle *, double &, double &) const
Definition: TrigEgammaFastElectronReAlgo.cxx:288
xAOD::TrigElectron_v1
Class describing an electron reconstructed in the HLT.
Definition: TrigElectron_v1.h:39
TrigElectronContainer.h
TrigEgammaFastElectronReAlgo::m_calotrackdphi
Gaudi::Property< float > m_calotrackdphi
Definition: TrigEgammaFastElectronReAlgo.h:87
TrigElectron.h
TrigEgammaFastElectronReAlgo::m_ZCAL
Gaudi::Property< float > m_ZCAL
Definition: TrigEgammaFastElectronReAlgo.h:91
TrigEMCluster.h
TrigEgammaFastElectronReAlgo::m_RCAL
Gaudi::Property< float > m_RCAL
Definition: TrigEgammaFastElectronReAlgo.h:90
TrigEgammaFastElectronReAlgo::initialize
virtual StatusCode initialize() override
Definition: TrigEgammaFastElectronReAlgo.cxx:33
TrigEgammaFastElectronReAlgo::m_calotrackdeoverp_low
Gaudi::Property< float > m_calotrackdeoverp_low
Definition: TrigEgammaFastElectronReAlgo.h:88
SG::ReadHandleKey< TrigRoiDescriptorCollection >
CaloDetDescrManager.h
Definition of CaloDetDescrManager.
AthReentrantAlgorithm
An algorithm that can be simultaneously executed in multiple threads.
Definition: AthReentrantAlgorithm.h:83
TrigEgammaFastElectronReAlgo::m_calotrkdeta_noextrap_highet
Gaudi::Property< float > m_calotrkdeta_noextrap_highet
Definition: TrigEgammaFastElectronReAlgo.h:85
TrigEgammaFastElectronReAlgo::m_caloExtensionTool
ToolHandle< Trk::IParticleCaloExtensionTool > m_caloExtensionTool
Definition: TrigEgammaFastElectronReAlgo.h:94
GenericMonitoringTool.h
TrigEgammaFastElectronReAlgo::getTkPt
static double getTkPt(const xAOD::TrigElectron *el)
Definition: TrigEgammaFastElectronReAlgo.h:68
SG::WriteHandleKey
Property holding a SG store/key/clid from which a WriteHandle is made.
Definition: StoreGate/StoreGate/WriteHandleKey.h:40
TrigEgammaFastElectronReAlgo::m_calotrackdeoverp_high
Gaudi::Property< float > m_calotrackdeoverp_high
Definition: TrigEgammaFastElectronReAlgo.h:89
TrigEgammaFastElectronReAlgo::getCaloPt
static double getCaloPt(const xAOD::TrigElectron *el)
Definition: TrigEgammaFastElectronReAlgo.h:63
EL::StatusCode
::StatusCode StatusCode
StatusCode definition for legacy code.
Definition: PhysicsAnalysis/D3PDTools/EventLoop/EventLoop/StatusCode.h:22
TrigEgammaFastElectronReAlgo::m_clusEtthr
Gaudi::Property< float > m_clusEtthr
Definition: TrigEgammaFastElectronReAlgo.h:81
plotIsoValidation.el
el
Definition: plotIsoValidation.py:197
TrigEgammaFastElectronReAlgo::m_acceptAll
Gaudi::Property< bool > m_acceptAll
Definition: TrigEgammaFastElectronReAlgo.h:80
TrigEgammaFastElectronReAlgo
TrigEgammaFastElectronReAlgo is a Trigger Fex Algorithm that retrieves the TrigEMCluster container an...
Definition: TrigEgammaFastElectronReAlgo.h:49
TrigEgammaFastElectronReAlgo::m_trackPtthr_highet
Gaudi::Property< float > m_trackPtthr_highet
Definition: TrigEgammaFastElectronReAlgo.h:84
TrigEgammaFastElectronReAlgo::m_outputElectronsKey
SG::WriteHandleKey< xAOD::TrigElectronContainer > m_outputElectronsKey
Definition: TrigEgammaFastElectronReAlgo.h:120
ReadCondHandleKey.h
AthReentrantAlgorithm.h
WriteHandleKey.h
Property holding a SG store/key/clid from which a WriteHandle is made.
TrigEgammaFastElectronReAlgo::m_roiCollectionKey
SG::ReadHandleKey< TrigRoiDescriptorCollection > m_roiCollectionKey
Definition: TrigEgammaFastElectronReAlgo.h:99
name
std::string name
Definition: Control/AthContainers/Root/debug.cxx:195
SG::ReadCondHandleKey< CaloDetDescrManager >
python.SystemOfUnits.mm
int mm
Definition: SystemOfUnits.py:83
IParticleCaloExtensionTool.h
TrigEgammaFastElectronReAlgo::m_outputDummyElectronsKey
SG::WriteHandleKey< xAOD::TrigElectronContainer > m_outputDummyElectronsKey
Definition: TrigEgammaFastElectronReAlgo.h:126
TrigEgammaFastElectronReAlgo::m_trackPtthr
Gaudi::Property< float > m_trackPtthr
Definition: TrigEgammaFastElectronReAlgo.h:82
CaloDetDescrManager
This class provides the client interface for accessing the detector description information common to...
Definition: CaloDetDescrManager.h:473
TrigEgammaFastElectronReAlgo::m_TrigEMClusterContainerKey
SG::ReadHandleKey< xAOD::TrigEMClusterContainer > m_TrigEMClusterContainerKey
Definition: TrigEgammaFastElectronReAlgo.h:104
TrigEgammaFastElectronReAlgo::m_TrackParticleContainerKey
SG::ReadHandleKey< xAOD::TrackParticleContainer > m_TrackParticleContainerKey
Definition: TrigEgammaFastElectronReAlgo.h:109
TrigEgammaFastElectronReAlgo::m_caloDetDescrMgrKey
SG::ReadCondHandleKey< CaloDetDescrManager > m_caloDetDescrMgrKey
Definition: TrigEgammaFastElectronReAlgo.h:114
TrigEgammaFastElectronReAlgo::m_calotrackdeta
Gaudi::Property< float > m_calotrackdeta
Definition: TrigEgammaFastElectronReAlgo.h:86
TrigEgammaFastElectronReAlgo::m_monTool
ToolHandle< GenericMonitoringTool > m_monTool
Definition: TrigEgammaFastElectronReAlgo.h:131
TrigEgammaFastElectronReAlgo::execute
virtual StatusCode execute(const EventContext &ctx) const override
Definition: TrigEgammaFastElectronReAlgo.cxx:74
TrigRoiDescriptor.h
TrigEgammaFastElectronReAlgo::m_calotrkdeta_noextrap
Gaudi::Property< float > m_calotrkdeta_noextrap
Definition: TrigEgammaFastElectronReAlgo.h:83
xAOD::TrackParticle_v1
Class describing a TrackParticle.
Definition: TrackParticle_v1.h:43
xAOD::TrigEMCluster_v1
Description of a trigger EM cluster.
Definition: TrigEMCluster_v1.h:28
GeV
#define GeV
Definition: CaloTransverseBalanceVecMon.cxx:30
TrigEgammaFastElectronReAlgo::TrigEgammaFastElectronReAlgo
TrigEgammaFastElectronReAlgo(const std::string &name, ISvcLocator *pSvcLocator)
Definition: TrigEgammaFastElectronReAlgo.cxx:28
TrackParticleContainer.h