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
8#include <inttypes.h>
9
10#include <vector>
11
13
14class MsgStream;
15class TgcRawData;
16
17namespace Muon {
18class TgcSlbData;
19
31
33 public:
36
41
44
47 void convertToHits(uint16_t subDetectorId, uint16_t rodId,
48 const TgcSlbData* slb,
49 std::vector<TgcRawData*>& vChannel) const;
50
53 void convertToCoincidences(uint16_t subDetectorId, uint16_t rodId,
54 const TgcSlbData* slb,
55 std::vector<TgcRawData*>& vChannel) const;
56
58 static bool setType(uint16_t subDetectorId, uint16_t rodId, TgcSlbData* slb,
59 int moduleType);
60
62 static bool isAdjacent(int ibit);
63
65 static uint16_t getSector(bool forward, uint16_t subDetectorId,
66 uint16_t rodId, const TgcSlbData* slb);
67
68 protected:
70 enum {
76 N_HPT_E = 13, // additional 2 for duplicate strip hits
77 N_SL = 2
78 };
79
82 void getLPTforDoublet(const bool* bitArray, bool hit[], int delta[],
83 int pos[]) const;
84
87 void getLPTforTripletWire(const bool* bitArray, bool hit[],
88 int pos[]) const;
89
92 void getLPTforTripletStrip(const bool* bitArray, bool hit[],
93 int pos[]) const;
94
97 void getLPTforInner(const bool* bitArray, bool hit[]) const;
98
101 void getSL_F(const bool* bitArray, bool& cand3plus, bool hit[],
102 bool muplus[], uint16_t pt[], bool overlap[],
103 uint16_t roi[]) const;
104
107 void getSL_E(const bool* bitArray, bool& cand3plus, bool hit[],
108 bool muplus[], uint16_t pt[], bool overlap[],
109 uint16_t roi[]) const;
110
113 void getHPT_F(const bool* bitArray, bool hit[], bool strip[],
114 uint16_t chip[], uint16_t index[], bool hipt[],
115 uint16_t hitId[], uint16_t sub[], int16_t delta[]) const;
116
119 void getHPT_E(const bool* bitArray, bool hit[], bool strip[],
120 uint16_t chip[], uint16_t index[], bool hipt[],
121 uint16_t hitId[], uint16_t sub[], int16_t delta[]) const;
122
125 static bool isValid_HPT(bool hit, bool strip, uint16_t chip, uint16_t index,
126 bool hipt, uint16_t hitId, uint16_t pos,
127 int16_t delta);
128
129 private:
131 static uint16_t getVal(const bool* bitArray, std::size_t start,
132 std::size_t width);
133};
134
135} // namespace Muon
136
137#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.
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.
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.
virtual ~TgcSlbDataHelper()
Destructor.
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:20
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