ATLAS Offline Software
Public Member Functions | Static Public Member Functions | Protected Member Functions | Private Types | Private Member Functions | Private Attributes | List of all members
Ringer::CaloAsymRingsBuilder Class Reference

#include <CaloAsymRingsBuilder.h>

Inheritance diagram for Ringer::CaloAsymRingsBuilder:
Collaboration diagram for Ringer::CaloAsymRingsBuilder:

Public Member Functions

std::size_t nRingSets () const override
 
const SG::WriteHandleKey< xAOD::CaloRingsContainer > & crContName () const override
 
const SG::WriteHandleKey< xAOD::RingSetContainer > & rsContName () const override
 
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 sysInitialize () override
 Perform system initialization for an algorithm. 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
 
CaloAsymRingsBuilder ctors and dtors:
 CaloAsymRingsBuilder (const std::string &type, const std::string &name, const IInterface *parent)
 Default constructor. More...
 
 ~CaloAsymRingsBuilder ()
 Destructor. More...
 
virtual StatusCode initialize () override
 Tool main methods: More...
 
virtual StatusCode finalize () override
 finalize method More...
 

Static Public Member Functions

static const InterfaceID & interfaceID ()
 AlgTool interface methods. More...
 

Protected Member Functions

virtual StatusCode buildRingSet (const xAOD::RingSetConf::RawConf &rawConf, const AtlasGeoPoint &seed, xAOD::RingSet *rs) override
 main method where the RingSets are built. More...
 
void renounceArray (SG::VarHandleKeyArray &handlesArray)
 remove all handles from I/O resolution More...
 
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. More...
 

Protected Attributes

bool m_doEtaAxesDivision
 This can be set True to divide in two the eta axes. More...
 
bool m_doPhiAxesDivision
 This can be set True to divide in two the phi axes. More...
 
bool m_doTransverseEnergy = false
 

Private Types

typedef ServiceHandle< StoreGateSvcStoreGateSvc_t
 

Private Member Functions

Gaudi::Details::PropertyBase & declareGaudiProperty (Gaudi::Property< T > &hndl, const SG::VarHandleKeyType &)
 specialization for handling Gaudi::Property<SG::VarHandleKey> More...
 
Gaudi::Details::PropertyBase & declareGaudiProperty (Gaudi::Property< T > &hndl, const SG::VarHandleKeyArrayType &)
 specialization for handling Gaudi::Property<SG::VarHandleKeyArray> More...
 
Gaudi::Details::PropertyBase & declareGaudiProperty (Gaudi::Property< T > &hndl, const SG::VarHandleType &)
 specialization for handling Gaudi::Property<SG::VarHandleBase> More...
 
Gaudi::Details::PropertyBase & declareGaudiProperty (Gaudi::Property< T > &t, const SG::NotHandleType &)
 specialization for handling everything that's not a Gaudi::Property<SG::VarHandleKey> or a <SG::VarHandleKeyArray> More...
 

Private Attributes

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
 
template<typename T >
StatusCode executeTemp (const T &input, ElementLink< xAOD::CaloRingsContainer > &crEL)
 Tool protected methods: More...
 
StatusCode getRingSetSeed (const xAOD::RingSetConf::RawConf &conf, const xAOD::CaloCluster &cluster, AtlasGeoPoint &seed)
 Fill RingSet seed for CaloCluster. More...
 
static StatusCode getRingSetSeed (const xAOD::RingSetConf::RawConf &, const xAOD::IParticle &part, AtlasGeoPoint &seed)
 Fill RingSet seed for IParticle. More...
 
xAOD::RingSetContainerm_rsCont
 Tool props (non configurables): More...
 
xAOD::CaloRingsContainerm_crCont
 Create and hold CaloRingsContainer for each event. More...
 
xAOD::RingSetConf::RawConfCollection m_rsRawConfCol
 holds each RingSet configuration (filled at initialize) More...
 
AtlasGeoPoint m_lastValidSeed
 last valid RingSet seed More...
 
size_t m_nRingSets
 hold the number of RingSets we are building for each CaloRings More...
 
static const CaloPhiRange m_phiHelper
 used for phi wrap-around More...
 

Detailed Description

Definition at line 14 of file CaloAsymRingsBuilder.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

◆ CaloAsymRingsBuilder()

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

Default constructor.

Definition at line 40 of file CaloAsymRingsBuilder.cxx.

43  : CaloRingsBuilder(type, name, parent)//AthAlgTool(type, name, parent)
44 {
45 
46  // declare interface
47  declareInterface<ICaloRingsBuilder>(this);
48 
49  declareProperty("doEtaAxesDivision", m_doEtaAxesDivision = false,
50  "Eta Axes can be divide in two.");
51  declareProperty("doPhiAxesDivision", m_doPhiAxesDivision = false,
52  "Phi Axes can be divide in two.");
53 }

◆ ~CaloAsymRingsBuilder()

Ringer::CaloAsymRingsBuilder::~CaloAsymRingsBuilder ( )
default

Destructor.

Member Function Documentation

◆ buildRingSet()

StatusCode Ringer::CaloAsymRingsBuilder::buildRingSet ( const xAOD::RingSetConf::RawConf rawConf,
const AtlasGeoPoint seed,
xAOD::RingSet rs 
)
overrideprotectedvirtual

main method where the RingSets are built.

Reimplemented from Ringer::CaloRingsBuilder.

Definition at line 137 of file CaloAsymRingsBuilder.cxx.

