ATLAS Offline Software
Public Member Functions | Protected Member Functions | Private Types | Private Member Functions | Private Attributes | List of all members
CaloCellFilterAlg Class Reference

Algorithm to filter CaloCellContainer. More...

#include <CaloCellFilterAlg.h>

Inheritance diagram for CaloCellFilterAlg:
Collaboration diagram for CaloCellFilterAlg:

Public Member Functions

 CaloCellFilterAlg (const std::string &name, ISvcLocator *pSvcLocator)
 Regular Gaudi Algorithm constructor. More...
 
virtual StatusCode initialize ()
 Function executed before the event loop starts. More...
 
virtual StatusCode execute ()
 Function executed for each event. More...
 
virtual StatusCode sysInitialize () override
 Override sysInitialize. More...
 
virtual const DataObjIDColl & extraOutputDeps () const override
 Return the list of extra output dependencies. More...
 
ServiceHandle< StoreGateSvc > & evtStore ()
 The standard StoreGateSvc (event store) Returns (kind of) a pointer to the StoreGateSvc. More...
 
const ServiceHandle< StoreGateSvc > & evtStore () const
 The standard StoreGateSvc (event store) Returns (kind of) a pointer to the StoreGateSvc. More...
 
const ServiceHandle< StoreGateSvc > & detStore () const
 The standard StoreGateSvc/DetectorStore Returns (kind of) a pointer to the StoreGateSvc. More...
 
virtual StatusCode sysStart () override
 Handle START transition. More...
 
virtual std::vector< Gaudi::DataHandle * > inputHandles () const override
 Return this algorithm's input handles. More...
 
virtual std::vector< Gaudi::DataHandle * > outputHandles () const override
 Return this algorithm's output handles. More...
 
Gaudi::Details::PropertyBase & declareProperty (Gaudi::Property< T > &t)
 
Gaudi::Details::PropertyBase * declareProperty (const std::string &name, SG::VarHandleKey &hndl, const std::string &doc, const SG::VarHandleKeyType &)
 Declare a new Gaudi property. More...
 
Gaudi::Details::PropertyBase * declareProperty (const std::string &name, SG::VarHandleBase &hndl, const std::string &doc, const SG::VarHandleType &)
 Declare a new Gaudi property. More...
 
Gaudi::Details::PropertyBase * declareProperty (const std::string &name, SG::VarHandleKeyArray &hndArr, const std::string &doc, const SG::VarHandleKeyArrayType &)
 
Gaudi::Details::PropertyBase * declareProperty (const std::string &name, T &property, const std::string &doc, const SG::NotHandleType &)
 Declare a new Gaudi property. More...
 
Gaudi::Details::PropertyBase * declareProperty (const std::string &name, T &property, const std::string &doc="none")
 Declare a new Gaudi property. More...
 
void updateVHKA (Gaudi::Details::PropertyBase &)
 
MsgStream & msg () const
 
MsgStream & msg (const MSG::Level lvl) const
 
bool msgLvl (const MSG::Level lvl) const
 

Protected Member Functions

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

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

std::string m_cellsName
 Cell container. More...
 
std::string m_outputCellsName
 output Cell container More...
 
int m_maxNCells
 Maximum number of cells to accept. More...
 
std::vector< unsigned int > m_caloNums
 which calo to treat More...
 
float m_cellEnergyThreshold
 threshold on cell energy for ntuple More...
 
float m_sigmaCut
 cut on abs(E)/sigmaNoise (no cut if <0 ) More...
 
std::vector< unsigned int > m_caloSamplings
 which calo samplings to treat More...
 
const LArEM_IDm_emid
 
const LArFCAL_IDm_fcalid
 
const LArHEC_IDm_hecid
 
const TileIDm_tileid
 
SG::ReadCondHandleKey< CaloNoisem_caloNoiseKey
 Key of the CaloNoise Conditions data object. More...
 
bool m_caloSelection
 
bool m_caloSamplingSelection
 
DataObjIDColl m_extendedExtraObjects
 
