ATLAS Offline Software
Loading...
Searching...
No Matches
Muon::NswCalibDbAlg Class Reference

#include <NswCalibDbAlg.h>

Inheritance diagram for Muon::NswCalibDbAlg:
Collaboration diagram for Muon::NswCalibDbAlg:

Public Member Functions

virtual ~NswCalibDbAlg ()=default
virtual StatusCode initialize () override
virtual StatusCode execute (const EventContext &) const override
virtual bool isReEntrant () const override
 Avoid scheduling algorithm multiple times.
virtual StatusCode sysInitialize () override
 Override sysInitialize.
virtual bool isClonable () const override
 Specify if the algorithm is clonable.
virtual unsigned int cardinality () const override
 Cardinality (Maximum number of clones that can exist) special value 0 means that algorithm is reentrant.
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
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.
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

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

using writeKeyTdoPdo_t = SG::WriteCondHandleKey<NswCalibDbTimeChargeData>
using writeKeyThr_t = SG::WriteCondHandleKey<NswCalibDbThresholdData>
using writeKeyMmT0_t = SG::WriteCondHandleKey<NswT0Data>
using readKey_t = SG::ReadCondHandleKey<CondAttrListCollection>
using writeHandleTdoPdo_t = SG::WriteCondHandle<NswCalibDbTimeChargeData>
using writeHandleThr_t = SG::WriteCondHandle<NswCalibDbThresholdData >
using writeHandleT0_t = SG::WriteCondHandle<NswT0Data>
using TimeChargeType = NswCalibDbTimeChargeData::CalibDataType
using TimeChargeTech = MuonCond::CalibTechType
using ThresholdTech = NswCalibDbThresholdData::ThrsldTechType
using T0Tech = MuonCond::CalibTechType
typedef ServiceHandle< StoreGateSvcStoreGateSvc_t

Private Member Functions

StatusCode processTdoPdoData (const EventContext &ctx) const
StatusCode processThrData (const EventContext &ctx) const
StatusCode processNSWT0Data (const EventContext &ctx) const
template<typename Key_t, typename... KeyArgs_t>
StatusCode declareDependency (const EventContext &ctx, SG::WriteCondHandle< Key_t > &writeHandle, const readKey_t &readKey, KeyArgs_t &... otherKeys) const
StatusCode loadTimeChargeData (const EventContext &ctx, const readKey_t &readKey, const TimeChargeTech tech, const TimeChargeType type, NswCalibDbTimeChargeData &writeCdo) const
StatusCode loadThresholdData (const EventContext &ctx, const readKey_t &readKey, const ThresholdTech tech, NswCalibDbThresholdData &writeCdo) const
StatusCode loadT0ToTree (const EventContext &ctx, const readKey_t &readKey, std::unique_ptr< TTree > &tree) const
StatusCode loadT0Data (std::unique_ptr< TTree > &&tree, NswT0Data &writeCdo, const T0Tech tech) const
bool buildChannelId (Identifier &channelId, unsigned elinkId, unsigned vmm, unsigned channel) const
Gaudi::Details::PropertyBase & declareGaudiProperty (Gaudi::Property< T, V, H > &hndl, const SG::VarHandleKeyType &)
 specialization for handling Gaudi::Property<SG::VarHandleKey>

Private Attributes

Gaudi::Property< bool > m_isData {this, "isData" , true, "Processing data"}
Gaudi::Property< bool > m_processThresholds {this, "processThresholds", false, "Process threshold data"}
ServiceHandle< Muon::IMuonIdHelperSvcm_idHelperSvc {this, "MuonIdHelperSvc", "Muon::MuonIdHelperSvc/MuonIdHelperSvc"}
writeKeyTdoPdo_t m_writeKey_tdopdo {this, "WriteKey_TdoPdo", "NswCalibDbTimeChargeData", "Key of output calibration data (TDOs and PDOs)" }
writeKeyThr_t m_writeKey_thr {this, "WriteKey_Thr" , "NswCalibDbThresholdData" , "Key of output calibration data (VMM thresholds)"}
writeKeyMmT0_t m_writeKey_nswT0 {this, "WriteKey_NswT0" , "NswT0Data" , "Key of output calibration data (NSW T0s)"}
readKey_t m_readKey_mm_sidea_tdo {this, "ReadKey_MM_SIDEA_TDO" , "/MDT/MM/TIME/SIDEA" , "Key of input MM condition data for side A data TDO"}
readKey_t m_readKey_mm_sidec_tdo {this, "ReadKey_MM_SIDEC_TDO" , "/MDT/MM/TIME/SIDEC" , "Key of input MM condition data for side C data TDO"}
readKey_t m_readKey_mm_sidea_pdo {this, "ReadKey_MM_SIDEA_PDO" , "/MDT/MM/CHARGE/SIDEA" , "Key of input MM condition data for side A data PDO"}
readKey_t m_readKey_mm_sidec_pdo {this, "ReadKey_MM_SIDEC_PDO" , "/MDT/MM/CHARGE/SIDEC" , "Key of input MM condition data for side C data PDO"}
readKey_t m_readKey_mm_sidea_thr {this, "ReadKey_MM_SIDEA_THR" , "/MDT/MM/THR/SIDEA" , "Key of input MM condition data for side A data THR"}
readKey_t m_readKey_mm_sidec_thr {this, "ReadKey_MM_SIDEC_THR" , "/MDT/MM/THR/SIDEC" , "Key of input MM condition data for side C data THR"}
readKey_t m_readKey_stgc_sidea_tdo {this, "ReadKey_STGC_SIDEA_TDO", "/TGC/NSW/TIME/SIDEA" , "Key of input sTGC condition data for side A data TDO"}
readKey_t m_readKey_stgc_sidec_tdo {this, "ReadKey_STGC_SIDEC_TDO", "/TGC/NSW/TIME/SIDEC" , "Key of input sTGC condition data for side C data TDO"}
readKey_t m_readKey_stgc_sidea_pdo {this, "ReadKey_STGC_SIDEA_PDO", "/TGC/NSW/CHARGE/SIDEA", "Key of input sTGC condition data for side A data PDO"}
readKey_t m_readKey_stgc_sidec_pdo {this, "ReadKey_STGC_SIDEC_PDO", "/TGC/NSW/CHARGE/SIDEC", "Key of input sTGC condition data for side C data PDO"}
readKey_t m_readKey_stgc_sidea_thr {this, "ReadKey_STGC_SIDEA_THR", "/TGC/NSW/THR/SIDEA" , "Key of input sTGC condition data for side A data THR"}
readKey_t m_readKey_stgc_sidec_thr {this, "ReadKey_STGC_SIDEC_THR", "/TGC/NSW/THR/SIDEC" , "Key of input sTGC condition data for side C data THR"}
Gaudi::Property< bool > m_loadMmT0Data {this, "loadMmT0Data", false, "Enable loading the sTgc T0Data"}
Gaudi::Property< bool > m_loadsTgcT0Data {this, "loadsTgcT0Data", false, "Enable loading the sTgcT0Data"}
readKey_t m_readKey_mm_t0 {this, "ReadKey_MM_T0", "" , "Key of input MM condition data for side A data T0"}
readKey_t m_readKey_stgc_t0 {this, "ReadKey_STGC_T0", "" , "Key of input sTGC condition data for side C data T0"}
Gaudi::Property< std::string > m_mmT0FilePath {this, "MmT0FileName", "", "Path to a file containing the MM T0 data, this will override the data from the conditions db"}
Gaudi::Property< std::string > m_stgcT0FilePath {this, "sTgcT0FileName", "", "Path to a file containing the sTGC T0 data, this will override the data from the conditions db"}
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