141 {
142  // Retrieve CaloCells
144  // check is only used for serial running; remove when MT scheduler used
145  if(!cellsCont.isValid()) {
146  ATH_MSG_FATAL("Failed to retrieve "<< m_cellsContName.key());
147  return StatusCode::FAILURE;
148  }
149 
151  const CaloDetDescrManager* caloMgr=*caloMgrHandle;
152 
153  CaloCellList cells(caloMgr, cellsCont.ptr() );
154 
155  // Get this RingSet size:
156  const auto nRings = rawConf.nRings;
157  // loop over cells
158  for ( const int layer : rawConf.layers) { // We use int here because the
159  // cells.select() method needs int as param
160  // FIXME This could have its speed improved by selecting only the truly
161  // needed window:
162  // If the nRings * eta/phi width is lower than cellMaxDEtaDist, then use it
163  // instead
164  cells.select(seed.eta(), seed.phi(), m_cellMaxDEtaDist, m_cellMaxDPhiDist, layer );
165  for ( const CaloCell *cell : cells ) {
166  unsigned int ringNumber(0);
167 
168  // calculate the normalised difference in eta
169  float deltaEta = (cell->eta() - seed.eta())
170  / rawConf.etaWidth;
171  bool etaPositive = deltaEta > 0;
172  deltaEta = fabs(deltaEta);
173 
174  // TODO Add phi asimetry...
175  // calculate the normalised difference in phi
176  float deltaPhi = CaloPhiRange::diff(cell->phi(), seed.phi());
177 
178  bool phiPositive = deltaPhi > 0;
179  deltaPhi = fabs(deltaPhi)/rawConf.phiWidth;
180 
181  // The biggest difference indicates the ring number (we are using
182  // squared-shape rings)
183  const float deltaGreater = std::max(deltaEta, deltaPhi);
184 
185  // Round to nearest integer:
186  ringNumber = static_cast<unsigned int>(std::floor(deltaGreater + .5));
187 
188  // Correct position in which we shall fill the ring:
189  if ( m_doEtaAxesDivision && m_doPhiAxesDivision && ringNumber ){
190  if (phiPositive){
191  if (etaPositive){
192  ringNumber = (ringNumber * 4) - 3;
193  }
194  else{
195  ringNumber = (ringNumber * 4) - 2;
196  }
197  }
198  else if (etaPositive){
199  ringNumber = (ringNumber * 4) - 1;
200  }
201  else{
202  ringNumber = (ringNumber * 4);
203  }
204  } else if ((m_doEtaAxesDivision || m_doPhiAxesDivision) && ringNumber){
205  if (m_doEtaAxesDivision){
206  ringNumber = (etaPositive)?(ringNumber * 2):
207  ((ringNumber * 2) - 1);
208  }
209  else {
210  ringNumber = (phiPositive)?(ringNumber * 2):
211  ((ringNumber * 2) - 1);
212  }
213  }
214 
215  if ( ringNumber < nRings ){
217  rs->at(ringNumber) += cell->energy()/cosh(cell->eta());
218  }else{
219  rs->at(ringNumber) += cell->energy();
220  }
221  }
222 
223  }
224  }
225  return StatusCode::SUCCESS;
226 }

◆ crContName()

const SG::WriteHandleKey<xAOD::CaloRingsContainer>& Ringer::CaloRingsBuilder::crContName ( ) const
inlineoverridevirtualinherited

Implements Ringer::ICaloRingsBuilder.

Definition at line 108 of file CaloRingsBuilder.h.

108 { return m_crContName; }

◆ declareGaudiProperty() [1/4]

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

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

Definition at line 170 of file AthCommonDataStore.h.

172  {
173  return *AthCommonDataStore<PBASE>::declareProperty(hndl.name(),
174  hndl.value(),
175  hndl.documentation());
176 
177  }

◆ declareGaudiProperty() [2/4]

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

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

Definition at line 156 of file AthCommonDataStore.h.

158  {
159  return *AthCommonDataStore<PBASE>::declareProperty(hndl.name(),
160  hndl.value(),
161  hndl.documentation());
162 
163  }

◆ declareGaudiProperty() [3/4]

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

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

Definition at line 184 of file AthCommonDataStore.h.

186  {
187  return *AthCommonDataStore<PBASE>::declareProperty(hndl.name(),
188  hndl.value(),
189  hndl.documentation());
190  }

◆ declareGaudiProperty() [4/4]

Gaudi::Details::PropertyBase& AthCommonDataStore< AthCommonMsg< AlgTool > >::declareGaudiProperty ( Gaudi::Property< T > &  t,
const SG::NotHandleType  
)
inlineprivateinherited

specialization for handling everything that's not a Gaudi::Property<SG::VarHandleKey> or a <SG::VarHandleKeyArray>

Definition at line 199 of file AthCommonDataStore.h.

200  {
201  return PBASE::declareProperty(t);
202  }

◆ declareProperty() [1/6]

Gaudi::Details::PropertyBase* AthCommonDataStore< AthCommonMsg< AlgTool > >::declareProperty ( const std::string &  name,
SG::VarHandleBase hndl,
const std::string &  doc,
const SG::VarHandleType  
)
inlineinherited

Declare a new Gaudi property.

Parameters
nameName of the property.
hndlObject holding the property value.
docDocumentation 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.

249  {
250  this->declare(hndl.vhKey());
251  hndl.vhKey().setOwner(this);
252 
253  return PBASE::declareProperty(name,hndl,doc);
254  }

◆ declareProperty() [2/6]

Gaudi::Details::PropertyBase* AthCommonDataStore< AthCommonMsg< AlgTool > >::declareProperty ( const std::string &  name,
SG::VarHandleKey hndl,
const std::string &  doc,
const SG::VarHandleKeyType  
)
inlineinherited

Declare a new Gaudi property.

Parameters
nameName of the property.
hndlObject holding the property value.
docDocumentation 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.

225  {
226  this->declare(hndl);
227  hndl.setOwner(this);
228 
229  return PBASE::declareProperty(name,hndl,doc);
230  }

◆ declareProperty() [3/6]

Gaudi::Details::PropertyBase* AthCommonDataStore< AthCommonMsg< AlgTool > >::declareProperty ( const std::string &  name,
SG::VarHandleKeyArray hndArr,
const std::string &  doc,
const SG::VarHandleKeyArrayType  
)
inlineinherited

Definition at line 259 of file AthCommonDataStore.h.

