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

#include <LArCaliWaveBuilder.h>

Inheritance diagram for LArCaliWaveBuilder:
Collaboration diagram for LArCaliWaveBuilder:

Public Member Functions

 LArCaliWaveBuilder (const std::string &name, ISvcLocator *pSvcLocator)
 
 ~LArCaliWaveBuilder ()
 
StatusCode initialize ()
 
StatusCode execute ()
 
virtual StatusCode stop ()
 
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 std::map< int, LArCaliWaveWaveMap
 
typedef LArConditionsContainer< WaveMapWaveContainer
 
typedef ServiceHandle< StoreGateSvcStoreGateSvc_t
 

Private Member Functions

StatusCode executeWithAccumulatedDigits (const LArCalibParams *calibParams=nullptr, const LArCalibLineMapping *clcabling=nullptr)
 
StatusCode executeWithStandardDigits (const LArCalibParams *calibParams=nullptr, const LArCalibLineMapping *clcabling=nullptr)
 
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< LArOnOffIdMappingm_cablingKey {this,"CablingKey","LArOnOffIdMap","SG Key of LArOnOffIdMapping object"}
 
SG::ReadCondHandleKey< LArOnOffIdMappingm_cablingKeySC {this,"ScCablingKey","LArOnOffIdMapSC","SG Key of SC LArOnOffIdMapping object"}
 
SG::ReadCondHandleKey< LArCalibLineMappingm_calibMapKey {this,"CalibLineKey","LArCalibLineMap","SG Key of calib. line mapping object"}
 
SG::ReadCondHandleKey< ILArPedestalm_pedKey {this,"PedestalKey","Pedestal","SG Key of pedestal object"}
 
bool m_useAccumulatedDigits
 
std::vector< std::string > m_keylist
 
std::vector< std::string > m_keylistproperty
 
std::string m_keyoutput
 
std::string m_groupingType
 
WaveContainer m_waves
 
bool m_pedSub
 
unsigned m_baseline
 
bool m_recAll
 
bool m_isSC
 
bool m_useDacAndIsPulsedIndex
 
int m_ADCsatur
 
bool m_checkEmptyPhases
 
const LArOnlineID_Basem_onlineID
 
unsigned m_event_counter
 
int m_NStep
 
float m_SamplingPeriod
 
float m_dt
 
uint16_t m_fatalFebErrorPattern
 
int m_usePatt
 
bool m_useParams
 
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 28 of file LArCaliWaveBuilder.h.

Member Typedef Documentation

◆ StoreGateSvc_t

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

Definition at line 388 of file AthCommonDataStore.h.

◆ WaveContainer

Definition at line 57 of file LArCaliWaveBuilder.h.

◆ WaveMap

typedef std::map<int, LArCaliWave> LArCaliWaveBuilder::WaveMap
private

Definition at line 56 of file LArCaliWaveBuilder.h.

Constructor & Destructor Documentation

◆ LArCaliWaveBuilder()

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

Definition at line 25 of file LArCaliWaveBuilder.cxx.

26  : AthAlgorithm(name, pSvcLocator),
27  m_groupingType("ExtendedFeedThrough"), // SubDetector, Single, FeedThrough
28  m_onlineID(nullptr),
30 {
31  declareProperty("UseAccumulatedDigits", m_useAccumulatedDigits=true);
33  declareProperty("KeyOutput", m_keyoutput="LArCaliWave");
34  declareProperty("SubtractPed", m_pedSub=true);
35  declareProperty("NBaseline", m_baseline=1);
36  declareProperty("SamplingPeriod", m_SamplingPeriod=1./(40.08*megahertz));
37  declareProperty("NSteps", m_NStep=24); // Number of Delay Steps. FIXME: Try to get this information for somewhere else
38  declareProperty("ADCsaturation", m_ADCsatur=0) ;
39  declareProperty("GroupingType", m_groupingType);
40  declareProperty("UseDacAndIsPulsedIndex", m_useDacAndIsPulsedIndex=false);
41  declareProperty("CheckEmptyPhases", m_checkEmptyPhases=false);
42  declareProperty("RecAllCells", m_recAll=false);
43  declareProperty("UsePattern", m_usePatt=-1);
44  declareProperty("UseParams", m_useParams=false); // Read LArCalibParams from DetStore ?
45  declareProperty("isSC", m_isSC=false);
46 
47 
49 
51 
52 }

◆ ~LArCaliWaveBuilder()

LArCaliWaveBuilder::~LArCaliWaveBuilder ( )
default

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

Definition at line 117 of file LArCaliWaveBuilder.cxx.

118 {
119  // using EvtId
120  const EventContext& ctx = getContext();
121  m_event_counter=ctx.eventID().event_number();
122 
123  const LArCalibParams* calibParams = nullptr;
124  const LArCalibLineMapping *clcabling=nullptr;
125  if(m_useParams) { // we have to check in which event we are, reading only ones corresponding
126  // to our pattern
127  ATH_CHECK(detStore()->retrieve(calibParams,"LArCalibParams"));
128  unsigned numPatt=calibParams->getNumberPatterns(HWIdentifier(0));
129 
131  if(m_useAccumulatedDigits) counter /= calibParams->NTrigger(HWIdentifier(1007091712));
132  if(m_usePatt >= 0 && static_cast<int>(counter % numPatt) != m_usePatt) {
133  return StatusCode::SUCCESS;
134  }
135  ATH_MSG_DEBUG("Good event "<<m_event_counter<<" for pattern " << m_usePatt << " out of " << numPatt << " patterns " << calibParams->NTrigger(HWIdentifier(1007091712)) <<" triggers ");
136 
137  const EventContext& ctx = Gaudi::Hive::currentContext();
139  clcabling =*clHdl;
140  if(!clcabling) {
141  ATH_MSG_WARNING( "Do not have calib line mapping from key " << m_calibMapKey.key() );
142  return StatusCode::FAILURE;
143  }
144 
145  }
146 
147  if ( m_event_counter < 100 || m_event_counter%100==0 )
148  ATH_MSG_INFO( "Processing event " << m_event_counter );
149 
150  if (m_keylist.empty()) {
151  ATH_MSG_ERROR( "Key list is empty! No containers to process!" );
152  return StatusCode::FAILURE;
153  }
154 
155 
156  // execute() method...
158  return executeWithAccumulatedDigits(calibParams, clcabling);
159  else
160  return executeWithStandardDigits(calibParams, clcabling);
161 }

