17 {{613, 614, 603, 702, 718},
18 {611, 612, 602, 700, 718},
19 {627, 610, 601, 716, 722},
20 {625, 626, 609, 714, 722},
21 {623, 624, 608, 712, 722},
22 {621, 622, 607, 710, 720},
23 {619, 620, 606, 708, 720},
24 {617, 618, 605, 706, 720},
25 {615, 616, 604, 704, 718},
26 {631, 632, 648, 703, 719},
27 {629, 630, 647, 701, 719},
28 {645, 628, 646, 717, 723},
29 {643, 644, 654, 715, 723},
30 {641, 642, 653, 713, 723},
31 {639, 640, 652, 711, 721},
32 {637, 638, 651, 709, 721},
33 {635, 636, 650, 707, 721},
34 {633, 634, 649, 705, 719}};
40 rct(new
L1RCT(rctLookupTables)),
41 useEcal(conf.getParameter<bool>(
"useEcal")),
42 useHcal(conf.getParameter<bool>(
"useHcal")),
43 ecalDigis(conf.getParameter<std::vector<edm::InputTag> >(
"ecalDigis")),
44 hcalDigis(conf.getParameter<std::vector<edm::InputTag> >(
"hcalDigis")),
45 bunchCrossings(conf.getParameter<std::vector<int> >(
"BunchCrossings")),
46 getFedsFromOmds(conf.getParameter<bool>(
"getFedsFromOmds")),
47 queryDelayInLS(conf.getParameter<unsigned int>(
"queryDelayInLS")),
48 queryIntervalInLS(conf.getParameter<unsigned int>(
"queryIntervalInLS")),
51 produces<L1CaloEmCollection>();
52 produces<L1CaloRegionCollection>();
54 for(
unsigned int ihc=0;ihc<
hcalDigis.size();ihc++){
55 consumes<edm::SortedCollection<HcalTriggerPrimitiveDigi,edm::StrictWeakOrdering<HcalTriggerPrimitiveDigi> > >(
hcalDigis[ihc]);
58 for(
unsigned int iec=0;iec<
ecalDigis.size();iec++){
59 consumes<edm::SortedCollection<EcalTriggerPrimitiveDigi,edm::StrictWeakOrdering<EcalTriggerPrimitiveDigi> > >(
ecalDigis[iec]);
168 for (
int i = 0;
i < 18;
i++)
170 for (
int j = 0;
j < 2;
j++)
172 for (
int k = 0;
k < 28;
k++)
177 for (
int k = 0;
k < 4;
k++)
195 std::vector<int> caloFeds;
198 for(std::vector<int>::const_iterator cf = Feds.begin(); cf != Feds.end(); ++cf)
201 if(fedNum > 600 && fedNum <724)
202 caloFeds.push_back(fedNum);
205 for(
int cr = 0; cr < 18; ++cr)
210 bool fedFound =
false;
214 std::vector<int>::iterator fv =
std::find(caloFeds.begin(),caloFeds.end(),
crateFED[cr][
cs]);
215 if(fv!=caloFeds.end())
221 bool phi_even[2] = {
false};
267 for(
int ieta = eta_min; ieta <= eta_max; ++ieta)
270 for(
int even = 0; even<=1 ; even++)
281 for(
int even = 0; even<=1 ; even++)
301 const std::vector<int> fedvector = summary->
m_fed_in;
318 const std::vector<int> fedvector = summary->
m_fed_in;
341 <<
"From what I see the number of your your ECAL input digi collections.\n"
342 <<
"is different from the size of your HCAL digi input collections\n"
343 <<
"or the size of your BX factor collection"
344 <<
"They must be the same to correspond to the same Bxs\n"
345 <<
"It does not matter if one of them is empty\n";
370 for (
int j = 0;
j<18;
j++)
374 for (
int i = 0;
i<4;
i++)
378 rctEmCands->push_back(isolatedEGObjects.at(
i));
379 rctEmCands->push_back(nonisolatedEGObjects.at(
i));
384 for (
int i = 0;
i < 18;
i++)
387 for (
int j = 0;
j < 22;
j++)
390 rctRegions->push_back(regions.at(
j));
398 event.put(rctEmCands);
399 event.put(rctRegions);
406 std::cout <<
"Contents of given fedVector: ";
407 std::copy(fedVector.begin(), fedVector.end(), std::ostream_iterator<int>(
std::cout,
", "));
408 std::cout << std::endl;
420 std::cout <<
"Trying to print contents of fedUpdatedMask, but it doesn't exist!" << std::endl;
430 std::cout <<
"Contents of fedUpdatedMask: ";
432 std::cout <<
"--> ECAL mask: " << std::endl;
433 for (
int i = 0;
i < 18;
i++)
435 for (
int j = 0;
j < 2;
j++)
437 for (
int k = 0;
k < 28;
k++)
443 std::cout <<
"--> HCAL mask: " << std::endl;
444 for (
int i = 0;
i < 18;
i++)
446 for (
int j = 0;
j < 2;
j++)
448 for (
int k = 0;
k < 28;
k++)
454 std::cout <<
"--> HF mask: " << std::endl;
455 for (
int i = 0;
i < 18;
i++)
457 for (
int j = 0;
j < 2;
j++)
459 for (
int k = 0;
k < 4;
k++)
471 std::cout <<
"Trying to print contents of fedUpdatedMask, but it doesn't exist!" << std::endl;
std::vector< L1CaloEmCand > L1CaloEmCollection
auto_ptr< ClusterSequence > cs
const std::vector< int > getFedVectorFromRunInfo(const edm::EventSetup &)
void updateConfiguration(const edm::EventSetup &)
L1RCTLookupTables * rctLookupTables
std::vector< L1CaloRegion > getRegions(unsigned crate)
void printFedVector(const std::vector< int > &)
void printUpdatedFedMaskVerbose()
L1RCTProducer(const edm::ParameterSet &ps)
static const int crateFED[18][5]
unsigned int queryDelayInLS
virtual void beginLuminosityBlock(edm::LuminosityBlock const &lumiSeg, const edm::EventSetup &context) overridefinal
L1CaloEmCollection getNonisolatedEGObjects(unsigned crate)
void find(edm::Handle< EcalRecHitCollection > &hits, DetId thisDet, std::vector< EcalRecHitCollection::const_iterator > &hit, bool debug=false)
std::vector< edm::InputTag > hcalDigis
void print(std::ostream &s) const
LuminosityBlockNumber_t luminosityBlock() const
void setHcalScale(const L1CaloHcalScale *hcalScale)
const std::vector< int > getFedVectorFromOmds(const edm::EventSetup &)
std::vector< edm::InputTag > ecalDigis
std::vector< int > bunchCrossings
virtual void produce(edm::Event &e, const edm::EventSetup &c) overridefinal
std::vector< int > m_fed_in
L1CaloEmCollection getIsolatedEGObjects(unsigned crate)
void printUpdatedFedMask()
The Signals That Services Can Subscribe To This is based on ActivityRegistry h
Helper function to determine trigger accepts.
void updateFedVector(const edm::EventSetup &, bool getFromOmds, int)
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)
static const int minBarrel
bool getByLabel(InputTag const &tag, Handle< PROD > &result) const
static const int minEndcap
L1RCTChannelMask * fedUpdatedMask
static const int maxBarrel
T const * product() const
void setEcalScale(const L1CaloEcalScale *ecalScale)
unsigned int queryIntervalInLS
virtual void beginRun(edm::Run const &r, const edm::EventSetup &c) overridefinal
void setRCTParameters(const L1RCTParameters *rctParameters)
static const int maxEndcap
void digiInput(const EcalTrigPrimDigiCollection &ecalCollection, const HcalTrigPrimDigiCollection &hcalCollection)
void setNoisyChannelMask(const L1RCTNoisyChannelMask *channelMask)
std::vector< L1CaloRegion > L1CaloRegionCollection
void setChannelMask(const L1RCTChannelMask *channelMask)