263  {
264 
265  // std::ostringstream ost;
266  // ost << Algorithm::name() << " VHKA declareProp: " << name
267  // << " size: " << hndArr.keys().size()
268  // << " mode: " << hndArr.mode()
269  // << " vhka size: " << m_vhka.size()
270  // << "\n";
271  // debug() << ost.str() << endmsg;
272 
273  hndArr.setOwner(this);
274  m_vhka.push_back(&hndArr);
275 
276  Gaudi::Details::PropertyBase* p = PBASE::declareProperty(name, hndArr, doc);
277  if (p != 0) {
278  p->declareUpdateHandler(&AthCommonDataStore<PBASE>::updateVHKA, this);
279  } else {
280  ATH_MSG_ERROR("unable to call declareProperty on VarHandleKeyArray "
281  << name);
282  }
283 
284  return p;
285 
286  }

◆ declareProperty() [4/6]

Gaudi::Details::PropertyBase* AthCommonDataStore< AthCommonMsg< AlgTool > >::declareProperty ( const std::string &  name,
T &  property,
const std::string &  doc,
const SG::NotHandleType  
)
inlineinherited

Declare a new Gaudi property.

Parameters
nameName of the property.
propertyObject holding the property value.
docDocumentation 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.

337  {
338  return PBASE::declareProperty(name, property, doc);
339  }

◆ declareProperty() [5/6]

Gaudi::Details::PropertyBase* AthCommonDataStore< AthCommonMsg< AlgTool > >::declareProperty ( const std::string &  name,
T &  property,
const std::string &  doc = "none" 
)
inlineinherited

Declare a new Gaudi property.

Parameters
nameName of the property.
propertyObject holding the property value.
docDocumentation 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.

355  {
356  typedef typename SG::HandleClassifier<T>::type htype;
357  return declareProperty (name, property, doc, htype());
358  }

◆ declareProperty() [6/6]

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

Definition at line 145 of file AthCommonDataStore.h.

145  {
146  typedef typename SG::HandleClassifier<T>::type htype;
148  }

◆ 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.

95 { return m_detStore; }

◆ evtStore() [1/2]

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.

85 { return m_evtStore; }

◆ evtStore() [2/2]

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

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

Definition at line 90 of file AthCommonDataStore.h.

90 { return m_evtStore; }

◆ execute() [1/2]

StatusCode Ringer::CaloRingsBuilder::execute ( const xAOD::CaloCluster cluster,
ElementLink< xAOD::CaloRingsContainer > &  clRingsLink 
)
overridevirtualinherited

build CaloRings for CaloCluster

Implements Ringer::ICaloRingsBuilder.

Definition at line 155 of file CaloRingsBuilder.cxx.

157 {
158  double et(0.);
159  const double eta2 = std::fabs(cluster.etaBE(2));
160  const double energy = cluster.e();
161  if ( eta2 < 999.) {
162  const double cosheta = std::cosh(eta2);
163  et = (cosheta != 0.) ? energy /cosheta : 0.;
164  }
165  if ( et > m_minEnergy )
166  {
167  return executeTemp(cluster, clRings);
168  } else {
169  ATH_MSG_DEBUG( "Skipping cluster with low energy (" << et << " MeV) .");
170  return StatusCode::SUCCESS;
171  }
172 }

◆ execute() [2/2]

StatusCode Ringer::CaloRingsBuilder::execute ( const xAOD::IParticle particle,
ElementLink< xAOD::CaloRingsContainer > &  clRingsLink 
)
overridevirtualinherited

build CaloRings for IParticle

Implements Ringer::ICaloRingsBuilder.

Definition at line 175 of file CaloRingsBuilder.cxx.

178 {
179  double et = particle.pt();
180  if ( et > m_minEnergy )
181  {
182  return executeTemp(particle, clRings);
183  } else {
184  ATH_MSG_DEBUG( "Skipping particle with low energy (" << et << " MeV) .");
185  return StatusCode::SUCCESS;
186  }
187 }

◆ executeTemp()

template<typename T >
StatusCode Ringer::CaloRingsBuilder::executeTemp ( const T &  input,
ElementLink< xAOD::CaloRingsContainer > &  crEL 
)
protectedinherited

Tool protected methods:

unique execute method for integrating interface code.

Definition at line 193 of file CaloRingsBuilder.cxx.

196 {
197 
198  ATH_MSG_DEBUG("Entering "<< name() << " execute.");
199 
200  // Create structure to hold rings:
201  xAOD::CaloRings *clRings = new xAOD::CaloRings();
202 
203  // Add the CaloRings to the container:
204  m_crCont->push_back(clRings);
205 
206  // Set elementLink reference to created CaloRings:
207  clRingsLink.toContainedElement(*m_crCont, clRings);
208 
209  // If not using shower barycenter, we need to reset last valid seed to avoid
210  // any possible issue:
211  if ( !m_useShowShapeBarycenter ){
212  m_lastValidSeed = AtlasGeoPoint(input.eta(),input.phi());
213  }
214 
215  // Build this CaloRings RingSets:
216  for ( const auto &rawConf : m_rsRawConfCol ) {
217 
218  // Create new RingSet and add it to the container:
219  xAOD::RingSet* rs = new xAOD::RingSet( rawConf.nRings );
220  m_rsCont->push_back(rs);
221 
222  // Get RingSet seed:
224  CHECK( getRingSetSeed( rawConf, input, seed ) );
225 
226  // Build it:
227  CHECK( buildRingSet( rawConf, seed, rs ) );
228 
229  // Get the ElementLink and add it to our RingSet holder:
231  clRings->addRingSetEL( rsEL );
232  }
233 
234  // Print CaloRings with DEBUG level:
235  if (msgLevel() <= MSG::DEBUG){
236  std::ostringstream str;
237  clRings->print(str);
238  ATH_MSG_DEBUG(str.str());
239  }
240 
241  return StatusCode::SUCCESS;
242 }

◆ 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

◆ finalize()

StatusCode Ringer::CaloAsymRingsBuilder::finalize ( )
overridevirtual

finalize method

Reimplemented from Ringer::CaloRingsBuilder.

Definition at line 131 of file CaloAsymRingsBuilder.cxx.

132 {
133  return StatusCode::SUCCESS;
134 }

◆ getRingSetSeed() [1/2]

StatusCode Ringer::CaloRingsBuilder::getRingSetSeed ( const xAOD::RingSetConf::RawConf ,
const xAOD::IParticle part,
AtlasGeoPoint seed 
)
staticprotectedinherited

