CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
List of all members | Public Types | Public Member Functions | Public Attributes | Private Types | Private Attributes
TrackerHitAssociator Class Reference

#include <TrackerHitAssociator.h>

Public Types

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

Public Member Functions

std::vector< SimHitIdprassociateGSMatchedRecHit (const SiTrackerGSMatchedRecHit2D *gsmrechit)
 
std::vector< SimHitIdprassociateGSRecHit (const SiTrackerGSRecHit2D *gsrechit)
 
std::vector< PSimHitassociateHit (const TrackingRecHit &thit)
 
std::vector< SimHitIdprassociateHitId (const TrackingRecHit &thit)
 
void associateHitId (const TrackingRecHit &thit, std::vector< SimHitIdpr > &simhitid)
 
std::vector< SimHitIdprassociateMatchedRecHit (const SiStripMatchedRecHit2D *matchedrechit)
 
std::vector< PSimHitassociateMultiRecHit (const SiTrackerMultiRecHit *multirechit)
 
std::vector< SimHitIdprassociateMultiRecHitId (const SiTrackerMultiRecHit *multirechit)
 
void associatePixelRecHit (const SiPixelRecHit *pixelrechit, std::vector< SimHitIdpr > &simhitid)
 
std::vector< SimHitIdprassociateProjectedRecHit (const ProjectedSiStripRecHit2D *projectedrechit)
 
void associateSimpleRecHit (const SiStripRecHit2D *simplerechit, std::vector< SimHitIdpr > &simhitid)
 
void associateSimpleRecHitCluster (const SiStripCluster *clust, std::vector< SimHitIdpr > &theSimtrackid, std::vector< PSimHit > &simhit)
 
void associateSimpleRecHitCluster (const SiStripCluster *clust, std::vector< PSimHit > &simhit)
 
void associateSimpleRecHitCluster (const SiStripCluster *clust, std::vector< SimHitIdpr > &simtrackid)
 
void associateSiStripRecHit1D (const SiStripRecHit1D *simplerechit, std::vector< SimHitIdpr > &simhitid)
 
 TrackerHitAssociator (const edm::Event &e)
 
 TrackerHitAssociator (const edm::Event &e, const edm::ParameterSet &conf)
 
virtual ~TrackerHitAssociator ()
 

Public Attributes

simhit_map SimHitMap
 
std::vector< PSimHitthePixelHits
 
std::vector< PSimHittheStripHits
 

Private Types

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

Private Attributes

edm::Handle< CrossingFrame
< PSimHit > > 
cf_simhit
 
std::vector< const
CrossingFrame< PSimHit > * > 
cf_simhitvec
 
bool doPixel_
 
bool doStrip_
 
bool doTrackAssoc_
 
const edm::EventmyEvent_
 
edm::Handle< edm::DetSetVector
< PixelDigiSimLink > > 
pixeldigisimlink
 
std::vector< PSimHitsimhitassoc
 
std::vector< int > simhitCFPos
 
std::vector< SimHitIdprsimtrackid
 
edm::Handle< edm::DetSetVector
< StripDigiSimLink > > 
stripdigisimlink
 
bool StripHits
 
vstring trackerContainers
 
MixCollection< PSimHitTrackerHits
 

Detailed Description

Definition at line 55 of file TrackerHitAssociator.h.

Member Typedef Documentation

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

Definition at line 94 of file TrackerHitAssociator.h.

typedef simhit_map::iterator TrackerHitAssociator::simhit_map_iterator

Definition at line 95 of file TrackerHitAssociator.h.

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

Definition at line 101 of file TrackerHitAssociator.h.

Constructor & Destructor Documentation

TrackerHitAssociator::TrackerHitAssociator ( const edm::Event e)

Definition at line 26 of file TrackerHitAssociator.cc.

References MixCollection< T >::begin(), cf_simhit, cf_simhitvec, doPixel_, doStrip_, MixCollection< T >::end(), edm::Event::getByLabel(), i, pixeldigisimlink, edm::Handle< T >::product(), SimHitMap, stripdigisimlink, trackerContainers, and TrackerHits.

26  :
27  myEvent_(e),
28  doPixel_( true ),
29  doStrip_( true ),
30  doTrackAssoc_( false ) {
31  trackerContainers.clear();
32  //
33  // Take by default all tracker SimHits
34  //
35  trackerContainers.push_back("g4SimHitsTrackerHitsTIBLowTof");
36  trackerContainers.push_back("g4SimHitsTrackerHitsTIBHighTof");
37  trackerContainers.push_back("g4SimHitsTrackerHitsTIDLowTof");
38  trackerContainers.push_back("g4SimHitsTrackerHitsTIDHighTof");
39  trackerContainers.push_back("g4SimHitsTrackerHitsTOBLowTof");
40  trackerContainers.push_back("g4SimHitsTrackerHitsTOBHighTof");
41  trackerContainers.push_back("g4SimHitsTrackerHitsTECLowTof");
42  trackerContainers.push_back("g4SimHitsTrackerHitsTECHighTof");
43  trackerContainers.push_back("g4SimHitsTrackerHitsPixelBarrelLowTof");
44  trackerContainers.push_back("g4SimHitsTrackerHitsPixelBarrelHighTof");
45  trackerContainers.push_back("g4SimHitsTrackerHitsPixelEndcapLowTof");
46  trackerContainers.push_back("g4SimHitsTrackerHitsPixelEndcapHighTof");
47 
48  // Step A: Get Inputs
49  //MAKE THIS PRIVATE MEMBERS
50  // edm::Handle<CrossingFrame<PSimHit> > cf_simhit;
51  // std::vector<const CrossingFrame<PSimHit> *> cf_simhitvec;
52 
53  for(uint32_t i = 0; i< trackerContainers.size();i++){
55  cf_simhitvec.push_back(cf_simhit.product());
56  }
57 
58  std::auto_ptr<MixCollection<PSimHit> > allTrackerHits(new MixCollection<PSimHit>(cf_simhitvec));
59  TrackerHits = (*allTrackerHits);
60 
61  //Loop on PSimHit
62  SimHitMap.clear();
63 
65  for (isim=allTrackerHits->begin(); isim!= allTrackerHits->end();isim++) {
66  SimHitMap[(*isim).detUnitId()].push_back((*isim));
67  }
68 
69  if(doStrip_) e.getByLabel("simSiStripDigis", stripdigisimlink);
70  if(doPixel_) e.getByLabel("simSiPixelDigis", pixeldigisimlink);
71 
72 }
int i
Definition: DBlmapReader.cc:9
MixCollection< PSimHit > TrackerHits
edm::Handle< edm::DetSetVector< StripDigiSimLink > > stripdigisimlink
edm::Handle< edm::DetSetVector< PixelDigiSimLink > > pixeldigisimlink
iterator end()
std::vector< const CrossingFrame< PSimHit > * > cf_simhitvec
bool getByLabel(InputTag const &tag, Handle< PROD > &result) const
Definition: Event.h:355
edm::Handle< CrossingFrame< PSimHit > > cf_simhit
iterator begin()
T const * product() const
Definition: Handle.h:74
const edm::Event & myEvent_
TrackerHitAssociator::TrackerHitAssociator ( const edm::Event e,
const edm::ParameterSet conf 
)

