ATLAS Offline Software
Public Member Functions | Protected Member Functions | Private Types | Private Member Functions | Private Attributes | List of all members
ZDC::ZdcLEDAnalysisTool Class Referenceabstract

#include <ZdcLEDAnalysisTool.h>

Inheritance diagram for ZDC::ZdcLEDAnalysisTool:
Collaboration diagram for ZDC::ZdcLEDAnalysisTool:

Public Member Functions

 ZdcLEDAnalysisTool (const std::string &name)
 
virtual ~ZdcLEDAnalysisTool () override
 
StatusCode initialize () override
 Dummy implementation of the initialisation function. More...
 
StatusCode recoZdcModules (const xAOD::ZdcModuleContainer &moduleContainer, const xAOD::ZdcModuleContainer &moduleSumContainer) override
 
StatusCode reprocessZdc () override
 
ZDCMsg::MessageFunctionPtr MakeMessageFunction ()
 
virtual void print () const =0
 Print the state of the tool. More...
 
virtual void print () const
 Print the state of the tool. 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 sysInitialize () override
 Perform system initialization for an algorithm. More...
 
virtual StatusCode sysStart () override
 Handle START transition. More...
 
virtual std::vector< Gaudi::DataHandle * > inputHandles () const override
 Return this algorithm's input handles. More...
 
virtual std::vector< Gaudi::DataHandle * > outputHandles () const override
 Return this algorithm's output handles. More...
 
Gaudi::Details::PropertyBase & declareProperty (Gaudi::Property< T > &t)
 
Gaudi::Details::PropertyBase * declareProperty (const std::string &name, SG::VarHandleKey &hndl, const std::string &doc, const SG::VarHandleKeyType &)
 Declare a new Gaudi property. More...
 
Gaudi::Details::PropertyBase * declareProperty (const std::string &name, SG::VarHandleBase &hndl, const std::string &doc, const SG::VarHandleType &)
 Declare a new Gaudi property. More...
 
Gaudi::Details::PropertyBase * declareProperty (const std::string &name, SG::VarHandleKeyArray &hndArr, const std::string &doc, const SG::VarHandleKeyArrayType &)
 
Gaudi::Details::PropertyBase * declareProperty (const std::string &name, T &property, const std::string &doc, const SG::NotHandleType &)
 Declare a new Gaudi property. More...
 
Gaudi::Details::PropertyBase * declareProperty (const std::string &name, T &property, const std::string &doc="none")
 Declare a new Gaudi property. More...
 
void updateVHKA (Gaudi::Details::PropertyBase &)
 
MsgStream & msg () const
 
MsgStream & msg (const MSG::Level lvl) const
 
bool msgLvl (const MSG::Level lvl) const
 

Protected Member Functions

void renounceArray (SG::VarHandleKeyArray &handlesArray)
 remove all handles from I/O resolution More...
 
std::enable_if_t< std::is_void_v< std::result_of_t< decltype(&T::renounce)(T)> > &&!std::is_base_of_v< SG::VarHandleKeyArray, T > &&std::is_base_of_v< Gaudi::DataHandle, T >, void > renounce (T &h)
 
void extraDeps_update_handler (Gaudi::Details::PropertyBase &ExtraDeps)
 Add StoreName to extra input/output deps as needed. More...
 

Private Types

typedef ServiceHandle< StoreGateSvcStoreGateSvc_t
 

Private Member Functions

void initialize_ppPbPb2023 ()
 
void initialize_ppALFA2023 ()
 
void initialize_zdcStandalone ()
 
ZDCLEDModuleResults processZDCModule (const xAOD::ZdcModule &module)
 
ZDCLEDModuleResults processRPDModule (const xAOD::ZdcModule &module)
 
ZDCLEDModuleResults processModuleData (const std::vector< unsigned short > &data, unsigned int startSample, unsigned int endSample, float gainScale)
 
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

bool m_init {false}
 
std::string m_name
 
Gaudi::Property< std::string > m_configuration {this, "Configuration", "ppPbPb2023", "Which config files to use"}
 
bool m_writeAux {false}
 
Gaudi::Property< std::string > m_auxSuffix {this, "AuxSuffix", "", "Append this tag onto end of AuxData"}
 
Gaudi::Property< bool > m_doRPD {this, "doRPD", true, "Process RPD Data?"}
 
Gaudi::Property< bool > m_doZDC {this, "doZDC", true, "Process ZDC Data?"}
 
std::vector< unsigned int > m_LEDCalreqIdx
 
std::vector< unsigned int > m_LEDBCID
 
const std::vector< std::string > m_LEDNames = {"Blue1", "Green", "Blue2"}
 
const std::vector< std::string > m_calreqNames = {"CalReq1", "CalReq2", "CalReq3"}
 
unsigned int m_HGADCOverflow {4095}
 
unsigned int m_numSamples {24}
 
unsigned int m_preSample {0}
 
float m_deltaTSample {3.125}
 
unsigned int m_sampleAnaStartZDC {0}
 
unsigned int m_sampleAnaEndZDC {23}
 
unsigned int m_sampleAnaStartRPD {0}
 
unsigned int m_sampleAnaEndRPD {23}
 
float m_ZdcLowGainScale {10}
 
Gaudi::Property< std::string > m_zdcModuleContainerName {this, "ZdcModuleContainerName", "ZdcModules", "Location of ZDC processed data"}
 
const xAOD::ZdcModuleContainerm_zdcModules {nullptr}
 
Gaudi::Property< std::string > m_zdcSumContainerName {this, "ZdcSumContainerName", "ZdcSums", "Location of ZDC processed sums"}
 
const xAOD::ZdcModuleContainerm_zdcSums {nullptr}
 
SG::ReadHandleKey< xAOD::EventInfom_eventInfoKey
 
SG::ReadDecorHandleKey< xAOD::ZdcModuleContainerm_eventTypeKey
 
SG::ReadDecorHandleKey< xAOD::ZdcModuleContainerm_robBCIDKey
 
SG::ReadDecorHandleKey< xAOD::ZdcModuleContainerm_DAQModeKey
 
SG::WriteDecorHandleKey< xAOD::ZdcModuleContainerm_ZdcLEDType {this, "ZdcLEDType", "", "ZDC LED Type (0-Blue1, 1-Green, 2-Blue2}"}
 
SG::WriteDecorHandleKey< xAOD::ZdcModuleContainerm_ZdcLEDPresampleADC {this, "ZdcLEDPresampleADC", "", "ZDC LED presample"}
 
SG::WriteDecorHandleKey< xAOD::ZdcModuleContainerm_ZdcLEDADCSum {this, "ZdcLEDADCSum", "", "ZDC LED pulse FADC sum"}
 
