CMS 3D CMS Logo

Phase2ITValidateCluster.cc
Go to the documentation of this file.
1 // -*- C++ -*-
3 // Package: Phase2ITValidateCluster
4 // Class: Phase2ITValidateCluster
5 //
11 //
12 // Author: Gabriel Ramirez, Suvankar Roy Chowdhury
13 // Date: May 23, 2020
14 //
15 #include <memory>
25 
33 
38 
43 
44 // DQM Histograming
48 
50 public:
51  typedef std::map<unsigned int, std::vector<PSimHit>> SimHitsMap;
52  typedef std::map<unsigned int, SimTrack> SimTracksMap;
53 
55  ~Phase2ITValidateCluster() override;
56  void bookHistograms(DQMStore::IBooker& ibooker, edm::Run const& iRun, edm::EventSetup const& iSetup) override;
57  void analyze(const edm::Event& iEvent, const edm::EventSetup& iSetup) override;
58  void dqmBeginRun(const edm::Run& iRun, const edm::EventSetup& iSetup) override;
59  static void fillDescriptions(edm::ConfigurationDescriptions& descriptions);
60 
61 private:
62  struct ClusterMEs {
67  };
68 
69  void fillITHistos(const edm::Event& iEvent,
71  const std::map<unsigned int, SimTrack>& simTracks);
72  void bookLayerHistos(DQMStore::IBooker& ibooker, uint32_t det_it, const std::string& subdir);
73  std::vector<unsigned int> getSimTrackId(const edm::Handle<edm::DetSetVector<PixelDigiSimLink>>& pixelSimLinks,
74  const DetId& detId,
75  unsigned int channel);
76 
77  std::map<std::string, ClusterMEs> layerMEs_;
78 
81  std::vector<edm::EDGetTokenT<edm::PSimHitContainer>> simHitTokens_;
85  std::vector<edm::InputTag> pSimHitSrc_;
88  const TrackerGeometry* tkGeom_ = nullptr;
89  const TrackerTopology* tTopo_ = nullptr;
90 };
93 
94 //
95 // constructors
96 //
97 
99  : config_(iConfig),
100  simtrackminpt_(config_.getParameter<double>("SimTrackMinPt")),
101  simITLinksToken_(consumes<edm::DetSetVector<PixelDigiSimLink>>(
102  config_.getParameter<edm::InputTag>("InnerTrackerDigiSimLinkSource"))),
103  simTracksToken_(consumes<edm::SimTrackContainer>(config_.getParameter<edm::InputTag>("simtracks"))),
104  clustersToken_(
105  consumes<edmNew::DetSetVector<SiPixelCluster>>(config_.getParameter<edm::InputTag>("ClusterSource"))),
106  pSimHitSrc_(config_.getParameter<std::vector<edm::InputTag>>("PSimHitSource")),
108  topoToken_(esConsumes<TrackerTopology, TrackerTopologyRcd, edm::Transition::BeginRun>()) {
109  edm::LogInfo("Phase2ITValidateCluster") << ">>> Construct Phase2ITValidateCluster ";
110  for (const auto& itag : pSimHitSrc_)
111  simHitTokens_.push_back(consumes<edm::PSimHitContainer>(itag));
112 }
113 
115  // do anything here that needs to be done at desctruction time
116  // (e.g. close files, deallocate resources etc.)
117  edm::LogInfo("Phase2ITValidateCluster") << ">>> Destroy Phase2ITValidateCluster ";
118 }
119 //
120 // -- DQM Begin Run
121 //
124  tkGeom_ = &(*geomHandle);
126  tTopo_ = tTopoHandle.product();
127 }
128 
129 // -- Analyze
130 //
132  // Getting simHits
133  std::vector<edm::Handle<edm::PSimHitContainer>> simHits;
134  for (const auto& itoken : simHitTokens_) {
136  iEvent.getByToken(itoken, simHitHandle);
137  if (!simHitHandle.isValid())
138  continue;
139  simHits.emplace_back(simHitHandle);
140  }
141  // Get the SimTracks
143  iEvent.getByToken(simTracksToken_, simTracksRaw);
144 
145  // Rearrange the simTracks for ease of use <simTrackID, simTrack>
147  for (edm::SimTrackContainer::const_iterator simTrackIt(simTracksRaw->begin()); simTrackIt != simTracksRaw->end();
148  ++simTrackIt) {
149  if (simTrackIt->momentum().pt() > simtrackminpt_) {
150  simTracks.emplace(simTrackIt->trackId(), *simTrackIt);
151  }
152  }
154 }
155 
158  const std::map<unsigned int, SimTrack>& simTracks) {
159  // Getting the clusters
161  iEvent.getByToken(clustersToken_, clusterHandle);
162 
163  // Getting PixelDigiSimLinks
165  iEvent.getByToken(simITLinksToken_, pixelSimLinksHandle);
166 
167  for (const auto& DSVItr : *clusterHandle) {
168  // Getting the id of detector unit
169  uint32_t rawid = DSVItr.detId();
170  DetId detId(rawid);
171  const GeomDetUnit* geomDetUnit(tkGeom_->idToDetUnit(detId));
172  if (!geomDetUnit)
173  continue;
174 
175  std::string folderkey = phase2tkutil::getITHistoId(detId, tTopo_);
176  for (const auto& clusterItr : DSVItr) {
177  MeasurementPoint mpCluster(clusterItr.x(), clusterItr.y());
178  Local3DPoint localPosCluster = geomDetUnit->topology().localPosition(mpCluster);
179  // Get simTracks from the cluster
180  std::vector<unsigned int> clusterSimTrackIds;
181  for (int irow = clusterItr.minPixelRow(); irow <= clusterItr.maxPixelRow(); ++irow) {
182  for (int icol = clusterItr.minPixelCol(); icol <= clusterItr.maxPixelCol(); ++icol) {
183  uint32_t channel = PixelChannelIdentifier::pixelToChannel(irow, icol);
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  }
197  std::sort(clusterSimTrackIds.begin(), clusterSimTrackIds.end());
198  const PSimHit* closestSimHit = nullptr;
199  float mind = 10000.;
200  // Get the SimHit
201  for (const auto& psimhitCont : simHits) {
202  for (const auto& simhitIt : *psimhitCont) {
203  if (rawid == simhitIt.detUnitId()) {
204  auto it = std::lower_bound(clusterSimTrackIds.begin(), clusterSimTrackIds.end(), simhitIt.trackId());
205  if (it != clusterSimTrackIds.end() && *it == simhitIt.trackId()) {
206  float dx = simhitIt.localPosition().x() - localPosCluster.x();
207  float dy = simhitIt.localPosition().y() - localPosCluster.y();
208  float dist = std::sqrt(dx * dx + dy * dy);
209  if (!closestSimHit || dist < mind) {
210  mind = dist;
211  closestSimHit = &simhitIt;
212  }
213  }
214  }
215  } //end loop over PSimhitcontainers
216  } //end loop over simHits
217 
218  if (!closestSimHit)
219  continue;
220  // only look at simhits from highpT tracks
221  auto simTrackIt(simTracks.find(closestSimHit->trackId()));
222  if (simTrackIt == simTracks.end())
223  continue;
224  Local3DPoint localPosSimHit(closestSimHit->localPosition());
225  const double deltaX = phase2tkutil::cmtomicron * (localPosCluster.x() - localPosSimHit.x());
226  const double deltaY = phase2tkutil::cmtomicron * (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;
233  local_mes.deltaX_P->Fill(deltaX);
234  local_mes.deltaY_P->Fill(deltaY);
235  // Primary particles only
236  if (phase2tkutil::isPrimary(simTrackIt->second, closestSimHit)) {
237  local_mes.deltaX_P_primary->Fill(deltaX);
238  local_mes.deltaY_P_primary->Fill(deltaY);
239  }
240  }
241  }
242 }
243 
244 //
245 // -- Book Histograms
246 //
248  edm::Run const& iRun,
249  edm::EventSetup const& iSetup) {
250  std::string top_folder = config_.getParameter<std::string>("TopFolderName");
251  edm::LogInfo("Phase2ITValidateCluster") << " Booking Histograms in: " << top_folder;
252 
253  edm::ESWatcher<TrackerDigiGeometryRecord> theTkDigiGeomWatcher;
254  if (theTkDigiGeomWatcher.check(iSetup)) {
255  for (auto const& det_u : tkGeom_->detUnits()) {
256  //Always check TrackerNumberingBuilder before changing this part
257  if (!(det_u->subDetector() == GeomDetEnumerators::SubDetector::P2PXB ||
258  det_u->subDetector() == GeomDetEnumerators::SubDetector::P2PXEC))
259  continue; //continue if not Pixel
260  uint32_t detId_raw = det_u->geographicalId().rawId();
261  bookLayerHistos(ibooker, detId_raw, top_folder);
262  }
263  }
264 }
265 
267 void Phase2ITValidateCluster::bookLayerHistos(DQMStore::IBooker& ibooker, uint32_t det_id, const std::string& subdir) {
269  if (folderName.empty()) {
270  edm::LogWarning("Phase2ITValidateCluster") << ">>>> Invalid histo_id ";
271  return;
272  }
273 
274  if (layerMEs_.find(folderName) == layerMEs_.end()) {
275  ibooker.cd();
276  ibooker.setCurrentFolder(subdir + '/' + folderName);
277  edm::LogInfo("Phase2TrackerValidateDigi") << " Booking Histograms in: " << subdir + '/' + folderName;
278  ClusterMEs local_mes;
279 
280  local_mes.deltaX_P =
282 
283  local_mes.deltaY_P =
285 
286  // Puting primary digis in a subfolder
287  ibooker.setCurrentFolder(subdir + '/' + folderName + "/PrimarySimHits");
288 
289  local_mes.deltaX_P_primary =
290  phase2tkutil::book1DFromPSet(config_.getParameter<edm::ParameterSet>("Delta_X_Pixel_Primary"), ibooker);
291 
292  local_mes.deltaY_P_primary =
293  phase2tkutil::book1DFromPSet(config_.getParameter<edm::ParameterSet>("Delta_Y_Pixel_Primary"), ibooker);
294  layerMEs_.emplace(folderName, local_mes);
295  }
296 }
297 
298 std::vector<unsigned int> Phase2ITValidateCluster::getSimTrackId(
299  const edm::Handle<edm::DetSetVector<PixelDigiSimLink>>& pixelSimLinks, const DetId& detId, unsigned int channel) {
300  std::vector<unsigned int> retvec;
301  edm::DetSetVector<PixelDigiSimLink>::const_iterator DSViter(pixelSimLinks->find(detId));
302  if (DSViter == pixelSimLinks->end())
303  return retvec;
304  for (edm::DetSet<PixelDigiSimLink>::const_iterator it = DSViter->data.begin(); it != DSViter->data.end(); ++it) {
305  if (channel == it->channel()) {
306  retvec.push_back(it->SimTrackId());
307  }
308  }
309  return retvec;
310 }
311 
314  //for macro-pixel sensors
315  {
317  psd0.add<std::string>("name", "Delta_X_Pixel");
318  psd0.add<std::string>("title", "#Delta X;Cluster resolution X coordinate [#mum]");
319  psd0.add<bool>("switch", true);
320  psd0.add<double>("xmax", 250.);
321  psd0.add<double>("xmin", -250.);
322  psd0.add<int>("NxBins", 100);
323  desc.add<edm::ParameterSetDescription>("Delta_X_Pixel", psd0);
324  }
325  {
327  psd0.add<std::string>("name", "Delta_Y_Pixel");
328  psd0.add<std::string>("title", "#Delta Y ;Cluster resolution Y coordinate [#mum]");
329  psd0.add<double>("xmin", -250.);
330  psd0.add<double>("xmax", 250.);
331  psd0.add<bool>("switch", true);
332  psd0.add<int>("NxBins", 100);
333  desc.add<edm::ParameterSetDescription>("Delta_Y_Pixel", psd0);
334  }
335  {
337  psd0.add<std::string>("name", "Delta_X_Pixel_Primary");
338  psd0.add<std::string>("title", "#Delta X ;cluster resolution X coordinate [#mum]");
339  psd0.add<double>("xmin", -250.);
340  psd0.add<double>("xmax", 250.);
341  psd0.add<bool>("switch", true);
342  psd0.add<int>("NxBins", 100);
343  desc.add<edm::ParameterSetDescription>("Delta_X_Pixel_Primary", psd0);
344  }
345  {
347  psd0.add<std::string>("name", "Delta_Y_Pixel_Primary");
348  psd0.add<std::string>("title", "#Delta Y ;cluster resolution Y coordinate [#mum]");
349  psd0.add<double>("xmin", -250.);
350  psd0.add<double>("xmax", 250.);
351  psd0.add<bool>("switch", true);
352  psd0.add<int>("NxBins", 100);
353  desc.add<edm::ParameterSetDescription>("Delta_Y_Pixel_Primary", psd0);
354  }
355 
356  desc.add<std::string>("TopFolderName", "TrackerPhase2ITClusterV");
357  desc.add<edm::InputTag>("ClusterSource", edm::InputTag("siPixelClusters"));
358  desc.add<edm::InputTag>("InnerTrackerDigiSimLinkSource", edm::InputTag("simSiPixelDigis", "Pixel"));
359  desc.add<edm::InputTag>("simtracks", edm::InputTag("g4SimHits"));
360  desc.add<double>("SimTrackMinPt", 0.0);
361  desc.add<std::vector<edm::InputTag>>("PSimHitSource",
362  {
363  edm::InputTag("g4SimHits:TrackerHitsPixelBarrelLowTof"),
364  edm::InputTag("g4SimHits:TrackerHitsPixelBarrelHighTof"),
365  edm::InputTag("g4SimHits:TrackerHitsPixelEndcapLowTof"),
366  edm::InputTag("g4SimHits:TrackerHitsPixelEndcapHighTof"),
367  });
368  descriptions.add("Phase2ITValidateCluster", desc);
369 }
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
Phase2ITValidateCluster::analyze
void analyze(const edm::Event &iEvent, const edm::EventSetup &iSetup) override
Definition: Phase2ITValidateCluster.cc:131
phase2tkutil::book1DFromPSet
MonitorElement * book1DFromPSet(const edm::ParameterSet &hpars, DQMStore::IBooker &ibooker)
Definition: TrackerPhase2DQMUtil.cc:50
Phase2ITValidateCluster::Phase2ITValidateCluster
Phase2ITValidateCluster(const edm::ParameterSet &)
Definition: Phase2ITValidateCluster.cc:98
Handle.h
edm::ParameterSetDescription::add
ParameterDescriptionBase * add(U const &iLabel, T const &value)
Definition: ParameterSetDescription.h:95
MessageLogger.h
TrackerGeometry.h
GeomDet
Definition: GeomDet.h:27
Phase2ITValidateCluster::simITLinksToken_
edm::EDGetTokenT< edm::DetSetVector< PixelDigiSimLink > > simITLinksToken_
Definition: Phase2ITValidateCluster.cc:82
Phase2ITValidateCluster::tkGeom_
const TrackerGeometry * tkGeom_
Definition: Phase2ITValidateCluster.cc:88
edm::ESWatcher< TrackerDigiGeometryRecord >
ESHandle.h
Phase2ITValidateCluster::pSimHitSrc_
std::vector< edm::InputTag > pSimHitSrc_
Definition: Phase2ITValidateCluster.cc:85
Phase2ITValidateCluster::ClusterMEs
Definition: Phase2ITValidateCluster.cc:62
edm::Run
Definition: Run.h:45
edm::EDGetTokenT
Definition: EDGetToken.h:33
edm
HLT enums.
Definition: AlignableModifier.h:19
TrackerTopology
Definition: TrackerTopology.h:16
PSimHitContainer.h
SiPixelCluster.h
Phase2ITValidateCluster::layerMEs_
std::map< std::string, ClusterMEs > layerMEs_
Definition: Phase2ITValidateCluster.cc:77
HLT_FULL_cff.InputTag
InputTag
Definition: HLT_FULL_cff.py:89281
Phase2ITValidateCluster::tTopo_
const TrackerTopology * tTopo_
Definition: Phase2ITValidateCluster.cc:89
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
Phase2ITValidateCluster::simTracksToken_
edm::EDGetTokenT< edm::SimTrackContainer > simTracksToken_
Definition: Phase2ITValidateCluster.cc:83
DQMStore.h
PixelChannelIdentifier.h
Phase2ITValidateCluster::ClusterMEs::deltaX_P
MonitorElement * deltaX_P
Definition: Phase2ITValidateCluster.cc:63
SiPixelCluster
Pixel cluster – collection of neighboring pixels above threshold.
Definition: SiPixelCluster.h:28
Phase2ITValidateCluster
bookLayer
Definition: Phase2ITValidateCluster.cc:49
edm::LogInfo
Log< level::Info, false > LogInfo
Definition: MessageLogger.h:125
edm::Handle< edm::PSimHitContainer >
edm::LogWarning
Log< level::Warning, false > LogWarning
Definition: MessageLogger.h:122
Phase2ITValidateCluster::ClusterMEs::deltaY_P
MonitorElement * deltaY_P
Definition: Phase2ITValidateCluster.cc:64
edmNew
Definition: DetSet2RangeMap.h:11
Phase2ITValidateCluster::bookHistograms
void bookHistograms(DQMStore::IBooker &ibooker, edm::Run const &iRun, edm::EventSetup const &iSetup) override
Definition: Phase2ITValidateCluster.cc:247
TrackerGeometry::idToDetUnit
const TrackerGeomDet * idToDetUnit(DetId) const override
Return the pointer to the GeomDetUnit corresponding to a given DetId.
Definition: TrackerGeometry.cc:183
Phase2ITValidateCluster::simHitTokens_
std::vector< edm::EDGetTokenT< edm::PSimHitContainer > > simHitTokens_
Definition: Phase2ITValidateCluster.cc:81
DetId
Definition: DetId.h:17
MakerMacros.h
TrackerTopology.h
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
PixelChannelIdentifier::pixelToChannel
static int pixelToChannel(int row, int col)
Definition: PixelChannelIdentifier.h:65
TrackerGeometry::detUnits
const DetContainer & detUnits() const override
Returm a vector of all GeomDet.
Definition: TrackerGeometry.h:61
Service.h
TrackerDigiGeometryRecord
Definition: TrackerDigiGeometryRecord.h:15
mathSSE::sqrt
T sqrt(T t)
Definition: SSEVec.h:19
dqm::impl::MonitorElement::Fill
void Fill(long long x)
Definition: MonitorElement.h:290
Phase2ITValidateCluster::config_
edm::ParameterSet config_
Definition: Phase2ITValidateCluster.cc:79
TrackerPhase2DQMUtil.h
edm::ESHandle< TrackerGeometry >
dqm::implementation::NavigatorBase::cd
virtual void cd()
Definition: DQMStore.cc:29
Phase2ITValidateCluster::SimHitsMap
std::map< unsigned int, std::vector< PSimHit > > SimHitsMap
Definition: Phase2ITValidateCluster.cc:51
Point3DBase< float, LocalTag >
DQMEDAnalyzer.h
edm::ConfigurationDescriptions
Definition: ConfigurationDescriptions.h:28
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
MonitorElement.h
edm::ParameterSet
Definition: ParameterSet.h:47
edm::Transition
Transition
Definition: Transition.h:12
Event.h
Phase2ITValidateCluster::ClusterMEs::deltaY_P_primary
MonitorElement * deltaY_P_primary
Definition: Phase2ITValidateCluster.cc:66
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
iEvent
int iEvent
Definition: GenABIO.cc:224
Phase2ITValidateCluster::geomToken_
const edm::ESGetToken< TrackerGeometry, TrackerDigiGeometryRecord > geomToken_
Definition: Phase2ITValidateCluster.cc:86
Phase2ITValidateCluster::ClusterMEs::deltaX_P_primary
MonitorElement * deltaX_P_primary
Definition: Phase2ITValidateCluster.cc:65
edm::EventSetup::getHandle
ESHandle< T > getHandle(const ESGetToken< T, R > &iToken) const
Definition: EventSetup.h:155
trackerHitRTTI::vector
Definition: trackerHitRTTI.h:21
PVValHelper::dy
Definition: PVValidationHelpers.h:50
Phase2ITValidateCluster::SimTracksMap
std::map< unsigned int, SimTrack > SimTracksMap
Definition: Phase2ITValidateCluster.cc:52
edm::EventSetup
Definition: EventSetup.h:58
phase2tkutil::cmtomicron
static constexpr float cmtomicron
Definition: TrackerPhase2ValidationUtil.h:9
DetSetVector.h
Phase2ITValidateCluster::dqmBeginRun
void dqmBeginRun(const edm::Run &iRun, const edm::EventSetup &iSetup) override
Definition: Phase2ITValidateCluster.cc:122
edm::ESGetToken< TrackerGeometry, TrackerDigiGeometryRecord >
ALCARECODTCalibSynchCosmicsDQM_cff.folderName
folderName
Definition: ALCARECODTCalibSynchCosmicsDQM_cff.py:9
InputTag.h
Phase2ITValidateCluster::~Phase2ITValidateCluster
~Phase2ITValidateCluster() override
Definition: Phase2ITValidateCluster.cc:114
Phase2ITValidateCluster::getSimTrackId
std::vector< unsigned int > getSimTrackId(const edm::Handle< edm::DetSetVector< PixelDigiSimLink >> &pixelSimLinks, const DetId &detId, unsigned int channel)
Definition: Phase2ITValidateCluster.cc:298
submitPVResolutionJobs.desc
string desc
Definition: submitPVResolutionJobs.py:251
std
Definition: JetResolutionObject.h:76
phase2tkutil::getITHistoId
std::string getITHistoId(uint32_t det_id, const TrackerTopology *tTopo)
Definition: TrackerPhase2DQMUtil.cc:2
edm::SimTrackContainer
std::vector< SimTrack > SimTrackContainer
Definition: SimTrackContainer.h:12
DetId.h
Phase2ITValidateCluster::bookLayerHistos
void bookLayerHistos(DQMStore::IBooker &ibooker, uint32_t det_it, const std::string &subdir)
Definition: Phase2ITValidateCluster.cc:267
Frameworkfwd.h
ESWatcher.h
PixelGeomDetUnit.h
Phase2ITValidateCluster::fillDescriptions
static void fillDescriptions(edm::ConfigurationDescriptions &descriptions)
Definition: Phase2ITValidateCluster.cc:312
edm::ParameterSet::getParameter
T getParameter(std::string const &) const
Definition: ParameterSet.h:303
dqm::implementation::IBooker
Definition: DQMStore.h:43
GeomDetEnumerators::P2PXB
Definition: GeomDetEnumerators.h:27
Phase2ITValidateCluster::fillITHistos
void fillITHistos(const edm::Event &iEvent, const std::vector< edm::Handle< edm::PSimHitContainer >> &simHits, const std::map< unsigned int, SimTrack > &simTracks)
Definition: Phase2ITValidateCluster.cc:156
Phase2ITValidateCluster::clustersToken_
edm::EDGetTokenT< edmNew::DetSetVector< SiPixelCluster > > clustersToken_
Definition: Phase2ITValidateCluster.cc:84
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
DeDxTools::esConsumes
ESGetTokenH3DDVariant esConsumes(std::string const &Reccord, edm::ConsumesCollector &)
Definition: DeDxTools.cc:283
edm::Event
Definition: Event.h:73
Phase2ITValidateCluster::topoToken_
const edm::ESGetToken< TrackerTopology, TrackerTopologyRcd > topoToken_
Definition: Phase2ITValidateCluster.cc:87
SimTrackContainer.h
DetSetVectorNew.h
edm::InputTag
Definition: InputTag.h:15
Phase2ITValidateCluster::simtrackminpt_
double simtrackminpt_
Definition: Phase2ITValidateCluster.cc:80
PVValHelper::dx
Definition: PVValidationHelpers.h:49
SimVertexContainer.h
GeomDetEnumerators::P2PXEC
Definition: GeomDetEnumerators.h:28
TrackerGeometry
Definition: TrackerGeometry.h:14
edm::DetSet::const_iterator
collection_type::const_iterator const_iterator
Definition: DetSet.h:31