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 
112  //For SimClusters
113  std::unordered_map<int, dqm::reco::MonitorElement*> h_simclusternum_perlayer;
114  std::unordered_map<int, dqm::reco::MonitorElement*> h_simclusternum_perthick;
117 
118  std::vector<std::unordered_map<int, dqm::reco::MonitorElement*>> h_denom_layercl_in_simcl_eta_perlayer;
119  std::vector<std::unordered_map<int, dqm::reco::MonitorElement*>> h_denom_layercl_in_simcl_phi_perlayer;
120  std::vector<std::unordered_map<int, dqm::reco::MonitorElement*>> h_score_layercl2simcluster_perlayer;
121  std::vector<std::unordered_map<int, dqm::reco::MonitorElement*>> h_sharedenergy_layercl2simcluster_perlayer;
122  std::vector<std::unordered_map<int, dqm::reco::MonitorElement*>> h_energy_vs_score_layercl2simcluster_perlayer;
123  std::vector<std::unordered_map<int, dqm::reco::MonitorElement*>> h_num_layercl_in_simcl_eta_perlayer;
124  std::vector<std::unordered_map<int, dqm::reco::MonitorElement*>> h_num_layercl_in_simcl_phi_perlayer;
125  std::vector<std::unordered_map<int, dqm::reco::MonitorElement*>> h_numMerge_layercl_in_simcl_eta_perlayer;
126  std::vector<std::unordered_map<int, dqm::reco::MonitorElement*>> h_numMerge_layercl_in_simcl_phi_perlayer;
127  std::vector<std::unordered_map<int, dqm::reco::MonitorElement*>> h_sharedenergy_layercl2simcluster_vs_eta_perlayer;
128  std::vector<std::unordered_map<int, dqm::reco::MonitorElement*>> h_sharedenergy_layercl2simcluster_vs_phi_perlayer;
129  std::vector<std::unordered_map<int, dqm::reco::MonitorElement*>> h_denom_simcluster_eta_perlayer;
130  std::vector<std::unordered_map<int, dqm::reco::MonitorElement*>> h_denom_simcluster_phi_perlayer;
131  std::vector<std::unordered_map<int, dqm::reco::MonitorElement*>> h_score_simcluster2layercl_perlayer;
132  std::vector<std::unordered_map<int, dqm::reco::MonitorElement*>> h_sharedenergy_simcluster2layercl_perlayer;
133  std::vector<std::unordered_map<int, dqm::reco::MonitorElement*>> h_energy_vs_score_simcluster2layercl_perlayer;
134  std::vector<std::unordered_map<int, dqm::reco::MonitorElement*>> h_num_simcluster_eta_perlayer;
135  std::vector<std::unordered_map<int, dqm::reco::MonitorElement*>> h_num_simcluster_phi_perlayer;
136  std::vector<std::unordered_map<int, dqm::reco::MonitorElement*>> h_numDup_simcluster_eta_perlayer;
137  std::vector<std::unordered_map<int, dqm::reco::MonitorElement*>> h_numDup_simcluster_phi_perlayer;
138  std::vector<std::unordered_map<int, dqm::reco::MonitorElement*>> h_sharedenergy_simcluster2layercl_vs_eta_perlayer;
139  std::vector<std::unordered_map<int, dqm::reco::MonitorElement*>> h_sharedenergy_simcluster2layercl_vs_phi_perlayer;
140 
141  //For Tracksters
142  std::vector<dqm::reco::MonitorElement*> h_score_trackster2caloparticle;
143  std::vector<dqm::reco::MonitorElement*> h_score_caloparticle2trackster;
144  std::vector<dqm::reco::MonitorElement*> h_energy_vs_score_trackster2caloparticle;
145  std::vector<dqm::reco::MonitorElement*> h_energy_vs_score_caloparticle2trackster;
146  std::vector<dqm::reco::MonitorElement*> h_num_trackster_eta;
147  std::vector<dqm::reco::MonitorElement*> h_num_trackster_phi;
148  std::vector<dqm::reco::MonitorElement*> h_numMerge_trackster_eta;
149  std::vector<dqm::reco::MonitorElement*> h_numMerge_trackster_phi;
150  std::vector<dqm::reco::MonitorElement*> h_sharedenergy_trackster2caloparticle;
151  std::vector<dqm::reco::MonitorElement*> h_sharedenergy_caloparticle2trackster;
152  std::vector<dqm::reco::MonitorElement*> h_sharedenergy_caloparticle2trackster_assoc;
153  std::vector<dqm::reco::MonitorElement*> h_sharedenergy_trackster2caloparticle_vs_eta;
154  std::vector<dqm::reco::MonitorElement*> h_sharedenergy_trackster2caloparticle_vs_phi;
155  std::vector<dqm::reco::MonitorElement*> h_sharedenergy_caloparticle2trackster_vs_eta;
156  std::vector<dqm::reco::MonitorElement*> h_sharedenergy_caloparticle2trackster_vs_phi;
157  std::vector<dqm::reco::MonitorElement*> h_denom_trackster_eta;
158  std::vector<dqm::reco::MonitorElement*> h_denom_trackster_phi;
159  std::vector<dqm::reco::MonitorElement*> h_numEff_caloparticle_eta;
160  std::vector<dqm::reco::MonitorElement*> h_numEff_caloparticle_phi;
161  std::vector<dqm::reco::MonitorElement*> h_num_caloparticle_eta;
162  std::vector<dqm::reco::MonitorElement*> h_num_caloparticle_phi;
163  std::vector<dqm::reco::MonitorElement*> h_numDup_trackster_eta;
164  std::vector<dqm::reco::MonitorElement*> h_numDup_trackster_phi;
165  std::vector<dqm::reco::MonitorElement*> h_denom_caloparticle_eta;
166  std::vector<dqm::reco::MonitorElement*> h_denom_caloparticle_phi;
167  std::vector<dqm::reco::MonitorElement*> h_tracksternum;
168  std::vector<dqm::reco::MonitorElement*> h_conttracksternum;
169  std::vector<dqm::reco::MonitorElement*> h_nonconttracksternum;
170  std::vector<dqm::reco::MonitorElement*> h_clusternum_in_trackster;
171  std::vector<std::unordered_map<int, dqm::reco::MonitorElement*>> h_clusternum_in_trackster_perlayer;
172  std::vector<dqm::reco::MonitorElement*> h_multiplicityOfLCinTST;
173  std::vector<dqm::reco::MonitorElement*> h_multiplicity_numberOfEventsHistogram;
174  std::vector<dqm::reco::MonitorElement*> h_multiplicity_zminus_numberOfEventsHistogram;
175  std::vector<dqm::reco::MonitorElement*> h_multiplicity_zplus_numberOfEventsHistogram;
176  std::vector<dqm::reco::MonitorElement*> h_multiplicityOfLCinTST_vs_layercluster;
177  std::vector<dqm::reco::MonitorElement*> h_multiplicityOfLCinTST_vs_layercluster_zminus;
178  std::vector<dqm::reco::MonitorElement*> h_multiplicityOfLCinTST_vs_layercluster_zplus;
179  std::vector<dqm::reco::MonitorElement*> h_multiplicityOfLCinTST_vs_layerclusterenergy;
180  std::vector<dqm::reco::MonitorElement*> h_clusternum_in_trackster_vs_layer;
181  std::vector<dqm::reco::MonitorElement*> h_trackster_pt;
182  std::vector<dqm::reco::MonitorElement*> h_trackster_eta;
183  std::vector<dqm::reco::MonitorElement*> h_trackster_phi;
184  std::vector<dqm::reco::MonitorElement*> h_trackster_energy;
185  std::vector<dqm::reco::MonitorElement*> h_trackster_x;
186  std::vector<dqm::reco::MonitorElement*> h_trackster_y;
187  std::vector<dqm::reco::MonitorElement*> h_trackster_z;
188  std::vector<dqm::reco::MonitorElement*> h_trackster_firstlayer;
189  std::vector<dqm::reco::MonitorElement*> h_trackster_lastlayer;
190  std::vector<dqm::reco::MonitorElement*> h_trackster_layersnum;
191 };
192 
194 
196 public:
199 
202 
204 
206  void bookCaloParticleHistos(DQMStore::IBooker& ibook, Histograms& histograms, int pdgid, unsigned int layers);
207 
210  unsigned int layers,
211  std::vector<int> thicknesses);
212 
215  unsigned int layers,
216  std::vector<int> thicknesses);
217 
220  unsigned int layers,
221  std::vector<int> thicknesses,
222  std::string pathtomatbudfile);
223 
225 
228  unsigned int layers,
229  std::vector<int> thicknesses);
230 
233 
237  edm::Handle<std::vector<CaloParticle>> caloParticleHandle,
238  std::vector<CaloParticle> const& cP,
239  std::vector<size_t> const& cPIndices,
240  std::vector<size_t> const& cPSelectedIndices,
241  std::unordered_map<DetId, const HGCRecHit*> const&,
242  unsigned int layers,
243  const hgcal::RecoToSimCollection& recSimColl,
244  const hgcal::SimToRecoCollection& simRecColl) const;
246  int count,
249  edm::Handle<std::vector<SimCluster>> simClusterHandle,
250  std::vector<SimCluster> const& simClusters,
251  std::vector<size_t> const& sCIndices,
252  const std::vector<float>& mask,
253  std::unordered_map<DetId, const HGCRecHit*> const&,
254  unsigned int layers,
256  const hgcal::SimToRecoCollectionWithSimClusters& simRecColl) const;
258  int count,
259  const ticl::TracksterCollection& Tracksters,
260  const reco::CaloClusterCollection& layerClusters,
261  const ticl::TracksterCollection& simTSFromCP,
262  std::vector<CaloParticle> const& cP,
263  std::vector<size_t> const& cPIndices,
264  std::vector<size_t> const& cPSelectedIndices,
265  std::unordered_map<DetId, const HGCRecHit*> const&,
266  unsigned int layers) const;
267  void fill_info_histos(const Histograms& histograms, unsigned int layers) const;
269  int pdgid,
270  const CaloParticle& caloparticle,
271  std::vector<SimVertex> const& simVertices,
272  unsigned int layers,
273  std::unordered_map<DetId, const HGCRecHit*> const&) const;
275  int count,
278  const Density& densities,
279  edm::Handle<std::vector<CaloParticle>> caloParticleHandle,
280  std::vector<CaloParticle> const& cP,
281  std::vector<size_t> const& cPIndices,
282  std::vector<size_t> const& cPSelectedIndices,
283  std::unordered_map<DetId, const HGCRecHit*> const&,
284  std::map<double, double> cummatbudg,
285  unsigned int layers,
286  std::vector<int> thicknesses,
287  const hgcal::RecoToSimCollection& recSimColl,
288  const hgcal::SimToRecoCollection& simRecColl) const;
290  std::vector<SimCluster> const& simClusters,
291  unsigned int layers,
292  std::vector<int> thicknesses) const;
294  int count,
297  edm::Handle<std::vector<SimCluster>> simClusterHandle,
298  std::vector<SimCluster> const& simClusters,
299  std::vector<size_t> const& sCIndices,
300  const std::vector<float>& mask,
301  std::unordered_map<DetId, const HGCRecHit*> const& hitMap,
302  unsigned int layers,
304  const hgcal::SimToRecoCollectionWithSimClusters& simRecColl) const;
305  void fill_cluster_histos(const Histograms& histograms, int count, const reco::CaloCluster& cluster) const;
307  int count,
308  const ticl::TracksterCollection& Tracksters,
309  const reco::CaloClusterCollection& layerClusters,
310  const ticl::TracksterCollection& simTSFromCP,
311  std::vector<CaloParticle> const& cP,
312  std::vector<size_t> const& cPIndices,
313  std::vector<size_t> const& cPSelectedIndices,
314  std::unordered_map<DetId, const HGCRecHit*> const&,
315  unsigned int layers) const;
316  double distance2(const double x1, const double y1, const double x2, const double y2) const;
317  double distance(const double x1, const double y1, const double x2, const double y2) const;
318 
319  void setRecHitTools(std::shared_ptr<hgcal::RecHitTools> recHitTools);
320 
321  DetId findmaxhit(const reco::CaloCluster& cluster, std::unordered_map<DetId, const HGCRecHit*> const&) const;
322 
324  bool operator==(const detIdInfoInCluster& o) const { return clusterId == o.clusterId; };
325  long unsigned int clusterId;
326  float fraction;
327  };
328 
330  bool operator==(const detIdInfoInTrackster& o) const { return tracksterId == o.tracksterId; };
331  unsigned int tracksterId;
332  long unsigned int clusterId;
333  float fraction;
334  };
335 
337  unsigned int caloParticleId;
338  float energy = 0;
339  std::vector<std::pair<DetId, float>> hits_and_fractions;
340  std::unordered_map<int, std::pair<float, float>> layerClusterIdToEnergyAndScore;
341  };
342 
343 private:
344  double getEta(double eta) const;
345 
346  std::shared_ptr<hgcal::RecHitTools> recHitTools_;
347 
348  //private data members
349  double minEta_, maxEta_;
350  int nintEta_;
352  double minEne_, maxEne_;
353  int nintEne_;
354  double minPt_, maxPt_;
355  int nintPt_;
356  double minPhi_, maxPhi_;
357  int nintPhi_;
413  double minX_, maxX_;
414  int nintX_;
415  double minY_, maxY_;
416  int nintY_;
417  double minZ_, maxZ_;
418  int nintZ_;
419 };
420 
421 #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
dqm::legacy::MonitorElement MonitorElement
std::vector< dqm::reco::MonitorElement * > h_numEff_caloparticle_phi
std::unordered_map< int, dqm::reco::MonitorElement * > h_caloparticle_firstlayer
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_multiplicityOfLCinTST_vs_layerclusterenergy
std::unordered_map< int, dqm::reco::MonitorElement * > h_clusternum_perlayer
void tracksters_to_SimTracksters(const Histograms &histograms, int count, const ticl::TracksterCollection &Tracksters, const reco::CaloClusterCollection &layerClusters, const ticl::TracksterCollection &simTSFromCP, 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< 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< 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_trackster_phi
std::vector< dqm::reco::MonitorElement * > h_sharedenergy_trackster2caloparticle_vs_eta
std::unordered_map< int, dqm::reco::MonitorElement * > h_energy_vs_score_layercl2caloparticle_perlayer
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_multiplicity_zplus_numberOfEventsHistogram
std::unordered_map< int, dqm::reco::MonitorElement * > h_caloparticle_energy
dqm::reco::MonitorElement * maxlayerzp
std::vector< dqm::reco::MonitorElement * > h_score_caloparticle2trackster
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_denom_caloparticle_phi
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_caloparticle2trackster
std::unordered_map< int, dqm::reco::MonitorElement * > h_sharedenergy_layercl2caloparticle_perlayer
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< dqm::reco::MonitorElement * > h_denom_trackster_eta
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::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::vector< dqm::reco::MonitorElement * > h_energy_vs_score_trackster2caloparticle
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< std::unordered_map< int, dqm::reco::MonitorElement * > > h_score_simcluster2layercl_perlayer
std::vector< dqm::reco::MonitorElement * > h_cluster_eta
std::vector< dqm::reco::MonitorElement * > h_numDup_trackster_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::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::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::unordered_map< int, std::pair< float, float > > layerClusterIdToEnergyAndScore
std::vector< dqm::reco::MonitorElement * > h_sharedenergy_trackster2caloparticle_vs_phi
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::vector< dqm::reco::MonitorElement * > h_numMerge_trackster_phi
std::vector< dqm::reco::MonitorElement * > h_score_trackster2caloparticle
std::unordered_map< int, dqm::reco::MonitorElement * > h_caloparticle_phi
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< dqm::reco::MonitorElement * > h_num_trackster_eta
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 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_sharedenergy_caloparticle2trackster_assoc
std::vector< dqm::reco::MonitorElement * > h_num_caloparticle_phi
double getEta(double eta) const
std::vector< dqm::reco::MonitorElement * > h_numMerge_trackster_eta
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_sharedenergy_caloparticle2trackster_vs_phi
double distance2(const double x1, const double y1, const double x2, const double y2) const
std::vector< dqm::reco::MonitorElement * > h_numEff_caloparticle_eta
std::vector< dqm::reco::MonitorElement * > h_multiplicityOfLCinTST_vs_layercluster_zminus
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::vector< dqm::reco::MonitorElement * > h_denom_caloparticle_eta
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
bool operator==(const detIdInfoInCluster &o) const
std::shared_ptr< hgcal::RecHitTools > recHitTools_
std::unordered_map< int, dqm::reco::MonitorElement * > h_num_caloparticle_phi_perlayer
void fill_simClusterAssociation_histos(const Histograms &histograms, 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::unordered_map< int, dqm::reco::MonitorElement * > h_caloparticle_nHitsInSimClusters_matchedtoRecHit
void fill_trackster_histos(const Histograms &histograms, int count, const ticl::TracksterCollection &Tracksters, const reco::CaloClusterCollection &layerClusters, const ticl::TracksterCollection &simTSFromCP, 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_eta_Zorigin
std::vector< dqm::reco::MonitorElement * > h_conttracksternum
void fill_cluster_histos(const Histograms &histograms, int count, const reco::CaloCluster &cluster) const
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_vs_eta
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_trackster_energy
std::vector< std::unordered_map< int, dqm::reco::MonitorElement * > > h_numMerge_layercl_in_simcl_phi_perlayer
void fill_generic_cluster_histos(const Histograms &histograms, 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
std::unordered_map< int, dqm::reco::MonitorElement * > h_denom_caloparticle_phi_perlayer
std::vector< dqm::reco::MonitorElement * > h_sharedenergy_trackster2caloparticle
std::vector< dqm::reco::MonitorElement * > h_numDup_trackster_phi
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_trackster_firstlayer
std::unordered_map< int, dqm::reco::MonitorElement * > h_caloparticle_nSimClusters
void bookTracksterCPLinkingHistos(DQMStore::IBooker &ibook, Histograms &histograms)
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< Trackster > TracksterCollection
Definition: Trackster.h:203
std::vector< dqm::reco::MonitorElement * > h_energy_vs_score_caloparticle2trackster
std::vector< dqm::reco::MonitorElement * > h_num_trackster_phi
std::unordered_map< int, dqm::reco::MonitorElement * > h_caloparticle_lastlayer
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
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
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::vector< dqm::reco::MonitorElement * > h_denom_trackster_phi
std::unordered_map< int, dqm::reco::MonitorElement * > h_score_caloparticle2layercl_perlayer
void layerClusters_to_SimClusters(const Histograms &histograms, 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
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_numMerge_layercl_phi_perlayer
std::vector< dqm::reco::MonitorElement * > h_num_caloparticle_eta
std::vector< dqm::reco::MonitorElement * > h_trackster_pt