ATLAS Offline Software
Loading...
Searching...
No Matches
LArShapeDumper Class Reference

#include <LArShapeDumper.h>

Inheritance diagram for LArShapeDumper:

Public Member Functions

 LArShapeDumper (const std::string &name, ISvcLocator *pSvcLocator)
 ~LArShapeDumper ()
virtual StatusCode initialize () override
virtual StatusCode start () override
virtual StatusCode execute (const EventContext &ctx) override
 Execute method.
virtual StatusCode stop () override
virtual StatusCode finalize () override
int makeEvent (LArSamples::EventData *&eventData, int run, int event, int lumiBlock, int bunchXing) const
virtual StatusCode sysInitialize () override
 Override sysInitialize.
virtual bool isClonable () const override
 Specify if the algorithm is clonable.
virtual StatusCode sysExecute (const EventContext &ctx) override
 Execute an algorithm.
virtual const DataObjIDColl & extraOutputDeps () const override
 Return the list of extra output dependencies.
virtual bool filterPassed (const EventContext &ctx) const
 Get filter decision:
virtual void setFilterPassed (bool state, const EventContext &ctx) const
 Set filter decision:
ServiceHandle< StoreGateSvc > & evtStore ()
 The standard StoreGateSvc (event store) Returns (kind of) a pointer to the StoreGateSvc.
const ServiceHandle< StoreGateSvc > & detStore () const
 The standard StoreGateSvc/DetectorStore Returns (kind of) a pointer to the StoreGateSvc.
virtual StatusCode sysStart () override
 Handle START transition.
virtual std::vector< Gaudi::DataHandle * > inputHandles () const override
 Return this algorithm's input handles.
virtual std::vector< Gaudi::DataHandle * > outputHandles () const override
 Return this algorithm's output handles.
Gaudi::Details::PropertyBase & declareProperty (Gaudi::Property< T, V, H > &t)
void updateVHKA (Gaudi::Details::PropertyBase &)
MsgStream & msg () const
bool msgLvl (const MSG::Level lvl) const

Protected Member Functions

virtual bool isReEntrant () const override final
 Legacy algorithms are not thread-safe.
void renounceArray (SG::VarHandleKeyArray &handlesArray)
 remove all handles from I/O resolution
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.

Private Types

typedef ServiceHandle< StoreGateSvcStoreGateSvc_t

Private Member Functions

Gaudi::Details::PropertyBase & declareGaudiProperty (Gaudi::Property< T, V, H > &hndl, const SG::VarHandleKeyType &)
 specialization for handling Gaudi::Property<SG::VarHandleKey>

Private Attributes

std::string m_fileName
int m_prescale
unsigned m_count
unsigned m_maxChannels
unsigned m_nWrongBunchGroup
unsigned m_nPrescaledAway
unsigned m_nLArError
unsigned m_nNoDigits
unsigned m_nNoDigitsSC
std::string m_caloType
double m_energyCut
double m_noiseSignifCut
double m_energyCutSC
int m_minADCMax
int m_minADCMaxSC
std::string m_gainSpec
bool m_dumpDisc
std::vector< std::string > m_triggerNames
ToolHandle< ILArShapeDumperToolm_dumperTool {this,"LArShapeDumperTool","LArShapeDumperTool"}
ToolHandle< ILArShapeDumperToolm_dumperToolSC {this,"LArShapeDumperToolSC","LArShapeDumperToolSC"}
LArBadChannelMask m_bcMask
Gaudi::Property< std::vector< std::string > > m_problemsToMask {this,"ProblemsToMask",{}, "Bad-Channel categories to patch"}
LArBadChannelMask m_bcMaskSC
Gaudi::Property< std::vector< std::string > > m_problemsToMaskSC {this,"ProblemsToMaskSC",{}, "Bad-Channel categories to mask"}
SG::ReadHandleKey< LArDigitContainerm_digitsKey {this, "DigitsKey", "FREE", "key for LArDigitContainer"}
SG::ReadHandleKey< LArRawChannelContainerm_channelsKey {this, "ChannelsKey", "LArRawChannels", "key for LArRawChannels"}
SG::ReadHandleKey< LArDigitContainerm_digitsKeySC {this, "DigitsKeySC", "SC_ADC_BAS", "key for LArDigitContainer for SC"}
SG::ReadHandleKey< LArRawSCContainerm_rawscKey {this, "RawSCKey", "SC_ET_ID", "key for LArRawSCContainer"}
SG::ReadHandleKey< LArRawSCContainerm_rawRecomputedscKey {this, "RecomputedSCKey", "SC_ET_RECO", "key for recomputed LArRawSCContainer"}
SG::ReadCondHandleKey< LArADC2MeVm_adc2mevKey {this,"ADC2MeVKey","LArADC2MeV","SG Key of ADC2MeV conditions object"}
PublicToolHandle< Trig::TrigDecisionToolm_trigDec {this, "TrigDecisionTool", "", "Handle to the TrigDecisionTool"}
SG::ReadCondHandleKey< LArOnOffIdMappingm_cablingKey {this,"CablingKey","LArOnOffIdMap","SG Key of LArOnOffIdMapping object"}
SG::ReadCondHandleKey< LArOnOffIdMappingm_cablingKeySC {this,"CablingKeySC","LArOnOffIdMapSC","SG Key of LArOnOffIdMapping object for SC"}
SG::ReadCondHandleKey< LArBadChannelContm_BCKey {this, "BadChanKey", "LArBadChannel", "SG bad channels key"}
SG::ReadCondHandleKey< LArBadChannelContm_BCKeySC {this, "BadChanKeySC", "LArBadChannelSC", "SG bad channels key"}
SG::ReadCondHandleKey< CaloNoisem_noiseCDOKey {this,"CaloNoiseKey","totalNoise","SG Key of CaloNoise data object"}
SG::ReadCondHandleKey< BunchCrossingCondDatam_bcDataKey {this, "BunchCrossingCondDataKey", "BunchCrossingData" ,"SG Key of BunchCrossing CDO"}
SG::ReadCondHandleKey< ILArPedestalm_pedestalKey {this,"PedestalKey","LArPedestal","SG Key of LArPedestal object"}
SG::ReadCondHandleKey< ILArPedestalm_pedestalKeySC {this,"PedestalKeySC","LArPedestalSC","SG Key of LArPedestal object"}
SG::ReadCondHandleKey< ILArAutoCorrm_acorrKey {this,"AutocorrKey","LArAutoCorr","SG Key of LArAutoCorr object"}
SG::ReadCondHandleKey< CaloDetDescrManagerm_caloMgrKey
SG::ReadCondHandleKey< CaloSuperCellDetDescrManagerm_caloSuperCellMgrKey
const LArOnlineIDm_onlineHelper
const LArOnline_SuperCellIDm_onlineHelperSC
bool m_doStream
bool m_doTrigger
bool m_doOFCIter
bool m_doAllEvents
bool m_doRoIs
bool m_doAllLvl1
bool m_dumpChannelInfos
bool m_doEM
bool m_doHEC
bool m_doFCAL
bool m_doSC
bool m_gains [CaloGain::LARNGAIN] {}
bool m_onlyEmptyBC
LArSamples::DataStorem_samples
std::unique_ptr< LArSamples::RunDatam_runData
std::vector< const Trig::ChainGroup * > m_triggerGroups
TRandom m_random
DataObjIDColl m_extendedExtraObjects
 Extra output dependency collection, extended by AthAlgorithmDHUpdate to add symlinks.
StoreGateSvc_t m_evtStore
 Pointer to StoreGate (event store by default).
StoreGateSvc_t m_detStore
 Pointer to StoreGate (detector store by default).
std::vector< SG::VarHandleKeyArray * > m_vhka
bool m_varHandleArraysDeclared

Detailed Description

Member Typedef Documentation

◆ StoreGateSvc_t

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

Definition at line 388 of file AthCommonDataStore.h.

Constructor & Destructor Documentation

◆ LArShapeDumper()

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

Definition at line 42 of file LArShapeDumper.cxx.

42 :
43 AthAlgorithm(name, pSvcLocator),
44 m_count(0),
47 m_nLArError(0),
48 m_nNoDigits(0),
50 m_onlineHelper(nullptr),
51 m_onlineHelperSC(nullptr),
52 m_doEM(false),
53 m_doHEC(false),
54 m_doFCAL(false),
55 m_doSC(false),
56 m_samples(nullptr)
57{
58 declareProperty("FileName", m_fileName = "samples.root");
59 declareProperty("MaxChannels", m_maxChannels = 200000);
60 declareProperty("Prescale", m_prescale = 1);
61 declareProperty("CaloType", m_caloType = "EMHECFCALSC");
62 declareProperty("EnergyCut", m_energyCut = -1);
63 declareProperty("EnergyCutSC", m_energyCutSC = -1);
64 declareProperty("NoiseSignifCut", m_noiseSignifCut = 3);
65 declareProperty("MinADCMax", m_minADCMax = -1);
66 declareProperty("MinADCMaxSC", m_minADCMaxSC = -1);
67 declareProperty("Gains", m_gainSpec = "HIGH,MEDIUM,LOW");
68 declareProperty("DumpDisconnected", m_dumpDisc = false);
69 declareProperty("DoStream", m_doStream = false);
70 declareProperty("DoTrigger", m_doTrigger = true);
71 declareProperty("DoOFCIter", m_doOFCIter = true);
72 declareProperty("DoAllEvents", m_doAllEvents = true);
73 declareProperty("DumpChannelInfos", m_dumpChannelInfos = false);
74 declareProperty("DoRoIs", m_doRoIs = true);
75 declareProperty("TriggerNames", m_triggerNames);
76 declareProperty("DoAllLvl1", m_doAllLvl1 = true);
77 declareProperty("onlyEmptyBC",m_onlyEmptyBC=false);
78
79 m_bcMaskSC.setSC();
80}
AthAlgorithm(const std::string &name, ISvcLocator *pSvcLocator)
Constructor.
Gaudi::Details::PropertyBase & declareProperty(Gaudi::Property< T, V, H > &t)
std::string m_gainSpec
unsigned m_maxChannels
std::vector< std::string > m_triggerNames
unsigned m_nPrescaledAway
unsigned m_nLArError
std::string m_caloType
double m_noiseSignifCut
LArSamples::DataStore * m_samples
const LArOnlineID * m_onlineHelper
unsigned m_nNoDigits
LArBadChannelMask m_bcMaskSC
const LArOnline_SuperCellID * m_onlineHelperSC
unsigned m_nWrongBunchGroup
std::string m_fileName
unsigned m_nNoDigitsSC