SG::WriteDecorHandleKey< xAOD::ZdcModuleContainerm_ZdcLEDMaxADC {this, "ZdcLEDMaxADC", "", "ZDC LED pulse max FADC value"}
 
SG::WriteDecorHandleKey< xAOD::ZdcModuleContainerm_ZdcLEDMaxSample {this, "ZdcLEDMaxSample", "", "ZDC LED max FADC sample"}
 
SG::WriteDecorHandleKey< xAOD::ZdcModuleContainerm_ZdcLEDAvgTime {this, "ZdcLEDAvgTime", "", "ZDC LED average time"}
 
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 59 of file ZdcLEDAnalysisTool.h.

Member Typedef Documentation

◆ StoreGateSvc_t

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

Definition at line 388 of file AthCommonDataStore.h.

Constructor & Destructor Documentation

◆ ZdcLEDAnalysisTool()

ZDC::ZdcLEDAnalysisTool::ZdcLEDAnalysisTool ( const std::string &  name)

Definition at line 20 of file ZdcLEDAnalysisTool.cxx.

20  :
22  m_name(name)
23 {
24 #ifndef XAOD_STANDALONE
25  declareInterface<IZdcAnalysisTool>(this);
26 #endif
27 
28 }

◆ ~ZdcLEDAnalysisTool()

ZDC::ZdcLEDAnalysisTool::~ZdcLEDAnalysisTool ( )
overridevirtual

Definition at line 30 of file ZdcLEDAnalysisTool.cxx.

31 {
32  ATH_MSG_DEBUG("Deleting ZdcLEDAnalysisTool named " << m_name);
33 }

Member Function Documentation

◆ declareGaudiProperty() [1/4]

Gaudi::Details::PropertyBase& AthCommonDataStore< AthCommonMsg< AlgTool > >::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< AlgTool > >::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< AlgTool > >::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< AlgTool > >::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< AlgTool > >::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< AlgTool > >::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< AlgTool > >::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< AlgTool > >::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< AlgTool > >::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< AlgTool > >::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< AlgTool > >::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< AlgTool > >::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< AlgTool > >::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; }

◆ extraDeps_update_handler()

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

◆ getKey()

SG::sgkey_t asg::AsgTool::getKey ( const void *  ptr) const
inherited

Get the (hashed) key of an object that is in the event store.

This is a bit of a special one. StoreGateSvc and xAOD::TEvent both provide ways for getting the SG::sgkey_t key for an object that is in the store, based on a bare pointer. But they provide different interfaces for doing so.

In order to allow tools to efficiently perform this operation, they can use this helper function.

See also
asg::AsgTool::getName
Parameters
ptrThe bare pointer to the object that the event store should know about
Returns
The hashed key of the object in the store. If not found, an invalid (zero) key.

Definition at line 119 of file AsgTool.cxx.

119  {
120 
121 #ifdef XAOD_STANDALONE
122  // In case we use @c xAOD::TEvent, we have a direct function call
123  // for this.
124  return evtStore()->event()->getKey( ptr );
125 #else
126  const SG::DataProxy* proxy = evtStore()->proxy( ptr );
127  return ( proxy == nullptr ? 0 : proxy->sgkey() );
128 #endif // XAOD_STANDALONE
129  }

◆ getName()

const std::string & asg::AsgTool::getName ( const void *  ptr) const
inherited

Get the name of an object that is / should be in the event store.

This is a bit of a special one. StoreGateSvc and xAOD::TEvent both provide ways for getting the std::string name for an object that is in the store, based on a bare pointer. But they provide different interfaces for doing so.

In order to allow tools to efficiently perform this operation, they can use this helper function.

See also
asg::AsgTool::getKey
Parameters
ptrThe bare pointer to the object that the event store should know about
Returns
The string name of the object in the store. If not found, an empty string.

Definition at line 106 of file AsgTool.cxx.

106  {
107 
108 #ifdef XAOD_STANDALONE
109  // In case we use @c xAOD::TEvent, we have a direct function call
110  // for this.
111  return evtStore()->event()->getName( ptr );
112 #else
113  const SG::DataProxy* proxy = evtStore()->proxy( ptr );
114  static const std::string dummy = "";
115  return ( proxy == nullptr ? dummy : proxy->name() );
116 #endif // XAOD_STANDALONE
117  }

◆ getProperty()

template<class T >
const T* asg::AsgTool::getProperty ( const std::string &  name) const
inherited

Get one of the tool's properties.

◆ initialize()

StatusCode ZDC::ZdcLEDAnalysisTool::initialize ( )
overridevirtual

Dummy implementation of the initialisation function.

It's here to allow the dual-use tools to skip defining an initialisation function. Since many are doing so...

Reimplemented from asg::AsgTool.

Definition at line 35 of file ZdcLEDAnalysisTool.cxx.

36 {
37  // Use configuration to direct initialization.
38  //
39  if (m_configuration == "ppPbPb2023") {
41  }
42  else if (m_configuration == "ppALFA2023") {
44  }
45  else if (m_configuration == "zdcStandalone") {
47  }
48  else {
49  ATH_MSG_ERROR("Unknown configuration: " << m_configuration);
50  return StatusCode::FAILURE;
51  }
52 
53  // Check for valid configuration
54  //
56  ATH_MSG_ERROR("Invalid initialization of tool for configuration " << m_configuration);
57  return StatusCode::FAILURE;
58  }
59 
60  ATH_MSG_INFO("doZDC: " << (m_doZDC ? "true" : "false"));
61  ATH_MSG_INFO("doRPD: " << (m_doRPD ? "true" : "false"));
62  ATH_MSG_INFO("Configuration: " << m_configuration);
63  ATH_MSG_DEBUG("AuxSuffix: " << m_auxSuffix);
64  ATH_MSG_DEBUG("NumSamples: " << m_numSamples);
65  ATH_MSG_DEBUG("Presample: " << m_preSample);
66  ATH_MSG_DEBUG("DeltaTSample: " << m_deltaTSample);
67 
68  if (m_writeAux && m_auxSuffix != "") {
69  ATH_MSG_DEBUG("suffix string = " << m_auxSuffix);
70  }
71 
72  std::ostringstream BCIDList;
73  BCIDList << "LED BCIDs:";
74 
75  for (unsigned int idxLED = 0; idxLED < ZdcEventInfo::NumLEDs; idxLED++) {
76  BCIDList << m_LEDNames[idxLED] << " - BCID " << m_LEDBCID[idxLED];
77  if (idxLED < ZdcEventInfo::NumLEDs - 1) BCIDList << ", ";
78  }
79 
80  ATH_MSG_DEBUG(BCIDList.str());
81 
82 
83  // If an aux suffix is provided, prepend it with "_" so we don't have to do so at each use
84  //
85  if (m_auxSuffix != "") m_auxSuffix = "_" + m_auxSuffix;
86 
87  // initialize eventInfo access
88  //
90 
91  // initialize keys for reading ZDC event-level aux decor information
92  //
93  m_eventTypeKey = m_zdcSumContainerName + ".EventType";
94  ATH_CHECK(m_eventTypeKey.initialize());
95 
96  m_DAQModeKey = m_zdcSumContainerName + ".DAQMode";
97  ATH_CHECK(m_DAQModeKey.initialize());
98 
99  m_robBCIDKey = m_zdcSumContainerName + ".rodBCID";
100  ATH_CHECK(m_robBCIDKey.initialize());
101 
102  // Initialize writeDecor handles
103  //
105  ATH_CHECK( m_ZdcLEDPresampleADC.initialize());
106 
108  ATH_CHECK( m_ZdcLEDADCSum.initialize());
109 
111  ATH_CHECK( m_ZdcLEDMaxADC.initialize());
112 
114  ATH_CHECK( m_ZdcLEDMaxSample.initialize());
115 
117  ATH_CHECK( m_ZdcLEDAvgTime.initialize());
118 
119  // The LED type gets writting to the module 0 sum container
120  //
122  ATH_CHECK( m_ZdcLEDType.initialize());
123 
124  m_init = true;
125  return StatusCode::SUCCESS;
126 }

