ATLAS Offline Software
Loading...
Searching...
No Matches
RingerReFex Class Reference

#include <RingerReFex.h>

Inheritance diagram for RingerReFex:
Collaboration diagram for RingerReFex:

Classes

class  RingSet

Public Member Functions

 RingerReFex (const std::string &type, const std::string &name, const IInterface *parent)
 =================================================================================
virtual ~RingerReFex ()
virtual StatusCode initialize () override
 =================================================================================
virtual StatusCode execute (xAOD::TrigEMCluster &emCluster, const IRoiDescriptor &roi, const CaloDetDescrElement *&, const EventContext &context) const override
 =================================================================================
StatusCode prepareRinger (std::vector< RingerReFex::RingSet > &vec_rs, const xAOD::TrigEMCluster &emCluster, const IRoiDescriptor &roi, const EventContext &context) const
ServiceHandle< StoreGateSvc > & evtStore ()
 The standard StoreGateSvc (event store) Returns (kind of) a pointer to the StoreGateSvc.
const ServiceHandle< StoreGateSvc > & detStore () const
 The standard StoreGateSvc/DetectorStore Returns (kind of) a pointer to the StoreGateSvc.
virtual StatusCode sysInitialize () override
 Perform system initialization for an algorithm.
virtual StatusCode sysStart () override
 Handle START transition.
virtual std::vector< Gaudi::DataHandle * > inputHandles () const override
 Return this algorithm's input handles.
virtual std::vector< Gaudi::DataHandle * > outputHandles () const override
 Return this algorithm's output handles.
Gaudi::Details::PropertyBase & declareProperty (Gaudi::Property< T, V, H > &t)
void updateVHKA (Gaudi::Details::PropertyBase &)
MsgStream & msg () const
bool msgLvl (const MSG::Level lvl) const

Protected Member Functions

void renounceArray (SG::VarHandleKeyArray &handlesArray)
 remove all handles from I/O resolution
std::enable_if_t< std::is_void_v< std::result_of_t< decltype(&T::renounce)(T)> > &&!std::is_base_of_v< SG::VarHandleKeyArray, T > &&std::is_base_of_v< Gaudi::DataHandle, T >, void > renounce (T &h)
void extraDeps_update_handler (Gaudi::Details::PropertyBase &ExtraDeps)
 Add StoreName to extra input/output deps as needed.

Protected Attributes

const CaloIdManagerm_larMgr = nullptr
 Calorimeter Id Manager for calorimeter part determination (Barrel versus EndCap).
Gaudi::Property< bool > m_saveCells
Gaudi::Property< float > m_cellkeepthr
ToolHandle< IT2GeometryToolm_geometryTool
ServiceHandle< ITrigCaloDataAccessSvcm_dataSvc

Private Types

typedef ServiceHandle< StoreGateSvcStoreGateSvc_t

Private Member Functions

bool configurationInvalid ()
 =================================================================================
bool maxCell (const CaloCell *cell, double &energy, const double eta_ref, const double phi_ref) const
void printRings (std::vector< RingSet > &, const xAOD::TrigEMCluster &) const
 =================================================================================
Gaudi::Details::PropertyBase & declareGaudiProperty (Gaudi::Property< T, V, H > &hndl, const SG::VarHandleKeyType &)
 specialization for handling Gaudi::Property<SG::VarHandleKey>

Private Attributes

ToolHandle< GenericMonitoringToolm_monTool { this, "MonTool", "", "Monitoring tool"}
SG::WriteHandleKey< xAOD::TrigRingerRingsContainerm_ringerContainerKey {this, "RingerKey", "HLT_FastCaloRinger", "TrigRingerRings container key"}
SG::ReadHandleKey< xAOD::TrigEMClusterContainerm_clusterContainerKey {this, "ClustersName", "HLT_FastCaloEMClusters", "TrigEMCluster container key"}
SG::ReadCondHandleKey< CaloNoisem_noiseCDOKey {this,"CaloNoiseKey","totalNoise","SG Key of CaloNoise data object"}
Gaudi::Property< double > m_etaSearchWindowSize {this, "EtaSearchWindowSize", 0.1, ""}
Gaudi::Property< double > m_phiSearchWindowSize {this, "PhiSearchWindowSize", 0.1, ""}
Gaudi::Property< std::vector< float > > m_deltaEta {this, "DeltaEta" , {} , "Eta step for each layer" }
Gaudi::Property< std::vector< float > > m_deltaPhi {this, "DeltaPhi" , {} , "Phi step for each layer" }
Gaudi::Property< std::vector< unsigned int > > m_nRings {this, "NRings" , {} , "Number of rings for each layer" }
Gaudi::Property< std::vector< float > > m_etaBins {this, "EtaBins" , {} , "Eta bins range cover by the reconstruction."}
Gaudi::Property< std::vector< std::vector< int > > > m_detectors {this, "Detectors" , {} , "" }
Gaudi::Property< std::vector< std::vector< int > > > m_samplings {this, "Samplings" , {} , "" }
Gaudi::Property< std::vector< std::vector< int > > > m_samples {this, "Samples" , {} , "samples per layer" }
Gaudi::Property< bool > m_useTile {this, "UseTile" , true , "Use tile cells" }
Gaudi::Property< bool > m_dumpCells {this, "DumpCells" , false , "Dump Ringer Cells Information" }
Gaudi::Property< bool > m_doNoiseThrRings {this, "DoNoiseThrRings" , false , "Building rings with noise threshold" }
Gaudi::Property< double > m_noiseFactor {this, "NoiseFactor" , 2.0, "Building rings above a factor sigma noise" }
Gaudi::Property< bool > m_globalCenter {this, "GlobalCenter", false, "Use cluster position as center" }
Gaudi::Property< std::vector< bool > > m_doQuarter {this, "DoQuarter", {} , "Do Quarter Rings" }
Gaudi::Property< std::vector< bool > > m_doEtaAxesDivision {this, "DoEtaAxesDivision", {} , "Do Eta axes division" }
Gaudi::Property< std::vector< bool > > m_doPhiAxesDivision {this, "DoPhiAxesDivision",{}, "Do Phi axes division" }
StoreGateSvc_t m_evtStore
 Pointer to StoreGate (event store by default).