◆ executeWithAccumulatedDigits()

StatusCode LArCaliWaveBuilder::executeWithAccumulatedDigits ( const LArCalibParams calibParams = nullptr,
const LArCalibLineMapping clcabling = nullptr 
)
private

Definition at line 163 of file LArCaliWaveBuilder.cxx.

164 {
165  StatusCode sc;
166 
167  const LArAccumulatedCalibDigitContainer* larAccumulatedCalibDigitContainer = nullptr;
168 
169  std::vector<std::string>::const_iterator key_it=m_keylist.begin();
170  std::vector<std::string>::const_iterator key_it_e=m_keylist.end();
171  int foundkey = 0;
172  for (;key_it!=key_it_e; ++key_it) { //Loop over all containers that are to be processed (e.g. different gains)
173 
174  sc = evtStore()->retrieve(larAccumulatedCalibDigitContainer,*key_it);
175  if (sc.isFailure()) {
176  ATH_MSG_WARNING( "Cannot read LArAccumulatedCalibDigitContainer from StoreGate! key=" << *key_it );
177  if ( (std::next(key_it) == key_it_e) && foundkey==0 ){
178  ATH_MSG_ERROR("None of the provided LArAccumulatedDigitContainer keys could be read");
179  return StatusCode::FAILURE;
180  }else{
181  continue;
182  }
183  }
184  foundkey+=1;
185 
186  const LArFebErrorSummary* febErrSum=nullptr;
187  if (evtStore()->contains<LArFebErrorSummary>("LArFebErrorSummary")) {
188  sc=evtStore()->retrieve(febErrSum);
189  if (sc.isFailure()) {
190  ATH_MSG_ERROR( "Failed to retrieve FebErrorSummary object!" );
191  return sc;
192  }
193  }
194  else
195  if (m_event_counter==0)
196  ATH_MSG_WARNING( "No FebErrorSummaryObject found! Feb errors not checked!" );
197 
198  HWIdentifier lastFailedFEB(0);
199  LArAccumulatedCalibDigitContainer::const_iterator it=larAccumulatedCalibDigitContainer->begin();
200  LArAccumulatedCalibDigitContainer::const_iterator it_end=larAccumulatedCalibDigitContainer->end();
201 
202  if (it == it_end) {
203  ATH_MSG_DEBUG("LArAccumulatedCalibDigitContainer with key=" << *key_it << " is empty ");
204  continue; // at this event LArAccumulatedCalibDigitContainer is empty, do not even try to loop on it...
205  }
206 
207  const float delayScale = larAccumulatedCalibDigitContainer->getDelayScale();
208  const float deltaDelay = 25*ns/(delayScale*m_NStep);
209 
210  for (;it!=it_end; ++it) { // Loop over all cells
211 
212  bool ispulsed=false;
213  if(m_useParams && calibParams) { // got LArCalibParams from DetStore
214  const std::vector<HWIdentifier>& calibLineLeg = clcabling->calibSlotLine((*it)->hardwareID());
215  for (const HWIdentifier &calibLineHWID : calibLineLeg) {// loop calib lines
216  ispulsed |= calibParams->isPulsed(m_event_counter,calibLineHWID);
217  }
218  } else {
219  ispulsed=(*it)->isPulsed();
220  }
221  if ( (!m_recAll) && !ispulsed ) {
222  ATH_MSG_DEBUG( "Non pulsed cell " << m_onlineID->channel_name((*it)->hardwareID())<<" in evt. "<<m_event_counter );
223  continue; // Check if cell is pulsed
224  }
225  HWIdentifier chid=(*it)->hardwareID();
226  HWIdentifier febid=m_onlineID->feb_Id(chid);
227  if (febErrSum) {
228  const uint16_t febErrs=febErrSum->feb_error(febid);
229  if (febErrs & m_fatalFebErrorPattern) {
230  if (febid!=lastFailedFEB) {
231  lastFailedFEB=febid;
232  ATH_MSG_ERROR( "Event " << m_event_counter << " Feb " << m_onlineID->channel_name(febid)
233  << " reports error(s):" << febErrSum->error_to_string(febErrs) << ". Data ignored." );
234  }
235  continue;
236  }
237  }
238  CaloGain::CaloGain gain=(*it)->gain();
239 
240  if (gain<0 || gain>CaloGain::LARNGAIN) {
241  ATH_MSG_ERROR( "Found not-matching gain number ("<< (int)gain <<")" );
242  return StatusCode::FAILURE;
243  }
244 
245  // transform sampleSum vector from uint32_t to double
246  std::vector<double> samplesum;
247  std::vector < uint64_t >::const_iterator samplesum_it=(*it)->sampleSum().begin();
248  std::vector < uint64_t >::const_iterator samplesum_it_e=(*it)->sampleSum().end();
249  for (;samplesum_it!=samplesum_it_e; ++samplesum_it)
250  samplesum.push_back((double)(*samplesum_it));
251 
252  // transform sample2Sum vector from uint32_t to double
253  std::vector<double> sample2sum;
254  std::vector < uint64_t >::const_iterator sample2sum_it=(*it)->sample2Sum().begin();
255  std::vector < uint64_t >::const_iterator sample2sum_it_e=(*it)->sample2Sum().end();
256  for (;sample2sum_it!=sample2sum_it_e; ++sample2sum_it)
257  sample2sum.push_back((double)(*sample2sum_it));
258 
259  WaveMap& waveMap = m_waves.get(chid,gain);
260 
261  //make dacPulsed which has dac and four bits of is pulsed info
262  int dacPulsed;
263  float delay = (*it)->delay();
264  int dac=(*it)->DAC();
265  int index;
266  int pulsed=0;
267  if(m_useParams && calibParams && clcabling) { // get LArCalibParams from DetStore
268  const std::vector<HWIdentifier>& calibLineLeg = clcabling->calibSlotLine((*it)->hardwareID());
269  if(calibLineLeg.empty()) {
270  ATH_MSG_WARNING("Why do not have calib lines for "<<(*it)->hardwareID()<<" ?");
271  continue;
272  }
273  dac=calibParams->DAC(m_event_counter,calibLineLeg[0]);
274  dacPulsed=dac;
275  delay = calibParams->Delay(m_event_counter,calibLineLeg[0]);
276  for (unsigned i=0; i<calibLineLeg.size(); ++i) {// loop calib lines
277  if(calibParams->isPulsed(m_event_counter,calibLineLeg[i])){
278  ATH_MSG_DEBUG("GR: line pulsed true, line="<<i+1);
279  dacPulsed=(dacPulsed | (0x1 << (15+i+1)));
280  pulsed=(pulsed | (0x1 << (15+i+1)));
281  }
282 
283  }
284  } else {
285  dacPulsed=(*it)->DAC();
286  for(int iLine=1;iLine<5;iLine++){
287  if((*it)->isPulsed(iLine)){
288  ATH_MSG_DEBUG("GR: line pulsed true, line="<<iLine);
289  dacPulsed=(dacPulsed | (0x1 << (15+iLine)));
290  pulsed=(pulsed | (0x1 << (15+iLine)));
291  }
292  }
293  }
294 
295  if(m_useDacAndIsPulsedIndex){//switch used to turn on the option to have indexs that are DAC and isPulsed info
296  index = dacPulsed;
297  } else {
298  index = dac;
299  }
300 
301  ATH_MSG_DEBUG( "Pulsed cell " << m_onlineID->channel_name(chid) << " gain: "<<gain );
302  ATH_MSG_DEBUG( "with " << (*it)->sampleSum().size() << " samples " << index << " DAC " << delay << " delay " << dacPulsed << " dacPulsed " );
303 
304  WaveMap::iterator itm = waveMap.find(index);
305 
306  if ( itm == waveMap.end() ) { // A new LArCaliWave is booked
307  LArCaliWave wave(samplesum.size()*m_NStep, m_dt, dac, pulsed, LArWave::meas);
308  itm = (waveMap.insert(WaveMap::value_type(index,wave))).first;
309  ATH_MSG_DEBUG("index: "<<index<<" new wave inserted");
310  }
311  (*itm).second.addAccumulatedEvent(int(std::roundf(delay/deltaDelay)), m_NStep,
312  samplesum, sample2sum, (*it)->nTriggers());
313 
314  } //End loop over all cells
315  } //End loop over all containers
316 
317  return StatusCode::SUCCESS;
318 }

