ATLAS Offline Software
Loading...
Searching...
No Matches
TgcSlbDataHelper.h
Go to the documentation of this file.
1/*
2 Copyright (C) 2002-2022 CERN for the benefit of the ATLAS collaboration
3*/
4
5#ifndef MUONTGC_CNVTOOLS_TGCSLBDATAHELPER_H
6#define MUONTGC_CNVTOOLS_TGCSLBDATAHELPER_H
7
9#include <vector>
10#include <inttypes.h>
11
12class MsgStream;
13class TgcRawData;
14
15namespace Muon
16{
17 class TgcSlbData;
18
30
32 : public AthMessaging
33 {
34 public:
36 enum {
43 };
44
46 TgcSlbDataHelper(void);
48 virtual ~TgcSlbDataHelper(void);
49
52
55 void convertToHits(uint16_t subDetectorId,
56 uint16_t rodId,
57 const TgcSlbData * slb,
58 std::vector<TgcRawData *> &vChannel) const;
59
62 void convertToCoincidences(uint16_t subDetectorId,
63 uint16_t rodId,
64 const TgcSlbData * slb,
65 std::vector<TgcRawData *> &vChannel) const;
66
68 static bool setType( uint16_t subDetectorId,
69 uint16_t rodId,
70 TgcSlbData * slb,
71 int moduleType) ;
72
74 static bool isAdjacent(int ibit) ;
75
77 static uint16_t getSector(bool forward,
78 uint16_t subDetectorId,
79 uint16_t rodId,
80 const TgcSlbData * slb ) ;
81
82 protected:
84 enum {
90 N_HPT_E = 13, // additional 2 for duplicate strip hits
91 N_SL = 2
92 };
93
96 void getLPTforDoublet(const bool * bitArray,
97 bool hit[],
98 int delta[],
99 int pos[]) const;
100
103 void getLPTforTripletWire(const bool * bitArray,
104 bool hit[],
105 int pos[]) const;
106
109 void getLPTforTripletStrip(const bool * bitArray,
110 bool hit[],
111 int pos[]) const;
112
115 void getLPTforInner(const bool * bitArray,
116 bool hit[]) const;
117
120 void getSL_F(const bool * bitArray,
121 bool& cand3plus,
122 bool hit[],
123 bool muplus[],
124 uint16_t pt[],
125 bool overlap[],
126 uint16_t roi[]) const;
127
130 void getSL_E(const bool * bitArray,
131 bool& cand3plus,
132 bool hit[],
133 bool muplus[],
134 uint16_t pt[],
135 bool overlap[],
136 uint16_t roi[]) const;
137
140 void getHPT_F(const bool * bitArray,
141 bool hit[],
142 bool strip[],
143 uint16_t chip[],
144 uint16_t index[],
145 bool hipt[],
146 uint16_t hitId[],
147 uint16_t sub[],
148 int16_t delta[]) const;
149
152 void getHPT_E(const bool * bitArray,
153 bool hit[],
154 bool strip[],
155 uint16_t chip[],
156 uint16_t index[],
157 bool hipt[],
158 uint16_t hitId[],
159 uint16_t sub[],
160 int16_t delta[]) const;
161
164 static bool isValid_HPT(bool hit,
165 bool strip,
166 uint16_t chip,
167 uint16_t index,
168 bool hipt,
169 uint16_t hitId,
170 uint16_t pos,
171 int16_t delta) ;
172
173 private:
175 static uint16_t getVal(const bool* bitArray, std::size_t start, std::size_t width) ;
176
177 };
178
179} // end of namespace
180
181#endif // MUONTGC_CNVTOOLS_TGCSLBDATAHELPER_H
const double width
AthMessaging(IMessageSvc *msgSvc, const std::string &name)
Constructor.
static bool isValid_HPT(bool hit, bool strip, uint16_t chip, uint16_t index, bool hipt, uint16_t hitId, uint16_t pos, int16_t delta)
Check if it is valid high-pT coincidence or not.
TgcSlbDataHelper(void)
Constructor.
void getLPTforInner(const bool *bitArray, bool hit[]) const
Decode low-pT coincidence (tracklet) information for inner from bit array.
void convertToHits(uint16_t subDetectorId, uint16_t rodId, const TgcSlbData *slb, std::vector< TgcRawData * > &vChannel) const
Convert to Hits.
TgcSlbDataHelper(const TgcSlbDataHelper &)=delete
void getHPT_E(const bool *bitArray, bool hit[], bool strip[], uint16_t chip[], uint16_t index[], bool hipt[], uint16_t hitId[], uint16_t sub[], int16_t delta[]) const
Decode high-pT coincidence information for endcap region from bit array.
static bool isAdjacent(int ibit)
Adjacent or not.
void getLPTforTripletStrip(const bool *bitArray, bool hit[], int pos[]) const
Decode low-pT coincidence (tracklet) information for triplet strip from bit array.
void getSL_F(const bool *bitArray, bool &cand3plus, bool hit[], bool muplus[], uint16_t pt[], bool overlap[], uint16_t roi[]) const
Decode Sector Logic coincidence information for forward region from bit array.
static bool setType(uint16_t subDetectorId, uint16_t rodId, TgcSlbData *slb, int moduleType)
Set SLB Type based on sswId and moduleType.
virtual ~TgcSlbDataHelper(void)
Destructor.
static uint16_t getVal(const bool *bitArray, std::size_t start, std::size_t width)
Get a value in a range of a bitArray.
TgcSlbDataHelper & operator=(const TgcSlbDataHelper &)=delete
void getSL_E(const bool *bitArray, bool &cand3plus, bool hit[], bool muplus[], uint16_t pt[], bool overlap[], uint16_t roi[]) const
Decode Sector Logic coincidence information for endcap region from bit array.
void convertToCoincidences(uint16_t subDetectorId, uint16_t rodId, const TgcSlbData *slb, std::vector< TgcRawData * > &vChannel) const
Convert to coincidences.
void getLPTforTripletWire(const bool *bitArray, bool hit[], int pos[]) const
Decode low-pT coincidence (tracklet) information for triplet wire from bit array.
void getHPT_F(const bool *bitArray, bool hit[], bool strip[], uint16_t chip[], uint16_t index[], bool hipt[], uint16_t hitId[], uint16_t sub[], int16_t delta[]) const
Decode high-pT coincidence information for forward region from bit array.
static uint16_t getSector(bool forward, uint16_t subDetectorId, uint16_t rodId, const TgcSlbData *slb)
Set sector for HpT/SL based on slbId.
void getLPTforDoublet(const bool *bitArray, bool hit[], int delta[], int pos[]) const
Decode low-pT coincidence (tracklet) information for doublet from bit array.
This is the SLB data class which represents an SLB block.
Definition TgcSlbData.h:22
An unit object of TGC ROD output.
Definition TgcRawData.h:23
bool hipt
Definition globals.cxx:29
NRpcCablingAlg reads raw condition data and writes derived condition data to the condition store.
Definition index.py:1