StoreGateSvc_t m_evtStore
 Pointer to StoreGate (event store by default) More...
 
StoreGateSvc_t m_detStore
 Pointer to StoreGate (detector store by default) More...
 
std::vector< SG::VarHandleKeyArray * > m_vhka
 
bool m_varHandleArraysDeclared
 

Detailed Description

Algorithm to filter CaloCellContainer.

Author
Hong Ma March 2010

$Revision$ $Date$

Definition at line 35 of file CaloCellFilterAlg.h.

Member Typedef Documentation

◆ StoreGateSvc_t

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

Definition at line 388 of file AthCommonDataStore.h.

Constructor & Destructor Documentation

◆ CaloCellFilterAlg()

CaloCellFilterAlg::CaloCellFilterAlg ( const std::string &  name,
ISvcLocator *  pSvcLocator 
)

Regular Gaudi Algorithm constructor.

Definition at line 22 of file CaloCellFilterAlg.cxx.

24  : AthAlgorithm( name, pSvcLocator ),
25  m_cellsName( "AllCalo" ), m_outputCellsName( "SelectedCells" ),
27  m_sigmaCut( -1 ),
28  m_emid( 0 ),
29  m_fcalid( 0 ),
30  m_hecid( 0 ),
31  m_tileid( 0 ),
32  m_caloSelection( false ),
33  m_caloSamplingSelection( false ) {
34 
35  // string property for Cell container
36  declareProperty( "CellsName", m_cellsName );
37  // string property for Cell container
38  declareProperty( "OutputCellsName", m_outputCellsName );
39  // list of calo to treat
40  declareProperty( "CaloNums", m_caloNums );
41  // string property for Cell container
42  declareProperty( "MaxNCells", m_maxNCells );
43  // declareProperty("ThresholdGeVCells",m_thresholdGeVCells);
44  // m_thresholdGeVCells --> m_cellEnergyThreshold
45  declareProperty( "CellEnergyThreshold", m_cellEnergyThreshold );
46  declareProperty( "CellSigmaCut", m_sigmaCut );
47  // list of calo samplings to treat
48  declareProperty( "CaloSamplings", m_caloSamplings );
49 }

Member Function Documentation

◆ declareGaudiProperty() [1/4]

Gaudi::Details::PropertyBase& AthCommonDataStore< AthCommonMsg< Algorithm > >::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< Algorithm > >::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< Algorithm > >::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< Algorithm > >::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< Algorithm > >::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< Algorithm > >::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< Algorithm > >::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< Algorithm > >::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< Algorithm > >::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< Algorithm > >::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< Algorithm > >::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< Algorithm > >::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< Algorithm > >::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()

StatusCode CaloCellFilterAlg::execute ( )
virtual

Function executed for each event.

Definition at line 134 of file CaloCellFilterAlg.cxx.