◆ executeWithStandardDigits()

StatusCode LArCaliWaveBuilder::executeWithStandardDigits ( const LArCalibParams calibParams = nullptr,
const LArCalibLineMapping clcabling = nullptr 
)
private

Definition at line 321 of file LArCaliWaveBuilder.cxx.

322 {
323  StatusCode sc;
324 
325  const LArCalibDigitContainer* larCalibDigitContainer = nullptr;
326 
327  std::vector<std::string>::const_iterator key_it=m_keylist.begin();
328  std::vector<std::string>::const_iterator key_it_e=m_keylist.end();
329 
330  for (;key_it!=key_it_e; ++key_it) { //Loop over all containers that are to be processed (e.g. different gains)
331 
332  sc = evtStore()->retrieve(larCalibDigitContainer,*key_it);
333  if (sc.isFailure()) {
334  ATH_MSG_WARNING( "Cannot read LArCalibDigitContainer from StoreGate! key=" << *key_it );
335  continue; // Try next container
336  }
337 
338  LArCalibDigitContainer::const_iterator it=larCalibDigitContainer->begin();
339  LArCalibDigitContainer::const_iterator it_end=larCalibDigitContainer->end();
340 
341  if (it == it_end) {
342  ATH_MSG_INFO( "LArCalibDigitContainer with key=" << *key_it << " is empty " );
343  continue; // at this event LArCalibDigitContainer is empty, do not even try to loop on it...
344  }
345 
346  const float delayScale = larCalibDigitContainer->getDelayScale();
347  const float deltaDelay = 25*ns/(delayScale*m_NStep);
348 
349  for (;it!=it_end; ++it) { // Loop over all cells
350 
351  bool pulsed=false;
352  int dac = (*it)->DAC();
353  float delay= (*it)->delay();
354  if(m_useParams && calibParams && clcabling) { // get LArCalibParams from DetStore
355  const std::vector<HWIdentifier>& calibLineLeg = clcabling->calibSlotLine((*it)->hardwareID());
356  dac=calibParams->DAC(m_event_counter,calibLineLeg[0]); // assuming all calib. boards configured equally
357  delay = calibParams->Delay(m_event_counter,calibLineLeg[0]);
358  for (const HWIdentifier &calibLineHWID : calibLineLeg) {// loop calib lines
359  pulsed |= calibParams->isPulsed(m_event_counter,calibLineHWID);
360  }
361  } else {
362  pulsed=(*it)->isPulsed();
363  }
364  if ((!m_recAll) && !pulsed ) continue ; // Check if cell is pulsed
365 
366  HWIdentifier chid=(*it)->hardwareID();
367  CaloGain::CaloGain gain=(*it)->gain();
368 
369  if (gain<0 || gain>CaloGain::LARNGAIN) {
370  ATH_MSG_ERROR( "Found not-matching gain number ("<< (int)gain <<")" );
371  return StatusCode::FAILURE;
372  }
373 
374  // transform samples vector from uint32_t to double
375  std::vector<double> samples;
376  for (short sample : (*it)->samples())
377  samples.push_back((double)(sample));
378 
379  WaveMap& waveMap = m_waves.get(chid,gain);
380  WaveMap::iterator itm = waveMap.find(dac);
381 
382  if ( itm == waveMap.end() ) { // A new LArCaliWave is booked
383  LArCaliWave wave(samples.size()*m_NStep, m_dt, (*it)->DAC(), 0x1, LArWave::meas );
384  itm = (waveMap.insert(WaveMap::value_type((*it)->DAC(),wave))).first;
385  }
386 
387  (*itm).second.addEvent((int)roundf(delay/deltaDelay), m_NStep, samples);
388 
389  } //End loop over all cells
390  } //End loop over all containers
391 
392  return StatusCode::SUCCESS;
393 }

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

