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

#include <LArCalibDigitMaker.h>

Inheritance diagram for LArCalibDigitMaker:
Collaboration diagram for LArCalibDigitMaker:

Public Member Functions

 LArCalibDigitMaker (const std::string &name, ISvcLocator *pSvcLocator)
 
 ~LArCalibDigitMaker ()
 
StatusCode initialize ()
 
StatusCode execute ()
 
StatusCode finalize ()
 
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

SG::ReadCondHandleKey< LArCalibLineMappingm_calibMapKey {this,"CalibMapKey","LArCalibLineMap","SG Key of calib line mapping object"}
 
SG::ReadCondHandleKey< LArCalibLineMappingm_calibMapSCKey {this,"CalibMapSCKey","LArCalibIdMapSC","SG Key of calib line mapping object"}
 
std::vector< std::string > m_keylist
 
std::vector< std::vector< double > > m_vPattern
 
std::vector< std::vector< double > > m_vDAC
 
std::vector< unsigned > m_vDelay
 
std::vector< int > m_nPatterns
 
std::vector< std::vector< double > > m_vBoardIDs
 
unsigned m_nTrigger
 
double m_delayScale
 
bool m_dontRun
 
bool m_isSC
 
int m_eventNb = 0
 
bool m_skipDuplicates
 
std::vector< HWIdentifierm_pulsedChids
 
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 13 of file LArCalibDigitMaker.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

◆ LArCalibDigitMaker()

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

Definition at line 23 of file LArCalibDigitMaker.cxx.

24  : AthAlgorithm(name, pSvcLocator),
25  m_nTrigger(0)
26 {
27  //declareProperty("DigitKey",m_key="");
28  declareProperty("KeyList",m_keylist);
29  declareProperty("DAC",m_vDAC);
30  declareProperty("Delay",m_vDelay);
31  declareProperty("Pattern",m_vPattern);
32  declareProperty("nPattern",m_nPatterns);
33  declareProperty("NTrigger",m_nTrigger);
34  declareProperty("BoardIDs",m_vBoardIDs);
35  declareProperty("DelayScale",m_delayScale=(25./240.)*ns);
36  declareProperty("DontRun",m_dontRun=false); //Put only Board configuration in DetectorStore
37  declareProperty("isSC",m_isSC=false);
38  declareProperty("skipDuplicates",m_skipDuplicates=false);
39 }

◆ ~LArCalibDigitMaker()

LArCalibDigitMaker::~LArCalibDigitMaker ( )

Definition at line 41 of file LArCalibDigitMaker.cxx.

