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 
30 
32 
34  //Info
35  //To be able to spot any issues both in -z and +z a layer id was introduced
36  //that spans from 0 to 103 for hgcal_v9 geometry. The mapping for hgcal_v9 is:
37  //-z: 0->51
38  //+z: 52->103
39  //We will pick the numbers below from RecHitTools just to avoid future problems
40  dqm::reco::MonitorElement* lastLayerEEzm; // last layer of EE -z
41  dqm::reco::MonitorElement* lastLayerFHzm; // last layer of FH -z
42  dqm::reco::MonitorElement* maxlayerzm; // last layer of BH -z
43  dqm::reco::MonitorElement* lastLayerEEzp; // last layer of EE +z
44  dqm::reco::MonitorElement* lastLayerFHzp; // last layer of FH +z
45  dqm::reco::MonitorElement* maxlayerzp; // last layer of BH +z
46 
47  //1D
48  std::vector<dqm::reco::MonitorElement*> h_cluster_eta;
49  std::vector<dqm::reco::MonitorElement*> h_mixedhitscluster_zminus;
50  std::vector<dqm::reco::MonitorElement*> h_mixedhitscluster_zplus;
51  std::vector<dqm::reco::MonitorElement*> h_energyclustered_zminus;
52  std::vector<dqm::reco::MonitorElement*> h_energyclustered_zplus;
53  std::vector<dqm::reco::MonitorElement*> h_longdepthbarycentre_zminus;
54  std::vector<dqm::reco::MonitorElement*> h_longdepthbarycentre_zplus;
55 
56  std::unordered_map<int, dqm::reco::MonitorElement*> h_clusternum_perlayer;
57  std::unordered_map<int, dqm::reco::MonitorElement*> h_energyclustered_perlayer;
58  std::unordered_map<int, dqm::reco::MonitorElement*> h_score_layercl2caloparticle_perlayer;
59  std::unordered_map<int, dqm::reco::MonitorElement*> h_score_caloparticle2layercl_perlayer;
60  std::unordered_map<int, dqm::reco::MonitorElement*> h_energy_vs_score_caloparticle2layercl_perlayer;
61  std::unordered_map<int, dqm::reco::MonitorElement*> h_energy_vs_score_layercl2caloparticle_perlayer;
62  std::unordered_map<int, dqm::reco::MonitorElement*> h_sharedenergy_caloparticle2layercl_perlayer;
63  std::unordered_map<int, dqm::reco::MonitorElement*> h_sharedenergy_caloparticle2layercl_vs_eta_perlayer;
64  std::unordered_map<int, dqm::reco::MonitorElement*> h_sharedenergy_caloparticle2layercl_vs_phi_perlayer;
65  std::unordered_map<int, dqm::reco::MonitorElement*> h_sharedenergy_layercl2caloparticle_perlayer;
66  std::unordered_map<int, dqm::reco::MonitorElement*> h_sharedenergy_layercl2caloparticle_vs_eta_perlayer;
67  std::unordered_map<int, dqm::reco::MonitorElement*> h_sharedenergy_layercl2caloparticle_vs_phi_perlayer;
68  std::unordered_map<int, dqm::reco::MonitorElement*> h_num_caloparticle_eta_perlayer;
69  std::unordered_map<int, dqm::reco::MonitorElement*> h_numDup_caloparticle_eta_perlayer;
70  std::unordered_map<int, dqm::reco::MonitorElement*> h_denom_caloparticle_eta_perlayer;
71  std::unordered_map<int, dqm::reco::MonitorElement*> h_num_caloparticle_phi_perlayer;
72  std::unordered_map<int, dqm::reco::MonitorElement*> h_numDup_caloparticle_phi_perlayer;
73  std::unordered_map<int, dqm::reco::MonitorElement*> h_denom_caloparticle_phi_perlayer;
74  std::unordered_map<int, dqm::reco::MonitorElement*> h_num_layercl_eta_perlayer;
75  std::unordered_map<int, dqm::reco::MonitorElement*> h_numMerge_layercl_eta_perlayer;
76  std::unordered_map<int, dqm::reco::MonitorElement*> h_denom_layercl_eta_perlayer;
77  std::unordered_map<int, dqm::reco::MonitorElement*> h_num_layercl_phi_perlayer;
78  std::unordered_map<int, dqm::reco::MonitorElement*> h_numMerge_layercl_phi_perlayer;
79  std::unordered_map<int, dqm::reco::MonitorElement*> h_denom_layercl_phi_perlayer;
80  std::unordered_map<int, dqm::reco::MonitorElement*> h_cellAssociation_perlayer;
81  std::unordered_map<int, dqm::reco::MonitorElement*> h_clusternum_perthick;
82  std::unordered_map<int, dqm::reco::MonitorElement*> h_cellsenedens_perthick;
83 
84  std::unordered_map<std::string, dqm::reco::MonitorElement*> h_cellsnum_perthickperlayer;
85  std::unordered_map<std::string, dqm::reco::MonitorElement*> h_distancetoseedcell_perthickperlayer;
86  std::unordered_map<std::string, dqm::reco::MonitorElement*> h_distancetoseedcell_perthickperlayer_eneweighted;
87  std::unordered_map<std::string, dqm::reco::MonitorElement*> h_distancetomaxcell_perthickperlayer;
88  std::unordered_map<std::string, dqm::reco::MonitorElement*> h_distancetomaxcell_perthickperlayer_eneweighted;
89  std::unordered_map<std::string, dqm::reco::MonitorElement*> h_distancebetseedandmaxcell_perthickperlayer;
90  std::unordered_map<std::string, dqm::reco::MonitorElement*>
92 
93  std::unordered_map<int, dqm::reco::MonitorElement*> h_caloparticle_eta;
94  std::unordered_map<int, dqm::reco::MonitorElement*> h_caloparticle_eta_Zorigin;
95  std::unordered_map<int, dqm::reco::MonitorElement*> h_caloparticle_energy;
96  std::unordered_map<int, dqm::reco::MonitorElement*> h_caloparticle_selfenergy;
97  std::unordered_map<int, dqm::reco::MonitorElement*> h_caloparticle_energyDifference;
98  std::unordered_map<int, dqm::reco::MonitorElement*> h_caloparticle_pt;
99  std::unordered_map<int, dqm::reco::MonitorElement*> h_caloparticle_phi;
100  std::unordered_map<int, dqm::reco::MonitorElement*> h_caloparticle_nSimClusters;
101  std::unordered_map<int, dqm::reco::MonitorElement*> h_caloparticle_nHitsInSimClusters;
102  std::unordered_map<int, dqm::reco::MonitorElement*> h_caloparticle_firstlayer;
103  std::unordered_map<int, dqm::reco::MonitorElement*> h_caloparticle_lastlayer;
104  std::unordered_map<int, dqm::reco::MonitorElement*> h_caloparticle_layersnum;
105  std::unordered_map<int, dqm::reco::MonitorElement*> h_caloparticle_nHitsInSimClusters_matchedtoRecHit;
106  std::unordered_map<int, dqm::reco::MonitorElement*> h_caloparticle_nHits_matched_energy;
107  std::unordered_map<int, dqm::reco::MonitorElement*> h_caloparticle_nHits_matched_energy_layer;
108  std::unordered_map<int, dqm::reco::MonitorElement*> h_caloparticle_nHits_matched_energy_layer_1SimCl;
109  std::unordered_map<int, dqm::reco::MonitorElement*> h_caloparticle_sum_energy_layer;
110  std::unordered_map<int, dqm::reco::MonitorElement*> h_caloparticle_firstlayer_matchedtoRecHit;
111  std::unordered_map<int, dqm::reco::MonitorElement*> h_caloparticle_lastlayer_matchedtoRecHit;
112  std::unordered_map<int, dqm::reco::MonitorElement*> h_caloparticle_layersnum_matchedtoRecHit;
113  std::unordered_map<int, dqm::reco::MonitorElement*> h_caloparticle_fractions, h_caloparticle_fractions_weight;
114 
115  //For SimClusters
116  std::unordered_map<int, dqm::reco::MonitorElement*> h_simclusternum_perlayer;
117  std::unordered_map<int, dqm::reco::MonitorElement*> h_simclusternum_perthick;
120 
121  std::vector<std::unordered_map<int, dqm::reco::MonitorElement*>> h_denom_layercl_in_simcl_eta_perlayer;
122  std::vector<std::unordered_map<int, dqm::reco::MonitorElement*>> h_denom_layercl_in_simcl_phi_perlayer;
123  std::vector<std::unordered_map<int, dqm::reco::MonitorElement*>> h_score_layercl2simcluster_perlayer;
124  std::vector<std::unordered_map<int, dqm::reco::MonitorElement*>> h_sharedenergy_layercl2simcluster_perlayer;
125  std::vector<std::unordered_map<int, dqm::reco::MonitorElement*>> h_energy_vs_score_layercl2simcluster_perlayer;
126  std::vector<std::unordered_map<int, dqm::reco::MonitorElement*>> h_num_layercl_in_simcl_eta_perlayer;
127  std::vector<std::unordered_map<int, dqm::reco::MonitorElement*>> h_num_layercl_in_simcl_phi_perlayer;
128  std::vector<std::unordered_map<int, dqm::reco::MonitorElement*>> h_numMerge_layercl_in_simcl_eta_perlayer;
129  std::vector<std::unordered_map<int, dqm::reco::MonitorElement*>> h_numMerge_layercl_in_simcl_phi_perlayer;
130  std::vector<std::unordered_map<int, dqm::reco::MonitorElement*>> h_sharedenergy_layercl2simcluster_vs_eta_perlayer;
131  std::vector<std::unordered_map<int, dqm::reco::MonitorElement*>> h_sharedenergy_layercl2simcluster_vs_phi_perlayer;
132  std::vector<std::unordered_map<int, dqm::reco::MonitorElement*>> h_denom_simcluster_eta_perlayer;
133  std::vector<std::unordered_map<int, dqm::reco::MonitorElement*>> h_denom_simcluster_phi_perlayer;
134  std::vector<std::unordered_map<int, dqm::reco::MonitorElement*>> h_score_simcluster2layercl_perlayer;
135  std::vector<std::unordered_map<int, dqm::reco::MonitorElement*>> h_sharedenergy_simcluster2layercl_perlayer;
136  std::vector<std::unordered_map<int, dqm::reco::MonitorElement*>> h_energy_vs_score_simcluster2layercl_perlayer;
137  std::vector<std::unordered_map<int, dqm::reco::MonitorElement*>> h_num_simcluster_eta_perlayer;
138  std::vector<std::unordered_map<int, dqm::reco::MonitorElement*>> h_num_simcluster_phi_perlayer;
139  std::vector<std::unordered_map<int, dqm::reco::MonitorElement*>> h_numDup_simcluster_eta_perlayer;
140  std::vector<std::unordered_map<int, dqm::reco::MonitorElement*>> h_numDup_simcluster_phi_perlayer;
141  std::vector<std::unordered_map<int, dqm::reco::MonitorElement*>> h_sharedenergy_simcluster2layercl_vs_eta_perlayer;
142  std::vector<std::unordered_map<int, dqm::reco::MonitorElement*>> h_sharedenergy_simcluster2layercl_vs_phi_perlayer;
143 
144  // For Tracksters
145  // Linking and Pattern Recognition
146  std::vector<dqm::reco::MonitorElement*> h_score_trackster2caloparticle[2];
147  std::vector<dqm::reco::MonitorElement*> h_score_trackster2bestCaloparticle[2];
148  std::vector<dqm::reco::MonitorElement*> h_score_trackster2bestCaloparticle2[2];
149  std::vector<dqm::reco::MonitorElement*> h_score_caloparticle2trackster[2];
150  std::vector<dqm::reco::MonitorElement*> h_scorePur_caloparticle2trackster[2];
151  std::vector<dqm::reco::MonitorElement*> h_scoreDupl_caloparticle2trackster[2];
152  std::vector<dqm::reco::MonitorElement*> h_energy_vs_score_trackster2caloparticle[2];
153  std::vector<dqm::reco::MonitorElement*> h_energy_vs_score_trackster2bestCaloparticle[2];
154  std::vector<dqm::reco::MonitorElement*> h_energy_vs_score_trackster2bestCaloparticle2[2];
155  std::vector<dqm::reco::MonitorElement*> h_energy_vs_score_caloparticle2trackster[2];
156  std::vector<dqm::reco::MonitorElement*> h_energy_vs_score_caloparticle2bestTrackster[2];
157  std::vector<dqm::reco::MonitorElement*> h_energy_vs_score_caloparticle2bestTrackster2[2];
158  std::vector<dqm::reco::MonitorElement*> h_num_trackster_eta[2];
159  std::vector<dqm::reco::MonitorElement*> h_num_trackster_phi[2];
160  std::vector<dqm::reco::MonitorElement*> h_num_trackster_en[2];
161  std::vector<dqm::reco::MonitorElement*> h_num_trackster_pt[2];
162  std::vector<dqm::reco::MonitorElement*> h_numMerge_trackster_eta[2];
163  std::vector<dqm::reco::MonitorElement*> h_numMerge_trackster_phi[2];
164  std::vector<dqm::reco::MonitorElement*> h_numMerge_trackster_en[2];
165  std::vector<dqm::reco::MonitorElement*> h_numMerge_trackster_pt[2];
166  std::vector<dqm::reco::MonitorElement*> h_sharedenergy_trackster2caloparticle[2];
167  std::vector<dqm::reco::MonitorElement*> h_sharedenergy_trackster2bestCaloparticle[2];
168  std::vector<dqm::reco::MonitorElement*> h_sharedenergy_trackster2bestCaloparticle2[2];
169  std::vector<dqm::reco::MonitorElement*> h_sharedenergy_caloparticle2trackster[2];
170  std::vector<dqm::reco::MonitorElement*> h_sharedenergy_caloparticle2trackster_assoc[2];
171  std::vector<dqm::reco::MonitorElement*> h_sharedenergy_caloparticle2trackster_assoc2[2];
172  std::vector<dqm::reco::MonitorElement*> h_sharedenergy_trackster2bestCaloparticle_vs_eta[2];
173  std::vector<dqm::reco::MonitorElement*> h_sharedenergy_trackster2bestCaloparticle_vs_phi[2];
174  std::vector<dqm::reco::MonitorElement*> h_sharedenergy_caloparticle2trackster_assoc_vs_eta[2];
175  std::vector<dqm::reco::MonitorElement*> h_sharedenergy_caloparticle2trackster_assoc_vs_phi[2];
176  std::vector<dqm::reco::MonitorElement*> h_denom_trackster_eta[2];
177  std::vector<dqm::reco::MonitorElement*> h_denom_trackster_phi[2];
178  std::vector<dqm::reco::MonitorElement*> h_denom_trackster_en[2];
179  std::vector<dqm::reco::MonitorElement*> h_denom_trackster_pt[2];
180  std::vector<dqm::reco::MonitorElement*> h_numEff_caloparticle_eta[2];
181  std::vector<dqm::reco::MonitorElement*> h_numEff_caloparticle_phi[2];
182  std::vector<dqm::reco::MonitorElement*> h_numEff_caloparticle_en[2];
183  std::vector<dqm::reco::MonitorElement*> h_numEff_caloparticle_pt[2];
184  std::vector<dqm::reco::MonitorElement*> h_num_caloparticle_eta[2];
185  std::vector<dqm::reco::MonitorElement*> h_num_caloparticle_phi[2];
186  std::vector<dqm::reco::MonitorElement*> h_num_caloparticle_en[2];
187  std::vector<dqm::reco::MonitorElement*> h_num_caloparticle_pt[2];
188  std::vector<dqm::reco::MonitorElement*> h_numDup_trackster_eta[2];
189  std::vector<dqm::reco::MonitorElement*> h_numDup_trackster_phi[2];
190  std::vector<dqm::reco::MonitorElement*> h_numDup_trackster_en[2];
191  std::vector<dqm::reco::MonitorElement*> h_numDup_trackster_pt[2];
192  std::vector<dqm::reco::MonitorElement*> h_denom_caloparticle_eta[2];
193  std::vector<dqm::reco::MonitorElement*> h_denom_caloparticle_phi[2];
194  std::vector<dqm::reco::MonitorElement*> h_denom_caloparticle_en[2];
195  std::vector<dqm::reco::MonitorElement*> h_denom_caloparticle_pt[2];
196  // Generic histograms
197  std::vector<dqm::reco::MonitorElement*> h_tracksternum;
198  std::vector<dqm::reco::MonitorElement*> h_conttracksternum;
199  std::vector<dqm::reco::MonitorElement*> h_nonconttracksternum;
200  std::vector<dqm::reco::MonitorElement*> h_clusternum_in_trackster;
201  std::vector<std::unordered_map<int, dqm::reco::MonitorElement*>> h_clusternum_in_trackster_perlayer;
202  std::vector<dqm::reco::MonitorElement*> h_multiplicityOfLCinTST;
203  std::vector<dqm::reco::MonitorElement*> h_multiplicity_numberOfEventsHistogram;
204  std::vector<dqm::reco::MonitorElement*> h_multiplicity_zminus_numberOfEventsHistogram;
205  std::vector<dqm::reco::MonitorElement*> h_multiplicity_zplus_numberOfEventsHistogram;
206  std::vector<dqm::reco::MonitorElement*> h_multiplicityOfLCinTST_vs_layercluster;
207  std::vector<dqm::reco::MonitorElement*> h_multiplicityOfLCinTST_vs_layercluster_zminus;
208  std::vector<dqm::reco::MonitorElement*> h_multiplicityOfLCinTST_vs_layercluster_zplus;
209  std::vector<dqm::reco::MonitorElement*> h_multiplicityOfLCinTST_vs_layerclusterenergy;
210  std::vector<dqm::reco::MonitorElement*> h_clusternum_in_trackster_vs_layer;
211  std::vector<dqm::reco::MonitorElement*> h_trackster_pt;
212  std::vector<dqm::reco::MonitorElement*> h_trackster_eta;
213  std::vector<dqm::reco::MonitorElement*> h_trackster_phi;
214  std::vector<dqm::reco::MonitorElement*> h_trackster_energy;
215  std::vector<dqm::reco::MonitorElement*> h_trackster_x;
216  std::vector<dqm::reco::MonitorElement*> h_trackster_y;
217  std::vector<dqm::reco::MonitorElement*> h_trackster_z;
218  std::vector<dqm::reco::MonitorElement*> h_trackster_firstlayer;
219  std::vector<dqm::reco::MonitorElement*> h_trackster_lastlayer;
220  std::vector<dqm::reco::MonitorElement*> h_trackster_layersnum;
221 };
222 
224 
226 public:
229 
232 
234 
236  void bookCaloParticleHistos(DQMStore::IBooker& ibook, Histograms& histograms, int pdgid, unsigned int layers);
237 
240  unsigned int layers,
241  std::vector<int> thicknesses);
242 
245  unsigned int layers,
246  std::vector<int> thicknesses);
247 
250  unsigned int layers,
251  std::vector<int> thicknesses,
252  std::string pathtomatbudfile);
253 
255 
258  unsigned int layers,
259  std::vector<int> thicknesses);
260 
264 
268  edm::Handle<std::vector<CaloParticle>> caloParticleHandle,
269  std::vector<CaloParticle> const& cP,
270  std::vector<size_t> const& cPIndices,
271  std::vector<size_t> const& cPSelectedIndices,
272  std::unordered_map<DetId, const HGCRecHit*> const&,
273  unsigned int layers,
274  const hgcal::RecoToSimCollection& recSimColl,
275  const hgcal::SimToRecoCollection& simRecColl) const;
277  const int count,
280  edm::Handle<std::vector<SimCluster>> simClusterHandle,
281  std::vector<SimCluster> const& simClusters,
282  std::vector<size_t> const& sCIndices,
283  const std::vector<float>& mask,
284  std::unordered_map<DetId, const HGCRecHit*> const&,
285  unsigned int layers,
287  const hgcal::SimToRecoCollectionWithSimClusters& simRecColl) const;
289  const int count,
290  const ticl::TracksterCollection& Tracksters,
292  const ticl::TracksterCollection& simTS,
293  const validationType valType,
294  const ticl::TracksterCollection& simTS_fromCP,
295  std::map<uint, std::vector<uint>> const& simTrackstersMap,
296  std::vector<SimCluster> const& sC,
297  const edm::ProductID& cPHandle_id,
298  std::vector<CaloParticle> const& cP,
299  std::vector<size_t> const& cPIndices,
300  std::vector<size_t> const& cPSelectedIndices,
301  std::unordered_map<DetId, const HGCRecHit*> const&,
302  unsigned int layers) const;
303  void fill_info_histos(const Histograms& histograms, unsigned int layers) const;
305  int pdgid,
306  const CaloParticle& caloparticle,
307  std::vector<SimVertex> const& simVertices,
308  unsigned int layers,
309  std::unordered_map<DetId, const HGCRecHit*> const&) const;
311  const int count,
314  edm::Handle<std::vector<CaloParticle>> caloParticleHandle,
315  std::vector<CaloParticle> const& cP,
316  std::vector<size_t> const& cPIndices,
317  std::vector<size_t> const& cPSelectedIndices,
318  std::unordered_map<DetId, const HGCRecHit*> const&,
319  std::map<double, double> cummatbudg,
320  unsigned int layers,
321  std::vector<int> thicknesses,
322  const hgcal::RecoToSimCollection& recSimColl,
323  const hgcal::SimToRecoCollection& simRecColl) const;
325  std::vector<SimCluster> const& simClusters,
326  unsigned int layers,
327  std::vector<int> thicknesses) const;
329  const int count,
332  edm::Handle<std::vector<SimCluster>> simClusterHandle,
333  std::vector<SimCluster> const& simClusters,
334  std::vector<size_t> const& sCIndices,
335  const std::vector<float>& mask,
336  std::unordered_map<DetId, const HGCRecHit*> const& hitMap,
337  unsigned int layers,
339  const hgcal::SimToRecoCollectionWithSimClusters& simRecColl) const;
340  void fill_cluster_histos(const Histograms& histograms, const int count, const reco::CaloCluster& cluster) const;
342  const int count,
343  const ticl::TracksterCollection& Tracksters,
345  const ticl::TracksterCollection& simTS,
346  const ticl::TracksterCollection& simTS_fromCP,
347  std::map<uint, std::vector<uint>> const& simTrackstersMap,
348  std::vector<SimCluster> const& sC,
349  const edm::ProductID& cPHandle_id,
350  std::vector<CaloParticle> const& cP,
351  std::vector<size_t> const& cPIndices,
352  std::vector<size_t> const& cPSelectedIndices,
353  std::unordered_map<DetId, const HGCRecHit*> const&,
354  unsigned int layers) const;
355  double distance2(const double x1, const double y1, const double x2, const double y2) const;
356  double distance(const double x1, const double y1, const double x2, const double y2) const;
357 
358  void setRecHitTools(std::shared_ptr<hgcal::RecHitTools> recHitTools);
359 
360  DetId findmaxhit(const reco::CaloCluster& cluster, std::unordered_map<DetId, const HGCRecHit*> const&) const;
361 
363  bool operator==(const detIdInfoInCluster& o) const { return clusterId == o.clusterId; };
364  long unsigned int clusterId;
365  float fraction;
366  };
367 
369  bool operator==(const detIdInfoInTrackster& o) const { return tracksterId == o.tracksterId; };
370  unsigned int tracksterId;
371  long unsigned int clusterId;
372  float fraction;
373  };
374 
376  unsigned int caloParticleId;
377  float energy = 0;
378  std::vector<std::pair<DetId, float>> hits_and_fractions;
379  std::unordered_map<unsigned int, std::pair<float, float>> layerClusterIdToEnergyAndScore;
380  };
381 
382 private:
383  double getEta(double eta) const;
384 
385  std::shared_ptr<hgcal::RecHitTools> recHitTools_;
386 
387  //private data members
388  double minEta_, maxEta_;
389  int nintEta_;
391  double minEne_, maxEne_;
392  int nintEne_;
393  double minPt_, maxPt_;
394  int nintPt_;
395  double minPhi_, maxPhi_;
396  int nintPhi_;
452  double minX_, maxX_;
453  int nintX_;
454  double minY_, maxY_;
455  int nintY_;
456  double minZ_, maxZ_;
457  int nintZ_;
458 };
459 
460 #endif
std::vector< std::unordered_map< int, dqm::reco::MonitorElement * > > h_numDup_simcluster_eta_perlayer
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_longdepthbarycentre_zplus
std::vector< dqm::reco::MonitorElement * > h_num_trackster_pt[2]
dqm::legacy::MonitorElement MonitorElement
std::unordered_map< int, dqm::reco::MonitorElement * > h_caloparticle_firstlayer
std::vector< dqm::reco::MonitorElement * > h_score_trackster2bestCaloparticle2[2]
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_num_trackster_en[2]
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_numEff_caloparticle_phi[2]
std::vector< dqm::reco::MonitorElement * > h_tracksternum
std::vector< dqm::reco::MonitorElement * > h_numMerge_trackster_pt[2]
std::unordered_map< int, dqm::reco::MonitorElement * > h_denom_caloparticle_eta_perlayer
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 HGCRecHit *> const &hitMap, unsigned int layers, const hgcal::RecoToSimCollectionWithSimClusters &recSimColl, const hgcal::SimToRecoCollectionWithSimClusters &simRecColl) const
std::vector< dqm::reco::MonitorElement * > h_multiplicityOfLCinTST_vs_layercluster
std::vector< dqm::reco::MonitorElement * > h_trackster_x
std::vector< dqm::reco::MonitorElement * > h_trackster_eta
std::vector< dqm::reco::MonitorElement * > h_numDup_trackster_en[2]
std::vector< dqm::reco::MonitorElement * > h_trackster_phi
std::vector< dqm::reco::MonitorElement * > h_denom_caloparticle_phi[2]
std::unordered_map< int, dqm::reco::MonitorElement * > h_energy_vs_score_layercl2caloparticle_perlayer
std::vector< dqm::reco::MonitorElement * > h_scorePur_caloparticle2trackster[2]
std::unordered_map< int, dqm::reco::MonitorElement * > h_simclusternum_perlayer
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_denom_trackster_en[2]
std::vector< dqm::reco::MonitorElement * > h_multiplicity_zplus_numberOfEventsHistogram
std::unordered_map< int, dqm::reco::MonitorElement * > h_caloparticle_energy
dqm::reco::MonitorElement * maxlayerzp
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
std::vector< dqm::reco::MonitorElement * > h_mixedhitscluster_zplus
std::unordered_map< int, dqm::reco::MonitorElement * > h_num_caloparticle_eta_perlayer
std::vector< dqm::reco::MonitorElement * > h_sharedenergy_trackster2bestCaloparticle[2]
std::unordered_map< int, dqm::reco::MonitorElement * > h_sharedenergy_layercl2caloparticle_perlayer
std::vector< dqm::reco::MonitorElement * > h_denom_caloparticle_en[2]
std::vector< dqm::reco::MonitorElement * > h_multiplicity_zminus_numberOfEventsHistogram
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
void bookClusterHistos_LCtoCP_association(DQMStore::IBooker &ibook, Histograms &histograms, unsigned int layers)
std::vector< dqm::reco::MonitorElement * > h_energy_vs_score_trackster2bestCaloparticle2[2]
HGVHistoProducerAlgoHistograms Histograms
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::unordered_map< int, dqm::reco::MonitorElement * > h_numDup_caloparticle_eta_perlayer
std::unordered_map< int, dqm::reco::MonitorElement * > h_cellsenedens_perthick
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_denom_caloparticle_pt[2]
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_num_trackster_eta[2]
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_score_caloparticle2trackster[2]
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::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::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)
DetId findmaxhit(const reco::CaloCluster &cluster, std::unordered_map< DetId, const HGCRecHit *> const &) const
std::vector< dqm::reco::MonitorElement * > h_num_caloparticle_en[2]
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 HGCRecHit *> const &) const
std::vector< dqm::reco::MonitorElement * > h_denom_caloparticle_eta[2]
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< std::unordered_map< int, dqm::reco::MonitorElement * > > h_energy_vs_score_layercl2simcluster_perlayer
std::unordered_map< int, dqm::reco::MonitorElement * > h_clusternum_perthick
std::unordered_map< int, dqm::reco::MonitorElement * > h_sharedenergy_caloparticle2layercl_perlayer
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_numEff_caloparticle_eta[2]
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
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 HGCRecHit *> const &, unsigned int layers, const hgcal::RecoToSimCollectionWithSimClusters &recSimColl, const hgcal::SimToRecoCollectionWithSimClusters &simRecColl) const
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)
std::vector< dqm::reco::MonitorElement * > h_denom_trackster_phi[2]
std::vector< dqm::reco::MonitorElement * > h_numDup_trackster_eta[2]
bool operator==(const detIdInfoInCluster &o) const
void bookTracksterSTSHistos(DQMStore::IBooker &ibook, Histograms &histograms, const validationType valType)
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 HGCRecHit *> const &, std::map< double, double > cummatbudg, unsigned int layers, std::vector< int > thicknesses, const hgcal::RecoToSimCollection &recSimColl, const hgcal::SimToRecoCollection &simRecColl) 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
std::vector< dqm::reco::MonitorElement * > h_denom_trackster_pt[2]
std::vector< dqm::reco::MonitorElement * > h_sharedenergy_caloparticle2trackster_assoc[2]
double getEta(double eta) const
std::vector< dqm::reco::MonitorElement * > h_numMerge_trackster_phi[2]
std::vector< dqm::reco::MonitorElement * > h_multiplicityOfLCinTST_vs_layercluster_zminus
std::vector< dqm::reco::MonitorElement * > h_numMerge_trackster_en[2]
std::vector< dqm::reco::MonitorElement * > h_score_trackster2caloparticle[2]
std::vector< dqm::reco::MonitorElement * > h_numDup_trackster_pt[2]
Definition: DetId.h:17
std::vector< dqm::reco::MonitorElement * > h_trackster_z
std::unordered_map< int, dqm::reco::MonitorElement * > h_caloparticle_energyDifference
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
void fill_trackster_histos(const Histograms &histograms, const int count, const ticl::TracksterCollection &Tracksters, const reco::CaloClusterCollection &layerClusters, const ticl::TracksterCollection &simTS, const ticl::TracksterCollection &simTS_fromCP, std::map< uint, std::vector< uint >> const &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 HGCRecHit *> const &, unsigned int layers) const
std::vector< dqm::reco::MonitorElement * > h_energy_vs_score_caloparticle2bestTrackster[2]
std::vector< dqm::reco::MonitorElement * > h_num_caloparticle_phi[2]
std::shared_ptr< hgcal::RecHitTools > recHitTools_
std::vector< dqm::reco::MonitorElement * > h_denom_trackster_eta[2]
std::vector< dqm::reco::MonitorElement * > h_energy_vs_score_caloparticle2trackster[2]
std::unordered_map< int, dqm::reco::MonitorElement * > h_num_caloparticle_phi_perlayer
std::vector< dqm::reco::MonitorElement * > h_sharedenergy_caloparticle2trackster_assoc_vs_phi[2]
void tracksters_to_SimTracksters(const Histograms &histograms, const int count, const ticl::TracksterCollection &Tracksters, const reco::CaloClusterCollection &layerClusters, const ticl::TracksterCollection &simTS, const validationType valType, const ticl::TracksterCollection &simTS_fromCP, std::map< uint, std::vector< uint >> const &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 HGCRecHit *> const &, unsigned int layers) const
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_sharedenergy_trackster2bestCaloparticle2[2]
std::vector< dqm::reco::MonitorElement * > h_num_trackster_phi[2]
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::vector< dqm::reco::MonitorElement * > h_sharedenergy_caloparticle2trackster_assoc_vs_eta[2]
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_sharedenergy_caloparticle2trackster_assoc2[2]
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::vector< dqm::reco::MonitorElement * > h_energy_vs_score_trackster2bestCaloparticle[2]
std::vector< dqm::reco::MonitorElement * > h_numDup_trackster_phi[2]
std::unordered_map< int, dqm::reco::MonitorElement * > h_denom_caloparticle_phi_perlayer
std::vector< dqm::reco::MonitorElement * > h_numMerge_trackster_eta[2]
std::vector< dqm::reco::MonitorElement * > h_numEff_caloparticle_en[2]
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_num_caloparticle_eta[2]
std::vector< dqm::reco::MonitorElement * > h_trackster_firstlayer
std::unordered_map< int, dqm::reco::MonitorElement * > h_caloparticle_nSimClusters
std::vector< dqm::reco::MonitorElement * > h_trackster_layersnum
std::vector< dqm::reco::MonitorElement * > h_energy_vs_score_trackster2caloparticle[2]
std::vector< dqm::reco::MonitorElement * > h_sharedenergy_trackster2bestCaloparticle_vs_eta[2]
std::vector< Trackster > TracksterCollection
Definition: Trackster.h:199
std::vector< dqm::reco::MonitorElement * > h_numEff_caloparticle_pt[2]
std::unordered_map< int, dqm::reco::MonitorElement * > h_caloparticle_lastlayer
std::unordered_map< int, dqm::reco::MonitorElement * > h_cellAssociation_perlayer
std::vector< dqm::reco::MonitorElement * > h_energy_vs_score_caloparticle2bestTrackster2[2]
std::unordered_map< int, dqm::reco::MonitorElement * > h_caloparticle_nHitsInSimClusters
std::unordered_map< std::string, dqm::reco::MonitorElement * > h_distancetoseedcell_perthickperlayer
std::vector< dqm::reco::MonitorElement * > h_score_trackster2bestCaloparticle[2]
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
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 HGCRecHit *> const &, unsigned int layers, const hgcal::RecoToSimCollection &recSimColl, const hgcal::SimToRecoCollection &simRecColl) const
double distance(const double x1, const double y1, const double x2, const double y2) const
std::vector< dqm::reco::MonitorElement * > h_trackster_y
std::unordered_map< int, dqm::reco::MonitorElement * > h_denom_layercl_phi_perlayer
std::vector< dqm::reco::MonitorElement * > h_sharedenergy_caloparticle2trackster[2]
std::unordered_map< int, dqm::reco::MonitorElement * > h_caloparticle_eta
std::vector< dqm::reco::MonitorElement * > h_sharedenergy_trackster2caloparticle[2]
std::unordered_map< unsigned int, std::pair< float, float > > layerClusterIdToEnergyAndScore
hgcal_clustering::Density Density
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< dqm::reco::MonitorElement * > h_num_caloparticle_pt[2]
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
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< 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::vector< dqm::reco::MonitorElement * > h_scoreDupl_caloparticle2trackster[2]
std::unordered_map< int, dqm::reco::MonitorElement * > h_numMerge_layercl_phi_perlayer
std::vector< dqm::reco::MonitorElement * > h_trackster_pt
std::vector< dqm::reco::MonitorElement * > h_sharedenergy_trackster2bestCaloparticle_vs_phi[2]