Definition at line 26 of file NswCalibDbAlg.h.

Member Typedef Documentation

◆ readKey_t

◆ StoreGateSvc_t

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

Definition at line 388 of file AthCommonDataStore.h.

◆ T0Tech

Definition at line 73 of file NswCalibDbAlg.h.

◆ ThresholdTech

◆ TimeChargeTech

◆ TimeChargeType

◆ writeHandleT0_t

◆ writeHandleTdoPdo_t

◆ writeHandleThr_t

◆ writeKeyMmT0_t

◆ writeKeyTdoPdo_t

◆ writeKeyThr_t

Constructor & Destructor Documentation

◆ ~NswCalibDbAlg()

virtual Muon::NswCalibDbAlg::~NswCalibDbAlg ( )
virtualdefault

Member Function Documentation

◆ buildChannelId()

bool Muon::NswCalibDbAlg::buildChannelId ( Identifier & channelId,
unsigned elinkId,
unsigned vmm,
unsigned channel ) const
private

Definition at line 488 of file NswCalibDbAlg.cxx.

488 {
489
490 // return dummy Identifier
491 if(elinkId==0){
492 channelId = Identifier(0);
493 return true;
494 }
495
496 // build NSWOfflineHelper
497 auto resId = std::make_unique<Muon::nsw::NSWResourceId>(elinkId);
498 Muon::nsw::helper::NSWOfflineHelper helper(resId.get(), vmm, channel);
499
500 std::string stationName;
501 if(resId->detId() == eformat::MUON_MMEGA_ENDCAP_A_SIDE || resId->detId() == eformat::MUON_MMEGA_ENDCAP_C_SIDE) {
502 stationName = resId->is_large_station () ? "MML" : "MMS";
503 } else if(resId->detId() == eformat::MUON_STGC_ENDCAP_A_SIDE || resId->detId() == eformat::MUON_STGC_ENDCAP_C_SIDE) {
504 stationName = resId->is_large_station () ? "STL" : "STS";
505 } else {
506 ATH_MSG_ERROR("NSWResource Id "<< elinkId << " does not yield detID that is either sTGC or MMG");
507 THROW_EXCEPTION("NSWCalibDbAlg buildChannelId called with detID that is neither sTGC or MMG");
508 }
509
510 int8_t stationEta = resId->station_eta ();
511 uint8_t stationPhi = resId->station_phi ();
512 uint8_t multiLayer = resId->multi_layer ();
513 uint8_t gasGap = resId->gas_gap ();
514
515 uint8_t channelType = helper.channel_type ();
516 uint16_t channelNumber = helper.channel_number();
517
518 ATH_MSG_VERBOSE("Station name=" << stationName
519 << " Station eta=" << static_cast <int> (stationEta)
520 << " Station phi=" << static_cast <unsigned> (stationPhi)
521 << " Multilayer=" << static_cast <unsigned> (multiLayer)
522 << " Gas gap=" << static_cast <unsigned> (gasGap)
523 << " Channel type=" << static_cast <unsigned> (channelType)
524 << " Channel Number=" << channelNumber );
525
526
527 // MM
528 if(resId->detId() == eformat::MUON_MMEGA_ENDCAP_A_SIDE || resId->detId() == eformat::MUON_MMEGA_ENDCAP_C_SIDE){
529 bool isValid {false};
530 Identifier chnlId = m_idHelperSvc->mmIdHelper().channelID(stationName, static_cast<int>(stationEta), static_cast<int>(stationPhi), static_cast<int>(multiLayer), static_cast<int>(gasGap), static_cast<int>(channelNumber), isValid);
531 if(!isValid){
532 ATH_MSG_DEBUG("Could not extract valid channelId for MM elink "<<elinkId);
533 return false;
534 }
535 channelId = chnlId;
536 }
537 // sTGC
538 else if(resId->detId() == eformat::MUON_STGC_ENDCAP_A_SIDE || resId->detId() == eformat::MUON_STGC_ENDCAP_C_SIDE){
539 bool isValid {false};
540 Identifier chnlId = m_idHelperSvc->stgcIdHelper().channelID(stationName, static_cast<int>(stationEta), static_cast<int>(stationPhi), static_cast<int>(multiLayer), static_cast<int>(gasGap), static_cast<int>(channelType), static_cast<int>(channelNumber), isValid);
541 if(!isValid){
542 ATH_MSG_DEBUG("Could not extract valid channelId for STGC elink "<<elinkId);
543 return false;
544 }
545 channelId = chnlId;
546 }
547
548 return true;
549}
#define ATH_MSG_ERROR(x)
#define ATH_MSG_VERBOSE(x)
#define ATH_MSG_DEBUG(x)
bool isValid(const T &p)
Av: we implement here an ATLAS-sepcific convention: all particles which are 99xxxxx are fine.
Definition AtlasPID.h:878
ServiceHandle< Muon::IMuonIdHelperSvc > m_idHelperSvc
setWord1 uint16_t
#define THROW_EXCEPTION(MESSAGE)
Definition throwExcept.h:10

◆ cardinality()

unsigned int AthCommonReentrantAlgorithm< Gaudi::Algorithm >::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.

Definition at line 75 of file AthCommonReentrantAlgorithm.cxx.

64{
65 return 0;
66}

◆ declareDependency()

template<typename Key_t, typename... KeyArgs_t>
StatusCode Muon::NswCalibDbAlg::declareDependency ( const EventContext & ctx,
SG::WriteCondHandle< Key_t > & writeHandle,
const readKey_t & readKey,
KeyArgs_t &... otherKeys ) const
private

Definition at line 384 of file NswCalibDbAlg.cxx.

