CMS 3D CMS Logo

Phase2OTValidateCluster.cc
Go to the documentation of this file.
1 // -*- C++ -*-
2 //bookLayer
3 // Package: Phase2OTValidateCluster
4 // Class: Phase2OTValidateCluster
5 //
11 //
12 // Author: Gabriel Ramirez, Suvankar Roy Chowdhury
13 // Date: May 23, 2020
14 //
15 #include <memory>
26 
33 
38 
45 // DQM Histograming
49 
51 public:
52  typedef std::map<unsigned int, std::vector<PSimHit>> SimHitsMap;
53  typedef std::map<unsigned int, SimTrack> SimTracksMap;
54 
56  ~Phase2OTValidateCluster() override;
57  void bookHistograms(DQMStore::IBooker& ibooker, edm::Run const& iRun, edm::EventSetup const& iSetup) override;
58  void analyze(const edm::Event& iEvent, const edm::EventSetup& iSetup) override;
59  void dqmBeginRun(const edm::Run& iRun, const edm::EventSetup& iSetup) override;
60  static void fillDescriptions(edm::ConfigurationDescriptions& descriptions);
61 
62 private:
63  struct ClusterMEs {
72  };
73 
74  void fillOTHistos(const edm::Event& iEvent,
76  const std::map<unsigned int, SimTrack>& simTracks);
77  void bookLayerHistos(DQMStore::IBooker& ibooker, uint32_t det_it, const std::string& subdir);
78  std::vector<unsigned int> getSimTrackId(const edm::Handle<edm::DetSetVector<PixelDigiSimLink>>& pixelSimLinks,
79  const DetId& detId,
80  unsigned int channel);
81 
82  std::map<std::string, ClusterMEs> layerMEs_;
83 
86  std::vector<edm::EDGetTokenT<edm::PSimHitContainer>> simHitTokens_;
91  std::vector<edm::InputTag> pSimHitSrc_;
94  const TrackerGeometry* tkGeom_ = nullptr;
95  const TrackerTopology* tTopo_ = nullptr;
96 };
99 //
100 // constructors
101 //
103  : config_(iConfig),
104  simtrackminpt_(config_.getParameter<double>("SimTrackMinPt")),
105  simOTLinksToken_(consumes<edm::DetSetVector<PixelDigiSimLink>>(
106  config_.getParameter<edm::InputTag>("OuterTrackerDigiSimLinkSource"))),
107  simTracksToken_(consumes<edm::SimTrackContainer>(config_.getParameter<edm::InputTag>("simtracks"))),
108  clustersToken_(
109  consumes<Phase2TrackerCluster1DCollectionNew>(config_.getParameter<edm::InputTag>("ClusterSource"))),
110  pSimHitSrc_(config_.getParameter<std::vector<edm::InputTag>>("PSimHitSource")),
111  geomToken_(esConsumes<TrackerGeometry, TrackerDigiGeometryRecord, edm::Transition::BeginRun>()),
112  topoToken_(esConsumes<TrackerTopology, TrackerTopologyRcd, edm::Transition::BeginRun>()) {
113  edm::LogInfo("Phase2OTValidateCluster") << ">>> Construct Phase2OTValidateCluster ";
114  for (const auto& itag : pSimHitSrc_)
115  simHitTokens_.push_back(consumes<edm::PSimHitContainer>(itag));
116 }
117 
119  // do anything here that needs to be done at desctruction time
120  // (e.g. close files, deallocate resources etc.)
121  edm::LogInfo("Phase2OTValidateCluster") << ">>> Destroy Phase2OTValidateCluster ";
122 }
123 //
124 // -- DQM Begin Run
125 //
128  tkGeom_ = &(*geomHandle);
130  tTopo_ = tTopoHandle.product();
131 }
132 
133 // -- Analyze
134 //
136  // Getting simHits
137  std::vector<edm::Handle<edm::PSimHitContainer>> simHits;
138  for (const auto& itoken : simHitTokens_) {
140  iEvent.getByToken(itoken, simHitHandle);
141  if (!simHitHandle.isValid())
142  continue;
143  simHits.emplace_back(simHitHandle);
144  }
145  // Get the SimTracks
147  iEvent.getByToken(simTracksToken_, simTracksRaw);
148 
149  // Rearrange the simTracks for ease of use <simTrackID, simTrack>
151  for (edm::SimTrackContainer::const_iterator simTrackIt(simTracksRaw->begin()); simTrackIt != simTracksRaw->end();
152  ++simTrackIt) {
153  if (simTrackIt->momentum().pt() > simtrackminpt_) {
154  simTracks.emplace(simTrackIt->trackId(), *simTrackIt);
155  }
156  }
158 }
159 
162  const std::map<unsigned int, SimTrack>& simTracks) {
163  // Getting the clusters
165  iEvent.getByToken(clustersToken_, clusterHandle);
166 
167  // Getting PixelDigiSimLinks
169  iEvent.getByToken(simOTLinksToken_, pixelSimLinksHandle);
170 
171  // Number of clusters
172  std::map<std::string, unsigned int> nPrimarySimHits[3];
173  std::map<std::string, unsigned int> nOtherSimHits[3];
174  for (const auto& DSVItr : *clusterHandle) {
175  // Getting the id of detector unit
176  uint32_t rawid = DSVItr.detId();
177  DetId detId(rawid);
178  const GeomDetUnit* geomDetUnit(tkGeom_->idToDetUnit(detId));
179  if (!geomDetUnit)
180  continue;
182 
183  std::string folderkey = phase2tkutil::getOTHistoId(detId, tTopo_);
184  for (const auto& clusterItr : DSVItr) {
185  MeasurementPoint mpCluster(clusterItr.center(), clusterItr.column() + 0.5);
186  Local3DPoint localPosCluster = geomDetUnit->topology().localPosition(mpCluster);
187 
188  // Get simTracks from the cluster
189  std::vector<unsigned int> clusterSimTrackIds;
190  for (unsigned int i(0); i < clusterItr.size(); ++i) {
191  unsigned int channel(Phase2TrackerDigi::pixelToChannel(clusterItr.firstRow() + i, clusterItr.column()));
192  std::vector<unsigned int> simTrackIds(getSimTrackId(pixelSimLinksHandle, detId, channel));
193  for (auto it : simTrackIds) {
194  bool add = true;
195  for (unsigned int j = 0; j < clusterSimTrackIds.size(); ++j) {
196  // only save simtrackids that are not present yet
197  if (it == clusterSimTrackIds.at(j))
198  add = false;
199  }
200  if (add)
201  clusterSimTrackIds.push_back(it);
202  }
203  }
204  std::sort(clusterSimTrackIds.begin(), clusterSimTrackIds.end());
205  const PSimHit* closestSimHit = nullptr;
206  float minx = 10000.;
207  // Get the SimHit
208  for (const auto& psimhitCont : simHits) {
209  for (const auto& simhitIt : *psimhitCont) {
210  if (rawid == simhitIt.detUnitId()) {
211  auto it = std::lower_bound(clusterSimTrackIds.begin(), clusterSimTrackIds.end(), simhitIt.trackId());
212  if (it != clusterSimTrackIds.end() && *it == simhitIt.trackId()) {
213  if (!closestSimHit || fabs(simhitIt.localPosition().x() - localPosCluster.x()) < minx) {
214  minx = abs(simhitIt.localPosition().x() - localPosCluster.x());
215  closestSimHit = &simhitIt;
216  }
217  }
218  }
219  } //end loop over PSimhitcontainers
220  } //end loop over simHits
221 
222  if (!closestSimHit)
223  continue;
224  // only look at simhits from highpT tracks
225  auto simTrackIt(simTracks.find(closestSimHit->trackId()));
226  if (simTrackIt == simTracks.end())
227  continue;
228 
229  Local3DPoint localPosSimHit(closestSimHit->localPosition());
230  const float deltaX = localPosCluster.x() - localPosSimHit.x();
231  const float deltaY = localPosCluster.y() - localPosSimHit.y();
232 
233  auto layerMEit = layerMEs_.find(folderkey);
234  if (layerMEit == layerMEs_.end())
235  continue;
236 
237  ClusterMEs& local_mes = layerMEit->second;
239  local_mes.deltaX_P->Fill(deltaX);
240  local_mes.deltaY_P->Fill(deltaY);
242  local_mes.deltaX_S->Fill(deltaX);
243  local_mes.deltaY_S->Fill(deltaY);
244  }
245  // Primary particles only
246  if (phase2tkutil::isPrimary(simTrackIt->second, closestSimHit)) {
248  local_mes.deltaX_P_primary->Fill(deltaX);
249  local_mes.deltaY_P_primary->Fill(deltaY);
251  local_mes.deltaX_S_primary->Fill(deltaX);
252  local_mes.deltaY_S_primary->Fill(deltaY);
253  }
254  }
255  }
256  }
257 }
258 
259 //
260 // -- Book Histograms
261 //
263  edm::Run const& iRun,
264  edm::EventSetup const& iSetup) {
265  std::string top_folder = config_.getParameter<std::string>("TopFolderName");
266  edm::LogInfo("Phase2OTValidateCluster") << " Booking Histograms in: " << top_folder;
267 
268  edm::ESWatcher<TrackerDigiGeometryRecord> theTkDigiGeomWatcher;
269  if (theTkDigiGeomWatcher.check(iSetup)) {
270  for (auto const& det_u : tkGeom_->detUnits()) {
271  //Always check TrackerNumberingBuilder before changing this part
272  if ((det_u->subDetector() == GeomDetEnumerators::SubDetector::P2PXB ||
273  det_u->subDetector() == GeomDetEnumerators::SubDetector::P2PXEC))
274  continue; //continue if Pixel
275  uint32_t detId_raw = det_u->geographicalId().rawId();
276  bookLayerHistos(ibooker, detId_raw, top_folder);
277  }
278  }
279 }
280 
282 void Phase2OTValidateCluster::bookLayerHistos(DQMStore::IBooker& ibooker, uint32_t det_id, const std::string& subdir) {
284  if (folderName.empty()) {
285  edm::LogWarning("Phase2OTValidateCluster") << ">>>> Invalid histo_id ";
286  return;
287  }
288 
289  if (layerMEs_.find(folderName) == layerMEs_.end()) {
290  ibooker.cd();
291  edm::LogInfo("Phase2TrackerValidateDigi") << " Booking Histograms in: " << subdir + '/' + folderName;
292  ClusterMEs local_mes;
294  ibooker.setCurrentFolder(subdir + '/' + folderName);
295 
296  local_mes.deltaX_P =
298 
299  local_mes.deltaY_P =
301 
302  // Puting primary digis in a subfolder
303  ibooker.setCurrentFolder(subdir + '/' + folderName + "/PrimarySimHits");
304 
305  local_mes.deltaX_P_primary =
306  phase2tkutil::book1DFromPSet(config_.getParameter<edm::ParameterSet>("Delta_X_Pixel_Primary"), ibooker);
307 
308  local_mes.deltaY_P_primary =
309  phase2tkutil::book1DFromPSet(config_.getParameter<edm::ParameterSet>("Delta_Y_Pixel_Primary"), ibooker);
310  }
311  ibooker.setCurrentFolder(subdir + '/' + folderName);
312 
313  local_mes.deltaX_S =
315 
316  local_mes.deltaY_S =
318 
319  // Puting primary digis in a subfolder
320  ibooker.setCurrentFolder(subdir + '/' + folderName + "/PrimarySimHits");
321 
322  local_mes.deltaX_S_primary =
323  phase2tkutil::book1DFromPSet(config_.getParameter<edm::ParameterSet>("Delta_X_Strip_Primary"), ibooker);
324 
325  local_mes.deltaY_S_primary =
326  phase2tkutil::book1DFromPSet(config_.getParameter<edm::ParameterSet>("Delta_Y_Strip_Primary"), ibooker);
327 
328  layerMEs_.emplace(folderName, local_mes);
329  }
330 }
331 
332 std::vector<unsigned int> Phase2OTValidateCluster::getSimTrackId(
333  const edm::Handle<edm::DetSetVector<PixelDigiSimLink>>& pixelSimLinks, const DetId& detId, unsigned int channel) {
334  std::vector<unsigned int> retvec;
335  edm::DetSetVector<PixelDigiSimLink>::const_iterator DSViter(pixelSimLinks->find(detId));
336  if (DSViter == pixelSimLinks->end())
337  return retvec;
338  for (edm::DetSet<PixelDigiSimLink>::const_iterator it = DSViter->data.begin(); it != DSViter->data.end(); ++it) {
339  if (channel == it->channel()) {
340  retvec.push_back(it->SimTrackId());
341  }
342  }
343  return retvec;
344 }
345 
348  //for macro-pixel sensors
349  std::string mptag = "macro-pixel sensor";
350  std::string striptag = "strip sensor";
351  {
353  psd0.add<std::string>("name", "Delta_X_Pixel");
354  psd0.add<std::string>("title", "#Delta X " + mptag + ";Cluster resolution X dimension");
355  psd0.add<bool>("switch", true);
356  psd0.add<double>("xmax", 5.0);
357  psd0.add<double>("xmin", -5.0);
358  psd0.add<int>("NxBins", 100);
359  desc.add<edm::ParameterSetDescription>("Delta_X_Pixel", psd0);
360  }
361  {
363  psd0.add<std::string>("name", "Delta_Y_Pixel");
364  psd0.add<std::string>("title", "#Delta Y " + mptag + ";Cluster resolution Y dimension");
365  psd0.add<double>("xmin", -5.0);
366  psd0.add<bool>("switch", true);
367  psd0.add<double>("xmax", 5.0);
368  psd0.add<int>("NxBins", 100);
369  desc.add<edm::ParameterSetDescription>("Delta_Y_Pixel", psd0);
370  }
371  {
373  psd0.add<std::string>("name", "Delta_X_Pixel_Primary");
374  psd0.add<std::string>("title", "#Delta X " + mptag + ";cluster resolution X dimension");
375  psd0.add<double>("xmin", -5.0);
376  psd0.add<bool>("switch", true);
377  psd0.add<double>("xmax", 5.0);
378  psd0.add<int>("NxBins", 100);
379  desc.add<edm::ParameterSetDescription>("Delta_X_Pixel_Primary", psd0);
380  }
381  {
383  psd0.add<std::string>("name", "Delta_Y_Pixel_Primary");
384  psd0.add<std::string>("title", "#Delta Y " + mptag + ";cluster resolution Y dimension");
385  psd0.add<double>("xmin", -5.0);
386  psd0.add<bool>("switch", true);
387  psd0.add<double>("xmax", 5.0);
388  psd0.add<int>("NxBins", 100);
389  desc.add<edm::ParameterSetDescription>("Delta_Y_Pixel_Primary", psd0);
390  }
391 
392  //strip sensors
393  {
395  psd0.add<std::string>("name", "Delta_X_Strip");
396  psd0.add<std::string>("title", "#Delta X " + striptag + ";Cluster resolution X dimension");
397  psd0.add<double>("xmin", -5.0);
398  psd0.add<bool>("switch", true);
399  psd0.add<double>("xmax", 5.0);
400  psd0.add<int>("NxBins", 100);
401  desc.add<edm::ParameterSetDescription>("Delta_X_Strip", psd0);
402  }
403  {
405  psd0.add<std::string>("name", "Delta_Y_Strip");
406  psd0.add<std::string>("title", "#Delta Y " + striptag + ";Cluster resolution Y dimension");
407  psd0.add<double>("xmin", -5.0);
408  psd0.add<bool>("switch", true);
409  psd0.add<double>("xmax", 5.0);
410  psd0.add<int>("NxBins", 100);
411  desc.add<edm::ParameterSetDescription>("Delta_Y_Strip", psd0);
412  }
413  {
415  psd0.add<std::string>("name", "Delta_X_Strip_Primary");
416  psd0.add<std::string>("title", "#Delta X " + striptag + ";Cluster resolution X dimension");
417  psd0.add<double>("xmin", -5.0);
418  psd0.add<bool>("switch", true);
419  psd0.add<double>("xmax", 5.0);
420  psd0.add<int>("NxBins", 100);
421  desc.add<edm::ParameterSetDescription>("Delta_X_Strip_Primary", psd0);
422  }
423  {
425  psd0.add<std::string>("name", "Delta_Y_Strip_Primary");
426  psd0.add<std::string>("title", "#Delta Y " + striptag + ";Cluster resolution Y dimension");
427  psd0.add<double>("xmin", -5.0);
428  psd0.add<bool>("switch", true);
429  psd0.add<double>("xmax", 5.0);
430  psd0.add<int>("NxBins", 100);
431  desc.add<edm::ParameterSetDescription>("Delta_Y_Strip_Primary", psd0);
432  }
433  desc.add<std::string>("TopFolderName", "TrackerPhase2OTClusterV");
434  desc.add<edm::InputTag>("ClusterSource", edm::InputTag("siPhase2Clusters"));
435  desc.add<edm::InputTag>("OuterTrackerDigiSimLinkSource", edm::InputTag("simSiPixelDigis", "Tracker"));
436  desc.add<edm::InputTag>("simtracks", edm::InputTag("g4SimHits"));
437  desc.add<double>("SimTrackMinPt", 0.0);
438  desc.add<std::vector<edm::InputTag>>("PSimHitSource",
439  {
440  edm::InputTag("g4SimHits:TrackerHitsTIBLowTof"),
441  edm::InputTag("g4SimHits:TrackerHitsTIBHighTof"),
442  edm::InputTag("g4SimHits:TrackerHitsTIDLowTof"),
443  edm::InputTag("g4SimHits:TrackerHitsTIDHighTof"),
444  edm::InputTag("g4SimHits:TrackerHitsTOBLowTof"),
445  edm::InputTag("g4SimHits:TrackerHitsTOBHighTof"),
446  edm::InputTag("g4SimHits:TrackerHitsTECLowTof"),
447  edm::InputTag("g4SimHits:TrackerHitsTECHighTof"),
448  edm::InputTag("g4SimHits:TrackerHitsPixelBarrelLowTof"),
449  edm::InputTag("g4SimHits:TrackerHitsPixelBarrelHighTof"),
450  edm::InputTag("g4SimHits:TrackerHitsPixelEndcapLowTof"),
451  edm::InputTag("g4SimHits:TrackerHitsPixelEndcapHighTof"),
452  });
453  descriptions.add("Phase2OTValidateCluster", desc);
454 }
Phase2OTValidateCluster::SimHitsMap
std::map< unsigned int, std::vector< PSimHit > > SimHitsMap
Definition: Phase2OTValidateCluster.cc:52
edm::ESWatcher::check
bool check(const edm::EventSetup &iSetup)
Definition: ESWatcher.h:52
edm::ESHandle::product
T const * product() const
Definition: ESHandle.h:86
edm::DetSetVector
Definition: DetSetVector.h:61
Point2DBase
Definition: Point2DBase.h:9
dqm::impl::MonitorElement
Definition: MonitorElement.h:98
phase2tkutil::book1DFromPSet
MonitorElement * book1DFromPSet(const edm::ParameterSet &hpars, DQMStore::IBooker &ibooker)
Definition: TrackerPhase2DQMUtil.cc:50
Handle.h
mps_fire.i
i
Definition: mps_fire.py:428
edm::ParameterSetDescription::add
ParameterDescriptionBase * add(U const &iLabel, T const &value)
Definition: ParameterSetDescription.h:95
MessageLogger.h
TrackerGeometry.h
GeomDet
Definition: GeomDet.h:27
edm::ESWatcher< TrackerDigiGeometryRecord >
ESHandle.h
Phase2OTValidateCluster::simTracksToken_
edm::EDGetTokenT< edm::SimTrackContainer > simTracksToken_
Definition: Phase2OTValidateCluster.cc:89
TrackerGeometry::ModuleType::Ph2SS
PV3DBase::x
T x() const
Definition: PV3DBase.h:59
edm::Run
Definition: Run.h:45
edm::EDGetTokenT
Definition: EDGetToken.h:33
edm
HLT enums.
Definition: AlignableModifier.h:19
TrackerTopology
Definition: TrackerTopology.h:16
Phase2OTValidateCluster
Definition: Phase2OTValidateCluster.cc:50
Phase2OTValidateCluster::ClusterMEs::deltaX_S_primary
MonitorElement * deltaX_S_primary
Definition: Phase2OTValidateCluster.cc:70
PSimHitContainer.h
HLT_FULL_cff.InputTag
InputTag
Definition: HLT_FULL_cff.py:89287
edm::ParameterSetDescription
Definition: ParameterSetDescription.h:52
dqm::implementation::NavigatorBase::setCurrentFolder
virtual void setCurrentFolder(std::string const &fullpath)
Definition: DQMStore.cc:32
TrackerPhase2ValidationUtil.h
FastTrackerRecHitCombiner_cfi.simHits
simHits
Definition: FastTrackerRecHitCombiner_cfi.py:5
TrackCandidateProducer_cfi.simTracks
simTracks
Definition: TrackCandidateProducer_cfi.py:15
DQMStore.h
Phase2OTValidateCluster::fillDescriptions
static void fillDescriptions(edm::ConfigurationDescriptions &descriptions)
Definition: Phase2OTValidateCluster.cc:346
Phase2OTValidateCluster::ClusterMEs::deltaY_S
MonitorElement * deltaY_S
Definition: Phase2OTValidateCluster.cc:66
edm::LogInfo
Log< level::Info, false > LogInfo
Definition: MessageLogger.h:125
Phase2OTValidateCluster::~Phase2OTValidateCluster
~Phase2OTValidateCluster() override
Definition: Phase2OTValidateCluster.cc:118
TrackerGeometry::getDetectorType
ModuleType getDetectorType(DetId) const
Definition: TrackerGeometry.cc:247
edm::Handle< edm::PSimHitContainer >
edm::LogWarning
Log< level::Warning, false > LogWarning
Definition: MessageLogger.h:122
Phase2OTValidateCluster::ClusterMEs::deltaX_P_primary
MonitorElement * deltaX_P_primary
Definition: Phase2OTValidateCluster.cc:68
Phase2OTValidateCluster::ClusterMEs::deltaX_P
MonitorElement * deltaX_P
Definition: Phase2OTValidateCluster.cc:65
Phase2OTValidateCluster::ClusterMEs
Definition: Phase2OTValidateCluster.cc:63
Phase2OTValidateCluster::ClusterMEs::deltaY_P
MonitorElement * deltaY_P
Definition: Phase2OTValidateCluster.cc:67
Phase2TrackerDigi::pixelToChannel
static PackedDigiType pixelToChannel(unsigned int row, unsigned int col)
Definition: Phase2TrackerDigi.h:43
Phase2OTValidateCluster::dqmBeginRun
void dqmBeginRun(const edm::Run &iRun, const edm::EventSetup &iSetup) override
Definition: Phase2OTValidateCluster.cc:126
TrackerGeometry::idToDetUnit
const TrackerGeomDet * idToDetUnit(DetId) const override
Return the pointer to the GeomDetUnit corresponding to a given DetId.
Definition: TrackerGeometry.cc:183
DetId
Definition: DetId.h:17
MakerMacros.h
TrackerTopology.h
Phase2OTValidateCluster::pSimHitSrc_
std::vector< edm::InputTag > pSimHitSrc_
Definition: Phase2OTValidateCluster.cc:91
Phase2OTValidateCluster::ClusterMEs::deltaY_S_primary
MonitorElement * deltaY_S_primary
Definition: Phase2OTValidateCluster.cc:71
Phase2OTValidateCluster::SimTracksMap
std::map< unsigned int, SimTrack > SimTracksMap
Definition: Phase2OTValidateCluster.cc:53
Phase2OTValidateCluster::bookHistograms
void bookHistograms(DQMStore::IBooker &ibooker, edm::Run const &iRun, edm::EventSetup const &iSetup) override
Definition: Phase2OTValidateCluster.cc:262
DEFINE_FWK_MODULE
#define DEFINE_FWK_MODULE(type)
Definition: MakerMacros.h:16
edm::ConfigurationDescriptions::add
void add(std::string const &label, ParameterSetDescription const &psetDescription)
Definition: ConfigurationDescriptions.cc:57
TrackerGeometry::detUnits
const DetContainer & detUnits() const override
Returm a vector of all GeomDet.
Definition: TrackerGeometry.h:61
Phase2OTValidateCluster::tkGeom_
const TrackerGeometry * tkGeom_
Definition: Phase2OTValidateCluster.cc:94
Service.h
TrackerDigiGeometryRecord
Definition: TrackerDigiGeometryRecord.h:15
TrackerGeometry::ModuleType
ModuleType
Definition: TrackerGeometry.h:29
dqm::impl::MonitorElement::Fill
void Fill(long long x)
Definition: MonitorElement.h:290
TrackerPhase2DQMUtil.h
edm::ESHandle< TrackerGeometry >
dqm::implementation::NavigatorBase::cd
virtual void cd()
Definition: DQMStore.cc:29
Phase2OTValidateCluster::fillOTHistos
void fillOTHistos(const edm::Event &iEvent, const std::vector< edm::Handle< edm::PSimHitContainer >> &simHits, const std::map< unsigned int, SimTrack > &simTracks)
Definition: Phase2OTValidateCluster.cc:160
Phase2OTValidateCluster::config_
edm::ParameterSet config_
Definition: Phase2OTValidateCluster.cc:84
Point3DBase< float, LocalTag >
DQMEDAnalyzer.h
edm::ConfigurationDescriptions
Definition: ConfigurationDescriptions.h:28
Phase2OTValidateCluster::simOTLinksToken_
edm::EDGetTokenT< edm::DetSetVector< PixelDigiSimLink > > simOTLinksToken_
Definition: Phase2OTValidateCluster.cc:87
AlCaHLTBitMon_QueryRunRegistry.string
string
Definition: AlCaHLTBitMon_QueryRunRegistry.py:256
DQMEDAnalyzer
Definition: DQMEDAnalyzer.py:1
pfDeepBoostedJetPreprocessParams_cfi.lower_bound
lower_bound
Definition: pfDeepBoostedJetPreprocessParams_cfi.py:15
TrackerDigiGeometryRecord.h
Phase2OTValidateCluster::topoToken_
const edm::ESGetToken< TrackerTopology, TrackerTopologyRcd > topoToken_
Definition: Phase2OTValidateCluster.cc:93
MonitorElement.h
edm::ParameterSet
Definition: ParameterSet.h:47
edm::Transition
Transition
Definition: Transition.h:12
Event.h
Phase2OTValidateCluster::geomToken_
const edm::ESGetToken< TrackerGeometry, TrackerDigiGeometryRecord > geomToken_
Definition: Phase2OTValidateCluster.cc:92
Phase2OTValidateCluster::tTopo_
const TrackerTopology * tTopo_
Definition: Phase2OTValidateCluster.cc:95
Phase2OTValidateCluster::ClusterMEs::deltaX_S
MonitorElement * deltaX_S
Definition: Phase2OTValidateCluster.cc:64
phase2tkutil::isPrimary
bool isPrimary(const SimTrack &simTrk, const PSimHit *simHit)
Definition: TrackerPhase2ValidationUtil.cc:2
PVValHelper::add
void add(std::map< std::string, TH1 * > &h, TH1 *hist)
Definition: PVValidationHelpers.cc:12
edm::DetSetVector::const_iterator
collection_type::const_iterator const_iterator
Definition: DetSetVector.h:102
Phase2OTValidateCluster::bookLayerHistos
void bookLayerHistos(DQMStore::IBooker &ibooker, uint32_t det_it, const std::string &subdir)
Definition: Phase2OTValidateCluster.cc:282
PV3DBase::y
T y() const
Definition: PV3DBase.h:60
iEvent
int iEvent
Definition: GenABIO.cc:224
edm::EventSetup::getHandle
ESHandle< T > getHandle(const ESGetToken< T, R > &iToken) const
Definition: EventSetup.h:148
trackerHitRTTI::vector
Definition: trackerHitRTTI.h:21
edm::EventSetup
Definition: EventSetup.h:57
DetSetVector.h
TrackerGeometry::ModuleType::Ph2PSS
edm::ESGetToken< TrackerGeometry, TrackerDigiGeometryRecord >
Phase2OTValidateCluster::simtrackminpt_
double simtrackminpt_
Definition: Phase2OTValidateCluster.cc:85
ALCARECODTCalibSynchCosmicsDQM_cff.folderName
folderName
Definition: ALCARECODTCalibSynchCosmicsDQM_cff.py:9
InputTag.h
Phase2OTValidateCluster::analyze
void analyze(const edm::Event &iEvent, const edm::EventSetup &iSetup) override
Definition: Phase2OTValidateCluster.cc:135
Phase2OTValidateCluster::clustersToken_
edm::EDGetTokenT< Phase2TrackerCluster1DCollectionNew > clustersToken_
Definition: Phase2OTValidateCluster.cc:90
edmNew::DetSetVector
Definition: DetSetNew.h:13
submitPVResolutionJobs.desc
string desc
Definition: submitPVResolutionJobs.py:251
std
Definition: JetResolutionObject.h:76
Phase2OTValidateCluster::simHitTokens_
std::vector< edm::EDGetTokenT< edm::PSimHitContainer > > simHitTokens_
Definition: Phase2OTValidateCluster.cc:86
Phase2OTValidateCluster::layerMEs_
std::map< std::string, ClusterMEs > layerMEs_
Definition: Phase2OTValidateCluster.cc:82
edm::SimTrackContainer
std::vector< SimTrack > SimTrackContainer
Definition: SimTrackContainer.h:12
DetId.h
Frameworkfwd.h
ESWatcher.h
Phase2TrackerCluster1D.h
PixelGeomDetUnit.h
Phase2OTValidateCluster::getSimTrackId
std::vector< unsigned int > getSimTrackId(const edm::Handle< edm::DetSetVector< PixelDigiSimLink >> &pixelSimLinks, const DetId &detId, unsigned int channel)
Definition: Phase2OTValidateCluster.cc:332
edm::ParameterSet::getParameter
T getParameter(std::string const &) const
Definition: ParameterSet.h:303
dqm::implementation::IBooker
Definition: DQMStore.h:43
Phase2OTValidateCluster::ClusterMEs::deltaY_P_primary
MonitorElement * deltaY_P_primary
Definition: Phase2OTValidateCluster.cc:69
GeomDetEnumerators::P2PXB
Definition: GeomDetEnumerators.h:27
funct::abs
Abs< T >::type abs(const T &t)
Definition: Abs.h:22
TrackerTopologyRcd
Definition: TrackerTopologyRcd.h:10
ParameterSet.h
PSimHit
Definition: PSimHit.h:15
dqmiolumiharvest.j
j
Definition: dqmiolumiharvest.py:66
edm::HandleBase::isValid
bool isValid() const
Definition: HandleBase.h:70
edm::Event
Definition: Event.h:73
SimTrackContainer.h
DetSetVectorNew.h
edm::InputTag
Definition: InputTag.h:15
SimVertexContainer.h
phase2tkutil::getOTHistoId
std::string getOTHistoId(uint32_t det_id, const TrackerTopology *tTopo)
Definition: TrackerPhase2DQMUtil.cc:25
Phase2OTValidateCluster::simITLinksToken_
edm::EDGetTokenT< edm::DetSetVector< PixelDigiSimLink > > simITLinksToken_
Definition: Phase2OTValidateCluster.cc:88
TrackerGeometry::ModuleType::Ph2PSP
GeomDetEnumerators::P2PXEC
Definition: GeomDetEnumerators.h:28
TrackerGeometry
Definition: TrackerGeometry.h:14
Phase2OTValidateCluster::Phase2OTValidateCluster
Phase2OTValidateCluster(const edm::ParameterSet &)
Definition: Phase2OTValidateCluster.cc:102
edm::DetSet::const_iterator
collection_type::const_iterator const_iterator
Definition: DetSet.h:31