StoreGateSvc_t m_detStore
 Pointer to StoreGate (detector store by default).
std::vector< SG::VarHandleKeyArray * > m_vhka
bool m_varHandleArraysDeclared

Detailed Description

Definition at line 24 of file RingerReFex.h.

Member Typedef Documentation

◆ StoreGateSvc_t

typedef ServiceHandle<StoreGateSvc> AthCommonDataStore< AthCommonMsg< AlgTool > >::StoreGateSvc_t
privateinherited

Definition at line 388 of file AthCommonDataStore.h.

Constructor & Destructor Documentation

◆ RingerReFex()

RingerReFex::RingerReFex ( const std::string & type,
const std::string & name,
const IInterface * parent )

=================================================================================

Definition at line 37 of file RingerReFex.cxx.

38 : IReAlgToolCalo(type, name, parent)
39{}
IReAlgToolCalo(const std::string &type, const std::string &name, const IInterface *parent)
Constructor.

◆ ~RingerReFex()

virtual RingerReFex::~RingerReFex ( )
inlinevirtual

Definition at line 62 of file RingerReFex.h.

62{ };

Member Function Documentation

◆ configurationInvalid()

bool RingerReFex::configurationInvalid ( )
private

=================================================================================

Definition at line 43 of file RingerReFex.cxx.

43 {
44
45 if((m_etaBins.size() < 2) || (m_etaBins.size()%2 != 0)){
46 ATH_MSG_FATAL( "Wrong eta range configuration. Size must be equal or more than two." );
47 return true;
48 }
49 return false;
50}
#define ATH_MSG_FATAL(x)
Gaudi::Property< std::vector< float > > m_etaBins
Definition RingerReFex.h:99

◆ declareGaudiProperty()

Gaudi::Details::PropertyBase & AthCommonDataStore< AthCommonMsg< AlgTool > >::declareGaudiProperty ( Gaudi::Property< T, V, H > & hndl,
const SG::VarHandleKeyType &  )
inlineprivateinherited

specialization for handling Gaudi::Property<SG::VarHandleKey>

Definition at line 156 of file AthCommonDataStore.h.

158 {
160 hndl.value(),
161 hndl.documentation());
162
163 }
Gaudi::Details::PropertyBase & declareProperty(Gaudi::Property< T, V, H > &t)

◆ declareProperty()

Gaudi::Details::PropertyBase & AthCommonDataStore< AthCommonMsg< AlgTool > >::declareProperty ( Gaudi::Property< T, V, H > & t)
inlineinherited

Definition at line 145 of file AthCommonDataStore.h.

145 {
146 typedef typename SG::HandleClassifier<T>::type htype;
148 }
Gaudi::Details::PropertyBase & declareGaudiProperty(Gaudi::Property< T, V, H > &hndl, const SG::VarHandleKeyType &)
specialization for handling Gaudi::Property<SG::VarHandleKey>

◆ detStore()

const ServiceHandle< StoreGateSvc > & AthCommonDataStore< AthCommonMsg< AlgTool > >::detStore ( ) const
inlineinherited

The standard StoreGateSvc/DetectorStore Returns (kind of) a pointer to the StoreGateSvc.

Definition at line 95 of file AthCommonDataStore.h.

◆ evtStore()

ServiceHandle< StoreGateSvc > & AthCommonDataStore< AthCommonMsg< AlgTool > >::evtStore ( )
inlineinherited

The standard StoreGateSvc (event store) Returns (kind of) a pointer to the StoreGateSvc.

Definition at line 85 of file AthCommonDataStore.h.

◆ execute()

StatusCode RingerReFex::execute ( xAOD::TrigEMCluster & emCluster,
const IRoiDescriptor & roi,
const CaloDetDescrElement *& ,
const EventContext & context ) const
overridevirtual

=================================================================================

Implements IReAlgToolCalo.

Definition at line 208 of file RingerReFex.cxx.