◆ initialize_ppALFA2023()

void ZDC::ZdcLEDAnalysisTool::initialize_ppALFA2023 ( )
private

Definition at line 150 of file ZdcLEDAnalysisTool.cxx.

151 {
152  // Use the defaults for now except for sampleAnaStart values and the BCIDs
155 
156  m_LEDBCID = {3479, 3482, 3485};
157  m_LEDCalreqIdx = {0 ,1 ,2};
158 }

◆ initialize_ppPbPb2023()

void ZDC::ZdcLEDAnalysisTool::initialize_ppPbPb2023 ( )
private

Definition at line 139 of file ZdcLEDAnalysisTool.cxx.

140 {
141  // Use the defaults for now except for sampleAnaStart values and the BCIDs
142  //
145 
146  m_LEDBCID = {3476, 3479, 3482};
147  m_LEDCalreqIdx = {0, 1, 2};
148 }

◆ initialize_zdcStandalone()

void ZDC::ZdcLEDAnalysisTool::initialize_zdcStandalone ( )
private

Definition at line 128 of file ZdcLEDAnalysisTool.cxx.

129 {
130  // Use the defaults for now except for sampleAnaStart values and the BCIDs
131  //
134 
135  m_LEDBCID = {1152, 1154, 1156};
136  m_LEDCalreqIdx = {2, 1, 0};
137 }

◆ inputHandles()

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

◆ MakeMessageFunction()

ZDCMsg::MessageFunctionPtr ZDC::ZdcLEDAnalysisTool::MakeMessageFunction ( )
inline

Definition at line 74 of file ZdcLEDAnalysisTool.h.

75  {
76  std::function<bool(int, std::string)> msgFunction = [this](int messageZdcLevel, const std::string& message)-> bool
77  {
78  MSG::Level messageAthenaLevel = static_cast<MSG::Level>(messageZdcLevel);
79  bool passesStreamOutputLevel = messageAthenaLevel >= this->msg().level();
80  if (passesStreamOutputLevel) {
81  this->msg(messageAthenaLevel) << message << endmsg;
82  }
83  return passesStreamOutputLevel;
84  };
85 
86  return ZDCMsg::MessageFunctionPtr(new ZDCMsg::MessageFunction(msgFunction));
87  }

◆ msg() [1/2]

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

Definition at line 24 of file AthCommonMsg.h.

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

◆ msg() [2/2]

MsgStream& AthCommonMsg< AlgTool >::msg ( const MSG::Level  lvl) const
inlineinherited

Definition at line 27 of file AthCommonMsg.h.

27  {
28  return this->msgStream(lvl);
29  }

◆ msg_level_name()

const std::string & asg::AsgTool::msg_level_name ( ) const
inherited

A deprecated function for getting the message level's name.

Instead of using this, weirdly named function, user code should get the string name of the current minimum message level (in case they really need it...), with:

MSG::name( msg().level() )

This function's name doesn't follow the ATLAS coding rules, and as such will be removed in the not too distant future.

Returns
The string name of the current minimum message level that's printed

Definition at line 101 of file AsgTool.cxx.

101  {
102 
103  return MSG::name( msg().level() );
104  }

◆ msgLvl()

bool AthCommonMsg< AlgTool >::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< AlgTool > >::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.

◆ print() [1/2]

void asg::AsgTool::print ( ) const
virtualinherited

◆ print() [2/2]

virtual void asg::IAsgTool::print ( ) const
pure virtualinherited

◆ processModuleData()

ZDCLEDModuleResults ZDC::ZdcLEDAnalysisTool::processModuleData ( const std::vector< unsigned short > &  data,
unsigned int  startSample,
unsigned int  endSample,
float  gainScale 
)
private

Definition at line 353 of file ZdcLEDAnalysisTool.cxx.

355 {
356 
357  int ADCSum = 0;
358  int maxADCsub = -999;
359  unsigned int maxSample = 0;
360  float avgTime = 0.f;
361 
362  if (startSample > m_numSamples || endSample > m_numSamples) {
363  ATH_MSG_ERROR("Start or end sample number greater than number of samples");
364  return ZDCLEDModuleResults();
365  }
366 
367  int preFADC = data[m_preSample];
368 
369  for (unsigned int sample = startSample; sample <= endSample; sample++) {
370  int FADCsub = data[sample] - preFADC;
371  float time = (sample + 0.5f)*m_deltaTSample;
372  ADCSum += FADCsub;
373  if (FADCsub > maxADCsub) {
374  maxADCsub = FADCsub;
375  maxSample = sample;
376  }
377 
378  avgTime += time*FADCsub;
379  }
380  if (ADCSum!=0){
381  avgTime /= ADCSum;
382  } else {
383  avgTime = 0.f; //used as default in the ZDCLEDModuleResults c'tor
384  }
385 
386  return ZDCLEDModuleResults(preFADC, ADCSum*gainScale, maxADCsub*gainScale, maxSample, avgTime);
387 }

◆ processRPDModule()

