|
ATLAS Offline Software
|
This algorithm builds TileTTL1 objects from TileHits.
More...
#include <TileHitToTTL1.h>
|
virtual | ~TileHitToTTL1 ()=default |
| Destructor. More...
|
|
virtual StatusCode | initialize () override |
| initialize method
More...
|
|
virtual StatusCode | execute (const EventContext &ctx) const override |
| execute method More...
|
|
virtual StatusCode | finalize () override |
| finalize method
More...
|
|
| AthReentrantAlgorithm (const std::string &name, ISvcLocator *pSvcLocator) |
| Constructor with parameters: More...
|
|
virtual StatusCode | sysInitialize () override |
| Override sysInitialize. More...
|
|
virtual bool | isClonable () const override |
| Specify if the algorithm is clonable. More...
|
|
virtual unsigned int | cardinality () const override |
| Cardinality (Maximum number of clones that can exist) special value 0 means that algorithm is reentrant. More...
|
|
virtual StatusCode | sysExecute (const EventContext &ctx) override |
| Execute an algorithm. More...
|
|
virtual const DataObjIDColl & | extraOutputDeps () const override |
| Return the list of extra output dependencies. More...
|
|
virtual bool | filterPassed (const EventContext &ctx) const |
|
virtual void | setFilterPassed (bool state, const EventContext &ctx) const |
|
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 |
|
This algorithm builds TileTTL1 objects from TileHits.
It simulates the Tile Level 1 Trigger Towers (TTL1), which are hardware sums of the Tile channels, with about 5 channels per tower. The towers are read out in N time slices, with N=7 as a default. The default running mode is 'standard' which produces N read out slices The 'cosmics' running mode is also possible which stores only the peak value of the pulse (this mode is used to simulate the Tile cosmics boards used during pre-beam commissioning). Noise can be added to every sample and threshold can be applied. Dead/half-gain PMTs are also accounted for in this algorithm.
Definition at line 72 of file TileHitToTTL1.h.
◆ StoreGateSvc_t
◆ ~TileHitToTTL1()
virtual TileHitToTTL1::~TileHitToTTL1 |
( |
| ) |
|
|
virtualdefault |
◆ AthReentrantAlgorithm()
AthReentrantAlgorithm::AthReentrantAlgorithm |
Constructor with parameters:
Definition at line 90 of file AthReentrantAlgorithm.cxx.
30 std::make_unique<AthenaBaseComps::AthAlgorithmDHUpdate>
32 std::move (m_updateDataHandles));
◆ cardinality()
unsigned int AthReentrantAlgorithm::cardinality |
( |
| ) |
const |
|
overridevirtualinherited |
Cardinality (Maximum number of clones that can exist) special value 0 means that algorithm is reentrant.
Override this to return 0 for reentrant algorithms.
Override this to return 0 for reentrant algorithms.
Definition at line 55 of file AthReentrantAlgorithm.cxx.
◆ 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);
◆ 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.
◆ 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.
◆ 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 TileHitToTTL1::execute |
( |
const EventContext & |
ctx | ) |
const |
|
overridevirtual |
execute method
Definition at line 177 of file TileHitToTTL1.cxx.
194 ATH_CHECK( badChannelsHandle.isValid() );
195 badChannels = *badChannelsHandle;
209 ATH_CHECK( ttl1Container.record(std::make_unique<TileTTL1Container>()) );
212 std::unique_ptr<TileTTL1Container> mbtsTTL1Container;
214 mbtsTTL1Container = std::make_unique<TileTTL1Container>();
225 std::vector<double> ttAmp[16];
226 std::vector<double> MBTSAmp;
236 double ttAmpTotIg = 0.;
237 int minieta, maxieta, posneg;
239 for (
int ieta = 0; ieta < 16; ++ieta)
248 std::vector<float> ttL1samples;
249 std::vector<float> MBTSsamples;
254 std::vector<double> ttl1Shape(
m_nSamples, 0.);
301 posneg = minieta = maxieta = 0;
306 for (
int ieta = 0; ieta < 16; ++ieta) {
308 ttAmp[ieta][js] = 0.0;
314 memset(ttHit, 0,
sizeof(ttHit));
315 nTT = nIgnore = nHit = 0;
320 for (
const TileHit* tile_hit : *hitCollection) {
330 double hit_calib = samplingFraction->getSamplingFraction(drawerIdx,
channel);
331 hit_calib =
std::round(hit_calib * 1000) / 1000;
334 double qfactor = hit_calib / emScale->calibrateChannel(drawerIdx,
channel
346 if (
status.isNoGainL1()) {
352 if (
status.isHalfGainL1()) {
362 if (mbtsTTL1Container) {
367 hitSamples[js] = 0.0;
369 int n_hits = tile_hit->size();
370 for (
int ihit = 0; ihit < n_hits; ++ihit) {
373 double t_hit = -(tile_hit->time(ihit));
376 double e_hit = tile_hit->energy(ihit);
378 hitSamples[js] += e_hit * ttl1MBTSShape[js];
384 MBTSAmp[js] += qfactor * hitSamples[js];
389 MBTSAmp[js] = qfactor * hitSamples[js];
408 <<
", chan is good=" << is_good <<
endmsg;
426 hitSamples[js] = 0.0;
427 int n_hits = tile_hit->size();
428 for (
int ihit = 0; ihit < n_hits; ++ihit) {
431 double t_hit = -(tile_hit->time(ihit));
434 double e_hit = tile_hit->energy(ihit);
436 hitSamples[js] += e_hit * ttl1Shape[js];
443 ttAmp[ieta][js] += qfactor * hitSamples[js];
450 ttAmp[ieta][js] = qfactor * hitSamples[js];
452 if (ieta >= minieta && ieta <= maxieta)
456 if (ieta < minieta || ieta > maxieta || !is_good)
460 if (ieta >= minieta && ieta <= maxieta && is_good) {
461 ttAmpTot += hitSamples[
m_iTrig] * hit_calib;
463 ttAmpTotIg += hitSamples[
m_iTrig] * hit_calib;
480 <<
", tower=" << tower
483 <<
", e0=" << hitSamples[
m_iTrig] * hit_calib
486 <<
", chan is good= " << is_good;
488 if (ieta >= minieta && ieta <= maxieta)
498 nIgnoreTot += nIgnore;
503 <<
"; posneg=" << posneg
504 <<
", minieta=" << minieta
505 <<
", maxieta=" << maxieta
508 <<
", nIgnore=" << nIgnore );
519 if (mbtsTTL1Container) {
533 MBTSAmp[jsamp] *= ttL1Calib;
534 MBTSsamples[jsamp] = MBTSAmp[jsamp] + ttL1Ped;
536 MBTSsamples[jsamp] += ttL1NoiseSigma * Rndm[jsamp];
540 if (MBTSsamples[jsamp] > ttL1Max)
541 MBTSsamples[jsamp] = ttL1Max;
546 if (MBTSsamples[
m_MBTSiTrig] - ttL1Ped < ttL1Thresh)
550 std::unique_ptr<TileTTL1> mbtsTTL1 = std::make_unique<TileTTL1>(MBTS_id, MBTSsamples);
551 mbtsTTL1Container->
push_back(mbtsTTL1.release());
559 for (
int ieta = minieta; ieta <= maxieta; ++ieta) {
575 double peakAmp = 0.0;
577 for (
int jsamp = 0; jsamp <
m_nSamples; ++jsamp) {
578 ttAmp[ieta][jsamp] *= ttL1Calib;
579 ttAmp[ieta][jsamp] += ttL1Ped;
580 if (ttAmp[ieta][jsamp] > peakAmp) {
581 peakAmp = ttAmp[ieta][jsamp];
587 peakAmp += ttL1NoiseSigma * RandGaussQ::shoot(rngWrapper->
getEngine(ctx));
588 ttL1samples[0] = peakAmp;
590 if (ttL1samples[0] - ttL1Ped < ttL1Thresh)
598 <<
", hitTrue=" << ttHit[ieta]
600 <<
", peak Amp=" << ttAmp[ieta][peakSamp]
601 <<
", with noise=" << ttL1samples[0] <<
endmsg;
614 for (
int jsamp = 0; jsamp <
m_nSamples; ++jsamp) {
615 ttAmp[ieta][jsamp] *= ttL1Calib;
616 ttL1samples[jsamp] = ttAmp[ieta][jsamp] + ttL1Ped;
618 ttL1samples[jsamp] += ttL1NoiseSigma * Rndm[jsamp];
622 if (ttL1samples[jsamp] > ttL1Max)
623 ttL1samples[jsamp] = ttL1Max;
628 if (ttL1samples[
m_iTrig] - ttL1Ped < ttL1Thresh)
636 <<
", hitTrue=" << ttHit[ieta]
638 <<
", amp0=" << ttAmp[ieta][
m_iTrig]
646 std::unique_ptr<TileTTL1> ttl1 = std::make_unique<TileTTL1>(ttId[ieta], ttL1samples);
647 ttl1Container->push_back(ttl1.release());
654 ATH_MSG_DEBUG(
"Sorting container of size " << ttl1Container->size() );
656 ttl1Container->sort(
order);
659 if (mbtsTTL1Container) {
661 ATH_CHECK( mbtsContainer.record(std::move(mbtsTTL1Container)));
670 <<
" nHitTot=" << nHitTot
671 <<
" nIgnoreTot=" << nIgnoreTot
672 <<
" ttAmpTot=" << ttAmpTot
673 <<
" ttAmpTotIg=" << ttAmpTotIg
674 <<
" =>eneTot=" << ttAmpTot + ttAmpTotIg <<
endmsg;
677 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 & AthReentrantAlgorithm::extraOutputDeps |
( |
| ) |
const |
|
overridevirtualinherited |
Return the list of extra output dependencies.
This list is extended to include symlinks implied by inheritance relations.
Definition at line 79 of file AthReentrantAlgorithm.cxx.
86 return Algorithm::extraOutputDeps();
◆ filterPassed()
virtual bool AthReentrantAlgorithm::filterPassed |
( |
const EventContext & |
ctx | ) |
const |
|
inlinevirtualinherited |
◆ finalize()
StatusCode TileHitToTTL1::finalize |
( |
| ) |
|
|
overridevirtual |
◆ initialize()
StatusCode TileHitToTTL1::initialize |
( |
| ) |
|
|
overridevirtual |
initialize method
Definition at line 65 of file TileHitToTTL1.cxx.
106 return StatusCode::FAILURE;
110 ATH_MSG_INFO(
"TileTTL1 from MBTS will not be produced" );
117 ATH_MSG_INFO(
"Bad Channel trigger status will be applied" );
119 ATH_MSG_INFO(
"Bad Channel trigger status will be ignored" );
138 std::vector<double> ttl1Shape(
m_nSamples, 0.);
141 for (
int jsamp = 0; jsamp <
m_nSamples; ++jsamp) {
162 <<
", tileNoise=" << ((
m_tileNoise) ?
"true" :
"false")
169 ATH_MSG_INFO(
"TileHitToTTL1 initialization completed" );
171 return StatusCode::SUCCESS;
◆ 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.
◆ isClonable()
bool AthReentrantAlgorithm::isClonable |
( |
| ) |
const |
|
overridevirtualinherited |
Specify if the algorithm is clonable.
Reentrant algorithms are clonable.
Reimplemented in Simulation::BeamEffectsAlg, InDet::SiTrackerSpacePointFinder, InDet::SCT_Clusterization, InDet::SiSPSeededTrackFinder, SCTRawDataProvider, InDet::GNNSeedingTrackMaker, SCT_PrepDataToxAOD, RoIBResultToxAOD, SCT_CablingCondAlgFromCoraCool, SCT_ReadCalibDataTestAlg, SCT_CablingCondAlgFromText, InDet::SiSPGNNTrackMaker, SCT_ReadCalibChipDataTestAlg, SCT_TestCablingAlg, SCT_ConfigurationConditionsTestAlg, ITkPixelCablingAlg, ITkStripCablingAlg, SCTEventFlagWriter, SCT_ConditionsSummaryTestAlg, SCT_ModuleVetoTestAlg, SCT_MonitorConditionsTestAlg, SCT_LinkMaskingTestAlg, SCT_MajorityConditionsTestAlg, SCT_RODVetoTestAlg, SCT_SensorsTestAlg, SCT_TdaqEnabledTestAlg, SCT_SiliconConditionsTestAlg, SCTSiLorentzAngleTestAlg, SCT_ByteStreamErrorsTestAlg, SCT_ConditionsParameterTestAlg, SCT_FlaggedConditionTestAlg, SCT_StripVetoTestAlg, SCT_RawDataToxAOD, and SCTSiPropertiesTestAlg.
Definition at line 44 of file AthReentrantAlgorithm.cxx.
◆ 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()
◆ setFilterPassed()
virtual void AthReentrantAlgorithm::setFilterPassed |
( |
bool |
state, |
|
|
const EventContext & |
ctx |
|
) |
| const |
|
inlinevirtualinherited |
◆ sysExecute()
StatusCode AthReentrantAlgorithm::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.
Definition at line 67 of file AthReentrantAlgorithm.cxx.
69 return Gaudi::Algorithm::sysExecute (ctx);
◆ sysInitialize()
StatusCode AthReentrantAlgorithm::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 InputMakerBase, and HypoBase.
Definition at line 96 of file AthReentrantAlgorithm.cxx.
107 if ( cs.retrieve().isFailure() ) {
109 return StatusCode::SUCCESS;
111 if (cs->regHandle(
this,*
h).isFailure()) {
112 sc = StatusCode::FAILURE;
113 ATH_MSG_ERROR(
"unable to register WriteCondHandle " <<
h->fullKey()
◆ 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_badChannelsKey
Initial value:{this,
"TileBadChannels", "TileBadChannels", "Input Tile bad channel status"}
Name of TileBadChannels in condition store.
Definition at line 152 of file TileHitToTTL1.h.
◆ m_cabling
◆ m_cablingSvc
Initial value:{ this,
"TileCablingSvc", "TileCablingSvc", "The Tile cabling service"}
Name of Tile cabling service.
Definition at line 136 of file TileHitToTTL1.h.
◆ m_cosmicsType
bool TileHitToTTL1::m_cosmicsType {false} |
|
private |
◆ m_detStore
◆ m_emScaleKey
Initial value:{this,
"TileEMScale", "TileEMScale", "Input Tile EMS calibration constants"}
Name of TileEMScale in condition store.
Definition at line 146 of file TileHitToTTL1.h.
◆ m_evtStore
◆ m_extendedExtraObjects
DataObjIDColl AthReentrantAlgorithm::m_extendedExtraObjects |
|
privateinherited |
Extra output dependency collection, extended by AthAlgorithmDHUpdate to add symlinks.
Empty if no symlinks were found.
Definition at line 153 of file AthReentrantAlgorithm.h.
◆ m_hitContainerKey
Initial value:{this,"TileHitContainer","TileHitCnt",
"input Tile hit container key"}
Definition at line 93 of file TileHitToTTL1.h.
◆ m_infoName
Gaudi::Property<std::string> TileHitToTTL1::m_infoName |
|
private |
Initial value:{this,
"TileInfoName", "TileInfo", "TileInfo object name"}
Definition at line 87 of file TileHitToTTL1.h.
◆ m_iTrig
int TileHitToTTL1::m_iTrig {0} |
|
private |
◆ m_lastTower
int TileHitToTTL1::m_lastTower {15} |
|
private |
◆ m_maskBadChannels
Gaudi::Property<bool> TileHitToTTL1::m_maskBadChannels |
|
private |
Initial value:{this,
"maskBadChannels", true, "If true then bad channels are masked"}
Definition at line 84 of file TileHitToTTL1.h.
◆ m_MBTSiTrig
int TileHitToTTL1::m_MBTSiTrig {0} |
|
private |
index of the triggering time slice for MBTS TTL1
Definition at line 126 of file TileHitToTTL1.h.
◆ m_MBTSnSamples
int TileHitToTTL1::m_MBTSnSamples {0} |
|
private |
number of time slices for each chan for MBTS TTL1
Definition at line 125 of file TileHitToTTL1.h.
◆ m_mbtsTTL1ContainerKey
Initial value:{this,"TileMBTSTTL1Container",
"TileTTL1MBTS",
"Output Tile MBTS TTL1 container key"}
Definition at line 100 of file TileHitToTTL1.h.
◆ m_nSamples
int TileHitToTTL1::m_nSamples {0} |
|
private |
◆ m_randomStreamName
Gaudi::Property<std::string> TileHitToTTL1::m_randomStreamName {this, "RandomStreamName", "Tile_HitToTTL1", ""} |
|
private |
◆ m_rndmSvc
◆ m_samplingFractionKey
Initial value:{this,
"TileSamplingFraction", "TileSamplingFraction", "Input Tile sampling fraction"}
Name of TileSamplingFraction in condition store.
Definition at line 107 of file TileHitToTTL1.h.
◆ m_tileHWID
◆ m_tileID
◆ m_tileInfo
◆ m_tileNoise
bool TileHitToTTL1::m_tileNoise {false} |
|
private |
◆ m_tileTBID
◆ m_tileThresh
bool TileHitToTTL1::m_tileThresh {false} |
|
private |
◆ m_TileTTL1Type
Gaudi::Property<std::string> TileHitToTTL1::m_TileTTL1Type |
|
private |
Initial value:{this,
"TileTTL1Type", "Standard", "Name of Trigger Type"}
Definition at line 90 of file TileHitToTTL1.h.
◆ m_TT_ID
◆ m_ttl1ContainerKey
Initial value:{this,"TileTTL1Container",
"TileTTL1Cnt",
"Output Tile TTL1 container key"}
Definition at line 96 of file TileHitToTTL1.h.
◆ m_varHandleArraysDeclared
◆ m_vhka
The documentation for this class was generated from the following files:
def retrieve(aClass, aKey=None)
void setSeed(const std::string &algName, const EventContext &ctx)
Set the random seed using a string (e.g.
double TTL1CosmicsPed(const Identifier &) const
Returns the pedestal of the Cosmics Trigger signal.
const TileTBID * m_tileTBID
Pointer to TileID helper.
Scalar phi() const
phi method
const TileID * m_tileID
Pointer to TileID helper.
bool is_tiletb(const Identifier &id) const
Test ID if it is TileTBID.
ServiceHandle< TileCablingSvc > m_cablingSvc
Name of Tile cabling service.
double TTL1CosmicsCalib(const Identifier &) const
Returns the factor which converts e_dep (HitAmp) to mV in Cosmics board.
int NdigitSamples() const
Returns the number of sammples (digits) per event.
Scalar eta() const
pseudorapidity method
Gaudi::Details::PropertyBase & declareProperty(Gaudi::Property< T > &t)
int pmt(const Identifier &id) const
SG::WriteHandleKey< TileTTL1Container > m_ttl1ContainerKey
const TileInfo * m_tileInfo
Pointer to TileInfo.
bool m_tileThresh
If true => apply threshold on the conversion to TileTTL1.
float round(const float toRound, const unsigned int decimals)
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)
Class holding bad channel problems.
int side(const Identifier &id) const
int sample(const Identifier &id) const
StoreGateSvc_t m_evtStore
Pointer to StoreGate (event store by default)
std::vector< SG::VarHandleKeyArray * > m_vhka
bool msgLvl(const MSG::Level lvl) const
SG::ReadCondHandleKey< TileSamplingFraction > m_samplingFractionKey
Name of TileSamplingFraction in condition store.
const TileCablingService * m_cabling
Pointer to the TileCablingService instance.
int tower(const Identifier &id) const
bool m_tileNoise
If true => generate noise for the TileTTL1 creation.
#define ATH_MSG_VERBOSE(x)
int type(const Identifier &id) const
extract type field from TileTB identifier
bool is_valid() const
Check if id is in a valid state.
const std::vector< double > & ttl1Shape() const
Return bunch-X TTL1 shape vector.
int module(const Identifier &id) const
extract module field from TileTB identifier
int channel(const HWIdentifier &id) const
extract channel field from HW identifier
int m_nSamples
number of time slices for each channel
SG::WriteHandleKey< TileTTL1Container > m_mbtsTTL1ContainerKey
const ServiceHandle< StoreGateSvc > & detStore() const
The standard StoreGateSvc/DetectorStore Returns (kind of) a pointer to the StoreGateSvc.
double MBTSL1Ped(const Identifier &) const
Returns the pedestal (in mV) for TTL1 adcs for MBTS.
virtual void setOwner(IDataHandleHolder *o)=0
int ros(const HWIdentifier &id) const
extract ros field from HW identifier
double TTL1CosmicsThresh(const Identifier &) const
Returns the threshold of the Cosmics Trigger Board.
double TTL1Max(const Identifier &) const
Returns max possible value (in mV) for TTL1 adcs.
class for ordering any TileData Objects according to logical (offline) identifier To be used with sor...
int phi(const Identifier id) const
return phi according to :
Gaudi::Property< bool > m_maskBadChannels
bool m_cosmicsType
if true => use dediated cosmcis TTL1
int ItrigSample() const
The sample at which the pulse should ideally peak.
Gaudi::Property< std::string > m_randomStreamName
Random Stream Name.
double TTL1NoiseSigma(const Identifier &) const
Returns the sigma (in mV) of Noise in TTL1 adcs.
virtual std::vector< Gaudi::DataHandle * > outputHandles() const override
Return this algorithm's output handles.
double MBTSL1Max(const Identifier &) const
Returns max possible value (in mV) for TTL1 adcs for MBTS.
::StatusCode StatusCode
StatusCode definition for legacy code.
Identifier drawer2MBTS_id(const HWIdentifier &id) const
Gaudi::Property< std::string > m_infoName
double TTL1Ped(const Identifier &) const
Returns the pedestal (in mV) for TTL1 adcs.
StoreGateSvc_t m_detStore
Pointer to StoreGate (detector store by default)
StatusCode initialize(bool used=true)
If this object is used as a property, then this should be called during the initialize phase.
int m_MBTSiTrig
index of the triggering time slice for MBTS TTL1
int channel(const Identifier &id) const
extract channel field from TileTB identifier
DataObjIDColl m_extendedExtraObjects
Extra output dependency collection, extended by AthAlgorithmDHUpdate to add symlinks.
virtual void renounce()=0
std::conditional< std::is_base_of< SG::VarHandleKeyArray, T >::value, VarHandleKeyArrayType, type2 >::type type
SG::ReadHandleKey< TileHitContainer > m_hitContainerKey
ServiceHandle< IAthRNGSvc > m_rndmSvc
Random number generator engine to use.
double MBTSL1Calib(const Identifier &) const
Returns the factor which converts amplitude in pCb to mV in TTL1 for MBTS.
HWIdentifier drawer_id(int frag) const
ROS HWIdentifer.
A wrapper class for event-slot-local random engines.
Condition object to keep Tile channel and ADC status.
virtual StatusCode sysInitialize() override
Override sysInitialize.
int eta(const Identifier id) const
return eta according to :
value_type push_back(value_type pElem)
Add an element to the end of the collection.
StatusCode initialize(bool used=true)
CLHEP::HepRandomEngine * getEngine(const EventContext &ctx) const
Retrieve the random engine corresponding to the provided EventContext.
bool TileNoise() const
Noise switched on/off?
const TileBchStatus & getAdcStatus(const HWIdentifier adc_id) const
Return Tile ADC status.
double MBTSL1NoiseSigma(const Identifier &) const
Returns the sigma (in mV) of Noise in TTL1 adcs for MBTS.
HWIdentifier adc_id(int ros, int drawer, int channel, int adc) const
adc HWIdentifer
Gaudi::Property< std::string > m_TileTTL1Type
int m_iTrig
index of the triggering time slice
bool TileZeroSuppress() const
Zero suppression switched on/off?
int drawer(const HWIdentifier &id) const
extract drawer field from HW identifier
#define ATH_MSG_WARNING(x)
bool connected(int ros, int drawer) const
const CaloLVL1_ID * m_TT_ID
Pointer to TT Identifier.
SG::ReadCondHandleKey< TileEMScale > m_emScaleKey
Name of TileEMScale in condition store.
const TileHWID * m_tileHWID
Pointer to TileHWID helper.
SG::VarHandleKey & vhKey()
Return a non-const reference to the HandleKey.
static unsigned int getDrawerIdx(unsigned int ros, unsigned int drawer)
Returns a drawer hash.
double TTL1CosmicsNoiseSigma(const Identifier &) const
Returns the sigma (in mV) of Noise in TTL1 Cosmics.
Identifier tower_id(int pos_neg_z, int sampling, int region, int eta, int phi) const
build a tower identifier
Gaudi::Details::PropertyBase & declareGaudiProperty(Gaudi::Property< T > &hndl, const SG::VarHandleKeyType &)
specialization for handling Gaudi::Property<SG::VarHandleKey>
double TTL1Thresh(const Identifier &) const
Returns the threshold (in mV) for TTL1 adcs.
SG::ReadCondHandleKey< TileBadChannels > m_badChannelsKey
Name of TileBadChannels in condition store.
double MBTSL1Thresh(const Identifier &) const
Returns the threshold (in mV) for TTL1 adcs for MBTS.
int m_MBTSnSamples
number of time slices for each chan for MBTS TTL1
int m_lastTower
total number of towers in TileCal
double TTL1Calib(const Identifier &) const
Returns the factor which converts amplitude in pCb to mV in TTL1.