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

#include <TileRawChannelMaker.h>

Inheritance diagram for TileRawChannelMaker:
Collaboration diagram for TileRawChannelMaker:

Public Member Functions

 TileRawChannelMaker (const std::string &name, ISvcLocator *pSvcLocator)
 Standard constructor. More...
 
virtual ~TileRawChannelMaker ()
 Destructor. More...
 
virtual StatusCode initialize () override
 Initialize algorithm. More...
 
virtual StatusCode execute () override
 Execute. More...
 
virtual StatusCode finalize () override
 Finalize. More...
 
virtual bool isClonable () const override final
 
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

void fitOverflowedChannels (const EventContext &ctx)
 
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

SG::ReadHandleKey< TileDigitsContainerm_digitsContainerKey
 
std::vector< std::string > m_TileRawChannelBuilderIDVec
 Vector with class name[/instance name] of builder sub-algs. More...
 
ToolHandleArray< TileRawChannelBuilderm_tileRawChannelBuilderList
 Vector of builder algtools. More...
 
bool m_fitOverflow
 
ToolHandle< TileRawChannelBuilderm_tileRawChannelBuilderFitOverflow
 
float m_overflowReplaceTimeCut
 
float m_overflowReplacePedestalCut
 
float m_overflowReplaceChi2Cut
 
std::string m_infoName
 
const TileInfom_tileInfo
 
float m_ADCmaxMinusEps
 
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

Definition at line 42 of file TileRawChannelMaker.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

◆ TileRawChannelMaker()

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

Standard constructor.

Parameters
nameName of algorithm
pSvcLocatorService locator

Definition at line 25 of file TileRawChannelMaker.cxx.

27  : AthAlgorithm(name, pSvcLocator)
28  , m_fitOverflow(false)
29  , m_tileInfo(0)
30 {
31  declareProperty("FitOverflow", m_fitOverflow, "Fit or not overflows");
32  declareProperty("TileInfoName", m_infoName = "TileInfo");
33 
36  m_overflowReplaceChi2Cut = 40000.0;
37 }

◆ ~TileRawChannelMaker()

TileRawChannelMaker::~TileRawChannelMaker ( )
virtual

Destructor.

Definition at line 42 of file TileRawChannelMaker.cxx.

42  {
43 }

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 TileRawChannelMaker::execute ( )
overridevirtual

Execute.

Definition at line 80 of file TileRawChannelMaker.cxx.

80  {
81 
82  const EventContext& ctx = Gaudi::Hive::currentContext();
83 
84  // get named TileDigitsContaner from TES
86 
87  if (!digitsContaner.isValid()) {
88  ATH_MSG_WARNING( "Can't retrieve TileDigitsContainer '"
89  << m_digitsContainerKey.key() << "' from TDS" );
90 
91  return StatusCode::SUCCESS;
92  }
93 
94  ATH_MSG_DEBUG( "Got TileDigitsContainer '" << m_digitsContainerKey.key() << "'" );
95 
96  // create RawChannel Containers for all sub-algs
97  for (ToolHandle<TileRawChannelBuilder>& rawChannelBuilder : m_tileRawChannelBuilderList) {
98  ATH_CHECK( rawChannelBuilder->createContainer(ctx) );
99  rawChannelBuilder->resetDrawer();
100  }
101 
102  // clean memory about overflows
103  if (m_fitOverflow) {
104  for (ToolHandle<TileRawChannelBuilder>& rawChannelBuilder : m_tileRawChannelBuilderList) {
105  rawChannelBuilder->resetOverflows();
106  }
107  }
108 
109  // Iterate over all collections (drawers) with digits
110  for (const TileDigitsCollection* digitsCollection : *digitsContaner) {
111 
112  // Iterate over all sub-algs
113  for (ToolHandle<TileRawChannelBuilder>& rawChannelBuilder : m_tileRawChannelBuilderList) {
114  // reconstruct all channels in one drawer
115  ATH_CHECK( rawChannelBuilder->build(digitsCollection, ctx) );
116  }
117 
118  }
119 
120  if (m_fitOverflow
121  && !(*m_tileRawChannelBuilderList.begin())->getOverflowedChannels().empty()) {
123  }
124 
125  // commit RawChannel Containers for all sub-algs
126  for (ToolHandle<TileRawChannelBuilder>& rawChannelBuilder : m_tileRawChannelBuilderList) {
127  ATH_CHECK( rawChannelBuilder->commitContainer(ctx) );
128  }
129 
130  ATH_MSG_DEBUG( "execute completed successfully" );
131 
132  return StatusCode::SUCCESS;
133 }

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

◆ finalize()

StatusCode TileRawChannelMaker::finalize ( )
overridevirtual

Finalize.