387 {
388 if (!readKey.empty()) {
389 SG::ReadCondHandle readHandle{readKey, ctx};
390 if (!readHandle.isValid()) {
391 ATH_MSG_FATAL("Failed to load conditions data "<<readKey.fullKey());
392 return StatusCode::FAILURE;
393 }
394 ATH_MSG_DEBUG("Size of CondAttrListCollection " << readKey.fullKey()
395 << " readCdo->size()= " << readHandle->size());
396 writeHandle.addDependency(readHandle);
397 }
398 if constexpr(sizeof...(otherKeys) > 0) {
399 ATH_CHECK(declareDependency(ctx,writeHandle, otherKeys...));
400 }
401 return StatusCode::SUCCESS;
402 }
#define ATH_CHECK
Evaluate an expression and check for errors.
#define ATH_MSG_FATAL(x)
StatusCode declareDependency(const EventContext &ctx, SG::WriteCondHandle< Key_t > &writeHandle, const readKey_t &readKey, KeyArgs_t &... otherKeys) const
void addDependency(const EventIDRange &range)

◆ 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 }
Gaudi::Details::PropertyBase & declareProperty(Gaudi::Property< T, V, H > &t)

◆ 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 Muon::NswCalibDbAlg::execute ( const EventContext & ctx) const
overridevirtual

Definition at line 64 of file NswCalibDbAlg.cxx.

64 {
65
66 ATH_MSG_DEBUG( "execute " << name() );
67
71 return StatusCode::SUCCESS;
72
73}
StatusCode processNSWT0Data(const EventContext &ctx) const
StatusCode processTdoPdoData(const EventContext &ctx) const
StatusCode processThrData(const EventContext &ctx) const

◆ 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 & AthCommonReentrantAlgorithm< 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 94 of file AthCommonReentrantAlgorithm.cxx.

90{
91 // If we didn't find any symlinks to add, just return the collection
92 // from the base class. Otherwise, return the extended collection.
93 if (!m_extendedExtraObjects.empty()) {
95 }
97}
An algorithm that can be simultaneously executed in multiple threads.

◆ filterPassed()

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

Definition at line 96 of file AthCommonReentrantAlgorithm.h.

96 {
97 return execState( ctx ).filterPassed();
98 }
virtual bool filterPassed(const EventContext &ctx) const

◆ initialize()

StatusCode Muon::NswCalibDbAlg::initialize ( )
overridevirtual

Definition at line 25 of file NswCalibDbAlg.cxx.

25 {
26
27 // retrievals
28 ATH_MSG_DEBUG( "initializing " << name() );
29 ATH_CHECK(m_idHelperSvc.retrieve());
30
31 // initialize read keys
44 m_loadMmT0Data = m_loadMmT0Data && m_idHelperSvc->hasMM() && (!m_mmT0FilePath.empty() || !m_readKey_mm_t0.empty());
45 m_loadsTgcT0Data = m_loadsTgcT0Data && m_idHelperSvc->hasSTGC() && (!m_stgcT0FilePath.empty() || !m_readKey_stgc_t0.empty()) ;
46
49
50 // write key for time/charge data
51 ATH_CHECK(m_writeKey_tdopdo.initialize());
52
53 // write key for threshold data
55
57
58 return StatusCode::SUCCESS;
59}
static const Attributes_t empty
Gaudi::Property< bool > m_isData
Gaudi::Property< std::string > m_stgcT0FilePath
readKey_t m_readKey_mm_sidea_pdo
Gaudi::Property< bool > m_loadsTgcT0Data
readKey_t m_readKey_mm_sidec_tdo
readKey_t m_readKey_mm_sidea_tdo
Gaudi::Property< bool > m_processThresholds
readKey_t m_readKey_mm_sidec_pdo
readKey_t m_readKey_stgc_sidec_thr
Gaudi::Property< bool > m_loadMmT0Data
readKey_t m_readKey_stgc_sidea_pdo
virtual StatusCode initialize() override
readKey_t m_readKey_stgc_t0
readKey_t m_readKey_stgc_sidec_tdo
Gaudi::Property< std::string > m_mmT0FilePath
readKey_t m_readKey_stgc_sidec_pdo
writeKeyMmT0_t m_writeKey_nswT0
readKey_t m_readKey_stgc_sidea_tdo
readKey_t m_readKey_mm_sidec_thr
writeKeyThr_t m_writeKey_thr
readKey_t m_readKey_mm_sidea_thr
readKey_t m_readKey_stgc_sidea_thr
writeKeyTdoPdo_t m_writeKey_tdopdo

◆ 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()

◆ isReEntrant()

virtual bool AthCondAlgorithm::isReEntrant ( ) const
inlineoverridevirtualinherited

Avoid scheduling algorithm multiple times.

With multiple concurrent events, conditions objects often expire simultaneously for all slots. To avoid that the scheduler runs the CondAlg in each slot, we declare it as "non-reentrant". This ensures that the conditions objects are only created once.

In case a particular CondAlg should behave differently, it can override this method again and return true.

See also
ATEAM-836

Definition at line 39 of file AthCondAlgorithm.h.

39{ return false; }

◆ loadT0Data()

StatusCode Muon::NswCalibDbAlg::loadT0Data ( std::unique_ptr< TTree > && tree,
NswT0Data & writeCdo,
const T0Tech tech ) const
private

Definition at line 255 of file NswCalibDbAlg.cxx.