212{
213
214
215 auto total_time = Monitored::Timer("TIME_total");
216 auto load_cells_time = Monitored::Timer("TIME_load_cells");
217 auto mon = Monitored::Group(m_monTool, total_time, load_cells_time);
218
219 total_time.start();
220
221 SG::WriteHandle<xAOD::TrigRingerRingsContainer> ringsCollection =
222 SG::WriteHandle<xAOD::TrigRingerRingsContainer>( m_ringerContainerKey, context );
223
224 ATH_CHECK( ringsCollection.record( std::make_unique<xAOD::TrigRingerRingsContainer>(),
225 std::make_unique<xAOD::TrigRingerRingsAuxContainer>() ) );
226
227
228
229 // Check if the cluster is in the Eta region
230 bool accept=false;
231 for(unsigned i=0; i<m_etaBins.size();i+=2){
232 if((std::abs(emCluster.eta()) > m_etaBins[i]) && (std::abs(emCluster.eta()) <= m_etaBins[i+1])) accept=true;
233 }
234
235
236 if(!accept){
237 auto dummyRinger = new xAOD::TrigRingerRings();
238 ringsCollection->push_back( dummyRinger );
239 return StatusCode::SUCCESS;
240 }
241
242
243 std::vector<RingerReFex::RingSet> vec_rs;
244 load_cells_time.start();
245 ATH_CHECK(prepareRinger(vec_rs,emCluster,roi,context));
246 load_cells_time.stop();
247
248 std::vector<float> ref_rings;
249 for (std::vector<RingerReFex::RingSet>::iterator it=vec_rs.begin(); it!=vec_rs.end(); ++it)
250 {
251 auto rings = it->rings();
252 ref_rings.insert(ref_rings.end(), rings.begin(), rings.end());
253 }
254
255 auto ptrigRingerRings= new xAOD::TrigRingerRings();
256 ringsCollection->push_back( ptrigRingerRings );
257 ptrigRingerRings->setRings(ref_rings);
258 //ptrigRingerRings->auxdecor<int>("type") = 1;
259 if (m_dumpCells){
260 std::vector<float> cells_eta;
261 std::vector<float> cells_et;
262 std::vector<float> cells_phi;
263 std::vector<int> cells_sampling;
264 std::vector<int> cells_size;
265 std::vector<double> rings_sum;
266 std::vector<int> cells_id;
267 std::vector<float> cells_gain;
268
269 for( auto& rs : vec_rs )
270 rs.fill_cells_info(cells_eta, cells_phi, cells_et, cells_sampling, cells_size, rings_sum, cells_id, cells_gain);
271
272 static const SG::Decorator< std::vector<float> > cells_etaDec("cells_eta");
273 static const SG::Decorator< std::vector<float> > cells_etDec("cells_et");
274 static const SG::Decorator< std::vector<float> > cells_phiDec("cells_phi");
275 static const SG::Decorator< std::vector<int> > cells_samplingDec("cells_sampling");
276 static const SG::Decorator< std::vector<int> > cells_sizeDec("cells_size");
277 static const SG::Decorator< std::vector<int> > cells_idDec("cells_id");
278 static const SG::Decorator< std::vector<float> > cells_gainDec("cells_gain");
279 static const SG::Decorator< std::vector<double> > asym_rings_sumDec("asym_rings_sum");
280 static const SG::Decorator< std::vector<double> > rings_sumDec("rings_sum");
281 cells_etaDec(*ptrigRingerRings) = std::move(cells_eta);
282 cells_etDec(*ptrigRingerRings) = std::move(cells_et);
283 cells_phiDec(*ptrigRingerRings) = std::move(cells_phi);
284 cells_samplingDec(*ptrigRingerRings) = std::move(cells_sampling);
285 cells_sizeDec(*ptrigRingerRings) = std::move(cells_size);
286 cells_idDec(*ptrigRingerRings) = std::move(cells_id);
287 cells_gainDec(*ptrigRingerRings) = std::move(cells_gain);
288
289 if (m_doQuarter[0]) asym_rings_sumDec(*ptrigRingerRings) = std::move(rings_sum);
290 else rings_sumDec(*ptrigRingerRings) = std::move(rings_sum);
291 }
292
294 ptrigRingerRings->setEmClusterLink( clusLink );
295
296
297 if(msgLvl(MSG::DEBUG))
298 printRings(vec_rs, emCluster);
299
300 total_time.stop();
301 return StatusCode::SUCCESS;
302}
#define ATH_CHECK
Evaluate an expression and check for errors.
static Double_t rs
bool msgLvl(const MSG::Level lvl) const
SG::ReadHandleKey< xAOD::TrigEMClusterContainer > m_clusterContainerKey
Definition RingerReFex.h:91
Gaudi::Property< std::vector< bool > > m_doQuarter
Gaudi::Property< bool > m_dumpCells
ToolHandle< GenericMonitoringTool > m_monTool
Definition RingerReFex.h:89
StatusCode prepareRinger(std::vector< RingerReFex::RingSet > &vec_rs, const xAOD::TrigEMCluster &emCluster, const IRoiDescriptor &roi, const EventContext &context) const
SG::WriteHandleKey< xAOD::TrigRingerRingsContainer > m_ringerContainerKey
Definition RingerReFex.h:90
void printRings(std::vector< RingSet > &, const xAOD::TrigEMCluster &) const
=================================================================================
StatusCode record(std::unique_ptr< T > data)
Record a const object to the store.
float eta() const
get Eta (calibrated)
StatusCode accept(const xAOD::Muon *mu)
SG::Decorator< T, ALLOC > Decorator
Helper class to provide type-safe access to aux data, specialized for JaggedVecElt.
Definition AuxElement.h:576
TrigRingerRings_v2 TrigRingerRings
Define the latest version of the TrigRingerRings class.

