28 gt_.gpsTimelo = gpsTime&0xffffffff;
29 gt_.gpsTimehi = (gpsTime>>32)&0xffffffff;
33 gt_.bstbeamMode = 0xffff & (myGtfeExtWord.
beamMode());
36 gt_.bstbeamMomentum = 0xffff & (myGtfeExtWord.
beamMomentum());
44 for (
int ibx=-1; ibx<=1; ibx++) {
53 int psb_ett = psb2.
aData(4);
54 int ett_rank = psb_ett & 0xfff;
55 gt_.RankETT = ett_rank;
56 gt_.OvETT = (psb_ett>>12) & 0x1 ;
58 int psb_htt = psb2.
bData(4);
59 int htt_rank = psb_htt & 0xfff;
60 gt_.RankHTT = htt_rank;
61 gt_.OvHTT = (psb_htt>>12) & 0x1 ;
63 int psb_etmis = psb2.
aData(5);
64 int etmis_rank = psb_etmis & 0xfff;
65 int psb_etmis_phi = psb2.
bData(5) & 0x7F ;
66 gt_.RankETM = etmis_rank;
67 gt_.PhiETM = psb_etmis_phi;
68 gt_.OvETM = (psb_etmis>>12) & 0x1 ;
70 int psb_htmis = psb2.
aData(3);
71 int htmis_rank = (psb_htmis >> 5) & 0x7f;
72 int htmis_phi = psb_htmis & 0x1F ;
73 gt_.RankHTM = htmis_rank;
74 gt_.PhiHTM = htmis_phi;
75 gt_.OvHTM = (psb_htmis >> 12) & 0x1 ;
81 std::vector<int> psbel;
82 psbel.push_back(psb.
aData(4));
83 psbel.push_back(psb.
aData(5));
84 psbel.push_back(psb.
bData(4));
85 psbel.push_back(psb.
bData(5));
86 std::vector<int>::const_iterator ipsbel;
87 for(ipsbel=psbel.begin(); ipsbel!=psbel.end(); ipsbel++) {
88 float rank = (*ipsbel)&0x3f;
90 gt_.Bxel.push_back(ibx);
91 gt_.Rankel.push_back(rank);
92 gt_.Phiel.push_back(((*ipsbel)>>10)&0x1f);
93 gt_.Etael.push_back(( ((*ipsbel>>9)&1) ? 10-(((*ipsbel)>>6)&7) : (((*ipsbel)>>6)&7)+11 ));
94 gt_.Isoel.push_back(
false);
98 psbel.push_back(psb.
aData(6));
99 psbel.push_back(psb.
aData(7));
100 psbel.push_back(psb.
bData(6));
101 psbel.push_back(psb.
bData(7));
102 for(ipsbel=psbel.begin(); ipsbel!=psbel.end(); ipsbel++) {
103 float rank = (*ipsbel)&0x3f;
105 gt_.Bxel.push_back(ibx);
106 gt_.Rankel.push_back(rank);
107 gt_.Phiel.push_back(((*ipsbel)>>10)&0x1f);
108 gt_.Etael.push_back(( ((*ipsbel>>9)&1) ? 10-(((*ipsbel)>>6)&7) : (((*ipsbel)>>6)&7)+11 ));
109 gt_.Isoel.push_back(
true);
115 std::vector<int> psbjet;
116 psbjet.push_back(psb.
aData(2));
117 psbjet.push_back(psb.
aData(3));
118 psbjet.push_back(psb.
bData(2));
119 psbjet.push_back(psb.
bData(3));
120 std::vector<int>::const_iterator ipsbjet;
121 for(ipsbjet=psbjet.begin(); ipsbjet!=psbjet.end(); ipsbjet++) {
122 float rank = (*ipsbjet)&0x3f;
124 gt_.Bxjet.push_back(ibx);
125 gt_.Rankjet.push_back(rank);
126 gt_.Phijet.push_back(((*ipsbjet)>>10)&0x1f);
127 gt_.Etajet.push_back(( ((*ipsbjet>>9)&1) ? 10-(((*ipsbjet)>>6)&7) : (((*ipsbjet)>>6)&7)+11 ));
128 gt_.Taujet.push_back(
false);
129 gt_.Fwdjet.push_back(
false);
135 psbjet.push_back(psb2.
aData(6));
136 psbjet.push_back(psb2.
aData(7));
137 psbjet.push_back(psb2.
bData(6));
138 psbjet.push_back(psb2.
bData(7));
139 for(ipsbjet=psbjet.begin(); ipsbjet!=psbjet.end(); ipsbjet++) {
140 float rank = (*ipsbjet)&0x3f;
142 gt_.Bxjet.push_back(ibx);
143 gt_.Rankjet.push_back(rank);
144 gt_.Phijet.push_back(((*ipsbjet)>>10)&0x1f);
145 gt_.Etajet.push_back(( ((*ipsbjet>>9)&1) ? 10-(((*ipsbjet)>>6)&7) : (((*ipsbjet)>>6)&7)+11 ));
146 gt_.Taujet.push_back(
true);
147 gt_.Fwdjet.push_back(
false);
154 psbjet.push_back(psb.
aData(0));
155 psbjet.push_back(psb.
aData(1));
156 psbjet.push_back(psb.
bData(0));
157 psbjet.push_back(psb.
bData(1));
158 for(ipsbjet=psbjet.begin(); ipsbjet!=psbjet.end(); ipsbjet++) {
159 float rank = (*ipsbjet)&0x3f;
161 gt_.Bxjet.push_back(ibx);
162 gt_.Rankjet.push_back(rank);
163 gt_.Phijet.push_back(((*ipsbjet)>>10)&0x1f);
164 gt_.Etajet.push_back(( ((*ipsbjet>>9)&1) ? 3-(((*ipsbjet)>>6)&7) : (((*ipsbjet)>>6)&7)+18 ));
165 gt_.Taujet.push_back(
false);
166 gt_.Fwdjet.push_back(
true);
171 gt_.Nele = gt_.Bxel.size();
172 gt_.Njet = gt_.Bxjet.size();
183 for(
int iebx=0; iebx<5; iebx++)
189 DecisionWord::const_iterator GTdbitItr;
190 for(GTdbitItr = gtDecisionWord.begin(); GTdbitItr != gtDecisionWord.end(); GTdbitItr++) {
192 if(dbitNumber<64) { gt_.tw1[iebx] |= (1LL<<dbitNumber); }
193 else { gt_.tw2[iebx] |= (1LL<<(dbitNumber-64)); }
200 TechnicalTriggerWord::const_iterator GTtbitItr;
201 for(GTtbitItr = gtTTWord.begin(); GTtbitItr != gtTTWord.end(); GTtbitItr++) {
203 gt_.tt[iebx] |= (1LL<<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)
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)