◆ ~LArShapeDumper()

LArShapeDumper::~LArShapeDumper ( )

Definition at line 83 of file LArShapeDumper.cxx.

84{
85}

Member Function Documentation

◆ declareGaudiProperty()

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

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

Definition at line 156 of file AthCommonDataStore.h.

158 {
160 hndl.value(),
161 hndl.documentation());
162
163 }

◆ declareProperty()

Gaudi::Details::PropertyBase & AthCommonDataStore< AthCommonMsg< Gaudi::Algorithm > >::declareProperty ( Gaudi::Property< T, V, H > & t)
inlineinherited

Definition at line 145 of file AthCommonDataStore.h.

145 {
146 typedef typename SG::HandleClassifier<T>::type htype;
148 }
Gaudi::Details::PropertyBase & declareGaudiProperty(Gaudi::Property< T, V, H > &hndl, const SG::VarHandleKeyType &)
specialization for handling Gaudi::Property<SG::VarHandleKey>

◆ detStore()

const ServiceHandle< StoreGateSvc > & AthCommonDataStore< AthCommonMsg< Gaudi::Algorithm > >::detStore ( ) const
inlineinherited

The standard StoreGateSvc/DetectorStore Returns (kind of) a pointer to the StoreGateSvc.

Definition at line 95 of file AthCommonDataStore.h.

◆ evtStore()

ServiceHandle< StoreGateSvc > & AthCommonDataStore< AthCommonMsg< Gaudi::Algorithm > >::evtStore ( )
inlineinherited

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

Definition at line 85 of file AthCommonDataStore.h.

◆ execute()

StatusCode LArShapeDumper::execute ( const EventContext & ctx)
overridevirtual

Execute method.

Implements AthAlgorithm.

Definition at line 218 of file LArShapeDumper.cxx.