Definition at line 77 of file TrackerHitAssociator.cc.

References MixCollection< T >::begin(), cf_simhit, cf_simhitvec, doPixel_, doStrip_, doTrackAssoc_, MixCollection< T >::end(), edm::Event::getByLabel(), edm::ParameterSet::getParameter(), i, pixeldigisimlink, edm::Handle< T >::product(), SimHitMap, stripdigisimlink, trackerContainers, and TrackerHits.

77  :
78  myEvent_(e),
79  doPixel_( conf.getParameter<bool>("associatePixel") ),
80  doStrip_( conf.getParameter<bool>("associateStrip") ),
81  doTrackAssoc_( conf.getParameter<bool>("associateRecoTracks") ){
82 
83  //if track association there is no need to acces the CrossingFrame
84  if(!doTrackAssoc_) {
85 
86  trackerContainers.clear();
87  trackerContainers = conf.getParameter<std::vector<std::string> >("ROUList");
88 
89  // Step A: Get Inputs
90  // edm::Handle<CrossingFrame<PSimHit> > cf_simhit;
91  // std::vector<const CrossingFrame<PSimHit> *> cf_simhitvec;
92  for(uint32_t i = 0; i< trackerContainers.size();i++){
94  cf_simhitvec.push_back(cf_simhit.product());
95  }
96 
97  // std::cout << "SIMHITVEC SIZE = " << cf_simhitvec.size() << std::endl;
98 
99  // TrackerHits = new MixCollection<PSimHit>(cf_simhitvec);
100  //std::auto_ptr<MixCollection<PSimHit> > allTrackerHits(TrackerHits);
101  // std::auto_ptr<MixCollection<PSimHit> > allTrackerHits(new MixCollection<PSimHit>(cf_simhitvec));
102  std::auto_ptr<MixCollection<PSimHit> > allTrackerHits(new MixCollection<PSimHit>(cf_simhitvec));
103  TrackerHits = (*allTrackerHits);
104 
105  //Loop on PSimHit
106  SimHitMap.clear();
107 
109  for (isim=allTrackerHits->begin(); isim!= allTrackerHits->end();isim++) {
110  SimHitMap[(*isim).detUnitId()].push_back((*isim));
111  }
112 
113  }
114 
115  if(doStrip_) e.getByLabel("simSiStripDigis", stripdigisimlink);
116  if(doPixel_) e.getByLabel("simSiPixelDigis", pixeldigisimlink);
117 
118 }
T getParameter(std::string const &) const
int i
Definition: DBlmapReader.cc:9
MixCollection< PSimHit > TrackerHits
edm::Handle< edm::DetSetVector< StripDigiSimLink > > stripdigisimlink
edm::Handle< edm::DetSetVector< PixelDigiSimLink > > pixeldigisimlink
iterator end()
std::vector< const CrossingFrame< PSimHit > * > cf_simhitvec
bool getByLabel(InputTag const &tag, Handle< PROD > &result) const
Definition: Event.h:355
edm::Handle< CrossingFrame< PSimHit > > cf_simhit
iterator begin()
T const * product() const
Definition: Handle.h:74
const edm::Event & myEvent_
virtual TrackerHitAssociator::~TrackerHitAssociator ( )
inlinevirtual

Definition at line 64 of file TrackerHitAssociator.h.

64 {}

Member Function Documentation

std::vector< SimHitIdpr > TrackerHitAssociator::associateGSMatchedRecHit ( const SiTrackerGSMatchedRecHit2D gsmrechit)

Definition at line 672 of file TrackerHitAssociator.cc.

References SiTrackerGSMatchedRecHit2D::eeId(), SiTrackerGSMatchedRecHit2D::simtrackId(), simtrackid, and StripHits.

Referenced by associateHit(), and associateHitId().

673 {
674  StripHits = false;
675  //GSRecHit is the FastSimulation RecHit that contains the TrackId already
676 
677  vector<SimHitIdpr> simtrackid;
678  simtrackid.clear();
679  SimHitIdpr currentId(gsmrechit->simtrackId(), EncodedEventId(gsmrechit->eeId()));
680  simtrackid.push_back(currentId);
681  return simtrackid;
682 }
std::vector< SimHitIdpr > simtrackid
std::pair< uint32_t, EncodedEventId > SimHitIdpr
const uint32_t & eeId() const
std::vector< SimHitIdpr > TrackerHitAssociator::associateGSRecHit ( const SiTrackerGSRecHit2D gsrechit)

Definition at line 634 of file TrackerHitAssociator.cc.

References SiTrackerGSRecHit2D::eeId(), SiTrackerGSRecHit2D::simtrackId(), simtrackid, and StripHits.

Referenced by associateHit(), and associateHitId().

635 {
636  StripHits = false;
637  //GSRecHit is the FastSimulation RecHit that contains the TrackId already
638 
639  vector<SimHitIdpr> simtrackid;
640  simtrackid.clear();
641  SimHitIdpr currentId(gsrechit->simtrackId(), EncodedEventId(gsrechit->eeId()));
642  simtrackid.push_back(currentId);
643  return simtrackid;
644 }
std::vector< SimHitIdpr > simtrackid
const int & simtrackId() const
const uint32_t & eeId() const
std::pair< uint32_t, EncodedEventId > SimHitIdpr
std::vector< PSimHit > TrackerHitAssociator::associateHit ( const TrackingRecHit thit)

Check if it's the gluedDet

Definition at line 120 of file TrackerHitAssociator.cc.

References associateGSMatchedRecHit(), associateGSRecHit(), associateMatchedRecHit(), associateMultiRecHit(), associatePixelRecHit(), associateProjectedRecHit(), associateSimpleRecHit(), associateSiStripRecHit1D(), begin, gather_cfg::cout, cond::rpcobgas::detid, end, PSimHit::eventId(), first, TrackingRecHit::geographicalId(), MixCollection< T >::getObject(), i, PixelSubdetector::PixelBarrel, PixelSubdetector::PixelEndcap, DetId::rawId(), query::result, edm::second(), simhitCFPos, SimHitMap, simtrackid, StripHits, DetId::subdetId(), StripSubdetector::TEC, StripSubdetector::TIB, StripSubdetector::TID, StripSubdetector::TOB, TrackerHits, and PSimHit::trackId().