134  {
135 
136  REPORT_MESSAGE( MSG::VERBOSE ) << " in execute";
137 
138  // typedef ObjectVector<CaloCell> CONTAINER;
139  typedef CaloCellContainer CONTAINER;
140 
141  const CONTAINER* cellcoll = nullptr;
142  CHECK( evtStore()->retrieve( cellcoll, m_cellsName ) );
143 
145  CHECK( evtStore()->record( outputCont, m_outputCellsName ) );
146 
147  REPORT_MESSAGE( MSG::VERBOSE ) << " EM Cell container: " << m_cellsName;
148 
149  CONTAINER::const_iterator f_cell = cellcoll->begin();
150  CONTAINER::const_iterator l_cell = cellcoll->end();
151 
152  int index = 0;
153 
154  bool useNoiseCut = false;
155  if( ! m_caloNoiseKey.empty() ) useNoiseCut = true;
156 
157  for( ; f_cell != l_cell; ++f_cell ) {
158 
159  const CaloCell* cell = ( *f_cell );
160 
161  if( m_caloSelection ) {
162  // keep only cells from desired calorimeter
163  const unsigned int iCaloNum =
164  static_cast< unsigned int >( cell->caloDDE()->getSubCalo() );
165  std::vector< unsigned int >::const_iterator theFound =
166  std::find( m_caloNums.begin(), m_caloNums.end(), iCaloNum );
167  if( theFound == m_caloNums.end() ) continue;
168  }
169 
170  if ( m_caloSamplingSelection ) {
171  // keep only cells from desired calorimeter sampling
172  const unsigned int iCaloSampling =
173  static_cast< unsigned int >( cell->caloDDE()->getSampling() );
174  std::vector< unsigned int >::const_iterator theFound =
175  std::find( m_caloSamplings.begin(), m_caloSamplings.end(), iCaloSampling );
176  if( theFound == m_caloSamplings.end() ) continue;
177  }
178 
179  const float e = cell->energy();
180 
181  //fill cell by cell ntuple if required
182  if( m_maxNCells >= 0 ) {
183 
184  if( ( m_maxNCells == 0 ) || ( index < m_maxNCells ) ) {
185 
186  const float th = m_cellEnergyThreshold;
187  static const double epsilon = 0.001;
188 
189  if( std::abs( th ) > epsilon ) {
190  if( th > 0. ) {
191  if( ! ( e > th ) ) continue;
192  } else if( th < 0. ) {
193  if( ! ( std::abs( e ) > std::abs( th ) ) ) continue;
194  }
195  }
196 
197  if( useNoiseCut ) {
199  float sigma = caloNoise->getNoise( cell->ID(), cell->gain() );
200  if( std::abs( e ) < sigma * m_sigmaCut ) continue;
201  }
202 
203  outputCont->push_back( cell );
204  ++index;
205 
206  } else {
207 
208  if( m_maxNCells == index ) {
209  ATH_MSG_WARNING( " Too many cells. Save only "
210  << m_maxNCells );
211  break;
212  }
213  }
214  }
215  }
216 
217  return StatusCode::SUCCESS;
218 }

◆ extraDeps_update_handler()

void AthCommonDataStore< AthCommonMsg< Algorithm > >::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

◆ extraOutputDeps()

const DataObjIDColl & AthAlgorithm::extraOutputDeps ( ) const
overridevirtualinherited

Return the list of extra output dependencies.

This list is extended to include symlinks implied by inheritance relations.

Definition at line 50 of file AthAlgorithm.cxx.

51 {
52  // If we didn't find any symlinks to add, just return the collection
53  // from the base class. Otherwise, return the extended collection.
54  if (!m_extendedExtraObjects.empty()) {
56  }
57  return Algorithm::extraOutputDeps();
58 }

◆ initialize()

StatusCode CaloCellFilterAlg::initialize ( )
virtual

Function executed before the event loop starts.

Definition at line 51 of file CaloCellFilterAlg.cxx.