257 {
258 int sector{0}, layer{0}, channel{0}, channelType{0}, stationEta{0};
259 double time{0};
260 tree->SetBranchAddress("sector", &sector);
261 tree->SetBranchAddress("layer", &layer);
262 tree->SetBranchAddress("channel", &channel);
263 tree->SetBranchAddress("mean", &time);
264 tree->SetBranchAddress("stationEta", &stationEta);
265 tree->SetBranchAddress("channel_type", &channelType);
266 if (msgLvl(MSG::VERBOSE)) {
267 tree->Print();
268 }
269
270 ATH_MSG_DEBUG("NSW t0 calibration tree has "<< tree->GetEntries() <<" entries for tech "
271 << (tech==T0Tech::MM ? "MM" : "sTGC"));
272
273 for(Long64_t i_channel=0; i_channel<tree->GetEntries(); ++i_channel) {
274 tree->GetEntry(i_channel);
275
276 int stationPhi = ((std::abs(sector)-1)/2)+1;
277 uint multilayer = (layer<4 ? 1:2); // multilayer 1 corresponds to layers 0-3, ML 2 to layers 4-7
278 uint gasGap = layer - (multilayer-1)*4 + 1;
279
280 Identifier id{};
281
282 if(tech==T0Tech::MM){
283 std::string stationName = (sector%2==1 ? "MML" : "MMS");
284 bool isValid{true};
285 id = m_idHelperSvc->mmIdHelper().channelID(stationName, stationEta, stationPhi,multilayer,gasGap, channel
286 // checking the validity of the identifier in production code is too expensiv, therefore only check it in debug build
287 #ifndef NDEBUG
288 , isValid
289 #endif
290 );
291
292 if(!isValid){
293 ATH_MSG_ERROR("MM sector "<< sector <<" layer " << layer<< " channel "<< channel << " mean "<< time << " stationEta " << stationEta << " stationPhi " << stationPhi <<" stationName "<< stationName << " multilayer " << multilayer << " gas gap "<< gasGap << " channel " << channel);
294 ATH_MSG_ERROR("Failed to build identifier");
295 return StatusCode::FAILURE;
296 }
297 } else {
298 std::string stationName = (sector%2==1 ? "STL" : "STS");
299 bool isValid{true};
300 id = m_idHelperSvc->stgcIdHelper().channelID(stationName, stationEta, stationPhi, multilayer, gasGap, channelType, channel
301 // checking the validity of the identifier in production code is too expensiv, therefore only check it in debug build
302 #ifndef NDEBUG
303 , isValid
304 #endif
305 );
306 if(!isValid){
307 ATH_MSG_ERROR("Failed to build identifier");
308 ATH_MSG_DEBUG("STG sector "<< sector <<" layer " << layer<< " channel "<< channel << " mean "<< time << " stationEta " << stationEta << " stationPhi " << stationPhi <<" stationName "<< stationName << " multilayer " << multilayer << " gas gap "<< gasGap << " channel " << channel << " channel type" << channelType);
309 return StatusCode::FAILURE;
310 }
311 }
312 writeCdo.setData(id, time);
313 }
314 return StatusCode::SUCCESS;
315
316}
unsigned int uint
bool msgLvl(const MSG::Level lvl) const
void setData(const Identifier &channelId, const float channelT0)
Set the t0 calibration constant for a given nsw channel.
Definition NswT0Data.cxx:42
time(flags, cells_name, *args, **kw)
@ layer
Definition HitInfo.h:79
TChain * tree

◆ loadT0ToTree()

StatusCode Muon::NswCalibDbAlg::loadT0ToTree ( const EventContext & ctx,
const readKey_t & readKey,
std::unique_ptr< TTree > & tree ) const
private

Definition at line 226 of file NswCalibDbAlg.cxx.

228 {
229 // set up read handle
230 const CondAttrListCollection* readCdo{};
231 ATH_CHECK(SG::get(readCdo, readKey, ctx));
232 if(!readCdo){
233 ATH_MSG_DEBUG("Key is empty");
234 return StatusCode::SUCCESS;
235 }
236 // iterate through data
238 for(itr = readCdo->begin(); itr != readCdo->end(); ++itr) {
239
240 // retrieve blob
241 const coral::AttributeList& atr = itr->second;
242 if(atr["data"].specification().type() != typeid(coral::Blob)) {
243 ATH_MSG_FATAL( "Data column is not of type blob!" );
244 return StatusCode::FAILURE;
245 }
246 coral::Blob blob = atr["data"].data<coral::Blob>();
248 ATH_MSG_FATAL( "Cannot retrieve data from coral blob!" );
249 return StatusCode::FAILURE;
250 }
251 }
252 return StatusCode::SUCCESS;
253}
const_iterator end() const
const_iterator begin() const
Access to Chan/AttributeList pairs via iterators.
ChanAttrListMap::const_iterator const_iterator
bool readBlobAsTTree(const coral::Blob &blob, std::unique_ptr< TTree > &tree, const std::string_view name="tree")
Interprets the coral::Blob as a TTree instance.
const T * get(const ReadCondHandleKey< T > &key, const EventContext &ctx)
Convenience function to retrieve an object given a ReadCondHandleKey.

◆ loadThresholdData()

StatusCode Muon::NswCalibDbAlg::loadThresholdData ( const EventContext & ctx,
const readKey_t & readKey,
const ThresholdTech tech,
NswCalibDbThresholdData & writeCdo ) const
private

Definition at line 321 of file NswCalibDbAlg.cxx.

324 {
325 // set up read handle
326 const CondAttrListCollection* readCdo{nullptr};
327 ATH_CHECK(SG::get(readCdo, readKey, ctx));
328 if(!readCdo){
329 ATH_MSG_DEBUG("Empty key");
330 return StatusCode::SUCCESS;
331 }
332 // iterate through data
334 unsigned nObjs = 0;
335 for(itr = readCdo->begin(); itr != readCdo->end(); ++itr) {
336
337 // retrieve blob
338 const coral::AttributeList& atr = itr->second;
339 if(atr["data"].specification().type() != typeid(coral::Blob)) {
340 ATH_MSG_FATAL( "Data column is not of type blob!" );
341 return StatusCode::FAILURE;
342 }
343 coral::Blob blob = atr["data"].data<coral::Blob>();
344 std::unique_ptr<TTree> tree;
346 ATH_MSG_FATAL( "Cannot retrieve data from coral blob!" );
347 return StatusCode::FAILURE;
348 }
349
350 // parse tree
351 unsigned elinkId{0}, vmm{0}, channel{0};
352 float threshold{0.};
353 tree->SetBranchAddress("vmm", &vmm);
354 tree->SetBranchAddress("channel", &channel);
355 tree->SetBranchAddress("elinkId", &elinkId);
356 tree->SetBranchAddress("threshold", &threshold);
357
358 // loop over channels
359 unsigned nChns = 0;
360 for(unsigned iEvt=0; iEvt<tree->GetEntries(); ++iEvt){
361 tree->GetEntry(iEvt);
362 Identifier channelId;
363 if(!buildChannelId(channelId, elinkId, vmm, channel)){
364 ATH_MSG_DEBUG("Could not find valid channelId for elink "<<elinkId<<" This is either caused by calibration data of a channel that is known to be not connected to the detector or might point to some issues in the identifier used for the calibration constants");
365 continue;
366 }
367 if(channelId.get_compact()==0){
368 writeCdo.setZero(tech, threshold);
369 ++nChns;
370 continue;
371 }
372 writeCdo.setData(channelId, threshold);
373 ++nChns;
374 }
375 ATH_MSG_VERBOSE("Retrieved data for "<<nChns<<" channels.");
376 ++nObjs;
377 }
378 ATH_MSG_DEBUG("Retrieved data for "<<nObjs<<" objects.");
379 return StatusCode::SUCCESS;
380}
bool buildChannelId(Identifier &channelId, unsigned elinkId, unsigned vmm, unsigned channel) const
void setData(const Identifier &channelId, const float)
void setZero(const ThrsldTechType tech, const float)

