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")),
107  geomToken_(esConsumes<TrackerGeometry, TrackerDigiGeometryRecord, edm::Transition::BeginRun>()),
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 minx = 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  if (!closestSimHit || fabs(simhitIt.localPosition().x() - localPosCluster.x()) < minx) {
207  minx = abs(simhitIt.localPosition().x() - localPosCluster.x());
208  closestSimHit = &simhitIt;
209  }
210  }
211  }
212  } //end loop over PSimhitcontainers
213  } //end loop over simHits
214 
215  if (!closestSimHit)
216  continue;
217  // only look at simhits from highpT tracks
218  auto simTrackIt(simTracks.find(closestSimHit->trackId()));
219  if (simTrackIt == simTracks.end())
220  continue;
221  Local3DPoint localPosSimHit(closestSimHit->localPosition());
222  const double deltaX = localPosCluster.x() - localPosSimHit.x();
223  const double deltaY = localPosCluster.y() - localPosSimHit.y();
224 
225  auto layerMEIt = layerMEs_.find(folderkey);
226  if (layerMEIt == layerMEs_.end())
227  continue;
228 
229  ClusterMEs& local_mes = layerMEIt->second;
230  local_mes.deltaX_P->Fill(deltaX);
231  local_mes.deltaY_P->Fill(deltaY);
232  // Primary particles only
233  if (phase2tkutil::isPrimary(simTrackIt->second, closestSimHit)) {
234  local_mes.deltaX_P_primary->Fill(deltaX);
235  local_mes.deltaY_P_primary->Fill(deltaY);
236  }
237  }
238  }
239 }
240 
241 //
242 // -- Book Histograms
243 //
245  edm::Run const& iRun,
246  edm::EventSetup const& iSetup) {
247  std::string top_folder = config_.getParameter<std::string>("TopFolderName");
248  edm::LogInfo("Phase2ITValidateCluster") << " Booking Histograms in: " << top_folder;
249 
250  edm::ESWatcher<TrackerDigiGeometryRecord> theTkDigiGeomWatcher;
251  if (theTkDigiGeomWatcher.check(iSetup)) {
252  for (auto const& det_u : tkGeom_->detUnits()) {
253  //Always check TrackerNumberingBuilder before changing this part
254  if (!(det_u->subDetector() == GeomDetEnumerators::SubDetector::P2PXB ||
255  det_u->subDetector() == GeomDetEnumerators::SubDetector::P2PXEC))
256  continue; //continue if not Pixel
257  uint32_t detId_raw = det_u->geographicalId().rawId();
258  bookLayerHistos(ibooker, detId_raw, top_folder);
259  }
260  }
261 }
262 
264 void Phase2ITValidateCluster::bookLayerHistos(DQMStore::IBooker& ibooker, uint32_t det_id, const std::string& subdir) {
266  if (folderName.empty()) {
267  edm::LogWarning("Phase2ITValidateCluster") << ">>>> Invalid histo_id ";
268  return;
269  }
270 
271  if (layerMEs_.find(folderName) == layerMEs_.end()) {
272  ibooker.cd();
273  ibooker.setCurrentFolder(subdir + '/' + folderName);
274  edm::LogInfo("Phase2TrackerValidateDigi") << " Booking Histograms in: " << subdir + '/' + folderName;
275  ClusterMEs local_mes;
276 
277  local_mes.deltaX_P =
279 
280  local_mes.deltaY_P =
282 
283  // Puting primary digis in a subfolder
284  ibooker.setCurrentFolder(subdir + '/' + folderName + "/PrimarySimHits");
285 
286  local_mes.deltaX_P_primary =
287  phase2tkutil::book1DFromPSet(config_.getParameter<edm::ParameterSet>("Delta_X_Pixel_Primary"), ibooker);
288 
289  local_mes.deltaY_P_primary =
290  phase2tkutil::book1DFromPSet(config_.getParameter<edm::ParameterSet>("Delta_Y_Pixel_Primary"), ibooker);
291  layerMEs_.emplace(folderName, local_mes);
292  }
293 }
294 
295 std::vector<unsigned int> Phase2ITValidateCluster::getSimTrackId(
296  const edm::Handle<edm::DetSetVector<PixelDigiSimLink>>& pixelSimLinks, const DetId& detId, unsigned int channel) {
297  std::vector<unsigned int> retvec;
298  edm::DetSetVector<PixelDigiSimLink>::const_iterator DSViter(pixelSimLinks->find(detId));
299  if (DSViter == pixelSimLinks->end())
300  return retvec;
301  for (edm::DetSet<PixelDigiSimLink>::const_iterator it = DSViter->data.begin(); it != DSViter->data.end(); ++it) {
302  if (channel == it->channel()) {
303  retvec.push_back(it->SimTrackId());
304  }
305  }
306  return retvec;
307 }
308 
311  //for macro-pixel sensors
312  {
314  psd0.add<std::string>("name", "Delta_X_Pixel");
315  psd0.add<std::string>("title", "#Delta X;Cluster resolution X dimension");
316  psd0.add<bool>("switch", true);
317  psd0.add<double>("xmax", 5.0);
318  psd0.add<double>("xmin", -5.0);
319  psd0.add<int>("NxBins", 100);
320  desc.add<edm::ParameterSetDescription>("Delta_X_Pixel", psd0);
321  }
322  {
324  psd0.add<std::string>("name", "Delta_Y_Pixel");
325  psd0.add<std::string>("title", "#Delta Y ;Cluster resolution Y dimension");
326  psd0.add<double>("xmin", -5.0);
327  psd0.add<bool>("switch", true);
328  psd0.add<double>("xmax", 5.0);
329  psd0.add<int>("NxBins", 100);
330  desc.add<edm::ParameterSetDescription>("Delta_Y_Pixel", psd0);
331  }
332  {
334  psd0.add<std::string>("name", "Delta_X_Pixel_Primary");
335  psd0.add<std::string>("title", "#Delta X ;cluster resolution X dimension");
336  psd0.add<double>("xmin", -5.0);
337  psd0.add<bool>("switch", true);
338  psd0.add<double>("xmax", 5.0);
339  psd0.add<int>("NxBins", 100);
340  desc.add<edm::ParameterSetDescription>("Delta_X_Pixel_Primary", psd0);
341  }
342  {
344  psd0.add<std::string>("name", "Delta_Y_Pixel_Primary");
345  psd0.add<std::string>("title", "#Delta Y ;cluster resolution Y dimension");
346  psd0.add<double>("xmin", -5.0);
347  psd0.add<bool>("switch", true);
348  psd0.add<double>("xmax", 5.0);
349  psd0.add<int>("NxBins", 100);
350  desc.add<edm::ParameterSetDescription>("Delta_Y_Pixel_Primary", psd0);
351  }
352 
353  desc.add<std::string>("TopFolderName", "TrackerPhase2ITClusterV");
354  desc.add<edm::InputTag>("ClusterSource", edm::InputTag("siPixelClusters"));
355  desc.add<edm::InputTag>("InnerTrackerDigiSimLinkSource", edm::InputTag("simSiPixelDigis", "Pixel"));
356  desc.add<edm::InputTag>("simtracks", edm::InputTag("g4SimHits"));
357  desc.add<double>("SimTrackMinPt", 0.0);
358  desc.add<std::vector<edm::InputTag>>("PSimHitSource",
359  {
360  edm::InputTag("g4SimHits:TrackerHitsPixelBarrelLowTof"),
361  edm::InputTag("g4SimHits:TrackerHitsPixelBarrelHighTof"),
362  edm::InputTag("g4SimHits:TrackerHitsPixelEndcapLowTof"),
363  edm::InputTag("g4SimHits:TrackerHitsPixelEndcapHighTof"),
364  });
365  descriptions.add("Phase2ITValidateCluster", desc);
366 }
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
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
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:89287
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:27
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:244
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
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
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:148
trackerHitRTTI::vector
Definition: trackerHitRTTI.h:21
Phase2ITValidateCluster::SimTracksMap
std::map< unsigned int, SimTrack > SimTracksMap
Definition: Phase2ITValidateCluster.cc:52
edm::EventSetup
Definition: EventSetup.h:57
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:295
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:264
Frameworkfwd.h
ESWatcher.h
PixelGeomDetUnit.h
Phase2ITValidateCluster::fillDescriptions
static void fillDescriptions(edm::ConfigurationDescriptions &descriptions)
Definition: Phase2ITValidateCluster.cc:309
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
funct::abs
Abs< T >::type abs(const T &t)
Definition: Abs.h:22
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
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
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