Fill RingSet seed for IParticle.

Definition at line 291 of file CaloRingsBuilder.cxx.

295 {
296 
297  seed.setEta( part.eta() );
298  seed.setPhi( part.phi() );
299 
300  return StatusCode::SUCCESS;
301 }

◆ getRingSetSeed() [2/2]

StatusCode Ringer::CaloRingsBuilder::getRingSetSeed ( const xAOD::RingSetConf::RawConf conf,
const xAOD::CaloCluster cluster,
AtlasGeoPoint seed 
)
protectedinherited

Fill RingSet seed for CaloCluster.

Definition at line 245 of file CaloRingsBuilder.cxx.

249 {
250  if ( !m_useShowShapeBarycenter ){
251 
252  seed.setEta( cluster.eta() );
253  seed.setPhi( cluster.phi() );
254 
255  return StatusCode::SUCCESS;
256 
257  } else {
258 
259  bool foundValid = false, foundMultipleValid = false;
260 
261  for ( const auto layer : rawConf.layers ) {
262 
263  AtlasGeoPoint seedCandidate(
264  cluster.etaSample( layer ),
265  cluster.phiSample( layer )
266  );
267 
268  ATH_MSG_DEBUG( "This layer (" << CaloSampling::getSamplingName(layer) <<
269  ") seedCandidate is: (" <<
270  seedCandidate.eta() << "," <<
271  seedCandidate.phi() << ")" );
272 
273  if ( seedCandidate.isValid() ){
274  m_lastValidSeed = seedCandidate;
275  if ( foundValid )
276  foundMultipleValid = true;
277  foundValid = true;
278  }
279  }
280 
281  // If we get here, set it to the last valid seed:
283  if ( foundMultipleValid ){
284  ATH_MSG_WARNING( "Found multiple valid seeds. Set to last valid candidate.");
285  }
286  return StatusCode::SUCCESS;
287  }
288 }

◆ initialize()

StatusCode Ringer::CaloAsymRingsBuilder::initialize ( )
overridevirtual

Tool main methods:

initialize method

Reimplemented from Ringer::CaloRingsBuilder.

Definition at line 60 of file CaloAsymRingsBuilder.cxx.

61 {
62  ATH_MSG_DEBUG("Initializing " << name() );
63 
64  m_nRingSets = m_nRings.size();
65 
66  auto itr = m_layers.begin();
67 
68  // Build RingSets configuration:
69  for (size_t rsConfIdx = 0; rsConfIdx < m_nRingSets; ++rsConfIdx) {
70 
71  const auto rsNLayers = m_nLayers[rsConfIdx];
72 
73  auto end_itr = itr + rsNLayers;
74 
75  // Unfortunately, as we can't declare property to a
76  // std::vector<CaloSampling::CaloSample>, we will have to do this to
77  // convert the types:
78  const auto& caloSampleItr = reinterpret_cast<
80  >(itr);
81  const auto& caloSampleEndItr = reinterpret_cast<
83  >(end_itr);
84 
85  std::vector<CaloSampling::CaloSample> rsLayers( caloSampleItr ,
86  caloSampleEndItr);
87 
88  itr += rsNLayers;
89 
91  m_nRings[rsConfIdx],
92  rsLayers,
93  m_etaWidth[rsConfIdx], m_phiWidth[rsConfIdx],
98  );
99 
100  // Build our raw configuration structure:
101  m_rsRawConfCol.push_back(rawConf);
102  }
103 
104  // We have finished filling the main raw configuration properties, now we add
105  // it bounderies:
106  try {
108  } catch ( const std::runtime_error &e) {
109  ATH_MSG_ERROR("Could not add collection bounderies due to: " << e.what() );
110  ATH_MSG_ERROR("RawConfCollection is: ");
111  std::ostringstream str;
113  ATH_MSG_ERROR(str.str());
114  return StatusCode::FAILURE;
115  }
116 
117  // Print our collection
118  if (msgLevel() <= MSG::DEBUG){
119  std::ostringstream str;
121  ATH_MSG_DEBUG(str.str());
122  }
123  ATH_CHECK( m_crContName.initialize() );
124  ATH_CHECK( m_rsContName.initialize() );
127  return StatusCode::SUCCESS;
128 }

◆ 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.

◆ interfaceID()

const InterfaceID & ICaloRingsBuilder::interfaceID ( )
inlinestaticinherited

AlgTool interface methods.

Definition at line 83 of file ICaloRingsBuilder.h.

84 {
85  return IID_ICaloRingsBuilder;
86 }

◆ msg() [1/2]

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

Definition at line 24 of file AthCommonMsg.h.

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

◆ msg() [2/2]

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

Definition at line 27 of file AthCommonMsg.h.

27  {
28  return this->msgStream(lvl);
29  }

◆ 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  }

◆ nRingSets()

std::size_t Ringer::CaloRingsBuilder::nRingSets ( ) const
inlineoverridevirtualinherited

Implements Ringer::ICaloRingsBuilder.

Definition at line 106 of file CaloRingsBuilder.h.

106 { return m_nRingSets; }

◆ 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.

◆ preExecute()

StatusCode Ringer::CaloRingsBuilder::preExecute ( xAOD::CaloRingsContainer crCont,
xAOD::RingSetContainer rsCont,
const std::size_t  nReserve = 0 
)
overridevirtualinherited

method for working on containers

Implements Ringer::ICaloRingsBuilder.

Definition at line 131 of file CaloRingsBuilder.cxx.

134 {
135  if ( crCont && rsCont ){
136  m_crCont = crCont;
137  m_rsCont = rsCont;
138  } else {
139  ATH_MSG_ERROR( "Attempted to set CaloRingsContainer and/or RingSetContainer to invalid pointers");
140  return StatusCode::FAILURE;
141  }
142  // Reserve container space if required:
143  if (nReserve) {
144  // Reserve one CaloRings per particle
145  m_crCont->reserve( nReserve );
146  // We need to reserve more space for the RingSet container, there will be
147  // the number of RawConfig available in our raw configuration collection.
148  m_rsCont->reserve( nReserve * m_nRingSets );
149  }
150 
151  return StatusCode::SUCCESS;
152 }

