ATLAS Offline Software
Loading...
Searching...
No Matches
TgcRdoToPrepDataToolMT.h
Go to the documentation of this file.
1/*
2 Copyright (C) 2002-2025 CERN for the benefit of the ATLAS collaboration
3*/
4
5#ifndef MUONTGC_CNVTOOLS_TGCRDOTOPREPDATATOOLMT_H
6#define MUONTGC_CNVTOOLS_TGCRDOTOPREPDATATOOLMT_H
7
8#include <atomic>
9#include <string>
10#include <vector>
11
14#include "GaudiKernel/ServiceHandle.h"
19#include "MuonRDO/TgcRdo.h"
30
31namespace MuonGM {
33}
34
35namespace Muon {
36// Typedef the two update handle arrays that can be used to match handle key
37// functionality Requested to not use StoreGate template for
38// UpdateHandleKeyArray
39typedef SG::HandleKeyArray<SG::UpdateHandle<TgcPrepDataCollection_Cache>,
40 SG::UpdateHandleKey<TgcPrepDataCollection_Cache>,
41 Gaudi::DataHandle::Reader>
45 Gaudi::DataHandle::Reader>
47
56
58 : public extends<AthAlgTool, IMuonRdoToPrepDataTool> {
59 public:
61 using base_class::base_class;
62
64 virtual ~TgcRdoToPrepDataToolMT() = default;
65
67 virtual StatusCode initialize() override;
69 virtual StatusCode finalize() override;
70
80 virtual StatusCode decode(
81 const EventContext& ctx,
82 const std::vector<IdentifierHash>& idVect) const override;
83
84 virtual StatusCode provideEmptyContainer(
85 const EventContext& ctx) const override;
86
87 private:
90 static constexpr int NBC_HIT = 3;
91 /* Run1,2: The number of recorded Bunch Crossings (BCs) FOR TRIGGER (HPT/SL)
92 * is 3 (Previous, Current, Next BCs) */
93 /* Run3: The number of recorded Bunch Crossings (BCs) FOR TRIGGER (HPT/SL)
94 * is 4 (Previous, Current, Next, and Next-to-Next BCs) */
95 static constexpr int NBC_TRIG = 4;
96
97 struct State {
99 std::array<TgcPrepDataContainer*, NBC_HIT + 1>
100 tgcPrepDataContainer{}; // +1 for AllBCs
101
103 std::vector<std::unique_ptr<TgcPrepDataCollection>>;
104 std::array<TempPrepDataContainer, NBC_HIT + 1> tgcPrepDataCollections{};
106 std::array<TgcCoinDataContainer*, NBC_TRIG> tgcCoinDataContainer{};
107
109 std::vector<std::unique_ptr<TgcCoinDataCollection>>;
110 std::array<TempCoinDataContainer, NBC_TRIG> tgcCoinDataCollections{};
111
114
116
117 const TgcCablingMap* cabling{nullptr};
118 };
119 template <class ContType, class CollType>
120 StatusCode transferData(
121 ContType& container,
122 std::vector<std::unique_ptr<CollType>>&& coll) const;
123
124 StatusCode setupState(const EventContext& ctx, State& state) const;
125
128 enum SUB_DETCTOR_ID { ASIDE = 103, CSIDE = 104 };
129
155 enum BIT_POS {
165
166 /* CHannel starts from 00 at the small R side (the same as ASD). */
179
184
191
192 /* CHannel starts from 00
193 at the small phi side for A side forward chambers and C side backward
194 chambers and at the large phi side for A side backward chambers and C
195 side forward chambers (the same as ASD). */
212
221 };
222
230
233 void selectDecoder(State& state, const TgcRawData& rd,
234 const TgcRdo* rdoColl) const;
235
237 StatusCode decodeHits(State& state, const TgcRawData& rd) const;
239 StatusCode decodeTracklet(State& state, const TgcRawData& rd) const;
241 StatusCode decodeTrackletEIFI(State& state, const TgcRawData& rd) const;
243 StatusCode decodeHiPt(State& state, const TgcRawData& rd) const;
245 StatusCode decodeInner(State& state, const TgcRawData& rd) const;
247 StatusCode decodeSL(State& state, const TgcRawData& rd,
248 const TgcRdo* rdoColl) const;
249
251 static int getbitpos(int channel, TgcRawData::SlbType slbType);
253 static int getchannel(int bitpos, TgcRawData::SlbType slbType);
254
256 static bool getRfromEtaZ(const double eta, const double z, double& r);
258 static bool getEtafromRZ(const double r, const double z, double& eta);
259
262 const std::vector<const TgcRdo*>& decodedRdoCollVec,
263 const std::vector<const TgcRdo*>& rdoCollVec, const TgcRdo* rdoColl);
264
266 static bool isRequested(
267 const std::vector<IdentifierHash>& requestedIdHashVect,
268 IdentifierHash tgcHashId);
269
272 const MuonGM::TgcReadoutElement* descriptor,
273 const Identifier channelId) const;
274
276 bool getTrackletInfo(const TgcRawData& rd, int& tmp_slbId,
277 int& tmp_subMatrix, int& tmp_position) const;
278
280 static int getRoiRow(const TgcRawData& rd);
282 bool isIncludedInChamberBoundary(const TgcRawData& rd) const;
283
285 static void getBitPosOutWire(const TgcRawData& rd, int& slbsubMatrix,
286 std::array<int, 2>& bitpos_o);
288 void getBitPosInWire(const TgcRawData& rd, const int DeltaBeforeConvert,
289 std::array<int, 4>& bitpos_i,
290 std::array<int, 4>& slbchannel_i,
291 std::array<int, 4>& slbId_in,
292 std::array<int, 4>& sbLoc_in, int& sswId_i,
293 const std::array<int, 2>& bitpos_o,
294 std::array<int, 2>& slbchannel_o,
295 const int slbId_o) const;
297 static void getBitPosOutStrip(const TgcRawData& rd, int& slbsubMatrix,
298 std::array<int, 2>& bitpos_o);
300 void getBitPosInStrip(const TgcRawData& rd, const int DeltaBeforeConvert,
301 std::array<int, 4>& bitpos_i,
302 std::array<int, 4>& slbchannel_i, int& sbLoc_i,
303 int& sswId_i, const std::array<int, 2>& bitpos_o,
304 std::array<int, 2>& slbchannel_o) const;
306 void getBitPosWire(const TgcRawData& rd, const int hitId_w, const int sub_w,
307 int& subMatrix_w, std::array<int, 3>& bitpos_w) const;
309 static void getBitPosStrip(const int hitId_s, const int sub_s,
310 int& subMatrix_s, std::array<int, 3>& bitpos_s);
311
313 static int getDeltaBeforeConvert(const TgcRawData& rd);
314
317 static bool isBackwardBW(const TgcRawData& rd);
318
320 bool getSLWireGeometry(const std::array<Identifier, 3>& channelId_wire,
321 double& width_wire, double& r_wire,
322 double& z_wire) const;
324 bool getSLStripGeometry(const std::array<Identifier, 3>& channelId_strip,
325 const bool isBackWard, const bool isAside,
326 double& width_strip, double& theta_strip) const;
329 const std::array<const MuonGM::TgcReadoutElement*, 2>& descriptor_o,
330 const std::array<Identifier, 2>& channelIdOut,
331 const std::array<int, 2>& gasGap_o, const std::array<int, 2>& channel_o,
332 double& width_o, double& hit_position_o, Amg::Vector2D& tmp_hitPos_o,
333 Identifier& channelIdOut_tmp) const;
336 const std::array<const MuonGM::TgcReadoutElement*, 2>& descriptor_o,
337 const std::array<Identifier, 2>& channelIdOut,
338 const std::array<int, 2>& gasGap_o, const std::array<int, 2>& channel_o,
339 double& width_o, double& hit_position_o, Amg::Vector2D& tmp_hitPos_o,
340 Identifier& channelIdOut_tmp, const bool isBackward,
341 const bool isAside) const;
342
345 const std::array<const MuonGM::TgcReadoutElement*, 4>& descriptor_i,
346 const std::array<Identifier, 4>& channelIdIn,
347 const std::array<int, 4>& gasGap_i, const std::array<int, 4>& channel_i,
348 double& width_i, double& hit_position_i, Amg::Vector2D& tmp_hitPos_i,
349 Identifier& channelIdIn_tmp) const;
352 const std::array<const MuonGM::TgcReadoutElement*, 4>& descriptor_i,
353 const std::array<Identifier, 4>& channelIdIn,
354 const std::array<int, 4>& gasGap_i, const std::array<int, 4>& channel_i,
355 double& width_i, double& hit_position_i, Amg::Vector2D& tmp_hitPos_i,
356 Identifier& channelIdIn_tmp, const bool isBackward,
357 const bool isAside) const;
358
360 bool getHiPtIds(const State& state, const TgcRawData& rd, int& sswId_o,
361 int& sbLoc_o, int& slbId_o) const;
362
364 bool getSLIds(const State& state, const bool isStrip, const TgcRawData& rd,
365 std::array<Identifier, 3>& channelId, int& index, int& chip,
366 int& hitId, int& sub, int& sswId, int& sbLoc, int& subMatrix,
367 std::array<int, 3>& bitpos, const bool isBoundary = false,
368 const TgcRdo* rdoColl = 0, const int index_w = -1,
369 const int chip_w = -1, const int hitId_w = -1,
370 const int sub_w = -1) const;
373 const State& state, const TgcRawData& rd, int& sbLoc,
374 const TgcRdo* rdoColl, const int index_w, const int chip_w,
375 const int hitId_w, const int sub_w) const;
378 const State& state, const TgcRawData& rd, int& sbLoc,
379 const TgcRdo* rdoColl, const int index_w, const int chip_w,
380 const int hitId_w, const int sub_w) const;
383 static void getEndcapStripCandidateTrackletIds(const int roi,
384 int& trackletIdStripFirst,
385 int& trackletIdStripSecond,
386 int& trackletIdStripThird);
387
390 const MuonGM::TgcReadoutElement* readout, const Identifier,
391 const double eta, const double phi);
392
394 this, "DetectorManagerKey", "MuonDetectorManager",
395 "Key of input MuonDetectorManager condition data"};
396
398 this, "CablingKey", "MuonTgc_CablingMap"};
399
401 this, "MuonIdHelperSvc", "Muon::MuonIdHelperSvc/MuonIdHelperSvc"};
402
404 Gaudi::Property<std::string> m_outputCollectionLocation{
405 this, "OutputCollection", "TGC_Measurements"};
406
408 Gaudi::Property<std::string> m_outputCoinCollectionLocation{
409 this, "OutputCoinCollection", "TrigT1CoinDataCollection"};
410
412 Gaudi::Property<int> m_tgcOffset{this, "TGCHashIdOffset", 26000};
413
415 Gaudi::Property<bool> m_decodeData{this, "DecodeData", true};
417 Gaudi::Property<bool> m_fillCoinData{this, "FillCoinData", true};
418
425 this, "show_warning_level_invalid_A09_SSW6_hit", false};
426
428 Gaudi::Property<bool> m_dropPrdsWithZeroWidth{this, "dropPrdsWithZeroWidth",
429 true};
430
431 const static double s_cutDropPrdsWithZeroWidth; // 0.1 mm
432
434 mutable std::atomic<long> m_nHitRDOs{0};
435 mutable std::atomic<long> m_nHitPRDs{0};
436 mutable std::atomic<long> m_nTrackletRDOs{0};
437 mutable std::atomic<long> m_nTrackletPRDs{0};
438 mutable std::atomic<long> m_nTrackletEIFIRDOs{0};
439 mutable std::atomic<long> m_nTrackletEIFIPRDs{0};
440 mutable std::atomic<long> m_nHiPtRDOs{0};
441 mutable std::atomic<long> m_nHiPtPRDs{0};
442 mutable std::atomic<long> m_nSLRDOs{0};
443 mutable std::atomic<long> m_nSLPRDs{0};
444
446 this, "RDOContainer", "TGCRDO", "TgcRdoContainer to retrieve"};
447
448 // Write handle keys for CoinDataContainers, need 3, for current, previous
449 // and next BC
452 // Write handle keys for PrepDataContainers, need 4, for current, previous,
453 // next and all BC
456
458 this, "xAODKey", "",
459 "If empty, do not produce xAOD, otherwise this is the key of the "
460 "output xAOD MDT PRD container"};
461
466
467 // TgcPrepRawData container cache key prefix (code automatically creates
468 // three keys with from this string if it is non-empty)
469 Gaudi::Property<std::string> m_prdContainerCacheKeyStr{
470 this, "PrdCacheString", "",
471 "Prefix for names of PRD cache collections"};
472 // TgcCoinData container cache key prefix (code automatically creates three
473 // keys with from this string if it is non-empty)
474 Gaudi::Property<std::string> m_coinContainerCacheKeyStr{
475 this, "CoinCacheString", "",
476 "Prefix for names of Coin cache collections"};
477
479 StatusCode decode(const EventContext& ctx,
480 const std::vector<uint32_t>& robIds) const override;
481 // Run3->Run2 conversion of rodId and sector
482 void convertToRun2(const TgcRawData* rd, uint16_t& newrodId,
483 uint16_t& newsector) const {
484 newrodId = rd->rodId();
485 newsector = rd->sector();
486 if (rd->rodId() >
487 12) { // Run3 rodID is 17..19 while Run2 rodId is 1..12
488 if (rd->isForward()) {
489 newrodId = rd->sector() / 2 + 1 + (rd->rodId() - 17) * 4;
490 newsector = (rd->sector() + (rd->rodId() - 17) * 8) % 2;
491 } else {
492 newrodId = rd->sector() / 4 + 1 + (rd->rodId() - 17) * 4;
493 newsector = (rd->sector() + (rd->rodId() - 17) * 16) % 4;
494 }
495 }
496 }
497 void convertToRun2(const TgcRawData& rd, uint16_t& newrodId,
498 uint16_t& newsector) const {
499 convertToRun2(&rd, newrodId, newsector);
500 }
501};
502} // namespace Muon
503
504#endif // MUONTGC_CNVTOOLS_TGCRDOTOPREPDATATOOLMT_H
Scalar eta() const
pseudorapidity method
Scalar phi() const
phi method
Cached value with atomic update.
Property holding a SG store/key/clid from which an UpdateHandle is made.
Handle class for modifying an existing object in StoreGate.
#define z
This is a "hash" representation of an Identifier.
The MuonDetectorManager stores the transient representation of the Muon Spectrometer geometry and pro...
A TgcReadoutElement corresponds to a single TGC chamber; therefore typically a TGC station contains s...
This is the algorithm that convert TGCRdo To TGCPrepdata as a tool.
SG::WriteHandleKeyArray< Muon::TgcPrepDataContainer > m_outputprepdataKeys
static bool isAlreadyConverted(const std::vector< const TgcRdo * > &decodedRdoCollVec, const std::vector< const TgcRdo * > &rdoCollVec, const TgcRdo *rdoColl)
Check the rdo is already converted or not.
void convertToRun2(const TgcRawData *rd, uint16_t &newrodId, uint16_t &newsector) const
SG::ReadCondHandleKey< Muon::TgcCablingMap > m_cablingKey
static void getEndcapStripCandidateTrackletIds(const int roi, int &trackletIdStripFirst, int &trackletIdStripSecond, int &trackletIdStripThird)
Get trackletIds of three Tracklet Strip candidates in the Endcap boudary.
Gaudi::Property< std::string > m_outputCoinCollectionLocation
TgcCoinData container key for current BC.
StatusCode decodeSL(State &state, const TgcRawData &rd, const TgcRdo *rdoColl) const
Decode RDO's of SectorLogic.
bool getPosAndIdWireIn(const std::array< const MuonGM::TgcReadoutElement *, 4 > &descriptor_i, const std::array< Identifier, 4 > &channelIdIn, const std::array< int, 4 > &gasGap_i, const std::array< int, 4 > &channel_i, double &width_i, double &hit_position_i, Amg::Vector2D &tmp_hitPos_i, Identifier &channelIdIn_tmp) const
Get position and offline ID of TGC1 wire for HiPt.
static Amg::Vector2D getSLLocalPosition(const MuonGM::TgcReadoutElement *readout, const Identifier, const double eta, const double phi)
Get SL local position.
static int getDeltaBeforeConvert(const TgcRawData &rd)
Get delta (sagitta) before converion for HiPt.
StatusCode transferData(ContType &container, std::vector< std::unique_ptr< CollType > > &&coll) const
virtual StatusCode finalize() override
Standard AthAlgTool finalize method.
Gaudi::Property< std::string > m_outputCollectionLocation
TgcPrepRawData container key for current BC.
static bool isBackwardBW(const TgcRawData &rd)
Check if a chamber in BigWheel is a backward chamber or a forward chamber.
bool isIncludedInChamberBoundary(const TgcRawData &rd) const
Check SL RDO is at the chamber boundary.
BIT_POS
SLB bit position /code Large R <--> Small R Large phi <--> Small phi for A side forward chambers and ...
static void getBitPosOutWire(const TgcRawData &rd, int &slbsubMatrix, std::array< int, 2 > &bitpos_o)
Get bitPos etc of TGC3 wire for HiPt.
void getBitPosWire(const TgcRawData &rd, const int hitId_w, const int sub_w, int &subMatrix_w, std::array< int, 3 > &bitpos_w) const
Get bitPos etc of wire for SL.
SG::WriteHandleKeyArray< Muon::TgcCoinDataContainer > m_outputCoinKeys
Gaudi::Property< std::string > m_prdContainerCacheKeyStr
SG::ReadHandleKey< TgcRdoContainer > m_rdoContainerKey
SG::WriteHandleKey< xAOD::TgcStripContainer > m_xAODKey
bool getPosAndIdStripIn(const std::array< const MuonGM::TgcReadoutElement *, 4 > &descriptor_i, const std::array< Identifier, 4 > &channelIdIn, const std::array< int, 4 > &gasGap_i, const std::array< int, 4 > &channel_i, double &width_i, double &hit_position_i, Amg::Vector2D &tmp_hitPos_i, Identifier &channelIdIn_tmp, const bool isBackward, const bool isAside) const
Get position and offline ID of TGC1 strip for HiPt.
static int getRoiRow(const TgcRawData &rd)
Get ROI row from RDO.
StatusCode decodeInner(State &state, const TgcRawData &rd) const
Decode RDO's of Inner.
static bool isRequested(const std::vector< IdentifierHash > &requestedIdHashVect, IdentifierHash tgcHashId)
Check the IdHash is already requested or not.
Gaudi::Property< bool > m_fillCoinData
Switch for the coincince decoding.
void getBitPosInStrip(const TgcRawData &rd, const int DeltaBeforeConvert, std::array< int, 4 > &bitpos_i, std::array< int, 4 > &slbchannel_i, int &sbLoc_i, int &sswId_i, const std::array< int, 2 > &bitpos_o, std::array< int, 2 > &slbchannel_o) const
Get bitPos etc of TGC1 strip for HiPt.
StatusCode setupState(const EventContext &ctx, State &state) const
bool getHiPtIds(const State &state, const TgcRawData &rd, int &sswId_o, int &sbLoc_o, int &slbId_o) const
Get ReadoutID of HiPt from RDOHighPtID.
SUB_DETCTOR_ID
Sub detector IDs are 103 and 104 for TGC A side and C side, respectively.
ServiceHandle< Muon::IMuonIdHelperSvc > m_idHelperSvc
StatusCode decodeTrackletEIFI(State &state, const TgcRawData &rd) const
Decode RDO's of Tracklet EIFI.
bool getSLStripGeometry(const std::array< Identifier, 3 > &channelId_strip, const bool isBackWard, const bool isAside, double &width_strip, double &theta_strip) const
Get strip geometry (width, theta) for SL.
bool isOfflineIdOKForTgcReadoutElement(const MuonGM::TgcReadoutElement *descriptor, const Identifier channelId) const
Check offline ID is OK for TgcReadoutElement.
Gaudi::Property< bool > m_dropPrdsWithZeroWidth
Flag for dropping PRD's with zero widths.
static bool getRfromEtaZ(const double eta, const double z, double &r)
Get r from eta and z.
bool getSLWireGeometry(const std::array< Identifier, 3 > &channelId_wire, double &width_wire, double &r_wire, double &z_wire) const
Get wire geometry (width, r, z) for SL.
TgcCoinUpdateHandles m_coinContainerCacheKeys
Keys for the Coin cache containers, 3 needed for different BC.
virtual StatusCode initialize() override
Standard AthAlgTool initialize method.
Gaudi::Property< bool > m_show_warning_level_invalid_A09_SSW6_hit
Switch for error message disabling on one invalid channel in sector A09 seen in 2008 data,...
Gaudi::Property< std::string > m_coinContainerCacheKeyStr
StatusCode decodeHiPt(State &state, const TgcRawData &rd) const
Decode RDO's of HiPt.
StatusCode decodeHits(State &state, const TgcRawData &rd) const
Decode RDO's of Hit.
void convertToRun2(const TgcRawData &rd, uint16_t &newrodId, uint16_t &newsector) const
static bool getEtafromRZ(const double r, const double z, double &eta)
Get eta from r and z.
void getBitPosInWire(const TgcRawData &rd, const int DeltaBeforeConvert, std::array< int, 4 > &bitpos_i, std::array< int, 4 > &slbchannel_i, std::array< int, 4 > &slbId_in, std::array< int, 4 > &sbLoc_in, int &sswId_i, const std::array< int, 2 > &bitpos_o, std::array< int, 2 > &slbchannel_o, const int slbId_o) const
Get bitPos etc of TGC1 wire for HiPt.
virtual 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 (...
virtual ~TgcRdoToPrepDataToolMT()=default
Destructor.
bool getPosAndIdWireOut(const std::array< const MuonGM::TgcReadoutElement *, 2 > &descriptor_o, const std::array< Identifier, 2 > &channelIdOut, const std::array< int, 2 > &gasGap_o, const std::array< int, 2 > &channel_o, double &width_o, double &hit_position_o, Amg::Vector2D &tmp_hitPos_o, Identifier &channelIdOut_tmp) const
Get position and offline ID of TGC3 wire for HiPt.
TgcPrdUpdateHandles m_prdContainerCacheKeys
Keys for the PRD cache containers, 4 needed for different BC.
Gaudi::Property< bool > m_decodeData
Switch for the decoding of TGC RDO into TgcPrepData.
SG::ReadCondHandleKey< MuonGM::MuonDetectorManager > m_muDetMgrKey
void selectDecoder(State &state, const TgcRawData &rd, const TgcRdo *rdoColl) const
Select decoder based on RDO type (Hit or Coincidence (Tracklet, HiPt and SL))
std::atomic< long > m_nHitRDOs
long to count the numbers of RDOs and PRDs
StatusCode decodeTracklet(State &state, const TgcRawData &rd) const
Decode RDO's of Tracklet.
static int getbitpos(int channel, TgcRawData::SlbType slbType)
Get bitpos from channel and SlbType.
bool getSLIds(const State &state, const bool isStrip, const TgcRawData &rd, std::array< Identifier, 3 > &channelId, int &index, int &chip, int &hitId, int &sub, int &sswId, int &sbLoc, int &subMatrix, std::array< int, 3 > &bitpos, const bool isBoundary=false, const TgcRdo *rdoColl=0, const int index_w=-1, const int chip_w=-1, const int hitId_w=-1, const int sub_w=-1) const
Get ReadoutID of SL from RDO.
Gaudi::Property< int > m_tgcOffset
Identifier hash offset.
static int getchannel(int bitpos, TgcRawData::SlbType slbType)
Get channel from bitpos and SlbType.
bool getTrackletInfo(const TgcRawData &rd, int &tmp_slbId, int &tmp_subMatrix, int &tmp_position) const
Retrieve slbId, subMatrix and position from Tracklet RDO.
bool getSbLocOfEndcapStripBoundaryFromHiPt(const State &state, const TgcRawData &rd, int &sbLoc, const TgcRdo *rdoColl, const int index_w, const int chip_w, const int hitId_w, const int sub_w) const
Get strip sbLoc of Endcap chamber boundary from HiPt Strip.
static void getBitPosStrip(const int hitId_s, const int sub_s, int &subMatrix_s, std::array< int, 3 > &bitpos_s)
Get bitPos etc of strip for SL.
virtual StatusCode provideEmptyContainer(const EventContext &ctx) const override
static constexpr int NBC_HIT
The number of recorded Bunch Crossings (BCs) FOR HITS is 3 (Previous, Current, and Next BCs)
static const double s_cutDropPrdsWithZeroWidth
Cut value for zero widths.
bool getSbLocOfEndcapStripBoundaryFromTracklet(const State &state, const TgcRawData &rd, int &sbLoc, const TgcRdo *rdoColl, const int index_w, const int chip_w, const int hitId_w, const int sub_w) const
Get strip sbLoc of Endcap chamber boundary from Tracklet Strip.
static void getBitPosOutStrip(const TgcRawData &rd, int &slbsubMatrix, std::array< int, 2 > &bitpos_o)
Get bitPos etc of TGC3 strip for HiPt.
bool getPosAndIdStripOut(const std::array< const MuonGM::TgcReadoutElement *, 2 > &descriptor_o, const std::array< Identifier, 2 > &channelIdOut, const std::array< int, 2 > &gasGap_o, const std::array< int, 2 > &channel_o, double &width_o, double &hit_position_o, Amg::Vector2D &tmp_hitPos_o, Identifier &channelIdOut_tmp, const bool isBackward, const bool isAside) const
Get position and offline ID of TGC3 strip for HiPt.
Property holding a SG store/key/clid from which a ReadHandle is made.
Property holding a SG store/key/clid from which an UpdateHandle is made.
Property holding a SG store/key/clid from which a WriteHandle is made.
An unit object of TGC ROD output.
Definition TgcRawData.h:23
uint16_t rodId() const
Definition TgcRawData.h:268
uint16_t sector() const
Definition TgcRawData.h:333
bool isForward() const
Definition TgcRawData.h:289
int r
Definition globals.cxx:22
Eigen::Matrix< double, 2, 1 > Vector2D
Ensure that the Athena extensions are properly loaded.
Definition GeoMuonHits.h:27
NRpcCablingAlg reads raw condition data and writes derived condition data to the condition store.
SG::HandleKeyArray< SG::UpdateHandle< TgcCoinDataCollection_Cache >, SG::UpdateHandleKey< TgcCoinDataCollection_Cache >, Gaudi::DataHandle::Reader > TgcCoinUpdateHandles
SG::HandleKeyArray< SG::UpdateHandle< TgcPrepDataCollection_Cache >, SG::UpdateHandleKey< TgcPrepDataCollection_Cache >, Gaudi::DataHandle::Reader > TgcPrdUpdateHandles
HandleKeyArray< WriteHandle< T >, WriteHandleKey< T >, Gaudi::DataHandle::Writer > WriteHandleKeyArray
Definition index.py:1
std::array< TgcCoinDataContainer *, NBC_TRIG > tgcCoinDataContainer
TgcCoinData (coincidence PRD) containers.
std::array< TempCoinDataContainer, NBC_TRIG > tgcCoinDataCollections
std::array< TgcPrepDataContainer *, NBC_HIT+1 > tgcPrepDataContainer
TgcPrepRawData (hit PRD) containers.
const MuonGM::MuonDetectorManager * muDetMgr
std::array< TempPrepDataContainer, NBC_HIT+1 > tgcPrepDataCollections
std::vector< std::unique_ptr< TgcCoinDataCollection > > TempCoinDataContainer
std::vector< std::unique_ptr< TgcPrepDataCollection > > TempPrepDataContainer
SG::WriteHandle< xAOD::TgcStripContainer > m_xaodHandle
Handle for the xAOD container.