219{
220 m_count++;
221 if ((m_prescale > 1 && m_random.Rndm() > 1.0/m_prescale) || m_prescale <= 0) {
222 ATH_MSG_VERBOSE ( "======== prescaling event "<< m_count << " ========" );
224 return StatusCode::SUCCESS;
225 }
226
227 ATH_MSG_VERBOSE ( "======== executing event "<< m_count << " ========" );
228
229 const xAOD::EventInfo* eventInfo = nullptr;
230 ATH_CHECK( evtStore()->retrieve(eventInfo) );
231
232 int event = eventInfo->eventNumber();
233 int run = eventInfo->runNumber();
234 int lumiBlock = eventInfo->lumiBlock();
235 int bunchId = eventInfo->bcid();
236
237
239 ATH_MSG_DEBUG("Ignoring Event b/c of LAr ERROR");
240 m_nLArError++;
241 return StatusCode::SUCCESS;
242 }
243
244
245 SG::ReadCondHandle<BunchCrossingCondData> bccd (m_bcDataKey,ctx);
246 const BunchCrossingCondData* bunchCrossing=*bccd;
247 if (!bunchCrossing) {
248 ATH_MSG_ERROR("Failed to retrieve Bunch Crossing obj");
249 return StatusCode::FAILURE;
250 }
251
252 SG::ReadCondHandle<CaloDetDescrManager> caloMgrHandle{m_caloMgrKey, ctx};
253 ATH_CHECK(caloMgrHandle.isValid());
254 const CaloDetDescrManager* caloMgr = *caloMgrHandle;
255
256 if (m_onlyEmptyBC) {
257 if (!bccd->isFilled(bunchId)) {
258 ATH_MSG_DEBUG("Ignoring Event with bunch crossing type ");
260 return StatusCode::SUCCESS;
261 }
262 }
263
264
265 EventData* eventData = nullptr;
266 int eventIndex = -1;
267 if (m_doAllEvents) {
268 eventIndex = makeEvent(eventData, run, event, lumiBlock, bunchId);
269 if (eventIndex < 0) return StatusCode::FAILURE;
270 }
271
272 SG::ReadHandle<LArDigitContainer> hdlDigit(m_digitsKey, ctx);
273 if(!hdlDigit.isValid()) {
274 ATH_MSG_WARNING( "Unable to retrieve LArDigitContainer with key " << m_digitsKey << " from DetectorStore. " );
275 return StatusCode::SUCCESS;
276 } else
277 ATH_MSG_DEBUG( "Got LArDigitContainer with key " << m_digitsKey.key() );
278 const LArDigitContainer* larDigitContainer = &(*hdlDigit);
279
280 if (larDigitContainer->empty()) {
281 ATH_MSG_WARNING ( "LArDigitContainer with key=" << m_digitsKey.key() << " is empty!" );
282 m_nNoDigits++;
283 return StatusCode::SUCCESS;
284 }
285
286 SG::ReadHandle<LArRawChannelContainer> hdlRaw(m_channelsKey, ctx);
287 if(!hdlRaw.isValid()) {
288 ATH_MSG_WARNING( "Unable to retrieve LArRawChannelsContainer with key " << m_channelsKey.key() << " from DetectorStore. " );
289 return StatusCode::SUCCESS;
290 } else
291 ATH_MSG_DEBUG( "Got LArRawChannelsContainer with key " << m_channelsKey.key() );
292 const LArRawChannelContainer* rawChannelContainer = &(*hdlRaw);;
293
294 if (rawChannelContainer->empty()) {
295 ATH_MSG_WARNING ( "LArRawChannelContainer with key=" << m_channelsKey << " is empty!" );
296 m_nNoDigits++;
297 return StatusCode::SUCCESS;
298 }
299
300
301
302 SG::ReadCondHandle<LArOnOffIdMapping> cablingHdl{m_cablingKey, ctx};
303 const LArOnOffIdMapping* cabling=*cablingHdl;
304 if(!cabling) {
305 ATH_MSG_ERROR( "Do not have cabling object LArOnOffIdMapping" );
306 return StatusCode::FAILURE;
307 }
308
309 SG::ReadCondHandle<LArADC2MeV> adc2mevHdl(m_adc2mevKey, ctx);
310 const LArADC2MeV* adc2MeV=*adc2mevHdl;
311 if(!adc2MeV) {
312 ATH_MSG_ERROR( "Failed to retreive ADC2MeV cond obj" );
313 return StatusCode::FAILURE;
314 }
315
316 SG::ReadCondHandle<ILArPedestal> pedHdl(m_pedestalKey, ctx);
317 const ILArPedestal* pedestals=*pedHdl;
318 if (!pedestals) {
319 ATH_MSG_ERROR("Failed to retrieve pedestal cond obj");
320 return StatusCode::FAILURE;
321 }
322
323 const ILArAutoCorr* aCorr=nullptr;
324 if(m_dumperTool->doShape()) {
325 SG::ReadCondHandle<ILArAutoCorr> acorrHdl(m_acorrKey, ctx);
326 aCorr=*acorrHdl;
327 if (!aCorr) {
328 ATH_MSG_ERROR("Failed to retrieve AutoCorr cond obj");
329 return StatusCode::FAILURE;
330 }
331 }
332
333 SG::ReadCondHandle<LArBadChannelCont> readHandle{m_BCKey, ctx};
334 const LArBadChannelCont *bcCont {*readHandle};
335 if(!bcCont) {
336 ATH_MSG_ERROR( "Do not have Bad chan container " << m_BCKey.key() );
337 return StatusCode::FAILURE;
338 }
339
340 const LArOFIterResultsContainer* ofIterResult = nullptr;
341 if (m_doOFCIter) {
342 if (evtStore()->contains<LArOFIterResultsContainer> ("LArOFIterResult")) {
343 ATH_CHECK( evtStore()->retrieve(ofIterResult, "LArOFIterResult") );
344 } else {
345 ATH_MSG_WARNING("Do not have LArOFIterResult in this event");
346 }
347 }
348
349 const LArFebErrorSummary* larFebErrorSummary = nullptr;
350 ATH_CHECK( evtStore()->retrieve(larFebErrorSummary, "LArFebErrorSummary") );
351 const std::map<unsigned int,uint16_t>& febErrorMap = larFebErrorSummary->get_all_febs();
352 std::map<unsigned int, const LArRawChannel*> channelsToKeep;
353
354 for (LArRawChannelContainer::const_iterator channel = rawChannelContainer->begin();
355 channel != rawChannelContainer->end(); ++channel)
356 {
357 if (m_energyCut > 0 && TMath::Abs(channel->energy()) < m_energyCut) continue;
358 if (m_bcMask.cellShouldBeMasked(bcCont,channel->channelID())) continue;
359
360 IdentifierHash hash = m_onlineHelper->channel_Hash(channel->channelID());
361
362 if (!hash.is_valid()) {
363 ATH_MSG_FATAL ( "Found a LArRawChannel whose HWIdentifier (" << channel->channelID()
364 << ") does not correspond to a valid hash -- returning StatusCode::FAILURE." );
365 return StatusCode::FAILURE;
366 }
367 channelsToKeep[hash] = &*channel;
368 if (m_dumpChannelInfos) {
369 HistoryContainer* histCont = m_samples->hist_cont(hash);
370 CellInfo* info = nullptr;
371 if (!histCont) {
372 HWIdentifier channelID = channel->hardwareID();
373 const Identifier id = cabling->cnvToIdentifier(channelID);
374 const CaloDetDescrElement* caloDetElement = caloMgr->get_element(id);
375 info = m_dumperTool->makeCellInfo(channelID, id, caloDetElement);
376 if (!info) continue;
377 m_samples->makeNewHistory(hash, info);
378 }
379 }
380 }
381
382 std::map<HWIdentifier, LArOFIterResultsContainer::const_iterator> ofcResultPosition;
383 if (m_doOFCIter && ofIterResult) {
384 for (LArOFIterResultsContainer::const_iterator ofResult = ofIterResult->begin();
385 ofResult != ofIterResult->end(); ++ofResult)
386 ofcResultPosition[ofResult->getChannelID()] = ofResult;
387
388 ATH_MSG_DEBUG ( "njpbSizes : " << larDigitContainer->size()
389 << " " << (ofIterResult ? ofIterResult->size() : 0) << " "
390 << rawChannelContainer->size() << " " << channelsToKeep.size() );
391 }
392 SG::ReadCondHandle<CaloNoise> noiseHdl{m_noiseCDOKey, ctx};
393 const CaloNoise* noiseCDO=*noiseHdl;
394
395 for (LArDigitContainer::const_iterator digit = larDigitContainer->begin();
396 digit != larDigitContainer->end(); ++digit)
397 {
398 //Check Energy selection
399 IdentifierHash hash = m_onlineHelper->channel_Hash((*digit)->channelID());
400
401 std::map<unsigned int, const LArRawChannel*>::const_iterator findChannel = channelsToKeep.find(hash);
402 if (findChannel == channelsToKeep.end()) continue;
403 const LArRawChannel* rawChannel = findChannel->second;
404
405 //Check detector part
406 HWIdentifier channelID = (*digit)->hardwareID();
407 if ((m_onlineHelper->isEMBchannel(channelID) || m_onlineHelper->isEMECchannel(channelID)) && !m_doEM) continue;
408 if (m_onlineHelper->isHECchannel(channelID) && !m_doHEC) continue;
409 if (m_onlineHelper->isFCALchannel(channelID) && !m_doFCAL) continue;
410
411 //Check gain
412 CaloGain::CaloGain gain=(*digit)->gain();
413 if (gain >= CaloGain::LARNGAIN || m_gains[gain] == false) continue;
414
415 //Check if connected
416 const bool connected = cabling->isOnlineConnected(channelID);
417 if (!connected && !m_dumpDisc) continue;
418
419 // Check ADCMax selection
420 float pedestal = pedestals->pedestal(channelID, gain);
421 float pedestalRMS = pedestals->pedestalRMS(channelID, gain);
422 if (m_minADCMax > 0 || m_noiseSignifCut > 0) {
423 const std::vector<short>& samples = (*digit)->samples();
424 double maxValue = -1;
425 for (short sample : samples)
426 if (sample - pedestal > maxValue) maxValue = sample - pedestal;
427 if (m_minADCMax > 0 && fabs(maxValue) < m_minADCMax) continue;
428 if (m_noiseSignifCut > 0 && fabs(maxValue) < pedestalRMS*m_noiseSignifCut) continue;
429 }
430
431 const Identifier id = cabling->cnvToIdentifier(channelID);
432 const CaloDetDescrElement* caloDetElement = nullptr;
433
434 HistoryContainer* histCont = m_samples->hist_cont(hash);
435 CellInfo* info = nullptr;
436 if (!histCont) {
437 if (!caloDetElement) caloDetElement = caloMgr->get_element(id);
438 info = m_dumperTool->makeCellInfo(channelID, id, caloDetElement);
439 if (!info) continue;
440 histCont = m_samples->makeNewHistory(hash, info);
441 }
442 else
443 info = histCont->cell_info();
444
445 float noise = -1;
446 unsigned int status = 0xFFFFFFFF;
447 if (connected) {
448 if (!caloDetElement) caloDetElement = caloMgr->get_element(id);
449 noise = noiseCDO->getNoise(id,gain);
450 status = bcCont->status(channelID).packedData();
451 HWIdentifier febId = m_onlineHelper->feb_Id(m_onlineHelper->feedthrough_Id(channelID), m_onlineHelper->slot(channelID));
452 std::map<unsigned int,uint16_t>::const_iterator findError = febErrorMap.find(febId.get_identifier32().get_compact());
453 if (findError != febErrorMap.end()) {
454 unsigned int febErrWord = findError->second;
455 status = status & (febErrWord >> 17);
456 }
457 }
458
459 //std::vector<float> autoCorr;
461 if (m_dumperTool->doShape()) {
462 const LArAutoCorrComplete* autoCorrObj = dynamic_cast<const LArAutoCorrComplete*>(aCorr);
463 if (!autoCorrObj)
464 ATH_MSG_WARNING ( "AutoCorr object is not of type LArAutoCorrComplete!" );
465 else
466 autoCorr = autoCorrObj->autoCorr(channelID, gain);
467 }
468
469 if (!info->shape((*digit)->gain())) // this happens if doAllShapes is off
470 info->setShape((*digit)->gain(), m_dumperTool->retrieveShape(channelID, gain));
471
472 if (!eventData) {
473 eventIndex = makeEvent(eventData, run, event, lumiBlock, bunchId); // this happens if doAllEvents is off
474 if (eventIndex < 0) return StatusCode::FAILURE;
475 }
476
477 DataContainer* data =
478 new DataContainer((*digit)->gain(), (*digit)->samples(),
479 rawChannel->energy(),
480 rawChannel->time()/double(1000),
481 rawChannel->quality(),
482 eventIndex,
483 autoCorr,
484 noise, pedestal, pedestalRMS, status);
485
486 // std::map<HWIdentifier, LArOFIterResultsContainer::const_iterator>::const_iterator findResult = ofcResultPosition.find(channelID);
487// if (findResult != ofcResultPosition.end()) {
488// LArOFIterResultsContainer::const_iterator ofResult = findResult->second;
489// if (ofResult->getValid() && ofResult->getConverged())
490// data->setADCMax(ofResult->getAmplitude());
491// }
492// else
493// msg() << MSG::INFO << "OFResult for channel 0x" << MSG::hex << channelID << MSG::dec
494// << " not found. (size was " << ofcResultPosition.size() << ")" << endmsg;
495
496
497 const auto ramp=adc2MeV->ADC2MEV(channelID,gain); //dudu
498 data->setADCMax(rawChannel->energy()/ramp[1]); //pow(ADCPeak,i); //dudu
499
500
501 histCont->add(data);
502 }
503
504 if(m_doSC) {
505 std::map<unsigned int, const LArRawSC*> scToKeep;
506
507 SG::ReadHandle<LArRawSCContainer> hdlSC(m_rawscKey, ctx);
508 if(!hdlSC.isValid()) {
509 ATH_MSG_WARNING( "Unable to retrieve LArRawSCContainer with key " << m_rawscKey << " from EventStore. " );
510 return StatusCode::SUCCESS;
511 } else
512 ATH_MSG_DEBUG( "Got LArRawSCContainer with key " << m_rawscKey.key() );
513
514 if (hdlSC->empty()) {
515 ATH_MSG_WARNING ( "LArRawSCContainer with key=" << m_rawscKey.key() << " is empty!" );
516 return StatusCode::SUCCESS;
517 }
518
519 SG::ReadHandle<LArRawSCContainer> hdlrecoSC(m_rawRecomputedscKey, ctx);
520 if(!hdlrecoSC.isValid()) {
521 ATH_MSG_WARNING( "Unable to retrieve LArRawSCContainer with key " << m_rawRecomputedscKey << " from EventStore. " );
522 return StatusCode::SUCCESS;
523 } else
524 ATH_MSG_DEBUG( "Got LArRawSCContainer with key " << m_rawRecomputedscKey.key() );
525
526 if (hdlrecoSC->empty()) {
527 ATH_MSG_WARNING ( "LArRawSCContainer with key=" << m_rawRecomputedscKey.key() << " is empty!" );
528 return StatusCode::SUCCESS;
529 }
530
531 SG::ReadCondHandle<LArOnOffIdMapping> cablingHdl{m_cablingKeySC, ctx};
532 const LArOnOffIdMapping* cablingSC=*cablingHdl;
533 if(!cablingSC) {
534 ATH_MSG_ERROR( "Do not have cabling object LArOnOffIdMapping" );
535 return StatusCode::FAILURE;
536 }
537
538 SG::ReadCondHandle<CaloSuperCellDetDescrManager> caloMgrHandle{m_caloSuperCellMgrKey, ctx};
539 ATH_CHECK(caloMgrHandle.isValid());
540 const CaloSuperCellDetDescrManager* caloMgrSC = *caloMgrHandle;
541
542 SG::ReadCondHandle<ILArPedestal> pedHdl(m_pedestalKeySC, ctx);
543 const ILArPedestal* pedestalsSC=*pedHdl;
544 if (!pedestals) {
545 ATH_MSG_ERROR("Failed to retrieve pedestal cond obj for SC");
546 return StatusCode::FAILURE;
547 }
548
549 std::map<unsigned int, std::pair<float, std::pair<float,float> > > channelsToKeepSC;
550
551 for (const LArRawSC* rawSC : *hdlSC) { // from bytestream
552
553 // is SC masked ?
554 if (m_bcMaskSC.cellShouldBeMasked(bcCont,rawSC->hardwareID())) continue;
555
556 const std::vector<unsigned short>& bcids = rawSC->bcids();
557 const std::vector<int>& energies = rawSC->energies();
558 const std::vector<bool>& satur = rawSC->satur();
559
560 // Look for bcid:
561 float scEne = 0;
562 float defValue = -99999999.;
563
564 const size_t nBCIDs = bcids.size();
565 size_t i = 0;
566 for (i = 0; i < nBCIDs && bcids[i] != bunchId; i++)
567 ;
568 if(i==nBCIDs) continue;
569 if (satur[i]) continue;
570
571 scEne = energies[i];
572 if (m_energyCutSC > 0 && TMath::Abs(scEne) < m_energyCutSC) continue;
573 if (m_bcMaskSC.cellShouldBeMasked(bcCont,rawSC->hardwareID())) continue;
574
575 IdentifierHash hash = m_onlineHelperSC->channel_Hash(rawSC->hardwareID());
576
577 if (!hash.is_valid()) {
578 ATH_MSG_FATAL ( "Found a LArRawSC whose HWIdentifier (" << rawSC->hardwareID()
579 << ") does not correspond to a valid hash -- returning StatusCode::FAILURE." );
580 return StatusCode::FAILURE;
581 }
582
583 channelsToKeepSC[hash] = std::make_pair(scEne, std::make_pair(defValue,defValue));
584
585 if (m_dumpChannelInfos) {
586 HistoryContainer* histCont = m_samples->hist_cont_sc(hash);
587 CellInfo* info = nullptr;
588 if (!histCont) {
589 HWIdentifier channelID = rawSC->hardwareID();
590 const Identifier id = cablingSC->cnvToIdentifier(channelID);
591 const CaloDetDescrElement* caloDetElement = caloMgrSC->get_element(id);
592 info = m_dumperToolSC->makeCellInfo(channelID, id, caloDetElement);
593 if (!info) continue;
594 m_samples->makeNewHistorySC(hash, info);
595 }
596 }
597 }
598 ATH_MSG_INFO("SC to keep in this event: "<<channelsToKeepSC.size());
599
600 for (const LArRawSC* rawSC : *hdlrecoSC) { //reconstructed
601
602 if (m_bcMaskSC.cellShouldBeMasked(bcCont,rawSC->hardwareID())) continue;
603 IdentifierHash hash = m_onlineHelperSC->channel_Hash(rawSC->hardwareID());
604 if (!hash.is_valid()) {
605 ATH_MSG_FATAL ( "Found a LArRawSC whose HWIdentifier (" << rawSC->hardwareID()
606 << ") does not correspond to a valid hash -- returning StatusCode::FAILURE." );
607 return StatusCode::FAILURE;
608 }
609
610 // do we keep this SC ?
611 if (channelsToKeepSC.find(hash) == channelsToKeepSC.end()) continue;
612
613 const std::vector<unsigned short>& bcids = rawSC->bcids();
614 const std::vector<int>& energies = rawSC->energies();
615 const std::vector<int>& tauenergies = rawSC->tauEnergies();
616
617 // Look for bcid:
618 float scEne = 0;
619 float scTim = -99999999.;
620
621 const size_t nBCIDs = bcids.size();
622 size_t i = 0;
623 for (i = 0; i < nBCIDs && bcids[i] != bunchId; i++)
624 ;
625 if(i==nBCIDs) continue;
626
627 scEne = energies[i];
628
629 if(tauenergies.size() && scEne != 0) scTim = tauenergies[i] / scEne;
630
631 channelsToKeepSC[hash].second = std::make_pair(scEne, scTim);
632
633 if (m_dumpChannelInfos) {
634 HistoryContainer* histCont = m_samples->hist_cont_sc(hash);
635 CellInfo* info = nullptr;
636 if (!histCont) {
637 HWIdentifier channelID = rawSC->hardwareID();
638 const Identifier id = cablingSC->cnvToIdentifier(channelID);
639 const CaloDetDescrElement* caloDetElement = caloMgrSC->get_element(id);
640 info = m_dumperToolSC->makeCellInfo(channelID, id, caloDetElement);
641 if (!info) continue;
642 m_samples->makeNewHistorySC(hash, info);
643 }
644 }
645 }
646
647 SG::ReadHandle<LArDigitContainer> hdlSCDigit(m_digitsKeySC, ctx);
648 if(!hdlSCDigit.isValid()) {
649 ATH_MSG_WARNING( "Unable to retrieve LArDigitContainer with key " << m_digitsKeySC << " from DetectorStore. " );
650 return StatusCode::SUCCESS;
651 } else
652 ATH_MSG_DEBUG( "Got LArDigitContainer with key " << m_digitsKeySC.key() );
653 const LArDigitContainer* larSCDigitContainer = &(*hdlSCDigit);
654
655 if (larSCDigitContainer->empty()) {
656 ATH_MSG_WARNING ( "LArDigitContainer with key=" << m_digitsKeySC.key() << " is empty!" );
658 return StatusCode::SUCCESS;
659 }
660
661 for (LArDigitContainer::const_iterator digit = larSCDigitContainer->begin();
662 digit != larSCDigitContainer->end(); ++digit)
663 {
664 //Check Energy selection
665 IdentifierHash hash = m_onlineHelperSC->channel_Hash((*digit)->channelID());
666
667 std::map<unsigned int, std::pair<float, std::pair<float,float> > >::const_iterator findChannel = channelsToKeepSC.find(hash);
668 if (findChannel == channelsToKeepSC.end()) continue;
669
670 // Check ADCMax selection
671 float pedestal = pedestalsSC->pedestal((*digit)->channelID(), 0);
672 if (m_minADCMaxSC > 0 ) {
673 const std::vector<short>& samples = (*digit)->samples();
674 double maxValue = -1;
675 for (short sample : samples)
676 if (sample - pedestal > maxValue) maxValue = sample - pedestal;
677 if (fabs(maxValue) < m_minADCMax) continue;
678 }
679
680 const Identifier id = cablingSC->cnvToIdentifier((*digit)->channelID());
681 const CaloDetDescrElement* caloDetElement = nullptr;
682
683 HistoryContainer* histCont = m_samples->hist_cont_sc(hash);
684 CellInfo* info = nullptr;
685 if (!histCont) {
686 if (!caloDetElement) caloDetElement = caloMgrSC->get_element(id);
687 info = m_dumperToolSC->makeCellInfo((*digit)->channelID(), id, caloDetElement);
688 if (!info) continue;
689 histCont = m_samples->makeNewHistorySC(hash, info);
690 }
691 else
692 info = histCont->cell_info();
693
694 if (!eventData) {
695 eventIndex = makeEvent(eventData, run, event, lumiBlock, bunchId); // this happens if doAllEvents is off
696 if (eventIndex < 0) return StatusCode::FAILURE;
697 }
698
699 DataContainer* data =
700 new DataContainer((*digit)->gain(), (*digit)->samples(),
701 findChannel->second.first,
702 findChannel->second.second.second,
703 findChannel->second.second.first,
704 eventIndex,
705 LArVectorProxy(),
706 -1, pedestal, 0, 0);
707
708
709 histCont->add(data);
710 }
711
712 } //m_doSC
713
714 return StatusCode::SUCCESS;
715}
#define ATH_CHECK
Evaluate an expression and check for errors.
#define ATH_MSG_ERROR(x)
#define ATH_MSG_FATAL(x)
#define ATH_MSG_INFO(x)
#define ATH_MSG_VERBOSE(x)
#define ATH_MSG_WARNING(x)
#define ATH_MSG_DEBUG(x)
#define maxValue(current, test)
LArBadXCont< LArBadChannel > LArBadChannelCont
LArFebErrorSummary
Definition LArTPCnv.cxx:56
Athena::TPCnvVers::Current Athena::TPCnvVers::Old Athena::TPCnvVers::Old LArRawChannelContainer
Definition LArTPCnv.cxx:86
ServiceHandle< StoreGateSvc > & evtStore()
const CaloDetDescrElement * get_element(const Identifier &cellId) const
get element by its identifier
float getNoise(const IdentifierHash h, const int gain) const
Accessor by IdentifierHash and gain.
Definition CaloNoise.h:35
DataModel_detail::const_iterator< DataVector > const_iterator
Definition DataVector.h:838
const_iterator end() const noexcept
Return a const_iterator pointing past the end of the collection.
const_iterator begin() const noexcept
Return a const_iterator pointing at the beginning of the collection.
size_type size() const noexcept
Returns the number of elements in the collection.
bool empty() const noexcept
Returns true if the collection is empty.
LArVectorProxy AutoCorrRef_t
virtual float pedestal(const HWIdentifier &id, int gain) const =0
virtual float pedestalRMS(const HWIdentifier &id, int gain) const =0
access to RMS of Pedestal index by Identifier, and gain setting
value_type get_compact() const
Get the compact id.
Identifier32 get_identifier32() const
Get the 32-bit version Identifier, will be invalid if >32 bits needed.
const LArVectorProxy ADC2MEV(const HWIdentifier &id, int gain) const
Definition LArADC2MeV.h:32
virtual AutoCorrRef_t autoCorr(const HWIdentifier &CellID, int gain) const
BitWord packedData() const
LArBC_t status(const HWIdentifier channel) const
Query the status of a particular channel or FEB This is the main client access method.
const std::map< unsigned int, uint16_t > & get_all_febs() const
get all febs with error
Identifier cnvToIdentifier(const HWIdentifier &sid) const
create an Identifier from a HWIdentifier (inline)
int time() const
uint16_t quality() const
int energy() const
void add(const DataContainer *data)
append data (takes ownership)
SG::ReadCondHandleKey< LArADC2MeV > m_adc2mevKey
SG::ReadCondHandleKey< ILArPedestal > m_pedestalKeySC
SG::ReadCondHandleKey< CaloDetDescrManager > m_caloMgrKey
SG::ReadHandleKey< LArRawSCContainer > m_rawscKey
ToolHandle< ILArShapeDumperTool > m_dumperToolSC
SG::ReadHandleKey< LArRawSCContainer > m_rawRecomputedscKey
SG::ReadCondHandleKey< LArBadChannelCont > m_BCKey
int makeEvent(LArSamples::EventData *&eventData, int run, int event, int lumiBlock, int bunchXing) const
ToolHandle< ILArShapeDumperTool > m_dumperTool
SG::ReadCondHandleKey< CaloSuperCellDetDescrManager > m_caloSuperCellMgrKey
LArBadChannelMask m_bcMask
SG::ReadCondHandleKey< LArOnOffIdMapping > m_cablingKey
SG::ReadCondHandleKey< ILArAutoCorr > m_acorrKey
SG::ReadCondHandleKey< CaloNoise > m_noiseCDOKey
bool m_gains[CaloGain::LARNGAIN]
SG::ReadHandleKey< LArRawChannelContainer > m_channelsKey
SG::ReadCondHandleKey< BunchCrossingCondData > m_bcDataKey
SG::ReadHandleKey< LArDigitContainer > m_digitsKeySC
SG::ReadCondHandleKey< LArOnOffIdMapping > m_cablingKeySC
SG::ReadCondHandleKey< ILArPedestal > m_pedestalKey
SG::ReadHandleKey< LArDigitContainer > m_digitsKey
uint32_t lumiBlock() const
The current event's luminosity block number.
uint32_t bcid() const
The bunch crossing ID of the event.
@ LAr
The LAr calorimeter.
@ Error
The sub-detector issued an error.
uint32_t runNumber() const
The current event's run number.
EventFlagErrorState errorState(EventFlagSubDet subDet) const
Get the error state for a particular sub-detector.
uint64_t eventNumber() const
The current event's event number.
bool contains(const std::string &s, const std::string &regx)
does a string contain the substring
Definition hcg.cxx:116
@ LARNGAIN
Definition CaloGain.h:19
event_number_t eventIndex
status
Definition merge.py:16
EventInfo_v1 EventInfo
Definition of the latest event info version.
setTeId lumiBlock
int run(int argc, char *argv[])

