CMS 3D CMS Logo

HGVHistoProducerAlgo.h
Go to the documentation of this file.
1 #ifndef Validation_HGCalValidation_HGVHistoProducerAlgo_h
2 #define Validation_HGCalValidation_HGVHistoProducerAlgo_h
3 
4 /* \author HGCal
5  */
6 
7 #include <iostream>
8 #include <fstream>
9 #include <vector>
10 #include <unordered_map>
11 
15 
23 
31 
33 
35  //Info
36  //To be able to spot any issues both in -z and +z a layer id was introduced
37  //that spans from 0 to 103 for hgcal_v9 geometry. The mapping for hgcal_v9 is:
38  //-z: 0->51
39  //+z: 52->103
40  //We will pick the numbers below from RecHitTools just to avoid future problems
41  dqm::reco::MonitorElement* lastLayerEEzm; // last layer of EE -z
42  dqm::reco::MonitorElement* lastLayerFHzm; // last layer of FH -z
43  dqm::reco::MonitorElement* maxlayerzm; // last layer of BH -z
44  dqm::reco::MonitorElement* lastLayerEEzp; // last layer of EE +z
45  dqm::reco::MonitorElement* lastLayerFHzp; // last layer of FH +z
46  dqm::reco::MonitorElement* maxlayerzp; // last layer of BH +z
47 
48  //1D
49  std::vector<dqm::reco::MonitorElement*> h_cluster_eta;
50  std::vector<dqm::reco::MonitorElement*> h_mixedhitscluster_zminus;
51  std::vector<dqm::reco::MonitorElement*> h_mixedhitscluster_zplus;
52  std::vector<dqm::reco::MonitorElement*> h_energyclustered_zminus;
53  std::vector<dqm::reco::MonitorElement*> h_energyclustered_zplus;
54  std::vector<dqm::reco::MonitorElement*> h_longdepthbarycentre_zminus;
55  std::vector<dqm::reco::MonitorElement*> h_longdepthbarycentre_zplus;
56 
57  std::unordered_map<int, dqm::reco::MonitorElement*> h_clusternum_perlayer;
58  std::unordered_map<int, dqm::reco::MonitorElement*> h_energyclustered_perlayer;
59  std::unordered_map<int, dqm::reco::MonitorElement*> h_score_layercl2caloparticle_perlayer;
60  std::unordered_map<int, dqm::reco::MonitorElement*> h_score_caloparticle2layercl_perlayer;
61  std::unordered_map<int, dqm::reco::MonitorElement*> h_energy_vs_score_caloparticle2layercl_perlayer;
62  std::unordered_map<int, dqm::reco::MonitorElement*> h_energy_vs_score_layercl2caloparticle_perlayer;
63  std::unordered_map<int, dqm::reco::MonitorElement*> h_sharedenergy_caloparticle2layercl_perlayer;
64  std::unordered_map<int, dqm::reco::MonitorElement*> h_sharedenergy_caloparticle2layercl_vs_eta_perlayer;
65  std::unordered_map<int, dqm::reco::MonitorElement*> h_sharedenergy_caloparticle2layercl_vs_phi_perlayer;
66  std::unordered_map<int, dqm::reco::MonitorElement*> h_sharedenergy_layercl2caloparticle_perlayer;
67  std::unordered_map<int, dqm::reco::MonitorElement*> h_sharedenergy_layercl2caloparticle_vs_eta_perlayer;
68  std::unordered_map<int, dqm::reco::MonitorElement*> h_sharedenergy_layercl2caloparticle_vs_phi_perlayer;
69  std::unordered_map<int, dqm::reco::MonitorElement*> h_num_caloparticle_eta_perlayer;
70  std::unordered_map<int, dqm::reco::MonitorElement*> h_numDup_caloparticle_eta_perlayer;
71  std::unordered_map<int, dqm::reco::MonitorElement*> h_denom_caloparticle_eta_perlayer;
72  std::unordered_map<int, dqm::reco::MonitorElement*> h_num_caloparticle_phi_perlayer;
73  std::unordered_map<int, dqm::reco::MonitorElement*> h_numDup_caloparticle_phi_perlayer;
74  std::unordered_map<int, dqm::reco::MonitorElement*> h_denom_caloparticle_phi_perlayer;
75  std::unordered_map<int, dqm::reco::MonitorElement*> h_num_layercl_eta_perlayer;
76  std::unordered_map<int, dqm::reco::MonitorElement*> h_numMerge_layercl_eta_perlayer;
77  std::unordered_map<int, dqm::reco::MonitorElement*> h_denom_layercl_eta_perlayer;
78  std::unordered_map<int, dqm::reco::MonitorElement*> h_num_layercl_phi_perlayer;
79  std::unordered_map<int, dqm::reco::MonitorElement*> h_numMerge_layercl_phi_perlayer;
80  std::unordered_map<int, dqm::reco::MonitorElement*> h_denom_layercl_phi_perlayer;
81  std::unordered_map<int, dqm::reco::MonitorElement*> h_cellAssociation_perlayer;
82  std::unordered_map<int, dqm::reco::MonitorElement*> h_clusternum_perthick;
83  std::unordered_map<int, dqm::reco::MonitorElement*> h_cellsenedens_perthick;
84 
85  std::unordered_map<std::string, dqm::reco::MonitorElement*> h_cellsnum_perthickperlayer;
86  std::unordered_map<std::string, dqm::reco::MonitorElement*> h_distancetoseedcell_perthickperlayer;
87  std::unordered_map<std::string, dqm::reco::MonitorElement*> h_distancetoseedcell_perthickperlayer_eneweighted;
88  std::unordered_map<std::string, dqm::reco::MonitorElement*> h_distancetomaxcell_perthickperlayer;
89  std::unordered_map<std::string, dqm::reco::MonitorElement*> h_distancetomaxcell_perthickperlayer_eneweighted;
90  std::unordered_map<std::string, dqm::reco::MonitorElement*> h_distancebetseedandmaxcell_perthickperlayer;
91  std::unordered_map<std::string, dqm::reco::MonitorElement*>
93 
94  std::unordered_map<int, dqm::reco::MonitorElement*> h_caloparticle_eta;
95  std::unordered_map<int, dqm::reco::MonitorElement*> h_caloparticle_eta_Zorigin;
96  std::unordered_map<int, dqm::reco::MonitorElement*> h_caloparticle_energy;
97  std::unordered_map<int, dqm::reco::MonitorElement*> h_caloparticle_selfenergy;
98  std::unordered_map<int, dqm::reco::MonitorElement*> h_caloparticle_energyDifference;
99  std::unordered_map<int, dqm::reco::MonitorElement*> h_caloparticle_pt;
100  std::unordered_map<int, dqm::reco::MonitorElement*> h_caloparticle_phi;
101  std::unordered_map<int, dqm::reco::MonitorElement*> h_caloparticle_nSimClusters;
102  std::unordered_map<int, dqm::reco::MonitorElement*> h_caloparticle_nHitsInSimClusters;
103  std::unordered_map<int, dqm::reco::MonitorElement*> h_caloparticle_firstlayer;
104  std::unordered_map<int, dqm::reco::MonitorElement*> h_caloparticle_lastlayer;
105  std::unordered_map<int, dqm::reco::MonitorElement*> h_caloparticle_layersnum;
106  std::unordered_map<int, dqm::reco::MonitorElement*> h_caloparticle_nHitsInSimClusters_matchedtoRecHit;
107  std::unordered_map<int, dqm::reco::MonitorElement*> h_caloparticle_nHits_matched_energy;
108  std::unordered_map<int, dqm::reco::MonitorElement*> h_caloparticle_nHits_matched_energy_layer;
109  std::unordered_map<int, dqm::reco::MonitorElement*> h_caloparticle_nHits_matched_energy_layer_1SimCl;
110  std::unordered_map<int, dqm::reco::MonitorElement*> h_caloparticle_sum_energy_layer;
111  std::unordered_map<int, dqm::reco::MonitorElement*> h_caloparticle_firstlayer_matchedtoRecHit;
112  std::unordered_map<int, dqm::reco::MonitorElement*> h_caloparticle_lastlayer_matchedtoRecHit;
113  std::unordered_map<int, dqm::reco::MonitorElement*> h_caloparticle_layersnum_matchedtoRecHit;
114  std::unordered_map<int, dqm::reco::MonitorElement*> h_caloparticle_fractions, h_caloparticle_fractions_weight;
115 
116  //For SimClusters
117  std::unordered_map<int, dqm::reco::MonitorElement*> h_simclusternum_perlayer;
118  std::unordered_map<int, dqm::reco::MonitorElement*> h_simclusternum_perthick;
121 
122  std::vector<std::unordered_map<int, dqm::reco::MonitorElement*>> h_denom_layercl_in_simcl_eta_perlayer;
123  std::vector<std::unordered_map<int, dqm::reco::MonitorElement*>> h_denom_layercl_in_simcl_phi_perlayer;
124  std::vector<std::unordered_map<int, dqm::reco::MonitorElement*>> h_score_layercl2simcluster_perlayer;
125  std::vector<std::unordered_map<int, dqm::reco::MonitorElement*>> h_sharedenergy_layercl2simcluster_perlayer;
126  std::vector<std::unordered_map<int, dqm::reco::MonitorElement*>> h_energy_vs_score_layercl2simcluster_perlayer;
127  std::vector<std::unordered_map<int, dqm::reco::MonitorElement*>> h_num_layercl_in_simcl_eta_perlayer;
128  std::vector<std::unordered_map<int, dqm::reco::MonitorElement*>> h_num_layercl_in_simcl_phi_perlayer;
129  std::vector<std::unordered_map<int, dqm::reco::MonitorElement*>> h_numMerge_layercl_in_simcl_eta_perlayer;
130  std::vector<std::unordered_map<int, dqm::reco::MonitorElement*>> h_numMerge_layercl_in_simcl_phi_perlayer;
131  std::vector<std::unordered_map<int, dqm::reco::MonitorElement*>> h_sharedenergy_layercl2simcluster_vs_eta_perlayer;
132  std::vector<std::unordered_map<int, dqm::reco::MonitorElement*>> h_sharedenergy_layercl2simcluster_vs_phi_perlayer;
133  std::vector<std::unordered_map<int, dqm::reco::MonitorElement*>> h_denom_simcluster_eta_perlayer;
134  std::vector<std::unordered_map<int, dqm::reco::MonitorElement*>> h_denom_simcluster_phi_perlayer;
135  std::vector<std::unordered_map<int, dqm::reco::MonitorElement*>> h_score_simcluster2layercl_perlayer;
136  std::vector<std::unordered_map<int, dqm::reco::MonitorElement*>> h_sharedenergy_simcluster2layercl_perlayer;
137  std::vector<std::unordered_map<int, dqm::reco::MonitorElement*>> h_energy_vs_score_simcluster2layercl_perlayer;
138  std::vector<std::unordered_map<int, dqm::reco::MonitorElement*>> h_num_simcluster_eta_perlayer;
139  std::vector<std::unordered_map<int, dqm::reco::MonitorElement*>> h_num_simcluster_phi_perlayer;
140  std::vector<std::unordered_map<int, dqm::reco::MonitorElement*>> h_numDup_simcluster_eta_perlayer;
141  std::vector<std::unordered_map<int, dqm::reco::MonitorElement*>> h_numDup_simcluster_phi_perlayer;
142  std::vector<std::unordered_map<int, dqm::reco::MonitorElement*>> h_sharedenergy_simcluster2layercl_vs_eta_perlayer;
143  std::vector<std::unordered_map<int, dqm::reco::MonitorElement*>> h_sharedenergy_simcluster2layercl_vs_phi_perlayer;
144 
145  // For Tracksters
147 
148  std::vector<dqm::reco::MonitorElement*> h_score_trackster2caloparticle[numberOfValidationTypes_];
149  std::vector<dqm::reco::MonitorElement*> h_score_trackster2bestCaloparticle[numberOfValidationTypes_];
150  std::vector<dqm::reco::MonitorElement*> h_score_trackster2bestCaloparticle2[numberOfValidationTypes_];
151  std::vector<dqm::reco::MonitorElement*> h_score_caloparticle2trackster[numberOfValidationTypes_];
152  std::vector<dqm::reco::MonitorElement*> h_scorePur_caloparticle2trackster[numberOfValidationTypes_];
153  std::vector<dqm::reco::MonitorElement*> h_scoreDupl_caloparticle2trackster[numberOfValidationTypes_];
154  std::vector<dqm::reco::MonitorElement*> h_energy_vs_score_trackster2caloparticle[numberOfValidationTypes_];
157  std::vector<dqm::reco::MonitorElement*> h_energy_vs_score_caloparticle2trackster[numberOfValidationTypes_];
160  std::vector<dqm::reco::MonitorElement*> h_num_trackster_eta[numberOfValidationTypes_];
161  std::vector<dqm::reco::MonitorElement*> h_num_trackster_phi[numberOfValidationTypes_];
162  std::vector<dqm::reco::MonitorElement*> h_num_trackster_en[numberOfValidationTypes_];
163  std::vector<dqm::reco::MonitorElement*> h_num_trackster_pt[numberOfValidationTypes_];
164  std::vector<dqm::reco::MonitorElement*> h_numMerge_trackster_eta[numberOfValidationTypes_];
165  std::vector<dqm::reco::MonitorElement*> h_numMerge_trackster_phi[numberOfValidationTypes_];
166  std::vector<dqm::reco::MonitorElement*> h_numMerge_trackster_en[numberOfValidationTypes_];
167  std::vector<dqm::reco::MonitorElement*> h_numMerge_trackster_pt[numberOfValidationTypes_];
168  std::vector<dqm::reco::MonitorElement*> h_sharedenergy_trackster2caloparticle[numberOfValidationTypes_];
169  std::vector<dqm::reco::MonitorElement*> h_sharedenergy_trackster2bestCaloparticle[numberOfValidationTypes_];
171  std::vector<dqm::reco::MonitorElement*> h_sharedenergy_caloparticle2trackster[numberOfValidationTypes_];
178  std::vector<dqm::reco::MonitorElement*> h_denom_trackster_eta[numberOfValidationTypes_];
179  std::vector<dqm::reco::MonitorElement*> h_denom_trackster_phi[numberOfValidationTypes_];
180  std::vector<dqm::reco::MonitorElement*> h_denom_trackster_en[numberOfValidationTypes_];
181  std::vector<dqm::reco::MonitorElement*> h_denom_trackster_pt[numberOfValidationTypes_];
182  std::vector<dqm::reco::MonitorElement*> h_numEff_caloparticle_eta[numberOfValidationTypes_];
183  std::vector<dqm::reco::MonitorElement*> h_numEff_caloparticle_phi[numberOfValidationTypes_];
184  std::vector<dqm::reco::MonitorElement*> h_numEff_caloparticle_en[numberOfValidationTypes_];
185  std::vector<dqm::reco::MonitorElement*> h_numEff_caloparticle_pt[numberOfValidationTypes_];
186  std::vector<dqm::reco::MonitorElement*> h_num_caloparticle_eta[numberOfValidationTypes_];
187  std::vector<dqm::reco::MonitorElement*> h_num_caloparticle_phi[numberOfValidationTypes_];
188  std::vector<dqm::reco::MonitorElement*> h_num_caloparticle_en[numberOfValidationTypes_];
189  std::vector<dqm::reco::MonitorElement*> h_num_caloparticle_pt[numberOfValidationTypes_];
190  std::vector<dqm::reco::MonitorElement*> h_numDup_trackster_eta[numberOfValidationTypes_];
191  std::vector<dqm::reco::MonitorElement*> h_numDup_trackster_phi[numberOfValidationTypes_];
192  std::vector<dqm::reco::MonitorElement*> h_numDup_trackster_en[numberOfValidationTypes_];
193  std::vector<dqm::reco::MonitorElement*> h_numDup_trackster_pt[numberOfValidationTypes_];
194  std::vector<dqm::reco::MonitorElement*> h_denom_caloparticle_eta[numberOfValidationTypes_];
195  std::vector<dqm::reco::MonitorElement*> h_denom_caloparticle_phi[numberOfValidationTypes_];
196  std::vector<dqm::reco::MonitorElement*> h_denom_caloparticle_en[numberOfValidationTypes_];
197  std::vector<dqm::reco::MonitorElement*> h_denom_caloparticle_pt[numberOfValidationTypes_];
198  // Generic histograms
199  std::vector<dqm::reco::MonitorElement*> h_tracksternum;
200  std::vector<dqm::reco::MonitorElement*> h_conttracksternum;
201  std::vector<dqm::reco::MonitorElement*> h_nonconttracksternum;
202  std::vector<dqm::reco::MonitorElement*> h_clusternum_in_trackster;
203  std::vector<std::unordered_map<int, dqm::reco::MonitorElement*>> h_clusternum_in_trackster_perlayer;
204  std::vector<dqm::reco::MonitorElement*> h_multiplicityOfLCinTST;
205  std::vector<dqm::reco::MonitorElement*> h_multiplicity_numberOfEventsHistogram;
206  std::vector<dqm::reco::MonitorElement*> h_multiplicity_zminus_numberOfEventsHistogram;
207  std::vector<dqm::reco::MonitorElement*> h_multiplicity_zplus_numberOfEventsHistogram;
208  std::vector<dqm::reco::MonitorElement*> h_multiplicityOfLCinTST_vs_layercluster;
209  std::vector<dqm::reco::MonitorElement*> h_multiplicityOfLCinTST_vs_layercluster_zminus;
210  std::vector<dqm::reco::MonitorElement*> h_multiplicityOfLCinTST_vs_layercluster_zplus;
211  std::vector<dqm::reco::MonitorElement*> h_multiplicityOfLCinTST_vs_layerclusterenergy;
212  std::vector<dqm::reco::MonitorElement*> h_clusternum_in_trackster_vs_layer;
213  std::vector<dqm::reco::MonitorElement*> h_trackster_pt;
214  std::vector<dqm::reco::MonitorElement*> h_trackster_eta;
215  std::vector<dqm::reco::MonitorElement*> h_trackster_phi;
216  std::vector<dqm::reco::MonitorElement*> h_trackster_energy;
217  std::vector<dqm::reco::MonitorElement*> h_trackster_x;
218  std::vector<dqm::reco::MonitorElement*> h_trackster_y;
219  std::vector<dqm::reco::MonitorElement*> h_trackster_z;
220  std::vector<dqm::reco::MonitorElement*> h_trackster_firstlayer;
221  std::vector<dqm::reco::MonitorElement*> h_trackster_lastlayer;
222  std::vector<dqm::reco::MonitorElement*> h_trackster_layersnum;
223 };
224 
226 
228 public:
236 
239 
241 
243  void bookCaloParticleHistos(DQMStore::IBooker& ibook, Histograms& histograms, int pdgid, unsigned int layers);
244 
247  unsigned int layers,
248  std::vector<int> thicknesses);
249 
252  unsigned int layers,
253  std::vector<int> thicknesses);
254 
257  unsigned int layers,
258  std::vector<int> thicknesses,
259  std::string pathtomatbudfile);
260 
262 
265  unsigned int layers,
266  std::vector<int> thicknesses);
267 
269 
271 
275  edm::Handle<std::vector<CaloParticle>> caloParticleHandle,
276  std::vector<CaloParticle> const& cP,
277  std::vector<size_t> const& cPIndices,
278  std::vector<size_t> const& cPSelectedIndices,
279  std::unordered_map<DetId, const unsigned int> const&,
280  unsigned int layers,
281  const ticl::RecoToSimCollection& recSimColl,
282  const ticl::SimToRecoCollection& simRecColl,
283  std::vector<HGCRecHit> const& hits) const;
285  const int count,
288  edm::Handle<std::vector<SimCluster>> simClusterHandle,
289  std::vector<SimCluster> const& simClusters,
290  std::vector<size_t> const& sCIndices,
291  const std::vector<float>& mask,
292  std::unordered_map<DetId, const unsigned int> const&,
293  unsigned int layers,
296  std::vector<HGCRecHit> const& hits) const;
297 
299  const int count,
300  const TracksterToTracksterMap& trackstersToSimTrackstersMap,
301  const TracksterToTracksterMap& simTrackstersToTrackstersMap,
302  const validationType valType,
303  const SimClusterToCaloParticleMap& scToCpMap,
304  const std::vector<size_t>& cPIndices,
305  const std::vector<size_t>& cPSelectedIndices,
306  const edm::ProductID& cPHandle_id) const;
307 
308  void fill_info_histos(const Histograms& histograms, unsigned int layers) const;
310  int pdgid,
311  const CaloParticle& caloparticle,
312  std::vector<SimVertex> const& simVertices,
313  unsigned int layers,
314  std::unordered_map<DetId, const unsigned int> const&,
315  std::vector<HGCRecHit> const& hits) const;
317  const int count,
320  edm::Handle<std::vector<CaloParticle>> caloParticleHandle,
321  std::vector<CaloParticle> const& cP,
322  std::vector<size_t> const& cPIndices,
323  std::vector<size_t> const& cPSelectedIndices,
324  std::unordered_map<DetId, const unsigned int> const&,
325  std::map<double, double> cummatbudg,
326  unsigned int layers,
327  std::vector<int> thicknesses,
328  const ticl::RecoToSimCollection& recSimColl,
329  const ticl::SimToRecoCollection& simRecColl,
330  std::vector<HGCRecHit> const& hits) const;
332  std::vector<SimCluster> const& simClusters,
333  unsigned int layers,
334  std::vector<int> thicknesses) const;
336  const int count,
339  edm::Handle<std::vector<SimCluster>> simClusterHandle,
340  std::vector<SimCluster> const& simClusters,
341  std::vector<size_t> const& sCIndices,
342  const std::vector<float>& mask,
343  std::unordered_map<DetId, const unsigned int> const& hitMap,
344  unsigned int layers,
347  std::vector<HGCRecHit> const& hits) const;
348  void fill_cluster_histos(const Histograms& histograms, const int count, const reco::CaloCluster& cluster) const;
350  const int count,
353  const ticl::TracksterCollection& simTSs,
354  const ticl::TracksterCollection& simTSs_fromCP,
355  const std::map<unsigned int, std::vector<unsigned int>>& cpToSc_SimTrackstersMap,
356  std::vector<SimCluster> const& sC,
357  const edm::ProductID& cPHandle_id,
358  std::vector<CaloParticle> const& cP,
359  std::vector<size_t> const& cPIndices,
360  std::vector<size_t> const& cPSelectedIndices,
361  std::unordered_map<DetId, const unsigned int> const& hitMap,
362  unsigned int layers,
363  std::vector<HGCRecHit> const& hits,
364  bool mapsFound,
365  const edm::Handle<TracksterToTracksterMap>& trackstersToSimTrackstersByLCsMapH,
366  const edm::Handle<TracksterToTracksterMap>& simTrackstersToTrackstersByLCsMapH,
367  const edm::Handle<TracksterToTracksterMap>& trackstersToSimTrackstersFromCPsByLCsMapH,
368  const edm::Handle<TracksterToTracksterMap>& simTrackstersFromCPsToTrackstersByLCsMapH,
369  const edm::Handle<TracksterToTracksterMap>& trackstersToSimTrackstersByHitsMapH,
370  const edm::Handle<TracksterToTracksterMap>& simTrackstersToTrackstersByHitsMapH,
371  const edm::Handle<TracksterToTracksterMap>& trackstersToSimTrackstersFromCPsByHitsMapH,
372  const edm::Handle<TracksterToTracksterMap>& simTrackstersFromCPsToTrackstersByHitsMapH,
373  const SimClusterToCaloParticleMap& scToCpMap) const;
374  double distance2(const double x1, const double y1, const double x2, const double y2) const;
375  double distance(const double x1, const double y1, const double x2, const double y2) const;
376 
377  void setRecHitTools(std::shared_ptr<hgcal::RecHitTools> recHitTools);
378 
379  DetId findmaxhit(const reco::CaloCluster& cluster,
380  std::unordered_map<DetId, const unsigned int> const&,
381  std::vector<HGCRecHit> const& hits) const;
382 
384  bool operator==(const detIdInfoInCluster& o) const { return clusterId == o.clusterId; };
385  long unsigned int clusterId;
386  float fraction;
387  };
388 
390  bool operator==(const detIdInfoInTrackster& o) const { return tracksterId == o.tracksterId; };
391  unsigned int tracksterId;
392  long unsigned int clusterId;
393  float fraction;
394  };
395 
397  unsigned int caloParticleId;
398  float energy = 0;
399  std::vector<std::pair<DetId, float>> hits_and_fractions;
400  std::unordered_map<unsigned int, std::pair<float, float>> layerClusterIdToEnergyAndScore;
401  };
402 
403 private:
404  double getEta(double eta) const;
405 
406  std::shared_ptr<hgcal::RecHitTools> recHitTools_;
408  std::array<std::string, numberOfValidationTypes_> ref_ = {
409  {"SimTrackster_fromCP_byHits", "SimTrackster_byLCs", "SimTrackster_fromCP_byLCs", "SimTrackster_byHits"}};
410  std::array<std::string, numberOfValidationTypes_> refText_ = {{"SimTrackster from CP Associated by Hits",
411  "SimTrackster Associated by LCs",
412  "SimTrackster from CP Associated by LCs",
413  "SimTrackster Associated by Hits"}};
414  // Must be in sync with labels in PostProcessorHGCAL_cfi.py
415  std::array<std::string, numberOfValidationTypes_> valSuffix_ = {{"_byHits_CP", "_byLCs", "_byLCs_CP", "_byHits"}};
416 
417  //private data members
418  double minEta_, maxEta_;
419  int nintEta_;
421  double minEne_, maxEne_;
422  int nintEne_;
423  double minPt_, maxPt_;
424  int nintPt_;
425  double minPhi_, maxPhi_;
426  int nintPhi_;
482  double minX_, maxX_;
483  int nintX_;
484  double minY_, maxY_;
485  int nintY_;
486  double minZ_, maxZ_;
487  int nintZ_;
488 };
489 
490 #endif
std::vector< std::unordered_map< int, dqm::reco::MonitorElement * > > h_numDup_simcluster_eta_perlayer
std::vector< dqm::reco::MonitorElement * > h_numEff_caloparticle_phi[numberOfValidationTypes_]
std::vector< std::unordered_map< int, dqm::reco::MonitorElement * > > h_numMerge_layercl_in_simcl_eta_perlayer
std::vector< std::unordered_map< int, dqm::reco::MonitorElement * > > h_sharedenergy_layercl2simcluster_vs_eta_perlayer
std::vector< dqm::reco::MonitorElement * > h_numMerge_trackster_pt[numberOfValidationTypes_]
std::vector< dqm::reco::MonitorElement * > h_longdepthbarycentre_zplus
dqm::legacy::MonitorElement MonitorElement
std::unordered_map< int, dqm::reco::MonitorElement * > h_caloparticle_firstlayer
void fill_caloparticle_histos(const Histograms &histograms, int pdgid, const CaloParticle &caloparticle, std::vector< SimVertex > const &simVertices, unsigned int layers, std::unordered_map< DetId, const unsigned int > const &, std::vector< HGCRecHit > const &hits) const
dqm::legacy::DQMStore DQMStore
std::vector< dqm::reco::MonitorElement * > h_energyclustered_zminus
dqm::reco::MonitorElement * lastLayerEEzm
std::vector< std::unordered_map< int, dqm::reco::MonitorElement * > > h_numDup_simcluster_phi_perlayer
std::vector< dqm::reco::MonitorElement * > h_scorePur_caloparticle2trackster[numberOfValidationTypes_]
std::vector< dqm::reco::MonitorElement * > h_multiplicityOfLCinTST_vs_layerclusterenergy
std::unordered_map< int, dqm::reco::MonitorElement * > h_clusternum_perlayer
std::vector< std::unordered_map< int, dqm::reco::MonitorElement * > > h_sharedenergy_simcluster2layercl_vs_eta_perlayer
std::vector< dqm::reco::MonitorElement * > h_tracksternum
std::unordered_map< int, dqm::reco::MonitorElement * > h_denom_caloparticle_eta_perlayer
std::vector< dqm::reco::MonitorElement * > h_denom_caloparticle_en[numberOfValidationTypes_]
std::vector< dqm::reco::MonitorElement * > h_multiplicityOfLCinTST_vs_layercluster
std::vector< dqm::reco::MonitorElement * > h_trackster_x
std::vector< dqm::reco::MonitorElement * > h_denom_trackster_eta[numberOfValidationTypes_]
std::vector< dqm::reco::MonitorElement * > h_trackster_eta
std::vector< dqm::reco::MonitorElement * > h_sharedenergy_trackster2bestCaloparticle_vs_eta[numberOfValidationTypes_]
std::vector< dqm::reco::MonitorElement * > h_trackster_phi
std::vector< dqm::reco::MonitorElement * > h_num_caloparticle_pt[numberOfValidationTypes_]
std::vector< dqm::reco::MonitorElement * > h_numDup_trackster_pt[numberOfValidationTypes_]
void layerClusters_to_CaloParticles(const Histograms &histograms, edm::Handle< reco::CaloClusterCollection > clusterHandle, const reco::CaloClusterCollection &clusters, edm::Handle< std::vector< CaloParticle >> caloParticleHandle, std::vector< CaloParticle > const &cP, std::vector< size_t > const &cPIndices, std::vector< size_t > const &cPSelectedIndices, std::unordered_map< DetId, const unsigned int > const &, unsigned int layers, const ticl::RecoToSimCollection &recSimColl, const ticl::SimToRecoCollection &simRecColl, std::vector< HGCRecHit > const &hits) const
std::vector< dqm::reco::MonitorElement * > h_sharedenergy_trackster2caloparticle[numberOfValidationTypes_]
std::vector< dqm::reco::MonitorElement * > h_numMerge_trackster_eta[numberOfValidationTypes_]
std::unordered_map< int, dqm::reco::MonitorElement * > h_energy_vs_score_layercl2caloparticle_perlayer
std::unordered_map< int, dqm::reco::MonitorElement * > h_simclusternum_perlayer
std::vector< dqm::reco::MonitorElement * > h_energy_vs_score_trackster2caloparticle[numberOfValidationTypes_]
void bookTracksterHistos(DQMStore::IBooker &ibook, Histograms &histograms, unsigned int layers)
std::unordered_map< std::string, dqm::reco::MonitorElement * > h_distancetomaxcell_perthickperlayer_eneweighted
std::vector< dqm::reco::MonitorElement * > h_sharedenergy_caloparticle2trackster_assoc2[numberOfValidationTypes_]
std::vector< dqm::reco::MonitorElement * > h_multiplicity_zplus_numberOfEventsHistogram
std::unordered_map< int, dqm::reco::MonitorElement * > h_caloparticle_energy
dqm::reco::MonitorElement * maxlayerzp
std::vector< dqm::reco::MonitorElement * > h_numEff_caloparticle_pt[numberOfValidationTypes_]
void setRecHitTools(std::shared_ptr< hgcal::RecHitTools > recHitTools)
std::vector< dqm::reco::MonitorElement * > h_multiplicity_numberOfEventsHistogram
std::vector< dqm::reco::MonitorElement * > h_clusternum_in_trackster
std::unordered_map< int, dqm::reco::MonitorElement * > h_denom_layercl_eta_perlayer
static constexpr int numberOfValidationTypes_
std::vector< dqm::reco::MonitorElement * > h_numEff_caloparticle_eta[numberOfValidationTypes_]
std::vector< dqm::reco::MonitorElement * > h_mixedhitscluster_zplus
std::unordered_map< int, dqm::reco::MonitorElement * > h_num_caloparticle_eta_perlayer
std::unordered_map< int, dqm::reco::MonitorElement * > h_sharedenergy_layercl2caloparticle_perlayer
std::vector< dqm::reco::MonitorElement * > h_multiplicity_zminus_numberOfEventsHistogram
std::vector< dqm::reco::MonitorElement * > h_score_caloparticle2trackster[numberOfValidationTypes_]
std::vector< dqm::reco::MonitorElement * > h_sharedenergy_trackster2bestCaloparticle_vs_phi[numberOfValidationTypes_]
std::unordered_map< int, dqm::reco::MonitorElement * > h_sharedenergy_layercl2caloparticle_vs_eta_perlayer
void fill_info_histos(const Histograms &histograms, unsigned int layers) const
std::unordered_map< int, dqm::reco::MonitorElement * > h_energy_vs_score_caloparticle2layercl_perlayer
std::vector< std::unordered_map< int, dqm::reco::MonitorElement * > > h_denom_layercl_in_simcl_eta_perlayer
std::vector< dqm::reco::MonitorElement * > h_multiplicityOfLCinTST
bool operator==(const detIdInfoInTrackster &o) const
dqm::reco::MonitorElement * h_mixedhitssimcluster_zminus
std::vector< dqm::reco::MonitorElement * > h_num_caloparticle_en[numberOfValidationTypes_]
void bookClusterHistos_LCtoCP_association(DQMStore::IBooker &ibook, Histograms &histograms, unsigned int layers)
std::vector< dqm::reco::MonitorElement * > h_score_trackster2bestCaloparticle2[numberOfValidationTypes_]
std::unordered_map< int, dqm::reco::MonitorElement * > h_sharedenergy_caloparticle2layercl_vs_phi_perlayer
std::unordered_map< int, dqm::reco::MonitorElement * > h_simclusternum_perthick
std::unordered_map< int, dqm::reco::MonitorElement * > h_caloparticle_pt
std::vector< dqm::reco::MonitorElement * > h_energy_vs_score_caloparticle2trackster[numberOfValidationTypes_]
std::vector< dqm::reco::MonitorElement * > h_numEff_caloparticle_en[numberOfValidationTypes_]
std::unordered_map< int, dqm::reco::MonitorElement * > h_numDup_caloparticle_eta_perlayer
std::unordered_map< int, dqm::reco::MonitorElement * > h_cellsenedens_perthick
std::vector< dqm::reco::MonitorElement * > h_energy_vs_score_caloparticle2bestTrackster2[numberOfValidationTypes_]
std::unordered_map< int, dqm::reco::MonitorElement * > h_caloparticle_nHits_matched_energy_layer_1SimCl
std::unordered_map< int, dqm::reco::MonitorElement * > h_sharedenergy_layercl2caloparticle_vs_phi_perlayer
dqm::reco::MonitorElement * h_mixedhitssimcluster_zplus
std::vector< dqm::reco::MonitorElement * > h_sharedenergy_caloparticle2trackster_assoc_vs_eta[numberOfValidationTypes_]
std::array< std::string, numberOfValidationTypes_ > refText_
std::vector< std::unordered_map< int, dqm::reco::MonitorElement * > > h_score_simcluster2layercl_perlayer
std::vector< dqm::reco::MonitorElement * > h_cluster_eta
void bookInfo(DQMStore::IBooker &ibook, Histograms &histograms)
std::vector< dqm::reco::MonitorElement * > h_energyclustered_zplus
std::vector< std::unordered_map< int, dqm::reco::MonitorElement * > > h_denom_simcluster_eta_perlayer
std::vector< dqm::reco::MonitorElement * > h_sharedenergy_caloparticle2trackster_assoc_vs_phi[numberOfValidationTypes_]
std::unordered_map< std::string, dqm::reco::MonitorElement * > h_cellsnum_perthickperlayer
std::unordered_map< int, dqm::reco::MonitorElement * > h_caloparticle_nHits_matched_energy_layer
std::unordered_map< int, dqm::reco::MonitorElement * > h_caloparticle_fractions_weight
std::map< DetId, float > Density
std::array< std::string, numberOfValidationTypes_ > ref_
std::vector< std::unordered_map< int, dqm::reco::MonitorElement * > > h_sharedenergy_layercl2simcluster_vs_phi_perlayer
std::unordered_map< std::string, dqm::reco::MonitorElement * > h_distancebetseedandmaxcell_perthickperlayer
std::vector< dqm::reco::MonitorElement * > h_num_trackster_en[numberOfValidationTypes_]
std::unordered_map< int, dqm::reco::MonitorElement * > h_caloparticle_lastlayer_matchedtoRecHit
std::vector< dqm::reco::MonitorElement * > h_nonconttracksternum
void bookSimClusterAssociationHistos(DQMStore::IBooker &ibook, Histograms &histograms, unsigned int layers, std::vector< int > thicknesses)
std::vector< dqm::reco::MonitorElement * > h_denom_trackster_phi[numberOfValidationTypes_]
std::vector< dqm::reco::MonitorElement * > h_denom_caloparticle_phi[numberOfValidationTypes_]
std::vector< dqm::reco::MonitorElement * > h_longdepthbarycentre_zminus
std::unordered_map< std::string, dqm::reco::MonitorElement * > h_distancebetseedandmaxcellvsclusterenergy_perthickperlayer
void bookSimClusterHistos(DQMStore::IBooker &ibook, Histograms &histograms, unsigned int layers, std::vector< int > thicknesses)
std::unordered_map< int, dqm::reco::MonitorElement * > h_energyclustered_perlayer
void fill_cluster_histos(const Histograms &histograms, const int count, const reco::CaloCluster &cluster) const
std::unordered_map< int, dqm::reco::MonitorElement * > h_caloparticle_layersnum
std::vector< dqm::reco::MonitorElement * > h_mixedhitscluster_zminus
std::vector< std::unordered_map< int, dqm::reco::MonitorElement * > > h_energy_vs_score_simcluster2layercl_perlayer
std::vector< dqm::reco::MonitorElement * > h_num_trackster_phi[numberOfValidationTypes_]
std::vector< std::unordered_map< int, dqm::reco::MonitorElement * > > h_energy_vs_score_layercl2simcluster_perlayer
static constexpr int numberOfValidationTypes_
std::unordered_map< int, dqm::reco::MonitorElement * > h_clusternum_perthick
std::unordered_map< int, dqm::reco::MonitorElement * > h_sharedenergy_caloparticle2layercl_perlayer
std::vector< dqm::reco::MonitorElement * > h_num_caloparticle_eta[numberOfValidationTypes_]
std::vector< std::unordered_map< int, dqm::reco::MonitorElement * > > h_num_layercl_in_simcl_phi_perlayer
std::unordered_map< int, dqm::reco::MonitorElement * > h_caloparticle_phi
std::vector< dqm::reco::MonitorElement * > h_clusternum_in_trackster_vs_layer
double distance2(const double x1, const double y1, const double x2, const double y2) const
std::vector< std::unordered_map< int, dqm::reco::MonitorElement * > > h_num_layercl_in_simcl_eta_perlayer
std::vector< std::pair< DetId, float > > hits_and_fractions
dqm::reco::MonitorElement * maxlayerzm
std::vector< std::unordered_map< int, dqm::reco::MonitorElement * > > h_denom_layercl_in_simcl_phi_perlayer
std::vector< CaloCluster > CaloClusterCollection
collection of CaloCluster objects
void bookCaloParticleHistos(DQMStore::IBooker &ibook, Histograms &histograms, int pdgid, unsigned int layers)
bool operator==(const detIdInfoInCluster &o) const
void bookTracksterSTSHistos(DQMStore::IBooker &ibook, Histograms &histograms, const validationType valType)
void tracksters_to_SimTracksters_fp(const Histograms &histograms, const int count, const TracksterToTracksterMap &trackstersToSimTrackstersMap, const TracksterToTracksterMap &simTrackstersToTrackstersMap, const validationType valType, const SimClusterToCaloParticleMap &scToCpMap, const std::vector< size_t > &cPIndices, const std::vector< size_t > &cPSelectedIndices, const edm::ProductID &cPHandle_id) const
dqm::reco::MonitorElement * lastLayerEEzp
std::vector< dqm::reco::MonitorElement * > h_trackster_lastlayer
std::unordered_map< std::string, dqm::reco::MonitorElement * > h_distancetomaxcell_perthickperlayer
std::unordered_map< int, dqm::reco::MonitorElement * > h_num_layercl_eta_perlayer
std::vector< dqm::reco::MonitorElement * > h_multiplicityOfLCinTST_vs_layercluster_zplus
double getEta(double eta) const
std::vector< dqm::reco::MonitorElement * > h_multiplicityOfLCinTST_vs_layercluster_zminus
std::vector< dqm::reco::MonitorElement * > h_sharedenergy_trackster2bestCaloparticle[numberOfValidationTypes_]
std::vector< dqm::reco::MonitorElement * > h_energy_vs_score_trackster2bestCaloparticle[numberOfValidationTypes_]
std::vector< dqm::reco::MonitorElement * > h_denom_trackster_pt[numberOfValidationTypes_]
Definition: DetId.h:17
std::vector< dqm::reco::MonitorElement * > h_trackster_z
void layerClusters_to_SimClusters(const Histograms &histograms, const int count, edm::Handle< reco::CaloClusterCollection > clusterHandle, const reco::CaloClusterCollection &clusters, edm::Handle< std::vector< SimCluster >> simClusterHandle, std::vector< SimCluster > const &simClusters, std::vector< size_t > const &sCIndices, const std::vector< float > &mask, std::unordered_map< DetId, const unsigned int > const &, unsigned int layers, const ticl::RecoToSimCollectionWithSimClusters &recSimColl, const ticl::SimToRecoCollectionWithSimClusters &simRecColl, std::vector< HGCRecHit > const &hits) const
std::unordered_map< int, dqm::reco::MonitorElement * > h_caloparticle_energyDifference
std::vector< dqm::reco::MonitorElement * > h_scoreDupl_caloparticle2trackster[numberOfValidationTypes_]
std::unordered_map< int, dqm::reco::MonitorElement * > h_numDup_caloparticle_phi_perlayer
std::vector< std::unordered_map< int, dqm::reco::MonitorElement * > > h_denom_simcluster_phi_perlayer
std::unordered_map< int, dqm::reco::MonitorElement * > h_num_layercl_phi_perlayer
std::vector< dqm::reco::MonitorElement * > h_score_trackster2bestCaloparticle[numberOfValidationTypes_]
std::shared_ptr< hgcal::RecHitTools > recHitTools_
std::unordered_map< int, dqm::reco::MonitorElement * > h_num_caloparticle_phi_perlayer
std::unordered_map< int, dqm::reco::MonitorElement * > h_caloparticle_nHitsInSimClusters_matchedtoRecHit
std::unordered_map< int, dqm::reco::MonitorElement * > h_caloparticle_eta_Zorigin
std::vector< dqm::reco::MonitorElement * > h_conttracksternum
void bookClusterHistos_ClusterLevel(DQMStore::IBooker &ibook, Histograms &histograms, unsigned int layers, std::vector< int > thicknesses, std::string pathtomatbudfile)
dqm::reco::MonitorElement * lastLayerFHzm
dqm::reco::MonitorElement * lastLayerFHzp
std::unordered_map< int, dqm::reco::MonitorElement * > h_caloparticle_firstlayer_matchedtoRecHit
std::unordered_map< std::string, dqm::reco::MonitorElement * > h_distancetoseedcell_perthickperlayer_eneweighted
std::unordered_map< int, dqm::reco::MonitorElement * > h_caloparticle_selfenergy
std::vector< dqm::reco::MonitorElement * > h_numMerge_trackster_phi[numberOfValidationTypes_]
std::vector< dqm::reco::MonitorElement * > h_trackster_energy
std::vector< std::unordered_map< int, dqm::reco::MonitorElement * > > h_numMerge_layercl_in_simcl_phi_perlayer
std::unordered_map< int, dqm::reco::MonitorElement * > h_denom_caloparticle_phi_perlayer
std::vector< dqm::reco::MonitorElement * > h_denom_trackster_en[numberOfValidationTypes_]
std::vector< dqm::reco::MonitorElement * > h_numDup_trackster_phi[numberOfValidationTypes_]
std::unordered_map< int, dqm::reco::MonitorElement * > h_sharedenergy_caloparticle2layercl_vs_eta_perlayer
std::vector< std::unordered_map< int, dqm::reco::MonitorElement * > > h_sharedenergy_simcluster2layercl_vs_phi_perlayer
std::vector< dqm::reco::MonitorElement * > h_energy_vs_score_caloparticle2bestTrackster[numberOfValidationTypes_]
std::vector< dqm::reco::MonitorElement * > h_numDup_trackster_eta[numberOfValidationTypes_]
std::vector< dqm::reco::MonitorElement * > h_energy_vs_score_trackster2bestCaloparticle2[numberOfValidationTypes_]
std::vector< dqm::reco::MonitorElement * > h_trackster_firstlayer
std::unordered_map< int, dqm::reco::MonitorElement * > h_caloparticle_nSimClusters
std::vector< dqm::reco::MonitorElement * > h_score_trackster2caloparticle[numberOfValidationTypes_]
std::vector< dqm::reco::MonitorElement * > h_sharedenergy_caloparticle2trackster_assoc[numberOfValidationTypes_]
std::vector< dqm::reco::MonitorElement * > h_trackster_layersnum
std::vector< dqm::reco::MonitorElement * > h_sharedenergy_caloparticle2trackster[numberOfValidationTypes_]
std::vector< dqm::reco::MonitorElement * > h_num_trackster_pt[numberOfValidationTypes_]
std::vector< Trackster > TracksterCollection
Definition: Trackster.h:254
std::unordered_map< int, dqm::reco::MonitorElement * > h_caloparticle_lastlayer
std::vector< dqm::reco::MonitorElement * > h_numDup_trackster_en[numberOfValidationTypes_]
void fill_simClusterAssociation_histos(const Histograms &histograms, const int count, edm::Handle< reco::CaloClusterCollection > clusterHandle, const reco::CaloClusterCollection &clusters, edm::Handle< std::vector< SimCluster >> simClusterHandle, std::vector< SimCluster > const &simClusters, std::vector< size_t > const &sCIndices, const std::vector< float > &mask, std::unordered_map< DetId, const unsigned int > const &hitMap, unsigned int layers, const ticl::RecoToSimCollectionWithSimClusters &recSimColl, const ticl::SimToRecoCollectionWithSimClusters &simRecColl, std::vector< HGCRecHit > const &hits) const
std::unordered_map< int, dqm::reco::MonitorElement * > h_cellAssociation_perlayer
std::unordered_map< int, dqm::reco::MonitorElement * > h_caloparticle_nHitsInSimClusters
std::unordered_map< std::string, dqm::reco::MonitorElement * > h_distancetoseedcell_perthickperlayer
void bookClusterHistos_CellLevel(DQMStore::IBooker &ibook, Histograms &histograms, unsigned int layers, std::vector< int > thicknesses)
std::unordered_map< int, dqm::reco::MonitorElement * > h_caloparticle_layersnum_matchedtoRecHit
double distance(const double x1, const double y1, const double x2, const double y2) const
std::vector< dqm::reco::MonitorElement * > h_num_caloparticle_phi[numberOfValidationTypes_]
std::vector< dqm::reco::MonitorElement * > h_trackster_y
std::unordered_map< int, dqm::reco::MonitorElement * > h_denom_layercl_phi_perlayer
std::unordered_map< int, dqm::reco::MonitorElement * > h_caloparticle_eta
std::vector< dqm::reco::MonitorElement * > h_sharedenergy_trackster2bestCaloparticle2[numberOfValidationTypes_]
void fill_generic_cluster_histos(const Histograms &histograms, const int count, edm::Handle< reco::CaloClusterCollection > clusterHandle, const reco::CaloClusterCollection &clusters, edm::Handle< std::vector< CaloParticle >> caloParticleHandle, std::vector< CaloParticle > const &cP, std::vector< size_t > const &cPIndices, std::vector< size_t > const &cPSelectedIndices, std::unordered_map< DetId, const unsigned int > const &, std::map< double, double > cummatbudg, unsigned int layers, std::vector< int > thicknesses, const ticl::RecoToSimCollection &recSimColl, const ticl::SimToRecoCollection &simRecColl, std::vector< HGCRecHit > const &hits) const
std::unordered_map< unsigned int, std::pair< float, float > > layerClusterIdToEnergyAndScore
DetId findmaxhit(const reco::CaloCluster &cluster, std::unordered_map< DetId, const unsigned int > const &, std::vector< HGCRecHit > const &hits) const
hgcal_clustering::Density Density
std::array< std::string, numberOfValidationTypes_ > valSuffix_
std::unordered_map< int, dqm::reco::MonitorElement * > h_caloparticle_sum_energy_layer
std::vector< std::unordered_map< int, dqm::reco::MonitorElement * > > h_clusternum_in_trackster_perlayer
std::unordered_map< int, dqm::reco::MonitorElement * > h_caloparticle_nHits_matched_energy
std::vector< std::unordered_map< int, dqm::reco::MonitorElement * > > h_sharedenergy_simcluster2layercl_perlayer
std::vector< std::unordered_map< int, dqm::reco::MonitorElement * > > h_sharedenergy_layercl2simcluster_perlayer
std::unordered_map< int, dqm::reco::MonitorElement * > h_score_layercl2caloparticle_perlayer
std::unordered_map< int, dqm::reco::MonitorElement * > h_score_caloparticle2layercl_perlayer
std::vector< std::unordered_map< int, dqm::reco::MonitorElement * > > h_score_layercl2simcluster_perlayer
std::vector< std::unordered_map< int, dqm::reco::MonitorElement * > > h_num_simcluster_eta_perlayer
std::vector< dqm::reco::MonitorElement * > h_denom_caloparticle_eta[numberOfValidationTypes_]
void fill_trackster_histos(const Histograms &histograms, const int count, const ticl::TracksterCollection &tracksters, const reco::CaloClusterCollection &layerClusters, const ticl::TracksterCollection &simTSs, const ticl::TracksterCollection &simTSs_fromCP, const std::map< unsigned int, std::vector< unsigned int >> &cpToSc_SimTrackstersMap, std::vector< SimCluster > const &sC, const edm::ProductID &cPHandle_id, std::vector< CaloParticle > const &cP, std::vector< size_t > const &cPIndices, std::vector< size_t > const &cPSelectedIndices, std::unordered_map< DetId, const unsigned int > const &hitMap, unsigned int layers, std::vector< HGCRecHit > const &hits, bool mapsFound, const edm::Handle< TracksterToTracksterMap > &trackstersToSimTrackstersByLCsMapH, const edm::Handle< TracksterToTracksterMap > &simTrackstersToTrackstersByLCsMapH, const edm::Handle< TracksterToTracksterMap > &trackstersToSimTrackstersFromCPsByLCsMapH, const edm::Handle< TracksterToTracksterMap > &simTrackstersFromCPsToTrackstersByLCsMapH, const edm::Handle< TracksterToTracksterMap > &trackstersToSimTrackstersByHitsMapH, const edm::Handle< TracksterToTracksterMap > &simTrackstersToTrackstersByHitsMapH, const edm::Handle< TracksterToTracksterMap > &trackstersToSimTrackstersFromCPsByHitsMapH, const edm::Handle< TracksterToTracksterMap > &simTrackstersFromCPsToTrackstersByHitsMapH, const SimClusterToCaloParticleMap &scToCpMap) const
void fill_simCluster_histos(const Histograms &histograms, std::vector< SimCluster > const &simClusters, unsigned int layers, std::vector< int > thicknesses) const
HGVHistoProducerAlgo(const edm::ParameterSet &pset)
std::vector< dqm::reco::MonitorElement * > h_numMerge_trackster_en[numberOfValidationTypes_]
std::vector< std::unordered_map< int, dqm::reco::MonitorElement * > > h_num_simcluster_phi_perlayer
std::unordered_map< int, dqm::reco::MonitorElement * > h_numMerge_layercl_eta_perlayer
std::unordered_map< int, dqm::reco::MonitorElement * > h_caloparticle_fractions
std::unordered_map< int, dqm::reco::MonitorElement * > h_numMerge_layercl_phi_perlayer
std::vector< dqm::reco::MonitorElement * > h_denom_caloparticle_pt[numberOfValidationTypes_]
std::vector< dqm::reco::MonitorElement * > h_trackster_pt
std::vector< dqm::reco::MonitorElement * > h_num_trackster_eta[numberOfValidationTypes_]