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

#include <sTgcRdoToPrepDataToolMT.h>

Inheritance diagram for Muon::sTgcRdoToPrepDataToolMT:

Classes

struct  DataCache
 Data cache to hold the translated prd & xAOD containers. More...

Public Member Functions

virtual ~sTgcRdoToPrepDataToolMT ()=default
 Destructor.
virtual StatusCode initialize () override
 Standard AthAlgTool initialize method.
StatusCode decode (const EventContext &ctx, const std::vector< IdentifierHash > &idVect) const override
 Decode RDO to PRD
A vector of IdentifierHash are passed in, and the data corresponding to this list (i.e.
StatusCode decode (const EventContext &ctx, const std::vector< uint32_t > &robIds) const override
StatusCode provideEmptyContainer (const EventContext &ctx) const override

Protected Types

using PrdKey_t = SG::WriteHandleKey<sTgcPrepDataContainer>

Protected Member Functions

StatusCode processCollection (const EventContext &ctx, DataCache &xAODcontainers, const STGC_RawDataCollection *rdoColl) const
DataCache setupOutputContainers (const EventContext &ctx) const
const STGC_RawDataContainergetRdoContainer (const EventContext &ctx) const
void processRDOContainer (const EventContext &ctx, DataCache &xAODcontainers, const std::vector< IdentifierHash > &idsToDecode) const

Protected Attributes

SG::ReadCondHandleKey< MuonGM::MuonDetectorManagerm_muDetMgrKey {this, "DetectorManagerKey", "MuonDetectorManager", "Key of input MuonDetectorManager condition data"}
ServiceHandle< IMuonIdHelperSvcm_idHelperSvc {this, "MuonIdHelperSvc", "MuonIdHelperSvc/MuonIdHelperSvc"}
SG::ReadHandleKey< STGC_RawDataContainerm_rdoContainerKey {this, "InputCollection", "sTGCRDO", "RDO container to read"}
PrdKey_t m_stgcPrepDataContainerKey {this, "OutputCollection", "STGC_Measurements", "sTgcPrepDataContainer to record"}
Gaudi::Property< bool > m_merge {this, "Merge", true}
ToolHandle< ISTgcClusterBuilderToolm_clusterBuilderTool {this,"ClusterBuilderTool","SimpleSTgcClusterBuilderTool/SimpleSTgcClusterBuilderTool"}
ToolHandle< INSWCalibToolm_calibTool {this,"NSWCalibTool", ""}
SG::UpdateHandleKey< sTgcPrepDataCollection_Cachem_prdContainerCacheKey {this, "PrdCacheKey", "", "Optional external cache for the sTGC PRD container"}
 This is the key for the cache for the sTGC PRD containers, can be empty.
SG::WriteHandleKey< xAOD::sTgcStripContainerm_xAODStripKey {this, "xAODStripKey", "", "If empty, do not produce xAOD, otherwise this is the key of the output xAOD MDT PRD container"}
SG::WriteHandleKey< xAOD::sTgcPadContainerm_xAODPadKey {this, "xAODPadKey", "", "If empty, do not produce xAOD, otherwise this is the key of the output xAOD MDT PRD container"}
SG::WriteHandleKey< xAOD::sTgcWireContainerm_xAODWireKey {this, "xAODWireKey", "", "If empty, do not produce xAOD, otherwise this is the key of the output xAOD MDT PRD container"}
Gaudi::Property< bool > m_useNewGeo
const MuonGMR4::MuonDetectorManagerm_detMgrR4 {nullptr}

Detailed Description

Definition at line 39 of file sTgcRdoToPrepDataToolMT.h.

Member Typedef Documentation

◆ PrdKey_t

Constructor & Destructor Documentation

◆ ~sTgcRdoToPrepDataToolMT()

virtual Muon::sTgcRdoToPrepDataToolMT::~sTgcRdoToPrepDataToolMT ( )
virtualdefault

Destructor.

Member Function Documentation

◆ decode() [1/2]

StatusCode Muon::sTgcRdoToPrepDataToolMT::decode ( const EventContext & ctx,
const std::vector< IdentifierHash > & idVect ) const
override

Decode RDO to PRD
A vector of IdentifierHash are passed in, and the data corresponding to this list (i.e.

in a Region of Interest) are converted.

Parameters
requestedIdHashVectVector of hashes to convert i.e. the hashes of ROD collections in a 'Region of Interest'
Returns
selectedIdHashVect This is the subset of requestedIdVect which were actually found to contain data
(i.e. if you want you can use this vector of hashes to optimise the retrieval of data in subsequent steps.)

Definition at line 372 of file sTgcRdoToPrepDataToolMT.cxx.

373 {
374 ATH_MSG_DEBUG("Size of the input hash id vector: " << idVect.size());
375
376 DataCache outCache = setupOutputContainers(ctx);
377 if (!outCache.isValid) return StatusCode::FAILURE;
378
379 processRDOContainer(ctx, outCache, idVect);
380 return StatusCode::SUCCESS;
381}
#define ATH_MSG_DEBUG(x)
void processRDOContainer(const EventContext &ctx, DataCache &xAODcontainers, const std::vector< IdentifierHash > &idsToDecode) const
DataCache setupOutputContainers(const EventContext &ctx) const
Data cache to hold the translated prd & xAOD containers.

◆ decode() [2/2]

StatusCode Muon::sTgcRdoToPrepDataToolMT::decode ( const EventContext & ctx,
const std::vector< uint32_t > & robIds ) const
override

Definition at line 385 of file sTgcRdoToPrepDataToolMT.cxx.

385 {
386 ATH_MSG_FATAL("ROB based decoding is not supported....");
387 return StatusCode::FAILURE;
388}
#define ATH_MSG_FATAL(x)

◆ getRdoContainer()

const STGC_RawDataContainer * Muon::sTgcRdoToPrepDataToolMT::getRdoContainer ( const EventContext & ctx) const
protected

Definition at line 329 of file sTgcRdoToPrepDataToolMT.cxx.

330{
331 auto rdoContainerHandle = SG::makeHandle(m_rdoContainerKey, ctx);
332 if(rdoContainerHandle.isValid()) {
333 ATH_MSG_DEBUG("STGC_getRdoContainer success");
334 return rdoContainerHandle.cptr();
335 }
336 ATH_MSG_WARNING("Retrieval of STGC_RawDataContainer failed !");
337
338 return nullptr;
339}
#define ATH_MSG_WARNING(x)
SG::ReadHandleKey< STGC_RawDataContainer > m_rdoContainerKey
SG::ReadCondHandle< T > makeHandle(const SG::ReadCondHandleKey< T > &key, const EventContext &ctx=Gaudi::Hive::currentContext())

◆ initialize()

StatusCode Muon::sTgcRdoToPrepDataToolMT::initialize ( )
overridevirtual

Standard AthAlgTool initialize method.

Definition at line 131 of file sTgcRdoToPrepDataToolMT.cxx.

132{
133 ATH_MSG_DEBUG(" in initialize()");
134 ATH_CHECK( m_idHelperSvc.retrieve() );
135 // check if the initialization of the data container is success
137 ATH_CHECK(m_rdoContainerKey.initialize());
138 ATH_CHECK(m_muDetMgrKey.initialize());
139 ATH_CHECK(m_calibTool.retrieve());
140 ATH_CHECK(m_prdContainerCacheKey.initialize(!m_prdContainerCacheKey.key().empty()) );
141
142 if (m_useNewGeo) {
143 ATH_CHECK(detStore()->retrieve(m_detMgrR4));
144 }
145
146 ATH_CHECK(m_xAODStripKey.initialize(!m_xAODStripKey.empty()));
147 ATH_CHECK(m_xAODWireKey.initialize(!m_xAODWireKey.empty()));
148 ATH_CHECK(m_xAODPadKey.initialize(!m_xAODPadKey.empty()));
149 return StatusCode::SUCCESS;
150}
#define ATH_CHECK
Evaluate an expression and check for errors.
ToolHandle< INSWCalibTool > m_calibTool
SG::WriteHandleKey< xAOD::sTgcWireContainer > m_xAODWireKey
SG::UpdateHandleKey< sTgcPrepDataCollection_Cache > m_prdContainerCacheKey
This is the key for the cache for the sTGC PRD containers, can be empty.
const MuonGMR4::MuonDetectorManager * m_detMgrR4
ServiceHandle< IMuonIdHelperSvc > m_idHelperSvc
SG::WriteHandleKey< xAOD::sTgcStripContainer > m_xAODStripKey
SG::WriteHandleKey< xAOD::sTgcPadContainer > m_xAODPadKey
SG::ReadCondHandleKey< MuonGM::MuonDetectorManager > m_muDetMgrKey

◆ processCollection()

StatusCode Muon::sTgcRdoToPrepDataToolMT::processCollection ( const EventContext & ctx,
DataCache & xAODcontainers,
const STGC_RawDataCollection * rdoColl ) const
protected

Definition at line 154 of file sTgcRdoToPrepDataToolMT.cxx.

156 {
157
158 const sTgcIdHelper& id_helper = m_idHelperSvc->stgcIdHelper();
159 const IdentifierHash hash = rdoColl->identifyHash();
160
161 ATH_MSG_DEBUG(" ***************** Start of process STGC Collection with hash Id: " << hash);
162
163 // check if the collection already exists, otherwise add it
164 if ( cache.prdWriteHandle->indexFindPtr(hash) != nullptr ) {
165 ATH_MSG_DEBUG("In processCollection: collection already contained in the sTGC PrepData container");
166 return StatusCode::FAILURE;
167
168 }
169
170 // Get write handle for this collection
171 sTgcPrepDataContainer::IDC_WriteHandle lock = cache.prdWriteHandle->getWriteHandle( hash );
172 // Check if collection already exists (via the cache, i.e. in online trigger mode)
173 if( lock.OnlineAndPresentInAnotherView() ) {
174 ATH_MSG_DEBUG("In processCollection: collection already available in the sTgc PrepData container (via cache)");
175 return StatusCode::SUCCESS;
176 }
177
178 // Make the PRD collection (will be added to container later
179 std::unique_ptr<sTgcPrepDataCollection>& prdColl = cache.collections[hash];
180 if (!prdColl) {
181 prdColl = std::make_unique<sTgcPrepDataCollection>(hash);
182 }
183
184 // set the offline identifier of the collection Id
185 IdContext context = id_helper.module_context();
186 Identifier moduleId;
187 int getId = id_helper.get_id(hash, moduleId, &context);
188 if ( getId != 0 ) {
189 ATH_MSG_ERROR("Could not convert the hash Id: " << hash << " to identifier");
190 } else {
191 prdColl->setIdentifier(moduleId);
192 }
193
194 // vectors to hold PRDs decoded for this RDO collection
195 std::vector<sTgcPrepData> sTgcStripPrds;
196 std::vector<sTgcPrepData> sTgcWirePrds;
197 std::vector<sTgcPrepData> sTgcPadPrds;
198 sTgcStripPrds.reserve(rdoColl->size());
199 sTgcPadPrds.reserve(rdoColl->size());
200 sTgcWirePrds.reserve(rdoColl->size());
201
202 // Count hits with negative charge, which indicates bad calibration
203
204
205 // MuonDetectorManager from the conditions store
206 const MuonGM::MuonDetectorManager* muonDetMgr{nullptr};
207 ATH_CHECK(SG::get(muonDetMgr,m_muDetMgrKey,ctx));
208 // convert the RDO collection to a PRD collection
209 for ( const STGC_RawData* rdo : * rdoColl) {
210
211 ATH_MSG_DEBUG("Adding a new sTgc PrepRawData");
212
213 const Identifier rdoId = rdo->identify();
214
215 std::vector<Identifier> rdoList{rdoId};
216
217 // get the local and global positions
218 const MuonGM::sTgcReadoutElement* detEl = muonDetMgr->getsTgcReadoutElement(rdoId);
219 Amg::Vector2D localPos{Amg::Vector2D::Zero()};
220
221 int channelType = id_helper.channelType(rdoId);
222 if (channelType < 0 || channelType > 2) {
223 ATH_MSG_ERROR("Unknown sTGC channel type");
224 return StatusCode::FAILURE;
225 }
226 if (!detEl->stripPosition(rdoId, localPos)) {
227 ATH_MSG_ERROR("Could not get the local strip position for "<<m_idHelperSvc->toString(rdoId));
228 return StatusCode::FAILURE;
229 }
230
231 // get the resolution from strip width
232 // to be fixed: for now do not set the resolution, it will be added in the next update
233 const int gasGap = id_helper.gasGap(rdoId);
234 const int channel = id_helper.channel(rdoId);
235
236 NSWCalib::CalibratedStrip calibStrip;
237 ATH_CHECK (m_calibTool->calibrateStrip(ctx, rdo, calibStrip));
238 int calibratedCharge = static_cast<int>(calibStrip.charge);
239 if (calibratedCharge < 0 && channelType == 1) { // we only want to protect against negatively charged strips and we should not lose wire or pad hits because of bad calibrations since charge does not matter for them in reco.
240 if (!hitNegativeCharge) {
241 ATH_MSG_DEBUG("One sTGC RDO or more, such as one with pdo = "<<rdo->charge() << " counts, corresponds to a negative charge (" << calibratedCharge << "). Skipping these RDOs");
242 hitNegativeCharge = true;
243 }
244 continue;
245 }
246
247 double width{0.};
248 if (channelType == sTgcIdHelper::sTgcChannelTypes::Pad) { // Pads
249 const MuonGM::MuonPadDesign* design = detEl->getPadDesign(rdoId);
250 if (!design) {
251 ATH_MSG_WARNING("Failed to get design for sTGC pad" );
252 } else {
253 width = design->channelWidth(localPos, true);
254 }
255 } else { // Strips and wires
256 const MuonGM::MuonChannelDesign* design = detEl->getDesign(rdoId);
257 if (!design) {
258 ATH_MSG_WARNING("Failed to get design for sTGC strip/wire" );
259 } else {
260 width = design->channelWidth();
261 }
262 }
263
264 const double resolution = width/ std::sqrt(12.);
265 auto cov = Amg::MatrixX(1,1);
266 cov.setIdentity();
267 (cov)(0,0) = resolution*resolution;
268
269 ATH_MSG_DEBUG("Adding a new STGC PRD, gasGap: " << gasGap << " channel: " << channel << " type: " << channelType << " resolution " << resolution );
270
271 if(m_merge) {
272 std::vector<sTgcPrepData>& sTgcPrds = channelType == sTgcIdHelper::Pad ? sTgcPadPrds :
273 (channelType == sTgcIdHelper::Strip ? sTgcStripPrds : sTgcWirePrds);
274
275 // check if the same RdoId is already present; keep the one with the smallest time
276 auto it = std::find_if(sTgcPrds.begin(), sTgcPrds.end(), [&rdoId](const sTgcPrepData& prd) {
277 return (prd.identify() == rdoId);
278 });
279 if (it == sTgcPrds.end()) {
280 sTgcPrds.emplace_back(rdoId, hash, std::move(localPos), std::move(rdoList), std::move(cov), detEl, calibratedCharge, calibStrip.time);
281 sTgcPrds.back().setAuthor(sTgcPrepData::Author::RdoToPrdConverter);
282 } else if (it->time() > calibStrip.time) {
283 *it = sTgcPrepData(rdoId, hash, std::move(localPos), std::move(rdoList), std::move(cov), detEl, calibratedCharge, calibStrip.time);
285 }
286
287 // TODO - add merging for xAOD
288
289 } else {
290 // if not merging just add the PRD to the collection
291 prdColl->push_back(std::make_unique<sTgcPrepData>(rdoId,
292 hash,
293 std::move(localPos),
294 std::move(rdoList),
295 std::move(cov),
296 detEl,
297 calibratedCharge,
298 calibStrip.time));
299 }
300 }
301
302 if(m_merge) {
303 // merge strip prds that fire closeby channels (not clusterizing wires and pads)
304 std::vector<std::unique_ptr<sTgcPrepData>> sTgcStripClusters;
305 ATH_CHECK(m_clusterBuilderTool->getClusters(ctx, std::move(sTgcStripPrds), sTgcStripClusters)); // Clusterize strips
306
307 for ( std::unique_ptr<sTgcPrepData>& it : sTgcStripClusters ) {
308 it->setHashAndIndex(prdColl->identifyHash(), prdColl->size());
309 prdColl->push_back(std::move(it));
310 }
311 for ( sTgcPrepData& prd : sTgcWirePrds ) {
312 prd.setHashAndIndex(prdColl->identifyHash(), prdColl->size());
313 prdColl->push_back(std::make_unique<sTgcPrepData>(std::move(prd)));
314 }
315 for (sTgcPrepData& prd : sTgcPadPrds ) {
316 prd.setHashAndIndex(prdColl->identifyHash(), prdColl->size());
317 prdColl->push_back(std::make_unique<sTgcPrepData>(std::move(prd)));
318 }
319 }
320
321 // now add the collection to the container
322 ATH_MSG_DEBUG("PRD hash " << hash << " has been moved to container");
323
324 return StatusCode::SUCCESS;
325}
#define ATH_MSG_ERROR(x)
virtual void lock()=0
Interface to allow an object to lock itself when made const in SG.
const double width
const sTgcReadoutElement * getsTgcReadoutElement(const Identifier &id) const
access via extended identifier (requires unpacking)
const MuonPadDesign * getPadDesign(const Identifier &id) const
returns the MuonChannelDesign class for the given identifier
virtual bool stripPosition(const Identifier &id, Amg::Vector2D &pos) const override final
strip position - should be renamed to channel position If the strip number is outside the range of va...
const MuonChannelDesign * getDesign(const Identifier &id) const
returns the MuonChannelDesign class for the given identifier
virtual int get_id(const IdentifierHash &hash_id, Identifier &id, const IdContext *context=0) const override
Create compact id from hash id (return == 0 for OK).
IdContext module_context() const
id for module
ToolHandle< ISTgcClusterBuilderTool > m_clusterBuilderTool
int channelType(const Identifier &id) const
int channel(const Identifier &id) const override
int gasGap(const Identifier &id) const override
get the hashes
Eigen::Matrix< double, Eigen::Dynamic, Eigen::Dynamic > MatrixX
Dynamic Matrix - dynamic allocation.
Eigen::Matrix< double, 2, 1 > Vector2D
double resolution[nGasTypes][nParametersResolution]
const T * get(const ReadCondHandleKey< T > &key, const EventContext &ctx)
Convenience function to retrieve an object given a ReadCondHandleKey.
const IIntersectionCache * cache() const
Retrieve the associated cache block, if it exists.
double channelWidth() const
calculate local channel width
double channelWidth(const Amg::Vector2D &pos, bool measPhi, bool preciseMeas=false) const
calculate local channel width

◆ processRDOContainer()

void Muon::sTgcRdoToPrepDataToolMT::processRDOContainer ( const EventContext & ctx,
DataCache & xAODcontainers,
const std::vector< IdentifierHash > & idsToDecode ) const
protected

Definition at line 343 of file sTgcRdoToPrepDataToolMT.cxx.

346{
347 ATH_MSG_DEBUG("In processRDOContainer");
348 const STGC_RawDataContainer* rdoContainer = getRdoContainer(ctx);
349 if (!rdoContainer) return;
350
351 // run in unseeded mode
352 for (const STGC_RawDataCollection* rdoColl : *rdoContainer) {
353 if (rdoColl->empty()) continue;
354 ATH_MSG_DEBUG("New RDO collection with " << rdoColl->size() << "STGC Hits");
355
356 const IdentifierHash hash = rdoColl->identifyHash();
357
358 // check if we actually want to decode this RDO collection
359 if(!idsToDecode.empty() and std::find(idsToDecode.begin(), idsToDecode.end(), hash)==idsToDecode.end()) {
360 ATH_MSG_DEBUG("Hash ID " << hash << " not in input list, ignore");
361 continue;
362 } else ATH_MSG_DEBUG("Going to decode " << hash);
363
364 if(processCollection(ctx, cache, rdoColl).isFailure()) {
365 ATH_MSG_DEBUG("processCsm returns a bad StatusCode - keep going for new data collections in this event");
366 }
367 }
368}
StatusCode processCollection(const EventContext &ctx, DataCache &xAODcontainers, const STGC_RawDataCollection *rdoColl) const
const STGC_RawDataContainer * getRdoContainer(const EventContext &ctx) const

◆ provideEmptyContainer()

StatusCode Muon::sTgcRdoToPrepDataToolMT::provideEmptyContainer ( const EventContext & ctx) const
override

Definition at line 389 of file sTgcRdoToPrepDataToolMT.cxx.

389 {
390 return setupOutputContainers(ctx).isValid ? StatusCode::SUCCESS : StatusCode::FAILURE;
391}

◆ setupOutputContainers()

sTgcRdoToPrepDataToolMT::DataCache Muon::sTgcRdoToPrepDataToolMT::setupOutputContainers ( const EventContext & ctx) const
protected

use the cache to get the container

Definition at line 395 of file sTgcRdoToPrepDataToolMT.cxx.

395 {
396
397
398 const std::size_t hashMax = m_idHelperSvc->stgcIdHelper().module_hash_max();
399 DataCache containers{hashMax, m_stgcPrepDataContainerKey, ctx};
400
401 containers.detMgr = m_detMgrR4;
402 if(m_prdContainerCacheKey.key().empty()) {
403 // No external cache, just record the container
404
405 if (!containers.prdWriteHandle.record(std::make_unique<sTgcPrepDataContainer>(hashMax)).isSuccess()){
406 ATH_MSG_FATAL("Faile to record "<<m_stgcPrepDataContainerKey.fullKey());
407 return containers;
408 }
409 } else {
411 SG::UpdateHandle update{m_prdContainerCacheKey, ctx};
412 if (!update.isValid()) {
413 ATH_MSG_FATAL("Invalid UpdateHandle " << m_prdContainerCacheKey.key());
414 return containers;
415 }
416 if (!containers.prdWriteHandle.record(std::make_unique<sTgcPrepDataContainer>(update.ptr())).isSuccess()) {
417 ATH_MSG_FATAL("Failed to record "<<m_stgcPrepDataContainerKey.fullKey()
418 <<" from "<<m_prdContainerCacheKey.fullKey());
419 return containers;
420 }
421 }
422 containers.isValid = containers.strips.record(m_xAODStripKey, ctx).isSuccess()
423 && containers.wires.record(m_xAODWireKey, ctx).isSuccess()
424 && containers.pads.record(m_xAODPadKey, ctx).isSuccess();
425 return containers;
426}
const MuonGMR4::MuonDetectorManager * detMgr

Member Data Documentation

◆ m_calibTool

ToolHandle<INSWCalibTool> Muon::sTgcRdoToPrepDataToolMT::m_calibTool {this,"NSWCalibTool", ""}
protected

Definition at line 115 of file sTgcRdoToPrepDataToolMT.h.

115{this,"NSWCalibTool", ""};

◆ m_clusterBuilderTool

ToolHandle<ISTgcClusterBuilderTool> Muon::sTgcRdoToPrepDataToolMT::m_clusterBuilderTool {this,"ClusterBuilderTool","SimpleSTgcClusterBuilderTool/SimpleSTgcClusterBuilderTool"}
protected

Definition at line 114 of file sTgcRdoToPrepDataToolMT.h.

114{this,"ClusterBuilderTool","SimpleSTgcClusterBuilderTool/SimpleSTgcClusterBuilderTool"};

◆ m_detMgrR4

const MuonGMR4::MuonDetectorManager* Muon::sTgcRdoToPrepDataToolMT::m_detMgrR4 {nullptr}
protected

Definition at line 128 of file sTgcRdoToPrepDataToolMT.h.

128{nullptr};

◆ m_idHelperSvc

ServiceHandle<IMuonIdHelperSvc> Muon::sTgcRdoToPrepDataToolMT::m_idHelperSvc {this, "MuonIdHelperSvc", "MuonIdHelperSvc/MuonIdHelperSvc"}
protected

Definition at line 107 of file sTgcRdoToPrepDataToolMT.h.

107{this, "MuonIdHelperSvc", "MuonIdHelperSvc/MuonIdHelperSvc"};

◆ m_merge

Gaudi::Property<bool> Muon::sTgcRdoToPrepDataToolMT::m_merge {this, "Merge", true}
protected

Definition at line 112 of file sTgcRdoToPrepDataToolMT.h.

112{this, "Merge", true}; // merge Prds

◆ m_muDetMgrKey

SG::ReadCondHandleKey<MuonGM::MuonDetectorManager> Muon::sTgcRdoToPrepDataToolMT::m_muDetMgrKey {this, "DetectorManagerKey", "MuonDetectorManager", "Key of input MuonDetectorManager condition data"}
protected

Definition at line 105 of file sTgcRdoToPrepDataToolMT.h.

105{this, "DetectorManagerKey", "MuonDetectorManager", "Key of input MuonDetectorManager condition data"};

◆ m_prdContainerCacheKey

SG::UpdateHandleKey<sTgcPrepDataCollection_Cache> Muon::sTgcRdoToPrepDataToolMT::m_prdContainerCacheKey {this, "PrdCacheKey", "", "Optional external cache for the sTGC PRD container"}
protected

This is the key for the cache for the sTGC PRD containers, can be empty.

Definition at line 118 of file sTgcRdoToPrepDataToolMT.h.

118{this, "PrdCacheKey", "", "Optional external cache for the sTGC PRD container"};

◆ m_rdoContainerKey

SG::ReadHandleKey<STGC_RawDataContainer> Muon::sTgcRdoToPrepDataToolMT::m_rdoContainerKey {this, "InputCollection", "sTGCRDO", "RDO container to read"}
protected

Definition at line 110 of file sTgcRdoToPrepDataToolMT.h.

110{this, "InputCollection", "sTGCRDO", "RDO container to read"};

◆ m_stgcPrepDataContainerKey

PrdKey_t Muon::sTgcRdoToPrepDataToolMT::m_stgcPrepDataContainerKey {this, "OutputCollection", "STGC_Measurements", "sTgcPrepDataContainer to record"}
protected

Definition at line 111 of file sTgcRdoToPrepDataToolMT.h.

111{this, "OutputCollection", "STGC_Measurements", "sTgcPrepDataContainer to record"};

◆ m_useNewGeo

Gaudi::Property<bool> Muon::sTgcRdoToPrepDataToolMT::m_useNewGeo
protected
Initial value:
{this, "UseR4DetMgr", false,
"Switch between the legacy and the new geometry"}

Definition at line 125 of file sTgcRdoToPrepDataToolMT.h.

125 {this, "UseR4DetMgr", false,
126 "Switch between the legacy and the new geometry"};

◆ m_xAODPadKey

SG::WriteHandleKey<xAOD::sTgcPadContainer> Muon::sTgcRdoToPrepDataToolMT::m_xAODPadKey {this, "xAODPadKey", "", "If empty, do not produce xAOD, otherwise this is the key of the output xAOD MDT PRD container"}
protected

Definition at line 122 of file sTgcRdoToPrepDataToolMT.h.

122{this, "xAODPadKey", "", "If empty, do not produce xAOD, otherwise this is the key of the output xAOD MDT PRD container"};

◆ m_xAODStripKey

SG::WriteHandleKey<xAOD::sTgcStripContainer> Muon::sTgcRdoToPrepDataToolMT::m_xAODStripKey {this, "xAODStripKey", "", "If empty, do not produce xAOD, otherwise this is the key of the output xAOD MDT PRD container"}
protected

Definition at line 121 of file sTgcRdoToPrepDataToolMT.h.

121{this, "xAODStripKey", "", "If empty, do not produce xAOD, otherwise this is the key of the output xAOD MDT PRD container"};

◆ m_xAODWireKey

SG::WriteHandleKey<xAOD::sTgcWireContainer> Muon::sTgcRdoToPrepDataToolMT::m_xAODWireKey {this, "xAODWireKey", "", "If empty, do not produce xAOD, otherwise this is the key of the output xAOD MDT PRD container"}
protected

Definition at line 123 of file sTgcRdoToPrepDataToolMT.h.

123{this, "xAODWireKey", "", "If empty, do not produce xAOD, otherwise this is the key of the output xAOD MDT PRD container"};

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