◆ loadTimeChargeData()

StatusCode Muon::NswCalibDbAlg::loadTimeChargeData ( const EventContext & ctx,
const readKey_t & readKey,
const TimeChargeTech tech,
const TimeChargeType type,
NswCalibDbTimeChargeData & writeCdo ) const
private

Definition at line 408 of file NswCalibDbAlg.cxx.

412 {
413
414 if (readKey.empty()) {
415 ATH_MSG_DEBUG("Empty key parsed");
416 return StatusCode::SUCCESS;
417 }
418 // set up read handle
419 const CondAttrListCollection* readCdo{nullptr};
420 ATH_CHECK(SG::get(readCdo, readKey, ctx));
421 // iterate through data
423 unsigned nObjs = 0;
424 for(itr = readCdo->begin(); itr != readCdo->end(); ++itr) {
425
426 // retrieve blob
427 const coral::AttributeList& atr = itr->second;
428 if(atr["data"].specification().type() != typeid(coral::Blob)) {
429 ATH_MSG_FATAL( "Data column is not of type blob!" );
430 return StatusCode::FAILURE;
431 }
432 coral::Blob blob = atr["data"].data<coral::Blob>();
433 std::unique_ptr<TTree> tree;
435 ATH_MSG_FATAL( "Cannot retrieve data from coral blob!" );
436 return StatusCode::FAILURE;
437 }
438 // parse tree
439 unsigned elinkId{0}, vmm{0}, channel{0};
440 float slope{0.f}, intercept{0.f};
441 //float slope{0}, slopeError{0}, intercept{0},interceptError{0};
442
443 tree->SetBranchAddress("vmm", &vmm);
444 tree->SetBranchAddress("channel", &channel);
445 tree->SetBranchAddress("elinkId", &elinkId);
446 tree->SetBranchAddress("slope", &slope);
447 //tree->SetBranchAddress("slopeError" , &slopeError ); // keep for later
448 tree->SetBranchAddress("intercept", &intercept);
449 //tree->SetBranchAddress("interceptError", &interceptError);
450
451
452 // loop over channels
453 unsigned nChns = 0;
454 for(Long64_t iEvt=0; iEvt<tree->GetEntries(); ++iEvt){
455 tree->GetEntry(iEvt);
456 Identifier channelId{};
457 if(!buildChannelId(channelId, elinkId, vmm, channel)) {
458 ATH_MSG_DEBUG("Could not find valid channelId for elink "<<elinkId
459 <<" This is either caused by calibration data of a channel that is known to be not connected "
460 <<"to the detector or might point to some issues in the identifier used for the calibration constants");
461 continue;
462 }
463
464 NswCalibDbTimeChargeData::CalibConstants calib_data{};
465 calib_data.slope = slope;
466 //calib_data.slopeError = slopeError; // keep for later
467 calib_data.intercept = intercept;
468 //calib_data.interceptError = interceptError;
469
470 if(!channelId.get_compact()){
471 writeCdo.setZero(type, tech, calib_data);
472 ++nChns;
473 continue;
474 }
475 writeCdo.setData(type, channelId, calib_data);
476 ++nChns;
477 }
478 ATH_MSG_VERBOSE("Retrieved data for "<<nChns<<" channels. "<<tree->GetName()<<" "<<tree->GetEntries());
479 ++nObjs;
480 }
481 ATH_MSG_DEBUG("Retrieved data for "<<nObjs<<" objects.");
482
483 return StatusCode::SUCCESS;
484}
void setZero(CalibDataType type, MuonCond::CalibTechType tech, CalibConstants constants)
void setData(CalibDataType type, const Identifier &chnlId, CalibConstants constants)

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

◆ processNSWT0Data()

StatusCode Muon::NswCalibDbAlg::processNSWT0Data ( const EventContext & ctx) const
private

Definition at line 145 of file NswCalibDbAlg.cxx.

145 {
146 // set up write handles for MmT0 data
148 return StatusCode::SUCCESS;
149 }
150
152 if (wrHdl.isValid()) {
153 ATH_MSG_DEBUG("CondHandle " << wrHdl.fullKey() << " is already valid."
154 << " In theory this should not be called, but may happen"
155 << " if multiple concurrent events are being processed out of order.");
156 return StatusCode::SUCCESS;
157 }
158 wrHdl.addDependency(EventIDRange(IOVInfiniteRange::infiniteTime()));
159
160 ATH_MSG_DEBUG("Range of MmT0 output is " << wrHdl.getRange());
161 auto wrCdo{std::make_unique<NswT0Data>(m_idHelperSvc.get())};
162 if(m_loadMmT0Data){
163 if(!m_mmT0FilePath.empty() ){ // let's read the constants from a file
164 ATH_MSG_INFO("processing MM T0 from file " << m_mmT0FilePath);
165 std::unique_ptr<TFile> file (TFile::Open(m_mmT0FilePath.value().c_str()));
166 if(!file || file->IsZombie()){
167 ATH_MSG_FATAL("Failed to open file containing the MM T0Data. Filepath: "<<m_mmT0FilePath);
168 return StatusCode::FAILURE;
169 }
170 std::unique_ptr<TTree> tree{dynamic_cast<TTree*>(file->Get("tree_ch"))};
171 if(!tree){
172 ATH_MSG_FATAL("Failed to load tree containing the NswT0Data.");
173 return StatusCode::FAILURE;
174 }
175 ATH_CHECK(loadT0Data(std::move(tree), *wrCdo, T0Tech::MM));
176
177 } else if(!m_readKey_mm_t0.empty()){
178 ATH_MSG_DEBUG("LOAD NSW MM T0 FROM DB");
179 std::unique_ptr<TTree> tree{};
181 ATH_CHECK(loadT0Data(std::move(tree), *wrCdo, T0Tech::MM));
182
183 } else {
184 ATH_MSG_ERROR("Neither a database folder nor a file have been provided to read the MM T0 constants");
185 return StatusCode::FAILURE;
186 }
187 }
189 if(!m_stgcT0FilePath.empty()){ // let's read the constants from a file
190 ATH_MSG_INFO("processing sTGC T0 from file " << m_stgcT0FilePath);
191 wrHdl.addDependency(EventIDRange(IOVInfiniteRange::infiniteTime()));
192 std::unique_ptr<TFile> file (TFile::Open(m_stgcT0FilePath.value().c_str()));
193 if(!file || file->IsZombie()){
194 ATH_MSG_FATAL("Failed to open file containing the sTGC T0Data. Filepath: "<<m_stgcT0FilePath);
195 return StatusCode::FAILURE;
196 }
197 std::unique_ptr<TTree> tree{dynamic_cast<TTree*>(file->Get("tree_ch"))};
198 if(!tree){
199 ATH_MSG_FATAL("Failed to load tree containing the NswT0Data.");
200 return StatusCode::FAILURE;
201 }
202 ATH_CHECK(loadT0Data(std::move(tree), *wrCdo, T0Tech::STGC));
203
204 } else if(!m_readKey_stgc_t0.empty()) {
205 ATH_MSG_DEBUG("LOAD NSW sTGC T0 FROM DB");
206 std::unique_ptr<TTree> tree;
207 //check failure implies tree is nullptr, and will exit
209 //coverity[FORWARD_NULL:FALSE]
210 ATH_CHECK(loadT0Data(std::move(tree), *wrCdo, T0Tech::STGC));
211
212 } else {
213 ATH_MSG_ERROR("Neither a database folder nor a file have been provided to read the sTGC T0 constants");
214 return StatusCode::FAILURE;
215 }
216 }
218
219 // insert/write data for NswT0Data data
220 ATH_CHECK(wrHdl.record(std::move(wrCdo)));
221 ATH_MSG_DEBUG("Recorded new " << wrHdl.key() << " with range " << wrHdl.getRange() << " into Conditions Store");
222
223 return StatusCode::SUCCESS;
224}
#define ATH_MSG_INFO(x)
static EventIDRange infiniteTime()
Produces an EventIDRange that is inifinite in Time and invalid in RunLumi.
StatusCode loadT0Data(std::unique_ptr< TTree > &&tree, NswT0Data &writeCdo, const T0Tech tech) const
StatusCode loadT0ToTree(const EventContext &ctx, const readKey_t &readKey, std::unique_ptr< TTree > &tree) const
SG::WriteCondHandle< NswT0Data > writeHandleT0_t
TFile * file