Definition at line 138 of file TileRawChannelMaker.cxx.

138  {
139 
140  ATH_MSG_INFO(" finalize completed successfully" );
141 
142  return StatusCode::SUCCESS;
143 }

◆ fitOverflowedChannels()

void TileRawChannelMaker::fitOverflowedChannels ( const EventContext &  ctx)
private

Definition at line 145 of file TileRawChannelMaker.cxx.

145  {
146 
147  for (ToolHandle<TileRawChannelBuilder> rawChannelBuilder : m_tileRawChannelBuilderList) {
148 
149  Overflows_t overflows = rawChannelBuilder->getOverflowedChannels();
150 
151  for (std::pair<TileRawChannel*, const TileDigits*>& overflow : overflows) {
152 
153  TileRawChannel* rwCh = overflow.first;
154  const TileDigits* pDigits = overflow.second;
155 
156  TileRawChannel* fittedRwCh = m_tileRawChannelBuilderFitOverflow->rawChannel(pDigits, ctx);
157 
158  bool fitOK = ( ( fabs(fittedRwCh->time()) < m_overflowReplaceTimeCut ) &&
159  ( fittedRwCh->pedestal() < m_overflowReplacePedestalCut ) &&
160  ( fittedRwCh->quality() < m_overflowReplaceChi2Cut ) );
161 
162  int nSatSamples = 0;
163  std::vector<double> digits = pDigits->get_digits();
164  for (size_t ii = 0; ii<digits.size(); ii++) {
165  if (digits[ii] > m_ADCmaxMinusEps) nSatSamples++;
166  }
167 
168  // NOTE: Optimal filtering is always run first and the fit method is used just in cases when there is an overflow.
169  // NOTE: Mathematically, a maximum pedestal range is [-460.607488, 4556.603392] and it happens for the phase 0.1 ns.
170  // Therefore, we use the following intervals:
171  // - if optimal filtering is used: (-500, 4600)
172  // - if fit method is used: (5000, 9095)
173  // NOTE: Overlay magic number is 4800.
174 
175  if ( !fitOK || nSatSamples > 2) {
176  // If the fit is bad, reset the energy.
177  //The same if the number of saturated samples is 3 (or bigger)
178 
179  //If we reject pulse, the quality must be above 9999 in order to mask the
180  // channel. So we set it at 10000 * nSatSamples. But if the fit completely fails,
181  // the quality is 100000, and we can keep this info in quality as well.
182  float quality = 10000. * ( (nSatSamples) ? nSatSamples : 9);
183  if (fittedRwCh->quality() > 99999.9) quality += 100000.;
184  rwCh->insert(0.0, 0.0, quality);
185 
186  // 20000 - Indicates overflow, 9400 - indicates bad fit or >2 saturations.
187  // 30000 - Indicates overflow + underflow, 9400 - indicates bad fit or >2 saturations.
188  float pedestal = (rwCh->pedestal() < 29500.) ? (29400.)
189  : (39400.);
190  ATH_MSG_DEBUG("Overflow " << (std::string)(*rwCh) <<
191  " change ped from " << rwCh->pedestal() << " to " << pedestal);
192  rwCh->setPedestal(pedestal);
193  } else {
194  //If the fit is OK replace
195 
196  //The range of the quality factor is very different in the fit (0-100k)
197  //than in the OF (0-255). So we rescale by a factor of 400.
198  rwCh->insert(fittedRwCh->amplitude(),
199  fittedRwCh->time(),
200  fittedRwCh->quality()*(1./400.));
201  // 20000 - Indicates overflow, 5000 - indicates fitted
202  // 30000 - Indicates overflow + underflow, 5000 - indicates fitted.
203  float pedestal = (rwCh->pedestal() < 29500.) ? fittedRwCh->pedestal() + 25000.
204  : fittedRwCh->pedestal() + 35000.;
205  ATH_MSG_DEBUG("Overflow " << (std::string)(*rwCh) <<
206  " change ped from " << rwCh->pedestal() << " to " << pedestal);
207  rwCh->setPedestal(pedestal);
208  }
209 
210  }
211  }
212 
213 }

◆ initialize()

StatusCode TileRawChannelMaker::initialize ( )
overridevirtual

Initialize algorithm.

Definition at line 48 of file TileRawChannelMaker.cxx.

48  {
49 
50  ATH_MSG_DEBUG( "starting to retrieve list " << m_tileRawChannelBuilderList);
52 
54 
56  ATH_MSG_INFO( "TileRawChannelBuilder list is empty - will not do anything");
57  m_fitOverflow = false;
58  }
59 
60  if (m_fitOverflow) {
62  } else {
64  }
65 
67 
68  ATH_MSG_INFO( "Initialization completed successfully");
69 
70  // TileInfo
72  m_ADCmaxMinusEps = m_tileInfo->ADCmax() - 0.01; // indicates channels which were masked in background dataset
73 
74  return StatusCode::SUCCESS;
75 }

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

