CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
L1TGCT.cc
Go to the documentation of this file.
4 
5 // Trigger Headers
6 
7 // GCT and RCT data formats
11 
12 using namespace edm;
13 
14 // Define statics for bins etc.
15 const unsigned int JETETABINS = 22;
16 const float JETETAMIN = -0.5;
17 const float JETETAMAX = 21.5;
18 
19 const unsigned int EMETABINS = 22;
20 const float EMETAMIN = -0.5;
21 const float EMETAMAX = 21.5;
22 
23 const unsigned int METPHIBINS = 72;
24 const float METPHIMIN = -0.5;
25 const float METPHIMAX = 71.5;
26 
27 const unsigned int MHTPHIBINS = 18;
28 const float MHTPHIMIN = -0.5;
29 const float MHTPHIMAX = 17.5;
30 
31 const unsigned int PHIBINS = 18;
32 const float PHIMIN = -0.5;
33 const float PHIMAX = 17.5;
34 
35 const unsigned int OFBINS = 2;
36 const float OFMIN = -0.5;
37 const float OFMAX = 1.5;
38 
39 const unsigned int BXBINS = 5;
40 const float BXMIN = -2.5;
41 const float BXMAX = 2.5;
42 
43 // Bins for 3, 5, 6, 7, 10 and 12 bits
44 const unsigned int R3BINS = 8;
45 const float R3MIN = -0.5;
46 const float R3MAX = 7.5;
47 const unsigned int R5BINS = 32;
48 const float R5MIN = -0.5;
49 const float R5MAX = 31.5;
50 const unsigned int R6BINS = 64;
51 const float R6MIN = -0.5;
52 const float R6MAX = 63.5;
53 const unsigned int R7BINS = 128;
54 const float R7MIN = -0.5;
55 const float R7MAX = 127.5;
56 const unsigned int R12BINS = 4096;
57 const float R12MIN = -0.5;
58 const float R12MAX = 4095.5;
59 
61  gctCenJetsSource_(ps.getParameter<edm::InputTag>("gctCentralJetsSource")),
62  gctForJetsSource_(ps.getParameter<edm::InputTag>("gctForwardJetsSource")),
63  gctTauJetsSource_(ps.getParameter<edm::InputTag>("gctTauJetsSource")),
64  gctIsoTauJetsSource_(ps.getParameter<edm::InputTag>("gctIsoTauJetsSource")),
65  gctEnergySumsSource_(ps.getParameter<edm::InputTag>("gctEnergySumsSource")),
66  gctIsoEmSource_(ps.getParameter<edm::InputTag>("gctIsoEmSource")),
67  gctNonIsoEmSource_(ps.getParameter<edm::InputTag>("gctNonIsoEmSource")),
68  m_stage1_layer2_(ps.getParameter<bool>("stage1_layer2_")),
69  filterTriggerType_ (ps.getParameter< int >("filterTriggerType"))
70 {
71 
72  // verbosity switch
73  verbose_ = ps.getUntrackedParameter < bool > ("verbose", false);
74 
75  if (verbose_)
76  edm::LogInfo("L1TGCT") << "L1TGCT: constructor...." << std::endl;
77 
78  outputFile_ = ps.getUntrackedParameter < std::string > ("outputFile", "");
79  if (outputFile_.size() != 0) {
80  edm::LogInfo("L1TGCT") << "L1T Monitoring histograms will be saved to "
81  << outputFile_ << std::endl;
82  }
83 
84  bool disable = ps.getUntrackedParameter<bool>("disableROOToutput", false);
85  if(disable){
86  outputFile_="";
87  }
88 
89  //set Token(-s)
90  gctIsoEmSourceToken_ = consumes<L1GctEmCandCollection>(ps.getParameter<edm::InputTag>("gctIsoEmSource"));
91  gctNonIsoEmSourceToken_ = consumes<L1GctEmCandCollection>(ps.getParameter<edm::InputTag>("gctNonIsoEmSource"));
92  gctCenJetsSourceToken_ = consumes<L1GctJetCandCollection>(ps.getParameter<edm::InputTag>("gctCentralJetsSource"));
93  gctForJetsSourceToken_ = consumes<L1GctJetCandCollection>(ps.getParameter<edm::InputTag>("gctForwardJetsSource"));
94  gctTauJetsSourceToken_ = consumes<L1GctJetCandCollection>(ps.getParameter<edm::InputTag>("gctTauJetsSource"));
95  if(m_stage1_layer2_ == true){
96  gctIsoTauJetsSourceToken_=consumes<L1GctJetCandCollection>(ps.getParameter<edm::InputTag>("gctIsoTauJetsSource"));
97  }
98  gctEnergySumsSourceToken_ = consumes<L1GctHFRingEtSumsCollection>(ps.getParameter<edm::InputTag>("gctEnergySumsSource"));
99  l1HFCountsToken_ = consumes<L1GctHFBitCountsCollection>(ps.getParameter<edm::InputTag>("gctEnergySumsSource"));
100  l1EtMissToken_ = consumes<L1GctEtMissCollection>(ps.getParameter<edm::InputTag>("gctEnergySumsSource"));
101  l1HtMissToken_ = consumes<L1GctHtMissCollection>(ps.getParameter<edm::InputTag>("gctEnergySumsSource"));
102  l1EtHadToken_ = consumes<L1GctEtHadCollection>(ps.getParameter<edm::InputTag>("gctEnergySumsSource"));
103  l1EtTotalToken_ = consumes<L1GctEtTotalCollection>(ps.getParameter<edm::InputTag>("gctEnergySumsSource"));
104 }
105 
107 {
108 }
109 
111 {
112 
113  nev_ = 0;
114 
115  if (m_stage1_layer2_ == true){
116  ibooker.setCurrentFolder("L1T/stage1layer2");
117  }
118  if (m_stage1_layer2_ == false){
119  ibooker.setCurrentFolder("L1T/L1TGCT");
120  }
121 
122  runId_ = ibooker.bookInt("iRun");
123  runId_->Fill(-1);
124  lumisecId_ = ibooker.bookInt("iLumiSection");
125  lumisecId_->Fill(-1);
126 
127  triggerType_ =ibooker.book1D("TriggerType", "TriggerType", 17, -0.5, 16.5);
128 
129  l1GctAllJetsEtEtaPhi_ = ibooker.book2D("AllJetsEtEtaPhi", "CENTRAL AND FORWARD JET E_{T}",JETETABINS, JETETAMIN, JETETAMAX,PHIBINS, PHIMIN, PHIMAX);
130  l1GctCenJetsEtEtaPhi_ = ibooker.book2D("CenJetsEtEtaPhi", "CENTRAL JET E_{T}",JETETABINS, JETETAMIN, JETETAMAX, PHIBINS, PHIMIN, PHIMAX);
131  l1GctForJetsEtEtaPhi_ = ibooker.book2D("ForJetsEtEtaPhi", "FORWARD JET E_{T}", JETETABINS, JETETAMIN, JETETAMAX, PHIBINS, PHIMIN, PHIMAX);
132  l1GctTauJetsEtEtaPhi_ = ibooker.book2D("TauJetsEtEtaPhi", "TAU JET E_{T}", EMETABINS, EMETAMIN, EMETAMAX, PHIBINS, PHIMIN, PHIMAX);
133  if (m_stage1_layer2_ == true){
134  l1GctIsoTauJetsEtEtaPhi_ = ibooker.book2D("IsoTauJetsEtEtaPhi", "ISOTAU JET E_{T}", EMETABINS, EMETAMIN, EMETAMAX, PHIBINS, PHIMIN, PHIMAX);
135  }
136  l1GctIsoEmRankEtaPhi_ = ibooker.book2D("IsoEmRankEtaPhi", "ISO EM E_{T}", EMETABINS, EMETAMIN, EMETAMAX, PHIBINS, PHIMIN, PHIMAX);
137  l1GctNonIsoEmRankEtaPhi_ = ibooker.book2D("NonIsoEmRankEtaPhi", "NON-ISO EM E_{T}", EMETABINS, EMETAMIN, EMETAMAX,PHIBINS, PHIMIN, PHIMAX);
138  l1GctAllJetsOccEtaPhi_ = ibooker.book2D("AllJetsOccEtaPhi", "CENTRAL AND FORWARD JET OCCUPANCY", JETETABINS, JETETAMIN, JETETAMAX, PHIBINS, PHIMIN, PHIMAX);
139  l1GctCenJetsOccEtaPhi_ = ibooker.book2D("CenJetsOccEtaPhi", "CENTRAL JET OCCUPANCY", JETETABINS, JETETAMIN, JETETAMAX, PHIBINS, PHIMIN, PHIMAX);
140  l1GctForJetsOccEtaPhi_ = ibooker.book2D("ForJetsOccEtaPhi", "FORWARD JET OCCUPANCY",JETETABINS, JETETAMIN, JETETAMAX, PHIBINS, PHIMIN, PHIMAX);
141  l1GctTauJetsOccEtaPhi_ = ibooker.book2D("TauJetsOccEtaPhi", "TAU JET OCCUPANCY", EMETABINS, EMETAMIN, EMETAMAX, PHIBINS, PHIMIN, PHIMAX);
142  if (m_stage1_layer2_ == true){
143  l1GctIsoTauJetsOccEtaPhi_ = ibooker.book2D("IsoTauJetsOccEtaPhi", "ISOTAU JET OCCUPANCY", EMETABINS, EMETAMIN, EMETAMAX, PHIBINS, PHIMIN, PHIMAX);
144  }
145  l1GctIsoEmOccEtaPhi_ = ibooker.book2D("IsoEmOccEtaPhi", "ISO EM OCCUPANCY", EMETABINS, EMETAMIN, EMETAMAX, PHIBINS, PHIMIN, PHIMAX);
146  l1GctNonIsoEmOccEtaPhi_ = ibooker.book2D("NonIsoEmOccEtaPhi", "NON-ISO EM OCCUPANCY", EMETABINS, EMETAMIN, EMETAMAX, PHIBINS, PHIMIN, PHIMAX);
147 
148 
149  //HF Ring stuff
150 
151  l1GctHFRing1TowerCountPosEtaNegEta_ = ibooker.book2D("HFRing1TowerCountCorr", "HF RING1 TOWER COUNT CORRELATION +/- #eta", R3BINS, R3MIN, R3MAX, R3BINS, R3MIN, R3MAX);
152  l1GctHFRing2TowerCountPosEtaNegEta_ = ibooker.book2D("HFRing2TowerCountCorr", "HF RING2 TOWER COUNT CORRELATION +/- #eta", R3BINS, R3MIN, R3MAX, R3BINS, R3MIN, R3MAX);
153 
154  l1GctHFRing1TowerCountPosEta_ = ibooker.book1D("HFRing1TowerCountPosEta", "HF RING1 TOWER COUNT #eta +", R3BINS, R3MIN, R3MAX);
155  l1GctHFRing1TowerCountNegEta_ = ibooker.book1D("HFRing1TowerCountNegEta", "HF RING1 TOWER COUNT #eta -", R3BINS, R3MIN, R3MAX);
156  l1GctHFRing2TowerCountPosEta_ = ibooker.book1D("HFRing2TowerCountPosEta", "HF RING2 TOWER COUNT #eta +", R3BINS, R3MIN, R3MAX);
157  l1GctHFRing2TowerCountNegEta_ = ibooker.book1D("HFRing2TowerCountNegEta", "HF RING2 TOWER COUNT #eta -", R3BINS, R3MIN, R3MAX);
158 
159  l1GctHFRingTowerCountOccBx_ = ibooker.book2D("HFRingTowerCountOccBx", "HF RING TOWER COUNT PER BX",BXBINS, BXMIN, BXMAX, R3BINS, R3MIN, R3MAX);
160 
161  if (m_stage1_layer2_ == false){
162  l1GctHFRing1PosEtaNegEta_ = ibooker.book2D("HFRing1Corr", "HF RING1 E_{T} CORRELATION +/- #eta", R3BINS, R3MIN, R3MAX, R3BINS, R3MIN, R3MAX);
163  l1GctHFRing2PosEtaNegEta_ = ibooker.book2D("HFRing2Corr", "HF RING2 E_{T} CORRELATION +/- #eta", R3BINS, R3MIN, R3MAX, R3BINS, R3MIN, R3MAX);
164  l1GctHFRing1ETSumPosEta_ = ibooker.book1D("HFRing1ETSumPosEta", "HF RING1 E_{T} #eta +", R3BINS, R3MIN, R3MAX);
165  l1GctHFRing1ETSumNegEta_ = ibooker.book1D("HFRing1ETSumNegEta", "HF RING1 E_{T} #eta -", R3BINS, R3MIN, R3MAX);
166  l1GctHFRing2ETSumPosEta_ = ibooker.book1D("HFRing2ETSumPosEta", "HF RING2 E_{T} #eta +", R3BINS, R3MIN, R3MAX);
167  l1GctHFRing2ETSumNegEta_ = ibooker.book1D("HFRing2ETSumNegEta", "HF RING2 E_{T} #eta -", R3BINS, R3MIN, R3MAX);
168  l1GctHFRingETSumOccBx_ = ibooker.book2D("HFRingETSumOccBx", "HF RING E_{T} PER BX",BXBINS, BXMIN, BXMAX, R3BINS, R3MIN, R3MAX);
169  l1GctHFRingRatioPosEta_ = ibooker.book1D("HFRingRatioPosEta", "HF RING E_{T} RATIO #eta +", R5BINS, R5MIN, R5MAX);
170  l1GctHFRingRatioNegEta_ = ibooker.book1D("HFRingRatioNegEta", "HF RING E_{T} RATIO #eta -", R5BINS, R5MIN, R5MAX);
171  }
172 
173  if (m_stage1_layer2_ == true){
174  l1GctHFRing1PosEtaNegEta_ = ibooker.book2D("IsoTau 1 2 Corr", "IsoTau 1 IsoTau 2 E_{T} CORRELATION", R3BINS, R3MIN, R3MAX, R3BINS, R3MIN, R3MAX);
175  l1GctHFRing2PosEtaNegEta_ = ibooker.book2D("IsoTau 3 4 Corr", "IsoTau 3 IsoTau 4 CORRELATION", R3BINS, R3MIN, R3MAX, R3BINS, R3MIN, R3MAX);
176  l1GctHFRing1ETSumPosEta_ = ibooker.book1D("Iso Tau 1 Et", "Isolated Tau1 E_{T}", 9, -0.5, 8.5);
177  l1GctHFRing1ETSumNegEta_ = ibooker.book1D("Iso Tau 2 Et", "Isolated Tau2 E_{T}", 9, -0.5, 8.5);
178  l1GctHFRing2ETSumPosEta_ = ibooker.book1D("Iso Tau 3 Et", "Isolated Tau3 E_{T}", 9, -0.5, 8.5);
179  l1GctHFRing2ETSumNegEta_ = ibooker.book1D("Iso Tau 4 Et", "Isolated Tau4 E_{T}", 9, -0.5, 8.5);
180  l1GctHFRingETSumOccBx_ = ibooker.book2D("IsoTau HFRingSum OccBx", "Iso Tau PER BX",BXBINS, BXMIN, BXMAX, R3BINS, R3MIN, R3MAX);
181  l1GctHFRingRatioPosEta_ = ibooker.book1D("IsoTau Ratio 1 2", "IsoTau E_{T} RATIO", 9, -0.5, 8.5);
182  l1GctHFRingRatioNegEta_ = ibooker.book1D("IsoTau Ratio 1 2", "IsoTau E_{T} RATIO", 9, -0.5, 8.5);
183  }
184 
185  // Rank histograms
186  l1GctCenJetsRank_ = ibooker.book1D("CenJetsRank", "CENTRAL JET E_{T}", R6BINS, R6MIN, R6MAX);
187  l1GctForJetsRank_ = ibooker.book1D("ForJetsRank", "FORWARD JET E_{T}", R6BINS, R6MIN, R6MAX);
188  l1GctTauJetsRank_ = ibooker.book1D("TauJetsRank", "TAU JET E_{T}", R6BINS, R6MIN, R6MAX);
189  if (m_stage1_layer2_ == true){
190  l1GctIsoTauJetsRank_ = ibooker.book1D("IsoTauJetsRank", "ISOTAU JET E_{T}", R6BINS, R6MIN, R6MAX);
191  }
192  l1GctIsoEmRank_ = ibooker.book1D("IsoEmRank", "ISO EM E_{T}", R6BINS, R6MIN, R6MAX);
193  l1GctNonIsoEmRank_ = ibooker.book1D("NonIsoEmRank", "NON-ISO EM E_{T}", R6BINS, R6MIN, R6MAX);
194 
195  l1GctAllJetsOccRankBx_ = ibooker.book2D("AllJetsOccRankBx","ALL JETS E_{T} PER BX",BXBINS,BXMIN,BXMAX,R6BINS,R6MIN,R6MAX);
196  l1GctAllEmOccRankBx_ = ibooker.book2D("AllEmOccRankBx","ALL EM E_{T} PER BX",BXBINS,BXMIN,BXMAX,R6BINS,R6MIN,R6MAX);
197 
198  // Energy sums
199  l1GctEtMiss_ = ibooker.book1D("EtMiss", "MET", R12BINS, R12MIN, R12MAX);
200  l1GctEtMissPhi_ = ibooker.book1D("EtMissPhi", "MET #phi", METPHIBINS, METPHIMIN, METPHIMAX);
201  l1GctEtMissOf_ = ibooker.book1D("EtMissOf", "MET OVERFLOW", OFBINS, OFMIN, OFMAX);
202  l1GctEtMissOccBx_ = ibooker.book2D("EtMissOccBx","MET PER BX",BXBINS,BXMIN,BXMAX,R12BINS,R12MIN,R12MAX);
203  if (m_stage1_layer2_ == false) {
204  l1GctHtMiss_ = ibooker.book1D("HtMiss", "MHT", R7BINS, R7MIN, R7MAX);
205  l1GctHtMissPhi_ = ibooker.book1D("HtMissPhi", "MHT #phi", MHTPHIBINS, MHTPHIMIN, MHTPHIMAX);
206  l1GctHtMissOf_ = ibooker.book1D("HtMissOf", "MHT OVERFLOW", OFBINS, OFMIN, OFMAX);
207  l1GctHtMissOccBx_ = ibooker.book2D("HtMissOccBx","MHT PER BX",BXBINS,BXMIN,BXMAX,R7BINS,R7MIN,R7MAX);
208  }
209  if (m_stage1_layer2_ == true) {
210  l1GctHtMiss_ = ibooker.book1D("HtMissHtTotal", "MHTHT", R7BINS, R7MIN, R7MAX);
211  l1GctHtMissPhi_ = ibooker.book1D("HtMissHtTotal Phi", "MHTHT #phi", MHTPHIBINS, MHTPHIMIN, MHTPHIMAX);
212  l1GctHtMissOf_ = ibooker.book1D("HtMissHtTotal Of", "MHTHT OVERFLOW", OFBINS, OFMIN, OFMAX);
213  l1GctHtMissOccBx_ = ibooker.book2D("HtMissHtTotal OccBx","MHTHT PER BX",BXBINS,BXMIN,BXMAX,R7BINS,R7MIN,R7MAX);
214  }
215  l1GctEtMissHtMissCorr_ = ibooker.book2D("EtMissHtMissCorr", "MET MHT CORRELATION", R6BINS, R12MIN, R12MAX, R6BINS, R7MIN, R7MAX);
216  l1GctEtMissHtMissCorrPhi_ = ibooker.book2D("EtMissHtMissPhiCorr", "MET MHT #phi CORRELATION", METPHIBINS, METPHIMIN, METPHIMAX, MHTPHIBINS, MHTPHIMIN, MHTPHIMAX);
217  l1GctEtTotal_ = ibooker.book1D("EtTotal", "SUM E_{T}", R12BINS, R12MIN, R12MAX);
218  l1GctEtTotalOf_ = ibooker.book1D("EtTotalOf", "SUM E_{T} OVERFLOW", OFBINS, OFMIN, OFMAX);
219  l1GctEtTotalOccBx_ = ibooker.book2D("EtTotalOccBx","SUM E_{T} PER BX",BXBINS,BXMIN,BXMAX,R12BINS,R12MIN,R12MAX);
220  l1GctEtHad_ = ibooker.book1D("EtHad", "H_{T}", R12BINS, R12MIN, R12MAX);
221  l1GctEtHadOf_ = ibooker.book1D("EtHadOf", "H_{T} OVERFLOW", OFBINS, OFMIN, OFMAX);
222  l1GctEtHadOccBx_ = ibooker.book2D("EtHadOccBx","H_{T} PER BX",BXBINS,BXMIN,BXMAX,R12BINS,R12MIN,R12MAX);
223  l1GctEtTotalEtHadCorr_ = ibooker.book2D("EtTotalEtHadCorr", "Sum E_{T} H_{T} CORRELATION", R6BINS, R12MIN, R12MAX, R6BINS, R12MIN, R12MAX);
224  //}
225 }
226 
227 
228 void L1TGCT::dqmBeginRun(edm::Run const& iRrun, edm::EventSetup const& evSetup) {
229  //runId_->Fill(iRrun.id().run());
230 }
231 
233  //lumisecId_->Fill(iLumi.id().luminosityBlock());
234 }
235 
237 {
238  nev_++;
239  if (verbose_) {
240  edm::LogInfo("L1TGCT") << "L1TGCT: analyze...." << std::endl;
241  }
242 
243 
244  // filter according trigger type
245  // enum ExperimentType {
246  // Undefined = 0,
247  // PhysicsTrigger = 1,
248  // CalibrationTrigger = 2,
249  // RandomTrigger = 3,
250  // Reserved = 4,
251  // TracedEvent = 5,
252  // TestTrigger = 6,
253  // ErrorTrigger = 15
254 
255  // fill a histogram with the trigger type, for normalization fill also last bin
256  // ErrorTrigger + 1
257  double triggerType = static_cast<double> (e.experimentType()) + 0.001;
258  double triggerTypeLast = static_cast<double> (edm::EventAuxiliary::ExperimentType::ErrorTrigger)
259  + 0.001;
260  triggerType_->Fill(triggerType);
261  triggerType_->Fill(triggerTypeLast + 1);
262 
263  // filter only if trigger type is greater than 0, negative values disable filtering
264  if (filterTriggerType_ >= 0) {
265 
266  // now filter, for real data only
267  if (e.isRealData()) {
268  if (!(e.experimentType() == filterTriggerType_)) {
269 
270  edm::LogInfo("L1TGCT") << "\n Event of TriggerType "
271  << e.experimentType() << " rejected" << std::endl;
272  return;
273 
274  }
275  }
276 
277  }
278 
279  // Get all the collections
285  if(m_stage1_layer2_ == true) {
287  e.getByToken(gctIsoTauJetsSourceToken_, l1IsoTauJets);
288  }
295 
296  e.getByToken(gctIsoEmSourceToken_, l1IsoEm);
297  e.getByToken(gctNonIsoEmSourceToken_, l1NonIsoEm);
298  e.getByToken(gctCenJetsSourceToken_, l1CenJets);
299  e.getByToken(gctForJetsSourceToken_, l1ForJets);
300  e.getByToken(gctTauJetsSourceToken_, l1TauJets);
302  e.getByToken(l1HFCountsToken_, l1HFCounts);
303  e.getByToken(l1EtMissToken_, l1EtMiss);
304  e.getByToken(l1HtMissToken_, l1HtMiss);
305  e.getByToken(l1EtHadToken_, l1EtHad);
306  e.getByToken(l1EtTotalToken_, l1EtTotal);
307 
308  // Fill histograms
309 
310  // Central jets
311  if (l1CenJets.isValid()) {
312  for (L1GctJetCandCollection::const_iterator cj = l1CenJets->begin();cj != l1CenJets->end(); cj++) {
313  // only plot central BX
314  if (cj->bx()==0) {
315  l1GctCenJetsRank_->Fill(cj->rank());
316  // only plot eta and phi maps for non-zero candidates
317  if (cj->rank()) {
318  l1GctAllJetsEtEtaPhi_->Fill(cj->regionId().ieta(),cj->regionId().iphi(),cj->rank());
319  l1GctAllJetsOccEtaPhi_->Fill(cj->regionId().ieta(),cj->regionId().iphi());
320  l1GctCenJetsEtEtaPhi_->Fill(cj->regionId().ieta(),cj->regionId().iphi(),cj->rank());
321  l1GctCenJetsOccEtaPhi_->Fill(cj->regionId().ieta(),cj->regionId().iphi());
322  }
323  }
324  if (cj->rank()) l1GctAllJetsOccRankBx_->Fill(cj->bx(),cj->rank()); // for all BX
325  }
326  } else {
327  edm::LogWarning("DataNotFound") << " Could not find l1CenJets label was " << gctCenJetsSource_ ;
328  }
329 
330  // Forward jets
331  if (l1ForJets.isValid()) {
332  for (L1GctJetCandCollection::const_iterator fj = l1ForJets->begin(); fj != l1ForJets->end(); fj++) {
333  // only plot central BX
334  if (fj->bx()==0) {
335  l1GctForJetsRank_->Fill(fj->rank());
336  // only plot eta and phi maps for non-zero candidates
337  if (fj->rank()) {
338  l1GctAllJetsEtEtaPhi_->Fill(fj->regionId().ieta(),fj->regionId().iphi(),fj->rank());
339  l1GctAllJetsOccEtaPhi_->Fill(fj->regionId().ieta(),fj->regionId().iphi());
340  l1GctForJetsEtEtaPhi_->Fill(fj->regionId().ieta(),fj->regionId().iphi(),fj->rank());
341  l1GctForJetsOccEtaPhi_->Fill(fj->regionId().ieta(),fj->regionId().iphi());
342  }
343  }
344  if (fj->rank()) l1GctAllJetsOccRankBx_->Fill(fj->bx(),fj->rank()); // for all BX
345  }
346  } else {
347  edm::LogWarning("DataNotFound") << " Could not find l1ForJets label was " << gctForJetsSource_ ;
348  }
349 
350  // Tau jets
351  if (l1TauJets.isValid()) {
352  for (L1GctJetCandCollection::const_iterator tj = l1TauJets->begin(); tj != l1TauJets->end(); tj++) {
353  // only plot central BX
354  if (tj->bx()==0) {
355  l1GctTauJetsRank_->Fill(tj->rank());
356  // only plot eta and phi maps for non-zero candidates
357  if (tj->rank()) {
358  l1GctTauJetsEtEtaPhi_->Fill(tj->regionId().ieta(),tj->regionId().iphi(),tj->rank());
359  l1GctTauJetsOccEtaPhi_->Fill(tj->regionId().ieta(),tj->regionId().iphi());
360  }
361  }
362  if (tj->rank()) l1GctAllJetsOccRankBx_->Fill(tj->bx(),tj->rank()); // for all BX
363  }
364  } else {
365  edm::LogWarning("DataNotFound") << " Could not find l1TauJets label was " << gctTauJetsSource_ ;
366  }
367 
368  // IsoTau jets
369  if (m_stage1_layer2_ == true) {
371  e.getByToken(gctIsoTauJetsSourceToken_, l1IsoTauJets);
372  if (l1IsoTauJets.isValid()) {
373  for (L1GctJetCandCollection::const_iterator itj = l1IsoTauJets->begin(); itj != l1IsoTauJets->end(); itj++) {
374  // only plot central BX
375  if (itj->bx()==0) {
376  l1GctIsoTauJetsRank_->Fill(itj->rank());
377  // only plot eta and phi maps for non-zero candidates
378  if (itj->rank()) {
379  l1GctIsoTauJetsEtEtaPhi_->Fill(itj->regionId().ieta(),itj->regionId().iphi(),itj->rank());
380  l1GctIsoTauJetsOccEtaPhi_->Fill(itj->regionId().ieta(),itj->regionId().iphi());
381  }
382  }
383  if (itj->rank()) l1GctAllJetsOccRankBx_->Fill(itj->bx(),itj->rank()); // for all BX
384  }
385  } else {
386  edm::LogWarning("DataNotFound") << " Could not find l1IsoTauJets label was " << gctIsoTauJetsSource_ ;
387  }
388  }
389 
390 
391  // Missing ET
392  if (l1EtMiss.isValid()) {
393  for (L1GctEtMissCollection::const_iterator met = l1EtMiss->begin(); met != l1EtMiss->end(); met++) {
394  // only plot central BX
395  if (met->bx()==0) {
396  if (met->overFlow() == 0 && met->et() > 0) {
397  //Avoid problems with met=0 candidates affecting MET_PHI plots
398  l1GctEtMiss_->Fill(met->et());
399  l1GctEtMissPhi_->Fill(met->phi());
400  }
401  l1GctEtMissOf_->Fill(met->overFlow());
402  }
403  if (met->overFlow() == 0 && met->et() > 0) l1GctEtMissOccBx_->Fill(met->bx(),met->et()); // for all BX
404  }
405  } else {
406  edm::LogWarning("DataNotFound") << " Could not find l1EtMiss label was " << gctEnergySumsSource_ ;
407  }
408 
409  // Missing HT
410  if (l1HtMiss.isValid()) {
411  for (L1GctHtMissCollection::const_iterator mht = l1HtMiss->begin(); mht != l1HtMiss->end(); mht++) {
412  // only plot central BX
413  if (mht->bx()==0) {
414  if (mht->overFlow() == 0 && mht->et() > 0) {
415  //Avoid problems with mht=0 candidates affecting MHT_PHI plots
416  l1GctHtMiss_->Fill(mht->et());
417  l1GctHtMissPhi_->Fill(mht->phi());
418  }
419  l1GctHtMissOf_->Fill(mht->overFlow());
420  }
421  if (mht->overFlow() == 0 && mht->et() > 0) l1GctHtMissOccBx_->Fill(mht->bx(),mht->et()); // for all BX
422  }
423  } else {
424  edm::LogWarning("DataNotFound") << " Could not find l1HtMiss label was " << gctEnergySumsSource_ ;
425  }
426 
427  // Missing ET HT correlations
428  if (l1HtMiss.isValid() && l1EtMiss.isValid()) {
429  if (l1HtMiss->size() == l1EtMiss->size()) {
430  for (unsigned i=0; i<l1HtMiss->size(); i++) {
431  if (l1HtMiss->at(i).overFlow() == 0 && l1EtMiss->at(i).overFlow() == 0 &&
432  l1HtMiss->at(i).bx() == 0 && l1EtMiss->at(i).bx() == 0) {
433  // Avoid problems overflows and only plot central BX
434  l1GctEtMissHtMissCorr_->Fill(l1EtMiss->at(i).et(),l1HtMiss->at(i).et());
435  if (l1HtMiss->at(i).et() && l1EtMiss->at(i).et()){ // Don't plot phi if one or other is zero
436  l1GctEtMissHtMissCorrPhi_->Fill(l1EtMiss->at(i).phi(),l1HtMiss->at(i).phi());
437  }
438  }
439  }
440  }
441  } else {
442  edm::LogWarning("DataNotFound") << " Could not find l1EtMiss or l1HtMiss label was " << gctEnergySumsSource_ ;
443  }
444 
445  // HT
446  if (l1EtHad.isValid()) {
447  for (L1GctEtHadCollection::const_iterator ht = l1EtHad->begin(); ht != l1EtHad->end(); ht++) {
448  // only plot central BX
449  if (ht->bx()==0) {
450  l1GctEtHad_->Fill(ht->et());
451  l1GctEtHadOf_->Fill(ht->overFlow());
452  }
453  l1GctEtHadOccBx_->Fill(ht->bx(),ht->et()); // for all BX
454  }
455  } else {
456  edm::LogWarning("DataNotFound") << " Could not find l1EtHad label was " << gctEnergySumsSource_ ;
457  }
458 
459  // Total ET
460  if (l1EtTotal.isValid()) {
461  for (L1GctEtTotalCollection::const_iterator et = l1EtTotal->begin(); et != l1EtTotal->end(); et++) {
462  // only plot central BX
463  if (et->bx()==0) {
464  l1GctEtTotal_->Fill(et->et());
465  l1GctEtTotalOf_->Fill(et->overFlow());
466  }
467  l1GctEtTotalOccBx_->Fill(et->bx(),et->et()); // for all BX
468  }
469  } else {
470  edm::LogWarning("DataNotFound") << " Could not find l1EtTotal label was " << gctEnergySumsSource_ ;
471  }
472 
473  // Total ET HT correlations
474  if (l1EtTotal.isValid() && l1EtHad.isValid()) {
475  if (l1EtTotal->size() == l1EtHad->size()) {
476  for (unsigned i=0; i<l1EtHad->size(); i++) {
477  if (l1EtHad->at(i).overFlow() == 0 && l1EtTotal->at(i).overFlow() == 0 &&
478  l1EtHad->at(i).bx() == 0 && l1EtTotal->at(i).bx() == 0) {
479  // Avoid problems overflows and only plot central BX
480  l1GctEtTotalEtHadCorr_->Fill(l1EtTotal->at(i).et(),l1EtHad->at(i).et());
481  }
482  }
483  }
484  } else {
485  edm::LogWarning("DataNotFound") << " Could not find l1EtTotal or l1EtHad label was " << gctEnergySumsSource_ ;
486  }
487 
488  //HF Ring Et Sums
489  if (l1HFSums.isValid()) {
490  for (L1GctHFRingEtSumsCollection::const_iterator hfs=l1HFSums->begin(); hfs!=l1HFSums->end(); hfs++){
491  // only plot central BX
492  if (hfs->bx()==0) {
493  // Individual ring Et sums
494  l1GctHFRing1ETSumPosEta_->Fill(hfs->etSum(0));
495  l1GctHFRing1ETSumNegEta_->Fill(hfs->etSum(1));
496  l1GctHFRing2ETSumPosEta_->Fill(hfs->etSum(2));
497  l1GctHFRing2ETSumNegEta_->Fill(hfs->etSum(3));
498  // Ratio of ring Et sums
499  if (hfs->etSum(2)!=0) l1GctHFRingRatioPosEta_->Fill((hfs->etSum(0))/(hfs->etSum(2)));
500  if (hfs->etSum(3)!=0) l1GctHFRingRatioNegEta_->Fill((hfs->etSum(1))/(hfs->etSum(3)));
501  // Correlate positive and neagative eta
502  l1GctHFRing1PosEtaNegEta_->Fill(hfs->etSum(0),hfs->etSum(1));
503  l1GctHFRing2PosEtaNegEta_->Fill(hfs->etSum(2),hfs->etSum(3));
504  }
505  // Occupancy vs BX
506  for (unsigned i=0; i<4; i++){
507  l1GctHFRingETSumOccBx_->Fill(hfs->bx(),hfs->etSum(i));
508  }
509  }
510  } else {
511  edm::LogWarning("DataNotFound") << " Could not find l1HFSums label was " << gctEnergySumsSource_ ;
512  }
513 
514  // HF Ring Counts
515  if (l1HFCounts.isValid()) {
516  for (L1GctHFBitCountsCollection::const_iterator hfc=l1HFCounts->begin(); hfc!=l1HFCounts->end(); hfc++){
517  // only plot central BX
518  if (hfc->bx()==0) {
519  // Individual ring counts
520  l1GctHFRing1TowerCountPosEta_->Fill(hfc->bitCount(0));
521  l1GctHFRing1TowerCountNegEta_->Fill(hfc->bitCount(1));
522  l1GctHFRing2TowerCountPosEta_->Fill(hfc->bitCount(2));
523  l1GctHFRing2TowerCountNegEta_->Fill(hfc->bitCount(3));
524  // Correlate positive and negative eta
525  l1GctHFRing1TowerCountPosEtaNegEta_->Fill(hfc->bitCount(0),hfc->bitCount(1));
526  l1GctHFRing2TowerCountPosEtaNegEta_->Fill(hfc->bitCount(2),hfc->bitCount(3));
527  }
528  // Occupancy vs BX
529  for (unsigned i=0; i<4; i++){
530  l1GctHFRingTowerCountOccBx_->Fill(hfc->bx(),hfc->bitCount(i));
531  }
532  }
533  } else {
534  edm::LogWarning("DataNotFound") << " Could not find l1HFCounts label was " << gctEnergySumsSource_ ;
535  }
536 
537  // Isolated EM
538  if (l1IsoEm.isValid()) {
539  for (L1GctEmCandCollection::const_iterator ie=l1IsoEm->begin(); ie!=l1IsoEm->end(); ie++) {
540  // only plot central BX
541  if (ie->bx()==0) {
542  l1GctIsoEmRank_->Fill(ie->rank());
543  // only plot eta and phi maps for non-zero candidates
544  if (ie->rank()){
545  l1GctIsoEmRankEtaPhi_->Fill(ie->regionId().ieta(),ie->regionId().iphi(),ie->rank());
546  l1GctIsoEmOccEtaPhi_->Fill(ie->regionId().ieta(),ie->regionId().iphi());
547  }
548  }
549  if (ie->rank()) l1GctAllEmOccRankBx_->Fill(ie->bx(),ie->rank()); // for all BX
550  }
551  } else {
552  edm::LogWarning("DataNotFound") << " Could not find l1IsoEm label was " << gctIsoEmSource_ ;
553  }
554 
555  // Non-isolated EM
556  if (l1NonIsoEm.isValid()) {
557  for (L1GctEmCandCollection::const_iterator ne=l1NonIsoEm->begin(); ne!=l1NonIsoEm->end(); ne++) {
558  // only plot central BX
559  if (ne->bx()==0) {
560  l1GctNonIsoEmRank_->Fill(ne->rank());
561  // only plot eta and phi maps for non-zero candidates
562  if (ne->rank()){
563  l1GctNonIsoEmRankEtaPhi_->Fill(ne->regionId().ieta(),ne->regionId().iphi(),ne->rank());
564  l1GctNonIsoEmOccEtaPhi_->Fill(ne->regionId().ieta(),ne->regionId().iphi());
565  }
566  }
567  if (ne->rank()) l1GctAllEmOccRankBx_->Fill(ne->bx(),ne->rank()); // for all BX
568  }
569  } else {
570  edm::LogWarning("DataNotFound") << " Could not find l1NonIsoEm label was " << gctNonIsoEmSource_ ;
571  }
572  edm::LogInfo("L1TGCT") << "L1TGCT: end job...." << std::endl;
573  edm::LogInfo("EndJob") << "analyzed " << nev_ << " events";
574 }
575 
576 
const float METPHIMAX
Definition: L1TGCT.cc:25
T getParameter(std::string const &) const
const unsigned int R6BINS
Definition: L1TCompare.cc:71
const unsigned int BXBINS
Definition: L1TGCT.cc:39
T getUntrackedParameter(std::string const &, T const &) const
#define PHIMAX
int i
Definition: DBlmapReader.cc:9
MonitorElement * l1GctHtMiss_
Definition: L1TGCT.h:180
MonitorElement * l1GctEtHad_
Definition: L1TGCT.h:189
MonitorElement * l1GctHtMissPhi_
Definition: L1TGCT.h:181
const unsigned int OFBINS
Definition: L1TGCT.cc:35
edm::InputTag gctEnergySumsSource_
Definition: L1TGCT.h:224
MonitorElement * l1GctHFRing2TowerCountNegEta_
Definition: L1TGCT.h:202
MonitorElement * l1GctEtMissOccBx_
Definition: L1TGCT.h:179
MonitorElement * l1GctCenJetsRank_
Definition: L1TGCT.h:165
MonitorElement * l1GctHFRing1ETSumNegEta_
Definition: L1TGCT.h:204
MonitorElement * l1GctEtTotalEtHadCorr_
Definition: L1TGCT.h:192
MonitorElement * l1GctHFRing1TowerCountPosEta_
Definition: L1TGCT.h:199
const unsigned int EMETABINS
Definition: L1TGCT.cc:19
MonitorElement * l1GctTauJetsEtEtaPhi_
Definition: L1TGCT.h:152
const float BXMIN
Definition: L1TGCT.cc:40
MonitorElement * l1GctHFRingETSumOccBx_
Definition: L1TGCT.h:209
MonitorElement * l1GctNonIsoEmRank_
Definition: L1TGCT.h:170
bool getByToken(EDGetToken token, Handle< PROD > &result) const
Definition: Event.h:449
const unsigned int MHTPHIBINS
Definition: L1TGCT.cc:27
const float OFMAX
Definition: L1TGCT.cc:37
MonitorElement * l1GctEtMiss_
Definition: L1TGCT.h:176
MonitorElement * bookInt(Args &&...args)
Definition: DQMStore.h:103
MonitorElement * l1GctHFRing2ETSumNegEta_
Definition: L1TGCT.h:206
MonitorElement * l1GctAllEmOccRankBx_
Definition: L1TGCT.h:173
edm::EDGetTokenT< L1GctJetCandCollection > gctCenJetsSourceToken_
Definition: L1TGCT.h:235
const float BXMAX
Definition: L1TGCT.cc:41
MonitorElement * l1GctEtTotal_
Definition: L1TGCT.h:186
MonitorElement * l1GctHtMissOf_
Definition: L1TGCT.h:182
edm::EDGetTokenT< L1GctHtMissCollection > l1HtMissToken_
Definition: L1TGCT.h:242
MonitorElement * l1GctIsoTauJetsEtEtaPhi_
Definition: L1TGCT.h:153
MonitorElement * l1GctEtHadOccBx_
Definition: L1TGCT.h:191
MonitorElement * l1GctEtTotalOccBx_
Definition: L1TGCT.h:188
edm::InputTag gctIsoTauJetsSource_
Definition: L1TGCT.h:223
bool isRealData() const
Definition: EventBase.h:64
edm::EDGetTokenT< L1GctEtTotalCollection > l1EtTotalToken_
Definition: L1TGCT.h:244
MonitorElement * l1GctHFRingTowerCountOccBx_
Definition: L1TGCT.h:210
MonitorElement * l1GctForJetsRank_
Definition: L1TGCT.h:166
MonitorElement * l1GctTauJetsRank_
Definition: L1TGCT.h:167
MonitorElement * l1GctHFRing2ETSumPosEta_
Definition: L1TGCT.h:205
virtual void beginLuminosityBlock(const edm::LuminosityBlock &, const edm::EventSetup &)
Definition: L1TGCT.cc:232
void Fill(long long x)
edm::InputTag gctCenJetsSource_
Definition: L1TGCT.h:220
L1TGCT(const edm::ParameterSet &ps)
Definition: L1TGCT.cc:60
MonitorElement * l1GctEtMissPhi_
Definition: L1TGCT.h:177
MonitorElement * l1GctCenJetsEtEtaPhi_
Definition: L1TGCT.h:150
virtual void dqmBeginRun(const edm::Run &, const edm::EventSetup &)
Definition: L1TGCT.cc:228
edm::InputTag gctTauJetsSource_
Definition: L1TGCT.h:222
edm::EDGetTokenT< L1GctEmCandCollection > gctIsoEmSourceToken_
Definition: L1TGCT.h:233
MonitorElement * l1GctAllJetsEtEtaPhi_
Definition: L1TGCT.h:149
const float JETETAMAX
Definition: L1TGCT.cc:17
MonitorElement * l1GctHFRing1ETSumPosEta_
Definition: L1TGCT.h:203
const float R6MAX
Definition: L1TCompare.cc:73
edm::EDGetTokenT< L1GctJetCandCollection > gctTauJetsSourceToken_
Definition: L1TGCT.h:237
const unsigned int R3BINS
Definition: L1TGCT.cc:44
edm::EDGetTokenT< L1GctHFBitCountsCollection > l1HFCountsToken_
Definition: L1TGCT.h:240
MonitorElement * l1GctHFRingRatioNegEta_
Definition: L1TGCT.h:208
const float EMETAMIN
Definition: L1TGCT.cc:20
MonitorElement * l1GctCenJetsOccEtaPhi_
Definition: L1TGCT.h:158
MonitorElement * l1GctIsoTauJetsRank_
Definition: L1TGCT.h:168
MonitorElement * l1GctEtMissOf_
Definition: L1TGCT.h:178
MonitorElement * l1GctForJetsEtEtaPhi_
Definition: L1TGCT.h:151
const unsigned int JETETABINS
Definition: L1TGCT.cc:15
MonitorElement * l1GctIsoEmRank_
Definition: L1TGCT.h:169
const float R12MAX
Definition: L1TGCT.cc:58
MonitorElement * book1D(Args &&...args)
Definition: DQMStore.h:115
MonitorElement * l1GctHtMissOccBx_
Definition: L1TGCT.h:183
void analyze(const edm::Event &e, const edm::EventSetup &c)
Definition: L1TGCT.cc:236
const float R7MAX
Definition: L1TGCT.cc:55
edm::EDGetTokenT< L1GctEmCandCollection > gctNonIsoEmSourceToken_
Definition: L1TGCT.h:234
MonitorElement * runId_
Definition: L1TGCT.h:211
const float R5MAX
Definition: L1TGCT.cc:49
MonitorElement * l1GctHFRing2TowerCountPosEta_
Definition: L1TGCT.h:201
edm::EDGetTokenT< L1GctEtHadCollection > l1EtHadToken_
Definition: L1TGCT.h:243
const float R12MIN
Definition: L1TGCT.cc:57
MonitorElement * l1GctHFRing2TowerCountPosEtaNegEta_
Definition: L1TGCT.h:198
bool isValid() const
Definition: HandleBase.h:75
edm::InputTag gctIsoEmSource_
Definition: L1TGCT.h:225
#define PHIMIN
MonitorElement * triggerType_
Definition: L1TGCT.h:146
const float OFMIN
Definition: L1TGCT.cc:36
MonitorElement * l1GctEtMissHtMissCorrPhi_
Definition: L1TGCT.h:185
const float MHTPHIMAX
Definition: L1TGCT.cc:29
const float R5MIN
Definition: L1TGCT.cc:48
MonitorElement * l1GctNonIsoEmOccEtaPhi_
Definition: L1TGCT.h:163
const float MHTPHIMIN
Definition: L1TGCT.cc:28
int filterTriggerType_
Definition: L1TGCT.h:230
const unsigned int R7BINS
Definition: L1TGCT.cc:53
MonitorElement * lumisecId_
Definition: L1TGCT.h:212
const float R6MIN
Definition: L1TCompare.cc:72
void setCurrentFolder(const std::string &fullpath)
Definition: DQMStore.cc:274
edm::InputTag gctForJetsSource_
Definition: L1TGCT.h:221
MonitorElement * l1GctNonIsoEmRankEtaPhi_
Definition: L1TGCT.h:155
int nev_
Definition: L1TGCT.h:214
MonitorElement * l1GctIsoTauJetsOccEtaPhi_
Definition: L1TGCT.h:161
MonitorElement * book2D(Args &&...args)
Definition: DQMStore.h:133
bool m_stage1_layer2_
filter TriggerType
Definition: L1TGCT.h:229
MonitorElement * l1GctHFRing1PosEtaNegEta_
Definition: L1TGCT.h:195
const unsigned int R12BINS
Definition: L1TGCT.cc:56
const unsigned int R5BINS
Definition: L1TGCT.cc:47
virtual ~L1TGCT()
Definition: L1TGCT.cc:106
edm::EDGetTokenT< L1GctHFRingEtSumsCollection > gctEnergySumsSourceToken_
Definition: L1TGCT.h:239
MonitorElement * l1GctAllJetsOccEtaPhi_
Definition: L1TGCT.h:157
edm::EDGetTokenT< L1GctJetCandCollection > gctIsoTauJetsSourceToken_
Definition: L1TGCT.h:238
MonitorElement * l1GctHFRingRatioPosEta_
Definition: L1TGCT.h:207
virtual void bookHistograms(DQMStore::IBooker &ibooker, edm::Run const &, edm::EventSetup const &) override
Definition: L1TGCT.cc:110
MonitorElement * l1GctIsoEmRankEtaPhi_
Definition: L1TGCT.h:154
MonitorElement * l1GctHFRing1TowerCountPosEtaNegEta_
Definition: L1TGCT.h:197
const float METPHIMIN
Definition: L1TGCT.cc:24
edm::EventAuxiliary::ExperimentType experimentType() const
Definition: EventBase.h:65
edm::EDGetTokenT< L1GctJetCandCollection > gctForJetsSourceToken_
Definition: L1TGCT.h:236
#define PHIBINS
MonitorElement * l1GctEtHadOf_
Definition: L1TGCT.h:190
std::string outputFile_
Definition: L1TGCT.h:215
MonitorElement * l1GctForJetsOccEtaPhi_
Definition: L1TGCT.h:159
const float EMETAMAX
Definition: L1TGCT.cc:21
MonitorElement * l1GctHFRing1TowerCountNegEta_
Definition: L1TGCT.h:200
edm::EDGetTokenT< L1GctEtMissCollection > l1EtMissToken_
Definition: L1TGCT.h:241
bool verbose_
Definition: L1TGCT.h:216
MonitorElement * l1GctEtTotalOf_
Definition: L1TGCT.h:187
const float R3MAX
Definition: L1TGCT.cc:46
MonitorElement * l1GctAllJetsOccRankBx_
Definition: L1TGCT.h:172
MonitorElement * l1GctEtMissHtMissCorr_
Definition: L1TGCT.h:184
MonitorElement * l1GctHFRing2PosEtaNegEta_
Definition: L1TGCT.h:196
const unsigned int METPHIBINS
Definition: L1TGCT.cc:23
edm::InputTag gctNonIsoEmSource_
Definition: L1TGCT.h:226
MonitorElement * l1GctTauJetsOccEtaPhi_
Definition: L1TGCT.h:160
Definition: Run.h:41
MonitorElement * l1GctIsoEmOccEtaPhi_
Definition: L1TGCT.h:162
const float R3MIN
Definition: L1TGCT.cc:45
const float R7MIN
Definition: L1TGCT.cc:54
const float JETETAMIN
Definition: L1TGCT.cc:16