Definition at line 37 of file LArCaliWaveBuilder.h.

37 {return StatusCode::SUCCESS;}

◆ initialize()

StatusCode LArCaliWaveBuilder::initialize ( )

Definition at line 57 of file LArCaliWaveBuilder.cxx.

58 {
59  if (m_keylistproperty.empty()) {
60  m_keylistproperty.emplace_back("HIGH");
61  m_keylistproperty.emplace_back("MEDIUM");
62  m_keylistproperty.emplace_back("LOW");
63  }
65 
66  //FIXME probably useless because m_wave isn't written anywhere
67  StatusCode sc=m_waves.setGroupingType(m_groupingType,msg());
68  if (sc.isFailure()) {
69  ATH_MSG_ERROR( "Failed to set groupingType for LArCaliWave intermediate object" );
70  return sc;
71  }
72 
73  ATH_MSG_INFO( "Initialize intermediate Wave object" );
75  if (sc.isFailure()) {
76  ATH_MSG_ERROR( "Failed initialize LArCaliWave intermediate object" );
77  return sc;
78  }
79 
80  m_event_counter=0;
82 
83 
85  ATH_MSG_INFO( "Empty phases check selected." );
86 
87  //Get pedestal from CondStore
89 
90  //Get Online helper from DetStore
91  if ( m_isSC ) {
93  ATH_CHECK( detStore()->retrieve(ll, "LArOnline_SuperCellID") );
94  m_onlineID = (const LArOnlineID_Base*)ll;
95  ATH_MSG_DEBUG(" Found the LArOnline_SuperCellID helper. ");
96  } else { // m_isSC
97  const LArOnlineID* ll;
98  ATH_CHECK( detStore()->retrieve(ll, "LArOnlineID") );
99  m_onlineID = (const LArOnlineID_Base*)ll;
100  ATH_MSG_DEBUG(" Found the LArOnlineID helper. ");
101  }
102 
105 
106  if(m_usePatt >= 0 && !m_useParams) {
107  ATH_MSG_ERROR("Inconsistent configuration, for UsePattern > 0 the UseParams must be true");
108  return StatusCode::FAILURE;
109  }
110 
112 
113  return StatusCode::SUCCESS;
114 }

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

◆ stop()

StatusCode LArCaliWaveBuilder::stop ( )
virtual

get iterator for all channels for a gain

Definition at line 397 of file LArCaliWaveBuilder.cxx.