ZDCLEDModuleResults ZDC::ZdcLEDAnalysisTool::processRPDModule ( const xAOD::ZdcModule module)
private

Definition at line 346 of file ZdcLEDAnalysisTool.cxx.

347 {
348  ATH_MSG_DEBUG("Processing RPD side, channel = " << module.zdcSide() << ", " << module.zdcChannel());
349  static const SG::ConstAccessor<std::vector<uint16_t> > g0dataAcc ("g0data");
351 }

◆ processZDCModule()

ZDCLEDModuleResults ZDC::ZdcLEDAnalysisTool::processZDCModule ( const xAOD::ZdcModule module)
private

Definition at line 323 of file ZdcLEDAnalysisTool.cxx.

324 {
325  ATH_MSG_DEBUG("Processing ZDC side, channel = " << module.zdcSide() << ", " << module.zdcModule());
326  bool doLG = false;
327 
328  static const SG::ConstAccessor<std::vector<uint16_t> > g1dataAcc ("g1data");
329  static const SG::ConstAccessor<std::vector<uint16_t> > g0dataAcc ("g0data");
330  std::vector<uint16_t> HGSamples = g1dataAcc (module);
331  std::vector<uint16_t> LGSamples = g0dataAcc (module);
332 
333  std::vector<uint16_t>::const_iterator maxIter = std::max_element(HGSamples.begin(), HGSamples.end());
334  if (maxIter != HGSamples.end()) {
335  if (*maxIter > m_HGADCOverflow) doLG = true;
336  }
337 
338  if (doLG) {
340  }
341  else {
343  }
344 }

◆ recoZdcModules()

StatusCode ZDC::ZdcLEDAnalysisTool::recoZdcModules ( const xAOD::ZdcModuleContainer moduleContainer,
const xAOD::ZdcModuleContainer moduleSumContainer 
)
overridevirtual

Implements ZDC::IZdcAnalysisTool.

Definition at line 160 of file ZdcLEDAnalysisTool.cxx.

162 {
163  if (!m_init) {
164  ATH_MSG_WARNING("Tool not initialized!");
165  return StatusCode::FAILURE;
166  }
167 
168  if (moduleContainer.size()==0) return StatusCode::SUCCESS; // if no modules, do nothing
169 
171  ATH_CHECK(eventInfo.isValid());
172 
175 
176  // Loop over the sum container to find event-level info (side == 0)
177  //
178  bool haveZdcEventInfo = false;
179  unsigned int eventType = ZdcEventInfo::ZdcEventUnknown;
180  unsigned int bcid = eventInfo->bcid();
181  unsigned int DAQMode = ZdcEventInfo::DAQModeUndef;
182 
183  const xAOD::ZdcModule* moduleSumEventInfo_ptr = 0;
184 
185  for (auto modSum : moduleSumContainer) {
186  //
187  // Module sum object with side == 0 contains event-level information
188  //
189  if (modSum->zdcSide() == 0) {
190  //
191  // Add the event type and bcid as aux decors
192  //
193  ATH_MSG_DEBUG("Found global sum");
194  eventType = eventTypeHandle(*modSum);
195  DAQMode = DAQModeHandle(*modSum);
196  haveZdcEventInfo = true;
197  moduleSumEventInfo_ptr = modSum;
198  }
199  }
200  if (!haveZdcEventInfo) {
201  ATH_MSG_ERROR("Zdc event data not available (moduleSum with side = 0)");
202  return StatusCode::FAILURE;
203  }
204 
205  //
206  // only do something on LED calibration events
207  //
208  if (eventType != ZdcEventInfo::ZdcEventLED) return StatusCode::SUCCESS;
209 
210  // In standalone mode, we have to read the BCID from the rob header
211  //
214  if (!robBCIDHandle.isValid()) return StatusCode::FAILURE;
215 
216  const std::vector<uint16_t>& robBCIDvec = robBCIDHandle(*moduleSumEventInfo_ptr);
217  if (robBCIDHandle->size() == 0) return StatusCode::FAILURE;
218 
219  unsigned int checkBCID = robBCIDvec[0];
220  for (unsigned int bcid : robBCIDvec) {
221  if (bcid != checkBCID) {
222  ATH_MSG_ERROR("Inconsistent BCIDs in rob header, cannot continue in standalone mode");
223  return StatusCode::FAILURE;
224  }
225  }
226 
227  bcid = checkBCID;
228  }
229 
230  // Determine the LED type
231  //
232  unsigned int evtLEDType = ZdcEventInfo::LEDNone;
233 
234  for (unsigned int idxLED = 0; idxLED < ZdcEventInfo::NumLEDs; idxLED++) {
235  //
236  // Does the BCID match one of those associated with the LEDs?
237  //
238  if (m_LEDBCID[idxLED] == bcid) {
240  //
241  // Also check the calreq trigger (to be implemented)
242  //
243  if (false) continue;
244  }
245 
246  evtLEDType = idxLED;
247  break;
248  }
249  }
250 
251  if (evtLEDType == ZdcEventInfo::LEDNone) {
252  //
253  // Thie BCID does not appear to be associated with one of the LEDs, print warning and quit processing
254  //
255  ATH_MSG_WARNING("Unexpected BCID found in data: bcid = " << bcid << m_configuration);
256  return StatusCode::SUCCESS;
257  }
258  else {
259  ATH_MSG_DEBUG("Event with BCID = " << bcid << " has LED type " << evtLEDType);
260  }
261 
262  // We are currently calculating the presample as an unsigned it, but there is another "presample"
263  // from ZdcAnalysisTool which for good reasons is float. So we have to match the type.
264  //
270 
272 
273  ATH_MSG_DEBUG("Starting event processing for LED " << m_LEDNames[evtLEDType]);
274 
275  for (const auto zdcModule : moduleContainer)
276  {
277  ZDCLEDModuleResults results;
278  if (zdcModule->zdcType() == 0) {
279  results = processZDCModule(*zdcModule);
280  }
281  else if (zdcModule->zdcType() == 1 && zdcModule->zdcModule() == 4) {
282  results = processRPDModule(*zdcModule);
283  }
284 
285  ATH_MSG_DEBUG("Writing aux decors to module with side, module, channel = " << zdcModule->zdcSide() << ", " << zdcModule->zdcModule()
286  << ", " << zdcModule->zdcChannel());
287 
288  moduleLEDPresampleADCHandle(*zdcModule) = std::floor(results.getPresampleADC() + 1.0e-6);
289  moduleLEDADCSumHandle(*zdcModule) = results.getADCSum();
290  moduleLEDMaxADCHandle(*zdcModule) = results.getMaxADC();
291  moduleLEDMaxSampleHandle(*zdcModule) = results.getMaxSample();
292  moduleLEDAvgTimeHandle(*zdcModule) = results.getAvgTime();
293  }
294 
295  // Write the LED type to the moduleSum container keep event-level data
296  //
297  LEDTypeHandle(*moduleSumEventInfo_ptr) = evtLEDType;
298 
299  ATH_MSG_DEBUG("Finishing event processing");
300 
301 
302  return StatusCode::SUCCESS;
303 }

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

