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")),
49 conditionsLabel(conf.getParameter<std::
string>(
"conditionsLabel")),
52 produces<L1CaloEmCollection>();
53 produces<L1CaloRegionCollection>();
55 for(
unsigned int ihc=0;ihc<
hcalDigis.size();ihc++){
56 consumes<edm::SortedCollection<HcalTriggerPrimitiveDigi,edm::StrictWeakOrdering<HcalTriggerPrimitiveDigi> > >(
hcalDigis[ihc]);
59 for(
unsigned int iec=0;iec<
ecalDigis.size();iec++){
60 consumes<edm::SortedCollection<EcalTriggerPrimitiveDigi,edm::StrictWeakOrdering<EcalTriggerPrimitiveDigi> > >(
ecalDigis[iec]);
169 for (
int i = 0;
i < 18;
i++)
171 for (
int j = 0;
j < 2;
j++)
173 for (
int k = 0;
k < 28;
k++)
178 for (
int k = 0;
k < 4;
k++)
196 std::vector<int> caloFeds;
199 for(std::vector<int>::const_iterator cf = Feds.begin(); cf != Feds.end(); ++cf)
202 if(fedNum > 600 && fedNum <724)
203 caloFeds.push_back(fedNum);
206 for(
int cr = 0; cr < 18; ++cr)
211 bool fedFound =
false;
215 std::vector<int>::iterator fv =
std::find(caloFeds.begin(),caloFeds.end(),
crateFED[cr][
cs]);
216 if(fv!=caloFeds.end())
222 bool phi_even[2] = {
false};
268 for(
int ieta = eta_min; ieta <= eta_max; ++ieta)
271 for(
int even = 0; even<=1 ; even++)
282 for(
int even = 0; even<=1 ; even++)
302 const std::vector<int> fedvector = summary->
m_fed_in;
319 const std::vector<int> fedvector = summary->
m_fed_in;
342 <<
"From what I see the number of your your ECAL input digi collections.\n"
343 <<
"is different from the size of your HCAL digi input collections\n"
344 <<
"or the size of your BX factor collection"
345 <<
"They must be the same to correspond to the same Bxs\n"
346 <<
"It does not matter if one of them is empty\n";
371 for (
int j = 0;
j<18;
j++)
375 for (
int i = 0;
i<4;
i++)
379 rctEmCands->push_back(isolatedEGObjects.at(
i));
380 rctEmCands->push_back(nonisolatedEGObjects.at(
i));
385 for (
int i = 0;
i < 18;
i++)
388 for (
int j = 0;
j < 22;
j++)
391 rctRegions->push_back(regions.at(
j));
399 event.put(rctEmCands);
400 event.put(rctRegions);
407 std::cout <<
"Contents of given fedVector: ";
408 std::copy(fedVector.begin(), fedVector.end(), std::ostream_iterator<int>(
std::cout,
", "));
409 std::cout << std::endl;
421 std::cout <<
"Trying to print contents of fedUpdatedMask, but it doesn't exist!" << std::endl;
431 std::cout <<
"Contents of fedUpdatedMask: ";
433 std::cout <<
"--> ECAL mask: " << std::endl;
434 for (
int i = 0;
i < 18;
i++)
436 for (
int j = 0;
j < 2;
j++)
438 for (
int k = 0;
k < 28;
k++)
444 std::cout <<
"--> HCAL mask: " << std::endl;
445 for (
int i = 0;
i < 18;
i++)
447 for (
int j = 0;
j < 2;
j++)
449 for (
int k = 0;
k < 28;
k++)
455 std::cout <<
"--> HF mask: " << std::endl;
456 for (
int i = 0;
i < 18;
i++)
458 for (
int j = 0;
j < 2;
j++)
460 for (
int k = 0;
k < 4;
k++)
472 std::cout <<
"Trying to print contents of fedUpdatedMask, but it doesn't exist!" << std::endl;
std::vector< L1CaloEmCand > L1CaloEmCollection
auto_ptr< ClusterSequence > cs
std::string conditionsLabel
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)