◆ processTdoPdoData()

StatusCode Muon::NswCalibDbAlg::processTdoPdoData ( const EventContext & ctx) const
private

Definition at line 77 of file NswCalibDbAlg.cxx.

77 {
78
79 // set up write handles for time/charge data
80 SG::WriteCondHandle wrHdl{m_writeKey_tdopdo, ctx};
81 if (wrHdl.isValid()) {
82 ATH_MSG_DEBUG("CondHandle " << wrHdl.fullKey() << " is already valid."
83 << " In theory this should not be called, but may happen"
84 << " if multiple concurrent events are being processed out of order.");
85 return StatusCode::SUCCESS;
86 }
87 ATH_MSG_DEBUG("Range of time/charge output is " << wrHdl.getRange());
88 auto wrCdo{std::make_unique<NswCalibDbTimeChargeData>(m_idHelperSvc.get())};
89
90 // MM
91 ATH_CHECK(loadTimeChargeData(ctx, m_readKey_mm_sidea_tdo, TimeChargeTech::MM, TimeChargeType::TDO, *wrCdo));
92 ATH_CHECK(loadTimeChargeData(ctx, m_readKey_mm_sidec_tdo, TimeChargeTech::MM, TimeChargeType::TDO, *wrCdo));
93 ATH_CHECK(loadTimeChargeData(ctx, m_readKey_mm_sidea_pdo, TimeChargeTech::MM, TimeChargeType::PDO, *wrCdo));
94 ATH_CHECK(loadTimeChargeData(ctx, m_readKey_mm_sidec_pdo, TimeChargeTech::MM, TimeChargeType::PDO, *wrCdo));
95 ATH_CHECK(loadTimeChargeData(ctx, m_readKey_stgc_sidea_tdo, TimeChargeTech::STGC, TimeChargeType::TDO, *wrCdo));
96 ATH_CHECK(loadTimeChargeData(ctx, m_readKey_stgc_sidec_tdo, TimeChargeTech::STGC, TimeChargeType::TDO, *wrCdo));
97 ATH_CHECK(loadTimeChargeData(ctx, m_readKey_stgc_sidea_pdo, TimeChargeTech::STGC, TimeChargeType::PDO, *wrCdo));
98 ATH_CHECK(loadTimeChargeData(ctx, m_readKey_stgc_sidec_pdo, TimeChargeTech::STGC, TimeChargeType::PDO, *wrCdo));
103 ATH_CHECK(wrHdl.record(std::move(wrCdo)));
104 ATH_MSG_DEBUG("Recorded new " << wrHdl.key() << " with range " << wrHdl.getRange() << " into Conditions Store");
105
106 return StatusCode::SUCCESS; // nothing to do
107
108}
StatusCode loadTimeChargeData(const EventContext &ctx, const readKey_t &readKey, const TimeChargeTech tech, const TimeChargeType type, NswCalibDbTimeChargeData &writeCdo) const
const std::string & key() const
const EventIDRange & getRange() const
StatusCode record(const EventIDRange &range, T *t)
record handle, with explicit range DEPRECATED
const DataObjID & fullKey() const

◆ processThrData()

StatusCode Muon::NswCalibDbAlg::processThrData ( const EventContext & ctx) const
private

Definition at line 113 of file NswCalibDbAlg.cxx.

113 {
114
116 return StatusCode::SUCCESS; // nothing to do
117 }
118 // set up write handles for threshold data
119 SG::WriteCondHandle wrHdl{m_writeKey_thr, ctx};
120 if (wrHdl.isValid()) {
121 ATH_MSG_DEBUG("CondHandle " << wrHdl.fullKey() << " is already valid."
122 << " In theory this should not be called, but may happen"
123 << " if multiple concurrent events are being processed out of order.");
124 return StatusCode::SUCCESS;
125 }
126 ATH_MSG_DEBUG("Range of threshold output is " << wrHdl.getRange());
127 auto wrCdo{std::make_unique<NswCalibDbThresholdData>(m_idHelperSvc.get())};
128
129 ATH_CHECK(loadThresholdData(ctx, m_readKey_mm_sidea_thr, ThresholdTech::MM, *wrCdo));
130 ATH_CHECK(loadThresholdData(ctx, m_readKey_mm_sidec_thr, ThresholdTech::MM, *wrCdo));
131 ATH_CHECK(loadThresholdData(ctx, m_readKey_stgc_sidea_thr, ThresholdTech::STGC, *wrCdo));
132 ATH_CHECK(loadThresholdData(ctx, m_readKey_stgc_sidec_thr, ThresholdTech::STGC, *wrCdo));
135
136 // insert/write data for threshold data
137 ATH_CHECK(wrHdl.record(std::move(wrCdo)));
138 ATH_MSG_DEBUG("Recorded new " << wrHdl.key() << " with range " << wrHdl.getRange() << " into Conditions Store");
139
140 return StatusCode::SUCCESS;
141}
StatusCode loadThresholdData(const EventContext &ctx, const readKey_t &readKey, const ThresholdTech tech, NswCalibDbThresholdData &writeCdo) const