◆ rawConf()

const xAOD::RingSetConf::RawConfCollection& Ringer::CaloRingsBuilder::rawConf ( )
inlineoverridevirtualinherited

Extra methods:

Retrieve RawConfiguration Collection

Implements Ringer::ICaloRingsBuilder.

Definition at line 95 of file CaloRingsBuilder.h.

95  {
96  return m_rsRawConfCol;
97  };

◆ 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();
383  PBASE::renounce (h);
384  }

◆ 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  {
365  handlesArray.renounce();
366  }

◆ rsContName()

const SG::WriteHandleKey<xAOD::RingSetContainer>& Ringer::CaloRingsBuilder::rsContName ( ) const
inlineoverridevirtualinherited

Implements Ringer::ICaloRingsBuilder.

Definition at line 109 of file CaloRingsBuilder.h.

109 { return m_rsContName; }

◆ 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 DerivationFramework::CfAthAlgTool, AthCheckedComponent< AthAlgTool >, AthCheckedComponent<::AthAlgTool >, and asg::AsgMetadataTool.

◆ 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) {
312  std::vector<SG::VarHandleKey*> keys = a->keys();
313  for (auto k : keys) {
314  k->setOwner(this);
315  }
316  }
317  }

◆ useShowerShapeBarycenter()

bool Ringer::CaloRingsBuilder::useShowerShapeBarycenter ( )
inlineoverridevirtualinherited

Retrieve whether it was set used shower shape barycenter.

Implements Ringer::ICaloRingsBuilder.

Definition at line 101 of file CaloRingsBuilder.h.

101  {
103  };

Member Data Documentation

◆ m_caloMgrKey

SG::ReadCondHandleKey<CaloDetDescrManager> Ringer::CaloRingsBuilder::m_caloMgrKey {this,"CaloDetDescrManager", "CaloDetDescrManager"}
protectedinherited

Definition at line 245 of file CaloRingsBuilder.h.

◆ m_cellMaxDEtaDist

Gaudi::Property<float> Ringer::CaloRingsBuilder::m_cellMaxDEtaDist
protectedinherited
Initial value:
{this,
"CellMaxDEtaDist", 0,
"Maximum cell distance to the seed in eta."}

Maximum cell distance in eta to seed.

Definition at line 185 of file CaloRingsBuilder.h.

◆ m_cellMaxDPhiDist

Gaudi::Property<float> Ringer::CaloRingsBuilder::m_cellMaxDPhiDist
protectedinherited
Initial value:
{this,
"CellMaxDPhiDist", 0,
"Maximum cell distance to the seed in phi."}

Maximum cell distance in phi to seed.

Definition at line 191 of file CaloRingsBuilder.h.

◆ m_cellsContName

SG::ReadHandleKey<CaloCellContainer> Ringer::CaloRingsBuilder::m_cellsContName
protectedinherited
Initial value:
{this,
"CellsContainerName",
"AllCalo",
"Key to obtain the cell container"}

Name of CaloCellContainer.

Definition at line 167 of file CaloRingsBuilder.h.

◆ m_crCont

xAOD::CaloRingsContainer* Ringer::CaloRingsBuilder::m_crCont
protectedinherited

Create and hold CaloRingsContainer for each event.

Definition at line 258 of file CaloRingsBuilder.h.

◆ m_crContName

SG::WriteHandleKey<xAOD::CaloRingsContainer> Ringer::CaloRingsBuilder::m_crContName
protectedinherited
Initial value:
{this,
"CaloRingsContainerName",
"CaloRings",
"Name of the CaloRings container"}

Tool props (python configurables):

Name of CaloRingsContainer on Event StoreGate

electron collection input name

Definition at line 151 of file CaloRingsBuilder.h.

◆ 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

bool Ringer::CaloAsymRingsBuilder::m_doEtaAxesDivision
protected

This can be set True to divide in two the eta axes.

Definition at line 66 of file CaloAsymRingsBuilder.h.

◆ m_doPhiAxesDivision

bool Ringer::CaloAsymRingsBuilder::m_doPhiAxesDivision
protected

This can be set True to divide in two the phi axes.

Definition at line 70 of file CaloAsymRingsBuilder.h.

◆ m_doTransverseEnergy

bool Ringer::CaloAsymRingsBuilder::m_doTransverseEnergy = false
protected

Definition at line 72 of file CaloAsymRingsBuilder.h.

◆ m_etaWidth

Gaudi::Property<std::vector<float> > Ringer::CaloRingsBuilder::m_etaWidth
protectedinherited
Initial value:
{this,
"EtaWidth", {}, "Each RingSet ring eta width."}

Width of the ring in eta.

Definition at line 175 of file CaloRingsBuilder.h.

◆ 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_lastValidSeed

AtlasGeoPoint Ringer::CaloRingsBuilder::m_lastValidSeed
protectedinherited

last valid RingSet seed

Propagate other layer centroids in case a layer centroid is not valid.

Definition at line 268 of file CaloRingsBuilder.h.

◆ m_layers

Gaudi::Property<std::vector<int> > Ringer::CaloRingsBuilder::m_layers
protectedinherited
Initial value:
{this,
"Layers", {},
"Concatenated list of layers which will be used "
"to build the RingSets"}

Calorimeter layers in each ringset.

This property should be read as: std::vector<CaloSampling::CaloSample> m_layersRings;

Definition at line 215 of file CaloRingsBuilder.h.

◆ m_minEnergy

Gaudi::Property<float> Ringer::CaloRingsBuilder::m_minEnergy
protectedinherited
Initial value:
{this,
"MinPartEnergy", std::numeric_limits<float>::lowest(),
"Minimum particle/cluster energy to build rings (GeV)."}

Minimum particle energy to build rings (GeV)

Definition at line 203 of file CaloRingsBuilder.h.

◆ m_nLayers

Gaudi::Property<std::vector<unsigned int> > Ringer::CaloRingsBuilder::m_nLayers
protectedinherited
Initial value:
{this,
"RingSetNLayers", {},
"Each RingSet number of layers from the Layers "
"configurable property to use."}

