CMS 3D CMS Logo

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