◆ extraDeps_update_handler()

void AthCommonDataStore< AthCommonMsg< Gaudi::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 & AthCommonAlgorithm< Gaudi::Algorithm >::extraOutputDeps ( ) const
overridevirtualinherited

Return the list of extra output dependencies.

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

Definition at line 89 of file AthCommonAlgorithm.cxx.

54{
55 // If we didn't find any symlinks to add, just return the collection
56 // from the base class. Otherwise, return the extended collection.
57 if (!m_extendedExtraObjects.empty()) {
59 }
61}
Common base class for algorithms.

◆ filterPassed()

virtual bool AthCommonAlgorithm< Gaudi::Algorithm >::filterPassed ( const EventContext & ctx) const
inlinevirtualinherited

Get filter decision:

Definition at line 93 of file AthCommonAlgorithm.h.

93 {
94 return execState( ctx ).filterPassed();
95 }
virtual bool filterPassed(const EventContext &ctx) const
Get filter decision:

◆ finalize()

StatusCode LArShapeDumper::finalize ( )
overridevirtual

Definition at line 725 of file LArShapeDumper.cxx.

726{
727 ATH_MSG_DEBUG ("in finalize() ");
728
729 if (m_prescale>1) ATH_MSG_INFO("Prescale dropped " << m_nPrescaledAway << "/" << m_count << " events");
730 if (m_onlyEmptyBC) ATH_MSG_INFO("Dropped " << m_nWrongBunchGroup << "/" << m_count << " events b/c of wrong bunch group");
731 ATH_MSG_INFO("Dropped " << m_nLArError << "/" << m_count << " Events b/c of LAr Veto (Noise burst or corruption)");
732
733
734 int n = 0;
735 for (unsigned int i = 0; i < m_samples->nChannels(); i++)
736 if (m_samples->historyContainer(i)) {
737 if (m_samples->historyContainer(i)->cellInfo() == nullptr)
738 ATH_MSG_INFO ( "Cell with no cellInfo at index " << i << " !!" );
739 //else if (m_samples->historyContainer(i)->cellInfo()->shape() == 0)
740 //msg() << MSG::INFO << "Cell with no ShapeInfo at index " << i << " !!" << endmsg;
741 //msg() << MSG::INFO << "Non-zero cell at index " << i << " " << m_samples->shape(i)->size() << endmsg;
742 n++;
743 }
744
745 //for (unsigned int i = 0; i < m_samples->nEvents(); i++) {
746 // msg() << MSG::INFO << "Event " << i << " = "
747 // << m_samples->eventData(i)->run() << " " << m_samples->eventData(i)->event()
748 // << "trigger = " << m_samples->eventData(i)->triggers() << ", nRoIs = " << m_samples->eventData(i)->nRoIs() << endmsg;
749 // }
750 ATH_MSG_INFO ( "Non-zero cells = " << n << ", footprint = " << m_samples->footprint() );
751 ATH_MSG_INFO ( "Writing..." );
752
753 if (!m_doStream) {
754 m_samples->writeTrees(m_fileName.c_str());
755/* TFile* f = TFile::Open(m_fileName.c_str(), "RECREATE");
756 msg() << MSG::INFO << "Writing (2)..." << endmsg;
757 f->WriteObjectAny(m_samples, "Container", "LArSamples");
758 msg() << MSG::INFO << "Closing..." << endmsg;
759 f->Close();
760 msg() << MSG::INFO << "Deleting..." << endmsg;
761 delete m_samples;*/
762 msg() << MSG::INFO << "Done!" << endmsg;
763 }
764
765 return StatusCode::SUCCESS;
766}
#define endmsg