◆ 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 AthCommonReentrantAlgorithm< Gaudi::Algorithm >::setFilterPassed ( bool state,
const EventContext & ctx ) const
inlinevirtualinherited

Definition at line 100 of file AthCommonReentrantAlgorithm.h.

100 {
102 }
virtual void setFilterPassed(bool state, const EventContext &ctx) const

◆ sysExecute()

StatusCode AthCommonReentrantAlgorithm< 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.

Definition at line 85 of file AthCommonReentrantAlgorithm.cxx.

77{
78 return BaseAlg::sysExecute (ctx);
79}

◆ sysInitialize()

StatusCode AthCommonReentrantAlgorithm< 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 HypoBase, and InputMakerBase.

Definition at line 61 of file AthCommonReentrantAlgorithm.cxx.

107 {
109
110 if (sc.isFailure()) {
111 return sc;
112 }
113
114 ServiceHandle<ICondSvc> cs("CondSvc",name());
115 for (auto h : outputHandles()) {
116 if (h->isCondition() && h->mode() == Gaudi::DataHandle::Writer) {
117 // do this inside the loop so we don't create the CondSvc until needed
118 if ( cs.retrieve().isFailure() ) {
119 ATH_MSG_WARNING("no CondSvc found: won't autoreg WriteCondHandles");
120 return StatusCode::SUCCESS;
121 }
122 if (cs->regHandle(this,*h).isFailure()) {
124 ATH_MSG_ERROR("unable to register WriteCondHandle " << h->fullKey()
125 << " with CondSvc");
126 }
127 }
128 }
129 return sc;
130}
#define ATH_MSG_WARNING(x)
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_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_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 AthCommonReentrantAlgorithm< Gaudi::Algorithm >::m_extendedExtraObjects
privateinherited

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

Empty if no symlinks were found.

Definition at line 114 of file AthCommonReentrantAlgorithm.h.

◆ m_idHelperSvc

ServiceHandle<Muon::IMuonIdHelperSvc> Muon::NswCalibDbAlg::m_idHelperSvc {this, "MuonIdHelperSvc", "Muon::MuonIdHelperSvc/MuonIdHelperSvc"}
private

Definition at line 89 of file NswCalibDbAlg.h.

89{this, "MuonIdHelperSvc", "Muon::MuonIdHelperSvc/MuonIdHelperSvc"};

◆ m_isData

Gaudi::Property<bool> Muon::NswCalibDbAlg::m_isData {this, "isData" , true, "Processing data"}
private

Definition at line 86 of file NswCalibDbAlg.h.

86{this, "isData" , true, "Processing data"};

◆ m_loadMmT0Data

Gaudi::Property<bool> Muon::NswCalibDbAlg::m_loadMmT0Data {this, "loadMmT0Data", false, "Enable loading the sTgc T0Data"}
private

Definition at line 108 of file NswCalibDbAlg.h.

108{this, "loadMmT0Data", false, "Enable loading the sTgc T0Data"};

◆ m_loadsTgcT0Data

Gaudi::Property<bool> Muon::NswCalibDbAlg::m_loadsTgcT0Data {this, "loadsTgcT0Data", false, "Enable loading the sTgcT0Data"}
private

Definition at line 109 of file NswCalibDbAlg.h.

109{this, "loadsTgcT0Data", false, "Enable loading the sTgcT0Data"};

◆ m_mmT0FilePath

Gaudi::Property<std::string> Muon::NswCalibDbAlg::m_mmT0FilePath {this, "MmT0FileName", "", "Path to a file containing the MM T0 data, this will override the data from the conditions db"}
private

Definition at line 112 of file NswCalibDbAlg.h.

112{this, "MmT0FileName", "", "Path to a file containing the MM T0 data, this will override the data from the conditions db"};

◆ m_processThresholds

Gaudi::Property<bool> Muon::NswCalibDbAlg::m_processThresholds {this, "processThresholds", false, "Process threshold data"}
private

Definition at line 87 of file NswCalibDbAlg.h.

87{this, "processThresholds", false, "Process threshold data"};

◆ m_readKey_mm_sidea_pdo

readKey_t Muon::NswCalibDbAlg::m_readKey_mm_sidea_pdo {this, "ReadKey_MM_SIDEA_PDO" , "/MDT/MM/CHARGE/SIDEA" , "Key of input MM condition data for side A data PDO"}
private

Definition at line 97 of file NswCalibDbAlg.h.

97{this, "ReadKey_MM_SIDEA_PDO" , "/MDT/MM/CHARGE/SIDEA" , "Key of input MM condition data for side A data PDO"};

◆ m_readKey_mm_sidea_tdo

readKey_t Muon::NswCalibDbAlg::m_readKey_mm_sidea_tdo {this, "ReadKey_MM_SIDEA_TDO" , "/MDT/MM/TIME/SIDEA" , "Key of input MM condition data for side A data TDO"}
private

Definition at line 95 of file NswCalibDbAlg.h.

95{this, "ReadKey_MM_SIDEA_TDO" , "/MDT/MM/TIME/SIDEA" , "Key of input MM condition data for side A data TDO"};

◆ m_readKey_mm_sidea_thr

readKey_t Muon::NswCalibDbAlg::m_readKey_mm_sidea_thr {this, "ReadKey_MM_SIDEA_THR" , "/MDT/MM/THR/SIDEA" , "Key of input MM condition data for side A data THR"}
private

Definition at line 99 of file NswCalibDbAlg.h.

99{this, "ReadKey_MM_SIDEA_THR" , "/MDT/MM/THR/SIDEA" , "Key of input MM condition data for side A data THR"};

◆ m_readKey_mm_sidec_pdo

readKey_t Muon::NswCalibDbAlg::m_readKey_mm_sidec_pdo {this, "ReadKey_MM_SIDEC_PDO" , "/MDT/MM/CHARGE/SIDEC" , "Key of input MM condition data for side C data PDO"}
private

Definition at line 98 of file NswCalibDbAlg.h.

98{this, "ReadKey_MM_SIDEC_PDO" , "/MDT/MM/CHARGE/SIDEC" , "Key of input MM condition data for side C data PDO"};

◆ m_readKey_mm_sidec_tdo

readKey_t Muon::NswCalibDbAlg::m_readKey_mm_sidec_tdo {this, "ReadKey_MM_SIDEC_TDO" , "/MDT/MM/TIME/SIDEC" , "Key of input MM condition data for side C data TDO"}
private

