32 rct(new
L1RCT(rctLookupTables)),
33 useEcal(conf.getParameter<bool>(
"useEcal")),
34 useHcal(conf.getParameter<bool>(
"useHcal")),
35 ecalDigisLabel(conf.getParameter<edm::InputTag>(
"ecalDigisLabel")),
36 hcalDigisLabel(conf.getParameter<edm::InputTag>(
"hcalDigisLabel"))
38 produces<std::vector<unsigned short> >(
"rctCrate");
39 produces<std::vector<unsigned short> >(
"rctCard");
40 produces<std::vector<unsigned short> >(
"rctTower");
41 produces<std::vector<unsigned int> >(
"rctEGammaET");
42 produces<std::vector<bool> >(
"rctHoEFGVetoBit");
43 produces<std::vector<unsigned int> >(
"rctJetMETET");
44 produces<std::vector<bool> >(
"rctTowerActivityBit");
45 produces<std::vector<bool> >(
"rctTowerMIPBit");
46 produces<std::vector<unsigned short> >(
"rctHFCrate");
47 produces<std::vector<unsigned short> >(
"rctHFRegion");
48 produces<std::vector<unsigned int> >(
"rctHFET");
49 produces<std::vector<bool> >(
"rctHFFG");
105 std::auto_ptr<std::vector<unsigned short> >
106 rctCrate(
new std::vector<unsigned short>);
107 std::auto_ptr<std::vector<unsigned short> >
108 rctCard(
new std::vector<unsigned short>);
109 std::auto_ptr<std::vector<unsigned short> >
110 rctTower(
new std::vector<unsigned short>);
111 std::auto_ptr<std::vector<unsigned int> >
112 rctEGammaET(
new std::vector<unsigned int>);
113 std::auto_ptr<std::vector<bool> > rctHoEFGVetoBit(
new std::vector<bool>);
114 std::auto_ptr<std::vector<unsigned int> >
115 rctJetMETET(
new std::vector<unsigned int>);
116 std::auto_ptr<std::vector<bool> > rctTowerActivityBit(
new std::vector<bool>);
117 std::auto_ptr<std::vector<bool> > rctTowerMIPBit(
new std::vector<bool>);
119 for(
int crate = 0; crate < 18; crate++) {
120 for(
int card = 0; card < 7; card++) {
121 for(
int tower = 0; tower < 32; tower++) {
122 unsigned short ecalCompressedET =
124 unsigned short ecalFineGrainBit =
126 unsigned short hcalCompressedET =
128 unsigned int lutBits =
130 ecalFineGrainBit, crate, card, tower);
131 unsigned int eGammaETCode = lutBits & 0x0000007F;
132 bool hOeFGVetoBit = (lutBits >> 7) & 0x00000001;
133 unsigned int jetMETETCode = (lutBits >> 8) & 0x000001FF;
134 bool activityBit = (lutBits >> 17) & 0x00000001;
135 if(eGammaETCode > 0 || jetMETETCode > 0 ||
136 hOeFGVetoBit || activityBit) {
137 rctCrate->push_back(crate);
138 rctCard->push_back(card);
139 rctTower->push_back(tower);
140 rctEGammaET->push_back(eGammaETCode);
141 rctHoEFGVetoBit->push_back(hOeFGVetoBit);
142 rctJetMETET->push_back(jetMETETCode);
143 rctTowerActivityBit->push_back(activityBit);
144 rctTowerMIPBit->push_back(0);
150 std::auto_ptr<std::vector<unsigned short> >
151 rctHFCrate(
new std::vector<unsigned short>);
152 std::auto_ptr<std::vector<unsigned short> >
153 rctHFRegion(
new std::vector<unsigned short>);
154 std::auto_ptr<std::vector<unsigned int> > rctHFET(
new std::vector<unsigned int>);
155 std::auto_ptr<std::vector<bool> > rctHFFG(
new std::vector<bool>);
156 for(
int crate = 0; crate < 18; crate++) {
157 for(
int hfRegion = 0; hfRegion < 8; hfRegion++) {
159 unsigned int hfETCode =
162 rctHFCrate->push_back(crate);
163 rctHFRegion->push_back(hfRegion);
164 rctHFET->push_back(hfETCode);
165 rctHFFG->push_back(0);
171 event.put(rctCrate,
"rctCrate");
172 event.put(rctCard,
"rctCard");
173 event.put(rctTower,
"rctTower");
174 event.put(rctEGammaET,
"rctEGammaET");
175 event.put(rctHoEFGVetoBit,
"rctHoEFGVetoBit");
176 event.put(rctJetMETET,
"rctJetMETET");
177 event.put(rctTowerActivityBit,
"rctTowerActivityBit");
178 event.put(rctTowerMIPBit,
"rctTowerMIPBit");
179 event.put(rctHFCrate,
"rctHFCrate");
180 event.put(rctHFRegion,
"rctHFRegion");
181 event.put(rctHFET,
"rctHFET");
182 event.put(rctHFFG,
"rctHFFG");
unsigned short hcalCompressedET(int crate, int card, int tower)
unsigned short hfCompressedET(int crate, int tower)
void setHcalScale(const L1CaloHcalScale *hcalScale)
unsigned short ecalFineGrainBit(int crate, int card, int tower)
unsigned short ecalCompressedET(int crate, int card, int tower)
The Signals That Services Can Subscribe To This is based on ActivityRegistry h
Helper function to determine trigger accepts.
How EventSelector::AcceptEvent() decides whether to accept an event for output otherwise it is excluding the probing of A single or multiple positive and the trigger will pass if any such matching triggers are PASS or EXCEPTION[A criterion thatmatches no triggers at all is detected and causes a throw.] A single negative with an expectation of appropriate bit checking in the decision and the trigger will pass if any such matching triggers are FAIL or EXCEPTION A wildcarded negative criterion that matches more than one trigger in the trigger but the state exists so we define the behavior If all triggers are the negative crieriion will lead to accepting the event(this again matches the behavior of"!*"before the partial wildcard feature was incorporated).The per-event"cost"of each negative criterion with multiple relevant triggers is about the same as!*was in the past
void setL1CaloEtScale(const L1CaloEtScale *etScale)
T const * product() const
void setEcalScale(const L1CaloEcalScale *ecalScale)
void setRCTParameters(const L1RCTParameters *rctParameters)
void digiInput(const EcalTrigPrimDigiCollection &ecalCollection, const HcalTrigPrimDigiCollection &hcalCollection)
void setChannelMask(const L1RCTChannelMask *channelMask)
unsigned int lookup(unsigned short ecalInput, unsigned short hcalInput, unsigned short fgbit, unsigned short crtNo, unsigned short crdNo, unsigned short twrNo) const