21 gt_.gpsTimelo = gpsTime & 0xffffffff;
22 gt_.gpsTimehi = (gpsTime >> 32) & 0xffffffff;
26 gt_.bstbeamMode = 0xffff & (myGtfeExtWord.
beamMode());
29 gt_.bstbeamMomentum = 0xffff & (myGtfeExtWord.
beamMomentum());
35 for (
int ibx = -1; ibx <= 1; ibx++) {
42 int psb_ett = psb2.
aData(4);
43 int ett_rank = psb_ett & 0xfff;
44 gt_.RankETT = ett_rank;
45 gt_.OvETT = (psb_ett >> 12) & 0x1;
47 int psb_htt = psb2.
bData(4);
48 int htt_rank = psb_htt & 0xfff;
49 gt_.RankHTT = htt_rank;
50 gt_.OvHTT = (psb_htt >> 12) & 0x1;
52 int psb_etmis = psb2.
aData(5);
53 int etmis_rank = psb_etmis & 0xfff;
54 int psb_etmis_phi = psb2.
bData(5) & 0x7F;
55 gt_.RankETM = etmis_rank;
56 gt_.PhiETM = psb_etmis_phi;
57 gt_.OvETM = (psb_etmis >> 12) & 0x1;
59 int psb_htmis = psb2.
aData(3);
60 int htmis_rank = (psb_htmis >> 5) & 0x7f;
61 int htmis_phi = psb_htmis & 0x1F;
62 gt_.RankHTM = htmis_rank;
63 gt_.PhiHTM = htmis_phi;
64 gt_.OvHTM = (psb_htmis >> 12) & 0x1;
69 std::vector<int> psbel;
70 psbel.push_back(psb.
aData(4));
71 psbel.push_back(psb.
aData(5));
72 psbel.push_back(psb.
bData(4));
73 psbel.push_back(psb.
bData(5));
74 std::vector<int>::const_iterator ipsbel;
75 for (ipsbel = psbel.begin(); ipsbel != psbel.end(); ipsbel++) {
76 float rank = (*ipsbel) & 0x3f;
78 gt_.Bxel.push_back(ibx);
79 gt_.Rankel.push_back(rank);
80 gt_.Phiel.push_back(((*ipsbel) >> 10) & 0x1f);
81 gt_.Etael.push_back((((*ipsbel >> 9) & 1) ? 10 - (((*ipsbel) >> 6) & 7) : (((*ipsbel) >> 6) & 7) + 11));
82 gt_.Isoel.push_back(
false);
86 psbel.push_back(psb.
aData(6));
87 psbel.push_back(psb.
aData(7));
88 psbel.push_back(psb.
bData(6));
89 psbel.push_back(psb.
bData(7));
90 for (ipsbel = psbel.begin(); ipsbel != psbel.end(); ipsbel++) {
91 float rank = (*ipsbel) & 0x3f;
93 gt_.Bxel.push_back(ibx);
94 gt_.Rankel.push_back(rank);
95 gt_.Phiel.push_back(((*ipsbel) >> 10) & 0x1f);
96 gt_.Etael.push_back((((*ipsbel >> 9) & 1) ? 10 - (((*ipsbel) >> 6) & 7) : (((*ipsbel) >> 6) & 7) + 11));
97 gt_.Isoel.push_back(
true);
102 std::vector<int> psbjet;
103 psbjet.push_back(psb.
aData(2));
104 psbjet.push_back(psb.
aData(3));
105 psbjet.push_back(psb.
bData(2));
106 psbjet.push_back(psb.
bData(3));
107 std::vector<int>::const_iterator ipsbjet;
108 for (ipsbjet = psbjet.begin(); ipsbjet != psbjet.end(); ipsbjet++) {
109 float rank = (*ipsbjet) & 0x3f;
111 gt_.Bxjet.push_back(ibx);
112 gt_.Rankjet.push_back(rank);
113 gt_.Phijet.push_back(((*ipsbjet) >> 10) & 0x1f);
114 gt_.Etajet.push_back((((*ipsbjet >> 9) & 1) ? 10 - (((*ipsbjet) >> 6) & 7) : (((*ipsbjet) >> 6) & 7) + 11));
115 gt_.Taujet.push_back(
false);
116 gt_.Fwdjet.push_back(
false);
122 psbjet.push_back(psb2.
aData(6));
123 psbjet.push_back(psb2.
aData(7));
124 psbjet.push_back(psb2.
bData(6));
125 psbjet.push_back(psb2.
bData(7));
126 for (ipsbjet = psbjet.begin(); ipsbjet != psbjet.end(); ipsbjet++) {
127 float rank = (*ipsbjet) & 0x3f;
129 gt_.Bxjet.push_back(ibx);
130 gt_.Rankjet.push_back(rank);
131 gt_.Phijet.push_back(((*ipsbjet) >> 10) & 0x1f);
132 gt_.Etajet.push_back((((*ipsbjet >> 9) & 1) ? 10 - (((*ipsbjet) >> 6) & 7) : (((*ipsbjet) >> 6) & 7) + 11));
133 gt_.Taujet.push_back(
true);
134 gt_.Fwdjet.push_back(
false);
140 psbjet.push_back(psb.
aData(0));
141 psbjet.push_back(psb.
aData(1));
142 psbjet.push_back(psb.
bData(0));
143 psbjet.push_back(psb.
bData(1));
144 for (ipsbjet = psbjet.begin(); ipsbjet != psbjet.end(); ipsbjet++) {
145 float rank = (*ipsbjet) & 0x3f;
147 gt_.Bxjet.push_back(ibx);
148 gt_.Rankjet.push_back(rank);
149 gt_.Phijet.push_back(((*ipsbjet) >> 10) & 0x1f);
150 gt_.Etajet.push_back((((*ipsbjet >> 9) & 1) ? 3 - (((*ipsbjet) >> 6) & 7) : (((*ipsbjet) >> 6) & 7) + 18));
151 gt_.Taujet.push_back(
false);
152 gt_.Fwdjet.push_back(
true);
156 gt_.Nele = gt_.Bxel.size();
157 gt_.Njet = gt_.Bxjet.size();
162 gt_.tw1.resize(5, 0);
163 gt_.tw2.resize(5, 0);
166 for (
int iebx = 0; iebx < 5; iebx++) {
171 DecisionWord::const_iterator GTdbitItr;
172 for (GTdbitItr = gtDecisionWord.begin(); GTdbitItr != gtDecisionWord.end(); GTdbitItr++) {
174 if (dbitNumber < 64) {
175 gt_.tw1[iebx] |= (1
LL << dbitNumber);
177 gt_.tw2[iebx] |= (1
LL << (dbitNumber - 64));
185 TechnicalTriggerWord::const_iterator GTtbitItr;
186 for (GTtbitItr = gtTTWord.begin(); GTtbitItr != gtTTWord.end(); GTtbitItr++) {
188 gt_.tt[iebx] |= (1
LL << dbitNumber);
const cms_uint16_t bData(int iB) const
get/set B_DATA_CH_IB
const TechnicalTriggerWord & technicalTriggerWord(int bxInEventValue) const
const L1GtfeExtWord gtfeWord() const
get / set GTFE word (record) in the GT readout record
const L1TcsWord tcsWord() const
get / set TCS word (record) in the GT readout record
const cms_uint64_t gpsTime() const
LHC-BOB-ES-0001 (EDMS 638899)
constexpr Matriplex::idx_t LL
const cms_uint16_t bstMasterStatus() const
const cms_uint32_t partTrigNr() const
get/set total number of L1A sent since start of the run to this DAQ partition
const cms_uint16_t beamMomentum() const
const cms_uint16_t aData(int iA) const
get/set A_DATA_CH_IA
std::vector< bool > DecisionWord
typedefs
std::vector< bool > TechnicalTriggerWord
technical trigger bits (64 bits)
void SetEvm(const L1GlobalTriggerEvmReadoutRecord *gtevmrr)
const L1GtPsbWord gtPsbWord(cms_uint16_t boardIdValue, int bxInEventValue) const
get / set PSB word (record) in the GT readout record
const DecisionWord & decisionWord(int bxInEventValue) const
const cms_uint32_t totalIntensityBeam2() const
const cms_uint32_t totalIntensityBeam1() const
unsigned long long uint64_t
const L1GtFdlWord gtFdlWord(int bxInEventValue) const
get / set FDL word (record) in the GT readout record
const cms_uint32_t lhcFillNumber() const
const cms_uint16_t particleTypeBeam2() const
const cms_uint32_t turnCountNumber() const
const cms_uint16_t beamMode() const
const cms_uint16_t particleTypeBeam1() const
void Set(const L1GlobalTriggerReadoutRecord *gtrr)