|
|
Go to the documentation of this file. 1 #ifndef Validation_HGCalValidation_HGVHistoProducerAlgo_h
2 #define Validation_HGCalValidation_HGVHistoProducerAlgo_h
10 #include <unordered_map>
88 std::unordered_map<std::string, dqm::reco::MonitorElement*>
209 std::vector<int> thicknesses);
214 std::vector<int> thicknesses);
219 std::vector<int> thicknesses,
227 std::vector<int> thicknesses);
234 edm::Handle<std::vector<CaloParticle>> caloParticleHandle,
235 std::vector<CaloParticle>
const& cP,
236 std::vector<size_t>
const& cPIndices,
237 std::vector<size_t>
const& cPSelectedIndices,
238 std::unordered_map<DetId, const HGCRecHit*>
const&,
246 edm::Handle<std::vector<SimCluster>> simClusterHandle,
248 std::vector<size_t>
const& sCIndices,
249 const std::vector<float>& mask,
250 std::unordered_map<DetId, const HGCRecHit*>
const&,
256 const std::vector<reco::HGCalMultiCluster>& multiClusters,
257 std::vector<CaloParticle>
const& cP,
258 std::vector<size_t>
const& cPIndices,
259 std::vector<size_t>
const& cPSelectedIndices,
260 std::unordered_map<DetId, const HGCRecHit*>
const&,
261 unsigned int layers)
const;
268 std::unordered_map<DetId, const HGCRecHit*>
const&)
const;
274 edm::Handle<std::vector<CaloParticle>> caloParticleHandle,
275 std::vector<CaloParticle>
const& cP,
276 std::vector<size_t>
const& cPIndices,
277 std::vector<size_t>
const& cPSelectedIndices,
278 std::unordered_map<DetId, const HGCRecHit*>
const&,
279 std::map<double, double> cummatbudg,
281 std::vector<int> thicknesses,
287 std::vector<int> thicknesses)
const;
292 edm::Handle<std::vector<SimCluster>> simClusterHandle,
294 std::vector<size_t>
const& sCIndices,
295 const std::vector<float>& mask,
296 std::unordered_map<DetId, const HGCRecHit*>
const& hitMap,
303 const std::vector<reco::HGCalMultiCluster>& multiClusters,
304 std::vector<CaloParticle>
const& cP,
305 std::vector<size_t>
const& cPIndices,
306 std::vector<size_t>
const& cPSelectedIndices,
307 std::unordered_map<DetId, const HGCRecHit*>
const&,
308 unsigned int layers)
const;
309 double distance2(
const double x1,
const double y1,
const double x2,
const double y2)
const;
310 double distance(
const double x1,
const double y1,
const double x2,
const double y2)
const;
312 void setRecHitTools(std::shared_ptr<hgcal::RecHitTools> recHitTools);
std::vector< dqm::reco::MonitorElement * > h_energyclustered_zplus
void bookSimClusterAssociationHistos(DQMStore::IBooker &ibook, Histograms &histograms, unsigned int layers, std::vector< int > thicknesses)
std::vector< dqm::reco::MonitorElement * > h_mixedhitscluster_zplus
double minTotNsimClsperthick_
std::vector< dqm::reco::MonitorElement * > h_denom_caloparticle_eta
std::vector< dqm::reco::MonitorElement * > h_denom_caloparticle_phi
std::unordered_map< int, dqm::reco::MonitorElement * > h_caloparticle_energyDifference
std::vector< dqm::reco::MonitorElement * > h_clusternum_in_multicluster
std::vector< std::unordered_map< int, dqm::reco::MonitorElement * > > h_score_layercl2simcluster_perlayer
void bookInfo(DQMStore::IBooker &ibook, Histograms &histograms)
std::unordered_map< std::string, dqm::reco::MonitorElement * > h_distancetoseedcell_perthickperlayer
std::unordered_map< int, dqm::reco::MonitorElement * > h_denom_caloparticle_eta_perlayer
int nintTotNcellsperthickperlayer_
std::unordered_map< int, dqm::reco::MonitorElement * > h_caloparticle_firstlayer
unsigned int caloParticleId
double maxClEnepermultiplicity_
bool operator==(const detIdInfoInMultiCluster &o) const
int nintDisSeedToMaxperthickperlayer_
std::unordered_map< int, dqm::reco::MonitorElement * > h_sharedenergy_layercl2caloparticle_perlayer
double minMixedHitsCluster_
std::unordered_map< int, dqm::reco::MonitorElement * > h_caloparticle_nHitsInSimClusters
void bookClusterHistos_ClusterLevel(DQMStore::IBooker &ibook, Histograms &histograms, unsigned int layers, std::vector< int > thicknesses, std::string pathtomatbudfile)
std::vector< dqm::reco::MonitorElement * > h_longdepthbarycentre_zplus
std::unordered_map< int, dqm::reco::MonitorElement * > h_energy_vs_score_caloparticle2layercl_perlayer
std::unordered_map< int, dqm::reco::MonitorElement * > h_caloparticle_nHits_matched_energy_layer
double maxMixedHitsCluster_
std::vector< dqm::reco::MonitorElement * > h_mixedhitscluster_zminus
std::vector< dqm::reco::MonitorElement * > h_numMerge_multicl_phi
int nintClEnepermultiplicity_
void fill_simcluster_histos(const Histograms &histograms, std::vector< SimCluster > const &simclusters, unsigned int layers, std::vector< int > thicknesses) const
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
void bookCaloParticleHistos(DQMStore::IBooker &ibook, Histograms &histograms, int pdgid, unsigned int layers)
std::vector< std::pair< DetId, float > > hits_and_fractions
std::vector< std::unordered_map< int, dqm::reco::MonitorElement * > > h_energy_vs_score_layercl2simcluster_perlayer
double minDisToMaxperthickperlayer_
std::vector< std::unordered_map< int, dqm::reco::MonitorElement * > > h_numMerge_layercl_in_simcl_phi_perlayer
std::unordered_map< int, dqm::reco::MonitorElement * > h_numMerge_layercl_phi_perlayer
std::vector< dqm::reco::MonitorElement * > h_multicluster_phi
double maxTotNsimClsperlay_
std::unordered_map< int, dqm::reco::MonitorElement * > h_numDup_caloparticle_phi_perlayer
std::unordered_map< int, dqm::reco::MonitorElement * > h_caloparticle_nHitsInSimClusters_matchedtoRecHit
std::unordered_map< int, dqm::reco::MonitorElement * > h_caloparticle_layersnum
void bookClusterHistos_LCtoCP_association(DQMStore::IBooker &ibook, Histograms &histograms, unsigned int layers)
std::unordered_map< int, dqm::reco::MonitorElement * > h_caloparticle_eta_Zorigin
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::unordered_map< std::string, dqm::reco::MonitorElement * > h_distancebetseedandmaxcellvsclusterenergy_perthickperlayer
dqm::reco::MonitorElement * maxlayerzm
std::vector< dqm::reco::MonitorElement * > h_contmulticlusternum
std::vector< dqm::reco::MonitorElement * > h_multicluster_z
std::vector< dqm::reco::MonitorElement * > h_num_caloparticle_phi
double maxTotNClsperthick_
std::vector< dqm::reco::MonitorElement * > h_score_multicl2caloparticle
std::vector< dqm::reco::MonitorElement * > h_multicluster_energy
std::unordered_map< int, dqm::reco::MonitorElement * > h_cellsenedens_perthick
std::vector< dqm::reco::MonitorElement * > h_score_caloparticle2multicl
HGVHistoProducerAlgo(const edm::ParameterSet &pset)
std::unordered_map< int, dqm::reco::MonitorElement * > h_caloparticle_phi
std::unordered_map< int, dqm::reco::MonitorElement * > h_num_caloparticle_phi_perlayer
std::unordered_map< int, dqm::reco::MonitorElement * > h_caloparticle_selfenergy
dqm::reco::MonitorElement * lastLayerFHzm
std::unordered_map< int, dqm::reco::MonitorElement * > h_caloparticle_pt
int nintTotNsimClsperthick_
dqm::reco::MonitorElement * lastLayerFHzp
std::vector< dqm::reco::MonitorElement * > h_num_multicl_phi
std::unordered_map< int, dqm::reco::MonitorElement * > h_caloparticle_nSimClusters
std::vector< dqm::reco::MonitorElement * > h_sharedenergy_caloparticle2multicl
std::vector< std::unordered_map< int, dqm::reco::MonitorElement * > > h_numDup_simcluster_eta_perlayer
std::unordered_map< int, dqm::reco::MonitorElement * > h_caloparticle_eta
std::unordered_map< int, dqm::reco::MonitorElement * > h_score_layercl2caloparticle_perlayer
int nintMCLSharedEneFrac_
int nintTotNsimClsperlay_
std::vector< std::unordered_map< int, dqm::reco::MonitorElement * > > h_sharedenergy_layercl2simcluster_vs_eta_perlayer
std::unordered_map< int, dqm::reco::MonitorElement * > h_caloparticle_lastlayer
int nintDisToMaxperthickperlayerenewei_
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< std::unordered_map< int, dqm::reco::MonitorElement * > > h_sharedenergy_layercl2simcluster_perlayer
std::vector< std::unordered_map< int, dqm::reco::MonitorElement * > > h_clusternum_in_multicluster_perlayer
dqm::reco::MonitorElement * lastLayerEEzm
double minTotNsimClsperlay_
double maxDisToMaxperthickperlayerenewei_
std::unordered_map< int, dqm::reco::MonitorElement * > h_clusternum_perlayer
std::vector< dqm::reco::MonitorElement * > h_multiclusternum
void setRecHitTools(std::shared_ptr< hgcal::RecHitTools > recHitTools)
std::vector< std::unordered_map< int, dqm::reco::MonitorElement * > > h_num_layercl_in_simcl_eta_perlayer
std::vector< dqm::reco::MonitorElement * > h_multiplicityOfLCinMCL
std::unordered_map< int, dqm::reco::MonitorElement * > h_denom_layercl_eta_perlayer
std::unordered_map< int, dqm::reco::MonitorElement * > h_numDup_caloparticle_eta_perlayer
std::unordered_map< int, dqm::reco::MonitorElement * > h_sharedenergy_caloparticle2layercl_vs_eta_perlayer
dqm::legacy::MonitorElement MonitorElement
std::vector< dqm::reco::MonitorElement * > h_clusternum_in_multicluster_vs_layer
int nintDisToSeedperthickperlayer_
std::unordered_map< int, dqm::reco::MonitorElement * > h_sharedenergy_caloparticle2layercl_perlayer
std::map< DetId, float > Density
std::vector< dqm::reco::MonitorElement * > h_multicluster_pt
double minMixedHitsSimCluster_
void fill_simclusterassosiation_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
double maxTotNsimClsperthick_
std::unordered_map< int, dqm::reco::MonitorElement * > h_numMerge_layercl_eta_perlayer
std::vector< std::unordered_map< int, dqm::reco::MonitorElement * > > h_denom_simcluster_phi_perlayer
std::vector< CaloCluster > CaloClusterCollection
collection of CaloCluster objects
std::vector< dqm::reco::MonitorElement * > h_sharedenergy_multicl2caloparticle_vs_phi
std::vector< std::unordered_map< int, dqm::reco::MonitorElement * > > h_num_simcluster_phi_perlayer
std::unordered_map< int, dqm::reco::MonitorElement * > h_cellAssociation_perlayer
int nintMixedHitsSimCluster_
std::vector< dqm::reco::MonitorElement * > h_multiplicity_zplus_numberOfEventsHistogram
double maxDisToSeedperthickperlayerenewei_
dqm::legacy::DQMStore DQMStore
double getEta(double eta) const
double minClEneperthickperlayer_
double minTotNClsinMCLsperlayer_
std::unordered_map< int, dqm::reco::MonitorElement * > h_caloparticle_firstlayer_matchedtoRecHit
double minClEnepermultiplicity_
double maxTotNClsinMCLsperlayer_
long unsigned int clusterId
std::vector< std::unordered_map< int, dqm::reco::MonitorElement * > > h_numMerge_layercl_in_simcl_eta_perlayer
std::unordered_map< int, dqm::reco::MonitorElement * > h_num_layercl_phi_perlayer
std::unordered_map< std::string, dqm::reco::MonitorElement * > h_distancetomaxcell_perthickperlayer_eneweighted
void fill_cluster_histos(const Histograms &histograms, int count, const reco::CaloCluster &cluster) const
std::unordered_map< int, dqm::reco::MonitorElement * > h_simclusternum_perlayer
double maxDisToSeedperthickperlayer_
std::shared_ptr< hgcal::RecHitTools > recHitTools_
std::unordered_map< int, dqm::reco::MonitorElement * > h_caloparticle_nHits_matched_energy
std::unordered_map< int, dqm::reco::MonitorElement * > h_score_caloparticle2layercl_perlayer
double minDisToSeedperthickperlayer_
std::unordered_map< int, dqm::reco::MonitorElement * > h_denom_caloparticle_phi_perlayer
dqm::reco::MonitorElement * maxlayerzp
double distance(const double x1, const double y1, const double x2, const double y2) const
int nintCellsEneDensperthick_
std::vector< dqm::reco::MonitorElement * > h_energy_vs_score_caloparticle2multicl
std::vector< dqm::reco::MonitorElement * > h_sharedenergy_multicl2caloparticle
std::vector< dqm::reco::MonitorElement * > h_multiplicityOfLCinMCL_vs_layercluster_zplus
std::vector< std::unordered_map< int, dqm::reco::MonitorElement * > > h_sharedenergy_layercl2simcluster_vs_phi_perlayer
double maxClEneperthickperlayer_
std::unordered_map< int, dqm::reco::MonitorElement * > h_num_caloparticle_eta_perlayer
std::unordered_map< int, dqm::reco::MonitorElement * > h_sharedenergy_layercl2caloparticle_vs_phi_perlayer
std::unordered_map< int, dqm::reco::MonitorElement * > h_caloparticle_layersnum_matchedtoRecHit
std::unordered_map< int, dqm::reco::MonitorElement * > h_caloparticle_nHits_matched_energy_layer_1SimCl
std::vector< dqm::reco::MonitorElement * > h_multiplicity_zminus_numberOfEventsHistogram
double maxMCLSharedEneFrac_
std::unordered_map< int, dqm::reco::MonitorElement * > h_caloparticle_sum_energy_layer
std::vector< std::unordered_map< int, dqm::reco::MonitorElement * > > h_numDup_simcluster_phi_perlayer
int nintTotNClsinMCLsperlayer_
std::vector< std::unordered_map< int, dqm::reco::MonitorElement * > > h_num_simcluster_eta_perlayer
int nintClEneperthickperlayer_
std::vector< dqm::reco::MonitorElement * > h_longdepthbarycentre_zminus
std::unordered_map< int, dqm::reco::MonitorElement * > h_denom_layercl_phi_perlayer
std::vector< dqm::reco::MonitorElement * > h_multicluster_lastlayer
std::vector< dqm::reco::MonitorElement * > h_noncontmulticlusternum
dqm::reco::MonitorElement * h_mixedhitssimcluster_zminus
std::vector< dqm::reco::MonitorElement * > h_num_caloparticle_eta
long unsigned int clusterId
std::vector< dqm::reco::MonitorElement * > h_denom_multicl_phi
std::vector< dqm::reco::MonitorElement * > h_numMerge_multicl_eta
std::vector< dqm::reco::MonitorElement * > h_energyclustered_zminus
std::unordered_map< int, dqm::reco::MonitorElement * > h_simclusternum_perthick
int nintDisToMaxperthickperlayer_
std::vector< dqm::reco::MonitorElement * > h_sharedenergy_caloparticle2multicl_vs_phi
std::vector< std::unordered_map< int, dqm::reco::MonitorElement * > > h_denom_layercl_in_simcl_eta_perlayer
std::vector< dqm::reco::MonitorElement * > h_numDup_multicl_eta
int nintMixedHitsCluster_
std::unordered_map< int, dqm::reco::MonitorElement * > h_caloparticle_energy
std::vector< dqm::reco::MonitorElement * > h_multiplicityOfLCinMCL_vs_layerclusterenergy
std::vector< dqm::reco::MonitorElement * > h_multiplicityOfLCinMCL_vs_layercluster
std::vector< std::unordered_map< int, dqm::reco::MonitorElement * > > h_denom_simcluster_eta_perlayer
std::vector< dqm::reco::MonitorElement * > h_multicluster_x
double maxTotNcellsperthickperlayer_
void bookMultiClusterHistos(DQMStore::IBooker &ibook, Histograms &histograms, unsigned int layers)
double maxDisSeedToMaxperthickperlayer_
std::unordered_map< int, dqm::reco::MonitorElement * > h_energy_vs_score_layercl2caloparticle_perlayer
double maxCellsEneDensperthick_
dqm::reco::MonitorElement * lastLayerEEzp
std::unordered_map< std::string, dqm::reco::MonitorElement * > h_distancebetseedandmaxcell_perthickperlayer
std::vector< dqm::reco::MonitorElement * > h_cluster_eta
double minDisToMaxperthickperlayerenewei_
std::vector< dqm::reco::MonitorElement * > h_multicluster_y
std::vector< dqm::reco::MonitorElement * > h_num_multicl_eta
std::vector< dqm::reco::MonitorElement * > h_energy_vs_score_multicl2caloparticle
std::vector< dqm::reco::MonitorElement * > h_sharedenergy_caloparticle2multicl_assoc
double minCellsEneDensperthick_
std::unordered_map< int, std::pair< float, float > > layerClusterIdToEnergyAndScore
std::vector< std::unordered_map< int, dqm::reco::MonitorElement * > > h_score_simcluster2layercl_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_clusternum_perthick
DetId findmaxhit(const reco::CaloCluster &cluster, std::unordered_map< DetId, const HGCRecHit * > const &) const
std::vector< std::unordered_map< int, dqm::reco::MonitorElement * > > h_energy_vs_score_simcluster2layercl_perlayer
std::unordered_map< int, dqm::reco::MonitorElement * > h_sharedenergy_caloparticle2layercl_vs_phi_perlayer
std::vector< dqm::reco::MonitorElement * > h_multicluster_firstlayer
double minTotNcellsperthickperlayer_
std::vector< dqm::reco::MonitorElement * > h_denom_multicl_eta
std::vector< dqm::reco::MonitorElement * > h_multicluster_eta
std::unordered_map< int, dqm::reco::MonitorElement * > h_sharedenergy_layercl2caloparticle_vs_eta_perlayer
double distance2(const double x1, const double y1, const double x2, const double y2) const
void multiClusters_to_CaloParticles(const Histograms &histograms, int count, const std::vector< reco::HGCalMultiCluster > &multiClusters, 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
double maxDisToMaxperthickperlayer_
dqm::reco::MonitorElement * h_mixedhitssimcluster_zplus
std::vector< std::unordered_map< int, dqm::reco::MonitorElement * > > h_denom_layercl_in_simcl_phi_perlayer
std::vector< dqm::reco::MonitorElement * > h_multiplicityOfLCinMCL_vs_layercluster_zminus
void fill_multi_cluster_histos(const Histograms &histograms, int count, const std::vector< reco::HGCalMultiCluster > &multiClusters, 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
void fill_info_histos(const Histograms &histograms, unsigned int layers) const
std::vector< std::unordered_map< int, dqm::reco::MonitorElement * > > h_sharedenergy_simcluster2layercl_vs_eta_perlayer
void bookSimClusterHistos(DQMStore::IBooker &ibook, Histograms &histograms, unsigned int layers, std::vector< int > thicknesses)
int nintDisToSeedperthickperlayerenewei_
unsigned int multiclusterId
std::unordered_map< int, dqm::reco::MonitorElement * > h_caloparticle_lastlayer_matchedtoRecHit
std::unordered_map< std::string, dqm::reco::MonitorElement * > h_distancetoseedcell_perthickperlayer_eneweighted
std::vector< dqm::reco::MonitorElement * > h_multiplicity_numberOfEventsHistogram
std::unordered_map< int, dqm::reco::MonitorElement * > h_energyclustered_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
double minTotNClsperthick_
std::vector< dqm::reco::MonitorElement * > h_multicluster_layersnum
std::vector< dqm::reco::MonitorElement * > h_sharedenergy_multicl2caloparticle_vs_eta
void bookClusterHistos_CellLevel(DQMStore::IBooker &ibook, Histograms &histograms, unsigned int layers, std::vector< int > thicknesses)
double maxMixedHitsSimCluster_
double minDisSeedToMaxperthickperlayer_
double minDisToSeedperthickperlayerenewei_
std::vector< std::unordered_map< int, dqm::reco::MonitorElement * > > h_sharedenergy_simcluster2layercl_perlayer
std::vector< std::unordered_map< int, dqm::reco::MonitorElement * > > h_sharedenergy_simcluster2layercl_vs_phi_perlayer
std::unordered_map< std::string, dqm::reco::MonitorElement * > h_distancetomaxcell_perthickperlayer
std::unordered_map< int, dqm::reco::MonitorElement * > h_num_layercl_eta_perlayer
bool operator==(const detIdInfoInCluster &o) const
double minMCLSharedEneFrac_
hgcal_clustering::Density Density
std::unordered_map< std::string, dqm::reco::MonitorElement * > h_cellsnum_perthickperlayer
std::vector< dqm::reco::MonitorElement * > h_numDup_multicl_phi
std::vector< dqm::reco::MonitorElement * > h_sharedenergy_caloparticle2multicl_vs_eta