51  {
52 
53  ATH_MSG_INFO( "Initializing" );
54  ATH_MSG_INFO( " reading CaloCellContainer " << m_cellsName );
55  ATH_MSG_INFO( " CellEnergyThreshold " << m_cellEnergyThreshold );
56  ATH_MSG_INFO( " CellSigmaCut " << m_sigmaCut );
57  if( m_maxNCells < 0 ) {
58  ATH_MSG_WARNING( " no cell to select, set jobOpt MaxNCells to the max "
59  "number of cells you want" );
60  } else {
61  if( m_maxNCells == 0 ) {
62  ATH_MSG_WARNING( " select all cells" );
63  } else {
64  ATH_MSG_INFO( " select cells up to " << m_maxNCells << " cells" );
65  }
66  }
67  ATH_MSG_INFO( " ....applying threshold " << m_cellEnergyThreshold );
68 
69  CHECK( detStore()->retrieve( m_emid ) );
71  CHECK( detStore()->retrieve( m_hecid ) );
73 
75 
76  const unsigned int nSubCalo = static_cast< int >( CaloCell_ID::NSUBCALO );
77 
78  //check calo number specified
79  m_caloSelection = false;
80  if( m_caloNums.size() == 0 ) {
81  ATH_MSG_INFO( " No calorimeter selection" );
82  return StatusCode::SUCCESS;
83  } else if( m_caloNums.size() > nSubCalo ) {
85  << " More than " << nSubCalo << " calo specified. "
86  << "Must be wrong. Stop.";
87  return StatusCode::FAILURE;
88  } else {
89  m_caloSelection = true;
90 
91  for( unsigned int index = 0; index < m_caloNums.size(); ++index ) {
92  if( m_caloNums[ index ]>= nSubCalo ) {
94  << "Invalid calo specification:"
95  << m_caloNums[index] << "Stop.";
96  return StatusCode::FAILURE;
97  } else {
98  ATH_MSG_INFO( " Select calorimeter " << m_caloNums[ index ] );
99  }
100  }
101  }
102 
103  const unsigned int nCaloSamplings = static_cast< int >( CaloCell_ID::Unknown );
104 
105  //check calo samplings specified
106  m_caloSamplingSelection = false;
107  if( m_caloSamplings.size() == 0 ) {
108  ATH_MSG_INFO( " No calorimeter sampling selection" );
109  return StatusCode::SUCCESS;
110  } else if( m_caloSamplings.size() > nSubCalo ) {
112  << " More than " << nCaloSamplings << " calo samplings specified. "
113  << "Must be wrong. Stop.";
114  return StatusCode::FAILURE;
115  } else {
117 
118  for( unsigned int index = 0; index < m_caloSamplings.size(); ++index ) {
119  if( m_caloSamplings[ index ]>= nCaloSamplings ) {
121  << "Invalid calo sampling specification:"
122  << m_caloSamplings[index] << "Stop.";
123  return StatusCode::FAILURE;
124  } else {
125  ATH_MSG_INFO( " Select calorimeter sampling " << m_caloSamplings[ index ] );
126  }
127  }
128  }
129 
130  return StatusCode::SUCCESS;
131 }

◆ inputHandles()

virtual std::vector<Gaudi::DataHandle*> AthCommonDataStore< AthCommonMsg< Algorithm > >::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.

◆ msg() [1/2]

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

Definition at line 24 of file AthCommonMsg.h.

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

◆ msg() [2/2]

MsgStream& AthCommonMsg< Algorithm >::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< Algorithm >::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< Algorithm > >::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.

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

◆ sysInitialize()

StatusCode AthAlgorithm::sysInitialize ( )
overridevirtualinherited

Override sysInitialize.

Override sysInitialize from the base class.

Loop through all output handles, and if they're WriteCondHandles, automatically register them and this Algorithm with the CondSvc

Scan through all outputHandles, and if they're WriteCondHandles, register them with the CondSvc

Reimplemented from AthCommonDataStore< AthCommonMsg< Algorithm > >.

Reimplemented in AthAnalysisAlgorithm, AthFilterAlgorithm, PyAthena::Alg, and AthHistogramAlgorithm.

Definition at line 66 of file AthAlgorithm.cxx.

66  {
68 
69  if (sc.isFailure()) {
70  return sc;
71  }
72  ServiceHandle<ICondSvc> cs("CondSvc",name());
73  for (auto h : outputHandles()) {
74  if (h->isCondition() && h->mode() == Gaudi::DataHandle::Writer) {
75  // do this inside the loop so we don't create the CondSvc until needed
76  if ( cs.retrieve().isFailure() ) {
77  ATH_MSG_WARNING("no CondSvc found: won't autoreg WriteCondHandles");
78  return StatusCode::SUCCESS;
79  }
80  if (cs->regHandle(this,*h).isFailure()) {
81  sc = StatusCode::FAILURE;
82  ATH_MSG_ERROR("unable to register WriteCondHandle " << h->fullKey()
83  << " with CondSvc");
84  }
85  }
86  }
87  return sc;
88 }

◆ sysStart()

virtual StatusCode AthCommonDataStore< AthCommonMsg< Algorithm > >::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< Algorithm > >::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  }

Member Data Documentation