◆ reprocessZdc()

StatusCode ZDC::ZdcLEDAnalysisTool::reprocessZdc ( )
overridevirtual

Implements ZDC::IZdcAnalysisTool.

Definition at line 305 of file ZdcLEDAnalysisTool.cxx.

306 {
307  if (!m_init) {
308  ATH_MSG_WARNING("Tool not initialized!");
309  return StatusCode::FAILURE;
310  }
311 
312  ATH_MSG_DEBUG ("Trying to retrieve " << m_zdcModuleContainerName);
313 
314  m_zdcModules = 0;
316 
317 
319 
320  return StatusCode::SUCCESS;
321 }

◆ sysInitialize()

virtual StatusCode AthCommonDataStore< AthCommonMsg< AlgTool > >::sysInitialize ( )
overridevirtualinherited

Perform system initialization for an algorithm.

We override this to declare all the elements of handle key arrays at the end of initialization. See comments on updateVHKA.

Reimplemented in DerivationFramework::CfAthAlgTool, AthCheckedComponent< AthAlgTool >, AthCheckedComponent<::AthAlgTool >, and asg::AsgMetadataTool.

◆ sysStart()

virtual StatusCode AthCommonDataStore< AthCommonMsg< AlgTool > >::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< AlgTool > >::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_auxSuffix

Gaudi::Property<std::string> ZDC::ZdcLEDAnalysisTool::m_auxSuffix {this, "AuxSuffix", "", "Append this tag onto end of AuxData"}
private

Definition at line 110 of file ZdcLEDAnalysisTool.h.

◆ m_calreqNames

const std::vector<std::string> ZDC::ZdcLEDAnalysisTool::m_calreqNames = {"CalReq1", "CalReq2", "CalReq3"}
private

Definition at line 123 of file ZdcLEDAnalysisTool.h.

◆ m_configuration

Gaudi::Property<std::string> ZDC::ZdcLEDAnalysisTool::m_configuration {this, "Configuration", "ppPbPb2023", "Which config files to use"}
private

Definition at line 107 of file ZdcLEDAnalysisTool.h.

◆ m_DAQModeKey

SG::ReadDecorHandleKey<xAOD::ZdcModuleContainer> ZDC::ZdcLEDAnalysisTool::m_DAQModeKey
private
Initial value:
{
this, "ZdcDAQModeKey", "", "ZDC DAQ mode"}

Definition at line 154 of file ZdcLEDAnalysisTool.h.

◆ m_deltaTSample

float ZDC::ZdcLEDAnalysisTool::m_deltaTSample {3.125}
private

Definition at line 128 of file ZdcLEDAnalysisTool.h.

◆ m_detStore

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

Pointer to StoreGate (detector store by default)

Definition at line 393 of file AthCommonDataStore.h.

◆ m_doRPD

Gaudi::Property<bool> ZDC::ZdcLEDAnalysisTool::m_doRPD {this, "doRPD", true, "Process RPD Data?"}
private

Definition at line 114 of file ZdcLEDAnalysisTool.h.

◆ m_doZDC

Gaudi::Property<bool> ZDC::ZdcLEDAnalysisTool::m_doZDC {this, "doZDC", true, "Process ZDC Data?"}
private

Definition at line 115 of file ZdcLEDAnalysisTool.h.

◆ m_eventInfoKey

SG::ReadHandleKey<xAOD::EventInfo> ZDC::ZdcLEDAnalysisTool::m_eventInfoKey
private
Initial value:
{
this, "EventInfoKey", "EventInfo", "Location of the event info."}

Definition at line 145 of file ZdcLEDAnalysisTool.h.

◆ m_eventTypeKey

SG::ReadDecorHandleKey<xAOD::ZdcModuleContainer> ZDC::ZdcLEDAnalysisTool::m_eventTypeKey
private
Initial value:
{
this, "ZdcEventTypeKey", "", "ZDC Event type"}

Definition at line 148 of file ZdcLEDAnalysisTool.h.

◆ m_evtStore

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

Pointer to StoreGate (event store by default)

Definition at line 390 of file AthCommonDataStore.h.

◆ m_HGADCOverflow

unsigned int ZDC::ZdcLEDAnalysisTool::m_HGADCOverflow {4095}
private

Definition at line 125 of file ZdcLEDAnalysisTool.h.

◆ m_init

bool ZDC::ZdcLEDAnalysisTool::m_init {false}
private

Definition at line 102 of file ZdcLEDAnalysisTool.h.

◆ m_LEDBCID

std::vector<unsigned int> ZDC::ZdcLEDAnalysisTool::m_LEDBCID
private

Definition at line 120 of file ZdcLEDAnalysisTool.h.

◆ m_LEDCalreqIdx

std::vector<unsigned int> ZDC::ZdcLEDAnalysisTool::m_LEDCalreqIdx
private

Definition at line 119 of file ZdcLEDAnalysisTool.h.

◆ m_LEDNames

const std::vector<std::string> ZDC::ZdcLEDAnalysisTool::m_LEDNames = {"Blue1", "Green", "Blue2"}
private

Definition at line 122 of file ZdcLEDAnalysisTool.h.

◆ m_name

std::string ZDC::ZdcLEDAnalysisTool::m_name
private

Definition at line 106 of file ZdcLEDAnalysisTool.h.

◆ m_numSamples

unsigned int ZDC::ZdcLEDAnalysisTool::m_numSamples {24}
private

Definition at line 126 of file ZdcLEDAnalysisTool.h.

◆ m_preSample

unsigned int ZDC::ZdcLEDAnalysisTool::m_preSample {0}
private

Definition at line 127 of file ZdcLEDAnalysisTool.h.

◆ m_robBCIDKey

SG::ReadDecorHandleKey<xAOD::ZdcModuleContainer> ZDC::ZdcLEDAnalysisTool::m_robBCIDKey
private
Initial value:
{
this, "ROBBCIDKey", "", "BCID from LUCROD ROB headers"}

Definition at line 151 of file ZdcLEDAnalysisTool.h.

◆ m_sampleAnaEndRPD

unsigned int ZDC::ZdcLEDAnalysisTool::m_sampleAnaEndRPD {23}
private

