CMS 3D CMS Logo

CaloParticleDebugger.cc
Go to the documentation of this file.
1 //
2 // Original Author: Marco Rovere
3 // Created: Fri, 10 Nov 2017 14:39:18 GMT
4 //
5 //
6 //
7 // system include files
8 #include <memory>
9 #include <iostream>
10 #include <numeric>
11 #include <algorithm>
12 
13 // user include files
17 
22 
24 
33 
42 
43 //
44 // class declaration
45 //
46 
48 public:
49  explicit CaloParticleDebugger(const edm::ParameterSet&);
50  ~CaloParticleDebugger() override;
51 
52  static void fillDescriptions(edm::ConfigurationDescriptions& descriptions);
53 
54 private:
55  void beginJob() override;
56  void analyze(const edm::Event&, const edm::EventSetup&) override;
57  void endJob() override;
58  void fillSimHits(std::map<int, float>&, const edm::Event&, const edm::EventSetup&);
65  std::vector<edm::InputTag> collectionTags_;
72  std::vector<edm::EDGetTokenT<std::vector<PCaloHit>>> collectionTagsToken_;
73  int geometryType_ = 0;
74  // ----------member data ---------------------------
75 };
76 
77 //
78 // constants, enums and typedefs
79 //
80 
81 //
82 // static data member definitions
83 //
84 
85 //
86 // constructors and destructor
87 //
89  : simTracks_(iConfig.getParameter<edm::InputTag>("simTracks")),
90  genParticles_(iConfig.getParameter<edm::InputTag>("genParticles")),
91  simVertices_(iConfig.getParameter<edm::InputTag>("simVertices")),
92  trackingParticles_(iConfig.getParameter<edm::InputTag>("trackingParticles")),
93  caloParticles_(iConfig.getParameter<edm::InputTag>("caloParticles")),
94  simClusters_(iConfig.getParameter<edm::InputTag>("simClusters")),
95  collectionTags_(iConfig.getParameter<std::vector<edm::InputTag>>("collectionTags")) {
97  simTracksToken_ = iC.consumes<std::vector<SimTrack>>(simTracks_);
98  genParticlesToken_ = iC.consumes<std::vector<reco::GenParticle>>(genParticles_);
99  simVerticesToken_ = iC.consumes<std::vector<SimVertex>>(simVertices_);
100  trackingParticlesToken_ = iC.consumes<std::vector<TrackingParticle>>(trackingParticles_);
101  caloParticlesToken_ = iC.consumes<std::vector<CaloParticle>>(caloParticles_);
102  simClustersToken_ = iC.consumes<std::vector<SimCluster>>(simClusters_);
103  for (auto const& collectionTag : collectionTags_) {
104  collectionTagsToken_.push_back(iC.consumes<std::vector<PCaloHit>>(collectionTag));
105  }
106 }
107 
109 
110 //
111 // member functions
112 //
113 
114 // ------------ method called for each event ------------
116  using namespace edm;
117  using std::begin;
118  using std::end;
119  using std::iota;
120  using std::sort;
121 
125  edm::Handle<std::vector<TrackingParticle>> trackingParticlesH;
128 
129  iEvent.getByToken(simTracksToken_, simTracksH);
130  auto const& tracks = *simTracksH.product();
131  std::vector<int> sorted_tracks_idx(tracks.size());
132  iota(begin(sorted_tracks_idx), end(sorted_tracks_idx), 0);
133  sort(begin(sorted_tracks_idx), end(sorted_tracks_idx), [&tracks](int i, int j) {
134  return tracks[i].momentum().eta() < tracks[j].momentum().eta();
135  });
136 
138  auto const& genParticles = *genParticlesH.product();
139  std::vector<int> sorted_genParticles_idx(genParticles.size());
140  iota(begin(sorted_genParticles_idx), end(sorted_genParticles_idx), 0);
141  sort(begin(sorted_genParticles_idx), end(sorted_genParticles_idx), [&genParticles](int i, int j) {
142  return genParticles[i].momentum().eta() < genParticles[j].momentum().eta();
143  });
144 
145  iEvent.getByToken(simVerticesToken_, simVerticesH);
146  auto const& vertices = *simVerticesH.product();
147  std::vector<int> sorted_vertices_idx(vertices.size());
148  iota(begin(sorted_vertices_idx), end(sorted_vertices_idx), 0);
149  sort(begin(sorted_vertices_idx), end(sorted_vertices_idx), [&vertices](int i, int j) {
150  return vertices[i].vertexId() < vertices[j].vertexId();
151  });
152 
153  iEvent.getByToken(trackingParticlesToken_, trackingParticlesH);
154  auto const& trackingpart = *trackingParticlesH.product();
155  std::vector<int> sorted_tp_idx(trackingpart.size());
156  iota(begin(sorted_tp_idx), end(sorted_tp_idx), 0);
157  sort(begin(sorted_tp_idx), end(sorted_tp_idx), [&trackingpart](int i, int j) {
158  return trackingpart[i].eta() < trackingpart[j].eta();
159  });
160 
161  iEvent.getByToken(caloParticlesToken_, caloParticlesH);
162  auto const& calopart = *caloParticlesH.product();
163  std::vector<int> sorted_cp_idx(calopart.size());
164  iota(begin(sorted_cp_idx), end(sorted_cp_idx), 0);
165  sort(begin(sorted_cp_idx), end(sorted_cp_idx), [&calopart](int i, int j) {
166  return calopart[i].eta() < calopart[j].eta();
167  });
168 
169  iEvent.getByToken(simClustersToken_, simClustersH);
170  auto const& simclusters = *simClustersH.product();
171  std::vector<int> sorted_simcl_idx(simclusters.size());
172  iota(begin(sorted_simcl_idx), end(sorted_simcl_idx), 0);
173  sort(begin(sorted_simcl_idx), end(sorted_simcl_idx), [&simclusters](int i, int j) {
174  return simclusters[i].eta() < simclusters[j].eta();
175  });
176 
177  // Let's first fill in hits information
178  std::map<int, float> detIdToTotalSimEnergy;
179  fillSimHits(detIdToTotalSimEnergy, iEvent, iSetup);
180 
181  int idx = 0;
182 
183  std::map<int, int> trackid_to_track_index;
184  LogVerbatim("CaloParticleDebuggerSimTracks") << "\n\n**Printing SimTracks information **";
185  LogVerbatim("CaloParticleDebuggerSimTracks") << "IDX\tTrackId\tPDGID\tMOMENTUM(x,y,z,E)\tVertexIdx\tGenPartIdx";
186  for (auto i : sorted_tracks_idx) {
187  auto const& t = tracks[i];
188  LogVerbatim("CaloParticleDebuggerSimTracks") << idx << "\t" << t.trackId() << "\t" << t;
189  LogVerbatim("CaloParticleDebuggerSimTracks")
190  << "Crossed Boundary: " << t.crossedBoundary() << " Position Boundary: " << t.getPositionAtBoundary()
191  << " Momentum Boundary: " << t.getMomentumAtBoundary() << " Vtx: " << t.vertIndex()
192  << " Momemtum Origin: " << t.momentum();
193  trackid_to_track_index[t.trackId()] = idx;
194  idx++;
195  }
196 
197  LogVerbatim("CaloParticleDebuggerGenParticles") << "\n\n**Printing GenParticles information **";
198  LogVerbatim("CaloParticleDebuggerGenParticles") << "IDX\tPDGID\tMOMENTUM(x,y,z)\tVertex(x,y,z)";
199  for (auto i : sorted_genParticles_idx) {
200  auto const& gp = genParticles[i];
201  LogVerbatim("CaloParticleDebuggerGenParticles")
202  << i << "\t" << gp.pdgId() << "\t" << gp.momentum() << "\t" << gp.vertex();
203  }
204 
205  LogVerbatim("CaloParticleDebuggerSimVertices") << "\n\n**Printing SimVertex information **";
206  LogVerbatim("CaloParticleDebuggerSimVertices") << "IDX\tPOSITION(x,y,z)\tPARENT_INDEX\tVERTEX_ID";
207  for (auto i : sorted_vertices_idx) {
208  auto const& v = vertices[i];
209  LogVerbatim("CaloParticleDebuggerSimVertices") << i << "\t" << v;
210  }
211 
212  LogVerbatim("CaloParticleDebuggerTrackingParticles") << "\n\n**Printing TrackingParticles information **";
213  for (auto i : sorted_tp_idx) {
214  auto const& tp = trackingpart[i];
215  LogVerbatim("CaloParticleDebuggerTrackingParticles") << i << "\t" << tp;
216  }
217 
218  LogVerbatim("CaloParticleDebuggerCaloParticles") << "\n\n**Printing CaloParticles information **";
219  idx = 0;
220  for (auto i : sorted_cp_idx) {
221  auto const& cp = calopart[i];
222  LogVerbatim("CaloParticleDebuggerCaloParticles")
223  << "\n\n"
224  << idx++ << " |Eta|: " << std::abs(cp.momentum().eta()) << "\tType: " << cp.pdgId()
225  << "\tEnergy: " << cp.energy() << "\tIdx: " << cp.g4Tracks()[0].trackId(); // << cp ;
226  double total_sim_energy = 0.;
227  double total_cp_energy = 0.;
228  LogVerbatim("CaloParticleDebuggerCaloParticles") << "--> Overall simclusters in CP: " << cp.simClusters().size();
229  // All the next mess just to print the simClusters ordered
230  auto const& simcs = cp.simClusters();
231  std::vector<int> sorted_sc_idx(simcs.size());
232  iota(begin(sorted_sc_idx), end(sorted_sc_idx), 0);
233  sort(begin(sorted_sc_idx), end(sorted_sc_idx), [&simcs](int i, int j) {
234  return simcs[i]->momentum().eta() < simcs[j]->momentum().eta();
235  });
236  for (auto i : sorted_sc_idx) {
237  LogVerbatim("CaloParticleDebuggerCaloParticles") << *(simcs[i]);
238  }
239 
240  for (auto const& sc : cp.simClusters()) {
241  for (auto const& cl : sc->hits_and_fractions()) {
242  total_sim_energy += detIdToTotalSimEnergy[cl.first] * cl.second;
243  total_cp_energy += cp.energy() * cl.second;
244  }
245  }
246  LogVerbatim("CaloParticleDebuggerCaloParticles")
247  << "--> Overall SC energy (sum using sim energies): " << total_sim_energy;
248  LogVerbatim("CaloParticleDebuggerCaloParticles")
249  << "--> Overall SC energy (sum using CaloP energies): " << total_cp_energy;
250  }
251 
252  idx = 0;
253  LogVerbatim("CaloParticleDebuggerSimClusters") << "\n\n**Printing SimClusters information **";
254  for (auto i : sorted_simcl_idx) {
255  auto const& simcl = simclusters[i];
256  LogVerbatim("CaloParticleDebuggerSimClusters")
257  << "\n\n"
258  << idx++ << " |Eta|: " << std::abs(simcl.momentum().eta()) << "\tType: " << simcl.pdgId()
259  << "\tEnergy: " << simcl.energy() << "\tKey: " << i; // << simcl ;
260  auto const& simtrack = simcl.g4Tracks()[0];
261  LogVerbatim("CaloParticleDebuggerSimClusters") << " Crossed Boundary: " << simtrack.crossedBoundary()
262  << " Position Boundary: " << simtrack.getPositionAtBoundary()
263  << " Momentum Boundary: " << simtrack.getMomentumAtBoundary();
264  double total_sim_energy = 0.;
265  LogVerbatim("CaloParticleDebuggerSimClusters") << "--> Overall simclusters's size: " << simcl.numberOfRecHits();
266  for (auto const& cl : simcl.hits_and_fractions()) {
267  total_sim_energy += detIdToTotalSimEnergy[cl.first] * cl.second;
268  }
269  LogVerbatim("CaloParticleDebuggerSimClusters") << simcl;
270  LogVerbatim("CaloParticleDebuggerSimClusters")
271  << "--> Overall SimCluster energy (sum using sim energies): " << total_sim_energy;
272  }
273 }
274 
275 // ------------ method called once each job just before starting event loop ------------
277 
278 // ------------ method called once each job just after ending the event loop ------------
280 
281 void CaloParticleDebugger::fillSimHits(std::map<int, float>& detIdToTotalSimEnergy,
282  const edm::Event& iEvent,
283  const edm::EventSetup& iSetup) {
284  // Taken needed quantities from the EventSetup
286  iSetup.get<CaloGeometryRecord>().get(geom);
287  const HGCalGeometry *eegeom = nullptr, *fhgeom = nullptr, *bhgeomnew = nullptr;
288  const HcalGeometry* bhgeom = nullptr;
289  const HGCalDDDConstants* hgddd[3];
290  const HGCalTopology* hgtopo[3];
291  const HcalDDDRecConstants* hcddd = nullptr;
292  eegeom =
293  static_cast<const HGCalGeometry*>(geom->getSubdetectorGeometry(DetId::HGCalEE, ForwardSubdetector::ForwardEmpty));
294  //check if it's the new geometry
295  if (eegeom) {
296  geometryType_ = 1;
297  fhgeom = static_cast<const HGCalGeometry*>(
298  geom->getSubdetectorGeometry(DetId::HGCalHSi, ForwardSubdetector::ForwardEmpty));
299  bhgeomnew = static_cast<const HGCalGeometry*>(
300  geom->getSubdetectorGeometry(DetId::HGCalHSc, ForwardSubdetector::ForwardEmpty));
301  } else {
302  geometryType_ = 0;
303  eegeom = static_cast<const HGCalGeometry*>(geom->getSubdetectorGeometry(DetId::Forward, HGCEE));
304  fhgeom = static_cast<const HGCalGeometry*>(geom->getSubdetectorGeometry(DetId::Forward, HGCHEF));
305  bhgeom = static_cast<const HcalGeometry*>(geom->getSubdetectorGeometry(DetId::Hcal, HcalEndcap));
306  }
307  hgtopo[0] = &(eegeom->topology());
308  hgtopo[1] = &(fhgeom->topology());
309  if (bhgeomnew)
310  hgtopo[2] = &(bhgeomnew->topology());
311 
312  for (unsigned i = 0; i < 3; ++i) {
313  if (hgtopo[i])
314  hgddd[i] = &(hgtopo[i]->dddConstants());
315  }
316 
317  if (bhgeom)
318  hcddd = bhgeom->topology().dddConstants();
319 
320  // loop over the collections
321  int token = 0;
322  for (auto const& collectionTag : collectionTags_) {
324  const bool isHcal = (collectionTag.instance().find("HcalHits") != std::string::npos);
325  iEvent.getByToken(collectionTagsToken_[token++], hSimHits);
326  for (auto const& simHit : *hSimHits) {
327  DetId id(0);
328  const uint32_t simId = simHit.id();
329  if (geometryType_ == 1) {
330  //no test numbering in new geometry
331  id = simId;
332  } else if (isHcal) {
333  assert(hcddd);
334  HcalDetId hid = HcalHitRelabeller::relabel(simId, hcddd);
335  if (hid.subdet() == HcalEndcap)
336  id = hid;
337  } else {
338  int subdet, layer, cell, sec, subsec, zp;
339  HGCalTestNumbering::unpackHexagonIndex(simId, subdet, zp, layer, sec, subsec, cell);
340  const HGCalDDDConstants* ddd = hgddd[subdet - 3];
341  std::pair<int, int> recoLayerCell = ddd->simToReco(cell, layer, sec, hgtopo[subdet - 3]->detectorType());
342  cell = recoLayerCell.first;
343  layer = recoLayerCell.second;
344  // skip simhits with bad barcodes or non-existant layers
345  if (layer == -1 || simHit.geantTrackId() == 0)
346  continue;
347  id = HGCalDetId((ForwardSubdetector)subdet, zp, layer, subsec, sec, cell);
348  }
349 
350  if (DetId(0) == id)
351  continue;
352 
353  detIdToTotalSimEnergy[id.rawId()] += simHit.energy();
354  }
355  } // end of loop over InputTags
356 }
357 
358 // ------------ method fills 'descriptions' with the allowed parameters for the module ------------
361  desc.add<edm::InputTag>("simTracks", edm::InputTag("g4SimHits"));
362  desc.add<edm::InputTag>("genParticles", edm::InputTag("genParticles"));
363  desc.add<edm::InputTag>("simVertices", edm::InputTag("g4SimHits"));
364  desc.add<edm::InputTag>("trackingParticles", edm::InputTag("mix", "MergedTrackTruth"));
365  desc.add<edm::InputTag>("caloParticles", edm::InputTag("mix", "MergedCaloTruth"));
366  desc.add<edm::InputTag>("simClusters", edm::InputTag("mix", "MergedCaloTruth"));
367  desc.add<std::vector<edm::InputTag>>("collectionTags",
368  {edm::InputTag("g4SimHits", "HGCHitsEE"),
369  edm::InputTag("g4SimHits", "HGCHitsHEfront"),
370  edm::InputTag("g4SimHits", "HcalHits")});
371  descriptions.add("caloParticleDebugger", desc);
372 }
373 
374 // define this as a plug-in
CaloParticleDebugger::simVertices_
edm::InputTag simVertices_
Definition: CaloParticleDebugger.cc:61
EDAnalyzer.h
mps_fire.i
i
Definition: mps_fire.py:428
HGCalTopology::dddConstants
const HGCalDDDConstants & dddConstants() const
Definition: HGCalTopology.h:98
genParticles2HepMC_cfi.genParticles
genParticles
Definition: genParticles2HepMC_cfi.py:4
edm::Handle::product
T const * product() const
Definition: Handle.h:70
ForwardEmpty
Definition: ForwardSubdetector.h:5
ESHandle.h
ForwardSubdetector
ForwardSubdetector
Definition: ForwardSubdetector.h:4
edm::EDGetTokenT
Definition: EDGetToken.h:33
CaloGeometryRecord
Definition: CaloGeometryRecord.h:30
edm
HLT enums.
Definition: AlignableModifier.h:19
HGCalTestNumbering::unpackHexagonIndex
static void unpackHexagonIndex(const uint32_t &idx, int &subdet, int &z, int &lay, int &wafer, int &celltyp, int &cell)
Definition: HGCalTestNumbering.cc:46
runTauDisplay.genParticlesH
genParticlesH
Definition: runTauDisplay.py:30
DetId::Hcal
Definition: DetId.h:28
HLT_FULL_cff.InputTag
InputTag
Definition: HLT_FULL_cff.py:89285
edm::ParameterSetDescription
Definition: ParameterSetDescription.h:52
cms::cuda::assert
assert(be >=bs)
edm::EDConsumerBase::consumesCollector
ConsumesCollector consumesCollector()
Use a ConsumesCollector to gather consumes information from helper functions.
Definition: EDConsumerBase.cc:47
CaloParticleDebugger::trackingParticlesToken_
edm::EDGetTokenT< std::vector< TrackingParticle > > trackingParticlesToken_
Definition: CaloParticleDebugger.cc:69
hgcal_conditions::parameters
Definition: HGCConditions.h:86
CaloParticleDebugger::simClusters_
edm::InputTag simClusters_
Definition: CaloParticleDebugger.cc:64
edm::one::EDAnalyzer
Definition: EDAnalyzer.h:30
findQualityFiles.v
v
Definition: findQualityFiles.py:179
EcalMappingRecord_cfi.eegeom
eegeom
Definition: EcalMappingRecord_cfi.py:3
edm::Handle
Definition: AssociativeIterator.h:50
CaloParticleDebugger::caloParticlesToken_
edm::EDGetTokenT< std::vector< CaloParticle > > caloParticlesToken_
Definition: CaloParticleDebugger.cc:70
CaloParticleDebugger::collectionTagsToken_
std::vector< edm::EDGetTokenT< std::vector< PCaloHit > > > collectionTagsToken_
Definition: CaloParticleDebugger.cc:72
HcalGeometry.h
HGCalDDDConstants
Definition: HGCalDDDConstants.h:27
CaloParticleDebugger::CaloParticleDebugger
CaloParticleDebugger(const edm::ParameterSet &)
Definition: CaloParticleDebugger.cc:88
heavyIonCSV_trainingSettings.idx
idx
Definition: heavyIonCSV_trainingSettings.py:5
GenParticle.h
GetRecoTauVFromDQM_MC_cff.cl
cl
Definition: GetRecoTauVFromDQM_MC_cff.py:38
DetId
Definition: DetId.h:17
DetId::HGCalHSi
Definition: DetId.h:33
DetId::HGCalEE
Definition: DetId.h:32
CaloParticleDebugger::geometryType_
int geometryType_
Definition: CaloParticleDebugger.cc:73
MakerMacros.h
CaloParticleDebugger::simClustersToken_
edm::EDGetTokenT< std::vector< SimCluster > > simClustersToken_
Definition: CaloParticleDebugger.cc:71
SimCluster.h
HGCalDDDConstants::simToReco
std::pair< int, int > simToReco(int cell, int layer, int mod, bool half) const
Definition: HGCalDDDConstants.cc:1018
CaloParticleDebugger::genParticles_
edm::InputTag genParticles_
Definition: CaloParticleDebugger.cc:60
edm::EventSetup::get
T get() const
Definition: EventSetup.h:87
HGCalTopology.h
DEFINE_FWK_MODULE
#define DEFINE_FWK_MODULE(type)
Definition: MakerMacros.h:16
edm::ConfigurationDescriptions::add
void add(std::string const &label, ParameterSetDescription const &psetDescription)
Definition: ConfigurationDescriptions.cc:57
CaloParticleDebugger::fillDescriptions
static void fillDescriptions(edm::ConfigurationDescriptions &descriptions)
Definition: CaloParticleDebugger.cc:359
rpcPointValidation_cfi.simHit
simHit
Definition: rpcPointValidation_cfi.py:24
SimVertex.h
mps_fire.end
end
Definition: mps_fire.py:242
edm::ESHandle< CaloGeometry >
CaloParticleDebugger::beginJob
void beginJob() override
Definition: CaloParticleDebugger.cc:276
relativeConstraints.geom
geom
Definition: relativeConstraints.py:72
edm::ConsumesCollector::consumes
EDGetTokenT< ProductType > consumes(edm::InputTag const &tag)
Definition: ConsumesCollector.h:55
SimTracksters_cff.simclusters
simclusters
Definition: SimTracksters_cff.py:23
HGCalGeometry
Definition: HGCalGeometry.h:29
cmsswSequenceInfo.tp
tp
Definition: cmsswSequenceInfo.py:17
CaloGeometryRecord.h
edm::ConfigurationDescriptions
Definition: ConfigurationDescriptions.h:28
phase1PixelTopology::layer
constexpr std::array< uint8_t, layerIndexSize > layer
Definition: phase1PixelTopology.h:99
HGCEE
Definition: ForwardSubdetector.h:8
CaloParticleDebugger::genParticlesToken_
edm::EDGetTokenT< std::vector< reco::GenParticle > > genParticlesToken_
Definition: CaloParticleDebugger.cc:67
runTauDisplay.gp
gp
Definition: runTauDisplay.py:431
HGCalGeometry.h
edm::ParameterSet
Definition: ParameterSet.h:47
Event.h
tracks
const uint32_t *__restrict__ const HitContainer *__restrict__ TkSoA *__restrict__ tracks
Definition: CAHitNtupletGeneratorKernelsImpl.h:159
jetUpdater_cfi.sort
sort
Definition: jetUpdater_cfi.py:29
CaloParticleDebugger::analyze
void analyze(const edm::Event &, const edm::EventSetup &) override
Definition: CaloParticleDebugger.cc:115
CaloParticle.h
HcalTopology::dddConstants
const HcalDDDRecConstants * dddConstants() const
Definition: HcalTopology.h:164
HcalHitRelabeller.h
PCaloHit.h
HcalDetId::subdet
constexpr HcalSubdetector subdet() const
get the subdetector
Definition: HcalDetId.h:138
HcalDetId
Definition: HcalDetId.h:12
iEvent
int iEvent
Definition: GenABIO.cc:224
trackerHitRTTI::vector
Definition: trackerHitRTTI.h:21
CaloParticleDebugger::endJob
void endJob() override
Definition: CaloParticleDebugger.cc:279
edm::EventSetup
Definition: EventSetup.h:58
get
#define get
CaloParticleDebugger::simTracks_
edm::InputTag simTracks_
Definition: CaloParticleDebugger.cc:59
fileinputsource_cfi.sec
sec
Definition: fileinputsource_cfi.py:94
HGCalTopology
Definition: HGCalTopology.h:12
CaloParticleDebugger::fillSimHits
void fillSimHits(std::map< int, float > &, const edm::Event &, const edm::EventSetup &)
Definition: CaloParticleDebugger.cc:281
HcalHitRelabeller::relabel
DetId relabel(const uint32_t testId) const
Definition: HcalHitRelabeller.cc:49
TrackingParticle.h
HGCalDetId
Definition: HGCalDetId.h:8
submitPVResolutionJobs.desc
string desc
Definition: submitPVResolutionJobs.py:251
HGCalDetId.h
std
Definition: JetResolutionObject.h:76
CaloParticleDebugger::collectionTags_
std::vector< edm::InputTag > collectionTags_
Definition: CaloParticleDebugger.cc:65
CaloParticleDebugger::simTracksToken_
edm::EDGetTokenT< std::vector< SimTrack > > simTracksToken_
Definition: CaloParticleDebugger.cc:66
HcalEndcap
Definition: HcalAssistant.h:34
Frameworkfwd.h
edm::LogVerbatim
Log< level::Info, true > LogVerbatim
Definition: MessageLogger.h:128
triggerObjects_cff.id
id
Definition: triggerObjects_cff.py:29
DetId::HGCalHSc
Definition: DetId.h:34
CaloGeometry.h
CaloParticleDebugger
Definition: CaloParticleDebugger.cc:47
EventSetup.h
CaloParticleDebugger::~CaloParticleDebugger
~CaloParticleDebugger() override
Definition: CaloParticleDebugger.cc:108
CaloParticleDebugger::simVerticesToken_
edm::EDGetTokenT< std::vector< SimVertex > > simVerticesToken_
Definition: CaloParticleDebugger.cc:68
HcalDDDRecConstants
Definition: HcalDDDRecConstants.h:23
HGCHEF
Definition: ForwardSubdetector.h:9
ConsumesCollector.h
funct::abs
Abs< T >::type abs(const T &t)
Definition: Abs.h:22
HcalGeometry::topology
const HcalTopology & topology() const
Definition: HcalGeometry.h:111
SimTrack.h
HGCalDDDConstants.h
ParameterSet.h
CaloParticleDebugger::caloParticles_
edm::InputTag caloParticles_
Definition: CaloParticleDebugger.cc:63
DetId::Forward
Definition: DetId.h:30
dqmiolumiharvest.j
j
Definition: dqmiolumiharvest.py:66
edm::Event
Definition: Event.h:73
submitPVValidationJobs.t
string t
Definition: submitPVValidationJobs.py:644
HcalGeometry
Definition: HcalGeometry.h:17
edm::InputTag
Definition: InputTag.h:15
edm::ConsumesCollector
Definition: ConsumesCollector.h:45
pwdgSkimBPark_cfi.vertices
vertices
Definition: pwdgSkimBPark_cfi.py:7
HGCalTestNumbering.h
unpackBuffers-CaloStage2.token
token
Definition: unpackBuffers-CaloStage2.py:316
CaloParticleDebugger::trackingParticles_
edm::InputTag trackingParticles_
Definition: CaloParticleDebugger.cc:62