32 for (
size_t ssc=0; ssc <
kNMaxSSC; ssc++) {
34 m_map[input][ssc][sec].setTriggerBits(
true);
36 m_flagPT[ssc][sec] = std::bitset<kNThresholdsR2>(0x30);
50 const std::string& version,
64 for (
size_t ssc=0; ssc <
kNMaxSSC; ssc++) {
66 m_map[input][ssc][sec].setTriggerBits(
true);
68 m_flagPT[ssc][sec] = std::bitset<kNThresholdsR2>(0x30);
77 if (!
tgcArgs()->USE_INNER())
return;
81 if (
tgcArgs()->USE_CONDDB())
return;
93 for (
size_t ssc=0; ssc <
kNMaxSSC; ssc++){
94 m_flagPT[ssc][sec] = std::bitset<kNThresholdsR2>(0x00);
111 for (
size_t ssc=0; ssc <
kNMaxSSC; ssc++){
113 m_map[input][ssc][sec] = right.
m_map[input][ssc][sec];
131 if (
this != &right) {
134 for (
size_t ssc=0; ssc <
kNMaxSSC; ssc++){
136 m_map[input][ssc][sec] = right.
m_map[input][ssc][sec];
156 const std::string SideName[
kNSide] = {
"A",
"C"};
159 std::string dbname=
"";
161 dbname =
"InnerCoincidenceMap." +
m_verName +
"._12.db";
163 dbname =
"InnerCoincidenceMap." + SideName[
m_side]
169 std::string fullName;
171 bool isFound =( fullName.length() > 0 );
177 std::ifstream
file(fullName.c_str(),std::ios::in);
179 static constexpr unsigned int BufferSize = 512;
180 char buf[BufferSize];
183 while(
file.getline(buf,BufferSize)){
184 unsigned int sectorId = 999;
185 unsigned int sscId = 999;
187 int roi[
kNRoiInSSC] = {1, 1, 1, 1, 1, 1, 1, 1};
188 std::istringstream
header(buf);
191 header >> sectorId >> sscId
192 >> use[0] >> use[1] >> use[2]
193 >> use[3] >> use[4] >> use[5]
194 >> roi[0] >> roi[1] >> roi[2] >> roi[3]
195 >> roi[4] >> roi[5] >> roi[6] >> roi[7];
201 <<
" in file " << dbname);
206 m_flagPT[sscId][sectorId][pt] = use[pt];
209 m_flagROI[pos][sscId][sectorId] = roi[pos];
213 file.getline(buf,BufferSize);
214 std::istringstream cont(buf);
218 m_map[pos][sscId][sectorId].setTriggerWord(word);
230 std::string fullName=
"InnerCoincidenceMap."+
m_verName+
"._12.out";
232 std::ofstream
file(fullName.c_str());
235 for (
size_t ssc=0; ssc <
kNMaxSSC; ssc++){
236 file <<
"# " << sec <<
" " << ssc <<
" ";
237 for(
int i=0; i<6; i++)
file <<
m_flagPT[ssc][sec].test(i) <<
" ";
238 for(
int i=0; i<8; i++)
file <<
m_flagROI[i][ssc][sec] <<
" ";
240 file <<
m_map[0][ssc][sec].getTriggerWord() <<
" "
241 <<
m_map[1][ssc][sec].getTriggerWord() <<
" "
242 <<
m_map[2][ssc][sec].getTriggerWord() <<
" "
243 <<
m_map[3][ssc][sec].getTriggerWord() <<
" "
251 const unsigned int ssc,
252 const unsigned int sec)
const
263 return m_flagPT[ssc][sec].test(pt-1);
268 const unsigned int ssc,
269 const unsigned int sec)
const
294 unsigned int shift = (reg<<3) + (
read<<2) + bit;
297 return m_map[slot][ssc][sec].getTriggerBit(reg,
read,bit);
#define ATH_MSG_WARNING(x)
void setLevel(MSG::Level lvl)
Change the current logging level.
AthMessaging(IMessageSvc *msgSvc, const std::string &name)
Constructor.
void set_USE_INNER(bool v)
const LVL1TGCTrigger::TGCArguments * tgcArgs() const
LVL1TGCTrigger::TGCInnerTrackletSlot m_map[N_INNER_SECTORS][kNMaxSSC][kNEndcapTrigSector]
int getTriggerBit(const int slot, const int ssc, const int sec, const int reg, const int read, const int bit) const
int getFlagROI(const unsigned int roi, const unsigned int ssc, const unsigned int sec) const
LVL1TGCTrigger::TGCArguments * m_tgcArgs
int m_flagROI[kNRoiInSSC][kNMaxSSC][kNEndcapTrigSector]
static constexpr unsigned int N_INNER_SECTORS
std::bitset< kNThresholdsR2 > m_flagPT[kNMaxSSC][kNEndcapTrigSector]
int getFlagPT(const unsigned int pt, const unsigned int ssc, const unsigned int sec) const
TGCEIFICoincidenceMap & operator=(const TGCEIFICoincidenceMap &right)
TGCEIFICoincidenceMap(LVL1TGCTrigger::TGCArguments *, const SG::ReadCondHandleKey< TGCTriggerData > &readCondKey)
const SG::ReadCondHandleKey< TGCTriggerData > & m_readCondKey
static std::string FindCalibDirectory(const std::string &logical_file_name)
unsigned short getTrigBitEifi(int side, int slot, int ssc, int sectorId) const
unsigned char getFlagRoiEifi(int side, int ssc, int sectorId) const
unsigned char getFlagPtEifi(int side, int ssc, int sectorId) const
static constexpr unsigned int kNEndcapTrigSector
The number of endcap trigger sectors per side.
static constexpr unsigned int kNThresholdsR2
The number of pT thresholds in Run-2.
static constexpr unsigned int kNMaxSSC
The maximim number of SubSector-Clusters (SSC) (i.e.
static constexpr unsigned int kNRoiInSSC
The default number of ROIs in SSC.
IovVectorMap_t read(const Folder &theFolder, const SelectionCriterion &choice, const unsigned int limit=10)