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")),
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 //
127  tkGeom_ = &iSetup.getData(geomToken_);
128  tTopo_ = &iSetup.getData(topoToken_);
129 }
130 
131 // -- Analyze
132 //
134  // Getting simHits
135  std::vector<edm::Handle<edm::PSimHitContainer>> simHits;
136  for (const auto& itoken : simHitTokens_) {
137  const auto& simHitHandle = iEvent.getHandle(itoken);
138  if (!simHitHandle.isValid())
139  continue;
140  simHits.emplace_back(simHitHandle);
141  }
142  // Get the SimTracks
143  const auto& simTracksRaw = iEvent.getHandle(simTracksToken_);
144  // Rearrange the simTracks for ease of use <simTrackID, simTrack>
146  for (edm::SimTrackContainer::const_iterator simTrackIt(simTracksRaw->begin()); simTrackIt != simTracksRaw->end();
147  ++simTrackIt) {
148  if (simTrackIt->momentum().pt() > simtrackminpt_) {
149  simTracks.emplace(simTrackIt->trackId(), *simTrackIt);
150  }
151  }
153 }
154 
157  const std::map<unsigned int, SimTrack>& simTracks) {
158  // Getting the clusters
159  const auto& clusterHandle = iEvent.getHandle(clustersToken_);
160  // Getting PixelDigiSimLinks
161  const auto& pixelSimLinksHandle = iEvent.getHandle(simOTLinksToken_);
162 
163  // Number of clusters
164  std::map<std::string, unsigned int> nPrimarySimHits[3];
165  std::map<std::string, unsigned int> nOtherSimHits[3];
166  for (const auto& DSVItr : *clusterHandle) {
167  // Getting the id of detector unit
168  uint32_t rawid = DSVItr.detId();
169  DetId detId(rawid);
170  const GeomDetUnit* geomDetUnit(tkGeom_->idToDetUnit(detId));
171  if (!geomDetUnit)
172  continue;
174 
175  std::string folderkey = phase2tkutil::getOTHistoId(detId, tTopo_);
176  for (const auto& clusterItr : DSVItr) {
177  MeasurementPoint mpCluster(clusterItr.center(), clusterItr.column() + 0.5);
178  Local3DPoint localPosCluster = geomDetUnit->topology().localPosition(mpCluster);
179 
180  // Get simTracks from the cluster
181  std::vector<unsigned int> clusterSimTrackIds;
182  for (unsigned int i(0); i < clusterItr.size(); ++i) {
183  unsigned int channel(Phase2TrackerDigi::pixelToChannel(clusterItr.firstRow() + i, clusterItr.column()));
184  std::vector<unsigned int> simTrackIds(getSimTrackId(pixelSimLinksHandle, detId, channel));
185  for (auto it : simTrackIds) {
186  bool add = true;
187  for (unsigned int j = 0; j < clusterSimTrackIds.size(); ++j) {
188  // only save simtrackids that are not present yet
189  if (it == clusterSimTrackIds.at(j))
190  add = false;
191  }
192  if (add)
193  clusterSimTrackIds.push_back(it);
194  }
195  }
196  std::sort(clusterSimTrackIds.begin(), clusterSimTrackIds.end());
197  const PSimHit* closestSimHit = nullptr;
198  float mind = 1e4;
199  // Get the SimHit
200  for (const auto& psimhitCont : simHits) {
201  for (const auto& simhitIt : *psimhitCont) {
202  if (rawid == simhitIt.detUnitId()) {
203  auto it = std::lower_bound(clusterSimTrackIds.begin(), clusterSimTrackIds.end(), simhitIt.trackId());
204  if (it != clusterSimTrackIds.end() && *it == simhitIt.trackId()) {
205  float dx = simhitIt.localPosition().x() - localPosCluster.x();
206  float dy = simhitIt.localPosition().y() - localPosCluster.y();
207  float dist = dx * dx + dy * dy;
208  if (!closestSimHit || dist < mind) {
209  mind = dist;
210  closestSimHit = &simhitIt;
211  }
212  }
213  }
214  } //end loop over PSimhitcontainers
215  } //end loop over simHits
216 
217  if (!closestSimHit)
218  continue;
219  // only look at simhits from highpT tracks
220  auto simTrackIt(simTracks.find(closestSimHit->trackId()));
221  if (simTrackIt == simTracks.end())
222  continue;
223 
224  Local3DPoint localPosSimHit(closestSimHit->localPosition());
225  const float deltaX = localPosCluster.x() - localPosSimHit.x();
226  const float deltaY = localPosCluster.y() - localPosSimHit.y();
227 
228  auto layerMEit = layerMEs_.find(folderkey);
229  if (layerMEit == layerMEs_.end())
230  continue;
231 
232  ClusterMEs& local_mes = layerMEit->second;
234  local_mes.deltaX_P->Fill(phase2tkutil::cmtomicron * deltaX);
235  local_mes.deltaY_P->Fill(phase2tkutil::cmtomicron * deltaY);
237  local_mes.deltaX_S->Fill(phase2tkutil::cmtomicron * deltaX);
238  local_mes.deltaY_S->Fill(deltaY);
239  }
240  // Primary particles only
241  if (phase2tkutil::isPrimary(simTrackIt->second, closestSimHit)) {
243  local_mes.deltaX_P_primary->Fill(phase2tkutil::cmtomicron * deltaX);
244  local_mes.deltaY_P_primary->Fill(phase2tkutil::cmtomicron * deltaY);
246  local_mes.deltaX_S_primary->Fill(phase2tkutil::cmtomicron * deltaX);
247  local_mes.deltaY_S_primary->Fill(deltaY);
248  }
249  }
250  }
251  }
252 }
253 
254 //
255 // -- Book Histograms
256 //
258  edm::Run const& iRun,
259  edm::EventSetup const& iSetup) {
260  std::string top_folder = config_.getParameter<std::string>("TopFolderName");
261  edm::LogInfo("Phase2OTValidateCluster") << " Booking Histograms in: " << top_folder;
262 
263  edm::ESWatcher<TrackerDigiGeometryRecord> theTkDigiGeomWatcher;
264  if (theTkDigiGeomWatcher.check(iSetup)) {
265  for (auto const& det_u : tkGeom_->detUnits()) {
266  //Always check TrackerNumberingBuilder before changing this part
267  if ((det_u->subDetector() == GeomDetEnumerators::SubDetector::P2PXB ||
268  det_u->subDetector() == GeomDetEnumerators::SubDetector::P2PXEC))
269  continue; //continue if Pixel
270  uint32_t detId_raw = det_u->geographicalId().rawId();
271  bookLayerHistos(ibooker, detId_raw, top_folder);
272  }
273  }
274 }
275 
277 void Phase2OTValidateCluster::bookLayerHistos(DQMStore::IBooker& ibooker, uint32_t det_id, const std::string& subdir) {
279  if (folderName.empty()) {
280  edm::LogWarning("Phase2OTValidateCluster") << ">>>> Invalid histo_id ";
281  return;
282  }
283 
284  if (layerMEs_.find(folderName) == layerMEs_.end()) {
285  ibooker.cd();
286  edm::LogInfo("Phase2TrackerValidateDigi") << " Booking Histograms in: " << subdir + '/' + folderName;
287  ClusterMEs local_mes;
289  ibooker.setCurrentFolder(subdir + '/' + folderName);
290 
291  local_mes.deltaX_P =
293 
294  local_mes.deltaY_P =
296 
297  // Puting primary digis in a subfolder
298  ibooker.setCurrentFolder(subdir + '/' + folderName + "/PrimarySimHits");
299 
300  local_mes.deltaX_P_primary =
301  phase2tkutil::book1DFromPSet(config_.getParameter<edm::ParameterSet>("Delta_X_Pixel_Primary"), ibooker);
302 
303  local_mes.deltaY_P_primary =
304  phase2tkutil::book1DFromPSet(config_.getParameter<edm::ParameterSet>("Delta_Y_Pixel_Primary"), ibooker);
305  }
306  ibooker.setCurrentFolder(subdir + '/' + folderName);
307 
308  local_mes.deltaX_S =
310 
311  local_mes.deltaY_S =
313 
314  // Puting primary digis in a subfolder
315  ibooker.setCurrentFolder(subdir + '/' + folderName + "/PrimarySimHits");
316 
317  local_mes.deltaX_S_primary =
318  phase2tkutil::book1DFromPSet(config_.getParameter<edm::ParameterSet>("Delta_X_Strip_Primary"), ibooker);
319 
320  local_mes.deltaY_S_primary =
321  phase2tkutil::book1DFromPSet(config_.getParameter<edm::ParameterSet>("Delta_Y_Strip_Primary"), ibooker);
322 
323  layerMEs_.emplace(folderName, local_mes);
324  }
325 }
326 
327 std::vector<unsigned int> Phase2OTValidateCluster::getSimTrackId(
328  const edm::Handle<edm::DetSetVector<PixelDigiSimLink>>& pixelSimLinks, const DetId& detId, unsigned int channel) {
329  std::vector<unsigned int> retvec;
330  edm::DetSetVector<PixelDigiSimLink>::const_iterator DSViter(pixelSimLinks->find(detId));
331  if (DSViter == pixelSimLinks->end())
332  return retvec;
333  for (edm::DetSet<PixelDigiSimLink>::const_iterator it = DSViter->data.begin(); it != DSViter->data.end(); ++it) {
334  if (channel == it->channel()) {
335  retvec.push_back(it->SimTrackId());
336  }
337  }
338  return retvec;
339 }
340 
343  //for macro-pixel sensors
344  std::string mptag = "macro-pixel sensor";
345  std::string striptag = "strip sensor";
346  {
348  psd0.add<std::string>("name", "Delta_X_Pixel");
349  psd0.add<std::string>("title", "#Delta X " + mptag + ";Cluster resolution X coordinate [#mum]");
350  psd0.add<bool>("switch", true);
351  psd0.add<double>("xmax", 250);
352  psd0.add<double>("xmin", -250);
353  psd0.add<int>("NxBins", 100);
354  desc.add<edm::ParameterSetDescription>("Delta_X_Pixel", psd0);
355  }
356  {
358  psd0.add<std::string>("name", "Delta_Y_Pixel");
359  psd0.add<std::string>("title", "#Delta Y " + mptag + ";Cluster resolution Y coordinate [#mum]");
360  psd0.add<bool>("switch", true);
361  psd0.add<double>("xmin", -1500);
362  psd0.add<double>("xmax", 1500);
363  psd0.add<int>("NxBins", 100);
364  desc.add<edm::ParameterSetDescription>("Delta_Y_Pixel", psd0);
365  }
366  {
368  psd0.add<std::string>("name", "Delta_X_Pixel_Primary");
369  psd0.add<std::string>("title", "#Delta X " + mptag + ";cluster resolution X coordinate [#mum]");
370  psd0.add<bool>("switch", true);
371  psd0.add<double>("xmin", -250);
372  psd0.add<double>("xmax", 250);
373  psd0.add<int>("NxBins", 100);
374  desc.add<edm::ParameterSetDescription>("Delta_X_Pixel_Primary", psd0);
375  }
376  {
378  psd0.add<std::string>("name", "Delta_Y_Pixel_Primary");
379  psd0.add<std::string>("title", "#Delta Y " + mptag + ";cluster resolution Y coordinate [#mum]");
380  psd0.add<bool>("switch", true);
381  psd0.add<double>("xmin", -1500);
382  psd0.add<double>("xmax", 1500);
383  psd0.add<int>("NxBins", 100);
384  desc.add<edm::ParameterSetDescription>("Delta_Y_Pixel_Primary", psd0);
385  }
386 
387  //strip sensors
388  {
390  psd0.add<std::string>("name", "Delta_X_Strip");
391  psd0.add<std::string>("title", "#Delta X " + striptag + ";Cluster resolution X coordinate [#mum]");
392  psd0.add<bool>("switch", true);
393  psd0.add<double>("xmin", -250);
394  psd0.add<double>("xmax", 250);
395  psd0.add<int>("NxBins", 100);
396  desc.add<edm::ParameterSetDescription>("Delta_X_Strip", psd0);
397  }
398  {
400  psd0.add<std::string>("name", "Delta_Y_Strip");
401  psd0.add<std::string>("title", "#Delta Y " + striptag + ";Cluster resolution Y coordinate [cm]");
402  psd0.add<double>("xmin", -5.0);
403  psd0.add<bool>("switch", true);
404  psd0.add<double>("xmax", 5.0);
405  psd0.add<int>("NxBins", 100);
406  desc.add<edm::ParameterSetDescription>("Delta_Y_Strip", psd0);
407  }
408  {
410  psd0.add<std::string>("name", "Delta_X_Strip_Primary");
411  psd0.add<std::string>("title", "#Delta X " + striptag + ";Cluster resolution X coordinate [#mum]");
412  psd0.add<bool>("switch", true);
413  psd0.add<double>("xmin", -250);
414  psd0.add<double>("xmax", 250);
415  psd0.add<int>("NxBins", 100);
416  desc.add<edm::ParameterSetDescription>("Delta_X_Strip_Primary", psd0);
417  }
418  {
420  psd0.add<std::string>("name", "Delta_Y_Strip_Primary");
421  psd0.add<std::string>("title", "#Delta Y " + striptag + ";Cluster resolution Y coordinate [cm]");
422  psd0.add<double>("xmin", -5.0);
423  psd0.add<bool>("switch", true);
424  psd0.add<double>("xmax", 5.0);
425  psd0.add<int>("NxBins", 100);
426  desc.add<edm::ParameterSetDescription>("Delta_Y_Strip_Primary", psd0);
427  }
428  desc.add<std::string>("TopFolderName", "TrackerPhase2OTClusterV");
429  desc.add<edm::InputTag>("ClusterSource", edm::InputTag("siPhase2Clusters"));
430  desc.add<edm::InputTag>("OuterTrackerDigiSimLinkSource", edm::InputTag("simSiPixelDigis", "Tracker"));
431  desc.add<edm::InputTag>("simtracks", edm::InputTag("g4SimHits"));
432  desc.add<double>("SimTrackMinPt", 0.0);
433  desc.add<std::vector<edm::InputTag>>("PSimHitSource",
434  {
435  edm::InputTag("g4SimHits:TrackerHitsTIBLowTof"),
436  edm::InputTag("g4SimHits:TrackerHitsTIBHighTof"),
437  edm::InputTag("g4SimHits:TrackerHitsTIDLowTof"),
438  edm::InputTag("g4SimHits:TrackerHitsTIDHighTof"),
439  edm::InputTag("g4SimHits:TrackerHitsTOBLowTof"),
440  edm::InputTag("g4SimHits:TrackerHitsTOBHighTof"),
441  edm::InputTag("g4SimHits:TrackerHitsTECLowTof"),
442  edm::InputTag("g4SimHits:TrackerHitsTECHighTof"),
443  edm::InputTag("g4SimHits:TrackerHitsPixelBarrelLowTof"),
444  edm::InputTag("g4SimHits:TrackerHitsPixelBarrelHighTof"),
445  edm::InputTag("g4SimHits:TrackerHitsPixelEndcapLowTof"),
446  edm::InputTag("g4SimHits:TrackerHitsPixelEndcapHighTof"),
447  });
448  descriptions.add("Phase2OTValidateCluster", desc);
449 }
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:57
edm::DetSetVector< PixelDigiSimLink >
Point2DBase
Definition: Point2DBase.h:9
dqm::impl::MonitorElement
Definition: MonitorElement.h:99
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:89301
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:341
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:257
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:16
TrackerGeometry::ModuleType
ModuleType
Definition: TrackerGeometry.h:29
dqm::impl::MonitorElement::Fill
void Fill(long long x)
Definition: MonitorElement.h:290
TrackerPhase2DQMUtil.h
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:155
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
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
jetUpdater_cfi.sort
sort
Definition: jetUpdater_cfi.py:29
Phase2OTValidateCluster::bookLayerHistos
void bookLayerHistos(DQMStore::IBooker &ibooker, uint32_t det_it, const std::string &subdir)
Definition: Phase2OTValidateCluster.cc:277
PV3DBase::y
T y() const
Definition: PV3DBase.h:60
iEvent
int iEvent
Definition: GenABIO.cc:224
trackerHitRTTI::vector
Definition: trackerHitRTTI.h:21
PVValHelper::dy
Definition: PVValidationHelpers.h:50
edm::EventSetup
Definition: EventSetup.h:58
phase2tkutil::cmtomicron
static constexpr float cmtomicron
Definition: TrackerPhase2ValidationUtil.h:9
DetSetVector.h
TrackerGeometry::ModuleType::Ph2PSS
edm::ESGetToken< TrackerGeometry, TrackerDigiGeometryRecord >
AlCaHLTBitMon_QueryRunRegistry.string
string string
Definition: AlCaHLTBitMon_QueryRunRegistry.py:256
Phase2OTValidateCluster::simtrackminpt_
double simtrackminpt_
Definition: Phase2OTValidateCluster.cc:85
ALCARECODTCalibSynchCosmicsDQM_cff.folderName
folderName
Definition: ALCARECODTCalibSynchCosmicsDQM_cff.py:9
InputTag.h
edm::EventSetup::getData
bool getData(T &iHolder) const
Definition: EventSetup.h:127
Phase2OTValidateCluster::analyze
void analyze(const edm::Event &iEvent, const edm::EventSetup &iSetup) override
Definition: Phase2OTValidateCluster.cc:133
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:327
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
TrackerTopologyRcd
Definition: TrackerTopologyRcd.h:10
ParameterSet.h
PSimHit
Definition: PSimHit.h:15
dqmiolumiharvest.j
j
Definition: dqmiolumiharvest.py:66
DeDxTools::esConsumes
ESGetTokenH3DDVariant esConsumes(std::string const &Reccord, edm::ConsumesCollector &)
Definition: DeDxTools.cc:283
edm::Event
Definition: Event.h:73
SimTrackContainer.h
DetSetVectorNew.h
edm::InputTag
Definition: InputTag.h:15
PVValHelper::dx
Definition: PVValidationHelpers.h:49
SimVertexContainer.h
vertexPlots.e4
e4
Definition: vertexPlots.py:64
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