CMS 3D CMS Logo

HGCalValidator.cc
Go to the documentation of this file.
2 
4 
7 
8 using namespace std;
9 using namespace edm;
10 
12  : caloGeomToken_(esConsumes<CaloGeometry, CaloGeometryRecord>()),
13  label_lcl(pset.getParameter<edm::InputTag>("label_lcl")),
14  label_tst(pset.getParameter<std::vector<edm::InputTag>>("label_tst")),
15  label_simTS(pset.getParameter<edm::InputTag>("label_simTS")),
16  label_simTSFromCP(pset.getParameter<edm::InputTag>("label_simTSFromCP")),
17  associator_(pset.getUntrackedParameter<edm::InputTag>("associator")),
18  associatorSim_(pset.getUntrackedParameter<edm::InputTag>("associatorSim")),
19  SaveGeneralInfo_(pset.getUntrackedParameter<bool>("SaveGeneralInfo")),
20  doCaloParticlePlots_(pset.getUntrackedParameter<bool>("doCaloParticlePlots")),
21  doCaloParticleSelection_(pset.getUntrackedParameter<bool>("doCaloParticleSelection")),
22  doSimClustersPlots_(pset.getUntrackedParameter<bool>("doSimClustersPlots")),
23  label_SimClustersPlots_(pset.getParameter<edm::InputTag>("label_SimClusters")),
24  label_SimClustersLevel_(pset.getParameter<edm::InputTag>("label_SimClustersLevel")),
25  doLayerClustersPlots_(pset.getUntrackedParameter<bool>("doLayerClustersPlots")),
26  label_layerClustersPlots_(pset.getParameter<edm::InputTag>("label_layerClusterPlots")),
27  label_LCToCPLinking_(pset.getParameter<edm::InputTag>("label_LCToCPLinking")),
28  doTrackstersPlots_(pset.getUntrackedParameter<bool>("doTrackstersPlots")),
29  label_TS_(pset.getParameter<std::string>("label_TS")),
30  label_TSToCPLinking_(pset.getParameter<std::string>("label_TSToCPLinking")),
31  label_TSToSTSPR_(pset.getParameter<std::string>("label_TSToSTSPR")),
32  label_clustersmask(pset.getParameter<std::vector<edm::InputTag>>("LayerClustersInputMask")),
33  doCandidatesPlots_(pset.getUntrackedParameter<bool>("doCandidatesPlots")),
34  label_candidates_(pset.getParameter<std::string>("ticlCandidates")),
35  cummatbudinxo_(pset.getParameter<edm::FileInPath>("cummatbudinxo")),
36  isTICLv5_(pset.getUntrackedParameter<bool>("isticlv5")),
37  hits_label_(pset.getParameter<std::vector<edm::InputTag>>("hits")) {
38  //In this way we can easily generalize to associations between other objects also.
39  const edm::InputTag& label_cp_effic_tag = pset.getParameter<edm::InputTag>("label_cp_effic");
40  const edm::InputTag& label_cp_fake_tag = pset.getParameter<edm::InputTag>("label_cp_fake");
41 
42  for (auto& label : hits_label_) {
43  hits_token_.push_back(consumes<HGCRecHitCollection>(label));
44  }
45  label_cp_effic = consumes<std::vector<CaloParticle>>(label_cp_effic_tag);
46  label_cp_fake = consumes<std::vector<CaloParticle>>(label_cp_fake_tag);
47 
48  simVertices_ = consumes<std::vector<SimVertex>>(pset.getParameter<edm::InputTag>("simVertices"));
49 
50  for (auto& itag : label_clustersmask) {
51  clustersMaskTokens_.push_back(consumes<std::vector<float>>(itag));
52  }
53 
54  associatorMapSimtR = consumes<ticl::SimToRecoCollectionWithSimClusters>(associatorSim_);
55  associatorMapRtSim = consumes<ticl::RecoToSimCollectionWithSimClusters>(associatorSim_);
56 
57  simTrackstersMap_ = consumes<std::map<uint, std::vector<uint>>>(edm::InputTag("ticlSimTracksters"));
58 
59  hitMap_ =
60  consumes<std::unordered_map<DetId, const unsigned int>>(edm::InputTag("recHitMapProducer", "hgcalRecHitMap"));
61 
62  simClusters_ = consumes<std::vector<SimCluster>>(pset.getParameter<edm::InputTag>("label_scl"));
63 
64  layerclusters_ = consumes<reco::CaloClusterCollection>(label_lcl);
65 
66  if (doCandidatesPlots_) {
67  edm::EDGetTokenT<std::vector<TICLCandidate>> TICLCandidatesToken =
68  consumes<std::vector<TICLCandidate>>(pset.getParameter<edm::InputTag>("ticlTrackstersMerge"));
69  edm::EDGetTokenT<std::vector<TICLCandidate>> simTICLCandidatesToken =
70  consumes<std::vector<TICLCandidate>>(pset.getParameter<edm::InputTag>("simTiclCandidates"));
72  consumes<std::vector<reco::Track>>(pset.getParameter<edm::InputTag>("recoTracks"));
74  consumes<std::vector<ticl::Trackster>>(pset.getParameter<edm::InputTag>("ticlTrackstersMerge"));
76  consumes<ticl::SimToRecoCollectionSimTracksters>(pset.getParameter<edm::InputTag>("mergeRecoToSimAssociator"));
78  consumes<ticl::SimToRecoCollectionSimTracksters>(pset.getParameter<edm::InputTag>("mergeSimToRecoAssociator"));
80  consumes<ticl::SimToRecoCollectionSimTracksters>(
81  pset.getParameter<edm::InputTag>("mergeRecoToSimAssociatorPU"));
82 
83  candidateVal_ = std::make_unique<TICLCandidateValidator>(TICLCandidatesToken,
84  simTICLCandidatesToken,
85  recoTracksToken,
86  trackstersToken,
87  associatorMapRtSToken,
88  associatorMapStRToken,
89  associatorMapRtSPUToken,
90  isTICLv5_);
91  }
92 
93  for (auto& itag : label_tst) {
94  label_tstTokens.push_back(consumes<ticl::TracksterCollection>(itag));
95  }
96 
97  simTracksters_ = consumes<ticl::TracksterCollection>(label_simTS);
98  simTracksters_fromCPs_ = consumes<ticl::TracksterCollection>(label_simTSFromCP);
99 
100  associatorMapRtS = consumes<ticl::RecoToSimCollection>(associator_);
101  associatorMapStR = consumes<ticl::SimToRecoCollection>(associator_);
102 
103  cpSelector = CaloParticleSelector(pset.getParameter<double>("ptMinCP"),
104  pset.getParameter<double>("ptMaxCP"),
105  pset.getParameter<double>("minRapidityCP"),
106  pset.getParameter<double>("maxRapidityCP"),
107  pset.getParameter<double>("lipCP"),
108  pset.getParameter<double>("tipCP"),
109  pset.getParameter<int>("minHitCP"),
110  pset.getParameter<int>("maxSimClustersCP"),
111  pset.getParameter<bool>("signalOnlyCP"),
112  pset.getParameter<bool>("intimeOnlyCP"),
113  pset.getParameter<bool>("chargedOnlyCP"),
114  pset.getParameter<bool>("stableOnlyCP"),
115  pset.getParameter<bool>("notConvertedOnlyCP"),
116  pset.getParameter<std::vector<int>>("pdgIdCP"));
117 
118  tools_.reset(new hgcal::RecHitTools());
119 
120  particles_to_monitor_ = pset.getParameter<std::vector<int>>("pdgIdCP");
121  totallayers_to_monitor_ = pset.getParameter<int>("totallayers_to_monitor");
122  thicknesses_to_monitor_ = pset.getParameter<std::vector<int>>("thicknesses_to_monitor");
123 
124  //For the material budget file here
125  std::ifstream fmb(cummatbudinxo_.fullPath().c_str());
126  double thelay = 0.;
127  double mbg = 0.;
128  for (unsigned ilayer = 1; ilayer <= totallayers_to_monitor_; ++ilayer) {
129  fmb >> thelay >> mbg;
130  cumulative_material_budget.insert(std::pair<double, double>(thelay, mbg));
131  }
132 
133  fmb.close();
134 
135  ParameterSet psetForHistoProducerAlgo = pset.getParameter<ParameterSet>("histoProducerAlgoBlock");
136  histoProducerAlgo_ = std::make_unique<HGVHistoProducerAlgo>(psetForHistoProducerAlgo);
137 
138  dirName_ = pset.getParameter<std::string>("dirName");
139 }
140 
142 
144  edm::Run const&,
145  edm::EventSetup const& setup,
146  Histograms& histograms) const {
147  if (SaveGeneralInfo_) {
148  ibook.cd();
149  ibook.setCurrentFolder(dirName_ + "GeneralInfo");
150  histoProducerAlgo_->bookInfo(ibook, histograms.histoProducerAlgo);
151  }
152 
153  if (doCaloParticlePlots_) {
154  ibook.cd();
155 
156  for (auto const particle : particles_to_monitor_) {
157  ibook.setCurrentFolder(dirName_ + "SelectedCaloParticles/" + std::to_string(particle));
158  histoProducerAlgo_->bookCaloParticleHistos(
159  ibook, histograms.histoProducerAlgo, particle, totallayers_to_monitor_);
160  }
161  ibook.cd();
162  ibook.setCurrentFolder(dirName_);
163  }
164 
165  //Booking histograms concerning with simClusters
166  if (doSimClustersPlots_) {
167  ibook.cd();
169  histoProducerAlgo_->bookSimClusterHistos(
170  ibook, histograms.histoProducerAlgo, totallayers_to_monitor_, thicknesses_to_monitor_);
171 
172  for (unsigned int ws = 0; ws < label_clustersmask.size(); ws++) {
173  ibook.cd();
175  string dirName = dirName_ + label_SimClustersPlots_.label() + "/";
176  if (!algo.process().empty())
177  dirName += algo.process() + "_";
178  LogDebug("HGCalValidator") << dirName << "\n";
179  if (!algo.label().empty())
180  dirName += algo.label() + "_";
181  LogDebug("HGCalValidator") << dirName << "\n";
182  if (!algo.instance().empty())
183  dirName += algo.instance() + "_";
184  LogDebug("HGCalValidator") << dirName << "\n";
185 
186  if (!dirName.empty()) {
187  dirName.resize(dirName.size() - 1);
188  }
189 
190  LogDebug("HGCalValidator") << dirName << "\n";
191 
192  ibook.setCurrentFolder(dirName);
193 
194  histoProducerAlgo_->bookSimClusterAssociationHistos(
195  ibook, histograms.histoProducerAlgo, totallayers_to_monitor_, thicknesses_to_monitor_);
196  } //end of loop over masks
197  } //if for simCluster plots
198 
199  //Booking histograms concerning with hgcal layer clusters
200  if (doLayerClustersPlots_) {
201  ibook.cd();
202  ibook.setCurrentFolder(dirName_ + label_layerClustersPlots_.label() + "/ClusterLevel");
203  histoProducerAlgo_->bookClusterHistos_ClusterLevel(ibook,
204  histograms.histoProducerAlgo,
208  ibook.cd();
210  histoProducerAlgo_->bookClusterHistos_LCtoCP_association(
211  ibook, histograms.histoProducerAlgo, totallayers_to_monitor_);
212 
213  ibook.cd();
214  ibook.setCurrentFolder(dirName_ + label_layerClustersPlots_.label() + "/CellLevel");
215  histoProducerAlgo_->bookClusterHistos_CellLevel(
216  ibook, histograms.histoProducerAlgo, totallayers_to_monitor_, thicknesses_to_monitor_);
217  }
218 
219  //Booking histograms for Tracksters
220  for (unsigned int www = 0; www < label_tst.size(); www++) {
221  ibook.cd();
222  InputTag algo = label_tst[www];
223  string dirName = dirName_;
224  if (!algo.process().empty())
225  dirName += algo.process() + "_";
226  LogDebug("HGCalValidator") << dirName << "\n";
227  if (!algo.label().empty())
228  dirName += algo.label() + "_";
229  LogDebug("HGCalValidator") << dirName << "\n";
230  if (!algo.instance().empty())
231  dirName += algo.instance() + "_";
232  LogDebug("HGCalValidator") << dirName << "\n";
233 
234  if (!dirName.empty()) {
235  dirName.resize(dirName.size() - 1);
236  }
237 
238  LogDebug("HGCalValidator") << dirName << "\n";
239 
240  ibook.setCurrentFolder(dirName);
241 
242  // Booking histograms concerning HGCal tracksters
243  if (doTrackstersPlots_) {
244  // Generic histos
245  ibook.setCurrentFolder(dirName + "/" + label_TS_);
246  histoProducerAlgo_->bookTracksterHistos(ibook, histograms.histoProducerAlgo, totallayers_to_monitor_);
247  // CP Linking
249  histoProducerAlgo_->bookTracksterSTSHistos(
251  // SimTracksters Pattern Recognition
253  histoProducerAlgo_->bookTracksterSTSHistos(
255  }
256  } //end of booking Tracksters loop
257 
258  // Booking histograms concerning TICL candidates
259  if (doCandidatesPlots_) {
260  ibook.cd();
262  candidateVal_->bookCandidatesHistos(ibook, histograms.histoTICLCandidates, dirName_ + label_candidates_);
263  }
264 }
265 
267  std::vector<CaloParticle> const& cPeff,
268  std::vector<SimVertex> const& simVertices,
269  std::vector<size_t>& selected_cPeff,
270  unsigned int layers,
271  std::unordered_map<DetId, const unsigned int> const& hitMap,
272  std::vector<HGCRecHit> const& hits) const {
273  selected_cPeff.reserve(cPeff.size());
274 
275  size_t j = 0;
276  for (auto const& caloParticle : cPeff) {
277  int id = caloParticle.pdgId();
278 
280  selected_cPeff.push_back(j);
281  if (doCaloParticlePlots_) {
282  histoProducerAlgo_->fill_caloparticle_histos(
283  histograms.histoProducerAlgo, id, caloParticle, simVertices, layers, hitMap, hits);
284  }
285  }
286  ++j;
287  } //end of loop over caloparticles
288 }
289 
291  const edm::EventSetup& setup,
292  const Histograms& histograms) const {
293  using namespace reco;
294 
295  LogDebug("HGCalValidator") << "\n===================================================="
296  << "\n"
297  << "Analyzing new event"
298  << "\n"
299  << "====================================================\n"
300  << "\n";
301 
302  edm::Handle<std::vector<SimVertex>> simVerticesHandle;
303  event.getByToken(simVertices_, simVerticesHandle);
304  std::vector<SimVertex> const& simVertices = *simVerticesHandle;
305 
306  edm::Handle<std::vector<CaloParticle>> caloParticleHandle;
307  event.getByToken(label_cp_effic, caloParticleHandle);
308  std::vector<CaloParticle> const& caloParticles = *caloParticleHandle;
309 
310  edm::Handle<ticl::TracksterCollection> simTracksterHandle;
311  event.getByToken(simTracksters_, simTracksterHandle);
312  ticl::TracksterCollection const& simTracksters = *simTracksterHandle;
313 
314  edm::Handle<ticl::TracksterCollection> simTracksterFromCPHandle;
315  event.getByToken(simTracksters_fromCPs_, simTracksterFromCPHandle);
316  ticl::TracksterCollection const& simTrackstersFromCPs = *simTracksterFromCPHandle;
317 
318  edm::Handle<std::map<uint, std::vector<uint>>> simTrackstersMapHandle;
319  event.getByToken(simTrackstersMap_, simTrackstersMapHandle);
320  const std::map<uint, std::vector<uint>> cpToSc_SimTrackstersMap = *simTrackstersMapHandle;
321 
323  tools_->setGeometry(*geom);
324  histoProducerAlgo_->setRecHitTools(tools_);
325 
326  edm::Handle<ticl::SimToRecoCollection> simtorecoCollectionH;
327  event.getByToken(associatorMapStR, simtorecoCollectionH);
328  auto simRecColl = *simtorecoCollectionH;
329  edm::Handle<ticl::RecoToSimCollection> recotosimCollectionH;
330  event.getByToken(associatorMapRtS, recotosimCollectionH);
331  auto recSimColl = *recotosimCollectionH;
332 
334  event.getByToken(hitMap_, hitMapHandle);
335  const std::unordered_map<DetId, const unsigned int>* hitMap = &*hitMapHandle;
336 
337  std::vector<HGCRecHit> hits;
338  for (auto& token : hits_token_) {
340  event.getByToken(token, hitsHandle);
341  hits.insert(hits.end(), (*hitsHandle).begin(), (*hitsHandle).end());
342  }
343 
344  //Some general info on layers etc.
345  if (SaveGeneralInfo_) {
346  histoProducerAlgo_->fill_info_histos(histograms.histoProducerAlgo, totallayers_to_monitor_);
347  }
348 
349  std::vector<size_t> cPIndices;
350  //Consider CaloParticles coming from the hard scatterer
351  //excluding the PU contribution and save the indices.
352  removeCPFromPU(caloParticles, cPIndices);
353 
354  // ##############################################
355  // Fill caloparticles histograms
356  // ##############################################
357  // HGCRecHit are given to select the SimHits which are also reconstructed
358  LogTrace("HGCalValidator") << "\n# of CaloParticles: " << caloParticles.size() << "\n" << std::endl;
359  std::vector<size_t> selected_cPeff;
361  histograms, caloParticles, simVertices, selected_cPeff, totallayers_to_monitor_, *hitMap, hits);
362 
363  //get collections from the event
364  //simClusters
365  edm::Handle<std::vector<SimCluster>> simClustersHandle;
366  event.getByToken(simClusters_, simClustersHandle);
367  std::vector<SimCluster> const& simClusters = *simClustersHandle;
368 
369  //Layer clusters
371  event.getByToken(layerclusters_, clusterHandle);
372  const reco::CaloClusterCollection& clusters = *clusterHandle;
373 
374  auto nSimClusters = simClusters.size();
375  std::vector<size_t> sCIndices;
376  //There shouldn't be any SimTracks from different crossings, but maybe they will be added later.
377  //At the moment there should be one SimTrack in each SimCluster.
378  for (unsigned int scId = 0; scId < nSimClusters; ++scId) {
379  if (simClusters[scId].g4Tracks()[0].eventId().event() != 0 or
380  simClusters[scId].g4Tracks()[0].eventId().bunchCrossing() != 0) {
381  LogDebug("HGCalValidator") << "Excluding SimClusters from event: "
382  << simClusters[scId].g4Tracks()[0].eventId().event()
383  << " with BX: " << simClusters[scId].g4Tracks()[0].eventId().bunchCrossing()
384  << std::endl;
385  continue;
386  }
387  sCIndices.emplace_back(scId);
388  }
389 
390  // ##############################################
391  // Fill simCluster histograms
392  // ##############################################
393  if (doSimClustersPlots_) {
394  histoProducerAlgo_->fill_simCluster_histos(
395  histograms.histoProducerAlgo, simClusters, totallayers_to_monitor_, thicknesses_to_monitor_);
396 
397  for (unsigned int ws = 0; ws < label_clustersmask.size(); ws++) {
398  const auto& inputClusterMask = event.get(clustersMaskTokens_[ws]);
399 
401  event.getByToken(associatorMapSimtR, simtorecoCollectionH);
402  auto simRecColl = *simtorecoCollectionH;
404  event.getByToken(associatorMapRtSim, recotosimCollectionH);
405  auto recSimColl = *recotosimCollectionH;
406 
407  histoProducerAlgo_->fill_simClusterAssociation_histos(histograms.histoProducerAlgo,
408  ws,
409  clusterHandle,
410  clusters,
411  simClustersHandle,
412  simClusters,
413  sCIndices,
414  inputClusterMask,
415  *hitMap,
417  recSimColl,
418  simRecColl,
419  hits);
420 
421  //General Info on simClusters
422  LogTrace("HGCalValidator") << "\n# of SimClusters: " << nSimClusters
423  << ", layerClusters mask label: " << label_clustersmask[ws].label() << "\n";
424  } //end of loop overs masks
425  }
426 
427  // ##############################################
428  // Fill layercluster histograms
429  // ##############################################
430  int w = 0; //counter counting the number of sets of histograms
431  if (doLayerClustersPlots_) {
432  histoProducerAlgo_->fill_generic_cluster_histos(histograms.histoProducerAlgo,
433  w,
434  clusterHandle,
435  clusters,
436  caloParticleHandle,
438  cPIndices,
439  selected_cPeff,
440  *hitMap,
444  recSimColl,
445  simRecColl,
446  hits);
447 
448  for (unsigned int layerclusterIndex = 0; layerclusterIndex < clusters.size(); layerclusterIndex++) {
449  histoProducerAlgo_->fill_cluster_histos(histograms.histoProducerAlgo, w, clusters[layerclusterIndex]);
450  }
451 
452  //General Info on hgcalLayerClusters
453  LogTrace("HGCalValidator") << "\n# of layer clusters with " << label_lcl.process() << ":" << label_lcl.label()
454  << ":" << label_lcl.instance() << ": " << clusters.size() << "\n";
455  }
456 
457  // ##############################################
458  // Fill Trackster histograms
459  // ##############################################
460  for (unsigned int wml = 0; wml < label_tstTokens.size(); wml++) {
461  if (doTrackstersPlots_) {
463  event.getByToken(label_tstTokens[wml], tracksterHandle);
464  const ticl::TracksterCollection& tracksters = *tracksterHandle;
465 
466  //General Info on Tracksters
467  LogTrace("HGCalValidator") << "\n# of Tracksters from " << label_tst[wml].process() << ":"
468  << label_tst[wml].label() << ":" << label_tst[wml].instance() << ": "
469  << tracksters.size() << "\n"
470  << std::endl;
471 
472  histoProducerAlgo_->fill_trackster_histos(histograms.histoProducerAlgo,
473  wml,
474  tracksters,
475  clusters,
476  simTracksters,
477  simTrackstersFromCPs,
478  cpToSc_SimTrackstersMap,
479  simClusters,
480  caloParticleHandle.id(),
482  cPIndices,
483  selected_cPeff,
484  *hitMap,
486  hits);
487  }
488  } //end of loop over Trackster input labels
489 
490  // tracksters histograms
491  if (doCandidatesPlots_) {
492  candidateVal_->fillCandidateHistos(event, histograms.histoTICLCandidates, simTracksterFromCPHandle);
493  }
494 }
ESGetTokenH3DDVariant esConsumes(std::string const &Record, edm::ConsumesCollector &)
Definition: DeDxTools.cc:283
ProductID id() const
Definition: HandleBase.cc:29
std::string fullPath() const
Definition: FileInPath.cc:161
virtual void setCurrentFolder(std::string const &fullpath)
Definition: DQMStore.cc:36
void dqmAnalyze(const edm::Event &, const edm::EventSetup &, const Histograms &) const override
Method called once per event.
edm::InputTag associator_
T w() const
edm::EDGetTokenT< std::unordered_map< DetId, const unsigned int > > hitMap_
std::string const & instance() const
Definition: InputTag.h:37
std::vector< edm::InputTag > label_tst
std::unique_ptr< HGVHistoProducerAlgo > histoProducerAlgo_
~HGCalValidator() override
Destructor.
CaloParticleSelector cpSelector
const bool doCaloParticlePlots_
const bool doCandidatesPlots_
std::string const & label() const
Definition: InputTag.h:36
unsigned totallayers_to_monitor_
std::vector< int > thicknesses_to_monitor_
void cpParametersAndSelection(const Histograms &histograms, std::vector< CaloParticle > const &cPeff, std::vector< SimVertex > const &simVertices, std::vector< size_t > &selected_cPeff, unsigned int layers, std::unordered_map< DetId, const unsigned int > const &, std::vector< HGCRecHit > const &hits) const
void bookHistograms(DQMStore::IBooker &, edm::Run const &, edm::EventSetup const &, Histograms &) const override
Method called to book the DQM histograms.
static std::string to_string(const XMLCh *ch)
edm::InputTag label_simTS
#define LogTrace(id)
const bool SaveGeneralInfo_
const bool doLayerClustersPlots_
edm::EDGetTokenT< ticl::RecoToSimCollectionWithSimClusters > associatorMapRtSim
EDGetTokenT< ProductType > consumes(edm::InputTag const &tag)
std::string label_TSToSTSPR_
char const * label
cc *****************************************************cc the common blocks pinput and cwdidth are for input parameters cc these parameters needed to be interfaced to other program common pinput fmb
Definition: inclcon.h:4
edm::ESGetToken< CaloGeometry, CaloGeometryRecord > caloGeomToken_
std::string dirName_
edm::EDGetTokenT< ticl::SimToRecoCollectionWithSimClusters > associatorMapSimtR
edm::EDGetTokenT< std::vector< SimVertex > > simVertices_
edm::EDGetTokenT< std::vector< CaloParticle > > label_cp_fake
edm::EDGetTokenT< std::vector< CaloParticle > > label_cp_effic
const bool doCaloParticleSelection_
The Signals That Services Can Subscribe To This is based on ActivityRegistry and is current per Services can connect to the signals distributed by the ActivityRegistry in order to monitor the activity of the application Each possible callback has some defined which we here list in angle e< void, edm::EventID const &, edm::Timestamp const & > We also list in braces which AR_WATCH_USING_METHOD_ is used for those or
Definition: Activities.doc:12
std::vector< edm::EDGetTokenT< ticl::TracksterCollection > > label_tstTokens
std::shared_ptr< hgcal::RecHitTools > tools_
std::string label_TSToCPLinking_
std::vector< edm::EDGetTokenT< HGCRecHitCollection > > hits_token_
std::vector< CaloCluster > CaloClusterCollection
collection of CaloCluster objects
std::map< double, double > cumulative_material_budget
edm::EDGetTokenT< ticl::SimToRecoCollection > associatorMapStR
edm::InputTag label_LCToCPLinking_
edm::InputTag label_simTSFromCP
edm::EDGetTokenT< reco::CaloClusterCollection > layerclusters_
HGCalValidator(const edm::ParameterSet &pset)
Constructor.
const bool doTrackstersPlots_
const edm::FileInPath cummatbudinxo_
edm::EDGetTokenT< ticl::TracksterCollection > simTracksters_
static void removeCPFromPU(const std::vector< CaloParticle > &caloParticles, std::vector< size_t > &cPIndices, bool hardScatterOnly=true)
std::vector< edm::InputTag > label_clustersmask
std::vector< edm::EDGetTokenT< std::vector< float > > > clustersMaskTokens_
std::unique_ptr< TICLCandidateValidator > candidateVal_
edm::EDGetTokenT< std::vector< SimCluster > > simClusters_
std::string label_candidates_
edm::InputTag label_SimClustersPlots_
edm::InputTag label_SimClustersLevel_
std::vector< int > particles_to_monitor_
fixed size matrix
HLT enums.
const bool doSimClustersPlots_
std::vector< Trackster > TracksterCollection
Definition: Trackster.h:254
edm::InputTag label_lcl
edm::EDGetTokenT< ticl::RecoToSimCollection > associatorMapRtS
std::string const & process() const
Definition: InputTag.h:40
edm::EDGetTokenT< std::map< uint, std::vector< uint > > > simTrackstersMap_
edm::EDGetTokenT< ticl::TracksterCollection > simTracksters_fromCPs_
std::string label_TS_
std::vector< edm::InputTag > hits_label_
edm::InputTag associatorSim_
const bool isTICLv5_
Definition: event.py:1
Definition: Run.h:45
edm::InputTag label_layerClustersPlots_
#define LogDebug(id)