Definition at line 132 of file ZdcLEDAnalysisTool.h.

◆ m_sampleAnaEndZDC

unsigned int ZDC::ZdcLEDAnalysisTool::m_sampleAnaEndZDC {23}
private

Definition at line 130 of file ZdcLEDAnalysisTool.h.

◆ m_sampleAnaStartRPD

unsigned int ZDC::ZdcLEDAnalysisTool::m_sampleAnaStartRPD {0}
private

Definition at line 131 of file ZdcLEDAnalysisTool.h.

◆ m_sampleAnaStartZDC

unsigned int ZDC::ZdcLEDAnalysisTool::m_sampleAnaStartZDC {0}
private

Definition at line 129 of file ZdcLEDAnalysisTool.h.

◆ m_varHandleArraysDeclared

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

Definition at line 399 of file AthCommonDataStore.h.

◆ m_vhka

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

Definition at line 398 of file AthCommonDataStore.h.

◆ m_writeAux

bool ZDC::ZdcLEDAnalysisTool::m_writeAux {false}
private

Definition at line 108 of file ZdcLEDAnalysisTool.h.

◆ m_ZdcLEDADCSum

SG::WriteDecorHandleKey<xAOD::ZdcModuleContainer> ZDC::ZdcLEDAnalysisTool::m_ZdcLEDADCSum {this, "ZdcLEDADCSum", "", "ZDC LED pulse FADC sum"}
private

Definition at line 159 of file ZdcLEDAnalysisTool.h.

◆ m_ZdcLEDAvgTime

SG::WriteDecorHandleKey<xAOD::ZdcModuleContainer> ZDC::ZdcLEDAnalysisTool::m_ZdcLEDAvgTime {this, "ZdcLEDAvgTime", "", "ZDC LED average time"}
private

Definition at line 162 of file ZdcLEDAnalysisTool.h.

◆ m_ZdcLEDMaxADC

SG::WriteDecorHandleKey<xAOD::ZdcModuleContainer> ZDC::ZdcLEDAnalysisTool::m_ZdcLEDMaxADC {this, "ZdcLEDMaxADC", "", "ZDC LED pulse max FADC value"}
private

Definition at line 160 of file ZdcLEDAnalysisTool.h.

◆ m_ZdcLEDMaxSample

SG::WriteDecorHandleKey<xAOD::ZdcModuleContainer> ZDC::ZdcLEDAnalysisTool::m_ZdcLEDMaxSample {this, "ZdcLEDMaxSample", "", "ZDC LED max FADC sample"}
private

Definition at line 161 of file ZdcLEDAnalysisTool.h.

◆ m_ZdcLEDPresampleADC

SG::WriteDecorHandleKey<xAOD::ZdcModuleContainer> ZDC::ZdcLEDAnalysisTool::m_ZdcLEDPresampleADC {this, "ZdcLEDPresampleADC", "", "ZDC LED presample"}
private

Definition at line 158 of file ZdcLEDAnalysisTool.h.

◆ m_ZdcLEDType

SG::WriteDecorHandleKey<xAOD::ZdcModuleContainer> ZDC::ZdcLEDAnalysisTool::m_ZdcLEDType {this, "ZdcLEDType", "", "ZDC LED Type (0-Blue1, 1-Green, 2-Blue2}"}
private

Definition at line 157 of file ZdcLEDAnalysisTool.h.

◆ m_ZdcLowGainScale

float ZDC::ZdcLEDAnalysisTool::m_ZdcLowGainScale {10}
private

Definition at line 134 of file ZdcLEDAnalysisTool.h.

◆ m_zdcModuleContainerName

Gaudi::Property<std::string> ZDC::ZdcLEDAnalysisTool::m_zdcModuleContainerName {this, "ZdcModuleContainerName", "ZdcModules", "Location of ZDC processed data"}
private

Definition at line 138 of file ZdcLEDAnalysisTool.h.

◆ m_zdcModules

const xAOD::ZdcModuleContainer* ZDC::ZdcLEDAnalysisTool::m_zdcModules {nullptr}
private

Definition at line 139 of file ZdcLEDAnalysisTool.h.

◆ m_zdcSumContainerName

Gaudi::Property<std::string> ZDC::ZdcLEDAnalysisTool::m_zdcSumContainerName {this, "ZdcSumContainerName", "ZdcSums", "Location of ZDC processed sums"}
private

Definition at line 140 of file ZdcLEDAnalysisTool.h.

◆ m_zdcSums

const xAOD::ZdcModuleContainer* ZDC::ZdcLEDAnalysisTool::m_zdcSums {nullptr}
private

Definition at line 141 of file ZdcLEDAnalysisTool.h.