398 {
399  // Create wave container using feedthru grouping and initialize
400  auto caliWaveContainer = std::make_unique<LArCaliWaveContainer>();
401 
402  StatusCode sc=caliWaveContainer->setGroupingType(m_groupingType,msg());
403  if (sc.isFailure()) {
404  ATH_MSG_ERROR( "Failed to set groupingType for LArCaliWaveContainer object" );
405  return sc;
406  }
407 
408  ATH_MSG_INFO( "Initialize final Wave object" );
409  sc=caliWaveContainer->initialize();
410  if (sc.isFailure()) {
411  ATH_MSG_ERROR( "Failed initialize LArCaliWaveContainer object" );
412  return sc;
413  }
414 
415  const EventContext& ctx = Gaudi::Hive::currentContext();
416  const LArOnOffIdMapping* cabling(nullptr);
417  if( m_isSC ){
419  cabling = {*cablingHdl};
420  if(!cabling) {
421  ATH_MSG_ERROR("Do not have mapping object " << m_cablingKeySC.key());
422  return StatusCode::FAILURE;
423  }
424 
425  }else{
427  cabling = {*cablingHdl};
428  if(!cabling) {
429  ATH_MSG_ERROR("Do not have mapping object " << m_cablingKey.key());
430  return StatusCode::FAILURE;
431  }
432  }
434  const ILArPedestal* larPedestal{*pedHdl};
435  if(m_pedSub && !larPedestal) {
436  ATH_MSG_DEBUG("No pedestal(s) found ");
437  ATH_MSG_INFO( "Using fake (baseline) pedestal subtraction..." );
438  }
439 
440  LArWaveHelper wHelper;
441  int NCaliWave=0;
442 
443  // Loop over all gains
444  for (unsigned k=0;k<(int)CaloGain::LARNGAIN;k++) {
445 
447 
451 
452  HWIdentifier lastId;
453 
454  for (; cell_it!=cell_it_e; ++cell_it) {
455 
456 
457  // Get id of this cell - use id from first cell in map
458  //
459  // Some accumulations may be empty and we must skip this
460  // cell. WaveContainer has all 128 channels for each FEB
461  // with at least ONE being read out.
462  //
463 
464  const HWIdentifier hwId = cell_it.channelId();
465  if ((!m_recAll) && (!cabling->isOnlineConnected(hwId))) {
466 
467  //ATH_MSG_INFO( "Skipping disconnected channel: "<<MSG::hex<<hwId<<MSG::dec );
468  continue; //Ignore disconnected channels
469  }
470 
471  const WaveMap& waveMap = (*cell_it);
472  if (waveMap.empty()) {
473  ATH_MSG_INFO( "Empty accumulated wave. Last id: " << MSG::hex
474  //<< lastId << " " << emId->show_to_string(lastId) );
475  << lastId << " this id: "<<hwId<<MSG::dec );
476  continue;
477  }
478 
479  lastId = hwId; // save previous id for debug printout
480 
481  // Get the vector of waves for this chid,gain
482  LArCaliWaveContainer::LArCaliWaves& dacWaves = caliWaveContainer->get(hwId, gain);
483 
484  std::map<int, LArCaliWave>::const_iterator dac_it = cell_it->begin();
485  std::map<int, LArCaliWave>::const_iterator dac_it_e = cell_it->end();
486 
487  HWIdentifier chid = cell_it.channelId();
488 
489  for (; dac_it != dac_it_e; ++dac_it) {
490 
491  const LArCaliWave& thisWave = dac_it->second ;
492 
493  if (m_checkEmptyPhases) {
494  const std::vector<int>& thisTriggers = thisWave.getTriggers();
495  for (unsigned i=0;i<thisTriggers.size();++i) {
496  if (thisTriggers[i]==0) {
497  ATH_MSG_FATAL( "Empty phase found in channel 0x" << MSG::hex << chid << MSG::dec
498  << "., aborting reconstruction. Sorry." );
499  return StatusCode::FAILURE;
500  }
501  }
502  }
503 
504  float pedAve = 0.;
505 
506  if ( m_pedSub ) {
507  if ( larPedestal ) {
508  float pedestal = larPedestal->pedestal(chid,gain);
509  if (pedestal <= (1.0+LArElecCalib::ERRORCODE)) {
510  ATH_MSG_DEBUG("No pedestal(s) found for channel 0x" << MSG::hex << chid << MSG::dec);
511  ATH_MSG_INFO( "Using fake (baseline) pedestal subtraction..." );
512  pedAve = wHelper.getBaseline(thisWave,m_baseline) ;
513  } else {
514  pedAve = pedestal;
515  }
516  } else {
517  pedAve = wHelper.getBaseline(thisWave,m_baseline) ;
518  }
519  ATH_MSG_DEBUG("Pedestal for channel 0x" << MSG::hex << chid << MSG::dec << " is = " << pedAve << " ADC");
520  }
521 
522  double waveMax = thisWave.getSample( wHelper.getMax(thisWave) ) ;
523  if ( (!m_recAll) && m_ADCsatur>0 && waveMax>=m_ADCsatur ) {
524  ATH_MSG_INFO( "Absolute ADC saturation at DAC = " << thisWave.getDAC() << " ... skip!" ) ;
525  continue ;
526  } else {
527  dacWaves.emplace_back(((thisWave)+(-pedAve)).getWave() ,
528  thisWave.getErrors(),
529  thisWave.getTriggers(),
530  thisWave.getDt(),
531  thisWave.getDAC(),
532  thisWave.getIsPulsedInt(),
533  thisWave.getFlag() );
534 
535  NCaliWave++;
536  }
537 
538  } // end of loop DACs
539 
540  // intermediate map cleanup (save memory)
541  cell_it->clear();
542 
543  } //end loop cells
544 
545  } //end loop over m_keyList
546 
547  ATH_MSG_INFO( " Summary : Number of cells with a CaliWave reconstructed : " << NCaliWave );
548  ATH_MSG_INFO( " Summary : Number of Barrel PS cells side A or C (connected+unconnected): 3904+ 192 = 4096 " );
549  ATH_MSG_INFO( " Summary : Number of Barrel cells side A or C (connected+unconnected): 50944+2304 = 53248 " );
550  ATH_MSG_INFO( " Summary : Number of EMEC cells side A or C (connected+unconnected): 31872+3456 = 35328 " );
551  ATH_MSG_INFO( " Summary : Number of HEC cells side A or C (connected+unconnected): 2816+ 256 = 3072 " );
552  ATH_MSG_INFO( " Summary : Number of FCAL cells side A or C (connected+unconnected): 1762+ 30 = 1792 " );
553 
554  // Record in detector store with key (m_keyoutput)
555  ATH_CHECK( detStore()->record(std::move(caliWaveContainer), m_keyoutput) );
556 
557  ATH_MSG_INFO( "LArCaliWaveBuilder has finished." );
558  return StatusCode::SUCCESS;
559 }

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

int LArCaliWaveBuilder::m_ADCsatur
private

Definition at line 74 of file LArCaliWaveBuilder.h.

◆ m_baseline

unsigned LArCaliWaveBuilder::m_baseline
private

Definition at line 62 of file LArCaliWaveBuilder.h.

◆ m_cablingKey

SG::ReadCondHandleKey<LArOnOffIdMapping> LArCaliWaveBuilder::m_cablingKey {this,"CablingKey","LArOnOffIdMap","SG Key of LArOnOffIdMapping object"}
private

Definition at line 41 of file LArCaliWaveBuilder.h.

◆ m_cablingKeySC

SG::ReadCondHandleKey<LArOnOffIdMapping> LArCaliWaveBuilder::m_cablingKeySC {this,"ScCablingKey","LArOnOffIdMapSC","SG Key of SC LArOnOffIdMapping object"}
private

Definition at line 42 of file LArCaliWaveBuilder.h.

◆ m_calibMapKey

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

Definition at line 43 of file LArCaliWaveBuilder.h.

◆ m_checkEmptyPhases

bool LArCaliWaveBuilder::m_checkEmptyPhases
private

Definition at line 77 of file LArCaliWaveBuilder.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_dt

float LArCaliWaveBuilder::m_dt
private

Definition at line 84 of file LArCaliWaveBuilder.h.

◆ m_event_counter