Number of calorimeter layers in each ringset.

Definition at line 222 of file CaloRingsBuilder.h.

◆ m_nRings

Gaudi::Property<std::vector<unsigned int> > Ringer::CaloRingsBuilder::m_nRings
protectedinherited
Initial value:
{this,
"NRings", {},
"Each RingSet number of rings."}

Number of rings in a ringset.

Definition at line 197 of file CaloRingsBuilder.h.

◆ m_nRingSets

size_t Ringer::CaloRingsBuilder::m_nRingSets
protectedinherited

hold the number of RingSets we are building for each CaloRings

Definition at line 276 of file CaloRingsBuilder.h.

◆ m_phiHelper

const CaloPhiRange Ringer::CaloRingsBuilder::m_phiHelper
staticprotectedinherited

used for phi wrap-around

Definition at line 272 of file CaloRingsBuilder.h.

◆ m_phiWidth

Gaudi::Property<std::vector<float> > Ringer::CaloRingsBuilder::m_phiWidth
protectedinherited
Initial value:
{this,
"PhiWidth", {}, "Each RingSet ring phi width."}

Width of the ring in phi.

Definition at line 180 of file CaloRingsBuilder.h.

◆ m_rsCont

xAOD::RingSetContainer* Ringer::CaloRingsBuilder::m_rsCont
protectedinherited

Tool props (non configurables):

Create and hold RingSetContainer for each event

Definition at line 254 of file CaloRingsBuilder.h.

◆ m_rsContName

SG::WriteHandleKey<xAOD::RingSetContainer> Ringer::CaloRingsBuilder::m_rsContName
protectedinherited
Initial value:
{this,
"RingSetContainerName",
"RingSets",
"Name of the RingSets container"}

Name of RingSetContainer on Event StoreGate.

Definition at line 159 of file CaloRingsBuilder.h.

◆ m_rsRawConfCol

xAOD::RingSetConf::RawConfCollection Ringer::CaloRingsBuilder::m_rsRawConfCol
protectedinherited

holds each RingSet configuration (filled at initialize)

Definition at line 262 of file CaloRingsBuilder.h.

◆ m_useShowShapeBarycenter

Gaudi::Property<bool> Ringer::CaloRingsBuilder::m_useShowShapeBarycenter
protectedinherited
Initial value:
{this,
"useShowerShapeBarycenter", false,
"Switch to use shower barycenter for each layer, "
"instead of the cluster center."}

Switch to use shower barycenter seed for each RingSets.

This can be set to false if using cluster information to use the cluster center instead of its layer energy baricenter.

Definition at line 232 of file CaloRingsBuilder.h.