The documentation for this class was generated from the following files:
python.PyKernel.retrieve
def retrieve(aClass, aKey=None)
Definition: PyKernel.py:110
ZDC::ZdcLEDAnalysisTool::m_preSample
unsigned int m_preSample
Definition: ZdcLEDAnalysisTool.h:127
ZDC::ZdcLEDAnalysisTool::m_LEDNames
const std::vector< std::string > m_LEDNames
Definition: ZdcLEDAnalysisTool.h:122
data
char data[hepevt_bytes_allocation_ATLAS]
Definition: HepEvt.cxx:11
ZDC::ZdcLEDAnalysisTool::m_sampleAnaEndZDC
unsigned int m_sampleAnaEndZDC
Definition: ZdcLEDAnalysisTool.h:130
asg::AsgTool
Base class for the dual-use tool implementation classes.
Definition: AsgTool.h:47
ZDC::ZdcLEDAnalysisTool::m_auxSuffix
Gaudi::Property< std::string > m_auxSuffix
Definition: ZdcLEDAnalysisTool.h:110
ZDC::ZdcLEDAnalysisTool::m_ZdcLEDPresampleADC
SG::WriteDecorHandleKey< xAOD::ZdcModuleContainer > m_ZdcLEDPresampleADC
Definition: ZdcLEDAnalysisTool.h:158
ZDC::ZdcLEDAnalysisTool::m_configuration
Gaudi::Property< std::string > m_configuration
Definition: ZdcLEDAnalysisTool.h:107
StateLessPT_NewConfig.proxy
proxy
Definition: StateLessPT_NewConfig.py:392
python.PerfMonSerializer.p
def p
Definition: PerfMonSerializer.py:743
ZDC::ZdcLEDAnalysisTool::m_zdcSums
const xAOD::ZdcModuleContainer * m_zdcSums
Definition: ZdcLEDAnalysisTool.h:141
ATH_MSG_INFO
#define ATH_MSG_INFO(x)
Definition: AthMsgStreamMacros.h:31
SG::ReadHandle
Definition: StoreGate/StoreGate/ReadHandle.h:70
AthCommonDataStore::declareProperty
Gaudi::Details::PropertyBase & declareProperty(Gaudi::Property< T > &t)
Definition: AthCommonDataStore.h:145
ZDC::ZdcLEDAnalysisTool::m_DAQModeKey
SG::ReadDecorHandleKey< xAOD::ZdcModuleContainer > m_DAQModeKey
Definition: ZdcLEDAnalysisTool.h:154
xAOD::ZdcModule_v1
Class containing ZDC Module information.
Definition: ZdcModule_v1.h:25
AthCommonDataStore< AthCommonMsg< AlgTool > >::m_evtStore
StoreGateSvc_t m_evtStore
Pointer to StoreGate (event store by default)
Definition: AthCommonDataStore.h:390
AthCommonDataStore< AthCommonMsg< AlgTool > >::m_vhka
std::vector< SG::VarHandleKeyArray * > m_vhka
Definition: AthCommonDataStore.h:398
ZDC::ZdcLEDAnalysisTool::m_ZdcLEDType
SG::WriteDecorHandleKey< xAOD::ZdcModuleContainer > m_ZdcLEDType
Definition: ZdcLEDAnalysisTool.h:157
ZDC::ZdcLEDAnalysisTool::initialize_ppALFA2023
void initialize_ppALFA2023()
Definition: ZdcLEDAnalysisTool.cxx:150
ZdcEventInfo::ZdcEventUnknown
@ ZdcEventUnknown
Definition: ZdcEventInfo.h:16
SG::ConstAccessor
Helper class to provide constant type-safe access to aux data.
Definition: ConstAccessor.h:54
read_hist_ntuple.t
t
Definition: read_hist_ntuple.py:5
ZDC::ZdcLEDAnalysisTool::m_ZdcLowGainScale
float m_ZdcLowGainScale
Definition: ZdcLEDAnalysisTool.h:134
ZDC::ZdcLEDAnalysisTool::m_eventTypeKey
SG::ReadDecorHandleKey< xAOD::ZdcModuleContainer > m_eventTypeKey
Definition: ZdcLEDAnalysisTool.h:148
ZdcEventInfo::DAQMode
DAQMode
Definition: ZdcEventInfo.h:17
ZDC::ZdcLEDAnalysisTool::m_HGADCOverflow
unsigned int m_HGADCOverflow
Definition: ZdcLEDAnalysisTool.h:125
ReweightUtils.message
message
Definition: ReweightUtils.py:15
python.iconfTool.models.loaders.level
level
Definition: loaders.py:20
SG::VarHandleKeyArray::setOwner
virtual void setOwner(IDataHandleHolder *o)=0
ZDC::ZdcLEDAnalysisTool::m_doRPD
Gaudi::Property< bool > m_doRPD
Definition: ZdcLEDAnalysisTool.h:114
ZDC::ZdcLEDAnalysisTool::m_doZDC
Gaudi::Property< bool > m_doZDC
Definition: ZdcLEDAnalysisTool.h:115
ZDC::ZdcLEDAnalysisTool::recoZdcModules
StatusCode recoZdcModules(const xAOD::ZdcModuleContainer &moduleContainer, const xAOD::ZdcModuleContainer &moduleSumContainer) override
Definition: ZdcLEDAnalysisTool.cxx:160
python.PyAthena.module
module
Definition: PyAthena.py:134
AthCommonDataStore< AthCommonMsg< AlgTool > >::evtStore
ServiceHandle< StoreGateSvc > & evtStore()
The standard StoreGateSvc (event store) Returns (kind of) a pointer to the StoreGateSvc.
Definition: AthCommonDataStore.h:85
AthCommonDataStore
Definition: AthCommonDataStore.h:52
TrigConf::MSGTC::Level
Level
Definition: Trigger/TrigConfiguration/TrigConfBase/TrigConfBase/MsgStream.h:21
ATH_MSG_ERROR
#define ATH_MSG_ERROR(x)
Definition: AthMsgStreamMacros.h:33
SG::ReadDecorHandle
Handle class for reading a decoration on an object.
Definition: StoreGate/StoreGate/ReadDecorHandle.h:94
FullCPAlgorithmsTest_eljob.sample
sample
Definition: FullCPAlgorithmsTest_eljob.py:100
ZDC::ZdcLEDAnalysisTool::m_LEDBCID
std::vector< unsigned int > m_LEDBCID
Definition: ZdcLEDAnalysisTool.h:120
ZDC::ZdcLEDAnalysisTool::m_zdcSumContainerName
Gaudi::Property< std::string > m_zdcSumContainerName
Definition: ZdcLEDAnalysisTool.h:140
endmsg
#define endmsg
Definition: AnalysisConfig_Ntuple.cxx:63
ATH_MSG_DEBUG
#define ATH_MSG_DEBUG(x)
Definition: AthMsgStreamMacros.h:29
ZdcEventInfo::LEDNone
@ LEDNone
Definition: ZdcEventInfo.h:18
ZDC::ZdcLEDAnalysisTool::m_deltaTSample
float m_deltaTSample
Definition: ZdcLEDAnalysisTool.h:128
SG::WriteDecorHandle
Handle class for adding a decoration to an object.
Definition: StoreGate/StoreGate/WriteDecorHandle.h:99
python.xAODType.dummy
dummy
Definition: xAODType.py:4
ATH_CHECK
#define ATH_CHECK
Definition: AthCheckMacros.h:40
ZdcEventInfo::NumLEDs
@ NumLEDs
Definition: ZdcEventInfo.h:18
MSG::name
const std::string & name(Level lvl)
Convenience function for translating message levels to strings.
Definition: MsgLevel.cxx:19
ZDC::ZdcLEDAnalysisTool::m_zdcModuleContainerName
Gaudi::Property< std::string > m_zdcModuleContainerName
Definition: ZdcLEDAnalysisTool.h:138
AthCommonDataStore< AthCommonMsg< AlgTool > >::m_detStore
StoreGateSvc_t m_detStore
Pointer to StoreGate (detector store by default)
Definition: AthCommonDataStore.h:393
SG::VarHandleKey::initialize
StatusCode initialize(bool used=true)
If this object is used as a property, then this should be called during the initialize phase.
Definition: AthToolSupport/AsgDataHandles/Root/VarHandleKey.cxx:103
ZDC::ZdcLEDAnalysisTool::m_sampleAnaStartZDC
unsigned int m_sampleAnaStartZDC
Definition: ZdcLEDAnalysisTool.h:129
ZDC::ZdcLEDAnalysisTool::m_robBCIDKey
SG::ReadDecorHandleKey< xAOD::ZdcModuleContainer > m_robBCIDKey
Definition: ZdcLEDAnalysisTool.h:151
ZDC::ZdcLEDAnalysisTool::m_name
std::string m_name
Definition: ZdcLEDAnalysisTool.h:106
SG::VarHandleKeyArray::renounce
virtual void renounce()=0
SG::HandleClassifier::type
std::conditional< std::is_base_of< SG::VarHandleKeyArray, T >::value, VarHandleKeyArrayType, type2 >::type type
Definition: HandleClassifier.h:54
ZDCMsg::MessageFunction
std::function< bool(int, std::string)> MessageFunction
Definition: ZDCMsg.h:12
ZDC::ZdcLEDAnalysisTool::m_init
bool m_init
Definition: ZdcLEDAnalysisTool.h:102
merge_scale_histograms.doc
string doc
Definition: merge_scale_histograms.py:9
name
std::string name
Definition: Control/AthContainers/Root/debug.cxx:192
ZDC::ZdcLEDAnalysisTool::m_LEDCalreqIdx
std::vector< unsigned int > m_LEDCalreqIdx
Definition: ZdcLEDAnalysisTool.h:119
xAOD::bcid
setEventNumber setTimeStamp bcid
Definition: EventInfo_v1.cxx:133
ZDCMsg::MessageFunctionPtr
std::shared_ptr< MessageFunction > MessageFunctionPtr
Definition: ZDCMsg.h:14
python.ami.results
def results
Definition: ami.py:386
ZDC::ZdcLEDAnalysisTool::m_ZdcLEDADCSum
SG::WriteDecorHandleKey< xAOD::ZdcModuleContainer > m_ZdcLEDADCSum
Definition: ZdcLEDAnalysisTool.h:159
ZdcEventInfo::DAQModeUndef
@ DAQModeUndef
Definition: ZdcEventInfo.h:17
ZDC::ZdcLEDAnalysisTool::m_sampleAnaStartRPD
unsigned int m_sampleAnaStartRPD
Definition: ZdcLEDAnalysisTool.h:131
ZDC::ZdcLEDAnalysisTool::m_eventInfoKey
SG::ReadHandleKey< xAOD::EventInfo > m_eventInfoKey
Definition: ZdcLEDAnalysisTool.h:145
a
TList * a
Definition: liststreamerinfos.cxx:10
ZDC::ZdcLEDAnalysisTool::processModuleData
ZDCLEDModuleResults processModuleData(const std::vector< unsigned short > &data, unsigned int startSample, unsigned int endSample, float gainScale)
Definition: ZdcLEDAnalysisTool.cxx:353
h
CaloSwCorrections.time
def time(flags, cells_name, *args, **kw)
Definition: CaloSwCorrections.py:242
ZDC::ZdcLEDAnalysisTool::m_writeAux
bool m_writeAux
Definition: ZdcLEDAnalysisTool.h:108
ATH_MSG_WARNING
#define ATH_MSG_WARNING(x)
Definition: AthMsgStreamMacros.h:32
ZDC::ZdcLEDAnalysisTool::initialize_ppPbPb2023
void initialize_ppPbPb2023()
Definition: ZdcLEDAnalysisTool.cxx:139
ZDC::ZdcLEDAnalysisTool::m_sampleAnaEndRPD
unsigned int m_sampleAnaEndRPD
Definition: ZdcLEDAnalysisTool.h:132
AthCommonMsg< AlgTool >::msg
MsgStream & msg() const
Definition: AthCommonMsg.h:24
ZDC::ZdcLEDAnalysisTool::processRPDModule
ZDCLEDModuleResults processRPDModule(const xAOD::ZdcModule &module)
Definition: ZdcLEDAnalysisTool.cxx:346
ZdcEventInfo::Standalone
@ Standalone
Definition: ZdcEventInfo.h:17
SG::VarHandleBase::vhKey
SG::VarHandleKey & vhKey()
Return a non-const reference to the HandleKey.
Definition: StoreGate/src/VarHandleBase.cxx:616
ZDC::ZdcLEDAnalysisTool::m_ZdcLEDAvgTime
SG::WriteDecorHandleKey< xAOD::ZdcModuleContainer > m_ZdcLEDAvgTime
Definition: ZdcLEDAnalysisTool.h:162
declareProperty
#define declareProperty(n, p, h)
Definition: BaseFakeBkgTool.cxx:15
python.Bindings.keys
keys
Definition: Control/AthenaPython/python/Bindings.py:790
ZDC::ZdcLEDAnalysisTool::m_zdcModules
const xAOD::ZdcModuleContainer * m_zdcModules
Definition: ZdcLEDAnalysisTool.h:139
ZDC::ZdcLEDAnalysisTool::m_ZdcLEDMaxSample
SG::WriteDecorHandleKey< xAOD::ZdcModuleContainer > m_ZdcLEDMaxSample
Definition: ZdcLEDAnalysisTool.h:161
ZDC::ZdcLEDAnalysisTool::initialize_zdcStandalone
void initialize_zdcStandalone()
Definition: ZdcLEDAnalysisTool.cxx:128
SG::DataProxy
Definition: DataProxy.h:44
xAOD::bool
setBGCode setTAP setLVL2ErrorBits bool
Definition: TrigDecision_v1.cxx:60
ZDC::ZdcLEDAnalysisTool::processZDCModule
ZDCLEDModuleResults processZDCModule(const xAOD::ZdcModule &module)
Definition: ZdcLEDAnalysisTool.cxx:323
ZDC::ZdcLEDAnalysisTool::m_numSamples
unsigned int m_numSamples
Definition: ZdcLEDAnalysisTool.h:126
DataVector::size
size_type size() const noexcept
Returns the number of elements in the collection.
AthCommonDataStore::declareGaudiProperty
Gaudi::Details::PropertyBase & declareGaudiProperty(Gaudi::Property< T > &hndl, const SG::VarHandleKeyType &)
specialization for handling Gaudi::Property<SG::VarHandleKey>
Definition: AthCommonDataStore.h:156
fitman.k
k
Definition: fitman.py:528
ZdcEventInfo::ZdcEventLED
@ ZdcEventLED
Definition: ZdcEventInfo.h:16
ZDC::ZdcLEDAnalysisTool::m_ZdcLEDMaxADC
SG::WriteDecorHandleKey< xAOD::ZdcModuleContainer > m_ZdcLEDMaxADC
Definition: ZdcLEDAnalysisTool.h:160