◆ initialize()

StatusCode LArShapeDumper::initialize ( )
overridevirtual

Get bad-channel mask (only if jO IgnoreBadChannels is true)

Definition at line 88 of file LArShapeDumper.cxx.

89{
90 ATH_MSG_DEBUG ("in initialize()");
91
92 m_samples = new DataStore();
93
94 std::transform(m_caloType.begin(), m_caloType.end(), m_caloType.begin(), toupper);
95 m_doEM = (m_caloType.find("EM") != std::string::npos);
96 m_doHEC = (m_caloType.find("HEC") != std::string::npos);
97 m_doFCAL = (m_caloType.find("FCAL") != std::string::npos);
98 m_doSC = (m_caloType.find("SC") != std::string::npos);
99
100 ATH_CHECK( m_cablingKey.initialize() );
101 ATH_CHECK( m_BCKey.initialize() );
102 ATH_CHECK( m_BCKeySC.initialize(m_doSC) );
103 ATH_CHECK( m_noiseCDOKey.initialize() );
104 ATH_CHECK( m_adc2mevKey.initialize() );
105 ATH_CHECK( m_pedestalKey.initialize() );
106 ATH_CHECK( m_bcDataKey.initialize() );
107
108 ATH_CHECK( m_digitsKey.initialize() );
109 ATH_CHECK( m_channelsKey.initialize() );
110
111 ATH_CHECK( m_digitsKeySC.initialize(m_doSC) );
112 ATH_CHECK( m_rawscKey.initialize(m_doSC) );
114 ATH_CHECK( m_cablingKeySC.initialize(m_doSC) );
115 ATH_CHECK( m_pedestalKeySC.initialize(m_doSC) );
116
117 ATH_CHECK( detStore()->retrieve(m_onlineHelper, "LArOnlineID") );
118 ATH_CHECK(m_caloMgrKey.initialize());
120 if(m_doSC) ATH_CHECK( detStore()->retrieve(m_onlineHelperSC, "LArOnline_SuperCellID") );
121
123 ATH_CHECK(m_bcMask.buildBitMask(m_problemsToMask,msg()));
124 if(m_doSC) ATH_CHECK(m_bcMaskSC.buildBitMask(m_problemsToMaskSC,msg()));
125
126
127 if (m_doTrigger) {
128 CHECK( m_trigDec.retrieve() );
129 }
130
131 ATH_CHECK( m_dumperTool.retrieve() );
132
133 ATH_CHECK(m_acorrKey.initialize(m_dumperTool->doShape()) );
134
135 std::transform(m_gainSpec.begin(), m_gainSpec.end(), m_gainSpec.begin(), toupper);
136 m_gains[CaloGain::LARHIGHGAIN] = (m_gainSpec.find("HIGH") != std::string::npos);
137 m_gains[CaloGain::LARMEDIUMGAIN] = (m_gainSpec.find("MEDIUM") != std::string::npos);
138 m_gains[CaloGain::LARLOWGAIN] = (m_gainSpec.find("LOW") != std::string::npos);
139
140 //if (m_onlyEmptyBC)
141 //ATH_CHECK(m_bcidTool.retrieve());
142
143 return StatusCode::SUCCESS;
144}
#define CHECK(...)
Evaluate an expression and check for errors.
const ServiceHandle< StoreGateSvc > & detStore() const
Gaudi::Property< std::vector< std::string > > m_problemsToMask
SG::ReadCondHandleKey< LArBadChannelCont > m_BCKeySC
Gaudi::Property< std::vector< std::string > > m_problemsToMaskSC
PublicToolHandle< Trig::TrigDecisionTool > m_trigDec
@ LARMEDIUMGAIN
Definition CaloGain.h:18
@ LARLOWGAIN
Definition CaloGain.h:18
@ LARHIGHGAIN
Definition CaloGain.h:18