◆ isClonable()

virtual bool TileRawChannelMaker::isClonable ( ) const
inlinefinaloverridevirtual

Definition at line 53 of file TileRawChannelMaker.h.

53 { return true; }

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

float TileRawChannelMaker::m_ADCmaxMinusEps
private

Definition at line 86 of file TileRawChannelMaker.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_digitsContainerKey

SG::ReadHandleKey<TileDigitsContainer> TileRawChannelMaker::m_digitsContainerKey
private
Initial value:
{this,"TileDigitsContainer","TileDigitsCnt",
"Input Tile digits container key"}

Definition at line 60 of file TileRawChannelMaker.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_fitOverflow

bool TileRawChannelMaker::m_fitOverflow
private

Definition at line 75 of file TileRawChannelMaker.h.

◆ m_infoName

std::string TileRawChannelMaker::m_infoName
private

Definition at line 84 of file TileRawChannelMaker.h.

◆ m_overflowReplaceChi2Cut

float TileRawChannelMaker::m_overflowReplaceChi2Cut
private

Definition at line 81 of file TileRawChannelMaker.h.

◆ m_overflowReplacePedestalCut

float TileRawChannelMaker::m_overflowReplacePedestalCut
private

Definition at line 80 of file TileRawChannelMaker.h.

◆ m_overflowReplaceTimeCut

float TileRawChannelMaker::m_overflowReplaceTimeCut
private

Definition at line 79 of file TileRawChannelMaker.h.

◆ m_tileInfo

const TileInfo* TileRawChannelMaker::m_tileInfo
private

Definition at line 85 of file TileRawChannelMaker.h.

◆ m_tileRawChannelBuilderFitOverflow

ToolHandle<TileRawChannelBuilder> TileRawChannelMaker::m_tileRawChannelBuilderFitOverflow
private
Initial value:
{this,
"TileRawChannelBuilderFitOverflow", "", "Tile raw channels builder tool to fit overflows"}

Definition at line 76 of file TileRawChannelMaker.h.

◆ m_TileRawChannelBuilderIDVec

std::vector<std::string> TileRawChannelMaker::m_TileRawChannelBuilderIDVec
private

Vector with class name[/instance name] of builder sub-algs.

Definition at line 66 of file TileRawChannelMaker.h.

◆ m_tileRawChannelBuilderList

ToolHandleArray<TileRawChannelBuilder> TileRawChannelMaker::m_tileRawChannelBuilderList
private
Initial value:
{this,
"TileRawChannelBuilder", {}, "Tile raw channels builder tools"}

Vector of builder algtools.