Definition at line 96 of file NswCalibDbAlg.h.

96{this, "ReadKey_MM_SIDEC_TDO" , "/MDT/MM/TIME/SIDEC" , "Key of input MM condition data for side C data TDO"};

◆ m_readKey_mm_sidec_thr

readKey_t Muon::NswCalibDbAlg::m_readKey_mm_sidec_thr {this, "ReadKey_MM_SIDEC_THR" , "/MDT/MM/THR/SIDEC" , "Key of input MM condition data for side C data THR"}
private

Definition at line 100 of file NswCalibDbAlg.h.

100{this, "ReadKey_MM_SIDEC_THR" , "/MDT/MM/THR/SIDEC" , "Key of input MM condition data for side C data THR"};

◆ m_readKey_mm_t0

readKey_t Muon::NswCalibDbAlg::m_readKey_mm_t0 {this, "ReadKey_MM_T0", "" , "Key of input MM condition data for side A data T0"}
private

Definition at line 110 of file NswCalibDbAlg.h.

110{this, "ReadKey_MM_T0", "" , "Key of input MM condition data for side A data T0"};

◆ m_readKey_stgc_sidea_pdo

readKey_t Muon::NswCalibDbAlg::m_readKey_stgc_sidea_pdo {this, "ReadKey_STGC_SIDEA_PDO", "/TGC/NSW/CHARGE/SIDEA", "Key of input sTGC condition data for side A data PDO"}
private

Definition at line 103 of file NswCalibDbAlg.h.

103{this, "ReadKey_STGC_SIDEA_PDO", "/TGC/NSW/CHARGE/SIDEA", "Key of input sTGC condition data for side A data PDO"};

◆ m_readKey_stgc_sidea_tdo

readKey_t Muon::NswCalibDbAlg::m_readKey_stgc_sidea_tdo {this, "ReadKey_STGC_SIDEA_TDO", "/TGC/NSW/TIME/SIDEA" , "Key of input sTGC condition data for side A data TDO"}
private

Definition at line 101 of file NswCalibDbAlg.h.

101{this, "ReadKey_STGC_SIDEA_TDO", "/TGC/NSW/TIME/SIDEA" , "Key of input sTGC condition data for side A data TDO"};

◆ m_readKey_stgc_sidea_thr

readKey_t Muon::NswCalibDbAlg::m_readKey_stgc_sidea_thr {this, "ReadKey_STGC_SIDEA_THR", "/TGC/NSW/THR/SIDEA" , "Key of input sTGC condition data for side A data THR"}
private

Definition at line 105 of file NswCalibDbAlg.h.

105{this, "ReadKey_STGC_SIDEA_THR", "/TGC/NSW/THR/SIDEA" , "Key of input sTGC condition data for side A data THR"};

◆ m_readKey_stgc_sidec_pdo

readKey_t Muon::NswCalibDbAlg::m_readKey_stgc_sidec_pdo {this, "ReadKey_STGC_SIDEC_PDO", "/TGC/NSW/CHARGE/SIDEC", "Key of input sTGC condition data for side C data PDO"}
private

Definition at line 104 of file NswCalibDbAlg.h.

104{this, "ReadKey_STGC_SIDEC_PDO", "/TGC/NSW/CHARGE/SIDEC", "Key of input sTGC condition data for side C data PDO"};

◆ m_readKey_stgc_sidec_tdo

readKey_t Muon::NswCalibDbAlg::m_readKey_stgc_sidec_tdo {this, "ReadKey_STGC_SIDEC_TDO", "/TGC/NSW/TIME/SIDEC" , "Key of input sTGC condition data for side C data TDO"}
private

Definition at line 102 of file NswCalibDbAlg.h.

102{this, "ReadKey_STGC_SIDEC_TDO", "/TGC/NSW/TIME/SIDEC" , "Key of input sTGC condition data for side C data TDO"};

◆ m_readKey_stgc_sidec_thr

readKey_t Muon::NswCalibDbAlg::m_readKey_stgc_sidec_thr {this, "ReadKey_STGC_SIDEC_THR", "/TGC/NSW/THR/SIDEC" , "Key of input sTGC condition data for side C data THR"}
private

Definition at line 106 of file NswCalibDbAlg.h.

106{this, "ReadKey_STGC_SIDEC_THR", "/TGC/NSW/THR/SIDEC" , "Key of input sTGC condition data for side C data THR"};

◆ m_readKey_stgc_t0

readKey_t Muon::NswCalibDbAlg::m_readKey_stgc_t0 {this, "ReadKey_STGC_T0", "" , "Key of input sTGC condition data for side C data T0"}
private

Definition at line 111 of file NswCalibDbAlg.h.

111{this, "ReadKey_STGC_T0", "" , "Key of input sTGC condition data for side C data T0"};

◆ m_stgcT0FilePath

Gaudi::Property<std::string> Muon::NswCalibDbAlg::m_stgcT0FilePath {this, "sTgcT0FileName", "", "Path to a file containing the sTGC T0 data, this will override the data from the conditions db"}
private

Definition at line 113 of file NswCalibDbAlg.h.

113{this, "sTgcT0FileName", "", "Path to a file containing the sTGC T0 data, this will override the data from the conditions db"};

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

◆ m_writeKey_nswT0

writeKeyMmT0_t Muon::NswCalibDbAlg::m_writeKey_nswT0 {this, "WriteKey_NswT0" , "NswT0Data" , "Key of output calibration data (NSW T0s)"}
private

Definition at line 93 of file NswCalibDbAlg.h.

93{this, "WriteKey_NswT0" , "NswT0Data" , "Key of output calibration data (NSW T0s)"};

◆ m_writeKey_tdopdo

writeKeyTdoPdo_t Muon::NswCalibDbAlg::m_writeKey_tdopdo {this, "WriteKey_TdoPdo", "NswCalibDbTimeChargeData", "Key of output calibration data (TDOs and PDOs)" }
private

Definition at line 91 of file NswCalibDbAlg.h.

91{this, "WriteKey_TdoPdo", "NswCalibDbTimeChargeData", "Key of output calibration data (TDOs and PDOs)" };

◆ m_writeKey_thr

writeKeyThr_t Muon::NswCalibDbAlg::m_writeKey_thr {this, "WriteKey_Thr" , "NswCalibDbThresholdData" , "Key of output calibration data (VMM thresholds)"}
private

Definition at line 92 of file NswCalibDbAlg.h.

92{this, "WriteKey_Thr" , "NswCalibDbThresholdData" , "Key of output calibration data (VMM thresholds)"};

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