◆ m_caloNoiseKey

SG::ReadCondHandleKey<CaloNoise> CaloCellFilterAlg::m_caloNoiseKey
private
Initial value:
{this,
"CaloNoise", "", "Calo noise object name"}

Key of the CaloNoise Conditions data object.

Typical values are '"electronicNoise', 'pileupNoise', or '"totalNoise'

Definition at line 66 of file CaloCellFilterAlg.h.

◆ m_caloNums

std::vector< unsigned int > CaloCellFilterAlg::m_caloNums
private

which calo to treat

Definition at line 51 of file CaloCellFilterAlg.h.

◆ m_caloSamplings

std::vector< unsigned int > CaloCellFilterAlg::m_caloSamplings
private

which calo samplings to treat

Definition at line 55 of file CaloCellFilterAlg.h.

◆ m_caloSamplingSelection

bool CaloCellFilterAlg::m_caloSamplingSelection
private

Definition at line 70 of file CaloCellFilterAlg.h.

◆ m_caloSelection

bool CaloCellFilterAlg::m_caloSelection
private

Definition at line 69 of file CaloCellFilterAlg.h.

◆ m_cellEnergyThreshold

float CaloCellFilterAlg::m_cellEnergyThreshold
private

threshold on cell energy for ntuple

Definition at line 52 of file CaloCellFilterAlg.h.

◆ m_cellsName

std::string CaloCellFilterAlg::m_cellsName
private

Cell container.

Definition at line 48 of file CaloCellFilterAlg.h.

◆ m_detStore

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

Pointer to StoreGate (detector store by default)

Definition at line 393 of file AthCommonDataStore.h.

◆ m_emid

const LArEM_ID* CaloCellFilterAlg::m_emid
private

Definition at line 57 of file CaloCellFilterAlg.h.

◆ m_evtStore

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

Pointer to StoreGate (event store by default)

Definition at line 390 of file AthCommonDataStore.h.

◆ m_extendedExtraObjects

DataObjIDColl AthAlgorithm::m_extendedExtraObjects
privateinherited

Definition at line 79 of file AthAlgorithm.h.

◆ m_fcalid

const LArFCAL_ID* CaloCellFilterAlg::m_fcalid
private

Definition at line 58 of file CaloCellFilterAlg.h.

◆ m_hecid

const LArHEC_ID* CaloCellFilterAlg::m_hecid
private

Definition at line 59 of file CaloCellFilterAlg.h.

◆ m_maxNCells

int CaloCellFilterAlg::m_maxNCells
private

Maximum number of cells to accept.

Definition at line 50 of file CaloCellFilterAlg.h.

◆ m_outputCellsName

std::string CaloCellFilterAlg::m_outputCellsName
private

output Cell container

Definition at line 49 of file CaloCellFilterAlg.h.

◆ m_sigmaCut

float CaloCellFilterAlg::m_sigmaCut
private

cut on abs(E)/sigmaNoise (no cut if <0 )

Definition at line 54 of file CaloCellFilterAlg.h.

◆ m_tileid

const TileID* CaloCellFilterAlg::m_tileid
private

Definition at line 60 of file CaloCellFilterAlg.h.

◆ m_varHandleArraysDeclared

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

Definition at line 399 of file AthCommonDataStore.h.

◆ m_vhka

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

Definition at line 398 of file AthCommonDataStore.h.


