ATLAS Offline Software
Loading...
Searching...
No Matches
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
48
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
Definition of CaloDetDescrManager.
Property holding a SG store/key/clid from which a ReadHandle is made.
Property holding a SG store/key/clid from which a WriteHandle is made.
An algorithm that can be simultaneously executed in multiple threads.
This class provides the client interface for accessing the detector description information common to...
Property holding a SG store/key/clid from which a ReadHandle is made.
Property holding a SG store/key/clid from which a WriteHandle is made.
Gaudi::Property< float > m_calotrackdeoverp_high
SG::WriteHandleKey< xAOD::TrigElectronContainer > m_outputElectronsKey
static double getCaloPt(const xAOD::TrigElectron *el)
Gaudi::Property< float > m_calotrkdeta_noextrap_highet
SG::ReadCondHandleKey< CaloDetDescrManager > m_caloDetDescrMgrKey
Gaudi::Property< float > m_trackPtthr_highet
SG::ReadHandleKey< xAOD::TrigEMClusterContainer > m_TrigEMClusterContainerKey
bool extrapolate(const EventContext &ctx, const CaloDetDescrManager &caloDD, const xAOD::TrigEMCluster *, const xAOD::TrackParticle *, double &, double &) const
Gaudi::Property< float > m_calotrkdeta_noextrap
TrigEgammaFastElectronReAlgo(const std::string &name, ISvcLocator *pSvcLocator)
SG::ReadHandleKey< xAOD::TrackParticleContainer > m_TrackParticleContainerKey
static double getTkPt(const xAOD::TrigElectron *el)
Gaudi::Property< float > m_calotrackdeoverp_low
virtual StatusCode initialize() override
virtual StatusCode execute(const EventContext &ctx) const override
SG::ReadHandleKey< TrigRoiDescriptorCollection > m_roiCollectionKey
SG::WriteHandleKey< xAOD::TrigElectronContainer > m_outputDummyElectronsKey
ToolHandle< GenericMonitoringTool > m_monTool
ToolHandle< Trk::IParticleCaloExtensionTool > m_caloExtensionTool
TrackParticle_v1 TrackParticle
Reference the current persistent version:
TrigElectron_v1 TrigElectron
Declare the latest version of the class.
TrigEMCluster_v1 TrigEMCluster
Define the latest version of the trigger EM cluster class.