unsigned LArCaliWaveBuilder::m_event_counter
private

Definition at line 81 of file LArCaliWaveBuilder.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_fatalFebErrorPattern

uint16_t LArCaliWaveBuilder::m_fatalFebErrorPattern
private

Definition at line 86 of file LArCaliWaveBuilder.h.

◆ m_groupingType

std::string LArCaliWaveBuilder::m_groupingType
private

Definition at line 53 of file LArCaliWaveBuilder.h.

◆ m_isSC

bool LArCaliWaveBuilder::m_isSC
private

Definition at line 68 of file LArCaliWaveBuilder.h.

◆ m_keylist

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

Definition at line 50 of file LArCaliWaveBuilder.h.

◆ m_keylistproperty

std::vector<std::string> LArCaliWaveBuilder::m_keylistproperty
private

Definition at line 51 of file LArCaliWaveBuilder.h.

◆ m_keyoutput

std::string LArCaliWaveBuilder::m_keyoutput
private

Definition at line 52 of file LArCaliWaveBuilder.h.

◆ m_NStep

int LArCaliWaveBuilder::m_NStep
private

Definition at line 82 of file LArCaliWaveBuilder.h.

◆ m_onlineID

const LArOnlineID_Base* LArCaliWaveBuilder::m_onlineID
private

Definition at line 79 of file LArCaliWaveBuilder.h.

◆ m_pedKey

SG::ReadCondHandleKey<ILArPedestal> LArCaliWaveBuilder::m_pedKey {this,"PedestalKey","Pedestal","SG Key of pedestal object"}
private

Definition at line 44 of file LArCaliWaveBuilder.h.

◆ m_pedSub

bool LArCaliWaveBuilder::m_pedSub
private

Definition at line 61 of file LArCaliWaveBuilder.h.

◆ m_recAll

bool LArCaliWaveBuilder::m_recAll
private

Definition at line 65 of file LArCaliWaveBuilder.h.

◆ m_SamplingPeriod

float LArCaliWaveBuilder::m_SamplingPeriod
private

Definition at line 83 of file LArCaliWaveBuilder.h.

◆ m_useAccumulatedDigits

bool LArCaliWaveBuilder::m_useAccumulatedDigits
private

Definition at line 46 of file LArCaliWaveBuilder.h.

◆ m_useDacAndIsPulsedIndex

bool LArCaliWaveBuilder::m_useDacAndIsPulsedIndex
private

Definition at line 71 of file LArCaliWaveBuilder.h.

◆ m_useParams

bool LArCaliWaveBuilder::m_useParams
private

Definition at line 89 of file LArCaliWaveBuilder.h.

◆ m_usePatt

int LArCaliWaveBuilder::m_usePatt
private

Definition at line 88 of file LArCaliWaveBuilder.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.

◆ m_waves

WaveContainer LArCaliWaveBuilder::m_waves
private

Definition at line 58 of file LArCaliWaveBuilder.h.