42 {//empty
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 LArCalibDigitMaker::execute ( )

Definition at line 116 of file LArCalibDigitMaker.cxx.

116  {
117 
118  if (m_dontRun) return StatusCode::SUCCESS;
119 
120  const EventContext& ctx = Gaudi::Hive::currentContext();
121 
122 
123  const LArCalibLineMapping *clcabling=nullptr;
124  if(m_isSC) {
125  ATH_MSG_DEBUG ( "======== LArCalibDigitMaker: using SC calib line map" );
127  clcabling=*clHdl;
128  } else {
130  clcabling=*clHdl;
131  }
132 
133 
134  if(!clcabling) {
135  ATH_MSG_ERROR( "Do not have cabling mapping from key " << m_calibMapKey.key() );
136  return StatusCode::FAILURE;
137  }
138 
139  const unsigned eventNb=(ctx.eventID().event_number())&0xffffff ; // Are we sure?
140 
141  ATH_MSG_DEBUG ( "======== executing event "<< eventNb << " ========" );
142 
143  const LArCalibParams* calibParams = nullptr;
144  ATH_CHECK( detStore()->retrieve(calibParams,"LArCalibParams") );
145 
146  for (const std::string& key : m_keylist) { //Loop over all containers that are to be processed (e.g. different gains)
147  ATH_MSG_DEBUG ( "Retrieving LArDigitContainer. Key= " << key );
148  const LArDigitContainer* larDigitCont;
149  StatusCode sc = evtStore()->retrieve(larDigitCont,key);
150  if (sc.isFailure()) {
151  ATH_MSG_DEBUG ( "Cannot read LArDigitContainer from StoreGate! key=" << key );
152  continue; //Try next container
153  }
154  if (larDigitCont->empty()) {
155  ATH_MSG_DEBUG ( "LArDigitContainer with key '" << key << "' is empty. Ignored." );
156  continue; //Try next container
157  }
158  if (!m_pulsedChids.empty()) m_pulsedChids.clear();
159  //Iterate over LArDigitContainer and build LArCalibDigitContainer
160  auto calibDigitContainer=std::make_unique<LArCalibDigitContainer>();
161  calibDigitContainer->setDelayScale(m_delayScale);
162  for (const LArDigit* digit : *larDigitCont) {
163  HWIdentifier chid=digit->hardwareID();
164 
165  if(std::find(m_pulsedChids.begin(), m_pulsedChids.end(), chid) != m_pulsedChids.end()) {
166  if(m_skipDuplicates) continue; // skip this channel if it was already pulsed
167  m_pulsedChids.push_back(chid);
168  }
169 
170  //Get data members of LArDigit
171  const std::vector<short>& samples=digit->samples();
172  CaloGain::CaloGain gain=digit->gain();
173  const std::vector<HWIdentifier>& calibChannelIDs=clcabling->calibSlotLine(chid);
174  if (calibChannelIDs.empty()) {
175  continue; //Disconnected channel
176  }
177  //For the time being, I assume we are in H8 and have only one calib channel per FEB channel
178  std::vector<HWIdentifier>::const_iterator csl_it=calibChannelIDs.begin();
179  //Now the CalibBoard settings:
180  //Get data to build LArCalibDigit:
181  unsigned ddac=calibParams->DAC(eventNb,*csl_it);
182  if(ddac==kmaxDAC) {
183  ATH_MSG_WARNING("SKIP "<<chid<<" "<<gain<<" "<<ddac<<" event no "<<eventNb);
184  continue;
185  }
186  uint16_t dac=ddac;
187  uint16_t delay=calibParams->Delay(eventNb,*csl_it);
188 
189  bool ispulsed=false;
190  for(; csl_it != calibChannelIDs.end(); ++csl_it) {
191  if(calibParams->isPulsed(eventNb,*csl_it)){
192  ispulsed=true;
193  break;
194  }
195  }
196  //build LArCalibDigit:
197  if ( ispulsed ){
198  ATH_MSG_VERBOSE("HERE!! "<<chid<<" "<<gain<<" "<<dac<<" "<<delay<<" "<<ispulsed<<" event no "<<eventNb<<" "<<calibChannelIDs.size()<<" calib lines, first is "<<*csl_it);
199 
200  }
201  LArCalibDigit* calibDigit=new LArCalibDigit(chid,gain, samples, dac, delay, ispulsed);
202  calibDigitContainer->push_back(calibDigit);
203  } //End iteration to build calibDigits
204  ATH_MSG_DEBUG("Trying to store with key "<<key);
205  ATH_CHECK( evtStore()->record(std::move(calibDigitContainer),key) );
206  ATH_MSG_DEBUG ("LArCalibDigitContainer recorded to StoreGate. key=" << key );
207  } //End loop key list
208  return StatusCode::SUCCESS;
209 }

◆ 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 LArCalibDigitMaker::finalize ( )
inline

Definition at line 23 of file LArCalibDigitMaker.h.

23 {return StatusCode::SUCCESS;}

◆ initialize()

StatusCode LArCalibDigitMaker::initialize ( )

Definition at line 45 of file LArCalibDigitMaker.cxx.

46 {
47 
48  //m_oldeventNb=-999;
49  m_eventNb=-1;
50 
51  ATH_MSG_DEBUG ( "======== LArCalibDigitMaker Initialize ========" );
52  // bool containsKeySC = false;
53  for (unsigned int i = 0; i < m_keylist.size(); ++i) {
54  if (m_keylist.at(i).compare("SC") == 0) {
55  m_isSC = true;
56  ATH_MSG_DEBUG ( "======== LArCalibDigitMaker isSC is True ========" );
57  }
58  }
61 
62  //if we have calib board params as jobOpts, set them
63 
64  std::vector<std::vector<unsigned>> theseBoardIDs;
65  std::vector<std::vector<unsigned>> thesePatterns;
66  std::vector<std::vector<unsigned>> theseDACs;
67  theseBoardIDs.reserve(m_vBoardIDs.size());
68  thesePatterns.reserve(m_vPattern.size());
69  theseDACs.reserve(m_vDAC.size());
70  for (const auto& elem : m_vBoardIDs) {
71  theseBoardIDs.emplace_back(elem.begin(), elem.end());
72  }
73  for (const auto& elem : m_vPattern) {
74  thesePatterns.emplace_back(elem.begin(), elem.end());
75  }
76  for (const auto& elem : m_vDAC) {
77  theseDACs.emplace_back(elem.begin(), elem.end());
78  }
79  std::vector<unsigned> cutPattern;
80 
81  auto calibParams = std::make_unique<LArCalibParams>();
82  ATH_CHECK( calibParams->initialize() );
83  for( long unsigned int i=0; i < theseBoardIDs.size(); i++ ){
84  if (!theseBoardIDs[i].empty() && !m_vDAC[i].empty() && !m_vDelay.empty() && !thesePatterns[i].empty() && m_nTrigger) {
85  cutPattern = thesePatterns[i];
86 
87  if (thesePatterns[i].size() != ((unsigned int)m_nPatterns[i])){
88  ATH_MSG_WARNING("Going to change pattern length from "<<thesePatterns[i].size()<<" to "<<m_nPatterns[i]);
89  cutPattern.resize(m_nPatterns[i]);
90  }
91  if (thesePatterns[i].size()%4) {
92  ATH_MSG_ERROR ( "Problem with jobOptions! One Pattern must conists of 4 32bit values! Pattern "<< i );
93  return StatusCode::FAILURE;
94  }
95  for (unsigned id : theseBoardIDs[i]) {
96  const HWIdentifier calibBoardHWID(id);
97  calibParams->set(calibBoardHWID,m_nTrigger,cutPattern,theseDACs[i],m_vDelay);
98  }
99  }
100  }
101 
102  ATH_CHECK( detStore()->record(std::move(calibParams),"LArCalibParams") );
103  // End set calib board parameters
104 
105  if (m_keylist.empty()) {
106  m_keylist.emplace_back("HIGH");
107  m_keylist.emplace_back("MEDIUM");
108  m_keylist.emplace_back("LOW");
109  }
110 
111  ATH_MSG_DEBUG ( "======== LArCalibDigitMaker initialize successfully ========" );
112  return StatusCode::SUCCESS;
113 }

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

SG::ReadCondHandleKey<LArCalibLineMapping> LArCalibDigitMaker::m_calibMapKey {this,"CalibMapKey","LArCalibLineMap","SG Key of calib line mapping object"}
private

Definition at line 25 of file LArCalibDigitMaker.h.

◆ m_calibMapSCKey

SG::ReadCondHandleKey<LArCalibLineMapping> LArCalibDigitMaker::m_calibMapSCKey {this,"CalibMapSCKey","LArCalibIdMapSC","SG Key of calib line mapping object"}
private

Definition at line 26 of file LArCalibDigitMaker.h.

◆ m_delayScale

double LArCalibDigitMaker::m_delayScale
private

Definition at line 34 of file LArCalibDigitMaker.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_dontRun

bool LArCalibDigitMaker::m_dontRun
private

Definition at line 35 of file LArCalibDigitMaker.h.

◆ m_eventNb

int LArCalibDigitMaker::m_eventNb = 0
private

Definition at line 37 of file LArCalibDigitMaker.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_isSC

bool LArCalibDigitMaker::m_isSC
private

Definition at line 36 of file LArCalibDigitMaker.h.

◆ m_keylist

std::vector<std::string> LArCalibDigitMaker::m_keylist
private

Definition at line 27 of file LArCalibDigitMaker.h.

◆ m_nPatterns

std::vector<int> LArCalibDigitMaker::m_nPatterns
private

Definition at line 31 of file LArCalibDigitMaker.h.

◆ m_nTrigger

unsigned LArCalibDigitMaker::m_nTrigger
private

Definition at line 33 of file LArCalibDigitMaker.h.

◆ m_pulsedChids

std::vector<HWIdentifier> LArCalibDigitMaker::m_pulsedChids
private

Definition at line 39 of file LArCalibDigitMaker.h.

◆ m_skipDuplicates

bool LArCalibDigitMaker::m_skipDuplicates
private

Definition at line 38 of file LArCalibDigitMaker.h.

◆ m_varHandleArraysDeclared

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

Definition at line 399 of file AthCommonDataStore.h.

◆ m_vBoardIDs

std::vector<std::vector<double> > LArCalibDigitMaker::m_vBoardIDs
private

Definition at line 32 of file LArCalibDigitMaker.h.

◆ m_vDAC

std::vector<std::vector<double> > LArCalibDigitMaker::m_vDAC
private

Definition at line 29 of file LArCalibDigitMaker.h.

◆ m_vDelay

std::vector<unsigned> LArCalibDigitMaker::m_vDelay
private

Definition at line 30 of file LArCalibDigitMaker.h.

◆ m_vhka

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

Definition at line 398 of file AthCommonDataStore.h.

◆ m_vPattern

std::vector<std::vector<double> > LArCalibDigitMaker::m_vPattern
private

Definition at line 28 of file LArCalibDigitMaker.h.


The documentation for this class was generated from the following files:
python.PyKernel.retrieve
def retrieve(aClass, aKey=None)
Definition: PyKernel.py:110
LArCalibDigitMaker::m_pulsedChids
std::vector< HWIdentifier > m_pulsedChids
Definition: LArCalibDigitMaker.h:39
LArCalibDigitMaker::m_nPatterns
std::vector< int > m_nPatterns
Definition: LArCalibDigitMaker.h:31
LArCalibDigitMaker::m_vBoardIDs
std::vector< std::vector< double > > m_vBoardIDs
Definition: LArCalibDigitMaker.h:32
python.PerfMonSerializer.p
def p
Definition: PerfMonSerializer.py:743
LArCalibDigitMaker::m_dontRun
bool m_dontRun
Definition: LArCalibDigitMaker.h:35
SG::ReadCondHandle
Definition: ReadCondHandle.h:44
find
std::string find(const std::string &s)
return a remapped string
Definition: hcg.cxx:135
AthCommonDataStore< AthCommonMsg< Algorithm > >::declareProperty
Gaudi::Details::PropertyBase & declareProperty(Gaudi::Property< T > &t)
Definition: AthCommonDataStore.h:145
LArCalibLineMapping::calibSlotLine
const std::vector< HWIdentifier > & calibSlotLine(const HWIdentifier id) const
Definition: LArCalibLineMapping.cxx:15
LArCalibLineMapping
Definition: LArCalibLineMapping.h:17
CaloCondBlobAlgs_fillNoiseFromASCII.gain
gain
Definition: CaloCondBlobAlgs_fillNoiseFromASCII.py:110
LArCalibParams
Definition: LArCalibParams.h:28
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
LArCalibDigitMaker::m_delayScale
double m_delayScale
Definition: LArCalibDigitMaker.h:34
read_hist_ntuple.t
t
Definition: read_hist_ntuple.py:5
ATH_MSG_VERBOSE
#define ATH_MSG_VERBOSE(x)
Definition: AthMsgStreamMacros.h:28
SG::VarHandleKey::key
const std::string & key() const
Return the StoreGate ID for the referenced object.
Definition: AthToolSupport/AsgDataHandles/Root/VarHandleKey.cxx:141
checkRpcDigits.digit
digit
Definition: checkRpcDigits.py:186
HWIdentifier
Definition: HWIdentifier.h:13
empty
bool empty(TH1 *h)
Definition: computils.cxx:294
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
LArCalibDigitMaker::m_skipDuplicates
bool m_skipDuplicates
Definition: LArCalibDigitMaker.h:38
python.setupRTTAlg.size
int size
Definition: setupRTTAlg.py:39
kmaxDAC
#define kmaxDAC
This class contains the LAr Calibration Board settings and a set of functions to decoded them.
Definition: LArCalibParams.h:26
AthCommonDataStore< AthCommonMsg< Algorithm > >::evtStore
ServiceHandle< StoreGateSvc > & evtStore()
The standard StoreGateSvc (event store) Returns (kind of) a pointer to the StoreGateSvc.
Definition: AthCommonDataStore.h:85
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
xAOD::uint16_t
setWord1 uint16_t
Definition: eFexEMRoI_v1.cxx:88
AthCommonDataStore< AthCommonMsg< Algorithm > >::outputHandles
virtual std::vector< Gaudi::DataHandle * > outputHandles() const override
Return this algorithm's output handles.
LArDigit
Liquid Argon digit base class.
Definition: LArDigit.h:25
lumiFormat.i
int i
Definition: lumiFormat.py:92
EL::StatusCode
::StatusCode StatusCode
StatusCode definition for legacy code.
Definition: PhysicsAnalysis/D3PDTools/EventLoop/EventLoop/StatusCode.h:22
LArCalibDigitMaker::m_vDAC
std::vector< std::vector< double > > m_vDAC
Definition: LArCalibDigitMaker.h:29
ATH_MSG_DEBUG
#define ATH_MSG_DEBUG(x)
Definition: AthMsgStreamMacros.h:29
01SubmitToGrid.samples
samples
Definition: 01SubmitToGrid.py:58
LArCalibDigitMaker::m_isSC
bool m_isSC
Definition: LArCalibDigitMaker.h:36
LArCalibParams::isPulsed
bool isPulsed(const unsigned event, const HWIdentifier calibLineID) const
Definition: LArCalibParams.cxx:167
ATH_CHECK
#define ATH_CHECK
Definition: AthCheckMacros.h:40
delay
double delay(std::size_t d)
Definition: JetTrigTimerTest.cxx:14
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
integrator_ascii2db.dac
dac
Definition: integrator_ascii2db.py:126
SG::HandleClassifier::type
std::conditional< std::is_base_of< SG::VarHandleKeyArray, T >::value, VarHandleKeyArrayType, type2 >::type type
Definition: HandleClassifier.h:54
LArCalibDigitMaker::m_calibMapKey
SG::ReadCondHandleKey< LArCalibLineMapping > m_calibMapKey
Definition: LArCalibDigitMaker.h:25
LArCalibDigitMaker::m_vPattern
std::vector< std::vector< double > > m_vPattern
Definition: LArCalibDigitMaker.h:28
LArCalibParams::DAC
unsigned DAC(const unsigned event, const HWIdentifier calibLineID) const
Definition: LArCalibParams.cxx:147
merge_scale_histograms.doc
string doc
Definition: merge_scale_histograms.py:9
name
std::string name
Definition: Control/AthContainers/Root/debug.cxx:195
LArCalibDigit
Base class for LArDigits taken during calibration runs.
Definition: LArCalibDigit.h:29
LArCalibParams::Delay
unsigned Delay(const unsigned event, const HWIdentifier calibLineID) const
Definition: LArCalibParams.cxx:128
SG::CondHandleKey::initialize
StatusCode initialize(bool used=true)
CaloGain::CaloGain
CaloGain
Definition: CaloGain.h:11
LArCalibDigitMaker::m_vDelay
std::vector< unsigned > m_vDelay
Definition: LArCalibDigitMaker.h:30
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:616
LArDigitContainer
Container class for LArDigit.
Definition: LArDigitContainer.h:24
declareProperty
#define declareProperty(n, p, h)
Definition: BaseFakeBkgTool.cxx:15
python.SystemOfUnits.ns
int ns
Definition: SystemOfUnits.py:130
AthAlgorithm::AthAlgorithm
AthAlgorithm()
Default constructor:
python.Bindings.keys
keys
Definition: Control/AthenaPython/python/Bindings.py:790
LHEF::Writer
Pythia8::Writer Writer
Definition: Prophecy4fMerger.cxx:12
LArCalibDigitMaker::m_keylist
std::vector< std::string > m_keylist
Definition: LArCalibDigitMaker.h:27
LArCalibDigitMaker::m_nTrigger
unsigned m_nTrigger
Definition: LArCalibDigitMaker.h:33
LArCalibDigitMaker::m_eventNb
int m_eventNb
Definition: LArCalibDigitMaker.h:37
AthCommonDataStore::declareGaudiProperty
Gaudi::Details::PropertyBase & declareGaudiProperty(Gaudi::Property< T > &hndl, const SG::VarHandleKeyType &)
specialization for handling Gaudi::Property<SG::VarHandleKey>
Definition: AthCommonDataStore.h:156
DataVector::empty
bool empty() const noexcept
Returns true if the collection is empty.
fitman.k
k
Definition: fitman.py:528
ServiceHandle< ICondSvc >
mapkey::key
key
Definition: TElectronEfficiencyCorrectionTool.cxx:37
LArCalibDigitMaker::m_calibMapSCKey
SG::ReadCondHandleKey< LArCalibLineMapping > m_calibMapSCKey
Definition: LArCalibDigitMaker.h:26