◆ extraDeps_update_handler()

void AthCommonDataStore< AthCommonMsg< AlgTool > >::extraDeps_update_handler ( Gaudi::Details::PropertyBase & ExtraDeps)
protectedinherited

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

◆ initialize()

StatusCode RingerReFex::initialize ( )
overridevirtual

=================================================================================

Reimplemented from IReAlgToolCalo.

Definition at line 54 of file RingerReFex.cxx.

55{
56
57 if (IReAlgToolCalo::initialize().isFailure()) {
58 ATH_MSG_FATAL( "Could not initialize base tool IReAlgToolCalo." );
59 return StatusCode::FAILURE;
60 }
61
63 return StatusCode::FAILURE;
64 }
65
66 ATH_CHECK( m_ringerContainerKey.initialize() );
67 ATH_CHECK( m_clusterContainerKey.initialize() );
68 ATH_CHECK( m_noiseCDOKey.initialize() );
69
70 if (!m_monTool.empty()){
71 ATH_MSG_DEBUG("Retrieving monTool");
72 CHECK(m_monTool.retrieve());
73 }else{
74 ATH_MSG_INFO("No monTool configured. NO MONITORING");
75 }
76
77
78 ATH_MSG_DEBUG( "Ringer algorithm initialization completed successfully." );
79 ATH_MSG_DEBUG( "User parameters are: " );
80 ATH_MSG_DEBUG( "Using Global Center : " << m_globalCenter );
81 ATH_MSG_DEBUG( "Using Tile cells : " << m_useTile );
82 ATH_MSG_DEBUG( "Search Window in Eta : " << m_etaSearchWindowSize );
83 ATH_MSG_DEBUG( "Search Window in Phi : " << m_phiSearchWindowSize );
84 ATH_MSG_DEBUG( "Dumping cells info : " << m_dumpCells );
85 ATH_MSG_DEBUG( "Building Rings with noise factor : " << m_doNoiseThrRings );
86 ATH_MSG_DEBUG( "Building Rings with Noise Factor Constant: " << m_noiseFactor );
87
88 return StatusCode::SUCCESS;
89}
#define ATH_MSG_INFO(x)
#define ATH_MSG_DEBUG(x)
#define CHECK(...)
Evaluate an expression and check for errors.
virtual StatusCode initialize() override
Gaudi::Property< double > m_phiSearchWindowSize
Definition RingerReFex.h:95
SG::ReadCondHandleKey< CaloNoise > m_noiseCDOKey
Definition RingerReFex.h:92
bool configurationInvalid()
=================================================================================
Gaudi::Property< bool > m_useTile
Gaudi::Property< bool > m_globalCenter
Gaudi::Property< double > m_noiseFactor
Gaudi::Property< bool > m_doNoiseThrRings
Gaudi::Property< double > m_etaSearchWindowSize
Definition RingerReFex.h:94

◆ inputHandles()

virtual std::vector< Gaudi::DataHandle * > AthCommonDataStore< AthCommonMsg< AlgTool > >::inputHandles ( ) const
overridevirtualinherited

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.

◆ maxCell()

bool RingerReFex::maxCell ( const CaloCell * cell,
double & energy,
const double eta_ref,
const double phi_ref ) const
inlineprivate

Definition at line 322 of file RingerReFex.cxx.

323{
324 const double etamin = eta_ref - (0.5 * m_etaSearchWindowSize);
325 const double etamax = eta_ref + (0.5 * m_etaSearchWindowSize);
326 const double phimin = phi_ref - (0.5 * m_phiSearchWindowSize);
327 const double phimax = phi_ref + (0.5 * m_phiSearchWindowSize);
328
329 //are we, possibly at the wrap-around region for phi?
330 bool wrap = Ringer::check_wrap_around(phi_ref, false);
331 bool reverse_wrap = Ringer::check_wrap_around(phi_ref, true);
332
333 if(!cell) return false;
334 double this_eta = cell->eta();
335 double this_phi = cell->phi();
336 if (this_eta > etamin && this_eta < etamax){
337 double phi_use = this_phi; //use this value for phi (wrap protection)
338 if (wrap) phi_use = Ringer::fix_wrap_around(phi_use, false);
339 if (reverse_wrap) phi_use = Ringer::fix_wrap_around(phi_use, true);
340 if (phi_use > phimin && phi_use < phimax){
341 if (cell->energy() > energy) {
342 energy = cell->energy();
343 return true;
344 }
345 }
346 }
347 return false;
348}
bool check_wrap_around(const double phi_center, const bool reverse_wrap)
Helper function to identify wrap around cases.
Definition PhiComps.h:17
double fix_wrap_around(const double phi_value, const bool reverse_wrap)
Helper function to fix wrap around cases.
Definition PhiComps.h:26