The documentation for this class was generated from the following files:
LArCaliWaveBuilder::m_recAll
bool m_recAll
Definition: LArCaliWaveBuilder.h:65
python.PyKernel.retrieve
def retrieve(aClass, aKey=None)
Definition: PyKernel.py:110
xAOD::iterator
JetConstituentVector::iterator iterator
Definition: JetConstituentVector.cxx:68
LArCaliWaveBuilder::executeWithStandardDigits
StatusCode executeWithStandardDigits(const LArCalibParams *calibParams=nullptr, const LArCalibLineMapping *clcabling=nullptr)
Definition: LArCaliWaveBuilder.cxx:321
LArCaliWaveBuilder::m_useAccumulatedDigits
bool m_useAccumulatedDigits
Definition: LArCaliWaveBuilder.h:46
plotBeamSpotCompare.x1
x1
Definition: plotBeamSpotCompare.py:216
ATH_MSG_FATAL
#define ATH_MSG_FATAL(x)
Definition: AthMsgStreamMacros.h:34
DataModel_detail::const_iterator
Const iterator class for DataVector/DataList.
Definition: DVLIterator.h:82
LArCalibParams::getNumberPatterns
unsigned getNumberPatterns(const HWIdentifier calibModuleID) const
Definition: LArCalibParams.cxx:233
LArCaliWaveBuilder::m_useParams
bool m_useParams
Definition: LArCaliWaveBuilder.h:89
LArCaliWaveBuilder::m_keyoutput
std::string m_keyoutput
Definition: LArCaliWaveBuilder.h:52
python.PerfMonSerializer.p
def p
Definition: PerfMonSerializer.py:743
SG::ReadCondHandle
Definition: ReadCondHandle.h:44
ATH_MSG_INFO
#define ATH_MSG_INFO(x)
Definition: AthMsgStreamMacros.h:31
LArWave::getFlag
unsigned getFlag() const
flag: ...
Definition: LArWave.h:178
CaloCellPos2Ntuple.int
int
Definition: CaloCellPos2Ntuple.py:24
LArCaliWaveBuilder::m_baseline
unsigned m_baseline
Definition: LArCaliWaveBuilder.h:62
LArCalibParams::NTrigger
unsigned NTrigger(const HWIdentifier calibModuleID) const
Definition: LArCalibParams.cxx:211
index
Definition: index.py:1
AthCommonDataStore< AthCommonMsg< Algorithm > >::declareProperty
Gaudi::Details::PropertyBase & declareProperty(Gaudi::Property< T > &t)
Definition: AthCommonDataStore.h:145
LArCaliWaveBuilder::m_onlineID
const LArOnlineID_Base * m_onlineID
Definition: LArCaliWaveBuilder.h:79
ILArPedestal
Definition: ILArPedestal.h:12
LArCaliWaveBuilder::m_cablingKey
SG::ReadCondHandleKey< LArOnOffIdMapping > m_cablingKey
Definition: LArCaliWaveBuilder.h:41
LArCalibLineMapping::calibSlotLine
const std::vector< HWIdentifier > & calibSlotLine(const HWIdentifier id) const
Definition: LArCalibLineMapping.cxx:15
LArWaveHelper::getBaseline
double getBaseline(const LArWave &theWave, unsigned nBase) const
Definition: LArWaveHelper.cxx:347
LArCalibLineMapping
Definition: LArCalibLineMapping.h:17
CaloCondBlobAlgs_fillNoiseFromASCII.gain
gain
Definition: CaloCondBlobAlgs_fillNoiseFromASCII.py:110
LArCaliWaveBuilder::m_keylist
std::vector< std::string > m_keylist
Definition: LArCaliWaveBuilder.h:50
ReadCellNoiseFromCool.cabling
cabling
Definition: ReadCellNoiseFromCool.py:154
LArCaliWaveBuilder::m_cablingKeySC
SG::ReadCondHandleKey< LArOnOffIdMapping > m_cablingKeySC
Definition: LArCaliWaveBuilder.h:42
skel.it
it
Definition: skel.GENtoEVGEN.py:423
LArWave::getDt
const double & getDt() const
delta time
Definition: LArWave.h:50
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
LArWaveHelper
Definition: LArWaveHelper.h:14
LArCaliWave::getDAC
int getDAC() const
DAC value.
Definition: LArCaliWave.h:156
LArCaliWaveBuilder::executeWithAccumulatedDigits
StatusCode executeWithAccumulatedDigits(const LArCalibParams *calibParams=nullptr, const LArCalibLineMapping *clcabling=nullptr)
Definition: LArCaliWaveBuilder.cxx:163
LArFebErrorSummary::error_to_string
static std::string error_to_string(uint16_t error)
interpret the error in string
Definition: LArFebErrorSummary.cxx:58
LArCaliWaveBuilder::m_groupingType
std::string m_groupingType
Definition: LArCaliWaveBuilder.h:53
read_hist_ntuple.t
t
Definition: read_hist_ntuple.py:5
LArCaliWaveBuilder::m_fatalFebErrorPattern
uint16_t m_fatalFebErrorPattern
Definition: LArCaliWaveBuilder.h:86
SG::VarHandleKey::key
const std::string & key() const
Return the StoreGate ID for the referenced object.
Definition: AthToolSupport/AsgDataHandles/Root/VarHandleKey.cxx:141
LArWaveHelper::getMax
unsigned int getMax(const LArWave &theWave) const
return index of maximum sample
Definition: LArWaveHelper.cxx:89
HWIdentifier
Definition: HWIdentifier.h:13
CaloGain::LARNGAIN
@ LARNGAIN
Definition: CaloGain.h:19
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
LArCaliWaveBuilder::m_usePatt
int m_usePatt
Definition: LArCaliWaveBuilder.h:88
LArCaliWave::getIsPulsedInt
int getIsPulsedInt() const
isPulsed value
Definition: LArCaliWave.h:163
LArFebErrorSummary::feb_error
uint16_t feb_error(HWIdentifier febid) const
get error for feb
Definition: LArFebErrorSummary.cxx:20
LArWave::getSample
const double & getSample(const unsigned int i) const
Amplitude per time bin.
Definition: LArWave.h:53
LArCalibDigitContainer
Container class for LArCalibDigit.
Definition: LArCalibDigitContainer.h:19
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.SystemOfUnits.megahertz
int megahertz
Definition: SystemOfUnits.py:127
LArCaliWaveBuilder::m_isSC
bool m_isSC
Definition: LArCaliWaveBuilder.h:68
LArCaliWave
Definition: LArCaliWave.h:44
AthCommonDataStore
Definition: AthCommonDataStore.h:52
LArCaliWaveBuilder::m_ADCsatur
int m_ADCsatur
Definition: LArCaliWaveBuilder.h:74
AthAlgorithm::sysInitialize
virtual StatusCode sysInitialize() override
Override sysInitialize.
Definition: AthAlgorithm.cxx:66
ATH_MSG_ERROR
#define ATH_MSG_ERROR(x)
Definition: AthMsgStreamMacros.h:33
LArCaliWaveBuilder::m_keylistproperty
std::vector< std::string > m_keylistproperty
Definition: LArCaliWaveBuilder.h:51
xAOD::uint16_t
setWord1 uint16_t
Definition: eFexEMRoI_v1.cxx:88
LArCaliWaveBuilder::m_calibMapKey
SG::ReadCondHandleKey< LArCalibLineMapping > m_calibMapKey
Definition: LArCaliWaveBuilder.h:43
FullCPAlgorithmsTest_eljob.sample
sample
Definition: FullCPAlgorithmsTest_eljob.py:100
AthCommonDataStore< AthCommonMsg< Algorithm > >::outputHandles
virtual std::vector< Gaudi::DataHandle * > outputHandles() const override
Return this algorithm's output handles.
LArConditionsContainer::end
ConstConditionsMapIterator end(unsigned int gain) const
end of all channels for this gain
fillPileUpNoiseLumi.next
next
Definition: fillPileUpNoiseLumi.py:52
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
LArCaliWaveBuilder::m_pedKey
SG::ReadCondHandleKey< ILArPedestal > m_pedKey
Definition: LArCaliWaveBuilder.h:44
ATH_MSG_DEBUG
#define ATH_MSG_DEBUG(x)
Definition: AthMsgStreamMacros.h:29
01SubmitToGrid.samples
samples
Definition: 01SubmitToGrid.py:58
LArConditionsContainer::get
ConstReference get(const HWIdentifier id, unsigned int gain=0) const
get data with online identifier
LArCaliWaveBuilder::m_dt
float m_dt
Definition: LArCaliWaveBuilder.h:84
LArCalibDigitContainer::getDelayScale
double getDelayScale() const
get delay scale
Definition: LArCalibDigitContainer.h:34
LArCalibParams::isPulsed
bool isPulsed(const unsigned event, const HWIdentifier calibLineID) const
Definition: LArCalibParams.cxx:167
LArCaliWaveVec
Definition: LArCaliWave.h:91
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
LArConditionsContainer< WaveMap >::ConditionsMapIterator
ConditionsMap::iterator ConditionsMapIterator
Definition: LArConditionsContainer.h:87
LArCaliWaveBuilder::m_SamplingPeriod
float m_SamplingPeriod
Definition: LArCaliWaveBuilder.h:83
LArOnlineID_Base::feb_Id
HWIdentifier feb_Id(int barrel_ec, int pos_neg, int feedthrough, int slot) const
Create feb_Id from fields.
Definition: LArOnlineID_Base.cxx:1483
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
LArCalibParams::DAC
unsigned DAC(const unsigned event, const HWIdentifier calibLineID) const
Definition: LArCalibParams.cxx:147
LArOnlineID_Base
Helper for the Liquid Argon Calorimeter cell identifiers.
Definition: LArOnlineID_Base.h:105
merge_scale_histograms.doc
string doc
Definition: merge_scale_histograms.py:9
LArCaliWaveBuilder::m_useDacAndIsPulsedIndex
bool m_useDacAndIsPulsedIndex
Definition: LArCaliWaveBuilder.h:71
name
std::string name
Definition: Control/AthContainers/Root/debug.cxx:195
LArCalibParams::Delay
unsigned Delay(const unsigned event, const HWIdentifier calibLineID) const
Definition: LArCalibParams.cxx:128
LArCaliWaveBuilder::m_pedSub
bool m_pedSub
Definition: LArCaliWaveBuilder.h:61
SG::CondHandleKey::initialize
StatusCode initialize(bool used=true)
LArOnlineID
Definition: LArOnlineID.h:20
LArCaliWaveBuilder::m_event_counter
unsigned m_event_counter
Definition: LArCaliWaveBuilder.h:81
LArOnline_SuperCellID
Definition: LArOnline_SuperCellID.h:20
CaloGain::CaloGain
CaloGain
Definition: CaloGain.h:11
WaveMap
std::map< int, LArCaliWave > WaveMap
Definition: LArCaliWaveAverage.cxx:18
DataVector::end
const_iterator end() const noexcept
Return a const_iterator pointing past the end of the collection.
AthAlgorithm::m_extendedExtraObjects
DataObjIDColl m_extendedExtraObjects
Definition: AthAlgorithm.h:79
DeMoScan.index
string index
Definition: DeMoScan.py:362
a
TList * a
Definition: liststreamerinfos.cxx:10
LArWave::meas
@ meas
Definition: LArWave.h:122
h
LArAccumulatedCalibDigitContainer::getDelayScale
double getDelayScale() const
get the delay Scale
Definition: LArAccumulatedCalibDigitContainer.h:38
LArConditionsContainer::initialize
virtual StatusCode initialize()
Initialization done after creation or read back - derived classes may augment the functionality.
ATH_MSG_WARNING
#define ATH_MSG_WARNING(x)
Definition: AthMsgStreamMacros.h:32
LArCaliWaveBuilder::m_waves
WaveContainer m_waves
Definition: LArCaliWaveBuilder.h:58
LArFebErrorSummary
Holds information from the FEB Error Summary.
Definition: LArFebErrorSummary.h:23
DeMoScan.first
bool first
Definition: DeMoScan.py:534
LArCaliWaveBuilder::m_checkEmptyPhases
bool m_checkEmptyPhases
Definition: LArCaliWaveBuilder.h:77
AthCommonMsg< Algorithm >::msg
MsgStream & msg() const
Definition: AthCommonMsg.h:24
LArConditionsContainer::begin
ConstConditionsMapIterator begin(unsigned int gain) const
get iterator for all channels for a gain
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
python.SystemOfUnits.ns
int ns
Definition: SystemOfUnits.py:130
AthAlgorithm::AthAlgorithm
AthAlgorithm()
Default constructor:
LArElecCalib::ERRORCODE
@ ERRORCODE
Definition: LArCalibErrorCode.h:17
python.Bindings.keys
keys
Definition: Control/AthenaPython/python/Bindings.py:790
LHEF::Writer
Pythia8::Writer Writer
Definition: Prophecy4fMerger.cxx:12
LArCaliWaveBuilder::m_NStep
int m_NStep
Definition: LArCaliWaveBuilder.h:82
LArOnlineID_Base::channel_name
std::string channel_name(const HWIdentifier id) const
Return a string corresponding to a feedthrough name given an identifier.
Definition: LArOnlineID_Base.cxx:218
test_pyathena.counter
counter
Definition: test_pyathena.py:15
LArAccumulatedCalibDigitContainer
Container class for LArAccumulatedCalibDigit.
Definition: LArAccumulatedCalibDigitContainer.h:25
AthCommonDataStore::declareGaudiProperty
Gaudi::Details::PropertyBase & declareGaudiProperty(Gaudi::Property< T > &hndl, const SG::VarHandleKeyType &)
specialization for handling Gaudi::Property<SG::VarHandleKey>
Definition: AthCommonDataStore.h:156
LArWaveCumul::getErrors
const std::vector< double > & getErrors() const
error vector
Definition: LArWaveCumul.h:138
DataVector::begin
const_iterator begin() const noexcept
Return a const_iterator pointing at the beginning of the collection.
fitman.k
k
Definition: fitman.py:528
DiTauMassTools::TauTypes::ll
@ ll
Definition: PhysicsAnalysis/TauID/DiTauMassTools/DiTauMassTools/HelperFunctions.h:49
ServiceHandle< ICondSvc >
LArOnOffIdMapping
Definition: LArOnOffIdMapping.h:20
LArWaveCumul::getTriggers
const std::vector< int > & getTriggers() const
trigger vector
Definition: LArWaveCumul.h:150