The documentation for this class was generated from the following files:
CaloCellFilterAlg::m_maxNCells
int m_maxNCells
Maximum number of cells to accept.
Definition: CaloCellFilterAlg.h:50
python.PyKernel.retrieve
def retrieve(aClass, aKey=None)
Definition: PyKernel.py:110
GetLCDefs::Unknown
@ Unknown
Definition: GetLCDefs.h:21
pdg_comparison.sigma
sigma
Definition: pdg_comparison.py:324
ReadCellNoiseFromCool.cell
cell
Definition: ReadCellNoiseFromCool.py:53
CaloCellFilterAlg::m_caloSelection
bool m_caloSelection
Definition: CaloCellFilterAlg.h:69
python.PerfMonSerializer.p
def p
Definition: PerfMonSerializer.py:743
python.Constants.FATAL
int FATAL
Definition: Control/AthenaCommon/python/Constants.py:19
SG::ReadCondHandle
Definition: ReadCondHandle.h:44
ATH_MSG_INFO
#define ATH_MSG_INFO(x)
Definition: AthMsgStreamMacros.h:31
find
std::string find(const std::string &s)
return a remapped string
Definition: hcg.cxx:135
CaloCellFilterAlg::m_cellEnergyThreshold
float m_cellEnergyThreshold
threshold on cell energy for ntuple
Definition: CaloCellFilterAlg.h:52
SG::VIEW_ELEMENTS
@ VIEW_ELEMENTS
this data object is a view, it does not own its elmts
Definition: OwnershipPolicy.h:18
index
Definition: index.py:1
AthCommonDataStore< AthCommonMsg< Algorithm > >::declareProperty
Gaudi::Details::PropertyBase & declareProperty(Gaudi::Property< T > &t)
Definition: AthCommonDataStore.h:145
AthCommonDataStore< AthCommonMsg< Algorithm > >::m_evtStore
StoreGateSvc_t m_evtStore
Pointer to StoreGate (event store by default)
Definition: AthCommonDataStore.h:390
AthCommonDataStore< AthCommonMsg< Algorithm > >::m_vhka
std::vector< SG::VarHandleKeyArray * > m_vhka
Definition: AthCommonDataStore.h:398
CaloCellFilterAlg::m_fcalid
const LArFCAL_ID * m_fcalid
Definition: CaloCellFilterAlg.h:58
CaloCellFilterAlg::m_outputCellsName
std::string m_outputCellsName
output Cell container
Definition: CaloCellFilterAlg.h:49
read_hist_ntuple.t
t
Definition: read_hist_ntuple.py:5
SG::VarHandleKey::empty
bool empty() const
Test if the key is blank.
Definition: AthToolSupport/AsgDataHandles/Root/VarHandleKey.cxx:150
AthenaPoolTestRead.sc
sc
Definition: AthenaPoolTestRead.py:27
AthCommonDataStore< AthCommonMsg< Algorithm > >::detStore
const ServiceHandle< StoreGateSvc > & detStore() const
The standard StoreGateSvc/DetectorStore Returns (kind of) a pointer to the StoreGateSvc.
Definition: AthCommonDataStore.h:95
SG::VarHandleKeyArray::setOwner
virtual void setOwner(IDataHandleHolder *o)=0
AthCommonDataStore< AthCommonMsg< Algorithm > >::evtStore
ServiceHandle< StoreGateSvc > & evtStore()
The standard StoreGateSvc (event store) Returns (kind of) a pointer to the StoreGateSvc.
Definition: AthCommonDataStore.h:85
python.TriggerHandler.th
th
Definition: TriggerHandler.py:296
AthCommonDataStore
Definition: AthCommonDataStore.h:52
AthAlgorithm::sysInitialize
virtual StatusCode sysInitialize() override
Override sysInitialize.
Definition: AthAlgorithm.cxx:66
ATH_MSG_ERROR
#define ATH_MSG_ERROR(x)
Definition: AthMsgStreamMacros.h:33
CaloCellFilterAlg::m_caloNoiseKey
SG::ReadCondHandleKey< CaloNoise > m_caloNoiseKey
Key of the CaloNoise Conditions data object.
Definition: CaloCellFilterAlg.h:66
AthCommonDataStore< AthCommonMsg< Algorithm > >::outputHandles
virtual std::vector< Gaudi::DataHandle * > outputHandles() const override
Return this algorithm's output handles.
EL::StatusCode
::StatusCode StatusCode
StatusCode definition for legacy code.
Definition: PhysicsAnalysis/D3PDTools/EventLoop/EventLoop/StatusCode.h:22
CaloCellFilterAlg::m_sigmaCut
float m_sigmaCut
cut on abs(E)/sigmaNoise (no cut if <0 )
Definition: CaloCellFilterAlg.h:54
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
AthCommonDataStore< AthCommonMsg< Algorithm > >::m_detStore
StoreGateSvc_t m_detStore
Pointer to StoreGate (detector store by default)
Definition: AthCommonDataStore.h:393
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
CaloCellFilterAlg::m_emid
const LArEM_ID * m_emid
Definition: CaloCellFilterAlg.h:57
merge_scale_histograms.doc
string doc
Definition: merge_scale_histograms.py:9
name
std::string name
Definition: Control/AthContainers/Root/debug.cxx:195
ConstDataVector::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)
CaloCellContainer
Container class for CaloCell.
Definition: CaloCellContainer.h:55
REPORT_MESSAGE
#define REPORT_MESSAGE(LVL)
Report a message.
Definition: Control/AthenaKernel/AthenaKernel/errorcheck.h:365
AthAlgorithm::m_extendedExtraObjects
DataObjIDColl m_extendedExtraObjects
Definition: AthAlgorithm.h:79
DeMoScan.index
string index
Definition: DeMoScan.py:362
DiTauMassTools::MaxHistStrategyV2::e
e
Definition: PhysicsAnalysis/TauID/DiTauMassTools/DiTauMassTools/HelperFunctions.h:26
a
TList * a
Definition: liststreamerinfos.cxx:10
h
CaloCellFilterAlg::m_tileid
const TileID * m_tileid
Definition: CaloCellFilterAlg.h:60
CaloCell
Data object for each calorimeter readout cell.
Definition: CaloCell.h:57
CaloCellFilterAlg::m_hecid
const LArHEC_ID * m_hecid
Definition: CaloCellFilterAlg.h:59
ATH_MSG_WARNING
#define ATH_MSG_WARNING(x)
Definition: AthMsgStreamMacros.h:32
ConstDataVector
DataVector adapter that acts like it holds const pointers.
Definition: ConstDataVector.h:76
SG::VarHandleBase::vhKey
SG::VarHandleKey & vhKey()
Return a non-const reference to the HandleKey.
Definition: StoreGate/src/VarHandleBase.cxx:616
declareProperty
#define declareProperty(n, p, h)
Definition: BaseFakeBkgTool.cxx:15
AthAlgorithm::AthAlgorithm
AthAlgorithm()
Default constructor:
CaloCell_Base_ID::NSUBCALO
@ NSUBCALO
Definition: CaloCell_Base_ID.h:46
python.Bindings.keys
keys
Definition: Control/AthenaPython/python/Bindings.py:790
LHEF::Writer
Pythia8::Writer Writer
Definition: Prophecy4fMerger.cxx:12
python.Constants.VERBOSE
int VERBOSE
Definition: Control/AthenaCommon/python/Constants.py:14
SG::AllowEmpty
@ AllowEmpty
Definition: StoreGate/StoreGate/VarHandleKey.h:30
AthCommonDataStore::declareGaudiProperty
Gaudi::Details::PropertyBase & declareGaudiProperty(Gaudi::Property< T > &hndl, const SG::VarHandleKeyType &)
specialization for handling Gaudi::Property<SG::VarHandleKey>
Definition: AthCommonDataStore.h:156
CaloCellFilterAlg::m_cellsName
std::string m_cellsName
Cell container.
Definition: CaloCellFilterAlg.h:48
CaloCellFilterAlg::m_caloNums
std::vector< unsigned int > m_caloNums
which calo to treat
Definition: CaloCellFilterAlg.h:51
CaloCellFilterAlg::m_caloSamplingSelection
bool m_caloSamplingSelection
Definition: CaloCellFilterAlg.h:70
fitman.k
k
Definition: fitman.py:528
CaloCellFilterAlg::m_caloSamplings
std::vector< unsigned int > m_caloSamplings
which calo samplings to treat
Definition: CaloCellFilterAlg.h:55
ServiceHandle< ICondSvc >