|
ATLAS Offline Software
|
Emulator of DSP code in accumulation pedestal mode.
More...
#include <LArDigitsAccumulator.h>
|
| LArDigitsAccumulator (const std::string &name, ISvcLocator *pSvcLocator) |
|
StatusCode | initialize () |
|
StatusCode | execute () |
|
StatusCode | finalize () |
|
virtual StatusCode | sysInitialize () override |
| Override sysInitialize. More...
|
|
virtual const DataObjIDColl & | extraOutputDeps () const override |
| Return the list of extra output dependencies. More...
|
|
ServiceHandle< StoreGateSvc > & | evtStore () |
| The standard StoreGateSvc (event store) Returns (kind of) a pointer to the StoreGateSvc . More...
|
|
const ServiceHandle< StoreGateSvc > & | evtStore () const |
| The standard StoreGateSvc (event store) Returns (kind of) a pointer to the StoreGateSvc . More...
|
|
const ServiceHandle< StoreGateSvc > & | detStore () const |
| The standard StoreGateSvc/DetectorStore Returns (kind of) a pointer to the StoreGateSvc . More...
|
|
virtual StatusCode | sysStart () override |
| Handle START transition. More...
|
|
virtual std::vector< Gaudi::DataHandle * > | inputHandles () const override |
| Return this algorithm's input handles. More...
|
|
virtual std::vector< Gaudi::DataHandle * > | outputHandles () const override |
| Return this algorithm's output handles. More...
|
|
Gaudi::Details::PropertyBase & | declareProperty (Gaudi::Property< T > &t) |
|
Gaudi::Details::PropertyBase * | declareProperty (const std::string &name, SG::VarHandleKey &hndl, const std::string &doc, const SG::VarHandleKeyType &) |
| Declare a new Gaudi property. More...
|
|
Gaudi::Details::PropertyBase * | declareProperty (const std::string &name, SG::VarHandleBase &hndl, const std::string &doc, const SG::VarHandleType &) |
| Declare a new Gaudi property. More...
|
|
Gaudi::Details::PropertyBase * | declareProperty (const std::string &name, SG::VarHandleKeyArray &hndArr, const std::string &doc, const SG::VarHandleKeyArrayType &) |
|
Gaudi::Details::PropertyBase * | declareProperty (const std::string &name, T &property, const std::string &doc, const SG::NotHandleType &) |
| Declare a new Gaudi property. More...
|
|
Gaudi::Details::PropertyBase * | declareProperty (const std::string &name, T &property, const std::string &doc="none") |
| Declare a new Gaudi property. More...
|
|
void | updateVHKA (Gaudi::Details::PropertyBase &) |
|
MsgStream & | msg () const |
|
MsgStream & | msg (const MSG::Level lvl) const |
|
bool | msgLvl (const MSG::Level lvl) const |
|
Emulator of DSP code in accumulation pedestal mode.
- Author
- Sandrine Laplace lapla.nosp@m.ce@l.nosp@m.app.i.nosp@m.n2p3.nosp@m..fr
- Date
- 18-06-2008
Definition at line 25 of file LArDigitsAccumulator.h.
◆ ACCUMDIGIT_VEC
◆ StoreGateSvc_t
◆ LArDigitsAccumulator()
LArDigitsAccumulator::LArDigitsAccumulator |
( |
const std::string & |
name, |
|
|
ISvcLocator * |
pSvcLocator |
|
) |
| |
◆ declareGaudiProperty() [1/4]
specialization for handling Gaudi::Property<SG::VarHandleKeyArray>
Definition at line 170 of file AthCommonDataStore.h.
175 hndl.documentation());
◆ declareGaudiProperty() [2/4]
specialization for handling Gaudi::Property<SG::VarHandleKey>
Definition at line 156 of file AthCommonDataStore.h.
161 hndl.documentation());
◆ declareGaudiProperty() [3/4]
specialization for handling Gaudi::Property<SG::VarHandleBase>
Definition at line 184 of file AthCommonDataStore.h.
189 hndl.documentation());
◆ declareGaudiProperty() [4/4]
◆ declareProperty() [1/6]
Declare a new Gaudi property.
- Parameters
-
name | Name of the property. |
hndl | Object holding the property value. |
doc | Documentation 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.
250 this->declare(hndl.
vhKey());
251 hndl.
vhKey().setOwner(
this);
253 return PBASE::declareProperty(
name,hndl,
doc);
◆ declareProperty() [2/6]
Declare a new Gaudi property.
- Parameters
-
name | Name of the property. |
hndl | Object holding the property value. |
doc | Documentation 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.
229 return PBASE::declareProperty(
name,hndl,
doc);
◆ declareProperty() [3/6]
◆ declareProperty() [4/6]
Declare a new Gaudi property.
- Parameters
-
name | Name of the property. |
property | Object holding the property value. |
doc | Documentation 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.
338 return PBASE::declareProperty(
name, property,
doc);
◆ declareProperty() [5/6]
Declare a new Gaudi property.
- Parameters
-
name | Name of the property. |
property | Object holding the property value. |
doc | Documentation 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.
◆ declareProperty() [6/6]
◆ detStore()
◆ evtStore() [1/2]
◆ evtStore() [2/2]
◆ execute()
StatusCode LArDigitsAccumulator::execute |
( |
| ) |
|
first check if there is a -1 and continue
Definition at line 62 of file LArDigitsAccumulator.cxx.
86 if(DigitContainer->
empty()) {
89 ATH_MSG_DEBUG(
"LArDigitContainer with key=" <<
key <<
" has size = " << DigitContainer->
size() );
95 auto larAccuDigitContainer = std::make_unique<LArAccumulatedDigitContainer>(
SG::VIEW_ELEMENTS);
105 bool hasInvalid=
false;
106 for(
auto s :
digit->samples()){
112 if(hasInvalid)
continue;
120 return StatusCode::FAILURE;
128 cellAccumulated.m_ntrigger++;
133 unsigned int sizeSamples =
digit->samples().size();
140 vAccum[hashid]=accuDigit;
143 if(cellAccumulated.m_ntrigger==1){
145 cellAccumulated.m_samplesum.clear();
146 cellAccumulated.m_samplesum.resize(sizeSamples,0);
147 cellAccumulated.m_matrix.clear();
148 cellAccumulated.m_matrix.resize(sizeSamples,0);
153 for(
unsigned int j=0;j<sizeSamples;j++){
154 cellAccumulated.m_samplesum[j] +=
digit->samples()[j];
155 for(
unsigned int k=j;
k<sizeSamples;
k++)
158 cellAccumulated.m_matrix[
l] +=
digit->samples()[j]*
digit->samples()[
k];
174 if(cellAccumulated.m_ntrigger==ntrigUsed){
179 accuDigit->
setAddSubStep(
gain,chid,cellAccumulated.m_samplesum,cellAccumulated.m_matrix,ntrigUsed);
181 larAccuDigitContainer->push_back(accuDigit);
183 cellAccumulated.m_nused = cellAccumulated.m_ntrigger;
184 cellAccumulated.m_ntrigger = 0;
194 ATH_MSG_INFO(
"Recorded succesfully LArAccumulatedDigitContainer with key " <<
SGkey );
198 return StatusCode::SUCCESS;
◆ extraDeps_update_handler()
Add StoreName to extra input/output deps as needed.
use the logic of the VarHandleKey to parse the DataObjID keys supplied via the ExtraInputs and ExtraOuputs Properties to add the StoreName if it's not explicitly given
◆ extraOutputDeps()
const DataObjIDColl & AthAlgorithm::extraOutputDeps |
( |
| ) |
const |
|
overridevirtualinherited |
Return the list of extra output dependencies.
This list is extended to include symlinks implied by inheritance relations.
Definition at line 50 of file AthAlgorithm.cxx.
57 return Algorithm::extraOutputDeps();
◆ finalize()
StatusCode LArDigitsAccumulator::finalize |
( |
| ) |
|
Definition at line 202 of file LArDigitsAccumulator.cxx.
204 if ( !
m_isSC )
return StatusCode::SUCCESS;
207 if(
sc.m_onlineId &&
sc.m_nused != ntrigUsed){
208 ATH_MSG_WARNING(
"Not enough triggers for channel OnlineID " <<
sc.m_onlineId <<
" ntriggers " <<
sc.m_ntrigger );
212 return StatusCode::SUCCESS;
◆ initialize()
StatusCode LArDigitsAccumulator::initialize |
( |
| ) |
|
◆ inputHandles()
Return this algorithm's input handles.
We override this to include handle instances from key arrays if they have not yet been declared. See comments on updateVHKA.
◆ msg() [1/2]
◆ msg() [2/2]
◆ msgLvl()
◆ outputHandles()
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()
◆ renounceArray()
◆ sysInitialize()
StatusCode AthAlgorithm::sysInitialize |
( |
| ) |
|
|
overridevirtualinherited |
◆ sysStart()
Handle START transition.
We override this in order to make sure that conditions handle keys can cache a pointer to the conditions container.
◆ updateVHKA()
◆ m_AccuDigitContainerName
std::string LArDigitsAccumulator::m_AccuDigitContainerName |
|
private |
◆ m_Accumulated
◆ m_detStore
◆ m_DropPercentTrig
double LArDigitsAccumulator::m_DropPercentTrig |
|
private |
Percentage of the used triggers that we will skip over at the end, in order ot ensure that the accumulation is done, even if there are lots of missing events from SC.
Definition at line 82 of file LArDigitsAccumulator.h.
◆ m_event_counter
unsigned int LArDigitsAccumulator::m_event_counter |
|
private |
◆ m_evtStore
◆ m_extendedExtraObjects
DataObjIDColl AthAlgorithm::m_extendedExtraObjects |
|
privateinherited |
◆ m_isSC
bool LArDigitsAccumulator::m_isSC |
|
private |
◆ m_keylist
std::vector<std::string> LArDigitsAccumulator::m_keylist |
|
private |
◆ m_my_vec
◆ m_nStepTrigger
unsigned int LArDigitsAccumulator::m_nStepTrigger |
|
private |
◆ m_NtriggersPerStep
unsigned int LArDigitsAccumulator::m_NtriggersPerStep |
|
private |
◆ m_onlineHelper
◆ m_varHandleArraysDeclared
◆ m_vhka
The documentation for this class was generated from the following files:
def retrieve(aClass, aKey=None)
IdentifierHash channel_Hash(HWIdentifier channelId) const
Create channel_hash from channel_Id.
bool m_isSC
Tells you wether you run on SuperCells or Cells.
unsigned int m_nStepTrigger
Number of steps.
bool setAddSubStep(const CaloGain::CaloGain gain_value, const HWIdentifier chid, const std::vector< uint64_t > &sampleSum, const std::vector< uint64_t > &sampleSquare, const unsigned nTrigger)
Accumulate new values
@ VIEW_ELEMENTS
this data object is a view, it does not own its elmts
Gaudi::Details::PropertyBase & declareProperty(Gaudi::Property< T > &t)
StoreGateSvc_t m_evtStore
Pointer to StoreGate (event store by default)
Identifier32 get_identifier32() const
Get the 32-bit version Identifier, will be invalid if >32 bits needed.
std::vector< SG::VarHandleKeyArray * > m_vhka
std::vector< std::string > m_keylist
list of key for input digit container (=gain)
std::string m_AccuDigitContainerName
LArAccumulatedDigitContainer name.
value_type get_compact() const
Get the compact id.
const ServiceHandle< StoreGateSvc > & detStore() const
The standard StoreGateSvc/DetectorStore Returns (kind of) a pointer to the StoreGateSvc.
virtual void setOwner(IDataHandleHolder *o)=0
ServiceHandle< StoreGateSvc > & evtStore()
The standard StoreGateSvc (event store) Returns (kind of) a pointer to the StoreGateSvc.
const LArOnlineID_Base * m_onlineHelper
Data class for ADC samples and autocorr preprocessed by the DSP.
unsigned int m_NtriggersPerStep
Number of triggers per step.
virtual StatusCode sysInitialize() override
Override sysInitialize.
std::vector< LArAccumulatedDigit * > ACCUMDIGIT_VEC
virtual std::vector< Gaudi::DataHandle * > outputHandles() const override
Return this algorithm's output handles.
Liquid Argon digit base class.
unsigned int m_event_counter
Event counter.
::StatusCode StatusCode
StatusCode definition for legacy code.
StoreGateSvc_t m_detStore
Pointer to StoreGate (detector store by default)
virtual void renounce()=0
std::conditional< std::is_base_of< SG::VarHandleKeyArray, T >::value, VarHandleKeyArrayType, type2 >::type type
Helper for the Liquid Argon Calorimeter cell identifiers.
size_type channelHashMax(void) const
Define channel hash tables max size.
double m_DropPercentTrig
Percentage of the used triggers that we will skip over at the end, in order ot ensure that the accumu...
DataObjIDColl m_extendedExtraObjects
#define ATH_MSG_WARNING(x)
SG::VarHandleKey & vhKey()
Return a non-const reference to the HandleKey.
Container class for LArDigit.
AthAlgorithm()
Default constructor:
std::vector< LArAccumulated > m_Accumulated
Vector (index=hash ID) of accumulation quantities.
This is a "hash" representation of an Identifier. This encodes a 32 bit index which can be used to lo...
size_type size() const noexcept
Returns the number of elements in the collection.
Gaudi::Details::PropertyBase & declareGaudiProperty(Gaudi::Property< T > &hndl, const SG::VarHandleKeyType &)
specialization for handling Gaudi::Property<SG::VarHandleKey>
bool empty() const noexcept
Returns true if the collection is empty.