CMS 3D CMS Logo

BeamHaloAnalyzer.cc
Go to the documentation of this file.
3 
4 //author : Ronny Remington, University of Florida
5 //date : 11/11/09
6 
7 using namespace edm;
8 using namespace reco;
9 
10 int Phi_To_iPhi(float phi) {
11  phi = phi < 0 ? phi + 2. * TMath::Pi() : phi;
12  float phi_degrees = phi * (360.) / (2. * TMath::Pi());
13  int iPhi = (int)((phi_degrees / 5.) + 1.);
14 
15  return iPhi < 73 ? iPhi : 73;
16 }
17 
19  OutputFileName = iConfig.getParameter<std::string>("OutputFile");
20  TextFileName = iConfig.getParameter<std::string>("TextFile");
21 
22  if (!TextFileName.empty())
23  out = new std::ofstream(TextFileName.c_str());
24 
25  if (iConfig.exists(
26  "StandardDQM")) // If StandardDQM == true , coarse binning is used on selected (important) histograms
27  StandardDQM = iConfig.getParameter<bool>("StandardDQM");
28  else
29  StandardDQM = false;
30 
31  //Get Input Tags
32  //Digi Level
33  IT_L1MuGMTReadout = iConfig.getParameter<edm::InputTag>("L1MuGMTReadoutLabel");
34 
35  //RecHit Level
36  IT_CSCRecHit = consumes<CSCRecHit2DCollection>(iConfig.getParameter<edm::InputTag>("CSCRecHitLabel"));
37  IT_EBRecHit = consumes<EBRecHitCollection>(iConfig.getParameter<edm::InputTag>("EBRecHitLabel"));
38  IT_EERecHit = consumes<EERecHitCollection>(iConfig.getParameter<edm::InputTag>("EERecHitLabel"));
39  IT_ESRecHit = consumes<ESRecHitCollection>(iConfig.getParameter<edm::InputTag>("ESRecHitLabel"));
40  IT_HBHERecHit = consumes<HBHERecHitCollection>(iConfig.getParameter<edm::InputTag>("HBHERecHitLabel"));
41  IT_HFRecHit = consumes<HFRecHitCollection>(iConfig.getParameter<edm::InputTag>("HFRecHitLabel"));
42  IT_HORecHit = consumes<HORecHitCollection>(iConfig.getParameter<edm::InputTag>("HORecHitLabel"));
43 
44  //Higher Level Reco
45  IT_CSCSegment = consumes<CSCSegmentCollection>(iConfig.getParameter<edm::InputTag>("CSCSegmentLabel"));
46  IT_CosmicStandAloneMuon =
47  consumes<reco::MuonCollection>(iConfig.getParameter<edm::InputTag>("CosmicStandAloneMuonLabel"));
48  IT_BeamHaloMuon = consumes<reco::MuonCollection>(iConfig.getParameter<edm::InputTag>("BeamHaloMuonLabel"));
49  IT_CollisionMuon = consumes<reco::MuonCollection>(iConfig.getParameter<edm::InputTag>("CollisionMuonLabel"));
50  IT_CollisionStandAloneMuon =
51  consumes<reco::MuonCollection>(iConfig.getParameter<edm::InputTag>("CollisionStandAloneMuonLabel"));
52  IT_met = consumes<reco::CaloMETCollection>(iConfig.getParameter<edm::InputTag>("metLabel"));
53  IT_CaloTower = consumes<edm::View<reco::Candidate> >(iConfig.getParameter<edm::InputTag>("CaloTowerLabel"));
54  IT_SuperCluster = consumes<SuperClusterCollection>(iConfig.getParameter<edm::InputTag>("SuperClusterLabel"));
55  IT_Photon = consumes<reco::PhotonCollection>(iConfig.getParameter<edm::InputTag>("PhotonLabel"));
56 
57  //Halo Data
58  IT_CSCHaloData = consumes<reco::CSCHaloData>(iConfig.getParameter<edm::InputTag>("CSCHaloDataLabel"));
59  IT_EcalHaloData = consumes<reco::EcalHaloData>(iConfig.getParameter<edm::InputTag>("EcalHaloDataLabel"));
60  IT_HcalHaloData = consumes<reco::HcalHaloData>(iConfig.getParameter<edm::InputTag>("HcalHaloDataLabel"));
61  IT_GlobalHaloData = consumes<reco::GlobalHaloData>(iConfig.getParameter<edm::InputTag>("GlobalHaloDataLabel"));
62  IT_BeamHaloSummary = consumes<BeamHaloSummary>(iConfig.getParameter<edm::InputTag>("BeamHaloSummaryLabel"));
63 
64  edm::InputTag CosmicSAMuonLabel = iConfig.getParameter<edm::InputTag>("CosmicStandAloneMuonLabel");
65  IT_CSCTimeMapToken = consumes<reco::MuonTimeExtraMap>(edm::InputTag(CosmicSAMuonLabel.label(), std::string("csc")));
66  FolderName = iConfig.getParameter<std::string>("folderName");
67  DumpMET = iConfig.getParameter<double>("DumpMET");
68 
69  //Muon to Segment Matching
70  edm::ParameterSet matchParameters = iConfig.getParameter<edm::ParameterSet>("MatchParameters");
71  edm::ConsumesCollector iC = consumesCollector();
72  TheMatcher = new MuonSegmentMatcher(matchParameters, iC);
73 }
74 
76  // EcalHaloData
77  ibooker.setCurrentFolder(FolderName + "/EcalHaloData");
78  if (StandardDQM) {
79  hEcalHaloData_PhiWedgeMultiplicity = ibooker.book1D("EcalHaloData_PhiWedgeMultiplicity", "", 20, -0.5, 19.5);
80  hEcalHaloData_PhiWedgeConstituents = ibooker.book1D("EcalHaloData_PhiWedgeConstituents", "", 20, -0.5, 19.5);
81  // hEcalHaloData_PhiWedgeiPhi = ibooker.book1D("EcalHaloData_PhiWedgeiPhi","", 360, 0.5, 360.5) ;
82  hEcalHaloData_PhiWedgeZDirectionConfidence =
83  ibooker.book1D("EcalHaloData_ZDirectionConfidence", "", 120, -1.2, 1.2);
84  hEcalHaloData_SuperClusterShowerShapes =
85  ibooker.book2D("EcalHaloData_SuperClusterShowerShapes", "", 30, 0, 3.2, 25, 0.0, 2.0);
86  hEcalHaloData_SuperClusterEnergy = ibooker.book1D("EcalHaloData_SuperClusterEnergy", "", 50, -0.5, 99.5);
87  hEcalHaloData_SuperClusterNHits = ibooker.book1D("EcalHaloData_SuperClusterNHits", "", 20, -0.5, 19.5);
88  } else {
89  hEcalHaloData_PhiWedgeMultiplicity = ibooker.book1D("EcalHaloData_PhiWedgeMultiplicity", "", 20, -0.5, 19.5);
90  hEcalHaloData_PhiWedgeEnergy = ibooker.book1D("EcalHaloData_PhiWedgeEnergy", "", 50, -0.5, 199.5);
91  hEcalHaloData_PhiWedgeConstituents = ibooker.book1D("EcalHaloData_PhiWedgeConstituents", "", 20, -0.5, 19.5);
92  hEcalHaloData_PhiWedgeMinTime = ibooker.book1D("EcalHaloData_PhiWedgeMinTime", "", 100, -225.0, 225.0);
93  hEcalHaloData_PhiWedgeMaxTime = ibooker.book1D("EcalHaloData_PhiWedgeMaxTime", "", 100, -225.0, 225.0);
94  hEcalHaloData_PhiWedgeiPhi = ibooker.book1D("EcalHaloData_PhiWedgeiPhi", "", 360, 0.5, 360.5);
95  hEcalHaloData_PhiWedgePlusZDirectionConfidence =
96  ibooker.book1D("EcalHaloData_PlusZDirectionConfidence", "", 50, 0., 1.0);
97  hEcalHaloData_PhiWedgeZDirectionConfidence =
98  ibooker.book1D("EcalHaloData_ZDirectionConfidence", "", 120, -1.2, 1.2);
99  hEcalHaloData_PhiWedgeMinVsMaxTime =
100  ibooker.book2D("EcalHaloData_PhiWedgeMinVsMaxTime", "", 50, -100.0, 100.0, 50, -100.0, 100.0);
101  hEcalHaloData_SuperClusterShowerShapes =
102  ibooker.book2D("EcalHaloData_SuperClusterShowerShapes", "", 30, 0, 3.2, 25, 0.0, 2.0);
103  hEcalHaloData_SuperClusterEnergy = ibooker.book1D("EcalHaloData_SuperClusterEnergy", "", 100, -0.5, 99.5);
104  hEcalHaloData_SuperClusterNHits = ibooker.book1D("EcalHaloData_SuperClusterNHits", "", 20, -0.5, 19.5);
105  hEcalHaloData_SuperClusterPhiVsEta =
106  ibooker.book2D("EcalHaloData_SuperClusterPhiVsEta", "", 60, -3.0, 3.0, 60, -3.2, 3.2);
107  }
108 
109  // HcalHaloData
110  ibooker.setCurrentFolder(FolderName + "/HcalHaloData");
111  if (StandardDQM) {
112  hHcalHaloData_PhiWedgeMultiplicity = ibooker.book1D("HcalHaloData_PhiWedgeMultiplicity", "", 20, -0.5, 19.5);
113  hHcalHaloData_PhiWedgeConstituents = ibooker.book1D("HcalHaloData_PhiWedgeConstituents", "", 20, -0.5, 19.5);
114  //hHcalHaloData_PhiWedgeiPhi = ibooker.book1D("HcalHaloData_PhiWedgeiPhi","", 72, 0.5,72.5);
115  hHcalHaloData_PhiWedgeZDirectionConfidence =
116  ibooker.book1D("HcalHaloData_ZDirectionConfidence", "", 120, -1.2, 1.2);
117  } else {
118  hHcalHaloData_PhiWedgeMultiplicity = ibooker.book1D("HcalHaloData_PhiWedgeMultiplicity", "", 20, -0.5, 19.5);
119  hHcalHaloData_PhiWedgeEnergy = ibooker.book1D("HcalHaloData_PhiWedgeEnergy", "", 50, -0.5, 199.5);
120  hHcalHaloData_PhiWedgeConstituents = ibooker.book1D("HcalHaloData_PhiWedgeConstituents", "", 20, -0.5, 19.5);
121  hHcalHaloData_PhiWedgeiPhi = ibooker.book1D("HcalHaloData_PhiWedgeiPhi", "", 72, 0.5, 72.5);
122  hHcalHaloData_PhiWedgeMinTime = ibooker.book1D("HcalHaloData_PhiWedgeMinTime", "", 50, -100.0, 100.0);
123  hHcalHaloData_PhiWedgeMaxTime = ibooker.book1D("HcalHaloData_PhiWedgeMaxTime", "", 50, -100.0, 100.0);
124  hHcalHaloData_PhiWedgePlusZDirectionConfidence =
125  ibooker.book1D("HcalHaloData_PlusZDirectionConfidence", "", 50, 0., 1.0);
126  hHcalHaloData_PhiWedgeZDirectionConfidence =
127  ibooker.book1D("HcalHaloData_ZDirectionConfidence", "", 120, -1.2, 1.2);
128  hHcalHaloData_PhiWedgeMinVsMaxTime =
129  ibooker.book2D("HcalHaloData_PhiWedgeMinVsMaxTime", "", 50, -100.0, 100.0, 50, -100.0, 100.0);
130  }
131 
132  // CSCHaloData
133  ibooker.setCurrentFolder(FolderName + "/CSCHaloData");
134  if (StandardDQM) {
135  hCSCHaloData_TrackMultiplicity = ibooker.book1D("CSCHaloData_TrackMultiplicity", "", 15, -0.5, 14.5);
136  hCSCHaloData_TrackMultiplicityMEPlus = ibooker.book1D("CSCHaloData_TrackMultiplicityMEPlus", "", 15, -0.5, 14.5);
137  hCSCHaloData_TrackMultiplicityMEMinus = ibooker.book1D("CSCHaloData_TrackMultiplicityMEMinus", "", 15, -0.5, 14.5);
138  hCSCHaloData_InnerMostTrackHitR = ibooker.book1D("CSCHaloData_InnerMostTrackHitR", "", 70, 99.5, 799.5);
139  hCSCHaloData_InnerMostTrackHitPhi = ibooker.book1D("CSCHaloData_InnerMostTrackHitPhi", "", 60, -3.2, 3.2);
140  hCSCHaloData_L1HaloTriggersMEPlus = ibooker.book1D("CSCHaloData_L1HaloTriggersMEPlus", "", 10, -0.5, 9.5);
141  hCSCHaloData_L1HaloTriggersMEMinus = ibooker.book1D("CSCHaloData_L1HaloTriggersMEMinus", "", 10, -0.5, 9.5);
142  hCSCHaloData_L1HaloTriggers = ibooker.book1D("CSCHaloData_L1HaloTriggers", "", 10, -0.5, 9.5);
143  hCSCHaloData_HLHaloTriggers = ibooker.book1D("CSCHaloData_HLHaloTriggers", "", 2, -0.5, 1.5);
144  hCSCHaloData_NOutOfTimeTriggersvsL1HaloExists =
145  ibooker.book2D("CSCHaloData_NOutOfTimeTriggersvsL1HaloExists", "", 20, -0.5, 19.5, 2, -0.5, 1.5);
146  hCSCHaloData_NOutOfTimeTriggersMEPlus = ibooker.book1D("CSCHaloData_NOutOfTimeTriggersMEPlus", "", 20, -0.5, 19.5);
147  hCSCHaloData_NOutOfTimeTriggersMEMinus =
148  ibooker.book1D("CSCHaloData_NOutOfTimeTriggersMEMinus", "", 20, -0.5, 19.5);
149  hCSCHaloData_NOutOfTimeTriggers = ibooker.book1D("CSCHaloData_NOutOfTimeTriggers", "", 20, -0.5, 19.5);
150  hCSCHaloData_NOutOfTimeHits = ibooker.book1D("CSCHaloData_NOutOfTimeHits", "", 60, -0.5, 59.5);
151  hCSCHaloData_NTracksSmalldT = ibooker.book1D("CSCHaloData_NTracksSmalldT", "", 15, -0.5, 14.5);
152  hCSCHaloData_NTracksSmallBeta = ibooker.book1D("CSCHaloData_NTracksSmallBeta", "", 15, -0.5, 14.5);
153  hCSCHaloData_NTracksSmallBetaAndSmalldT =
154  ibooker.book1D("CSCHaloData_NTracksSmallBetaAndSmalldT", "", 15, -0.5, 14.5);
155  hCSCHaloData_NTracksSmalldTvsNHaloTracks =
156  ibooker.book2D("CSCHaloData_NTracksSmalldTvsNHaloTracks", "", 15, -0.5, 14.5, 15, -0.5, 14.5);
157  hCSCHaloData_SegmentdT = ibooker.book1D("CSCHaloData_SegmentdT", "", 100, -100, 100);
158  hCSCHaloData_FreeInverseBeta = ibooker.book1D("CSCHaloData_FreeInverseBeta", "", 80, -4, 4);
159  hCSCHaloData_FreeInverseBetaVsSegmentdT =
160  ibooker.book2D("CSCHaloData_FreeInverseBetaVsSegmentdT", "", 100, -100, 100, 80, -4, 4);
161  // MLR
162  hCSCHaloData_NFlatHaloSegments = ibooker.book1D("CSCHaloData_NFlatHaloSegments", "", 20, 0, 20);
163  hCSCHaloData_SegmentsInBothEndcaps = ibooker.book1D("CSCHaloData_SegmentsInBothEndcaps", "", 2, 0, 2);
164  hCSCHaloData_NFlatSegmentsInBothEndcaps = ibooker.book1D("CSCHaloData_NFlatSegmentsInBothEndcaps", "", 20, 0, 20);
165  // End MLR
166  } else {
167  hCSCHaloData_TrackMultiplicity = ibooker.book1D("CSCHaloData_TrackMultiplicity", "", 15, -0.5, 14.5);
168  hCSCHaloData_TrackMultiplicityMEPlus = ibooker.book1D("CSCHaloData_TrackMultiplicityMEPlus", "", 15, -0.5, 14.5);
169  hCSCHaloData_TrackMultiplicityMEMinus = ibooker.book1D("CSCHaloData_TrackMultiplicityMEMinus", "", 15, -0.5, 14.5);
170  hCSCHaloData_InnerMostTrackHitXY =
171  ibooker.book2D("CSCHaloData_InnerMostTrackHitXY", "", 100, -700, 700, 100, -700, 700);
172  hCSCHaloData_InnerMostTrackHitR = ibooker.book1D("CSCHaloData_InnerMostTrackHitR", "", 400, -0.5, 799.5);
173  hCSCHaloData_InnerMostTrackHitRPlusZ =
174  ibooker.book2D("CSCHaloData_InnerMostTrackHitRPlusZ", "", 400, 400, 1200, 400, -0.5, 799.5);
175  hCSCHaloData_InnerMostTrackHitRMinusZ =
176  ibooker.book2D("CSCHaloData_InnerMostTrackHitRMinusZ", "", 400, -1200, -400, 400, -0.5, 799.5);
177  hCSCHaloData_InnerMostTrackHitiPhi = ibooker.book1D("CSCHaloData_InnerMostTrackHitiPhi", "", 72, 0.5, 72.5);
178  hCSCHaloData_InnerMostTrackHitPhi = ibooker.book1D("CSCHaloData_InnerMostTrackHitPhi", "", 60, -3.2, 3.2);
179  hCSCHaloData_L1HaloTriggersMEPlus = ibooker.book1D("CSCHaloData_L1HaloTriggersMEPlus", "", 10, -0.5, 9.5);
180  hCSCHaloData_L1HaloTriggersMEMinus = ibooker.book1D("CSCHaloData_L1HaloTriggersMEMinus", "", 10, -0.5, 9.5);
181  hCSCHaloData_L1HaloTriggers = ibooker.book1D("CSCHaloData_L1HaloTriggers", "", 10, -0.5, 9.5);
182  hCSCHaloData_HLHaloTriggers = ibooker.book1D("CSCHaloData_HLHaloTriggers", "", 2, -0.5, 1.5);
183  hCSCHaloData_NOutOfTimeTriggersvsL1HaloExists =
184  ibooker.book2D("CSCHaloData_NOutOfTimeTriggersvsL1HaloExists", "", 20, -0.5, 19.5, 2, -0.5, 1.5);
185  hCSCHaloData_NOutOfTimeTriggers = ibooker.book1D("CSCHaloData_NOutOfTimeTriggers", "", 20, -0.5, 19.5);
186  hCSCHaloData_NOutOfTimeHits = ibooker.book1D("CSCHaloData_NOutOfTimeHits", "", 60, -0.5, 59.5);
187  hCSCHaloData_NTracksSmalldT = ibooker.book1D("CSCHaloData_NTracksSmalldT", "", 15, -0.5, 14.5);
188  hCSCHaloData_NTracksSmallBeta = ibooker.book1D("CSCHaloData_NTracksSmallBeta", "", 15, -0.5, 14.5);
189  hCSCHaloData_NTracksSmallBetaAndSmalldT =
190  ibooker.book1D("CSCHaloData_NTracksSmallBetaAndSmalldT", "", 15, -0.5, 14.5);
191  hCSCHaloData_NTracksSmalldTvsNHaloTracks =
192  ibooker.book2D("CSCHaloData_NTracksSmalldTvsNHaloTracks", "", 15, -0.5, 14.5, 15, -0.5, 14.5);
193  hCSCHaloData_SegmentdT = ibooker.book1D("CSCHaloData_SegmentdT", "", 100, -100, 100);
194  hCSCHaloData_FreeInverseBeta = ibooker.book1D("CSCHaloData_FreeInverseBeta", "", 80, -4, 4);
195  hCSCHaloData_FreeInverseBetaVsSegmentdT =
196  ibooker.book2D("CSCHaloData_FreeInverseBetaVsSegmentdT", "", 100, -100, 100, 80, -4, 4);
197  // MLR
198  hCSCHaloData_NFlatHaloSegments = ibooker.book1D("CSCHaloData_NFlatHaloSegments", "", 20, 0, 20);
199  hCSCHaloData_SegmentsInBothEndcaps = ibooker.book1D("CSCHaloData_SegmentsInBothEndcaps", "", 2, 0, 2);
200  hCSCHaloData_NFlatSegmentsInBothEndcaps = ibooker.book1D("CSCHaloData_NFlatSegmentsInBothEndcaps", "", 20, 0, 20);
201  // End MLR
202  }
203 
204  // GlobalHaloData
205  ibooker.setCurrentFolder(FolderName + "/GlobalHaloData");
206  if (!StandardDQM) {
207  hGlobalHaloData_MExCorrection = ibooker.book1D("GlobalHaloData_MExCorrection", "", 200, -200., 200.);
208  hGlobalHaloData_MEyCorrection = ibooker.book1D("GlobalHaloData_MEyCorrection", "", 200, -200., 200.);
209  hGlobalHaloData_SumEtCorrection = ibooker.book1D("GlobalHaloData_SumEtCorrection", "", 200, -0.5, 399.5);
210  hGlobalHaloData_HaloCorrectedMET = ibooker.book1D("GlobalHaloData_HaloCorrectedMET", "", 500, -0.5, 1999.5);
211  hGlobalHaloData_RawMETMinusHaloCorrectedMET =
212  ibooker.book1D("GlobalHaloData_RawMETMinusHaloCorrectedMET", "", 250, -500., 500.);
213  hGlobalHaloData_RawMETOverSumEt = ibooker.book1D("GlobalHaloData_RawMETOverSumEt", "", 100, 0.0, 1.0);
214  hGlobalHaloData_MatchedHcalPhiWedgeMultiplicity =
215  ibooker.book1D("GlobalHaloData_MatchedHcalPhiWedgeMultiplicity", "", 15, -0.5, 14.5);
216  hGlobalHaloData_MatchedHcalPhiWedgeEnergy =
217  ibooker.book1D("GlobalHaloData_MatchedHcalPhiWedgeEnergy", "", 50, -0.5, 199.5);
218  hGlobalHaloData_MatchedHcalPhiWedgeConstituents =
219  ibooker.book1D("GlobalHaloData_MatchedHcalPhiWedgeConstituents", "", 20, -0.5, 19.5);
220  hGlobalHaloData_MatchedHcalPhiWedgeiPhi =
221  ibooker.book1D("GlobalHaloData_MatchedHcalPhiWedgeiPhi", "", 1, 0.5, 72.5);
222  hGlobalHaloData_MatchedHcalPhiWedgeMinTime =
223  ibooker.book1D("GlobalHaloData_MatchedHcalPhiWedgeMinTime", "", 50, -100.0, 100.0);
224  hGlobalHaloData_MatchedHcalPhiWedgeMaxTime =
225  ibooker.book1D("GlobalHaloData_MatchedHcalPhiWedgeMaxTime", "", 50, -100.0, 100.0);
226  hGlobalHaloData_MatchedHcalPhiWedgeZDirectionConfidence =
227  ibooker.book1D("GlobalHaloData_MatchedHcalPhiWedgeZDirectionConfidence", "", 120, -1.2, 1.2);
228  hGlobalHaloData_MatchedEcalPhiWedgeMultiplicity =
229  ibooker.book1D("GlobalHaloData_MatchedEcalPhiWedgeMultiplicity", "", 15, -0.5, 14.5);
230  hGlobalHaloData_MatchedEcalPhiWedgeEnergy =
231  ibooker.book1D("GlobalHaloData_MatchedEcalPhiWedgeEnergy", "", 50, -0.5, 199.5);
232  hGlobalHaloData_MatchedEcalPhiWedgeConstituents =
233  ibooker.book1D("GlobalHaloData_MatchedEcalPhiWedgeConstituents", "", 20, -0.5, 19.5);
234  hGlobalHaloData_MatchedEcalPhiWedgeiPhi =
235  ibooker.book1D("GlobalHaloData_MatchedEcalPhiWedgeiPhi", "", 360, 0.5, 360.5);
236  hGlobalHaloData_MatchedEcalPhiWedgeMinTime =
237  ibooker.book1D("GlobalHaloData_MatchedEcalPhiWedgeMinTime", "", 50, -100.0, 100.0);
238  hGlobalHaloData_MatchedEcalPhiWedgeMaxTime =
239  ibooker.book1D("GlobalHaloData_MatchedEcalPhiWedgeMaxTime", "", 50, -100.0, 100.0);
240  hGlobalHaloData_MatchedEcalPhiWedgeZDirectionConfidence =
241  ibooker.book1D("GlobalHaloData_MatchedEcalPhiWedgeZDirectionConfidence", "", 120, 1.2, 1.2);
242  }
243  // BeamHaloSummary
244  ibooker.setCurrentFolder(FolderName + "/BeamHaloSummary");
245 
246  hBeamHaloSummary_Id = ibooker.book1D("BeamHaloSumamry_Id", "", 11, 0.5, 11.5);
247  hBeamHaloSummary_Id->setBinLabel(1, "CSC Loose");
248  hBeamHaloSummary_Id->setBinLabel(2, "CSC Tight");
249  hBeamHaloSummary_Id->setBinLabel(3, "Ecal Loose");
250  hBeamHaloSummary_Id->setBinLabel(4, "Ecal Tight");
251  hBeamHaloSummary_Id->setBinLabel(5, "Hcal Loose");
252  hBeamHaloSummary_Id->setBinLabel(6, "Hcal Tight");
253  hBeamHaloSummary_Id->setBinLabel(7, "Global Loose");
254  hBeamHaloSummary_Id->setBinLabel(8, "Global Tight");
255  hBeamHaloSummary_Id->setBinLabel(9, "Event Loose");
256  hBeamHaloSummary_Id->setBinLabel(10, "Event Tight");
257  hBeamHaloSummary_Id->setBinLabel(11, "Nothing");
258  if (!StandardDQM) {
259  hBeamHaloSummary_BXN = ibooker.book2D("BeamHaloSummary_BXN", "", 11, 0.5, 11.5, 4000, -0.5, 3999.5);
260  hBeamHaloSummary_BXN->setBinLabel(1, "CSC Loose");
261  hBeamHaloSummary_BXN->setBinLabel(2, "CSC Tight");
262  hBeamHaloSummary_BXN->setBinLabel(3, "Ecal Loose");
263  hBeamHaloSummary_BXN->setBinLabel(4, "Ecal Tight");
264  hBeamHaloSummary_BXN->setBinLabel(5, "Hcal Loose");
265  hBeamHaloSummary_BXN->setBinLabel(6, "Hcal Tight");
266  hBeamHaloSummary_BXN->setBinLabel(7, "Global Loose");
267  hBeamHaloSummary_BXN->setBinLabel(8, "Global Tight");
268  hBeamHaloSummary_BXN->setBinLabel(9, "Event Loose");
269  hBeamHaloSummary_BXN->setBinLabel(10, "Event Tight");
270  hBeamHaloSummary_BXN->setBinLabel(11, "Nothing");
271  }
272  // Extra
273  ibooker.setCurrentFolder(FolderName + "/ExtraHaloData");
274  if (StandardDQM) {
275  hExtra_CSCTrackInnerOuterDPhi = ibooker.book1D("Extra_CSCTrackInnerOuterDPhi", "", 30, 0, 3.2);
276  hExtra_CSCTrackInnerOuterDEta = ibooker.book1D("Extra_CSCTrackInnerOuterDEta", "", 100, 0, 3.0);
277  hExtra_CSCTrackChi2Ndof = ibooker.book1D("Extra_CSCTrackChi2Ndof", "", 25, 0, 10);
278  hExtra_CSCTrackNHits = ibooker.book1D("Extra_CSCTrackNHits", "", 75, 0, 75);
279  hExtra_CSCActivityWithMET = ibooker.book2D("Extra_CSCActivityWithMET", "", 4, 0.5, 4.5, 4, 0.5, 4.5);
280  hExtra_CSCActivityWithMET->setBinLabel(1, "Track", 1);
281  hExtra_CSCActivityWithMET->setBinLabel(1, "Track", 2);
282  hExtra_CSCActivityWithMET->setBinLabel(2, "Segments", 1);
283  hExtra_CSCActivityWithMET->setBinLabel(2, "Segments", 2);
284  hExtra_CSCActivityWithMET->setBinLabel(3, "RecHits", 1);
285  hExtra_CSCActivityWithMET->setBinLabel(3, "RecHits", 2);
286  hExtra_CSCActivityWithMET->setBinLabel(4, "Nothing", 1);
287  hExtra_CSCActivityWithMET->setBinLabel(4, "Nothing", 2);
288  hExtra_InnerMostTrackHitR = ibooker.book1D("Extra_InnerMostTrackHitR", "", 70, 99.5, 799.5);
289  hExtra_InnerMostTrackHitPhi = ibooker.book1D("Extra_InnerMostTrackHitPhi", "", 60, -3.2, 3.2);
290  } else {
291  hExtra_CSCActivityWithMET = ibooker.book2D("Extra_CSCActivityWithMET", "", 4, 0.5, 4.5, 4, 0.5, 4.5);
292  hExtra_CSCActivityWithMET->setBinLabel(1, "Track", 1);
293  hExtra_CSCActivityWithMET->setBinLabel(1, "Track", 2);
294  hExtra_CSCActivityWithMET->setBinLabel(2, "Segments", 1);
295  hExtra_CSCActivityWithMET->setBinLabel(2, "Segments", 2);
296  hExtra_CSCActivityWithMET->setBinLabel(3, "RecHits", 1);
297  hExtra_CSCActivityWithMET->setBinLabel(3, "RecHits", 2);
298  hExtra_CSCActivityWithMET->setBinLabel(4, "Nothing", 1);
299  hExtra_CSCActivityWithMET->setBinLabel(4, "Nothing", 2);
300  hExtra_HcalToF = ibooker.book2D("Extra_HcalToF", "", 83, -41.5, 41.5, 1000, -125., 125.);
301  hExtra_HcalToF_HaloId = ibooker.book2D("Extra_HcalToF_HaloId", "", 83, -41.5, 41.5, 1000, -125., 125.);
302  hExtra_EcalToF = ibooker.book2D("Extra_EcalToF", "", 171, -85.5, 85.5, 2000, -225., 225.);
303  hExtra_EcalToF_HaloId = ibooker.book2D("Extra_EcalToF_HaloId", "", 171, -85.5, 85.5, 2000, -225., 225.);
304  hExtra_CSCTrackInnerOuterDPhi = ibooker.book1D("Extra_CSCTrackInnerOuterDPhi", "", 30, 0, 3.2);
305  hExtra_CSCTrackInnerOuterDEta = ibooker.book1D("Extra_CSCTrackInnerOuterDEta", "", 30, 0, 3.2);
306  hExtra_CSCTrackChi2Ndof = ibooker.book1D("Extra_CSCTrackChi2Ndof", "", 100, 0, 10);
307  hExtra_CSCTrackNHits = ibooker.book1D("Extra_CSCTrackNHits", "", 75, 0, 75);
308  hExtra_InnerMostTrackHitXY = ibooker.book2D("Extra_InnerMostTrackHitXY", "", 100, -700, 700, 100, -700, 700);
309  hExtra_InnerMostTrackHitR = ibooker.book1D("Extra_InnerMostTrackHitR", "", 400, -0.5, 799.5);
310  hExtra_InnerMostTrackHitRPlusZ =
311  ibooker.book2D("Extra_InnerMostTrackHitRPlusZ", "", 400, 400, 1200, 400, -0.5, 799.5);
312  hExtra_InnerMostTrackHitRMinusZ =
313  ibooker.book2D("Extra_InnerMostTrackHitRMinusZ", "", 400, -1200, -400, 400, -0.5, 799.5);
314  hExtra_InnerMostTrackHitiPhi = ibooker.book1D("Extra_InnerMostTrackHitiPhi", "", 72, 0.5, 72.5);
315  hExtra_InnerMostTrackHitPhi = ibooker.book1D("Extra_InnerMostTrackHitPhi", "", 60, -3.2, 3.2);
316  hExtra_BXN = ibooker.book1D("Extra_BXN", "BXN Occupancy", 4000, 0.5, 4000.5);
317  }
318 }
319 
321  EventID TheEvent = iEvent.id();
322  int BXN = iEvent.bunchCrossing();
323  bool Dump = !TextFileName.empty();
324  edm::EventNumber_t TheEventNumber = TheEvent.event();
325  edm::LuminosityBlockNumber_t Lumi = iEvent.luminosityBlock();
326  edm::RunNumber_t Run = iEvent.run();
327 
328  //Get CSC Geometry
329  edm::ESHandle<CSCGeometry> TheCSCGeometry;
330  iSetup.get<MuonGeometryRecord>().get(TheCSCGeometry);
331 
332  //Get CaloGeometry
333  edm::ESHandle<CaloGeometry> TheCaloGeometry;
334  iSetup.get<CaloGeometryRecord>().get(TheCaloGeometry);
335 
336  //Get Stand-alone Muons from Cosmic Muon Reconstruction
338  iEvent.getByToken(IT_CosmicStandAloneMuon, TheCosmics);
340  iEvent.getByToken(IT_CSCTimeMapToken, TheCSCTimeMap);
341  bool CSCTrackPlus = false;
342  bool CSCTrackMinus = false;
343  int imucount = 0;
344  if (TheCosmics.isValid()) {
345  for (reco::MuonCollection::const_iterator iMuon = TheCosmics->begin(); iMuon != TheCosmics->end();
346  iMuon++, imucount++) {
347  reco::TrackRef Track = iMuon->outerTrack();
348  if (!Track)
349  continue;
350 
351  if (!CSCTrackPlus || !CSCTrackMinus) {
352  if (Track->eta() > 0 || Track->outerPosition().z() > 0 || Track->innerPosition().z() > 0)
353  CSCTrackPlus = true;
354  else if (Track->eta() < 0 || Track->outerPosition().z() < 0 || Track->innerPosition().z() < 0)
355  CSCTrackMinus = true;
356  }
357 
358  float innermost_phi = 0.;
359  float outermost_phi = 0.;
360  float innermost_z = 99999.;
361  float outermost_z = 0.;
362  float innermost_eta = 0.;
363  float outermost_eta = 0.;
364  float innermost_x = 0.;
365  float innermost_y = 0.;
366  float innermost_r = 0.;
367  for (unsigned int j = 0; j < Track->extra()->recHitsSize(); j++) {
368  auto hit = Track->extra()->recHitRef(j);
369  DetId TheDetUnitId(hit->geographicalId());
370  if (TheDetUnitId.det() != DetId::Muon)
371  continue;
372  if (TheDetUnitId.subdetId() != MuonSubdetId::CSC)
373  continue;
374 
375  const GeomDetUnit* TheUnit = TheCSCGeometry->idToDetUnit(TheDetUnitId);
376  LocalPoint TheLocalPosition = hit->localPosition();
377  const BoundPlane& TheSurface = TheUnit->surface();
378  const GlobalPoint TheGlobalPosition = TheSurface.toGlobal(TheLocalPosition);
379 
380  float z = TheGlobalPosition.z();
381  if (TMath::Abs(z) < innermost_z) {
382  innermost_phi = TheGlobalPosition.phi();
383  innermost_eta = TheGlobalPosition.eta();
384  innermost_z = TheGlobalPosition.z();
385  innermost_x = TheGlobalPosition.x();
386  innermost_y = TheGlobalPosition.y();
387  innermost_r = TMath::Sqrt(innermost_x * innermost_x + innermost_y * innermost_y);
388  }
389  if (TMath::Abs(z) > outermost_z) {
390  outermost_phi = TheGlobalPosition.phi();
391  outermost_eta = TheGlobalPosition.eta();
392  outermost_z = TheGlobalPosition.z();
393  }
394  }
395  float dphi = TMath::Abs(outermost_phi - innermost_phi);
396  float deta = TMath::Abs(outermost_eta - innermost_eta);
397  hExtra_CSCTrackInnerOuterDPhi->Fill(dphi);
398  hExtra_CSCTrackInnerOuterDEta->Fill(deta);
399  hExtra_CSCTrackChi2Ndof->Fill(Track->normalizedChi2());
400  hExtra_CSCTrackNHits->Fill(Track->numberOfValidHits());
401  hExtra_InnerMostTrackHitR->Fill(innermost_r);
402  hExtra_InnerMostTrackHitPhi->Fill(innermost_phi);
403  if (!StandardDQM) {
404  hExtra_InnerMostTrackHitXY->Fill(innermost_x, innermost_y);
405  hExtra_InnerMostTrackHitiPhi->Fill(Phi_To_iPhi(innermost_phi));
406  if (innermost_z > 0)
407  hExtra_InnerMostTrackHitRPlusZ->Fill(innermost_z, innermost_r);
408  else
409  hExtra_InnerMostTrackHitRMinusZ->Fill(innermost_z, innermost_r);
410  }
411 
412  std::vector<const CSCSegment*> MatchedSegments = TheMatcher->matchCSC(*Track, iEvent);
413  // Find the inner and outer segments separately in case they don't agree completely with recHits
414  // Plan for the possibility segments in both endcaps
415  float InnerSegmentTime[2] = {0, 0};
416  float OuterSegmentTime[2] = {0, 0};
417  float innermost_seg_z[2] = {1500, 1500};
418  float outermost_seg_z[2] = {0, 0};
419  for (std::vector<const CSCSegment*>::const_iterator segment = MatchedSegments.begin();
420  segment != MatchedSegments.end();
421  ++segment) {
422  CSCDetId TheCSCDetId((*segment)->cscDetId());
423  const CSCChamber* TheCSCChamber = TheCSCGeometry->chamber(TheCSCDetId);
424  LocalPoint TheLocalPosition = (*segment)->localPosition();
425  const GlobalPoint TheGlobalPosition = TheCSCChamber->toGlobal(TheLocalPosition);
426  float z = TheGlobalPosition.z();
427  int TheEndcap = TheCSCDetId.endcap();
428  if (TMath::Abs(z) < innermost_seg_z[TheEndcap - 1]) {
429  innermost_seg_z[TheEndcap - 1] = TMath::Abs(z);
430  InnerSegmentTime[TheEndcap - 1] = (*segment)->time();
431  }
432  if (TMath::Abs(z) > outermost_seg_z[TheEndcap - 1]) {
433  outermost_seg_z[TheEndcap - 1] = TMath::Abs(z);
434  OuterSegmentTime[TheEndcap - 1] = (*segment)->time();
435  }
436  }
437 
438  float dT_Segment = 0; // default safe value, looks like collision muon
439  if (innermost_seg_z[0] < outermost_seg_z[0]) // two segments in ME+
440  dT_Segment = OuterSegmentTime[0] - InnerSegmentTime[0];
441  if (innermost_seg_z[1] < outermost_seg_z[1]) // two segments in ME-
442  {
443  // replace the measurement if there weren't segments in ME+ or
444  // if the track in ME- has timing more consistent with an incoming particle
445  if (dT_Segment == 0.0 || OuterSegmentTime[1] - InnerSegmentTime[1] < dT_Segment)
446  dT_Segment = OuterSegmentTime[1] - InnerSegmentTime[1];
447  }
448  hCSCHaloData_SegmentdT->Fill(dT_Segment);
449 
450  // Analyze the MuonTimeExtra information
451  reco::MuonRef muonR(TheCosmics, imucount);
452  if (TheCSCTimeMap.isValid()) {
453  const reco::MuonTimeExtraMap& timeMapCSC = *TheCSCTimeMap;
454  reco::MuonTimeExtra timecsc = timeMapCSC[muonR];
455  float freeInverseBeta = timecsc.freeInverseBeta();
456  hCSCHaloData_FreeInverseBeta->Fill(freeInverseBeta);
457  hCSCHaloData_FreeInverseBetaVsSegmentdT->Fill(dT_Segment, freeInverseBeta);
458  }
459  }
460  }
461 
462  //Get CSC Segments
463  edm::Handle<CSCSegmentCollection> TheCSCSegments;
464  iEvent.getByToken(IT_CSCSegment, TheCSCSegments);
465 
466  // Group segments according to endcaps
467  std::vector<CSCSegment> vCSCSegments_Plus;
468  std::vector<CSCSegment> vCSCSegments_Minus;
469 
470  bool CSCSegmentPlus = false;
471  bool CSCSegmentMinus = false;
472  if (TheCSCSegments.isValid()) {
473  for (CSCSegmentCollection::const_iterator iSegment = TheCSCSegments->begin(); iSegment != TheCSCSegments->end();
474  iSegment++) {
475  const std::vector<CSCRecHit2D> vCSCRecHits = iSegment->specificRecHits();
476  CSCDetId iDetId = (CSCDetId)(*iSegment).cscDetId();
477 
478  if (iDetId.endcap() == 1)
479  vCSCSegments_Plus.push_back(*iSegment);
480  else
481  vCSCSegments_Minus.push_back(*iSegment);
482  }
483  }
484 
485  // Are there segments on the plus/minus side?
486  if (!vCSCSegments_Plus.empty())
487  CSCSegmentPlus = true;
488  if (!vCSCSegments_Minus.empty())
489  CSCSegmentMinus = true;
490 
491  //Get CSC RecHits
492  Handle<CSCRecHit2DCollection> TheCSCRecHits;
493  iEvent.getByToken(IT_CSCRecHit, TheCSCRecHits);
494  bool CSCRecHitPlus = false;
495  bool CSCRecHitMinus = false;
496  if (TheCSCRecHits.isValid()) {
497  for (CSCRecHit2DCollection::const_iterator iCSCRecHit = TheCSCRecHits->begin(); iCSCRecHit != TheCSCRecHits->end();
498  iCSCRecHit++) {
499  DetId TheDetUnitId(iCSCRecHit->geographicalId());
500  const GeomDetUnit* TheUnit = (*TheCSCGeometry).idToDetUnit(TheDetUnitId);
501  LocalPoint TheLocalPosition = iCSCRecHit->localPosition();
502  const BoundPlane& TheSurface = TheUnit->surface();
503  GlobalPoint TheGlobalPosition = TheSurface.toGlobal(TheLocalPosition);
504 
505  //Are there hits on the plus/minus side?
506  if (TheGlobalPosition.z() > 0)
507  CSCRecHitPlus = true;
508  else
509  CSCRecHitMinus = true;
510  }
511  }
512 
513  //Get EB RecHits
514  edm::Handle<EBRecHitCollection> TheEBRecHits;
515  iEvent.getByToken(IT_EBRecHit, TheEBRecHits);
516  int EBHits = 0;
517  if (TheEBRecHits.isValid()) {
518  for (EBRecHitCollection::const_iterator iEBRecHit = TheEBRecHits->begin(); iEBRecHit != TheEBRecHits->end();
519  iEBRecHit++) {
520  if (iEBRecHit->energy() < 0.5)
521  continue;
522  DetId id = DetId(iEBRecHit->id());
523  EBDetId EcalId(id.rawId());
524  int ieta = EcalId.ieta();
525  if (!StandardDQM)
526  hExtra_EcalToF->Fill(ieta, iEBRecHit->time());
527  EBHits++;
528  }
529  }
530 
531  //Get HB/HE RecHits
532  edm::Handle<HBHERecHitCollection> TheHBHERecHits;
533  iEvent.getByToken(IT_HBHERecHit, TheHBHERecHits);
534  if (TheHBHERecHits.isValid()) {
535  for (HBHERecHitCollection::const_iterator iHBHERecHit = TheHBHERecHits->begin();
536  iHBHERecHit != TheHBHERecHits->end();
537  iHBHERecHit++) {
538  if (iHBHERecHit->energy() < 1.)
539  continue;
540  HcalDetId id = HcalDetId(iHBHERecHit->id());
541  if (!StandardDQM)
542  hExtra_HcalToF->Fill(id.ieta(), iHBHERecHit->time());
543  }
544  }
545 
546  //Get MET
548  iEvent.getByToken(IT_met, TheCaloMET);
549 
550  //Get CSCHaloData
551  edm::Handle<reco::CSCHaloData> TheCSCDataHandle;
552  iEvent.getByToken(IT_CSCHaloData, TheCSCDataHandle);
553  int TheHaloOrigin = 0;
554  if (TheCSCDataHandle.isValid()) {
555  const CSCHaloData CSCData = (*TheCSCDataHandle.product());
556  if (CSCData.NumberOfOutOfTimeTriggers(HaloData::plus) && !CSCData.NumberOfOutOfTimeTriggers(HaloData::minus))
557  TheHaloOrigin = 1;
558  else if (CSCData.NumberOfOutOfTimeTriggers(HaloData::minus) && !CSCData.NumberOfOutOfTimeTriggers(HaloData::plus))
559  TheHaloOrigin = -1;
560 
561  for (std::vector<GlobalPoint>::const_iterator i = CSCData.GetCSCTrackImpactPositions().begin();
562  i != CSCData.GetCSCTrackImpactPositions().end();
563  i++) {
564  float r = TMath::Sqrt(i->x() * i->x() + i->y() * i->y());
565  if (!StandardDQM) {
566  hCSCHaloData_InnerMostTrackHitXY->Fill(i->x(), i->y());
567  hCSCHaloData_InnerMostTrackHitiPhi->Fill(Phi_To_iPhi(i->phi()));
568  if (i->z() > 0)
569  hCSCHaloData_InnerMostTrackHitRPlusZ->Fill(i->z(), r);
570  else
571  hCSCHaloData_InnerMostTrackHitRMinusZ->Fill(i->z(), r);
572  }
573  hCSCHaloData_InnerMostTrackHitR->Fill(r);
574  hCSCHaloData_InnerMostTrackHitPhi->Fill(i->phi());
575  }
576  hCSCHaloData_L1HaloTriggersMEPlus->Fill(CSCData.NumberOfHaloTriggers(HaloData::plus));
577  hCSCHaloData_L1HaloTriggersMEMinus->Fill(CSCData.NumberOfHaloTriggers(HaloData::minus));
578  hCSCHaloData_L1HaloTriggers->Fill(CSCData.NumberOfHaloTriggers(HaloData::both));
579  hCSCHaloData_HLHaloTriggers->Fill(CSCData.CSCHaloHLTAccept());
580  hCSCHaloData_TrackMultiplicityMEPlus->Fill(CSCData.NumberOfHaloTracks(HaloData::plus));
581  hCSCHaloData_TrackMultiplicityMEMinus->Fill(CSCData.NumberOfHaloTracks(HaloData::minus));
582  hCSCHaloData_TrackMultiplicity->Fill(CSCData.GetTracks().size());
583  hCSCHaloData_NOutOfTimeTriggersMEPlus->Fill(CSCData.NOutOfTimeTriggers(HaloData::plus));
584  hCSCHaloData_NOutOfTimeTriggersMEMinus->Fill(CSCData.NOutOfTimeTriggers(HaloData::minus));
585  hCSCHaloData_NOutOfTimeTriggers->Fill(CSCData.NOutOfTimeTriggers(HaloData::both));
586  hCSCHaloData_NOutOfTimeHits->Fill(CSCData.NOutOfTimeHits());
587  hCSCHaloData_NOutOfTimeTriggersvsL1HaloExists->Fill(CSCData.NOutOfTimeTriggers(HaloData::both),
588  CSCData.NumberOfHaloTriggers(HaloData::both) > 0);
589  hCSCHaloData_NTracksSmalldT->Fill(CSCData.NTracksSmalldT());
590  hCSCHaloData_NTracksSmallBeta->Fill(CSCData.NTracksSmallBeta());
591  hCSCHaloData_NTracksSmallBetaAndSmalldT->Fill(CSCData.NTracksSmallBetaAndSmalldT());
592  hCSCHaloData_NTracksSmalldTvsNHaloTracks->Fill(CSCData.GetTracks().size(), CSCData.NTracksSmalldT());
593  // MLR
594  hCSCHaloData_NFlatHaloSegments->Fill(CSCData.NFlatHaloSegments());
595  hCSCHaloData_SegmentsInBothEndcaps->Fill(CSCData.GetSegmentsInBothEndcaps());
596  if (CSCData.GetSegmentsInBothEndcaps())
597  hCSCHaloData_NFlatSegmentsInBothEndcaps->Fill(CSCData.NFlatHaloSegments());
598  // End MLR
599  }
600 
601  //Get EcalHaloData
602  edm::Handle<reco::EcalHaloData> TheEcalHaloData;
603  iEvent.getByToken(IT_EcalHaloData, TheEcalHaloData);
604  if (TheEcalHaloData.isValid()) {
605  const EcalHaloData EcalData = (*TheEcalHaloData.product());
606  std::vector<PhiWedge> EcalWedges = EcalData.GetPhiWedges();
607  for (std::vector<PhiWedge>::const_iterator iWedge = EcalWedges.begin(); iWedge != EcalWedges.end(); iWedge++) {
608  if (!StandardDQM) {
609  hEcalHaloData_PhiWedgeEnergy->Fill(iWedge->Energy());
610  hEcalHaloData_PhiWedgeMinTime->Fill(iWedge->MinTime());
611  hEcalHaloData_PhiWedgeMaxTime->Fill(iWedge->MaxTime());
612  hEcalHaloData_PhiWedgeMinVsMaxTime->Fill(iWedge->MinTime(), iWedge->MaxTime());
613  hEcalHaloData_PhiWedgePlusZDirectionConfidence->Fill(iWedge->PlusZDirectionConfidence());
614  hEcalHaloData_PhiWedgeiPhi->Fill(iWedge->iPhi());
615  }
616  hEcalHaloData_PhiWedgeZDirectionConfidence->Fill(iWedge->ZDirectionConfidence());
617  hEcalHaloData_PhiWedgeConstituents->Fill(iWedge->NumberOfConstituents());
618  }
619 
620  hEcalHaloData_PhiWedgeMultiplicity->Fill(EcalWedges.size());
621 
622  edm::ValueMap<float> vm_Angle = EcalData.GetShowerShapesAngle();
623  edm::ValueMap<float> vm_Roundness = EcalData.GetShowerShapesRoundness();
624  //Access selected SuperClusters
625  for (unsigned int n = 0; n < EcalData.GetSuperClusters().size(); n++) {
627  float angle = vm_Angle[cluster];
628  float roundness = vm_Roundness[cluster];
629  hEcalHaloData_SuperClusterShowerShapes->Fill(angle, roundness);
630  hEcalHaloData_SuperClusterNHits->Fill(cluster->size());
631  hEcalHaloData_SuperClusterEnergy->Fill(cluster->energy());
632 
633  if (!StandardDQM) {
634  hEcalHaloData_SuperClusterPhiVsEta->Fill(cluster->eta(), cluster->phi());
635  }
636  }
637  }
638 
639  //Get HcalHaloData
640  edm::Handle<reco::HcalHaloData> TheHcalHaloData;
641  iEvent.getByToken(IT_HcalHaloData, TheHcalHaloData);
642  if (TheHcalHaloData.isValid()) {
643  const HcalHaloData HcalData = (*TheHcalHaloData.product());
644  std::vector<PhiWedge> HcalWedges = HcalData.GetPhiWedges();
645  hHcalHaloData_PhiWedgeMultiplicity->Fill(HcalWedges.size());
646  for (std::vector<PhiWedge>::const_iterator iWedge = HcalWedges.begin(); iWedge != HcalWedges.end(); iWedge++) {
647  if (!StandardDQM) {
648  hHcalHaloData_PhiWedgeEnergy->Fill(iWedge->Energy());
649  hHcalHaloData_PhiWedgeMinTime->Fill(iWedge->MinTime());
650  hHcalHaloData_PhiWedgeMaxTime->Fill(iWedge->MaxTime());
651  hHcalHaloData_PhiWedgePlusZDirectionConfidence->Fill(iWedge->PlusZDirectionConfidence());
652  hHcalHaloData_PhiWedgeMinVsMaxTime->Fill(iWedge->MinTime(), iWedge->MaxTime());
653  hHcalHaloData_PhiWedgeiPhi->Fill(iWedge->iPhi());
654  }
655 
656  hHcalHaloData_PhiWedgeConstituents->Fill(iWedge->NumberOfConstituents());
657  hHcalHaloData_PhiWedgeZDirectionConfidence->Fill(iWedge->ZDirectionConfidence());
658  }
659  }
660 
661  if (!StandardDQM) {
662  //Get GlobalHaloData
663  edm::Handle<reco::GlobalHaloData> TheGlobalHaloData;
664  iEvent.getByToken(IT_GlobalHaloData, TheGlobalHaloData);
665  if (TheGlobalHaloData.isValid()) {
666  const GlobalHaloData GlobalData = (*TheGlobalHaloData.product());
667  if (TheCaloMET.isValid()) {
668  // Get Raw Uncorrected CaloMET
669  const CaloMETCollection* calometcol = TheCaloMET.product();
670  const CaloMET* RawMET = &(calometcol->front());
671 
672  // Get BeamHalo Corrected CaloMET
673  const CaloMET CorrectedMET = GlobalData.GetCorrectedCaloMET(*RawMET);
674  hGlobalHaloData_MExCorrection->Fill(GlobalData.DeltaMEx());
675  hGlobalHaloData_MEyCorrection->Fill(GlobalData.DeltaMEy());
676  hGlobalHaloData_HaloCorrectedMET->Fill(CorrectedMET.pt());
677  hGlobalHaloData_RawMETMinusHaloCorrectedMET->Fill(RawMET->pt() - CorrectedMET.pt());
678  if (RawMET->sumEt())
679  hGlobalHaloData_RawMETOverSumEt->Fill(RawMET->pt() / RawMET->sumEt());
680  }
681 
682  // Get Matched Hcal Phi Wedges
683  std::vector<PhiWedge> HcalWedges = GlobalData.GetMatchedHcalPhiWedges();
684  hGlobalHaloData_MatchedHcalPhiWedgeMultiplicity->Fill(HcalWedges.size());
685  // Loop over Matched Hcal Phi Wedges
686  for (std::vector<PhiWedge>::const_iterator iWedge = HcalWedges.begin(); iWedge != HcalWedges.end(); iWedge++) {
687  hGlobalHaloData_MatchedHcalPhiWedgeEnergy->Fill(iWedge->Energy());
688  hGlobalHaloData_MatchedHcalPhiWedgeConstituents->Fill(iWedge->NumberOfConstituents());
689  hGlobalHaloData_MatchedHcalPhiWedgeiPhi->Fill(iWedge->iPhi());
690  hGlobalHaloData_MatchedHcalPhiWedgeMinTime->Fill(iWedge->MinTime());
691  hGlobalHaloData_MatchedHcalPhiWedgeMaxTime->Fill(iWedge->MaxTime());
692  hGlobalHaloData_MatchedHcalPhiWedgeZDirectionConfidence->Fill(iWedge->ZDirectionConfidence());
693  if (TheHBHERecHits.isValid()) {
694  for (HBHERecHitCollection::const_iterator iHBHERecHit = TheHBHERecHits->begin();
695  iHBHERecHit != TheHBHERecHits->end();
696  iHBHERecHit++) {
697  HcalDetId id = HcalDetId(iHBHERecHit->id());
698  int iphi = id.iphi();
699  if (iphi != iWedge->iPhi())
700  continue;
701  if (iHBHERecHit->energy() < 1.0)
702  continue; // Otherwise there are thousands of hits per event (even with negative energies)
703 
704  float time = iHBHERecHit->time();
705  int ieta = id.ieta();
706  hExtra_HcalToF_HaloId->Fill(ieta, time);
707  }
708  }
709  }
710 
711  // Get Matched Hcal Phi Wedges
712  std::vector<PhiWedge> EcalWedges = GlobalData.GetMatchedEcalPhiWedges();
713  hGlobalHaloData_MatchedEcalPhiWedgeMultiplicity->Fill(EcalWedges.size());
714  for (std::vector<PhiWedge>::const_iterator iWedge = EcalWedges.begin(); iWedge != EcalWedges.end(); iWedge++) {
715  hGlobalHaloData_MatchedEcalPhiWedgeEnergy->Fill(iWedge->Energy());
716  hGlobalHaloData_MatchedEcalPhiWedgeConstituents->Fill(iWedge->NumberOfConstituents());
717  hGlobalHaloData_MatchedEcalPhiWedgeiPhi->Fill(iWedge->iPhi());
718  hGlobalHaloData_MatchedEcalPhiWedgeMinTime->Fill(iWedge->MinTime());
719  hGlobalHaloData_MatchedEcalPhiWedgeMaxTime->Fill(iWedge->MaxTime());
720  hGlobalHaloData_MatchedEcalPhiWedgeZDirectionConfidence->Fill(iWedge->ZDirectionConfidence());
721  if (TheEBRecHits.isValid()) {
722  for (EBRecHitCollection::const_iterator iEBRecHit = TheEBRecHits->begin(); iEBRecHit != TheEBRecHits->end();
723  iEBRecHit++) {
724  if (iEBRecHit->energy() < 0.5)
725  continue;
726  DetId id = DetId(iEBRecHit->id());
727  EBDetId EcalId(id.rawId());
728  int iPhi = EcalId.iphi();
729  iPhi = (iPhi - 1) / 5 + 1;
730  if (iPhi != iWedge->iPhi())
731  continue;
732  hExtra_EcalToF_HaloId->Fill(EcalId.ieta(), iEBRecHit->time());
733  }
734  }
735  }
736  }
737  }
738 
739  // Get BeamHaloSummary
740  edm::Handle<BeamHaloSummary> TheBeamHaloSummary;
741  iEvent.getByToken(IT_BeamHaloSummary, TheBeamHaloSummary);
742  if (TheBeamHaloSummary.isValid()) {
743  const BeamHaloSummary TheSummary = (*TheBeamHaloSummary.product());
744  if (TheSummary.CSCLooseHaloId()) {
745  hBeamHaloSummary_Id->Fill(1);
746  if (!StandardDQM)
747  hBeamHaloSummary_BXN->Fill(1, BXN);
748  if (Dump)
749  *out << std::setw(15) << "CSCLoose" << std::setw(15) << Run << std::setw(15) << Lumi << std::setw(15)
750  << TheEventNumber << std::endl;
751  }
752  if (TheSummary.CSCTightHaloId()) {
753  hBeamHaloSummary_Id->Fill(2);
754  if (!StandardDQM)
755  hBeamHaloSummary_BXN->Fill(2, BXN);
756  }
757  if (TheSummary.EcalLooseHaloId()) {
758  hBeamHaloSummary_Id->Fill(3);
759  if (!StandardDQM)
760  hBeamHaloSummary_BXN->Fill(3, BXN);
761  if (Dump)
762  *out << std::setw(15) << "EcalLoose" << std::setw(15) << Run << std::setw(15) << Lumi << std::setw(15)
763  << TheEventNumber << std::endl;
764  }
765  if (TheSummary.EcalTightHaloId()) {
766  hBeamHaloSummary_Id->Fill(4);
767  if (!StandardDQM)
768  hBeamHaloSummary_BXN->Fill(4, BXN);
769  }
770  if (TheSummary.HcalLooseHaloId()) {
771  hBeamHaloSummary_Id->Fill(5);
772  if (!StandardDQM)
773  hBeamHaloSummary_BXN->Fill(5, BXN);
774  if (Dump)
775  *out << std::setw(15) << "HcalLoose" << std::setw(15) << Run << std::setw(15) << Lumi << std::setw(15)
776  << TheEventNumber << std::endl;
777  }
778  if (TheSummary.HcalTightHaloId()) {
779  hBeamHaloSummary_Id->Fill(6);
780  if (!StandardDQM)
781  hBeamHaloSummary_BXN->Fill(6, BXN);
782  }
783  if (TheSummary.GlobalLooseHaloId()) {
784  hBeamHaloSummary_Id->Fill(7);
785  if (!StandardDQM)
786  hBeamHaloSummary_BXN->Fill(7, BXN);
787  if (Dump)
788  *out << std::setw(15) << "GlobalLoose" << std::setw(15) << Run << std::setw(15) << Lumi << std::setw(15)
789  << TheEventNumber << std::endl;
790  }
791  if (TheSummary.GlobalTightHaloId()) {
792  hBeamHaloSummary_Id->Fill(8);
793  if (!StandardDQM)
794  hBeamHaloSummary_BXN->Fill(8, BXN);
795  }
796  if (TheSummary.LooseId()) {
797  hBeamHaloSummary_Id->Fill(9);
798  if (!StandardDQM)
799  hBeamHaloSummary_BXN->Fill(9, BXN);
800  }
801  if (TheSummary.TightId()) {
802  hBeamHaloSummary_Id->Fill(10);
803  if (!StandardDQM)
804  hBeamHaloSummary_BXN->Fill(10, BXN);
805  }
806  if (!TheSummary.EcalLooseHaloId() && !TheSummary.HcalLooseHaloId() && !TheSummary.CSCLooseHaloId() &&
807  !TheSummary.GlobalLooseHaloId()) {
808  hBeamHaloSummary_Id->Fill(11);
809  if (!StandardDQM)
810  hBeamHaloSummary_BXN->Fill(11, BXN);
811  }
812  }
813 
814  if (TheCaloMET.isValid()) {
815  const CaloMETCollection* calometcol = TheCaloMET.product();
816  const CaloMET* calomet = &(calometcol->front());
817 
818  if (calomet->pt() > DumpMET)
819  if (Dump)
820  *out << std::setw(15) << "HighMET" << std::setw(15) << Run << std::setw(15) << Lumi << std::setw(15)
821  << TheEventNumber << std::endl;
822 
823  //Fill CSC Activity Plot
824  if (calomet->pt() > 15.0) {
825  if (TheHaloOrigin > 0) {
826  if (CSCTrackPlus && CSCTrackMinus)
827  hExtra_CSCActivityWithMET->Fill(1, 1);
828  else if (CSCTrackPlus && CSCSegmentMinus)
829  hExtra_CSCActivityWithMET->Fill(1, 2);
830  else if (CSCTrackPlus && CSCRecHitMinus)
831  hExtra_CSCActivityWithMET->Fill(1, 3);
832  else if (CSCTrackPlus)
833  hExtra_CSCActivityWithMET->Fill(1, 4);
834  else if (CSCSegmentPlus && CSCTrackMinus)
835  hExtra_CSCActivityWithMET->Fill(2, 1);
836  else if (CSCSegmentPlus && CSCSegmentMinus)
837  hExtra_CSCActivityWithMET->Fill(2, 2);
838  else if (CSCSegmentPlus && CSCRecHitMinus)
839  hExtra_CSCActivityWithMET->Fill(2, 3);
840  else if (CSCSegmentPlus)
841  hExtra_CSCActivityWithMET->Fill(2, 4);
842  else if (CSCRecHitPlus && CSCTrackMinus)
843  hExtra_CSCActivityWithMET->Fill(3, 1);
844  else if (CSCRecHitPlus && CSCSegmentMinus)
845  hExtra_CSCActivityWithMET->Fill(3, 2);
846  else if (CSCRecHitPlus && CSCRecHitMinus)
847  hExtra_CSCActivityWithMET->Fill(3, 3);
848  else if (CSCRecHitPlus)
849  hExtra_CSCActivityWithMET->Fill(3, 4);
850  else
851  hExtra_CSCActivityWithMET->Fill(4, 4);
852  } else if (TheHaloOrigin < 0) {
853  if (CSCTrackMinus && CSCTrackPlus)
854  hExtra_CSCActivityWithMET->Fill(1, 1);
855  else if (CSCTrackMinus && CSCSegmentPlus)
856  hExtra_CSCActivityWithMET->Fill(1, 2);
857  else if (CSCTrackMinus && CSCRecHitPlus)
858  hExtra_CSCActivityWithMET->Fill(1, 3);
859  else if (CSCTrackMinus)
860  hExtra_CSCActivityWithMET->Fill(1, 4);
861  else if (CSCSegmentMinus && CSCTrackPlus)
862  hExtra_CSCActivityWithMET->Fill(2, 1);
863  else if (CSCSegmentMinus && CSCSegmentPlus)
864  hExtra_CSCActivityWithMET->Fill(2, 2);
865  else if (CSCSegmentMinus && CSCRecHitPlus)
866  hExtra_CSCActivityWithMET->Fill(2, 3);
867  else if (CSCSegmentMinus)
868  hExtra_CSCActivityWithMET->Fill(2, 4);
869  else if (CSCRecHitMinus && CSCTrackPlus)
870  hExtra_CSCActivityWithMET->Fill(3, 1);
871  else if (CSCRecHitMinus && CSCSegmentPlus)
872  hExtra_CSCActivityWithMET->Fill(3, 2);
873  else if (CSCRecHitMinus && CSCRecHitPlus)
874  hExtra_CSCActivityWithMET->Fill(3, 3);
875  else if (CSCRecHitMinus)
876  hExtra_CSCActivityWithMET->Fill(3, 4);
877  else
878  hExtra_CSCActivityWithMET->Fill(4, 4);
879  }
880  }
881  }
882 }
883 
885 
886 //DEFINE_FWK_MODULE(CMSEventAnalyzer);
reco::Track::outerPosition
const math::XYZPoint & outerPosition() const
position of the outermost hit
Definition: Track.h:62
reco::BeamHaloSummary::CSCTightHaloId
const bool CSCTightHaloId() const
Definition: BeamHaloSummary.h:44
edm::RunNumber_t
unsigned int RunNumber_t
Definition: RunLumiEventNumber.h:14
MuonSubdetId::CSC
static constexpr int CSC
Definition: MuonSubdetId.h:12
mps_fire.i
i
Definition: mps_fire.py:428
edm::SortedCollection< EcalRecHit >::const_iterator
std::vector< EcalRecHit >::const_iterator const_iterator
Definition: SortedCollection.h:80
dqmiodumpmetadata.n
n
Definition: dqmiodumpmetadata.py:28
GeomDet
Definition: GeomDet.h:27
edm::Handle::product
T const * product() const
Definition: Handle.h:70
PV3DBase::x
T x() const
Definition: PV3DBase.h:59
edm::Run
Definition: Run.h:45
CaloGeometryRecord
Definition: CaloGeometryRecord.h:30
BeamHaloAnalyzer_cfi.StandardDQM
StandardDQM
Definition: BeamHaloAnalyzer_cfi.py:35
EBDetId
Definition: EBDetId.h:17
edm
HLT enums.
Definition: AlignableModifier.h:19
reco::BeamHaloSummary::HcalTightHaloId
const bool HcalTightHaloId() const
Definition: BeamHaloSummary.h:38
reco::EcalHaloData::GetShowerShapesAngle
edm::ValueMap< float > & GetShowerShapesAngle()
Definition: EcalHaloData.h:44
BeamHaloAnalyzer::analyze
void analyze(const edm::Event &, const edm::EventSetup &) override
Definition: BeamHaloAnalyzer.cc:320
dqm::implementation::NavigatorBase::setCurrentFolder
virtual void setCurrentFolder(std::string const &fullpath)
Definition: DQMStore.cc:32
reco::GlobalHaloData::GetCorrectedCaloMET
reco::CaloMET GetCorrectedCaloMET(const reco::CaloMET &RawMET) const
Definition: GlobalHaloData.cc:21
reco::HcalHaloData
Definition: HcalHaloData.h:37
reco::HaloData::both
Definition: HaloData.h:14
reco::GlobalHaloData::DeltaMEx
float DeltaMEx() const
Definition: GlobalHaloData.h:28
reco::HaloData::minus
Definition: HaloData.h:14
reco::LeafCandidate::pt
double pt() const final
transverse momentum
Definition: LeafCandidate.h:146
reco
fixed size matrix
Definition: AlignmentAlgorithmBase.h:45
edm::Handle< reco::MuonCollection >
reco::GlobalHaloData::GetMatchedHcalPhiWedges
std::vector< PhiWedge > & GetMatchedHcalPhiWedges()
Definition: GlobalHaloData.h:39
edm::LuminosityBlockNumber_t
unsigned int LuminosityBlockNumber_t
Definition: RunLumiEventNumber.h:13
reco::TrackBase::numberOfValidHits
unsigned short numberOfValidHits() const
number of valid hits found
Definition: TrackBase.h:798
OutputFileName
string OutputFileName
Definition: PFMETBenchmarkAnalyzer.cc:73
reco::Track::extra
const TrackExtraRef & extra() const
reference to "extra" object
Definition: Track.h:139
edm::Ref< TrackCollection >
PixelVTXMonitor_cfi.FolderName
FolderName
Definition: PixelVTXMonitor_cfi.py:5
reco::BeamHaloSummary::LooseId
const bool LooseId() const
Definition: BeamHaloSummary.h:56
reco::CaloMET
Definition: CaloMET.h:21
PV3DBase::z
T z() const
Definition: PV3DBase.h:61
LEDCalibrationChannels.iphi
iphi
Definition: LEDCalibrationChannels.py:64
edm::InputTag::label
std::string const & label() const
Definition: InputTag.h:36
DetId
Definition: DetId.h:17
GeomDet::surface
const Plane & surface() const
The nominal surface of the GeomDet.
Definition: GeomDet.h:37
reco::BeamHaloSummary
Definition: BeamHaloSummary.h:26
reco::MuonTimeExtra
Definition: MuonTimeExtra.h:15
edm::EventSetup::get
T get() const
Definition: EventSetup.h:80
Abs
T Abs(T a)
Definition: MathUtil.h:49
reco::HaloData::plus
Definition: HaloData.h:14
BeamHaloAnalyzer::BeamHaloAnalyzer
BeamHaloAnalyzer(const edm::ParameterSet &)
Definition: BeamHaloAnalyzer.cc:18
edm::SortedCollection::begin
const_iterator begin() const
Definition: SortedCollection.h:262
Service.h
reco::BeamHaloSummary::EcalTightHaloId
const bool EcalTightHaloId() const
Definition: BeamHaloSummary.h:41
reco::Track
Definition: Track.h:27
reco::GlobalHaloData::DeltaMEy
float DeltaMEy() const
Definition: GlobalHaloData.h:31
edm::ESHandle< CSCGeometry >
mix_E10TeV_L13E31_BX432_cfi.Lumi
Lumi
Definition: mix_E10TeV_L13E31_BX432_cfi.py:24
CSCChamber
Definition: CSCChamber.h:22
edm::EventNumber_t
unsigned long long EventNumber_t
Definition: RunLumiEventNumber.h:12
Point3DBase< float, LocalTag >
BeamHaloAnalyzer_cfi.DumpMET
DumpMET
Definition: BeamHaloAnalyzer_cfi.py:33
BeamHaloAnalyzer::~BeamHaloAnalyzer
~BeamHaloAnalyzer() override
Definition: BeamHaloAnalyzer.cc:884
AlCaHLTBitMon_QueryRunRegistry.string
string
Definition: AlCaHLTBitMon_QueryRunRegistry.py:256
edm::ParameterSet::exists
bool exists(std::string const &parameterName) const
checks if a parameter exists
Definition: ParameterSet.cc:681
LEDCalibrationChannels.ieta
ieta
Definition: LEDCalibrationChannels.py:63
edm::ParameterSet
Definition: ParameterSet.h:47
edm::SortedCollection::end
const_iterator end() const
Definition: SortedCollection.h:267
Phi_To_iPhi
int Phi_To_iPhi(float phi)
Definition: BeamHaloAnalyzer.cc:10
edm::RangeMap::const_iterator
C::const_iterator const_iterator
constant access iterator type
Definition: RangeMap.h:43
edm::get
T const & get(Event const &event, InputTag const &tag) noexcept(false)
Definition: Event.h:671
CSCDetId
Definition: CSCDetId.h:26
reco::TrackBase::eta
double eta() const
pseudorapidity of momentum vector
Definition: TrackBase.h:652
PV3DBase::eta
T eta() const
Definition: PV3DBase.h:73
reco::GlobalHaloData
Definition: GlobalHaloData.h:17
PV3DBase::y
T y() const
Definition: PV3DBase.h:60
reco::Track::innerPosition
const math::XYZPoint & innerPosition() const
position of the innermost hit
Definition: Track.h:56
edm::EventID::event
EventNumber_t event() const
Definition: EventID.h:40
HcalDetId
Definition: HcalDetId.h:12
createfilelist.int
int
Definition: createfilelist.py:10
iEvent
int iEvent
Definition: GenABIO.cc:224
dqm::impl::MonitorElement::setBinLabel
virtual void setBinLabel(int bin, const std::string &label, int axis=1)
set bin label for x, y or z axis (axis=1, 2, 3 respectively)
Definition: MonitorElement.cc:771
reco::EcalHaloData
Definition: EcalHaloData.h:21
l1GtTextToRaw_cfi.TextFileName
TextFileName
Definition: l1GtTextToRaw_cfi.py:14
reco::BeamHaloSummary::TightId
const bool TightId() const
Definition: BeamHaloSummary.h:57
edm::EventSetup
Definition: EventSetup.h:57
reco::TrackBase::normalizedChi2
double normalizedChi2() const
chi-squared divided by n.d.o.f. (or chi-squared * 1e6 if n.d.o.f. is zero)
Definition: TrackBase.h:593
reco::HcalHaloData::GetPhiWedges
const std::vector< PhiWedge > & GetPhiWedges() const
Definition: HcalHaloData.h:45
MuonSegmentMatcher_cff.MuonSegmentMatcher
MuonSegmentMatcher
Definition: MuonSegmentMatcher_cff.py:3
alignCSCRings.r
r
Definition: alignCSCRings.py:93
reco::BeamHaloSummary::HcalLooseHaloId
const bool HcalLooseHaloId() const
Definition: BeamHaloSummary.h:37
CSCDetId::endcap
int endcap() const
Definition: CSCDetId.h:85
edm::ValueMap
Definition: ValueMap.h:107
dqm::implementation::IBooker::book2D
MonitorElement * book2D(TString const &name, TString const &title, int nchX, double lowX, double highX, int nchY, double lowY, double highY, FUNC onbooking=NOOP())
Definition: DQMStore.h:177
BoundPlane
reco::EcalHaloData::GetSuperClusters
edm::RefVector< reco::SuperClusterCollection > & GetSuperClusters()
Definition: EcalHaloData.h:37
angle
T angle(T x1, T y1, T z1, T x2, T y2, T z2)
Definition: angle.h:11
edm::ParameterSet::getParameter
T getParameter(std::string const &) const
Definition: ParameterSet.h:303
BeamHaloAnalyzer.h
reco::MuonTimeExtra::freeInverseBeta
float freeInverseBeta() const
Definition: MuonTimeExtra.h:36
BeamHaloAnalyzer::bookHistograms
void bookHistograms(DQMStore::IBooker &, edm::Run const &, edm::EventSetup const &) override
Definition: BeamHaloAnalyzer.cc:75
reco::BeamHaloSummary::GlobalLooseHaloId
const bool GlobalLooseHaloId() const
Definition: BeamHaloSummary.h:48
dqm::implementation::IBooker
Definition: DQMStore.h:43
Pi
const double Pi
Definition: CosmicMuonParameters.h:18
reco::CSCHaloData
Definition: CSCHaloData.h:24
MillePedeFileConverter_cfg.out
out
Definition: MillePedeFileConverter_cfg.py:31
CaloMETCollection
Collection of Calo MET.
DetId::Muon
Definition: DetId.h:26
reco::BeamHaloSummary::CSCLooseHaloId
const bool CSCLooseHaloId() const
Definition: BeamHaloSummary.h:43
reco::EcalHaloData::GetShowerShapesRoundness
edm::ValueMap< float > & GetShowerShapesRoundness()
Definition: EcalHaloData.h:41
nanoDQM_cfi.RawMET
RawMET
Definition: nanoDQM_cfi.py:602
dqmiolumiharvest.j
j
Definition: dqmiolumiharvest.py:66
L1TMuon::TriggerPrimitive::CSCData
Definition: MuonTriggerPrimitive.h:93
edm::HandleBase::isValid
bool isValid() const
Definition: HandleBase.h:70
ntuplemaker.time
time
Definition: ntuplemaker.py:310
edm::EventID
Definition: EventID.h:31
reco::GlobalHaloData::GetMatchedEcalPhiWedges
std::vector< PhiWedge > & GetMatchedEcalPhiWedges()
Definition: GlobalHaloData.h:42
edm::Event
Definition: Event.h:73
edm::RefVector::size
size_type size() const
Size of the RefVector.
Definition: RefVector.h:102
CSCGeometry::idToDetUnit
const GeomDet * idToDetUnit(DetId) const override
Return the pointer to the GeomDetUnit corresponding to a given DetId.
Definition: CSCGeometry.cc:89
MuonGeometryRecord
Definition: MuonGeometryRecord.h:34
reco::BeamHaloSummary::GlobalTightHaloId
const bool GlobalTightHaloId() const
Definition: BeamHaloSummary.h:49
edm::InputTag
Definition: InputTag.h:15
edm::ConsumesCollector
Definition: ConsumesCollector.h:45
PV3DBase::phi
Geom::Phi< T > phi() const
Definition: PV3DBase.h:66
CSCGeometry::chamber
const CSCChamber * chamber(CSCDetId id) const
Return the chamber corresponding to given DetId.
Definition: CSCGeometry.cc:100
hit
Definition: SiStripHitEffFromCalibTree.cc:88
dqm::implementation::IBooker::book1D
MonitorElement * book1D(TString const &name, TString const &title, int const nchX, double const lowX, double const highX, FUNC onbooking=NOOP())
Definition: DQMStore.h:98
reco::EcalHaloData::GetPhiWedges
const std::vector< PhiWedge > & GetPhiWedges() const
Definition: EcalHaloData.h:33
reco::BeamHaloSummary::EcalLooseHaloId
const bool EcalLooseHaloId() const
Definition: BeamHaloSummary.h:40