◆ inputHandles()

virtual std::vector< Gaudi::DataHandle * > AthCommonDataStore< AthCommonMsg< Gaudi::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 AthCommonAlgorithm< Gaudi::Algorithm >::isClonable ( ) const
inlineoverridevirtualinherited

Specify if the algorithm is clonable.

Only relevant for non-reentrant algorithms. Actual number of clones needs to be set via the "Cardinality" property.

Reimplemented in AFP_DigiTop, AlgB, AlgT, BCM_Digitization, CscDigitBuilder, CscDigitToCscRDO, G4AtlasAlg, G4RunAlg, HGTD_Digitization, HiveAlgBase, InDet::GNNSeedingTrackMaker, InDet::SCT_Clusterization, InDet::SiSPGNNTrackMaker, InDet::SiSPSeededTrackFinder, InDet::SiTrackerSpacePointFinder, ISF::SimKernelMT, ITk::StripDigitization, ITkPixelCablingAlg, ITkStripCablingAlg, LArHitEMapMaker, LArTTL1Maker, LUCID_DigiTop, LVL1::L1TopoSimulation, MergeCalibHits, MergeGenericMuonSimHitColl, MergeHijingPars, MergeMcEventCollection, MergeTrackRecordCollection, MergeTruthJets, MergeTruthParticles, MuonDigitizer, PileUpMTAlg, PixelDigitization, RoIBResultToxAOD, SCT_ByteStreamErrorsTestAlg, SCT_CablingCondAlgFromCoraCool, SCT_CablingCondAlgFromText, SCT_ConditionsParameterTestAlg, SCT_ConditionsSummaryTestAlg, SCT_ConfigurationConditionsTestAlg, SCT_Digitization, SCT_FlaggedConditionTestAlg, SCT_LinkMaskingTestAlg, SCT_MajorityConditionsTestAlg, SCT_ModuleVetoTestAlg, SCT_MonitorConditionsTestAlg, SCT_PrepDataToxAOD, SCT_RawDataToxAOD, SCT_ReadCalibChipDataTestAlg, SCT_ReadCalibDataTestAlg, SCT_RODVetoTestAlg, SCT_SensorsTestAlg, SCT_SiliconConditionsTestAlg, SCT_StripVetoTestAlg, SCT_TdaqEnabledTestAlg, SCT_TestCablingAlg, SCTEventFlagWriter, SCTRawDataProvider, SCTSiLorentzAngleTestAlg, SCTSiPropertiesTestAlg, SGInputLoader, Simulation::BeamEffectsAlg, TileHitVecToCnt, TileMuonFitter, TilePulseForTileMuonReceiver, TileRawChannelMaker, TRTDigitization, and ZDC_DigiTop.

Definition at line 68 of file AthCommonAlgorithm.h.

68 {
69 return true;
70 }

◆ isReEntrant()

virtual bool AthAlgorithm::isReEntrant ( ) const
inlinefinaloverrideprotectedvirtualinherited

Legacy algorithms are not thread-safe.

Definition at line 47 of file AthAlgorithm.h.

47{ return false; }

◆ makeEvent()

int LArShapeDumper::makeEvent ( LArSamples::EventData *& eventData,
int run,
int event,
int lumiBlock,
int bunchXing ) const

Definition at line 769 of file LArShapeDumper.cxx.

772{
773 std::vector<unsigned int> triggerWords;
774 if (m_doTrigger) {
775 const ROIB::RoIBResult* l1Result = nullptr;
776 if (evtStore()->retrieve(l1Result).isFailure() || !l1Result) {
777 ATH_MSG_FATAL ( "Could not retrieve RoIBResult!" );
778 return -1;
779 }
780 const std::vector<ROIB::CTPRoI> tav = l1Result->cTPResult().TAV();
781 for (const ROIB::CTPRoI& word : tav)
782 triggerWords.push_back(word.roIWord());
783
784 for (const std::pair<const TString, unsigned int>& p : m_runData->triggerConfig()) {
785 while (triggerWords.size() <= p.second/32) triggerWords.push_back(0);
786 if (m_trigDec->isPassed(p.first.Data())) {
787 triggerWords[p.second/32] |= (0x1 << (p.second % 32));
788 //msg() << MSG::INFO << "Trigger line " << p.first.Data() << " passed" << endmsg;
789 }
790 }
791 //msg() << MSG::INFO << "Trigger words : ";
792 //for (unsigned int i = 0; i < triggerWords.size(); i++) msg() << MSG::INFO << triggerWords[i] << " ";
793 //msg() << MSG::INFO << endmsg;
794 }
795
796 eventData = new EventData(event, 0, lumiBlock, bunchXing);
797 if (m_runData->run() == 0) m_runData->setRun(run);
798 eventData->setRunData(m_runData.get());
799 eventData->setTriggerData(triggerWords);
800 if (m_doRoIs) {
801 //msg() << MSG::INFO << "Filling RoI list" << endmsg;
802 for (const Trig::ChainGroup* group : m_triggerGroups) {
803 std::vector<Trig::Feature<TrigRoiDescriptor> > roIs = group->features().get<TrigRoiDescriptor>();
804 for (const Trig::Feature<TrigRoiDescriptor>& roI : roIs) {
805 //msg() << MSG::INFO << "Found an roi for chain ";
806 //for (unsigned int i = 0; i < group->getListOfTriggers().size(); i++) cout << group->getListOfTriggers()[i] << " ";
807 //cout << "@ " << roI.cptr()->eta() << ", " << roI.cptr()->phi() << ", TE = "
808 // << roI.te()->getId() << " " << Trig::getTEName(*roI.te()) << " with label " << roI.label() << endmsg;
809 eventData->addRoI(roI.cptr()->eta(), roI.cptr()->phi(), group->getListOfTriggers()[0].c_str(), roI.label().c_str());
810 //msg() << MSG::INFO << "nRoIs so far = " << eventData->nRoIs() << endmsg;
811 }
812 }
813 }
814 return m_samples->addEvent(eventData);
815}
Athena::TPCnvVers::Current TrigRoiDescriptor
void setRunData(const RunData *runData)
Definition EventData.h:75
void setTriggerData(const std::vector< unsigned int > &words)
Definition EventData.cxx:75
void addRoI(float eta, float phi, const char *name="", const char *label="")
Definition EventData.h:73
std::vector< const Trig::ChainGroup * > m_triggerGroups
std::unique_ptr< LArSamples::RunData > m_runData
const std::vector< CTPRoI > TAV() const
get trigger result after veto
const CTPResult & cTPResult() const
Gets the CTP part of the L1 RDO.

◆ msg()

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

Definition at line 24 of file AthCommonMsg.h.

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

◆ msgLvl()

bool AthCommonMsg< Gaudi::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< Gaudi::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< Gaudi::Algorithm > >::renounce ( T & h)
inlineprotectedinherited

Definition at line 380 of file AthCommonDataStore.h.

381 {
382 h.renounce();
384 }
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)

◆ renounceArray()

void AthCommonDataStore< AthCommonMsg< Gaudi::Algorithm > >::renounceArray ( SG::VarHandleKeyArray & handlesArray)
inlineprotectedinherited

remove all handles from I/O resolution

Definition at line 364 of file AthCommonDataStore.h.

364 {
366 }

◆ setFilterPassed()

virtual void AthCommonAlgorithm< Gaudi::Algorithm >::setFilterPassed ( bool state,
const EventContext & ctx ) const
inlinevirtualinherited

Set filter decision:

Reimplemented in AthFilterAlgorithm.

Definition at line 99 of file AthCommonAlgorithm.h.

99 {
101 }
virtual void setFilterPassed(bool state, const EventContext &ctx) const
Set filter decision:

◆ start()

StatusCode LArShapeDumper::start ( )
overridevirtual

Definition at line 147 of file LArShapeDumper.cxx.