◆ 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:
DataVector::reserve
void reserve(size_type n)
Attempt to preallocate enough memory for a specified number of elements.
LArG4FSStartPointFilter.part
part
Definition: LArG4FSStartPointFilter.py:21
xAOD::iterator
JetConstituentVector::iterator iterator
Definition: JetConstituentVector.cxx:68
xAOD::CaloCluster_v1::phi
virtual double phi() const
The azimuthal angle ( ) of the particle.
Definition: CaloCluster_v1.cxx:256
Ringer::CaloRingsBuilder::m_caloMgrKey
SG::ReadCondHandleKey< CaloDetDescrManager > m_caloMgrKey
Definition: CaloRingsBuilder.h:245
AllowedVariables::e
e
Definition: AsgElectronSelectorTool.cxx:37
RunTileCalibRec.cells
cells
Definition: RunTileCalibRec.py:271
xAOD::RingSetConf_v1::print
static void print(const RawConf &raw, std::ostream &stream)
Prints rawConf.
Definition: RingSetConf_v1.cxx:206
et
Extra patterns decribing particle interation process.
ATH_MSG_FATAL
#define ATH_MSG_FATAL(x)
Definition: AthMsgStreamMacros.h:34
Trk::ParticleSwitcher::particle
constexpr ParticleHypothesis particle[PARTICLEHYPOTHESES]
the array of masses
Definition: ParticleHypothesis.h:76
Ringer::CaloRingsBuilder::getRingSetSeed
StatusCode getRingSetSeed(const xAOD::RingSetConf::RawConf &conf, const xAOD::CaloCluster &cluster, AtlasGeoPoint &seed)
Fill RingSet seed for CaloCluster.
Definition: CaloRingsBuilder.cxx:245
CaloCellList
Definition: CaloCellList.h:40
ReadCellNoiseFromCool.cell
cell
Definition: ReadCellNoiseFromCool.py:53
ParticleGun_SamplingFraction.eta2
eta2
Definition: ParticleGun_SamplingFraction.py:96
SG::ReadCondHandle
Definition: ReadCondHandle.h:44
xAOD::et
et
Definition: TrigEMCluster_v1.cxx:25
Ringer::CaloRingsBuilder::m_etaWidth
Gaudi::Property< std::vector< float > > m_etaWidth
Width of the ring in eta.
Definition: CaloRingsBuilder.h:175
Ringer::CaloRingsBuilder::m_crCont
xAOD::CaloRingsContainer * m_crCont
Create and hold CaloRingsContainer for each event.
Definition: CaloRingsBuilder.h:258
Ringer::CaloRingsBuilder::m_cellMaxDPhiDist
Gaudi::Property< float > m_cellMaxDPhiDist
Maximum cell distance in phi to seed.
Definition: CaloRingsBuilder.h:191
Ringer::CaloAsymRingsBuilder::m_doPhiAxesDivision
bool m_doPhiAxesDivision
This can be set True to divide in two the phi axes.
Definition: CaloAsymRingsBuilder.h:70
SG::ReadHandle
Definition: StoreGate/StoreGate/ReadHandle.h:70
AthCommonDataStore< AthCommonMsg< AlgTool > >::declareProperty
Gaudi::Details::PropertyBase & declareProperty(Gaudi::Property< T > &t)
Definition: AthCommonDataStore.h:145
max
constexpr double max()
Definition: ap_fixedTest.cxx:33
xAOD::deltaPhi
setSAddress setEtaMS setDirPhiMS setDirZMS setBarrelRadius setEndcapAlpha setEndcapRadius setInterceptInner setEtaMap setEtaBin setIsTgcFailure setDeltaPt deltaPhi
Definition: L2StandAloneMuon_v1.cxx:160
Ringer::CaloAsymRingsBuilder::m_doEtaAxesDivision
bool m_doEtaAxesDivision
This can be set True to divide in two the eta axes.
Definition: CaloAsymRingsBuilder.h:66
Ringer::CaloRingsBuilder::m_rsContName
SG::WriteHandleKey< xAOD::RingSetContainer > m_rsContName
Name of RingSetContainer on Event StoreGate.
Definition: CaloRingsBuilder.h:159
Ringer::CaloRingsBuilder::rawConf
const xAOD::RingSetConf::RawConfCollection & rawConf() override
Extra methods:
Definition: CaloRingsBuilder.h:95
xAOD::RingSet_v1::at
float & at(const unsigned int i)
Get/set ring Et at ith position.
Definition: RingSet_v1.cxx:42
AthCommonDataStore< AthCommonMsg< AlgTool > >::m_evtStore
StoreGateSvc_t m_evtStore
Pointer to StoreGate (event store by default)
Definition: AthCommonDataStore.h:390
Ringer::CaloRingsBuilder::m_phiWidth
Gaudi::Property< std::vector< float > > m_phiWidth
Width of the ring in phi.
Definition: CaloRingsBuilder.h:180
AthCommonDataStore< AthCommonMsg< AlgTool > >::m_vhka
std::vector< SG::VarHandleKeyArray * > m_vhka
Definition: AthCommonDataStore.h:398
read_hist_ntuple.t
t
Definition: read_hist_ntuple.py:5
xAOD::RingSet_v1
Class holding a set of rings.
Definition: RingSet_v1.h:31
Ringer::CaloRingsBuilder::m_cellsContName
SG::ReadHandleKey< CaloCellContainer > m_cellsContName
Name of CaloCellContainer.
Definition: CaloRingsBuilder.h:167
SG::VarHandleKey::key
const std::string & key() const
Return the StoreGate ID for the referenced object.
Definition: AthToolSupport/AsgDataHandles/Root/VarHandleKey.cxx:141
Ringer::CaloRingsBuilder::buildRingSet
virtual StatusCode buildRingSet(const xAOD::RingSetConf::RawConf &rawConf, const AtlasGeoPoint &seed, xAOD::RingSet *rs)
main method where the RingSets are built.
Definition: CaloRingsBuilder.cxx:304
xAOD::RingSetConf_v1::whichLayer
static Ringer::CalJointLayer whichLayer(const std::vector< CaloSampling::CaloSample > &layers)
Definition: RingSetConf_v1.cxx:188
SG::VarHandleKeyArray::setOwner
virtual void setOwner(IDataHandleHolder *o)=0
IDTPMcnv.htype
htype
Definition: IDTPMcnv.py:29
xAOD::CaloCluster_v1::etaSample
float etaSample(const CaloSample sampling) const
Retrieve barycenter in a given sample.
Definition: CaloCluster_v1.cxx:532
xAOD::CaloCluster_v1::etaBE
float etaBE(const unsigned layer) const
Get the eta in one layer of the EM Calo.
Definition: CaloCluster_v1.cxx:644
Ringer::CaloRingsBuilder::executeTemp
StatusCode executeTemp(const T &input, ElementLink< xAOD::CaloRingsContainer > &crEL)
Tool protected methods:
Definition: CaloRingsBuilder.cxx:193
python.utils.AtlRunQueryDQUtils.p
p
Definition: AtlRunQueryDQUtils.py:210
AthCommonDataStore
Definition: AthCommonDataStore.h:52
Generate_dsid_ranseed.seed
seed
Definition: Generate_dsid_ranseed.py:10
ATH_MSG_ERROR
#define ATH_MSG_ERROR(x)
Definition: AthMsgStreamMacros.h:33
Ringer::CaloRingsBuilder::m_layers
Gaudi::Property< std::vector< int > > m_layers
Calorimeter layers in each ringset.
Definition: CaloRingsBuilder.h:215
Ringer::CaloRingsBuilder::CaloRingsBuilder
CaloRingsBuilder(const std::string &type, const std::string &name, const IInterface *parent)
Default constructor.
Definition: CaloRingsBuilder.cxx:39
ParticleGun_FastCalo_ChargeFlip_Config.energy
energy
Definition: ParticleGun_FastCalo_ChargeFlip_Config.py:78
P4Helpers::deltaEta
double deltaEta(const I4Momentum &p1, const I4Momentum &p2)
Computes efficiently .
Definition: P4Helpers.h:66
xAOD::CaloCluster_v1::eta
virtual double eta() const
The pseudorapidity ( ) of the particle.
Definition: CaloCluster_v1.cxx:251
ATH_MSG_DEBUG
#define ATH_MSG_DEBUG(x)
Definition: AthMsgStreamMacros.h:29
Ringer::CaloRingsBuilder::m_nLayers
Gaudi::Property< std::vector< unsigned int > > m_nLayers
Number of calorimeter layers in each ringset.
Definition: CaloRingsBuilder.h:222
TRT::Hit::layer
@ layer
Definition: HitInfo.h:79
PlotPulseshapeFromCool.input
input
Definition: PlotPulseshapeFromCool.py:106
Ringer::CaloRingsBuilder::m_cellMaxDEtaDist
Gaudi::Property< float > m_cellMaxDEtaDist
Maximum cell distance in eta to seed.
Definition: CaloRingsBuilder.h:185
xAOD::CaloRings_v1::addRingSetEL
void addRingSetEL(const ElementLink< RingSetContainer_v1 > &rsEL)
Add ElementLink to holden vector.
xAOD::RingSetConf_v1::addRawConfColBounderies
static void addRawConfColBounderies(RawConfCollection &clRingsConf)
Add to RawConfCollection its JointLayer/JointSection bounderies.
Definition: RingSetConf_v1.cxx:239
xAOD::CaloRings_v1::print
void print(std::ostream &stream) const
Print-out methods:
Definition: CaloRings_v1.cxx:280
test_pyathena.parent
parent
Definition: test_pyathena.py:15
Ringer::CaloRingsBuilder::m_lastValidSeed
AtlasGeoPoint m_lastValidSeed
last valid RingSet seed
Definition: CaloRingsBuilder.h:268
ATH_CHECK
#define ATH_CHECK
Definition: AthCheckMacros.h:40
CHECK
#define CHECK(...)
Evaluate an expression and check for errors.
Definition: Control/AthenaKernel/AthenaKernel/errorcheck.h:422
xAOD::CaloRings_v1
Class summarizing the particle interaction throughout the Calorimeter (its shower shape).
Definition: CaloRings_v1.h:51
xAOD::CaloCluster_v1::phiSample
float phiSample(const CaloSample sampling) const
Retrieve barycenter in a given sample.
Definition: CaloCluster_v1.cxx:547
AthCommonDataStore< AthCommonMsg< AlgTool > >::m_detStore
StoreGateSvc_t m_detStore
Pointer to StoreGate (detector store by default)
Definition: AthCommonDataStore.h:393
SG::VarHandleKey::initialize
StatusCode initialize(bool used=true)
If this object is used as a property, then this should be called during the initialize phase.
Definition: AthToolSupport/AsgDataHandles/Root/VarHandleKey.cxx:103
Ringer::CaloAsymRingsBuilder::m_doTransverseEnergy
bool m_doTransverseEnergy
Definition: CaloAsymRingsBuilder.h:72
SG::VarHandleKeyArray::renounce
virtual void renounce()=0
SG::HandleClassifier::type
std::conditional< std::is_base_of< SG::VarHandleKeyArray, T >::value, VarHandleKeyArrayType, type2 >::type type
Definition: HandleClassifier.h:54
merge_scale_histograms.doc
string doc
Definition: merge_scale_histograms.py:9
name
std::string name
Definition: Control/AthContainers/Root/debug.cxx:228
Ringer::CaloRingsBuilder::m_minEnergy
Gaudi::Property< float > m_minEnergy
Minimum particle energy to build rings (GeV)
Definition: CaloRingsBuilder.h:203
DataVector::push_back
value_type push_back(value_type pElem)
Add an element to the end of the collection.
SG::CondHandleKey::initialize
StatusCode initialize(bool used=true)
Ringer::CaloRingsBuilder::m_nRingSets
size_t m_nRingSets
hold the number of RingSets we are building for each CaloRings
Definition: CaloRingsBuilder.h:276
Ringer::CaloRingsBuilder::m_rsCont
xAOD::RingSetContainer * m_rsCont
Tool props (non configurables):
Definition: CaloRingsBuilder.h:254
Ringer::CaloRingsBuilder::m_rsRawConfCol
xAOD::RingSetConf::RawConfCollection m_rsRawConfCol
holds each RingSet configuration (filled at initialize)
Definition: CaloRingsBuilder.h:262
a
TList * a
Definition: liststreamerinfos.cxx:10
h
CaloDetDescrManager
This class provides the client interface for accessing the detector description information common to...
Definition: CaloDetDescrManager.h:473
CaloCell
Data object for each calorimeter readout cell.
Definition: CaloCell.h:57
python.CaloScaleNoiseConfig.str
str
Definition: CaloScaleNoiseConfig.py:78
ATH_MSG_WARNING
#define ATH_MSG_WARNING(x)
Definition: AthMsgStreamMacros.h:32
xAOD::CaloRings
CaloRings_v1 CaloRings
Definition of the current "CaloRings version".
Definition: Event/xAOD/xAODCaloRings/xAODCaloRings/CaloRings.h:15
Ringer::CaloRingsBuilder::m_crContName
SG::WriteHandleKey< xAOD::CaloRingsContainer > m_crContName
Tool props (python configurables):
Definition: CaloRingsBuilder.h:151
python.CaloScaleNoiseConfig.type
type
Definition: CaloScaleNoiseConfig.py:78
DEBUG
#define DEBUG
Definition: page_access.h:11
AtlasGeoPoint
Definition: AtlasGeoPoint.h:15
xAOD::RingSetConf_v1::RawConf
Definition: RingSetConf_v1.h:49
SG::VarHandleBase::vhKey
SG::VarHandleKey & vhKey()
Return a non-const reference to the HandleKey.
Definition: StoreGate/src/VarHandleBase.cxx:623
str
Definition: BTagTrackIpAccessor.cxx:11
python.Bindings.keys
keys
Definition: Control/AthenaPython/python/Bindings.py:798
CaloSampling::getSamplingName
static std::string getSamplingName(CaloSample theSample)
Returns a string (name) for each CaloSampling.
Definition: Calorimeter/CaloGeoHelpers/Root/CaloSampling.cxx:18
Ringer::CaloRingsBuilder::m_nRings
Gaudi::Property< std::vector< unsigned int > > m_nRings
Number of rings in a ringset.
Definition: CaloRingsBuilder.h:197
xAOD::RingSetConf_v1::whichSection
static Ringer::CalJointSection whichSection(const std::vector< CaloSampling::CaloSample > &layers)
Definition: RingSetConf_v1.cxx:179
Ringer::CaloRingsBuilder::m_useShowShapeBarycenter
Gaudi::Property< bool > m_useShowShapeBarycenter
Switch to use shower barycenter seed for each RingSets.
Definition: CaloRingsBuilder.h:232
AthCommonDataStore::declareGaudiProperty
Gaudi::Details::PropertyBase & declareGaudiProperty(Gaudi::Property< T > &hndl, const SG::VarHandleKeyType &)
specialization for handling Gaudi::Property<SG::VarHandleKey>
Definition: AthCommonDataStore.h:156
xAOD::CaloCluster_v1::e
virtual double e() const
The total energy of the particle.
Definition: CaloCluster_v1.cxx:265
fitman.k
k
Definition: fitman.py:528
xAOD::RingSet
RingSet_v1 RingSet
Definition of the current "RingSet version".
Definition: RingSet.h:15
CaloPhiRange::diff
static double diff(double phi1, double phi2)
simple phi1 - phi2 calculation, but result is fixed to respect range.
Definition: CaloPhiRange.cxx:22