ATLAS Offline Software
Loading...
Searching...
No Matches
TgcRdoToPrepDataToolMT.h
Go to the documentation of this file.
1/*
2 Copyright (C) 2002-2026 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"
28
29namespace MuonGM {
31}
32
33namespace Muon {
34// Typedef the two update handle arrays that can be used to match handle key
35// functionality Requested to not use StoreGate template for
36// UpdateHandleKeyArray
40 Gaudi::DataHandle::Reader>;
41
50
52 : public extends<AthAlgTool, IMuonRdoToPrepDataTool> {
53 public:
55 using base_class::base_class;
56
58 virtual ~TgcRdoToPrepDataToolMT() = default;
59
61 virtual StatusCode initialize() override;
63 virtual StatusCode finalize() override;
64
74 virtual StatusCode decode(
75 const EventContext& ctx,
76 const std::vector<IdentifierHash>& idVect) const override;
77
78 virtual StatusCode provideEmptyContainer(
79 const EventContext& ctx) const override;
80
81 private:
84 static constexpr int NBC_HIT = 3;
85 /* Run1,2: The number of recorded Bunch Crossings (BCs) FOR TRIGGER (HPT/SL)
86 * is 3 (Previous, Current, Next BCs) */
87 /* Run3: The number of recorded Bunch Crossings (BCs) FOR TRIGGER (HPT/SL)
88 * is 4 (Previous, Current, Next, and Next-to-Next BCs) */
89 static constexpr int NBC_TRIG = 4;
90
91 struct State {
94
96 std::vector<std::unique_ptr<TgcPrepDataCollection>>;
99 std::array<TgcCoinDataContainer*, NBC_TRIG> tgcCoinDataContainer{};
100
102 std::vector<std::unique_ptr<TgcCoinDataCollection>>;
103 std::array<TempCoinDataContainer, NBC_TRIG> tgcCoinDataCollections{};
104
106
107 const TgcCablingMap* cabling{nullptr};
108 };
109 template <class ContType, class CollType>
110 StatusCode transferData(
111 ContType& container,
112 std::vector<std::unique_ptr<CollType>>&& coll) const;
113
114 StatusCode setupState(const EventContext& ctx, State& state) const;
115
118 enum SUB_DETCTOR_ID { ASIDE = 103, CSIDE = 104 };
119
145 enum BIT_POS {
155
156 /* CHannel starts from 00 at the small R side (the same as ASD). */
169
174
181
182 /* CHannel starts from 00
183 at the small phi side for A side forward chambers and C side backward
184 chambers and at the large phi side for A side backward chambers and C
185 side forward chambers (the same as ASD). */
202
211 };
212
220
223 void selectDecoder(State& state, const TgcRawData& rd,
224 const TgcRdo* rdoColl) const;
225
227 StatusCode decodeHits(State& state, const TgcRawData& rd) const;
229 StatusCode decodeTracklet(State& state, const TgcRawData& rd) const;
231 StatusCode decodeTrackletEIFI(State& state, const TgcRawData& rd) const;
233 StatusCode decodeHiPt(State& state, const TgcRawData& rd) const;
235 StatusCode decodeInner(State& state, const TgcRawData& rd) const;
237 StatusCode decodeSL(State& state, const TgcRawData& rd,
238 const TgcRdo* rdoColl) const;
239
241 static int getbitpos(int channel, TgcRawData::SlbType slbType);
243 static int getchannel(int bitpos, TgcRawData::SlbType slbType);
244
246 static bool getRfromEtaZ(const double eta, const double z, double& r);
248 static bool getEtafromRZ(const double r, const double z, double& eta);
249
252 const std::vector<const TgcRdo*>& decodedRdoCollVec,
253 const std::vector<const TgcRdo*>& rdoCollVec, const TgcRdo* rdoColl);
254
256 static bool isRequested(
257 const std::vector<IdentifierHash>& requestedIdHashVect,
258 IdentifierHash tgcHashId);
259
262 const MuonGM::TgcReadoutElement* descriptor,
263 const Identifier channelId) const;
264
266 bool getTrackletInfo(const TgcRawData& rd, int& tmp_slbId,
267 int& tmp_subMatrix, int& tmp_position) const;
268
270 static int getRoiRow(const TgcRawData& rd);
272 bool isIncludedInChamberBoundary(const TgcRawData& rd) const;
273
275 static void getBitPosOutWire(const TgcRawData& rd, int& slbsubMatrix,
276 std::array<int, 2>& bitpos_o);
278 void getBitPosInWire(const TgcRawData& rd, const int DeltaBeforeConvert,
279 std::array<int, 4>& bitpos_i,
280 std::array<int, 4>& slbchannel_i,
281 std::array<int, 4>& slbId_in,
282 std::array<int, 4>& sbLoc_in, int& sswId_i,
283 const std::array<int, 2>& bitpos_o,
284 std::array<int, 2>& slbchannel_o,
285 const int slbId_o) const;
287 static void getBitPosOutStrip(const TgcRawData& rd, int& slbsubMatrix,
288 std::array<int, 2>& bitpos_o);
290 void getBitPosInStrip(const TgcRawData& rd, const int DeltaBeforeConvert,
291 std::array<int, 4>& bitpos_i,
292 std::array<int, 4>& slbchannel_i, int& sbLoc_i,
293 int& sswId_i, const std::array<int, 2>& bitpos_o,
294 std::array<int, 2>& slbchannel_o) const;
296 void getBitPosWire(const TgcRawData& rd, const int hitId_w, const int sub_w,
297 int& subMatrix_w, std::array<int, 3>& bitpos_w) const;
299 static void getBitPosStrip(const int hitId_s, const int sub_s,
300 int& subMatrix_s, std::array<int, 3>& bitpos_s);
301
303 static int getDeltaBeforeConvert(const TgcRawData& rd);
304
307 static bool isBackwardBW(const TgcRawData& rd);
308
310 bool getSLWireGeometry(const std::array<Identifier, 3>& channelId_wire,
311 double& width_wire, double& r_wire,
312 double& z_wire) const;
314 bool getSLStripGeometry(const std::array<Identifier, 3>& channelId_strip,
315 const bool isBackWard, const bool isAside,
316 double& width_strip, double& theta_strip) const;
319 const std::array<const MuonGM::TgcReadoutElement*, 2>& descriptor_o,
320 const std::array<Identifier, 2>& channelIdOut,
321 const std::array<int, 2>& gasGap_o, const std::array<int, 2>& channel_o,
322 double& width_o, double& hit_position_o, Amg::Vector2D& tmp_hitPos_o,
323 Identifier& channelIdOut_tmp) const;
326 const std::array<const MuonGM::TgcReadoutElement*, 2>& descriptor_o,
327 const std::array<Identifier, 2>& channelIdOut,
328 const std::array<int, 2>& gasGap_o, const std::array<int, 2>& channel_o,
329 double& width_o, double& hit_position_o, Amg::Vector2D& tmp_hitPos_o,
330 Identifier& channelIdOut_tmp, const bool isBackward,
331 const bool isAside) const;
332
335 const std::array<const MuonGM::TgcReadoutElement*, 4>& descriptor_i,
336 const std::array<Identifier, 4>& channelIdIn,
337 const std::array<int, 4>& gasGap_i, const std::array<int, 4>& channel_i,
338 double& width_i, double& hit_position_i, Amg::Vector2D& tmp_hitPos_i,
339 Identifier& channelIdIn_tmp) const;
342 const std::array<const MuonGM::TgcReadoutElement*, 4>& descriptor_i,
343 const std::array<Identifier, 4>& channelIdIn,
344 const std::array<int, 4>& gasGap_i, const std::array<int, 4>& channel_i,
345 double& width_i, double& hit_position_i, Amg::Vector2D& tmp_hitPos_i,
346 Identifier& channelIdIn_tmp, const bool isBackward,
347 const bool isAside) const;
348
350 bool getHiPtIds(const State& state, const TgcRawData& rd, int& sswId_o,
351 int& sbLoc_o, int& slbId_o) const;
352
354 bool getSLIds(const State& state, const bool isStrip, const TgcRawData& rd,
355 std::array<Identifier, 3>& channelId, int& index, int& chip,
356 int& hitId, int& sub, int& sswId, int& sbLoc, int& subMatrix,
357 std::array<int, 3>& bitpos, const bool isBoundary = false,
358 const TgcRdo* rdoColl = 0, const int index_w = -1,
359 const int chip_w = -1, const int hitId_w = -1,
360 const int sub_w = -1) const;
363 const State& state, const TgcRawData& rd, int& sbLoc,
364 const TgcRdo* rdoColl, const int index_w, const int chip_w,
365 const int hitId_w, const int sub_w) const;
368 const State& state, const TgcRawData& rd, int& sbLoc,
369 const TgcRdo* rdoColl, const int index_w, const int chip_w,
370 const int hitId_w, const int sub_w) const;
373 static void getEndcapStripCandidateTrackletIds(const int roi,
374 int& trackletIdStripFirst,
375 int& trackletIdStripSecond,
376 int& trackletIdStripThird);
377
380 const MuonGM::TgcReadoutElement* readout, const Identifier,
381 const double eta, const double phi);
382
384 this, "DetectorManagerKey", "MuonDetectorManager",
385 "Key of input MuonDetectorManager condition data"};
386
388 this, "CablingKey", "MuonTgc_CablingMap"};
389
391 this, "MuonIdHelperSvc", "Muon::MuonIdHelperSvc/MuonIdHelperSvc"};
392
394 Gaudi::Property<std::string> m_outputCollectionLocation{
395 this, "OutputCollection", "TGC_Measurements"};
396
398 Gaudi::Property<std::string> m_outputCoinCollectionLocation{
399 this, "OutputCoinCollection", "TrigT1CoinDataCollection"};
400
402 Gaudi::Property<int> m_tgcOffset{this, "TGCHashIdOffset", 26000};
403
405 Gaudi::Property<bool> m_decodeData{this, "DecodeData", true};
407 Gaudi::Property<bool> m_fillCoinData{this, "FillCoinData", true};
408
415 this, "show_warning_level_invalid_A09_SSW6_hit", false};
416
418 Gaudi::Property<bool> m_dropPrdsWithZeroWidth{this, "dropPrdsWithZeroWidth",
419 true};
420
421 const static double s_cutDropPrdsWithZeroWidth; // 0.1 mm
422
424 mutable std::atomic<long> m_nHitRDOs{0};
425 mutable std::atomic<long> m_nHitPRDs{0};
426 mutable std::atomic<long> m_nTrackletRDOs{0};
427 mutable std::atomic<long> m_nTrackletPRDs{0};
428 mutable std::atomic<long> m_nTrackletEIFIRDOs{0};
429 mutable std::atomic<long> m_nTrackletEIFIPRDs{0};
430 mutable std::atomic<long> m_nHiPtRDOs{0};
431 mutable std::atomic<long> m_nHiPtPRDs{0};
432 mutable std::atomic<long> m_nSLRDOs{0};
433 mutable std::atomic<long> m_nSLPRDs{0};
434
436 this, "RDOContainer", "TGCRDO", "TgcRdoContainer to retrieve"};
437
438 // Write handle keys for CoinDataContainers, need 3, for current, previous
439 // and next BC
442 // Write handle keys for PrepDataContainers, need 4, for current, previous,
443 // next and all BC
445 this, "prepDataKey", "TGC_MeasurementsAllBCs"};
446
447
449 SG::UpdateHandleKey<TgcPrepDataCollection_Cache> m_prdContainerCacheKey{this, "UpdateKeyPrd", "", "Optional external cache for the sTGC PRD container"};
452
453 // TgcPrepRawData container cache key prefix (code automatically creates
454 // three keys with from this string if it is non-empty)
455
456 // TgcCoinData container cache key prefix (code automatically creates three
457 // keys with from this string if it is non-empty)
458 Gaudi::Property<std::string> m_coinContainerCacheKeyStr{
459 this, "CoinCacheString", "",
460 "Prefix for names of Coin cache collections"};
461
463 Gaudi::Property<bool> m_convertAllBCs{this, "convertAllBCs", true};
464
466 StatusCode decode(const EventContext& ctx,
467 const std::vector<uint32_t>& robIds) const override;
468 // Run3->Run2 conversion of rodId and sector
469 void convertToRun2(const TgcRawData* rd, uint16_t& newrodId,
470 uint16_t& newsector) const {
471 newrodId = rd->rodId();
472 newsector = rd->sector();
473 if (rd->rodId() >
474 12) { // Run3 rodID is 17..19 while Run2 rodId is 1..12
475 if (rd->isForward()) {
476 newrodId = rd->sector() / 2 + 1 + (rd->rodId() - 17) * 4;
477 newsector = (rd->sector() + (rd->rodId() - 17) * 8) % 2;
478 } else {
479 newrodId = rd->sector() / 4 + 1 + (rd->rodId() - 17) * 4;
480 newsector = (rd->sector() + (rd->rodId() - 17) * 16) % 4;
481 }
482 }
483 }
484 void convertToRun2(const TgcRawData& rd, uint16_t& newrodId,
485 uint16_t& newsector) const {
486 convertToRun2(&rd, newrodId, newsector);
487 }
488};
489} // namespace Muon
490
491#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.
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 curfrent BC.
Gaudi::Property< bool > m_convertAllBCs
Convert hits from all bunch crossings.
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
SG::WriteHandleKey< Muon::TgcPrepDataContainer > m_prdWriteKey
SG::ReadHandleKey< TgcRdoContainer > m_rdoContainerKey
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.
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
SG::UpdateHandleKey< TgcPrepDataCollection_Cache > m_prdContainerCacheKey
Keys for the PRD cache containers, 4 needed for different BC.
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.
MuonPrepDataContainerT< TgcPrepData > TgcPrepDataContainer
SG::HandleKeyArray< SG::UpdateHandle< TgcCoinDataCollection_Cache >, SG::UpdateHandleKey< TgcCoinDataCollection_Cache >, Gaudi::DataHandle::Reader > TgcCoinUpdateHandles
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
const MuonGM::MuonDetectorManager * muDetMgr
std::vector< std::unique_ptr< TgcPrepDataCollection > > TempPrepDataContainer
TgcPrepDataContainer * tgcPrepDataContainer
TgcPrepRawData (hit PRD) containers.
std::vector< std::unique_ptr< TgcCoinDataCollection > > TempCoinDataContainer