Referenced by CkfDebugger::analyseCompatibleMeasurements(), TestHits::analyze(), TestSmoothHits::analyze(), SiPixelRecHitsValid::analyze(), SiStripRecHitsValid::analyze(), TestTrackHits::analyze(), SiPixelErrorEstimation::analyze(), TestOutliers::analyze(), SiStripTrackingRecHitsValid::analyze(), SiPixelTrackingRecHitsValid::analyze(), SiPixelLorentzAngle::analyze(), CkfDebugger::associated(), associateMultiRecHit(), CkfDebugger::correctTrajectory(), GlobalRecHitsAnalyzer::fillTrk(), GlobalRecHitsProducer::fillTrk(), spr::matchedSimTrack(), CkfDebugger::nextCorrectHits(), and CkfDebugger::testSeed().

121 {
122 
123  //check in case of TTRH
124  if(const TransientTrackingRecHit * ttrh = dynamic_cast<const TransientTrackingRecHit *>(&thit)) {
125  std::cout << "calling associateHit for TransientTRH" << std::endl;
126  return associateHit(*ttrh->hit());
127  }
128 
129  //vector with the matched SimHit
130  std::vector<PSimHit> result;
131  // std::vector<PSimHit> result_old;
132  //initialize vectors!
133  simtrackid.clear();
134  simhitCFPos.clear();
135  StripHits = false;
136 
137  //get the Detector type of the rechit
138  DetId detid= thit.geographicalId();
139  uint32_t detID = detid.rawId();
140 
141  // cout << "Associator ---> get Detid " << detID << endl;
142  //check we are in the strip tracker
143  if(detid.subdetId() == StripSubdetector::TIB ||
144  detid.subdetId() == StripSubdetector::TOB ||
145  detid.subdetId() == StripSubdetector::TID ||
146  detid.subdetId() == StripSubdetector::TEC)
147  {
148  //check if it is a simple SiStripRecHit2D
149  if(const SiStripRecHit2D * rechit =
150  dynamic_cast<const SiStripRecHit2D *>(&thit))
151  {
152  //std::cout << "associate to hit2D" << std::endl;
154  }
155  else if(const SiStripRecHit1D * rechit =
156  dynamic_cast<const SiStripRecHit1D *>(&thit)) //check if it is a SiStripRecHit1D
157  {
158  //std::cout << "associate to hit1D" << std::endl;
160  }
161  else if(const SiStripMatchedRecHit2D * rechit =
162  dynamic_cast<const SiStripMatchedRecHit2D *>(&thit)) //check if it is a matched SiStripMatchedRecHit2D
163  {
164  //std::cout << "associate to matched" << std::endl;
166  }
167  else if(const ProjectedSiStripRecHit2D * rechit =
168  dynamic_cast<const ProjectedSiStripRecHit2D *>(&thit)) //check if it is a ProjectedSiStripRecHit2D
169  {
170  //std::cout << "associate to projectedHit" << std::endl;
172  detid = rechit->originalHit().geographicalId();
173  detID = detid.rawId();
174  }
175  else {
176  //std::cout << "associate to Invalid strip hit??" << std::endl;
177  //throw cms::Exception("Unknown RecHit Type") << "TrackerHitAssociator failed first casting of " << typeid(thit).name() << " type ";
178  }
179 
180  }
181  //check we are in the pixel tracker
182  if( (unsigned int)(detid.subdetId()) == PixelSubdetector::PixelBarrel ||
183  (unsigned int)(detid.subdetId()) == PixelSubdetector::PixelEndcap)
184  {
185  if(const SiPixelRecHit * rechit = dynamic_cast<const SiPixelRecHit *>(&thit))
186  {
187  //std::cout << "associate to pixelHit" << std::endl;
189  }
190  }
191  //check if these are GSRecHits (from FastSim)
192 
193  if(const SiTrackerGSRecHit2D * rechit = dynamic_cast<const SiTrackerGSRecHit2D *>(&thit))
194  {
195  simtrackid = associateGSRecHit(rechit);
196  }
197  if (const SiTrackerMultiRecHit * rechit = dynamic_cast<const SiTrackerMultiRecHit *>(&thit)){
198  return associateMultiRecHit(rechit);
199  }
200 
201  //check if these are GSMatchedRecHits (from FastSim)
202  if(const SiTrackerGSMatchedRecHit2D * rechit = dynamic_cast<const SiTrackerGSMatchedRecHit2D *>(&thit))
203  {
205  }
206 
207  //
208  //Save the SimHits in a vector. for the macthed hits both the rphi and stereo simhits are saved.
209  //
210 
211  if(StripHits){
212  //USE THIS FOR STRIPS
213  // std::cout << "NEW SIZE = " << simhitCFPos.size() << std::endl;
214 
215  for(size_t i=0; i<simhitCFPos.size(); i++){
216  //std::cout << "NEW CFPOS " << simhitCFPos[i] << endl;
217  //std::cout << "NEW LOCALPOS " << TrackerHits.getObject(simhitCFPos[i]).localPosition() << endl;
218  result.push_back( TrackerHits.getObject(simhitCFPos[i]));
219  }
220  }else {
221 
222  //now get the SimHit from the trackid
223  vector<PSimHit> simHit;
224  std::map<unsigned int, std::vector<PSimHit> >::const_iterator it = SimHitMap.find(detID);
225  simHit.clear();
226  if (it!= SimHitMap.end()){
227  simHit = it->second;
228  vector<PSimHit>::const_iterator simHitIter = simHit.begin();
229  vector<PSimHit>::const_iterator simHitIterEnd = simHit.end();
230  for (;simHitIter != simHitIterEnd; ++simHitIter) {
231  const PSimHit ihit = *simHitIter;
232  unsigned int simHitid = ihit.trackId();
233  EncodedEventId simHiteid = ihit.eventId();
234 
235  for(size_t i=0; i<simtrackid.size();i++){
236  if(simHitid == simtrackid[i].first && simHiteid == simtrackid[i].second){
237  // cout << "Associator ---> ID" << ihit.trackId() << " Simhit x= " << ihit.localPosition().x()
238  // << " y= " << ihit.localPosition().y() << " z= " << ihit.localPosition().x() << endl;
239  result.push_back(ihit);
240  }
241  }
242  }
243  }else{
245  std::map<unsigned int, std::vector<PSimHit> >::const_iterator itrphi =
246  SimHitMap.find(detID+2);//iterator to the simhit in the rphi module
247  std::map<unsigned int, std::vector<PSimHit> >::const_iterator itster =
248  SimHitMap.find(detID+1);//iterator to the simhit in the stereo module
249  if (itrphi!= SimHitMap.end()&&itster!=SimHitMap.end()){
250  simHit = itrphi->second;
251  simHit.insert(simHit.end(),(itster->second).begin(),(itster->second).end());
252  vector<PSimHit>::const_iterator simHitIter = simHit.begin();
253  vector<PSimHit>::const_iterator simHitIterEnd = simHit.end();
254  for (;simHitIter != simHitIterEnd; ++simHitIter) {
255  const PSimHit ihit = *simHitIter;
256  unsigned int simHitid = ihit.trackId();
257  EncodedEventId simHiteid = ihit.eventId();
258 
259  //===>>>>>change here!!!!
260  // for(size_t i=0; i<simtrackid.size();i++){
261  // cout << " GluedDet Associator --> check sihit id's = " << simHitid <<"; compared id's = "<< simtrackid[i] <<endl;
262  // if(simHitid == simtrackid[i]){ //exclude the geant particles. they all have the same id
263  for(size_t i=0; i<simtrackid.size();i++){
264  if(simHitid == simtrackid[i].first && simHiteid == simtrackid[i].second){
265  // cout << "GluedDet Associator ---> ID" << ihit.trackId() << " Simhit x= " << ihit.localPosition().x()
266  // << " y= " << ihit.localPosition().y() << " z= " << ihit.localPosition().x() << endl;
267  result.push_back(ihit);
268  }
269  }
270  }
271  }
272  }
273  }
274 
275 
276  return result;
277 }
int i
Definition: DBlmapReader.cc:9
MixCollection< PSimHit > TrackerHits
std::vector< SimHitIdpr > associateGSRecHit(const SiTrackerGSRecHit2D *gsrechit)
void associateSimpleRecHit(const SiStripRecHit2D *simplerechit, std::vector< SimHitIdpr > &simhitid)
void associateSiStripRecHit1D(const SiStripRecHit1D *simplerechit, std::vector< SimHitIdpr > &simhitid)
std::vector< SimHitIdpr > simtrackid
uint32_t rawId() const
get the raw id
Definition: DetId.h:45
U second(std::pair< T, U > const &p)
std::vector< int > simhitCFPos
tuple result
Definition: query.py:137
EncodedEventId eventId() const
Definition: PSimHit.h:105
#define end
Definition: vmac.h:38
bool first
Definition: L1TdeRCT.cc:79
int subdetId() const
get the contents of the subdetector field (not cast into any detector&#39;s numbering enum) ...
Definition: DetId.h:39
std::vector< PSimHit > associateMultiRecHit(const SiTrackerMultiRecHit *multirechit)
Definition: DetId.h:20
const T & getObject(unsigned int ip) const
Definition: MixCollection.h:30
#define begin
Definition: vmac.h:31
std::vector< PSimHit > associateHit(const TrackingRecHit &thit)
unsigned int trackId() const
Definition: PSimHit.h:102
tuple cout
Definition: gather_cfg.py:41
DetId geographicalId() const
std::vector< SimHitIdpr > associateProjectedRecHit(const ProjectedSiStripRecHit2D *projectedrechit)
std::vector< SimHitIdpr > associateMatchedRecHit(const SiStripMatchedRecHit2D *matchedrechit)
void associatePixelRecHit(const SiPixelRecHit *pixelrechit, std::vector< SimHitIdpr > &simhitid)
Our base class.
Definition: SiPixelRecHit.h:27
std::vector< SimHitIdpr > associateGSMatchedRecHit(const SiTrackerGSMatchedRecHit2D *gsmrechit)
std::vector< SimHitIdpr > TrackerHitAssociator::associateHitId ( const TrackingRecHit thit)
void TrackerHitAssociator::associateHitId ( const TrackingRecHit thit,
std::vector< SimHitIdpr > &  simhitid 
)

Definition at line 287 of file TrackerHitAssociator.cc.

References associateGSMatchedRecHit(), associateGSRecHit(), associateHitId(), associateMatchedRecHit(), associateMultiRecHitId(), associatePixelRecHit(), associateProjectedRecHit(), associateSimpleRecHit(), associateSiStripRecHit1D(), cond::rpcobgas::detid, TrackingRecHit::geographicalId(), PixelSubdetector::PixelBarrel, PixelSubdetector::PixelEndcap, simhitCFPos, DetId::subdetId(), StripSubdetector::TEC, StripSubdetector::TIB, StripSubdetector::TID, and StripSubdetector::TOB.

288 {
289 
290  //check in case of TTRH
291  if(const TransientTrackingRecHit * ttrh = dynamic_cast<const TransientTrackingRecHit *>(&thit)) {
292  associateHitId(*ttrh->hit(), simtkid);
293  }
294  else{
295  simtkid.clear();
296  simhitCFPos.clear();
297  //vector with the associated Simtkid
298  //vector with the CF position of the associated simhits
299 
300  //get the Detector type of the rechit
301  DetId detid= thit.geographicalId();
302  //apparently not used
303  // uint32_t detID = detid.rawId();
304  if (const SiTrackerMultiRecHit * rechit = dynamic_cast<const SiTrackerMultiRecHit *>(&thit)){
305  simtkid=associateMultiRecHitId(rechit);
306  }
307 
308  //cout << "Associator ---> get Detid " << detID << endl;
309  //check we are in the strip tracker
310  if(detid.subdetId() == StripSubdetector::TIB ||
311  detid.subdetId() == StripSubdetector::TOB ||
312  detid.subdetId() == StripSubdetector::TID ||
313  detid.subdetId() == StripSubdetector::TEC)
314  {
315  //check if it is a simple SiStripRecHit2D
316  if(const SiStripRecHit2D * rechit =
317  dynamic_cast<const SiStripRecHit2D *>(&thit))
318  {
319  associateSimpleRecHit(rechit, simtkid);
320  }
321  //check if it is a matched SiStripMatchedRecHit2D
322  else if(const SiStripRecHit1D * rechit =
323  dynamic_cast<const SiStripRecHit1D *>(&thit))
324  {
325  associateSiStripRecHit1D(rechit,simtkid);
326  }
327  //check if it is a matched SiStripMatchedRecHit2D
328  else if(const SiStripMatchedRecHit2D * rechit =
329  dynamic_cast<const SiStripMatchedRecHit2D *>(&thit))
330  {
331  simtkid = associateMatchedRecHit(rechit);
332  }
333  //check if it is a ProjectedSiStripRecHit2D
334  else if(const ProjectedSiStripRecHit2D * rechit =
335  dynamic_cast<const ProjectedSiStripRecHit2D *>(&thit))
336  {
337  simtkid = associateProjectedRecHit(rechit);
338  }
339  else{
340  //std::cout << "associate to invalid" << std::endl;
341  //throw cms::Exception("Unknown RecHit Type") << "TrackerHitAssociator failed second casting of " << typeid(thit).name() << " type ";
342  }
343  }
344  //check we are in the pixel tracker
345  else if( (unsigned int)(detid.subdetId()) == PixelSubdetector::PixelBarrel ||
346  (unsigned int)(detid.subdetId()) == PixelSubdetector::PixelEndcap)
347  {
348  if(const SiPixelRecHit * rechit = dynamic_cast<const SiPixelRecHit *>(&thit))
349  {
350  associatePixelRecHit(rechit,simtkid );
351  }
352  }
353  //check if these are GSRecHits (from FastSim)
354  if(const SiTrackerGSRecHit2D * rechit = dynamic_cast<const SiTrackerGSRecHit2D *>(&thit))
355  {
356  simtkid = associateGSRecHit(rechit);
357  }
358  if(const SiTrackerGSMatchedRecHit2D * rechit = dynamic_cast<const SiTrackerGSMatchedRecHit2D *>(&thit))
359  {
360  simtkid = associateGSMatchedRecHit(rechit);
361  }
362 
363  }
364 }
std::vector< SimHitIdpr > associateGSRecHit(const SiTrackerGSRecHit2D *gsrechit)
void associateSimpleRecHit(const SiStripRecHit2D *simplerechit, std::vector< SimHitIdpr > &simhitid)
std::vector< SimHitIdpr > associateHitId(const TrackingRecHit &thit)
void associateSiStripRecHit1D(const SiStripRecHit1D *simplerechit, std::vector< SimHitIdpr > &simhitid)
std::vector< int > simhitCFPos
std::vector< SimHitIdpr > associateMultiRecHitId(const SiTrackerMultiRecHit *multirechit)
int subdetId() const
get the contents of the subdetector field (not cast into any detector&#39;s numbering enum) ...
Definition: DetId.h:39
Definition: DetId.h:20
DetId geographicalId() const
std::vector< SimHitIdpr > associateProjectedRecHit(const ProjectedSiStripRecHit2D *projectedrechit)
std::vector< SimHitIdpr > associateMatchedRecHit(const SiStripMatchedRecHit2D *matchedrechit)
void associatePixelRecHit(const SiPixelRecHit *pixelrechit, std::vector< SimHitIdpr > &simhitid)
Our base class.
Definition: SiPixelRecHit.h:27
std::vector< SimHitIdpr > associateGSMatchedRecHit(const SiTrackerGSMatchedRecHit2D *gsmrechit)
std::vector< SimHitIdpr > TrackerHitAssociator::associateMatchedRecHit ( const SiStripMatchedRecHit2D matchedrechit)

Definition at line 519 of file TrackerHitAssociator.cc.

References associateSimpleRecHit(), spr::find(), SiStripMatchedRecHit2D::monoHit(), simtrackid, SiStripMatchedRecHit2D::stereoHit(), and StripHits.

Referenced by associateHit(), and associateHitId().

520 {
521 
522  StripHits = true;
523 
524 
525  vector<SimHitIdpr> matched_mono;
526  vector<SimHitIdpr> matched_st;
527  matched_mono.clear();
528  matched_st.clear();
529 
530  const SiStripRecHit2D *mono = matchedrechit->monoHit();
531  const SiStripRecHit2D *st = matchedrechit->stereoHit();
532  //associate the two simple hits separately
533  associateSimpleRecHit(mono,matched_mono );
534  associateSimpleRecHit(st, matched_st );
535 
536  //save in a vector all the simtrack-id's that are common to mono and stereo hits
537  if(!matched_mono.empty() && !matched_st.empty()){
538  simtrackid.clear(); //final result vector
539  // std::vector<unsigned int> idcachev;
540  std::vector<SimHitIdpr> idcachev;
541  //for(vector<unsigned int>::iterator mhit=matched_mono.begin(); mhit != matched_mono.end(); mhit++){
542  for(vector<SimHitIdpr>::iterator mhit=matched_mono.begin(); mhit != matched_mono.end(); mhit++){
543  //save only once the ID
544  if(find(idcachev.begin(), idcachev.end(),(*mhit)) == idcachev.end()) {
545  idcachev.push_back(*mhit);
546  //save if the stereoID matched the monoID
547  if(find(matched_st.begin(), matched_st.end(),(*mhit))!=matched_st.end()){
548  simtrackid.push_back(*mhit);
549  //std::cout << "matched case: saved ID " << (*mhit) << std::endl;
550  }
551  }
552  }
553  }
554  return simtrackid;
555 }
const SiStripRecHit2D * stereoHit() const
void associateSimpleRecHit(const SiStripRecHit2D *simplerechit, std::vector< SimHitIdpr > &simhitid)
void find(edm::Handle< EcalRecHitCollection > &hits, DetId thisDet, std::vector< EcalRecHitCollection::const_iterator > &hit, bool debug=false)
Definition: FindCaloHit.cc:7
std::vector< SimHitIdpr > simtrackid
const SiStripRecHit2D * monoHit() const
std::vector< PSimHit > TrackerHitAssociator::associateMultiRecHit ( const SiTrackerMultiRecHit multirechit)

Definition at line 646 of file TrackerHitAssociator.cc.

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

Referenced by associateHit().

646  {
647  std::vector<const TrackingRecHit*> componenthits = multirechit->recHits();
648  // std::vector<PSimHit> assimhits;
649  int size=multirechit->weights().size(), idmostprobable=0;
650 
651  for (int i=0; i<size; i++){
652  if(multirechit->weight(i)>multirechit->weight(idmostprobable)) idmostprobable=i;
653  }
654 
655  // std::vector<PSimHit> assimhits = associateHit(**mostpropable);
656  // assimhits.insert(assimhits.end(), asstocurrent.begin(), asstocurrent.end());
657  //std::cout << "Returning " << assimhits.size() << " simhits" << std::endl;
658  return associateHit(*componenthits[idmostprobable]);
659 }
int i
Definition: DBlmapReader.cc:9
std::vector< float > weights() const
float weight(unsigned int i) const
virtual std::vector< const TrackingRecHit * > recHits() const
Access to component RecHits (if any)
std::vector< PSimHit > associateHit(const TrackingRecHit &thit)
tuple size
Write out results.
std::vector< SimHitIdpr > TrackerHitAssociator::associateMultiRecHitId ( const SiTrackerMultiRecHit multirechit)

Definition at line 661 of file TrackerHitAssociator.cc.

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

Referenced by associateHitId().

661  {
662  std::vector<const TrackingRecHit*> componenthits = multirechit->recHits();
663  int size=multirechit->weights().size(), idmostprobable=0;
664 
665  for (int i=0; i<size; i++){
666  if(multirechit->weight(i)>multirechit->weight(idmostprobable)) idmostprobable=i;
667  }
668 
669  return associateHitId(*componenthits[idmostprobable]);
670 }
int i
Definition: DBlmapReader.cc:9
std::vector< SimHitIdpr > associateHitId(const TrackingRecHit &thit)
std::vector< float > weights() const
float weight(unsigned int i) const
virtual std::vector< const TrackingRecHit * > recHits() const
Access to component RecHits (if any)
tuple size
Write out results.
void TrackerHitAssociator::associatePixelRecHit ( const SiPixelRecHit pixelrechit,
std::vector< SimHitIdpr > &  simhitid 
)

Definition at line 574 of file TrackerHitAssociator.cc.

References PixelDigi::channelToPixel(), SiPixelRecHit::cluster(), edm::DetSet< T >::data, cond::rpcobgas::detid, spr::find(), TrackingRecHit::geographicalId(), edm::Ref< C, T, F >::isNull(), pixeldigisimlink, DetId::rawId(), and StripHits.

Referenced by associateHit(), and associateHitId().

575 {
576  StripHits = false;
577 
578  //
579  // Pixel associator
580  //
581  DetId detid= pixelrechit->geographicalId();
582  uint32_t detID = detid.rawId();
584  if(isearch != pixeldigisimlink->end()) { //if it is not empty
585  // edm::DetSet<PixelDigiSimLink> link_detset = (*pixeldigisimlink)[detID];
586  edm::DetSet<PixelDigiSimLink> link_detset = (*isearch);
587  // edm::Ref< edm::DetSetVector<SiPixelCluster>, SiPixelCluster> const& cluster = pixelrechit->cluster();
588  SiPixelRecHit::ClusterRef const& cluster = pixelrechit->cluster();
589 
590  //check the reference is valid
591 
592  if(!(cluster.isNull())){//if the cluster is valid
593 
594  int minPixelRow = (*cluster).minPixelRow();
595  int maxPixelRow = (*cluster).maxPixelRow();
596  int minPixelCol = (*cluster).minPixelCol();
597  int maxPixelCol = (*cluster).maxPixelCol();
598  //std::cout << " Cluster minRow " << minPixelRow << " maxRow " << maxPixelRow << std::endl;
599  //std::cout << " Cluster minCol " << minPixelCol << " maxCol " << maxPixelCol << std::endl;
600  edm::DetSet<PixelDigiSimLink>::const_iterator linkiter = link_detset.data.begin();
601  int dsl = 0;
602  // std::vector<unsigned int> idcachev;
603  std::vector<SimHitIdpr> idcachev;
604  for( ; linkiter != link_detset.data.end(); linkiter++) {
605  dsl++;
606  std::pair<int,int> pixel_coord = PixelDigi::channelToPixel(linkiter->channel());
607  //std::cout << " " << dsl << ") Digi link: row " << pixel_coord.first << " col " << pixel_coord.second << std::endl;
608  if( pixel_coord.first <= maxPixelRow &&
609  pixel_coord.first >= minPixelRow &&
610  pixel_coord.second <= maxPixelCol &&
611  pixel_coord.second >= minPixelCol ) {
612  //std::cout << " !-> trackid " << linkiter->SimTrackId() << endl;
613  //std::cout << " fraction " << linkiter->fraction() << endl;
614  SimHitIdpr currentId(linkiter->SimTrackId(), linkiter->eventId());
615  // if(find(idcachev.begin(),idcachev.end(),linkiter->SimTrackId()) == idcachev.end()){
616  if(find(idcachev.begin(),idcachev.end(),currentId) == idcachev.end()){
617  // simtrackid.push_back(linkiter->SimTrackId());
618  //idcachev.push_back(linkiter->SimTrackId());
619  simtrackid.push_back(currentId);
620  idcachev.push_back(currentId);
621  }
622  }
623  }
624  }
625  else{
626  edm::LogError("TrackerHitAssociator")<<"no Pixel cluster reference attached";
627 
628  }
629  }
630 
631 
632 }
edm::Handle< edm::DetSetVector< PixelDigiSimLink > > pixeldigisimlink
void find(edm::Handle< EcalRecHitCollection > &hits, DetId thisDet, std::vector< EcalRecHitCollection::const_iterator > &hit, bool debug=false)
Definition: FindCaloHit.cc:7
std::vector< SimHitIdpr > simtrackid
uint32_t rawId() const
get the raw id
Definition: DetId.h:45
bool isNull() const
Checks for null.
Definition: Ref.h:246
Definition: DetId.h:20
std::pair< uint32_t, EncodedEventId > SimHitIdpr
static std::pair< int, int > channelToPixel(int ch)
Definition: PixelDigi.h:41
collection_type data
Definition: DetSet.h:77
DetId geographicalId() const
collection_type::const_iterator const_iterator
Definition: DetSet.h:32
collection_type::const_iterator const_iterator
Definition: DetSetVector.h:106
ClusterRef const & cluster() const
Definition: SiPixelRecHit.h:42
std::vector< SimHitIdpr > TrackerHitAssociator::associateProjectedRecHit ( const ProjectedSiStripRecHit2D projectedrechit)

Definition at line 558 of file TrackerHitAssociator.cc.

References associateSimpleRecHit(), ProjectedSiStripRecHit2D::originalHit(), and StripHits.

Referenced by associateHit(), and associateHitId().

559 {
560  StripHits = true;
561 
562 
563  //projectedRecHit is a "matched" rechit with only one component
564 
565  vector<SimHitIdpr> matched_mono;
566  matched_mono.clear();
567 
568  const SiStripRecHit2D mono = projectedrechit->originalHit();
569  associateSimpleRecHit(&mono, matched_mono);
570  return matched_mono;
571 }
void associateSimpleRecHit(const SiStripRecHit2D *simplerechit, std::vector< SimHitIdpr > &simhitid)
const SiStripRecHit2D & originalHit() const
void TrackerHitAssociator::associateSimpleRecHit ( const SiStripRecHit2D simplerechit,
std::vector< SimHitIdpr > &  simhitid 
)

Definition at line 367 of file TrackerHitAssociator.cc.

References associateSimpleRecHitCluster(), SiStripRecHit2D::cluster(), SiStripRecHit2D::cluster_regional(), and edm::Ref< C, T, F >::isNonnull().

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

368 {
369  const SiStripCluster* clust = 0;
370  if(simplerechit->cluster().isNonnull())
371  {
372  clust=&(*simplerechit->cluster());
373  }
374  else if(simplerechit->cluster_regional().isNonnull())
375  {
376  clust=&(*simplerechit->cluster_regional());
377  }
378 
380 }
ClusterRegionalRef const & cluster_regional() const
std::vector< SimHitIdpr > simtrackid
bool isNonnull() const
Checks for non-null.
Definition: Ref.h:249
void associateSimpleRecHitCluster(const SiStripCluster *clust, std::vector< SimHitIdpr > &theSimtrackid, std::vector< PSimHit > &simhit)
ClusterRef const & cluster() const
void TrackerHitAssociator::associateSimpleRecHitCluster ( const SiStripCluster clust,
std::vector< SimHitIdpr > &  theSimtrackid,
std::vector< PSimHit > &  simhit 
)

Definition at line 398 of file TrackerHitAssociator.cc.

References MixCollection< T >::getObject(), i, simhitCFPos, and TrackerHits.

Referenced by associateSimpleRecHit(), associateSimpleRecHitCluster(), and associateSiStripRecHit1D().

399 {
400 // Caller needs to clear simhit before calling this function
401 
402  //initialize vector
403  theSimtrackid.clear();
404  //initialize class vector
405  simhitCFPos.clear();
406 
407  associateSimpleRecHitCluster(clust, theSimtrackid);
408 
409  for(size_t i=0; i<simhitCFPos.size(); i++){
410  simhit.push_back(TrackerHits.getObject(simhitCFPos[i]));
411  }
412 }
int i
Definition: DBlmapReader.cc:9
MixCollection< PSimHit > TrackerHits
std::vector< int > simhitCFPos
void associateSimpleRecHitCluster(const SiStripCluster *clust, std::vector< SimHitIdpr > &theSimtrackid, std::vector< PSimHit > &simhit)
const T & getObject(unsigned int ip) const
Definition: MixCollection.h:30
void TrackerHitAssociator::associateSimpleRecHitCluster ( const SiStripCluster clust,
std::vector< PSimHit > &  simhit 
)

Definition at line 414 of file TrackerHitAssociator.cc.

References associateSimpleRecHitCluster(), MixCollection< T >::getObject(), i, simhitCFPos, simtrackid, and TrackerHits.

415 {
416 // Caller needs to clear simhit before calling this function
417 
418  //initialize class vectors
419  simtrackid.clear();
420  simhitCFPos.clear();
421 
423 
424  for(size_t i=0; i<simhitCFPos.size(); i++){
425  simhit.push_back(TrackerHits.getObject(simhitCFPos[i]));
426  }
427 }
int i
Definition: DBlmapReader.cc:9
MixCollection< PSimHit > TrackerHits
std::vector< SimHitIdpr > simtrackid
std::vector< int > simhitCFPos
void associateSimpleRecHitCluster(const SiStripCluster *clust, std::vector< SimHitIdpr > &theSimtrackid, std::vector< PSimHit > &simhit)
const T & getObject(unsigned int ip) const
Definition: MixCollection.h:30
void TrackerHitAssociator::associateSimpleRecHitCluster ( const SiStripCluster clust,
std::vector< SimHitIdpr > &  simtrackid 
)

Definition at line 429 of file TrackerHitAssociator.cc.

References SiStripCluster::amplitudes(), edm::DetSet< T >::data, cond::rpcobgas::detid, spr::find(), first, SiStripCluster::firstStrip(), SiStripCluster::geographicalId(), prof2calltree::last, DetId::rawId(), simhitCFPos, stripdigisimlink, and StripHits.

429  {
430  // std::cout <<"ASSOCIATE SIMPLE RECHIT" << std::endl;
431  StripHits =true;
432 
433  DetId detid= clust->geographicalId();
434  uint32_t detID = detid.rawId();
435 
436  //to store temporary charge information
437  std::vector<SimHitIdpr> cache_simtrackid;
438  cache_simtrackid.clear();
439 
440  std::map<SimHitIdpr, vector<float> > temp_simtrackid;
441  temp_simtrackid.clear();
442 
444  if(isearch != stripdigisimlink->end()) { //if it is not empty
445  //link_detset is a structure, link_detset.data is a std::vector<StripDigiSimLink>
446  //edm::DetSet<StripDigiSimLink> link_detset = (*stripdigisimlink)[detID];
447  edm::DetSet<StripDigiSimLink> link_detset = (*isearch);
448 
449  if(clust!=0){//the cluster is valid
450 
451  // const edm::Ref<edm::DetSetVector<SiStripCluster>, SiStripCluster, edm::refhelper::FindForDetSetVector<SiStripCluster> > clust=simplerechit->cluster();
452 
453  //float chg;
454  int clusiz = clust->amplitudes().size();
455  int first = clust->firstStrip();
456  int last = first + clusiz;
457 
458 // std::cout << "CLUSTERSIZE " << clusiz << " first strip = " << first << " last strip = " << last-1 << std::endl;
459 // std::cout << " detID = " << detID << " DETSET size = " << link_detset.data.size() << std::endl;
460  //use a vector
461  std::vector<SimHitIdpr> idcachev;
462  std::vector<int> CFposcachev;
463  for(edm::DetSet<StripDigiSimLink>::const_iterator linkiter = link_detset.data.begin(); linkiter != link_detset.data.end(); linkiter++){
464  //StripDigiSimLink link = *linkiter;
465 
466  if( (int)(linkiter->channel()) >= first && (int)(linkiter->channel()) < last ){
467 
468  //check this digisimlink
469 // printf("%s%4d%s%8d%s%3d%s%8.4f\n", "CHANNEL = ", linkiter->channel(), " TrackID = ", linkiter->SimTrackId(),
470 // " Process = ", TrackerHits.getObject(linkiter->CFposition()-1).processType(), " fraction = ", linkiter->fraction());
471  /*
472  std::cout << "CHECKING CHANNEL = " << linkiter->channel() << std::endl;
473  std::cout << "TrackID = " << linkiter->SimTrackId() << std::endl;
474  std::cout << "Position = " << linkiter->CFposition() << std::endl;
475  std::cout << " POS -1 = " << TrackerHits.getObject(linkiter->CFposition()-1).localPosition() << std::endl;
476  std::cout << " Process = " << TrackerHits.getObject(linkiter->CFposition()-1).processType() << std::endl;
477  std::cout << " fraction = " << linkiter->fraction() << std::endl;
478  */
479 
480  SimHitIdpr currentId(linkiter->SimTrackId(), linkiter->eventId());
481 
482  //create a vector with the list of SimTrack ID's of the tracks that contributed to the RecHit
483  //write the id only once in the vector
484 
485  if(find(idcachev.begin(),idcachev.end(),currentId ) == idcachev.end()){
486  /*
487  std::cout << " Adding track id = " << currentId.first
488  << " Event id = " << currentId.second.event()
489  << " Bunch Xing = " << currentId.second.bunchCrossing()
490  << std::endl;
491  */
492  idcachev.push_back(currentId);
493  simtrackid.push_back(currentId);
494  }
495 
496  //create a vector that contains all the position (in the MixCollection) of the SimHits that contributed to the RecHit
497  //write position only once
498  int currentCFPos = linkiter->CFposition()-1;
499  if(find(CFposcachev.begin(),CFposcachev.end(),currentCFPos ) == CFposcachev.end()){
500  /*
501  std::cout << "CHECKING CHANNEL = " << linkiter->channel() << std::endl;
502  std::cout << "\tTrackID = " << linkiter->SimTrackId() << "\tCFPos = " << currentCFPos << std::endl;
503  std::cout << "\tLocal Pos = " << TrackerHits.getObject(currentCFPos).localPosition()
504  << "\tProcess = " << TrackerHits.getObject(currentCFPos).processType() << std::endl;
505  */
506  CFposcachev.push_back(currentCFPos);
507  simhitCFPos.push_back(currentCFPos);
508  // simhitassoc.push_back( TrackerHits.getObject(currentCFPos));
509  }
510  }
511  }
512  }
513  else {
514  edm::LogError("TrackerHitAssociator")<<"no cluster reference attached";
515  }
516  }
517 }
edm::Handle< edm::DetSetVector< StripDigiSimLink > > stripdigisimlink
uint16_t firstStrip() const
void find(edm::Handle< EcalRecHitCollection > &hits, DetId thisDet, std::vector< EcalRecHitCollection::const_iterator > &hit, bool debug=false)
Definition: FindCaloHit.cc:7
std::vector< SimHitIdpr > simtrackid
uint32_t geographicalId() const
uint32_t rawId() const
get the raw id
Definition: DetId.h:45
std::vector< int > simhitCFPos
bool first
Definition: L1TdeRCT.cc:79
Definition: DetId.h:20
std::pair< uint32_t, EncodedEventId > SimHitIdpr
collection_type data
Definition: DetSet.h:77
collection_type::const_iterator const_iterator
Definition: DetSet.h:32
collection_type::const_iterator const_iterator
Definition: DetSetVector.h:106
const std::vector< uint8_t > & amplitudes() const
void TrackerHitAssociator::associateSiStripRecHit1D ( const SiStripRecHit1D simplerechit,
std::vector< SimHitIdpr > &  simhitid 
)

Definition at line 384 of file TrackerHitAssociator.cc.

References associateSimpleRecHitCluster(), SiStripRecHit1D::cluster(), SiStripRecHit1D::cluster_regional(), and edm::Ref< C, T, F >::isNonnull().

Referenced by associateHit(), and associateHitId().

385 {
386  const SiStripCluster* clust = 0;
387  if(simplerechit->cluster().isNonnull())
388  {
389  clust=&(*simplerechit->cluster());
390  }
391  else if(simplerechit->cluster_regional().isNonnull())
392  {
393  clust=&(*simplerechit->cluster_regional());
394  }
396 }
std::vector< SimHitIdpr > simtrackid
bool isNonnull() const
Checks for non-null.
Definition: Ref.h:249
void associateSimpleRecHitCluster(const SiStripCluster *clust, std::vector< SimHitIdpr > &theSimtrackid, std::vector< PSimHit > &simhit)
ClusterRegionalRef const & cluster_regional() const
ClusterRef const & cluster() const

Member Data Documentation

edm::Handle<CrossingFrame<PSimHit> > TrackerHitAssociator::cf_simhit
private

Definition at line 105 of file TrackerHitAssociator.h.

Referenced by TrackerHitAssociator().

std::vector<const CrossingFrame<PSimHit> *> TrackerHitAssociator::cf_simhitvec
private

Definition at line 106 of file TrackerHitAssociator.h.

Referenced by TrackerHitAssociator().

bool TrackerHitAssociator::doPixel_
private

Definition at line 119 of file TrackerHitAssociator.h.

Referenced by TrackerHitAssociator().

bool TrackerHitAssociator::doStrip_
private

Definition at line 119 of file TrackerHitAssociator.h.

Referenced by TrackerHitAssociator().

bool TrackerHitAssociator::doTrackAssoc_
private

Definition at line 119 of file TrackerHitAssociator.h.

Referenced by TrackerHitAssociator().

const edm::Event& TrackerHitAssociator::myEvent_
private

Definition at line 100 of file TrackerHitAssociator.h.

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

Definition at line 110 of file TrackerHitAssociator.h.

Referenced by associatePixelRecHit(), and TrackerHitAssociator().

std::vector<PSimHit> TrackerHitAssociator::simhitassoc
private

Definition at line 116 of file TrackerHitAssociator.h.

std::vector<int> TrackerHitAssociator::simhitCFPos
private
simhit_map TrackerHitAssociator::SimHitMap
std::vector<SimHitIdpr> TrackerHitAssociator::simtrackid
private
edm::Handle< edm::DetSetVector<StripDigiSimLink> > TrackerHitAssociator::stripdigisimlink
private

Definition at line 109 of file TrackerHitAssociator.h.

Referenced by associateSimpleRecHitCluster(), and TrackerHitAssociator().

bool TrackerHitAssociator::StripHits
private
std::vector<PSimHit> TrackerHitAssociator::thePixelHits

Definition at line 97 of file TrackerHitAssociator.h.

std::vector<PSimHit> TrackerHitAssociator::theStripHits

Definition at line 93 of file TrackerHitAssociator.h.

vstring TrackerHitAssociator::trackerContainers
private

Definition at line 102 of file TrackerHitAssociator.h.

Referenced by TrackerHitAssociator().

MixCollection<PSimHit> TrackerHitAssociator::TrackerHits
private