◆ msg()

MsgStream & AthCommonMsg< AlgTool >::msg ( ) const
inlineinherited

Definition at line 24 of file AthCommonMsg.h.

24 {
25 return this->msgStream();
26 }

◆ msgLvl()

bool AthCommonMsg< AlgTool >::msgLvl ( const MSG::Level lvl) const
inlineinherited

Definition at line 30 of file AthCommonMsg.h.

30 {
31 return this->msgLevel(lvl);
32 }

◆ outputHandles()

virtual std::vector< Gaudi::DataHandle * > AthCommonDataStore< AthCommonMsg< AlgTool > >::outputHandles ( ) const
overridevirtualinherited

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.

◆ prepareRinger()

StatusCode RingerReFex::prepareRinger ( std::vector< RingerReFex::RingSet > & vec_rs,
const xAOD::TrigEMCluster & emCluster,
const IRoiDescriptor & roi,
const EventContext & context ) const

Definition at line 93 of file RingerReFex.cxx.

96 {
97
98 SG::ReadCondHandle<CaloNoise> noiseHdl{m_noiseCDOKey,context};
99 const CaloNoise* noiseCDO=*noiseHdl;
100 for (unsigned rs = 0; rs < m_nRings.size(); ++rs) {
101
102 auto obj = RingerReFex::RingSet( m_nRings[rs],
103 m_deltaEta[rs],
104 m_deltaPhi[rs],
107 m_samples[rs],
111 vec_rs.push_back( obj );
112 }
113
114 std::vector<const CaloCell*> vec_tile_cells;
115 // Get all cells for the Tile calorimeter
116 std::vector<const TileCell*> sel;
117 std::vector<const TileCell*>::const_iterator it, itBegin, itEnd;
118
119 if( m_dataSvc->loadCollections( context, roi, sel ).isFailure() ){
120 ATH_MSG_ERROR( "Error retrieving TileCalorimeter cells!" );
121 return StatusCode::FAILURE;
122 }
123
124 itBegin = sel.begin();
125 itEnd = sel.end();
126 for(it = itBegin; it != itEnd; ++it)
127 {
128 if(!*it) continue;
129 vec_tile_cells.push_back(static_cast<const CaloCell *>(*it));
130 }
131
132 // This is the main loop
133 for( auto& rs : vec_rs ){
134
135 const CaloCell* hotCell = nullptr;
136 double ehot=-999e30;
137
138 for ( auto det : rs.detectors() ){
139
140 DETID det_id= static_cast<DETID>(det.first);
141 int sampling = det.second;
142
143 if( det_id == TILE ){
144
145 for (std::vector<const CaloCell *>::const_iterator it = vec_tile_cells.begin(); it != vec_tile_cells.end(); ++it)
146 {
147 if( !rs.isValid(*it) ) continue;
148
149 rs.push_back(*it);
150 if( !m_globalCenter ){
151 if( maxCell( *it, ehot, emCluster.eta(), emCluster.phi() ) )
152 hotCell=*it;
153 }
154 }
155
156
157 }else{// TTEM, TTHEC, FCALEM and FCALHAD
158
159 // Load all cells
160 LArTT_Selector<LArCellCont> sel;
162 if( m_dataSvc->loadCollections( context, roi, det_id, sampling, sel ).isFailure() )
163 {
164 ATH_MSG_ERROR( "Failure while trying to retrieve cell information for the "<< det_id <<" calorimeter." );
165 return StatusCode::FAILURE;
166 }
167
168 itBegin = sel.begin();
169 itEnd = sel.end();
170
171 // Loop over all LAr cells
172 // Append all valid cells and search the hottest cell
173 for(it = itBegin; it != itEnd; ++it)
174 {
175 if(!*it) continue;
176 // LAr object to CaloCell
177 const CaloCell *it_tmp = static_cast<const CaloCell*>(*it);
178
179 // Check if the current cells is allow into this rs
180 if( !rs.isValid( it_tmp ) ) continue;
181 rs.push_back(it_tmp);
182
183 if( !m_globalCenter ){
184 if( maxCell( *it, ehot, emCluster.eta(), emCluster.phi() ) )
185 hotCell=*it;
186 }
187 }
188
189 }// Is TILE?
190
191 }// Loop over all det configs
192
193
194 // Use all Tile cells in cache
195 if (m_globalCenter || !hotCell) {
196 rs.buildRings( emCluster.eta(), emCluster.phi(),noiseCDO,m_noiseFactor,m_doNoiseThrRings);
197 }else {
198 rs.buildRings( hotCell->eta(), hotCell->phi(),noiseCDO,m_noiseFactor,m_doNoiseThrRings);
199 }
200
201 }// Loop over all ringer sets
202 return StatusCode::SUCCESS;
203
204}
#define ATH_MSG_ERROR(x)
DETID
An enum to define subdetector names.
Definition RegSelEnums.h:23
@ TILE
Definition RegSelEnums.h:30
#define maxCell
virtual double phi() const override final
get phi (through CaloDetDescrElement)
Definition CaloCell.h:375
virtual double eta() const override final
get eta (through CaloDetDescrElement)
Definition CaloCell.h:382
ServiceHandle< ITrigCaloDataAccessSvc > m_dataSvc
friend class const_iterator
Gaudi::Property< std::vector< float > > m_deltaEta
Definition RingerReFex.h:96
Gaudi::Property< std::vector< float > > m_deltaPhi
Definition RingerReFex.h:97
Gaudi::Property< std::vector< bool > > m_doEtaAxesDivision
Gaudi::Property< std::vector< std::vector< int > > > m_samplings
Gaudi::Property< std::vector< bool > > m_doPhiAxesDivision
Gaudi::Property< std::vector< std::vector< int > > > m_detectors
Gaudi::Property< std::vector< unsigned int > > m_nRings
Definition RingerReFex.h:98
Gaudi::Property< std::vector< std::vector< int > > > m_samples
float phi() const
get Phi (calibrated)

◆ printRings()

void RingerReFex::printRings ( std::vector< RingSet > & vec_rs,
const xAOD::TrigEMCluster & cl ) const
private

=================================================================================

Definition at line 354 of file RingerReFex.cxx.

355{
356 ATH_MSG_INFO("--------------- Cluster Information (2) ----------------");
357
358 //auto cl = ring->emCluster();
359 ATH_MSG_INFO("et = "<< cl.et() << " eta = " << cl.eta() << " roiword = " << cl.RoIword());
360
361
362 for(unsigned rs=0; rs<vec_rs.size(); ++rs){
363 ATH_MSG_INFO("RingSet number is: " << rs);
364 ATH_MSG_INFO("search eta window: " << m_etaSearchWindowSize << " search phi window: " << m_phiSearchWindowSize);
365 ATH_MSG_INFO("deta: " << m_deltaEta[rs] << " dphi: " << m_deltaPhi[rs]);
366 ATH_MSG_INFO("Pattern has size equal than: " << vec_rs.at(rs).rings().size());
367
368 double tot=0;
369 for(unsigned i=0;i<vec_rs.at(rs).rings().size();++i){
370 tot+=vec_rs.at(rs).rings()[i];
371 ATH_MSG_INFO(" Ring " << i << " energy: " << vec_rs.at(rs).rings()[i] << " MeVs.");
372 }
373 ATH_MSG_INFO( "RingSet = " << rs << " Total energy = " << tot );
374 }// Loop over ringSets
375 ATH_MSG_INFO("---------------- End of information -----------------");
376
377}
size_t size() const
Number of registered mappings.
cl
print [x.__class__ for x in toList(dqregion.getSubRegions()) ]

◆ renounce()

std::enable_if_t< std::is_void_v< std::result_of_t< decltype(&T::renounce)(T)> > &&!std::is_base_of_v< SG::VarHandleKeyArray, T > &&std::is_base_of_v< Gaudi::DataHandle, T >, void > AthCommonDataStore< AthCommonMsg< AlgTool > >::renounce ( T & h)
inlineprotectedinherited

Definition at line 380 of file AthCommonDataStore.h.

381 {
382 h.renounce();
384 }
std::enable_if_t< std::is_void_v< std::result_of_t< decltype(&T::renounce)(T)> > &&!std::is_base_of_v< SG::VarHandleKeyArray, T > &&std::is_base_of_v< Gaudi::DataHandle, T >, void > renounce(T &h)

◆ renounceArray()

void AthCommonDataStore< AthCommonMsg< AlgTool > >::renounceArray ( SG::VarHandleKeyArray & handlesArray)
inlineprotectedinherited

remove all handles from I/O resolution

Definition at line 364 of file AthCommonDataStore.h.

364 {
366 }

◆ sysInitialize()

virtual StatusCode AthCommonDataStore< AthCommonMsg< AlgTool > >::sysInitialize ( )
overridevirtualinherited

Perform system initialization for an algorithm.

We override this to declare all the elements of handle key arrays at the end of initialization. See comments on updateVHKA.

Reimplemented in asg::AsgMetadataTool, AthCheckedComponent< AthAlgTool >, AthCheckedComponent<::AthAlgTool >, and DerivationFramework::CfAthAlgTool.

◆ sysStart()

virtual StatusCode AthCommonDataStore< AthCommonMsg< AlgTool > >::sysStart ( )
overridevirtualinherited

Handle START transition.

We override this in order to make sure that conditions handle keys can cache a pointer to the conditions container.

◆ updateVHKA()

void AthCommonDataStore< AthCommonMsg< AlgTool > >::updateVHKA ( Gaudi::Details::PropertyBase & )
inlineinherited

Definition at line 308 of file AthCommonDataStore.h.

308 {
309 // debug() << "updateVHKA for property " << p.name() << " " << p.toString()
310 // << " size: " << m_vhka.size() << endmsg;
311 for (auto &a : m_vhka) {
313 for (auto k : keys) {
314 k->setOwner(this);
315 }
316 }
317 }
std::vector< SG::VarHandleKeyArray * > m_vhka

Member Data Documentation

◆ m_cellkeepthr

Gaudi::Property<float> IReAlgToolCalo::m_cellkeepthr
protectedinherited
Initial value:
{this, "ThresholdKeepCells", 1e5,
"Threshold to keep cells incontainer"}

Definition at line 63 of file IReAlgToolCalo.h.

63 {this, "ThresholdKeepCells", 1e5,
64 "Threshold to keep cells incontainer"};

◆ m_clusterContainerKey

SG::ReadHandleKey<xAOD::TrigEMClusterContainer> RingerReFex::m_clusterContainerKey {this, "ClustersName", "HLT_FastCaloEMClusters", "TrigEMCluster container key"}
private

Definition at line 91 of file RingerReFex.h.

91{this, "ClustersName", "HLT_FastCaloEMClusters", "TrigEMCluster container key"};

◆ m_dataSvc

ServiceHandle<ITrigCaloDataAccessSvc> IReAlgToolCalo::m_dataSvc
protectedinherited
Initial value:
{this, "trigDataAccessMT",
"TrigCaloDataAccessSvc/TrigCaloDataAccessSvc",
"Data Access for LVL2 Calo Algorithms in MT"}

Definition at line 70 of file IReAlgToolCalo.h.

70 {this, "trigDataAccessMT",
71 "TrigCaloDataAccessSvc/TrigCaloDataAccessSvc",
72 "Data Access for LVL2 Calo Algorithms in MT"};

◆ m_deltaEta

Gaudi::Property<std::vector<float> > RingerReFex::m_deltaEta {this, "DeltaEta" , {} , "Eta step for each layer" }
private

Definition at line 96 of file RingerReFex.h.

96{this, "DeltaEta" , {} , "Eta step for each layer" };

◆ m_deltaPhi

Gaudi::Property<std::vector<float> > RingerReFex::m_deltaPhi {this, "DeltaPhi" , {} , "Phi step for each layer" }
private

Definition at line 97 of file RingerReFex.h.

97{this, "DeltaPhi" , {} , "Phi step for each layer" };

◆ m_detectors

Gaudi::Property<std::vector<std::vector<int> > > RingerReFex::m_detectors {this, "Detectors" , {} , "" }
private

Definition at line 100 of file RingerReFex.h.

100{this, "Detectors" , {} , "" };

◆ m_detStore

StoreGateSvc_t AthCommonDataStore< AthCommonMsg< AlgTool > >::m_detStore
privateinherited

Pointer to StoreGate (detector store by default).

Definition at line 393 of file AthCommonDataStore.h.

◆ m_doEtaAxesDivision

Gaudi::Property<std::vector<bool> > RingerReFex::m_doEtaAxesDivision {this, "DoEtaAxesDivision", {} , "Do Eta axes division" }
private

Definition at line 110 of file RingerReFex.h.

110{this, "DoEtaAxesDivision", {} , "Do Eta axes division" };

◆ m_doNoiseThrRings

Gaudi::Property<bool> RingerReFex::m_doNoiseThrRings {this, "DoNoiseThrRings" , false , "Building rings with noise threshold" }
private

Definition at line 106 of file RingerReFex.h.

106{this, "DoNoiseThrRings" , false , "Building rings with noise threshold" };

◆ m_doPhiAxesDivision

Gaudi::Property<std::vector<bool> > RingerReFex::m_doPhiAxesDivision {this, "DoPhiAxesDivision",{}, "Do Phi axes division" }
private

Definition at line 111 of file RingerReFex.h.

111{this, "DoPhiAxesDivision",{}, "Do Phi axes division" };

◆ m_doQuarter

Gaudi::Property<std::vector<bool> > RingerReFex::m_doQuarter {this, "DoQuarter", {} , "Do Quarter Rings" }
private

Definition at line 109 of file RingerReFex.h.

109{this, "DoQuarter", {} , "Do Quarter Rings" };

◆ m_dumpCells

Gaudi::Property<bool> RingerReFex::m_dumpCells {this, "DumpCells" , false , "Dump Ringer Cells Information" }
private

Definition at line 105 of file RingerReFex.h.

105{this, "DumpCells" , false , "Dump Ringer Cells Information" };

◆ m_etaBins

Gaudi::Property<std::vector<float> > RingerReFex::m_etaBins {this, "EtaBins" , {} , "Eta bins range cover by the reconstruction."}
private

Definition at line 99 of file RingerReFex.h.

99{this, "EtaBins" , {} , "Eta bins range cover by the reconstruction."};

◆ m_etaSearchWindowSize

Gaudi::Property<double> RingerReFex::m_etaSearchWindowSize {this, "EtaSearchWindowSize", 0.1, ""}
private

Definition at line 94 of file RingerReFex.h.

94{this, "EtaSearchWindowSize", 0.1, ""};

◆ m_evtStore

StoreGateSvc_t AthCommonDataStore< AthCommonMsg< AlgTool > >::m_evtStore
privateinherited

Pointer to StoreGate (event store by default).

Definition at line 390 of file AthCommonDataStore.h.

◆ m_geometryTool

ToolHandle<IT2GeometryTool> IReAlgToolCalo::m_geometryTool
protectedinherited
Initial value:
{
this, "T2GeometryTool", "T2GeometryTool/T2GeometryTool",
"Tool to check that a cells are contained in a given cluster"}

Definition at line 66 of file IReAlgToolCalo.h.

66 {
67 this, "T2GeometryTool", "T2GeometryTool/T2GeometryTool",
68 "Tool to check that a cells are contained in a given cluster"};

◆ m_globalCenter

Gaudi::Property<bool> RingerReFex::m_globalCenter {this, "GlobalCenter", false, "Use cluster position as center" }
private

Definition at line 108 of file RingerReFex.h.

108{this, "GlobalCenter", false, "Use cluster position as center" };

◆ m_larMgr

const CaloIdManager* IReAlgToolCalo::m_larMgr = nullptr
protectedinherited

Calorimeter Id Manager for calorimeter part determination (Barrel versus EndCap).

Definition at line 57 of file IReAlgToolCalo.h.

◆ m_monTool

ToolHandle< GenericMonitoringTool > RingerReFex::m_monTool { this, "MonTool", "", "Monitoring tool"}
private

Definition at line 89 of file RingerReFex.h.

89{ this, "MonTool", "", "Monitoring tool"};

◆ m_noiseCDOKey

SG::ReadCondHandleKey<CaloNoise> RingerReFex::m_noiseCDOKey {this,"CaloNoiseKey","totalNoise","SG Key of CaloNoise data object"}
private

Definition at line 92 of file RingerReFex.h.

92{this,"CaloNoiseKey","totalNoise","SG Key of CaloNoise data object"};

◆ m_noiseFactor

Gaudi::Property<double> RingerReFex::m_noiseFactor {this, "NoiseFactor" , 2.0, "Building rings above a factor sigma noise" }
private

Definition at line 107 of file RingerReFex.h.

107{this, "NoiseFactor" , 2.0, "Building rings above a factor sigma noise" };

◆ m_nRings

Gaudi::Property<std::vector<unsigned int> > RingerReFex::m_nRings {this, "NRings" , {} , "Number of rings for each layer" }
private

Definition at line 98 of file RingerReFex.h.

98{this, "NRings" , {} , "Number of rings for each layer" };

◆ m_phiSearchWindowSize

Gaudi::Property<double> RingerReFex::m_phiSearchWindowSize {this, "PhiSearchWindowSize", 0.1, ""}
private

Definition at line 95 of file RingerReFex.h.

95{this, "PhiSearchWindowSize", 0.1, ""};

◆ m_ringerContainerKey

SG::WriteHandleKey<xAOD::TrigRingerRingsContainer> RingerReFex::m_ringerContainerKey {this, "RingerKey", "HLT_FastCaloRinger", "TrigRingerRings container key"}
private

Definition at line 90 of file RingerReFex.h.

90{this, "RingerKey", "HLT_FastCaloRinger", "TrigRingerRings container key"};

◆ m_samples

Gaudi::Property<std::vector<std::vector<int> > > RingerReFex::m_samples {this, "Samples" , {} , "samples per layer" }
private

Definition at line 102 of file RingerReFex.h.

102{this, "Samples" , {} , "samples per layer" };

◆ m_samplings

Gaudi::Property<std::vector<std::vector<int> > > RingerReFex::m_samplings {this, "Samplings" , {} , "" }
private

Definition at line 101 of file RingerReFex.h.

101{this, "Samplings" , {} , "" };

◆ m_saveCells

Gaudi::Property<bool> IReAlgToolCalo::m_saveCells
protectedinherited
Initial value:
{this, "SaveCellsInContainer", false,
"Enables saving of the RoI Calorimeter Cells in StoreGate"}

Definition at line 60 of file IReAlgToolCalo.h.

60 {this, "SaveCellsInContainer", false,
61 "Enables saving of the RoI Calorimeter Cells in StoreGate"};

◆ m_useTile

Gaudi::Property<bool> RingerReFex::m_useTile {this, "UseTile" , true , "Use tile cells" }
private

Definition at line 104 of file RingerReFex.h.

104{this, "UseTile" , true , "Use tile cells" };

◆ m_varHandleArraysDeclared

bool AthCommonDataStore< AthCommonMsg< AlgTool > >::m_varHandleArraysDeclared
privateinherited

Definition at line 399 of file AthCommonDataStore.h.

◆ m_vhka

std::vector<SG::VarHandleKeyArray*> AthCommonDataStore< AthCommonMsg< AlgTool > >::m_vhka
privateinherited

Definition at line 398 of file AthCommonDataStore.h.


The documentation for this class was generated from the following files: