CMS 3D CMS Logo

List of all members | Classes | Public Types | Public Member Functions | Static Public Member Functions | Public Attributes | Private Types | Private Member Functions | Private Attributes
TrackerHitAssociator Class Reference

#include <TrackerHitAssociator.h>

Classes

struct  Config
 

Public Types

typedef std::map< subDetTofBin, unsigned int > simhit_collectionMap
 
typedef std::map< unsigned int, std::vector< PSimHit > > simhit_map
 
typedef std::pair< unsigned int, unsigned int > simhitAddr
 
typedef unsigned int simHitCollectionID
 
typedef std::pair< unsigned int, unsigned int > subDetTofBin
 

Public Member Functions

void associateCluster (const SiStripCluster *clust, const DetId &detid, std::vector< SimHitIdpr > &simtrackid, std::vector< PSimHit > &simhit) const
 
std::vector< SimHitIdprassociateFastRecHit (const FastTrackerRecHit *rechit) const
 
std::vector< PSimHitassociateHit (const TrackingRecHit &thit) const
 
std::vector< SimHitIdprassociateHitId (const TrackingRecHit &thit) const
 
void associateHitId (const TrackingRecHit &thit, std::vector< SimHitIdpr > &simhitid, std::vector< simhitAddr > *simhitCFPos=nullptr) const
 
std::vector< SimHitIdprassociateMatchedRecHit (const SiStripMatchedRecHit2D *matchedrechit, std::vector< simhitAddr > *simhitCFPos=nullptr) const
 
std::vector< PSimHitassociateMultiRecHit (const SiTrackerMultiRecHit *multirechit) const
 
std::vector< SimHitIdprassociateMultiRecHitId (const SiTrackerMultiRecHit *multirechit, std::vector< simhitAddr > *simhitCFPos=nullptr) const
 
void associatePhase2TrackerRecHit (const Phase2TrackerRecHit1D *rechit, std::vector< SimHitIdpr > &simtrackid, std::vector< simhitAddr > *simhitCFPos=nullptr) const
 
void associatePixelRecHit (const SiPixelRecHit *pixelrechit, std::vector< SimHitIdpr > &simtrackid, std::vector< simhitAddr > *simhitCFPos=nullptr) const
 
std::vector< SimHitIdprassociateProjectedRecHit (const ProjectedSiStripRecHit2D *projectedrechit, std::vector< simhitAddr > *simhitCFPos=nullptr) const
 
void associateSimpleRecHitCluster (const SiStripCluster *clust, const DetId &detid, std::vector< SimHitIdpr > &simtrackid, std::vector< simhitAddr > *simhitCFPos=nullptr) const
 
template<typename T >
void associateSiStripRecHit (const T *simplerechit, std::vector< SimHitIdpr > &simtrackid, std::vector< simhitAddr > *simhitCFPos=nullptr) const
 
 TrackerHitAssociator (const edm::Event &e, const Config &config)
 
virtual ~TrackerHitAssociator ()
 

Static Public Member Functions

static void fillPSetDescription (edm::ParameterSetDescription &descriptions)
 

Public Attributes

simhit_collectionMap SimHitCollMap
 
simhit_map SimHitMap
 

Private Types

typedef std::vector< std::string > vstring
 

Private Member Functions

void makeMaps (const edm::Event &theEvent, const Config &config)
 
std::string printDetBnchEvtTrk (const DetId &detid, const uint32_t &detID, std::vector< SimHitIdpr > &simtrackid) const
 

Private Attributes

bool assocHitbySimTrack_
 
bool doPixel_
 
bool doStrip_
 
bool doTrackAssoc_
 
edm::Handle< edm::DetSetVector< PixelDigiSimLink > > ph2trackerdigisimlink
 
edm::Handle< edm::DetSetVector< PixelDigiSimLink > > pixeldigisimlink
 
edm::Handle< edm::DetSetVector< StripDigiSimLink > > stripdigisimlink
 
bool useOTph2_
 

Detailed Description

Definition at line 53 of file TrackerHitAssociator.h.

Member Typedef Documentation

◆ simhit_collectionMap

Definition at line 117 of file TrackerHitAssociator.h.

◆ simhit_map

typedef std::map<unsigned int, std::vector<PSimHit> > TrackerHitAssociator::simhit_map

Definition at line 115 of file TrackerHitAssociator.h.

◆ simhitAddr

typedef std::pair<unsigned int, unsigned int> TrackerHitAssociator::simhitAddr

Definition at line 74 of file TrackerHitAssociator.h.

◆ simHitCollectionID

Definition at line 75 of file TrackerHitAssociator.h.

◆ subDetTofBin

typedef std::pair<unsigned int, unsigned int> TrackerHitAssociator::subDetTofBin

Definition at line 74 of file TrackerHitAssociator.h.

◆ vstring

typedef std::vector<std::string> TrackerHitAssociator::vstring
private

Definition at line 121 of file TrackerHitAssociator.h.

Constructor & Destructor Documentation

◆ TrackerHitAssociator()

TrackerHitAssociator::TrackerHitAssociator ( const edm::Event e,
const Config config 
)

Definition at line 116 of file TrackerHitAssociator.cc.

References doPixel_, doStrip_, doTrackAssoc_, MillePedeFileConverter_cfg::e, makeMaps(), ph2trackerdigisimlink, pixeldigisimlink, stripdigisimlink, and useOTph2_.

117  : doPixel_(config.doPixel_),
118  doStrip_(config.doStrip_),
119  useOTph2_(config.useOTph2_),
120  doTrackAssoc_(config.doTrackAssoc_),
121  assocHitbySimTrack_(config.assocHitbySimTrack_) {
122  //if track association there is no need to access the input collections
123  if (!doTrackAssoc_) {
124  makeMaps(e, config);
125  }
126 
127  if (doStrip_) {
128  if (useOTph2_)
129  e.getByToken(config.ph2OTrToken_, ph2trackerdigisimlink);
130  else
131  e.getByToken(config.stripToken_, stripdigisimlink);
132  }
133  if (doPixel_)
134  e.getByToken(config.pixelToken_, pixeldigisimlink);
135 }
edm::Handle< edm::DetSetVector< PixelDigiSimLink > > pixeldigisimlink
edm::Handle< edm::DetSetVector< StripDigiSimLink > > stripdigisimlink
Definition: config.py:1
void makeMaps(const edm::Event &theEvent, const Config &config)
edm::Handle< edm::DetSetVector< PixelDigiSimLink > > ph2trackerdigisimlink

◆ ~TrackerHitAssociator()

virtual TrackerHitAssociator::~TrackerHitAssociator ( )
inlinevirtual

Definition at line 70 of file TrackerHitAssociator.h.

70 {}

Member Function Documentation

◆ associateCluster()

void TrackerHitAssociator::associateCluster ( const SiStripCluster clust,
const DetId detid,
std::vector< SimHitIdpr > &  simtrackid,
std::vector< PSimHit > &  simhit 
) const

Definition at line 399 of file TrackerHitAssociator.cc.

References associateSimpleRecHitCluster(), ALCARECOPPSCalTrackBasedSel_cff::detid, ALPAKA_ACCELERATOR_NAMESPACE::vertexFinder::it, LogDebug, and SimHitMap.

402  {
403  std::vector<simhitAddr> simhitCFPos;
404  associateSimpleRecHitCluster(clust, detid, simtrackid, &simhitCFPos);
405 
406  for (auto const& theSimHitAddr : simhitCFPos) {
407  simHitCollectionID theSimHitCollID = theSimHitAddr.first;
408  auto it = SimHitMap.find(theSimHitCollID);
409 
410  if (it != SimHitMap.end()) {
411  unsigned int theSimHitIndex = theSimHitAddr.second;
412  if (theSimHitIndex < (it->second).size())
413  simhit.push_back((it->second)[theSimHitIndex]);
414  LogDebug("TrkHitAssocTrace") << "For cluster, simHit detId = " << (it->second)[theSimHitIndex].detUnitId()
415  << " address = (" << theSimHitCollID << ", " << theSimHitIndex
416  << "), process = " << (it->second)[theSimHitIndex].processType()
417  << " (bnch, evt, trk) = (" << (it->second)[theSimHitIndex].eventId().bunchCrossing()
418  << ", " << (it->second)[theSimHitIndex].eventId().event() << ", "
419  << (it->second)[theSimHitIndex].trackId() << ")" << std::endl;
420  }
421  }
422 }
void associateSimpleRecHitCluster(const SiStripCluster *clust, const DetId &detid, std::vector< SimHitIdpr > &simtrackid, std::vector< simhitAddr > *simhitCFPos=nullptr) const
#define LogDebug(id)

◆ associateFastRecHit()

std::vector< SimHitIdpr > TrackerHitAssociator::associateFastRecHit ( const FastTrackerRecHit rechit) const

Definition at line 669 of file TrackerHitAssociator.cc.

References FastTrackerRecHit::nSimTrackIds(), FastTrackerRecHit::simTrackEventId(), and FastTrackerRecHit::simTrackId().

Referenced by associateHitId().

669  {
670  vector<SimHitIdpr> simtrackid;
671  simtrackid.clear();
672  for (size_t index = 0, indexEnd = rechit->nSimTrackIds(); index < indexEnd; ++index) {
673  SimHitIdpr currentId(rechit->simTrackId(index), EncodedEventId(rechit->simTrackEventId(index)));
674  simtrackid.push_back(currentId);
675  }
676  return simtrackid;
677 }
virtual int32_t simTrackId(size_t i) const
virtual size_t nSimTrackIds() const
virtual int32_t simTrackEventId(size_t i) const
std::pair< uint32_t, EncodedEventId > SimHitIdpr

◆ associateHit()

std::vector< PSimHit > TrackerHitAssociator::associateHit ( const TrackingRecHit thit) const

Check if it's the gluedDet.

Definition at line 225 of file TrackerHitAssociator.cc.

References assocHitbySimTrack_, associateHitId(), associateMultiRecHit(), SplitLinear::begin, EncodedEventId::bunchCrossing(), ALCARECOPPSCalTrackBasedSel_cff::detid, PSimHit::detUnitId(), doTrackAssoc_, mps_fire::end, EncodedEventId::event(), PSimHit::eventId(), dqmdumpme::first, TrackingRecHit::geographicalId(), ALPAKA_ACCELERATOR_NAMESPACE::vertexFinder::it, LogDebug, printDetBnchEvtTrk(), PSimHit::processType(), mps_fire::result, edm::second(), SimHitMap, and PSimHit::trackId().

Referenced by CkfDebugger::analyseCompatibleMeasurements(), SiPixelPhase1RecHitsV::analyze(), SiPixelRecHitsValid::analyze(), SiPixelErrorEstimation::analyze(), SiPixelTrackingRecHitsValid::analyze(), CkfDebugger::associated(), associateMultiRecHit(), PixelClusterShapeExtractor::checkSimHits(), CkfDebugger::correctTrajectory(), GlobalRecHitsAnalyzer::fillTrk(), GlobalRecHitsProducer::fillTrk(), spr::matchedSimTrack(), CkfDebugger::nextCorrectHits(), SiStripRecHitsValid::rechitanalysis(), SiStripTrackingRecHitsValid::rechitanalysis(), SiStripRecHitsValid::rechitanalysis_matched(), SiStripTrackingRecHitsValid::rechitanalysis_matched(), and CkfDebugger::testSeed().

225  {
226  if (const SiTrackerMultiRecHit* rechit = dynamic_cast<const SiTrackerMultiRecHit*>(&thit)) {
227  return associateMultiRecHit(rechit);
228  }
229 
230  //vector with the matched SimHit
231  std::vector<PSimHit> result;
232 
233  if (doTrackAssoc_)
234  return result; // We don't want the SimHits for this RecHit
235 
236  // Vectors to contain lists of matched simTracks, simHits
237  std::vector<SimHitIdpr> simtrackid;
238  std::vector<simhitAddr> simhitCFPos;
239 
240  //get the Detector type of the rechit
241  DetId detid = thit.geographicalId();
242  uint32_t detID = detid.rawId();
243 
244  // Get the vectors of simtrackIDs and simHit addresses associated with this rechit
245  associateHitId(thit, simtrackid, &simhitCFPos);
246  LogDebug("TrkHitAssocTrace") << printDetBnchEvtTrk(detid, detID, simtrackid);
247 
248  // Get the vector of simHits associated with this rechit
249  if (!assocHitbySimTrack_ && !simhitCFPos.empty()) {
250  // We use the indices to the simHit collections taken
251  // from the DigiSimLinks and returned in simhitCFPos.
252  // simhitCFPos[i] contains the full address of the ith simhit:
253  // <collection index, simhit index>
254 
255  //check if the recHit is a SiStripMatchedRecHit2D
256  if (dynamic_cast<const SiStripMatchedRecHit2D*>(&thit)) {
257  for (auto const& theSimHitAddr : simhitCFPos) {
258  simHitCollectionID theSimHitCollID = theSimHitAddr.first;
259  auto it = SimHitMap.find(theSimHitCollID);
260  if (it != SimHitMap.end()) {
261  unsigned int theSimHitIndex = theSimHitAddr.second;
262  if (theSimHitIndex < (it->second).size()) {
263  const PSimHit& theSimHit = (it->second)[theSimHitIndex];
264  // Try to remove ghosts by requiring a match to the simTrack also
265  unsigned int simHitid = theSimHit.trackId();
266  EncodedEventId simHiteid = theSimHit.eventId();
267  for (auto const& id : simtrackid) {
268  if (simHitid == id.first && simHiteid == id.second) {
269  result.push_back(theSimHit);
270  }
271  }
272  LogDebug("TrkHitAssocTrace") << "by CFpos, simHit detId = " << theSimHit.detUnitId() << " address = ("
273  << theSimHitAddr.first << ", " << theSimHitIndex
274  << "), process = " << theSimHit.processType() << " ("
275  << theSimHit.eventId().bunchCrossing() << ", " << theSimHit.eventId().event()
276  << ", " << theSimHit.trackId() << ")" << std::endl;
277  }
278  }
279  }
280  } else { // Not a SiStripMatchedRecHit2D
281  for (auto const& theSimHitAddr : simhitCFPos) {
282  simHitCollectionID theSimHitCollID = theSimHitAddr.first;
283  auto it = SimHitMap.find(theSimHitCollID);
284  if (it != SimHitMap.end()) {
285  unsigned int theSimHitIndex = theSimHitAddr.second;
286  if (theSimHitIndex < (it->second).size()) {
287  result.push_back((it->second)[theSimHitIndex]);
288  LogDebug("TrkHitAssocTrace") << "by CFpos, simHit detId = " << (it->second)[theSimHitIndex].detUnitId()
289  << " address = (" << theSimHitCollID << ", " << theSimHitIndex
290  << "), process = " << (it->second)[theSimHitIndex].processType() << " ("
291  << (it->second)[theSimHitIndex].eventId().bunchCrossing() << ", "
292  << (it->second)[theSimHitIndex].eventId().event() << ", "
293  << (it->second)[theSimHitIndex].trackId() << ")" << std::endl;
294  }
295  }
296  }
297  }
298  return result;
299  } // if !assocHitbySimTrack
300 
301  // Get the SimHit from the trackid instead
302  auto it = SimHitMap.find(detID);
303  if (it != SimHitMap.end()) {
304  for (auto const& ihit : it->second) {
305  unsigned int simHitid = ihit.trackId();
306  EncodedEventId simHiteid = ihit.eventId();
307  for (auto id : simtrackid) {
308  if (simHitid == id.first && simHiteid == id.second) {
309  result.push_back(ihit);
310  LogDebug("TrkHitAssocTrace") << "by TrackID, simHit detId = " << ihit.detUnitId()
311  << ", process = " << ihit.processType() << " (" << ihit.eventId().bunchCrossing()
312  << ", " << ihit.eventId().event() << ", " << ihit.trackId() << ")" << std::endl;
313  break;
314  }
315  }
316  }
317 
318  } else {
320  auto itrphi = SimHitMap.find(detID + 2); //iterator to the simhit in the rphi module
321  auto itster = SimHitMap.find(detID + 1); //iterator to the simhit in the stereo module
322  if (itrphi != SimHitMap.end() && itster != SimHitMap.end()) {
323  std::vector<PSimHit> simHitVector = itrphi->second;
324  simHitVector.insert(simHitVector.end(), (itster->second).begin(), (itster->second).end());
325  for (auto const& ihit : simHitVector) {
326  unsigned int simHitid = ihit.trackId();
327  EncodedEventId simHiteid = ihit.eventId();
328  for (auto const& id : simtrackid) {
329  if (simHitid == id.first && simHiteid == id.second) {
330  result.push_back(ihit);
331  LogDebug("TrkHitAssocTrace") << "by TrackID, simHit detId = " << ihit.detUnitId()
332  << ", process = " << ihit.processType() << " ("
333  << ihit.eventId().bunchCrossing() << ", " << ihit.eventId().event() << ", "
334  << ihit.trackId() << ")" << std::endl;
335  break;
336  }
337  }
338  }
339  }
340  }
341 
342  return result;
343 }
std::string printDetBnchEvtTrk(const DetId &detid, const uint32_t &detID, std::vector< SimHitIdpr > &simtrackid) const
int event() const
get the contents of the subdetector field (should be protected?)
unsigned int detUnitId() const
Definition: PSimHit.h:99
std::vector< SimHitIdpr > associateHitId(const TrackingRecHit &thit) const
U second(std::pair< T, U > const &p)
std::vector< PSimHit > associateMultiRecHit(const SiTrackerMultiRecHit *multirechit) const
int bunchCrossing() const
get the detector field from this detid
unsigned short processType() const
Definition: PSimHit.h:131
unsigned int trackId() const
Definition: PSimHit.h:108
EncodedEventId eventId() const
Definition: PSimHit.h:119
Definition: DetId.h:17
DetId geographicalId() const
#define LogDebug(id)

◆ associateHitId() [1/2]

std::vector< SimHitIdpr > TrackerHitAssociator::associateHitId ( const TrackingRecHit thit) const

◆ associateHitId() [2/2]

void TrackerHitAssociator::associateHitId ( const TrackingRecHit thit,
std::vector< SimHitIdpr > &  simhitid,
std::vector< simhitAddr > *  simhitCFPos = nullptr 
) const

Definition at line 351 of file TrackerHitAssociator.cc.

References associateFastRecHit(), associateMatchedRecHit(), associateMultiRecHitId(), associatePhase2TrackerRecHit(), associatePixelRecHit(), associateProjectedRecHit(), associateSiStripRecHit(), and trackerHitRTTI::isFast().

353  {
354  simtkid.clear();
355 
356  if (const SiTrackerMultiRecHit* rechit = dynamic_cast<const SiTrackerMultiRecHit*>(&thit))
357  simtkid = associateMultiRecHitId(rechit, simhitCFPos);
358 
359  //check if it is a simple SiStripRecHit2D
360  if (const SiStripRecHit2D* rechit = dynamic_cast<const SiStripRecHit2D*>(&thit))
361  associateSiStripRecHit(rechit, simtkid, simhitCFPos);
362 
363  //check if it is a SiStripRecHit1D
364  else if (const SiStripRecHit1D* rechit = dynamic_cast<const SiStripRecHit1D*>(&thit))
365  associateSiStripRecHit(rechit, simtkid, simhitCFPos);
366 
367  //check if it is a SiStripMatchedRecHit2D
368  else if (const SiStripMatchedRecHit2D* rechit = dynamic_cast<const SiStripMatchedRecHit2D*>(&thit))
369  simtkid = associateMatchedRecHit(rechit, simhitCFPos);
370 
371  //check if it is a ProjectedSiStripRecHit2D
372  else if (const ProjectedSiStripRecHit2D* rechit = dynamic_cast<const ProjectedSiStripRecHit2D*>(&thit))
373  simtkid = associateProjectedRecHit(rechit, simhitCFPos);
374 
375  //check if it is a Phase2TrackerRecHit1D
376  else if (const Phase2TrackerRecHit1D* rechit = dynamic_cast<const Phase2TrackerRecHit1D*>(&thit))
377  associatePhase2TrackerRecHit(rechit, simtkid, simhitCFPos);
378 
379  //check if it is a SiPixelRecHit
380  else if (const SiPixelRecHit* rechit = dynamic_cast<const SiPixelRecHit*>(&thit))
381  associatePixelRecHit(rechit, simtkid, simhitCFPos);
382 
383  //check if these are GSRecHits (from FastSim)
384  if (trackerHitRTTI::isFast(thit))
385  simtkid = associateFastRecHit(static_cast<const FastTrackerRecHit*>(&thit));
386 }
std::vector< SimHitIdpr > associateFastRecHit(const FastTrackerRecHit *rechit) const
void associatePixelRecHit(const SiPixelRecHit *pixelrechit, std::vector< SimHitIdpr > &simtrackid, std::vector< simhitAddr > *simhitCFPos=nullptr) const
void associateSiStripRecHit(const T *simplerechit, std::vector< SimHitIdpr > &simtrackid, std::vector< simhitAddr > *simhitCFPos=nullptr) const
std::vector< SimHitIdpr > associateMatchedRecHit(const SiStripMatchedRecHit2D *matchedrechit, std::vector< simhitAddr > *simhitCFPos=nullptr) const
std::vector< SimHitIdpr > associateMultiRecHitId(const SiTrackerMultiRecHit *multirechit, std::vector< simhitAddr > *simhitCFPos=nullptr) const
bool isFast(TrackingRecHit const &hit)
std::vector< SimHitIdpr > associateProjectedRecHit(const ProjectedSiStripRecHit2D *projectedrechit, std::vector< simhitAddr > *simhitCFPos=nullptr) const
void associatePhase2TrackerRecHit(const Phase2TrackerRecHit1D *rechit, std::vector< SimHitIdpr > &simtrackid, std::vector< simhitAddr > *simhitCFPos=nullptr) const
Our base class.
Definition: SiPixelRecHit.h:23

◆ associateMatchedRecHit()

std::vector< SimHitIdpr > TrackerHitAssociator::associateMatchedRecHit ( const SiStripMatchedRecHit2D matchedrechit,
std::vector< simhitAddr > *  simhitCFPos = nullptr 
) const

Definition at line 484 of file TrackerHitAssociator.cc.

References associateSiStripRecHit(), spr::find(), SiStripMatchedRecHit2D::monoHit(), and SiStripMatchedRecHit2D::stereoHit().

Referenced by associateHitId().

485  {
486  std::vector<SimHitIdpr> matched_mono;
487  std::vector<SimHitIdpr> matched_st;
488 
489  const SiStripRecHit2D mono = matchedrechit->monoHit();
490  const SiStripRecHit2D st = matchedrechit->stereoHit();
491  //associate the two simple hits separately
492  associateSiStripRecHit(&mono, matched_mono, simhitCFPos);
493  associateSiStripRecHit(&st, matched_st, simhitCFPos);
494 
495  //save in a vector all the simtrack-id's that are common to mono and stereo hits
496  std::vector<SimHitIdpr> simtrackid;
497  if (!(matched_mono.empty() || matched_st.empty())) {
498  for (auto const& mhit : matched_mono) {
499  //save only once the ID
500  if (find(simtrackid.begin(), simtrackid.end(), mhit) == simtrackid.end()) {
501  //save if the stereoID matched the monoID
502  if (find(matched_st.begin(), matched_st.end(), mhit) != matched_st.end()) {
503  simtrackid.push_back(mhit);
504  }
505  }
506  }
507  }
508  return simtrackid;
509 }
SiStripRecHit2D stereoHit() const
void associateSiStripRecHit(const T *simplerechit, std::vector< SimHitIdpr > &simtrackid, std::vector< simhitAddr > *simhitCFPos=nullptr) const
void find(edm::Handle< EcalRecHitCollection > &hits, DetId thisDet, std::vector< EcalRecHitCollection::const_iterator > &hit, bool debug=false)
Definition: FindCaloHit.cc:19
SiStripRecHit2D monoHit() const

◆ associateMultiRecHit()

std::vector< PSimHit > TrackerHitAssociator::associateMultiRecHit ( const SiTrackerMultiRecHit multirechit) const

Definition at line 640 of file TrackerHitAssociator.cc.

References associateHit(), mps_fire::i, SiTrackerMultiRecHit::recHits(), findQualityFiles::size, SiTrackerMultiRecHit::weight(), and SiTrackerMultiRecHit::weights().

Referenced by associateHit().

640  {
641  std::vector<const TrackingRecHit*> componenthits = multirechit->recHits();
642  // std::vector<PSimHit> assimhits;
643  int size = multirechit->weights().size(), idmostprobable = 0;
644 
645  for (int i = 0; i < size; ++i) {
646  if (multirechit->weight(i) > multirechit->weight(idmostprobable))
647  idmostprobable = i;
648  }
649 
650  return associateHit(*componenthits[idmostprobable]);
651 }
size
Write out results.
std::vector< float > const & weights() const
std::vector< PSimHit > associateHit(const TrackingRecHit &thit) const
float weight(unsigned int i) const
std::vector< const TrackingRecHit * > recHits() const override
Access to component RecHits (if any)

◆ associateMultiRecHitId()

std::vector< SimHitIdpr > TrackerHitAssociator::associateMultiRecHitId ( const SiTrackerMultiRecHit multirechit,
std::vector< simhitAddr > *  simhitCFPos = nullptr 
) const

Definition at line 653 of file TrackerHitAssociator.cc.

References associateHitId(), mps_fire::i, SiTrackerMultiRecHit::recHits(), findQualityFiles::size, SiTrackerMultiRecHit::weight(), and SiTrackerMultiRecHit::weights().

Referenced by associateHitId().

654  {
655  std::vector<const TrackingRecHit*> componenthits = multirechit->recHits();
656  int size = multirechit->weights().size(), idmostprobable = 0;
657 
658  for (int i = 0; i < size; ++i) {
659  if (multirechit->weight(i) > multirechit->weight(idmostprobable))
660  idmostprobable = i;
661  }
662 
663  std::vector<SimHitIdpr> simhitid;
664  associateHitId(*componenthits[idmostprobable], simhitid, simhitCFPos);
665  return simhitid;
666 }
size
Write out results.
std::vector< float > const & weights() const
std::vector< SimHitIdpr > associateHitId(const TrackingRecHit &thit) const
float weight(unsigned int i) const
std::vector< const TrackingRecHit * > recHits() const override
Access to component RecHits (if any)

◆ associatePhase2TrackerRecHit()

void TrackerHitAssociator::associatePhase2TrackerRecHit ( const Phase2TrackerRecHit1D rechit,
std::vector< SimHitIdpr > &  simtrackid,
std::vector< simhitAddr > *  simhitCFPos = nullptr 
) const

Definition at line 522 of file TrackerHitAssociator.cc.

References Phase2TrackerDigi::channelToPixel(), Phase2TrackerRecHit1D::cluster(), ALCARECOPPSCalTrackBasedSel_cff::detid, edm::DetSetVector< T >::end(), spr::find(), edm::DetSetVector< T >::find(), TrackingRecHit::geographicalId(), edm::Ref< C, T, F >::isNull(), ALPAKA_ACCELERATOR_NAMESPACE::vertexFinder::it, LogDebug, ph2trackerdigisimlink, and SimHitCollMap.

Referenced by associateHitId().

524  {
525  //
526  // Phase 2 outer tracker associator
527  //
528  DetId detid = rechit->geographicalId();
529  uint32_t detID = detid.rawId();
530 
531  auto isearch = ph2trackerdigisimlink->find(detID);
532  if (isearch != ph2trackerdigisimlink->end()) { //if it is not empty
533  auto link_detset = (*isearch);
534  Phase2TrackerRecHit1D::ClusterRef const& cluster = rechit->cluster();
535 
536  //check the reference is valid
537  if (!(cluster.isNull())) { //if the cluster is valid
538  int minRow = (*cluster).firstStrip();
539  int maxRow = (*cluster).firstStrip() + (*cluster).size();
540  int Col = (*cluster).column();
541  LogDebug("TrkHitAssocDbg") << " Cluster minRow " << minRow << " maxRow " << maxRow << " column " << Col
542  << std::endl;
543  int dsl = 0;
544  for (auto const& linkiter : link_detset.data) {
545  ++dsl;
546  std::pair<int, int> coord = Phase2TrackerDigi::channelToPixel(linkiter.channel());
547  LogDebug("TrkHitAssocDbg") << " " << dsl << ") Digi link: row " << coord.first << " col " << coord.second
548  << std::endl;
549  if (coord.first <= maxRow && coord.first >= minRow && coord.second == Col) {
550  LogDebug("TrkHitAssocDbg") << " !-> trackid " << linkiter.SimTrackId() << endl
551  << " fraction " << linkiter.fraction() << endl;
552  SimHitIdpr currentId(linkiter.SimTrackId(), linkiter.eventId());
553  if (find(simtrackid.begin(), simtrackid.end(), currentId) == simtrackid.end()) {
554  simtrackid.push_back(currentId);
555  }
556 
557  if (simhitCFPos != nullptr) {
558  //create a vector that contains all the positions (in the MixCollection) of the SimHits that contributed to the RecHit
559  //write position only once
560  unsigned int currentCFPos = linkiter.CFposition();
561  unsigned int tofBin = linkiter.TofBin();
562  subDetTofBin theSubDetTofBin = std::make_pair(detid.subdetId(), tofBin);
563  auto it = SimHitCollMap.find(theSubDetTofBin);
564  if (it != SimHitCollMap.end()) {
565  simhitAddr currentAddr = std::make_pair(it->second, currentCFPos);
566  if (find(simhitCFPos->begin(), simhitCFPos->end(), currentAddr) == simhitCFPos->end()) {
567  simhitCFPos->push_back(currentAddr);
568  }
569  }
570  }
571  }
572  } // end of simlink loop
573  } else {
574  edm::LogError("TrackerHitAssociator") << "no Phase2 outer tracker cluster reference attached";
575  }
576  }
577 }
iterator find(det_id_type id)
Definition: DetSetVector.h:255
ClusterRef cluster() const
std::pair< unsigned int, unsigned int > simhitAddr
Log< level::Error, false > LogError
void find(edm::Handle< EcalRecHitCollection > &hits, DetId thisDet, std::vector< EcalRecHitCollection::const_iterator > &hit, bool debug=false)
Definition: FindCaloHit.cc:19
std::pair< unsigned int, unsigned int > subDetTofBin
edm::Handle< edm::DetSetVector< PixelDigiSimLink > > ph2trackerdigisimlink
bool isNull() const
Checks for null.
Definition: Ref.h:229
iterator end()
Return the off-the-end iterator.
Definition: DetSetVector.h:316
simhit_collectionMap SimHitCollMap
Definition: DetId.h:17
std::pair< uint32_t, EncodedEventId > SimHitIdpr
DetId geographicalId() const
static std::pair< unsigned int, unsigned int > channelToPixel(unsigned int ch)
#define LogDebug(id)

◆ associatePixelRecHit()

void TrackerHitAssociator::associatePixelRecHit ( const SiPixelRecHit pixelrechit,
std::vector< SimHitIdpr > &  simtrackid,
std::vector< simhitAddr > *  simhitCFPos = nullptr 
) const

Definition at line 579 of file TrackerHitAssociator.cc.

References PixelDigi::channelToPixel(), SiPixelRecHit::cluster(), ALCARECOPPSCalTrackBasedSel_cff::detid, edm::DetSetVector< T >::end(), spr::find(), edm::DetSetVector< T >::find(), TrackingRecHit::geographicalId(), edm::Ref< C, T, F >::isNull(), ALPAKA_ACCELERATOR_NAMESPACE::vertexFinder::it, LogDebug, pixeldigisimlink, and SimHitCollMap.

Referenced by associateHitId().

581  {
582  //
583  // Pixel associator
584  //
585  DetId detid = pixelrechit->geographicalId();
586  uint32_t detID = detid.rawId();
587 
588  auto isearch = pixeldigisimlink->find(detID);
589  if (isearch != pixeldigisimlink->end()) { //if it is not empty
590  auto link_detset = (*isearch);
591  SiPixelRecHit::ClusterRef const& cluster = pixelrechit->cluster();
592 
593  //check the reference is valid
594 
595  if (!(cluster.isNull())) { //if the cluster is valid
596 
597  int minPixelRow = (*cluster).minPixelRow();
598  int maxPixelRow = (*cluster).maxPixelRow();
599  int minPixelCol = (*cluster).minPixelCol();
600  int maxPixelCol = (*cluster).maxPixelCol();
601  LogDebug("TrkHitAssocDbg") << " Cluster minRow " << minPixelRow << " maxRow " << maxPixelRow << std::endl
602  << " Cluster minCol " << minPixelCol << " maxCol " << maxPixelCol << std::endl;
603  int dsl = 0;
604  for (auto const& linkiter : link_detset.data) {
605  ++dsl;
606  std::pair<int, int> pixel_coord = PixelDigi::channelToPixel(linkiter.channel());
607  LogDebug("TrkHitAssocDbg") << " " << dsl << ") Digi link: row " << pixel_coord.first << " col "
608  << pixel_coord.second << std::endl;
609  if (pixel_coord.first <= maxPixelRow && pixel_coord.first >= minPixelRow && pixel_coord.second <= maxPixelCol &&
610  pixel_coord.second >= minPixelCol) {
611  LogDebug("TrkHitAssocDbg") << " !-> trackid " << linkiter.SimTrackId() << endl
612  << " fraction " << linkiter.fraction() << endl;
613  SimHitIdpr currentId(linkiter.SimTrackId(), linkiter.eventId());
614  if (find(simtrackid.begin(), simtrackid.end(), currentId) == simtrackid.end()) {
615  simtrackid.push_back(currentId);
616  }
617 
618  if (simhitCFPos != nullptr) {
619  //create a vector that contains all the positions (in the MixCollection) of the SimHits that contributed to the RecHit
620  //write position only once
621  unsigned int currentCFPos = linkiter.CFposition();
622  unsigned int tofBin = linkiter.TofBin();
623  subDetTofBin theSubDetTofBin = std::make_pair(detid.subdetId(), tofBin);
624  auto it = SimHitCollMap.find(theSubDetTofBin);
625  if (it != SimHitCollMap.end()) {
626  simhitAddr currentAddr = std::make_pair(it->second, currentCFPos);
627  if (find(simhitCFPos->begin(), simhitCFPos->end(), currentAddr) == simhitCFPos->end()) {
628  simhitCFPos->push_back(currentAddr);
629  }
630  }
631  }
632  }
633  }
634  } else {
635  edm::LogError("TrackerHitAssociator") << "no Pixel cluster reference attached";
636  }
637  }
638 }
ClusterRef cluster() const
Definition: SiPixelRecHit.h:47
edm::Handle< edm::DetSetVector< PixelDigiSimLink > > pixeldigisimlink
iterator find(det_id_type id)
Definition: DetSetVector.h:255
static std::pair< int, int > channelToPixel(int ch)
Definition: PixelDigi.h:69
std::pair< unsigned int, unsigned int > simhitAddr
Log< level::Error, false > LogError
void find(edm::Handle< EcalRecHitCollection > &hits, DetId thisDet, std::vector< EcalRecHitCollection::const_iterator > &hit, bool debug=false)
Definition: FindCaloHit.cc:19
std::pair< unsigned int, unsigned int > subDetTofBin
bool isNull() const
Checks for null.
Definition: Ref.h:229
iterator end()
Return the off-the-end iterator.
Definition: DetSetVector.h:316
simhit_collectionMap SimHitCollMap
Definition: DetId.h:17
std::pair< uint32_t, EncodedEventId > SimHitIdpr
DetId geographicalId() const
#define LogDebug(id)

◆ associateProjectedRecHit()

std::vector< SimHitIdpr > TrackerHitAssociator::associateProjectedRecHit ( const ProjectedSiStripRecHit2D projectedrechit,
std::vector< simhitAddr > *  simhitCFPos = nullptr 
) const

Definition at line 511 of file TrackerHitAssociator.cc.

References associateSiStripRecHit(), and ProjectedSiStripRecHit2D::originalHit().

Referenced by associateHitId().

512  {
513  //projectedRecHit is a "matched" rechit with only one component
514 
515  std::vector<SimHitIdpr> matched_mono;
516 
517  const SiStripRecHit2D mono = projectedrechit->originalHit();
518  associateSiStripRecHit(&mono, matched_mono, simhitCFPos);
519  return matched_mono;
520 }
void associateSiStripRecHit(const T *simplerechit, std::vector< SimHitIdpr > &simtrackid, std::vector< simhitAddr > *simhitCFPos=nullptr) const
SiStripRecHit2D originalHit() const

◆ associateSimpleRecHitCluster()

void TrackerHitAssociator::associateSimpleRecHitCluster ( const SiStripCluster clust,
const DetId detid,
std::vector< SimHitIdpr > &  simtrackid,
std::vector< simhitAddr > *  simhitCFPos = nullptr 
) const

Definition at line 424 of file TrackerHitAssociator.cc.

References SiStripCluster::amplitudes(), ALCARECOPPSCalTrackBasedSel_cff::detid, spr::find(), dqmdumpme::first, SiStripCluster::firstStrip(), createfilelist::int, ALPAKA_ACCELERATOR_NAMESPACE::vertexFinder::it, dqmdumpme::last, LogDebug, SimHitCollMap, SiStripCluster::size(), and stripdigisimlink.

Referenced by associateCluster(), and associateSiStripRecHit().

427  {
428  uint32_t detID = detid.rawId();
429  auto isearch = stripdigisimlink->find(detID);
430  if (isearch != stripdigisimlink->end()) { //if it is not empty
431  auto link_detset = (*isearch);
432 
433  if (clust != nullptr) { //the cluster is valid
434  int clusiz = clust->amplitudes().size();
435  int first = clust->firstStrip();
436  int last = first + clusiz;
437 
438  LogDebug("TrkHitAssocDbg") << "Cluster size " << clusiz << " first strip = " << first
439  << " last strip = " << last - 1 << std::endl
440  << " detID = " << detID << " DETSET size = " << link_detset.data.size() << std::endl;
441  int channel;
442  for (const auto& linkiter : link_detset.data) {
443  channel = (int)(linkiter.channel());
444  if (channel >= first && channel < last) {
445  LogDebug("TrkHitAssocDbg") << "Channel = " << std::setw(4) << linkiter.channel()
446  << ", TrackID = " << std::setw(8) << linkiter.SimTrackId()
447  << ", tofBin = " << std::setw(3) << linkiter.TofBin()
448  << ", fraction = " << std::setw(8) << linkiter.fraction()
449  << ", Position = " << linkiter.CFposition() << std::endl;
450  SimHitIdpr currentId(linkiter.SimTrackId(), linkiter.eventId());
451 
452  //create a vector with the list of SimTrack ID's of the tracks that contributed to the RecHit
453  //write the id only once in the vector
454 
455  if (find(simtrackid.begin(), simtrackid.end(), currentId) == simtrackid.end()) {
456  LogDebug("TrkHitAssocDbg") << " Adding track id = " << currentId.first
457  << " Event id = " << currentId.second.event()
458  << " Bunch Xing = " << currentId.second.bunchCrossing() << std::endl;
459  simtrackid.push_back(currentId);
460  }
461 
462  if (simhitCFPos != nullptr) {
463  //create a vector that contains all the positions (in the MixCollection) of the SimHits that contributed to the RecHit
464  //write position only once
465  unsigned int currentCFPos = linkiter.CFposition();
466  unsigned int tofBin = linkiter.TofBin();
467  subDetTofBin theSubDetTofBin = std::make_pair(detid.subdetId(), tofBin);
468  auto it = SimHitCollMap.find(theSubDetTofBin);
469  if (it != SimHitCollMap.end()) {
470  simhitAddr currentAddr = std::make_pair(it->second, currentCFPos);
471  if (find(simhitCFPos->begin(), simhitCFPos->end(), currentAddr) == simhitCFPos->end()) {
472  simhitCFPos->push_back(currentAddr);
473  }
474  }
475  }
476  }
477  }
478  } else {
479  edm::LogError("TrackerHitAssociator") << "no cluster reference attached";
480  }
481  }
482 }
uint16_t firstStrip() const
edm::Handle< edm::DetSetVector< StripDigiSimLink > > stripdigisimlink
std::pair< unsigned int, unsigned int > simhitAddr
Log< level::Error, false > LogError
void find(edm::Handle< EcalRecHitCollection > &hits, DetId thisDet, std::vector< EcalRecHitCollection::const_iterator > &hit, bool debug=false)
Definition: FindCaloHit.cc:19
std::pair< unsigned int, unsigned int > subDetTofBin
SiStripCluster const & amplitudes() const
auto size() const
simhit_collectionMap SimHitCollMap
std::pair< uint32_t, EncodedEventId > SimHitIdpr
#define LogDebug(id)

◆ associateSiStripRecHit()

template<typename T >
void TrackerHitAssociator::associateSiStripRecHit ( const T simplerechit,
std::vector< SimHitIdpr > &  simtrackid,
std::vector< simhitAddr > *  simhitCFPos = nullptr 
) const
inline

Definition at line 389 of file TrackerHitAssociator.cc.

References associateSimpleRecHitCluster().

Referenced by associateHitId(), associateMatchedRecHit(), and associateProjectedRecHit().

391  {
392  const SiStripCluster* clust = &(*simplerechit->cluster());
393  associateSimpleRecHitCluster(clust, simplerechit->geographicalId(), simtrackid, simhitCFPos);
394 }
void associateSimpleRecHitCluster(const SiStripCluster *clust, const DetId &detid, std::vector< SimHitIdpr > &simtrackid, std::vector< simhitAddr > *simhitCFPos=nullptr) const

◆ fillPSetDescription()

void TrackerHitAssociator::fillPSetDescription ( edm::ParameterSetDescription descriptions)
static

Definition at line 99 of file TrackerHitAssociator.cc.

References submitPVResolutionJobs::desc, and ProducerED_cfi::InputTag.

Referenced by OverlapValidation::fillDescriptions().

99  {
100  desc.setComment("auxilliary class to store information about recHit/simHit association");
101  desc.add<bool>("associatePixel", false);
102  desc.add<bool>("associateStrip", false);
103  desc.add<bool>("usePhase2Tracker", false);
104  desc.add<bool>("associateRecoTracks", false);
105  desc.add<bool>("associateHitbySimTrack", false);
106  desc.add<edm::InputTag>("phase2TrackerSimLinkSrc", edm::InputTag("simSiPixelDigis", "Tracker"));
107  desc.add<edm::InputTag>("stripSimLinkSrc", edm::InputTag("simSiStripDigis"));
108  desc.add<edm::InputTag>("pixelSimLinkSrc", edm::InputTag("simSiPixelDigis"));
109  desc.add<std::vector<std::string>>(
110  "ROUList", {"TrackerHitsTIBLowTof", "TrackerHitsTIBHighTof", "TrackerHitsTOBLowTof", "TrackerHitsTOBHighTof"});
111 }

◆ makeMaps()

void TrackerHitAssociator::makeMaps ( const edm::Event theEvent,
const Config config 
)
private

Definition at line 137 of file TrackerHitAssociator.cc.

References assocHitbySimTrack_, edm::Event::getByToken(), StripDigiSimLink::HighTof, SummaryClient_cfi::labels, edm::Event::labelsForToken(), LogDebug, StripDigiSimLink::LowTof, edm::Handle< T >::product(), SimHitCollMap, SimHitMap, FastTrackerRecHitCombiner_cfi::simHits, and SiPixelPhase1TrackingParticleV_cfi::simHitToken.

Referenced by TrackerHitAssociator().

137  {
138  // Step A: Get Inputs
139  // The collections are specified via ROUList in the configuration, and can
140  // be either crossing frames (e.g., mix/g4SimHitsTrackerHitsTIBLowTof)
141  // or just PSimHits (e.g., g4SimHits/TrackerHitsTIBLowTof)
142  if (assocHitbySimTrack_) {
143  for (auto const& cfToken : config.cfTokens_) {
145  int Nhits = 0;
146  if (theEvent.getByToken(cfToken, cf_simhit)) {
147  std::unique_ptr<MixCollection<PSimHit>> thisContainerHits(new MixCollection<PSimHit>(cf_simhit.product()));
148  for (auto const& isim : *thisContainerHits) {
149  DetId theDet(isim.detUnitId());
150  SimHitMap[theDet].push_back(isim);
151  ++Nhits;
152  }
153  LogDebug("TrkHitAssocTrace") << "simHits from crossing frames; map size = " << SimHitMap.size()
154  << ", Hit count = " << Nhits << std::endl;
155  }
156  }
157  for (auto const& simHitToken : config.simHitTokens_) {
159  int Nhits = 0;
160  if (theEvent.getByToken(simHitToken, simHits)) {
161  for (auto const& isim : *simHits) {
162  DetId theDet(isim.detUnitId());
163  SimHitMap[theDet].push_back(isim);
164  ++Nhits;
165  }
166  LogDebug("TrkHitAssocTrace") << "simHits from prompt collections; map size = " << SimHitMap.size()
167  << ", Hit count = " << Nhits << std::endl;
168  }
169  }
170  } else { // !assocHitbySimTrack_
171  const char* const highTag = "HighTof";
172  unsigned int tofBin;
174  subDetTofBin theSubDetTofBin;
175  unsigned int collectionIndex = 0;
176  for (auto const& cfToken : config.cfTokens_) {
177  collectionIndex++;
179  int Nhits = 0;
180  if (theEvent.getByToken(cfToken, cf_simhit)) {
181  std::unique_ptr<MixCollection<PSimHit>> thisContainerHits(new MixCollection<PSimHit>(cf_simhit.product()));
182  theEvent.labelsForToken(cfToken, labels);
183  if (std::strstr(labels.productInstance, highTag) != nullptr) {
184  tofBin = StripDigiSimLink::HighTof;
185  } else {
186  tofBin = StripDigiSimLink::LowTof;
187  }
188  for (auto const& isim : *thisContainerHits) {
189  DetId theDet(isim.detUnitId());
190  theSubDetTofBin = std::make_pair(theDet.subdetId(), tofBin);
191  SimHitCollMap[theSubDetTofBin] = collectionIndex;
192  SimHitMap[SimHitCollMap[theSubDetTofBin]].push_back(isim);
193  ++Nhits;
194  }
195  LogDebug("TrkHitAssocTrace") << "simHits from crossing frames " << collectionIndex << ": " << Nhits
196  << std::endl;
197  }
198  }
199  collectionIndex = 0;
200  for (auto const& simHitToken : config.simHitTokens_) {
201  collectionIndex++;
203  int Nhits = 0;
204  if (theEvent.getByToken(simHitToken, simHits)) {
205  theEvent.labelsForToken(simHitToken, labels);
206  if (std::strstr(labels.productInstance, highTag) != nullptr) {
207  tofBin = StripDigiSimLink::HighTof;
208  } else {
209  tofBin = StripDigiSimLink::LowTof;
210  }
211  for (auto const& isim : *simHits) {
212  DetId theDet(isim.detUnitId());
213  theSubDetTofBin = std::make_pair(theDet.subdetId(), tofBin);
214  SimHitCollMap[theSubDetTofBin] = collectionIndex;
215  SimHitMap[SimHitCollMap[theSubDetTofBin]].push_back(isim);
216  ++Nhits;
217  }
218  LogDebug("TrkHitAssocTrace") << "simHits from prompt collection " << collectionIndex << ": " << Nhits
219  << std::endl;
220  }
221  }
222  }
223 }
T const * product() const
Definition: Handle.h:70
void labelsForToken(EDGetToken const &iToken, ProductLabels &oLabels) const
Definition: Event.h:252
bool getByToken(EDGetToken token, Handle< PROD > &result) const
Definition: Event.h:526
Definition: config.py:1
std::pair< unsigned int, unsigned int > subDetTofBin
simhit_collectionMap SimHitCollMap
Definition: DetId.h:17
#define LogDebug(id)

◆ printDetBnchEvtTrk()

std::string TrackerHitAssociator::printDetBnchEvtTrk ( const DetId detid,
const uint32_t &  detID,
std::vector< SimHitIdpr > &  simtrackid 
) const
inlineprivate

Definition at line 679 of file TrackerHitAssociator.cc.

References ALCARECOPPSCalTrackBasedSel_cff::detid, mps_fire::i, and edm::second().

Referenced by associateHit().

681  {
682  std::stringstream message;
683  message << "recHit subdet, detID = " << detid.subdetId() << ", " << detID << ", (bnch, evt, trk) = ";
684  for (size_t i = 0; i < simtrackid.size(); ++i)
685  message << ", (" << simtrackid[i].second.bunchCrossing() << ", " << simtrackid[i].second.event() << ", "
686  << simtrackid[i].first << ")";
687  // message << std::endl;
688  return message.str();
689 }
U second(std::pair< T, U > const &p)

Member Data Documentation

◆ assocHitbySimTrack_

bool TrackerHitAssociator::assocHitbySimTrack_
private

Definition at line 130 of file TrackerHitAssociator.h.

Referenced by associateHit(), and makeMaps().

◆ doPixel_

bool TrackerHitAssociator::doPixel_
private

Definition at line 130 of file TrackerHitAssociator.h.

Referenced by TrackerHitAssociator().

◆ doStrip_

bool TrackerHitAssociator::doStrip_
private

Definition at line 130 of file TrackerHitAssociator.h.

Referenced by TrackerHitAssociator().

◆ doTrackAssoc_

bool TrackerHitAssociator::doTrackAssoc_
private

Definition at line 130 of file TrackerHitAssociator.h.

Referenced by associateHit(), and TrackerHitAssociator().

◆ ph2trackerdigisimlink

edm::Handle<edm::DetSetVector<PixelDigiSimLink> > TrackerHitAssociator::ph2trackerdigisimlink
private

Definition at line 129 of file TrackerHitAssociator.h.

Referenced by associatePhase2TrackerRecHit(), and TrackerHitAssociator().

◆ pixeldigisimlink

edm::Handle<edm::DetSetVector<PixelDigiSimLink> > TrackerHitAssociator::pixeldigisimlink
private

Definition at line 128 of file TrackerHitAssociator.h.

Referenced by associatePixelRecHit(), and TrackerHitAssociator().

◆ SimHitCollMap

simhit_collectionMap TrackerHitAssociator::SimHitCollMap

◆ SimHitMap

simhit_map TrackerHitAssociator::SimHitMap

◆ stripdigisimlink

edm::Handle<edm::DetSetVector<StripDigiSimLink> > TrackerHitAssociator::stripdigisimlink
private

Definition at line 127 of file TrackerHitAssociator.h.

Referenced by associateSimpleRecHitCluster(), and TrackerHitAssociator().

◆ useOTph2_

bool TrackerHitAssociator::useOTph2_
private

Definition at line 130 of file TrackerHitAssociator.h.

Referenced by TrackerHitAssociator().