148{
149 m_runData = std::make_unique<RunData>(0);
150
151 if (m_doTrigger) {
152 std::vector<std::regex> regexs;
153 regexs.reserve(m_triggerNames.size());
154for (const std::string& name : m_triggerNames) {
155 regexs.push_back(std::regex(name));
156 }
157
158 std::vector<std::string> chains = m_trigDec->getListOfTriggers();
159 std::vector<std::string> myChains;
160 std::cmatch match;
161
162 for (const std::string& chain : chains) {
163 ATH_MSG_INFO ( "Configured chain : " << chain );
164 for (const std::regex& regex : regexs) {
165 if (std::regex_match(chain.c_str(), match, regex)) myChains.push_back(chain);
166 }
167 }
168 for (const std::string& group : m_trigDec->getListOfGroups())
169 ATH_MSG_INFO ( "Configured group : " << group );
170 const Trig::ChainGroup* calibStreamGroup = m_trigDec->getChainGroup("Calibration");
171 if (calibStreamGroup) {
172 std::vector<std::string> chains = calibStreamGroup->getListOfTriggers();
173 ATH_MSG_INFO ( "Chains for Calibration group:" );
174 for (const std::string& chain : chains)
175 ATH_MSG_INFO ( "Calib chain : " << chain );
176 }
177
178 unsigned int idx = 0;
179
180 if (m_doAllLvl1) {
181 const Trig::ChainGroup* group = m_trigDec->getChainGroup("L1_.*");
182 for (const std::string& l1Item : group->getListOfTriggers()) {
183 const TrigConf::TriggerItem* confItem = m_trigDec->ExperimentalAndExpertMethods().getItemConfigurationDetails(l1Item);
184 if (!confItem) {
185 ATH_MSG_WARNING ( "LVL1 item " << l1Item << ", obtained from TrigConfig, cannot be retrieved!" );
186 continue;
187 }
188 int pos = confItem->ctpId();
189 if (pos < 0 || pos >= 256) {
190 ATH_MSG_WARNING ( "LVL1 item " << l1Item << "has out-of-range ctpId " << pos );
191 continue;
192 }
193 m_runData->addBit(l1Item.c_str(), pos);
194 ATH_MSG_INFO ( "Adding LVL1 trigger bit for " << l1Item << " at position " << pos );
195 }
196 idx = 256;
197 }
198
199 for (const std::string& name : myChains) {
200 if (m_trigDec->getListOfTriggers(name).empty()) {
201 ATH_MSG_WARNING ( "Requested trigger name " << name << " is not configured in this run" );
202 continue;
203 }
204 const Trig::ChainGroup* group = m_trigDec->getChainGroup(name);
205 if (!group) {
206 ATH_MSG_WARNING ( "Could not retrieve chain group for trigger " << name );
207 continue;
208 }
209 m_runData->addBit(name.c_str(), idx++);
210 m_triggerGroups.push_back(group);
211 ATH_MSG_INFO ( "Adding trigger bit for " << name << " at position " << idx-1 );
212 }
213 }
214 return StatusCode::SUCCESS;
215}
std::vector< std::string > getListOfTriggers() const
bool match(std::string s1, std::string s2)
match the individual directories of two strings
Definition hcg.cxx:359

◆ stop()

StatusCode LArShapeDumper::stop ( )
overridevirtual

Definition at line 718 of file LArShapeDumper.cxx.

719{
720 m_samples->addRun(m_runData.release());
721 return StatusCode::SUCCESS;
722}

◆ sysExecute()

StatusCode AthCommonAlgorithm< Gaudi::Algorithm >::sysExecute ( const EventContext & ctx)
overridevirtualinherited

Execute an algorithm.

We override this in order to work around an issue with the Algorithm base class storing the event context in a member variable that can cause crashes in MT jobs.

Reimplemented in AthAnalysisAlgorithm.

Definition at line 80 of file AthCommonAlgorithm.cxx.

41{
42 return BaseAlg::sysExecute (ctx);
43}

◆ sysInitialize()

StatusCode AthCommonAlgorithm< Gaudi::Algorithm >::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< Gaudi::Algorithm > >.

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

Definition at line 60 of file AthCommonAlgorithm.cxx.

71 {
73
74 if (sc.isFailure()) {
75 return sc;
76 }
77
78 ServiceHandle<ICondSvc> cs("CondSvc",name());
79 for (auto h : outputHandles()) {
80 if (h->isCondition() && h->mode() == Gaudi::DataHandle::Writer) {
81 // do this inside the loop so we don't create the CondSvc until needed
82 if ( cs.retrieve().isFailure() ) {
83 ATH_MSG_WARNING("no CondSvc found: won't autoreg WriteCondHandles");
85 }
86 if (cs->regHandle(this,*h).isFailure()) {
88 ATH_MSG_ERROR("unable to register WriteCondHandle " << h->fullKey()
89 << " with CondSvc");
90 }
91 }
92 }
93 return sc;
94}
virtual StatusCode sysInitialize() override
virtual std::vector< Gaudi::DataHandle * > outputHandles() const override

◆ sysStart()

virtual StatusCode AthCommonDataStore< AthCommonMsg< Gaudi::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< Gaudi::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) {
313 for (auto k : keys) {
314 k->setOwner(this);
315 }
316 }
317 }

Member Data Documentation

◆ m_acorrKey

SG::ReadCondHandleKey<ILArAutoCorr> LArShapeDumper::m_acorrKey {this,"AutocorrKey","LArAutoCorr","SG Key of LArAutoCorr object"}
private

Definition at line 136 of file LArShapeDumper.h.

136{this,"AutocorrKey","LArAutoCorr","SG Key of LArAutoCorr object"};

◆ m_adc2mevKey

SG::ReadCondHandleKey<LArADC2MeV> LArShapeDumper::m_adc2mevKey {this,"ADC2MeVKey","LArADC2MeV","SG Key of ADC2MeV conditions object"}
private

Definition at line 118 of file LArShapeDumper.h.

118{this,"ADC2MeVKey","LArADC2MeV","SG Key of ADC2MeV conditions object"};

◆ m_bcDataKey

SG::ReadCondHandleKey<BunchCrossingCondData> LArShapeDumper::m_bcDataKey {this, "BunchCrossingCondDataKey", "BunchCrossingData" ,"SG Key of BunchCrossing CDO"}
private

Definition at line 130 of file LArShapeDumper.h.

130{this, "BunchCrossingCondDataKey", "BunchCrossingData" ,"SG Key of BunchCrossing CDO"};

◆ m_BCKey

SG::ReadCondHandleKey<LArBadChannelCont> LArShapeDumper::m_BCKey {this, "BadChanKey", "LArBadChannel", "SG bad channels key"}
private

Definition at line 125 of file LArShapeDumper.h.

125{this, "BadChanKey", "LArBadChannel", "SG bad channels key"};

◆ m_BCKeySC

SG::ReadCondHandleKey<LArBadChannelCont> LArShapeDumper::m_BCKeySC {this, "BadChanKeySC", "LArBadChannelSC", "SG bad channels key"}
private

Definition at line 126 of file LArShapeDumper.h.

126{this, "BadChanKeySC", "LArBadChannelSC", "SG bad channels key"};

◆ m_bcMask

LArBadChannelMask LArShapeDumper::m_bcMask
private

Definition at line 106 of file LArShapeDumper.h.

◆ m_bcMaskSC

LArBadChannelMask LArShapeDumper::m_bcMaskSC
private

Definition at line 108 of file LArShapeDumper.h.

◆ m_cablingKey

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

Definition at line 122 of file LArShapeDumper.h.

122{this,"CablingKey","LArOnOffIdMap","SG Key of LArOnOffIdMapping object"};

◆ m_cablingKeySC

SG::ReadCondHandleKey<LArOnOffIdMapping> LArShapeDumper::m_cablingKeySC {this,"CablingKeySC","LArOnOffIdMapSC","SG Key of LArOnOffIdMapping object for SC"}
private

Definition at line 123 of file LArShapeDumper.h.

123{this,"CablingKeySC","LArOnOffIdMapSC","SG Key of LArOnOffIdMapping object for SC"};

◆ m_caloMgrKey

SG::ReadCondHandleKey<CaloDetDescrManager> LArShapeDumper::m_caloMgrKey
private
Initial value:
{ this
, "CaloDetDescrManager"
, "CaloDetDescrManager"
, "SG Key for CaloDetDescrManager in the Condition Store" }

Definition at line 137 of file LArShapeDumper.h.

137 { this
138 , "CaloDetDescrManager"
139 , "CaloDetDescrManager"
140 , "SG Key for CaloDetDescrManager in the Condition Store" };

◆ m_caloSuperCellMgrKey

SG::ReadCondHandleKey<CaloSuperCellDetDescrManager> LArShapeDumper::m_caloSuperCellMgrKey
private
Initial value:
{this,
"CaloSuperCellDetDescrManager", "CaloSuperCellDetDescrManager",
"SG key of the resulting CaloSuperCellDetDescrManager" }

Definition at line 141 of file LArShapeDumper.h.

141 {this,
142 "CaloSuperCellDetDescrManager", "CaloSuperCellDetDescrManager",
143 "SG key of the resulting CaloSuperCellDetDescrManager" };

◆ m_caloType

std::string LArShapeDumper::m_caloType
private

Definition at line 95 of file LArShapeDumper.h.

◆ m_channelsKey

SG::ReadHandleKey<LArRawChannelContainer> LArShapeDumper::m_channelsKey {this, "ChannelsKey", "LArRawChannels", "key for LArRawChannels"}
private

Definition at line 111 of file LArShapeDumper.h.

111{this, "ChannelsKey", "LArRawChannels", "key for LArRawChannels"};

◆ m_count

unsigned LArShapeDumper::m_count
private

Definition at line 86 of file LArShapeDumper.h.

◆ m_detStore

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

Pointer to StoreGate (detector store by default).

Definition at line 393 of file AthCommonDataStore.h.

◆ m_digitsKey

SG::ReadHandleKey<LArDigitContainer> LArShapeDumper::m_digitsKey {this, "DigitsKey", "FREE", "key for LArDigitContainer"}
private

Definition at line 110 of file LArShapeDumper.h.

110{this, "DigitsKey", "FREE", "key for LArDigitContainer"};

◆ m_digitsKeySC

SG::ReadHandleKey<LArDigitContainer> LArShapeDumper::m_digitsKeySC {this, "DigitsKeySC", "SC_ADC_BAS", "key for LArDigitContainer for SC"}
private