Definition at line 72 of file TileRawChannelMaker.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:
python.PyKernel.retrieve
def retrieve(aClass, aKey=None)
Definition: PyKernel.py:110
TileRawChannelMaker::fitOverflowedChannels
void fitOverflowedChannels(const EventContext &ctx)
Definition: TileRawChannelMaker.cxx:145
TileRawChannelMaker::m_overflowReplacePedestalCut
float m_overflowReplacePedestalCut
Definition: TileRawChannelMaker.h:80
TileRawChannel::insert
int insert(float amplitude, float time, float quality)
Definition: TileRawChannel.cxx:80
TileRawChannelMaker::m_overflowReplaceChi2Cut
float m_overflowReplaceChi2Cut
Definition: TileRawChannelMaker.h:81
ATH_MSG_INFO
#define ATH_MSG_INFO(x)
Definition: AthMsgStreamMacros.h:31
SG::ReadHandle
Definition: StoreGate/StoreGate/ReadHandle.h:70
AthCommonDataStore< AthCommonMsg< Algorithm > >::declareProperty
Gaudi::Details::PropertyBase & declareProperty(Gaudi::Property< T > &t)
Definition: AthCommonDataStore.h:145
TileRawChannelMaker::m_fitOverflow
bool m_fitOverflow
Definition: TileRawChannelMaker.h:75
TileRawChannel::pedestal
float pedestal(void) const
Definition: TileRawChannel.h:106
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
TileRawChannel::setPedestal
void setPedestal(float ped)
Definition: TileRawChannel.h:94
TileRawChannelMaker::m_tileRawChannelBuilderList
ToolHandleArray< TileRawChannelBuilder > m_tileRawChannelBuilderList
Vector of builder algtools.
Definition: TileRawChannelMaker.h:72
read_hist_ntuple.t
t
Definition: read_hist_ntuple.py:5
SG::VarHandleKey::key
const std::string & key() const
Return the StoreGate ID for the referenced object.
Definition: AthToolSupport/AsgDataHandles/Root/VarHandleKey.cxx:141
TileRawChannel::time
float time(int ind=0) const
Definition: TileRawChannel.h:103
AthenaPoolTestRead.sc
sc
Definition: AthenaPoolTestRead.py:27
Overflows_t
std::vector< std::pair< TileRawChannel *, const TileDigits * > > Overflows_t
Definition: TileRawChannelBuilder.h:55
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
IDTPMcnv.htype
htype
Definition: IDTPMcnv.py:27
TileRawChannel::quality
float quality(int ind=0) const
Definition: TileRawChannel.h:105
TileRawChannelMaker::m_tileRawChannelBuilderFitOverflow
ToolHandle< TileRawChannelBuilder > m_tileRawChannelBuilderFitOverflow
Definition: TileRawChannelMaker.h:76
TileDigits::get_digits
std::vector< double > get_digits(void) const
Definition: TileDigits.h:65
python.utils.AtlRunQueryDQUtils.p
p
Definition: AtlRunQueryDQUtils.py:210
AthCommonDataStore
Definition: AthCommonDataStore.h:52
TileRawChannel::amplitude
float amplitude(int ind=0) const
Definition: TileRawChannel.h:101
AthAlgorithm::sysInitialize
virtual StatusCode sysInitialize() override
Override sysInitialize.
Definition: AthAlgorithm.cxx:66
TileRawChannelMaker::m_infoName
std::string m_infoName
Definition: TileRawChannelMaker.h:84
ATH_MSG_ERROR
#define ATH_MSG_ERROR(x)
Definition: AthMsgStreamMacros.h:33
AthCommonDataStore< AthCommonMsg< Algorithm > >::outputHandles
virtual std::vector< Gaudi::DataHandle * > outputHandles() const override
Return this algorithm's output handles.
TileRawChannelMaker::m_overflowReplaceTimeCut
float m_overflowReplaceTimeCut
Definition: TileRawChannelMaker.h:79
EL::StatusCode
::StatusCode StatusCode
StatusCode definition for legacy code.
Definition: PhysicsAnalysis/D3PDTools/EventLoop/EventLoop/StatusCode.h:22
ATH_MSG_DEBUG
#define ATH_MSG_DEBUG(x)
Definition: AthMsgStreamMacros.h:29
TileRawChannel
Definition: TileRawChannel.h:35
TileRawChannelMaker::m_tileInfo
const TileInfo * m_tileInfo
Definition: TileRawChannelMaker.h:85
ATH_CHECK
#define ATH_CHECK
Definition: AthCheckMacros.h:40
AthCommonDataStore< AthCommonMsg< Algorithm > >::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
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
TileDigitsCollection
Definition: TileDigitsCollection.h:18
merge_scale_histograms.doc
string doc
Definition: merge_scale_histograms.py:9
name
std::string name
Definition: Control/AthContainers/Root/debug.cxx:221
TileDigits
Definition: TileDigits.h:30
TileRawChannelMaker::m_ADCmaxMinusEps
float m_ADCmaxMinusEps
Definition: TileRawChannelMaker.h:86
AthAlgorithm::m_extendedExtraObjects
DataObjIDColl m_extendedExtraObjects
Definition: AthAlgorithm.h:79
a
TList * a
Definition: liststreamerinfos.cxx:10
h
ATH_MSG_WARNING
#define ATH_MSG_WARNING(x)
Definition: AthMsgStreamMacros.h:32
SG::VarHandleBase::vhKey
SG::VarHandleKey & vhKey()
Return a non-const reference to the HandleKey.
Definition: StoreGate/src/VarHandleBase.cxx:623
AthAlgorithm::AthAlgorithm
AthAlgorithm()
Default constructor:
python.Bindings.keys
keys
Definition: Control/AthenaPython/python/Bindings.py:798
LHEF::Writer
Pythia8::Writer Writer
Definition: Prophecy4fMerger.cxx:12
AthCommonDataStore::declareGaudiProperty
Gaudi::Details::PropertyBase & declareGaudiProperty(Gaudi::Property< T > &hndl, const SG::VarHandleKeyType &)
specialization for handling Gaudi::Property<SG::VarHandleKey>
Definition: AthCommonDataStore.h:156
TileInfo::ADCmax
int ADCmax() const
Returns the maximum ADC output (10 bits --> 1023)
Definition: TileInfo.h:71
TileRawChannelMaker::m_digitsContainerKey
SG::ReadHandleKey< TileDigitsContainer > m_digitsContainerKey
Definition: TileRawChannelMaker.h:60
fitman.k
k
Definition: fitman.py:528
ServiceHandle< ICondSvc >