Definition at line 113 of file LArShapeDumper.h.

113{this, "DigitsKeySC", "SC_ADC_BAS", "key for LArDigitContainer for SC"};

◆ m_doAllEvents

bool LArShapeDumper::m_doAllEvents
private

Definition at line 148 of file LArShapeDumper.h.

◆ m_doAllLvl1

bool LArShapeDumper::m_doAllLvl1
private

Definition at line 148 of file LArShapeDumper.h.

◆ m_doEM

bool LArShapeDumper::m_doEM
private

Definition at line 149 of file LArShapeDumper.h.

◆ m_doFCAL

bool LArShapeDumper::m_doFCAL
private

Definition at line 149 of file LArShapeDumper.h.

◆ m_doHEC

bool LArShapeDumper::m_doHEC
private

Definition at line 149 of file LArShapeDumper.h.

◆ m_doOFCIter

bool LArShapeDumper::m_doOFCIter
private

Definition at line 147 of file LArShapeDumper.h.

◆ m_doRoIs

bool LArShapeDumper::m_doRoIs
private

Definition at line 148 of file LArShapeDumper.h.

◆ m_doSC

bool LArShapeDumper::m_doSC
private

Definition at line 149 of file LArShapeDumper.h.

◆ m_doStream

bool LArShapeDumper::m_doStream
private

Definition at line 147 of file LArShapeDumper.h.

◆ m_doTrigger

bool LArShapeDumper::m_doTrigger
private

Definition at line 147 of file LArShapeDumper.h.

◆ m_dumpChannelInfos

bool LArShapeDumper::m_dumpChannelInfos
private

Definition at line 148 of file LArShapeDumper.h.

◆ m_dumpDisc

bool LArShapeDumper::m_dumpDisc
private

Definition at line 100 of file LArShapeDumper.h.

◆ m_dumperTool

ToolHandle<ILArShapeDumperTool> LArShapeDumper::m_dumperTool {this,"LArShapeDumperTool","LArShapeDumperTool"}
private

Definition at line 103 of file LArShapeDumper.h.

103{this,"LArShapeDumperTool","LArShapeDumperTool"};

◆ m_dumperToolSC

ToolHandle<ILArShapeDumperTool> LArShapeDumper::m_dumperToolSC {this,"LArShapeDumperToolSC","LArShapeDumperToolSC"}
private

Definition at line 104 of file LArShapeDumper.h.

104{this,"LArShapeDumperToolSC","LArShapeDumperToolSC"};

◆ m_energyCut

double LArShapeDumper::m_energyCut
private

Definition at line 96 of file LArShapeDumper.h.

◆ m_energyCutSC

double LArShapeDumper::m_energyCutSC
private

Definition at line 97 of file LArShapeDumper.h.

◆ m_evtStore

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

Pointer to StoreGate (event store by default).

Definition at line 390 of file AthCommonDataStore.h.

◆ m_extendedExtraObjects

DataObjIDColl AthCommonAlgorithm< Gaudi::Algorithm >::m_extendedExtraObjects
privateinherited

Extra output dependency collection, extended by AthAlgorithmDHUpdate to add symlinks.

Empty if no symlinks were found.

Definition at line 108 of file AthCommonAlgorithm.h.

◆ m_fileName

std::string LArShapeDumper::m_fileName
private

Definition at line 83 of file LArShapeDumper.h.

◆ m_gains

bool LArShapeDumper::m_gains[CaloGain::LARNGAIN] {}
private

Definition at line 150 of file LArShapeDumper.h.

150{};

◆ m_gainSpec

std::string LArShapeDumper::m_gainSpec
private

Definition at line 99 of file LArShapeDumper.h.

◆ m_maxChannels

unsigned LArShapeDumper::m_maxChannels
private

Definition at line 87 of file LArShapeDumper.h.

◆ m_minADCMax

int LArShapeDumper::m_minADCMax
private

Definition at line 98 of file LArShapeDumper.h.

◆ m_minADCMaxSC

int LArShapeDumper::m_minADCMaxSC
private

Definition at line 98 of file LArShapeDumper.h.

◆ m_nLArError

unsigned LArShapeDumper::m_nLArError
private

Definition at line 90 of file LArShapeDumper.h.

◆ m_nNoDigits

unsigned LArShapeDumper::m_nNoDigits
private

Definition at line 91 of file LArShapeDumper.h.

◆ m_nNoDigitsSC

unsigned LArShapeDumper::m_nNoDigitsSC
private

Definition at line 92 of file LArShapeDumper.h.

◆ m_noiseCDOKey

SG::ReadCondHandleKey<CaloNoise> LArShapeDumper::m_noiseCDOKey {this,"CaloNoiseKey","totalNoise","SG Key of CaloNoise data object"}
private

Definition at line 128 of file LArShapeDumper.h.

128{this,"CaloNoiseKey","totalNoise","SG Key of CaloNoise data object"};

◆ m_noiseSignifCut

double LArShapeDumper::m_noiseSignifCut
private

Definition at line 96 of file LArShapeDumper.h.

◆ m_nPrescaledAway

unsigned LArShapeDumper::m_nPrescaledAway
private

Definition at line 89 of file LArShapeDumper.h.

◆ m_nWrongBunchGroup

unsigned LArShapeDumper::m_nWrongBunchGroup
private

Definition at line 88 of file LArShapeDumper.h.

◆ m_onlineHelper

const LArOnlineID* LArShapeDumper::m_onlineHelper
private

Definition at line 144 of file LArShapeDumper.h.

◆ m_onlineHelperSC

const LArOnline_SuperCellID* LArShapeDumper::m_onlineHelperSC
private

Definition at line 145 of file LArShapeDumper.h.

◆ m_onlyEmptyBC

bool LArShapeDumper::m_onlyEmptyBC
private

Definition at line 152 of file LArShapeDumper.h.

◆ m_pedestalKey

SG::ReadCondHandleKey<ILArPedestal> LArShapeDumper::m_pedestalKey {this,"PedestalKey","LArPedestal","SG Key of LArPedestal object"}
private

Definition at line 133 of file LArShapeDumper.h.

133{this,"PedestalKey","LArPedestal","SG Key of LArPedestal object"};

◆ m_pedestalKeySC

SG::ReadCondHandleKey<ILArPedestal> LArShapeDumper::m_pedestalKeySC {this,"PedestalKeySC","LArPedestalSC","SG Key of LArPedestal object"}
private

Definition at line 134 of file LArShapeDumper.h.

134{this,"PedestalKeySC","LArPedestalSC","SG Key of LArPedestal object"};

◆ m_prescale

int LArShapeDumper::m_prescale
private

Definition at line 85 of file LArShapeDumper.h.

◆ m_problemsToMask

Gaudi::Property<std::vector<std::string> > LArShapeDumper::m_problemsToMask {this,"ProblemsToMask",{}, "Bad-Channel categories to patch"}
private

Definition at line 107 of file LArShapeDumper.h.

107{this,"ProblemsToMask",{}, "Bad-Channel categories to patch"};

◆ m_problemsToMaskSC

Gaudi::Property<std::vector<std::string> > LArShapeDumper::m_problemsToMaskSC {this,"ProblemsToMaskSC",{}, "Bad-Channel categories to mask"}
private

Definition at line 109 of file LArShapeDumper.h.

109{this,"ProblemsToMaskSC",{}, "Bad-Channel categories to mask"};

◆ m_random

TRandom LArShapeDumper::m_random
private

Definition at line 157 of file LArShapeDumper.h.

◆ m_rawRecomputedscKey

SG::ReadHandleKey<LArRawSCContainer> LArShapeDumper::m_rawRecomputedscKey {this, "RecomputedSCKey", "SC_ET_RECO", "key for recomputed LArRawSCContainer"}
private

Definition at line 115 of file LArShapeDumper.h.

115{this, "RecomputedSCKey", "SC_ET_RECO", "key for recomputed LArRawSCContainer"};

◆ m_rawscKey

SG::ReadHandleKey<LArRawSCContainer> LArShapeDumper::m_rawscKey {this, "RawSCKey", "SC_ET_ID", "key for LArRawSCContainer"}
private

Definition at line 114 of file LArShapeDumper.h.

114{this, "RawSCKey", "SC_ET_ID", "key for LArRawSCContainer"};

◆ m_runData

std::unique_ptr<LArSamples::RunData> LArShapeDumper::m_runData
private

Definition at line 155 of file LArShapeDumper.h.

◆ m_samples

LArSamples::DataStore* LArShapeDumper::m_samples
private

Definition at line 154 of file LArShapeDumper.h.

◆ m_trigDec

PublicToolHandle< Trig::TrigDecisionTool > LArShapeDumper::m_trigDec {this, "TrigDecisionTool", "", "Handle to the TrigDecisionTool"}
private

Definition at line 120 of file LArShapeDumper.h.

120{this, "TrigDecisionTool", "", "Handle to the TrigDecisionTool"};

◆ m_triggerGroups

std::vector<const Trig::ChainGroup*> LArShapeDumper::m_triggerGroups
private

Definition at line 156 of file LArShapeDumper.h.

◆ m_triggerNames

std::vector<std::string> LArShapeDumper::m_triggerNames
private

Definition at line 101 of file LArShapeDumper.h.

◆ m_varHandleArraysDeclared

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

Definition at line 399 of file AthCommonDataStore.h.

◆ m_vhka

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

Definition at line 398 of file AthCommonDataStore.h.


The documentation for this class was generated from the following files: