CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
TrackerHitAssociator.h
Go to the documentation of this file.
1 #ifndef TrackerHitAssociator_h
2 #define TrackerHitAssociator_h
3 
4 /* \class TrackerHitAssociator
5  *
6  ** Associates SimHits and RecHits based on information produced during
7  * digitisation (StripDigiSimLinks).
8  * The association works in both ways: from a SimHit to RecHits and
9  * from a RecHit to SimHits.
10  *
11  * \author Patrizia Azzi (INFN PD), Vincenzo Chiochia (Uni Zuerich)
12  *
13  * \version 1st version: April 2006. Add configurable switch: August 2006
14  *
15  *
16  ************************************************************/
17 
18 //#include <vector>
26 
27 //--- for SimHit
30 
35 
36 //--- for RecHit
47 
49 
50 #include <string>
51 #include <vector>
52 
53 typedef std::pair<uint32_t, EncodedEventId> SimHitIdpr;
54 
56 
57  public:
58 
59  // Simple constructor
61  // Constructor with configurables
63  // Destructor
65 
66  std::vector<PSimHit> associateHit(const TrackingRecHit & thit);
67  /* std::vector<unsigned int> associateHitId(const TrackingRecHit & thit);
68  std::vector<unsigned int> associateSimpleRecHit(const SiStripRecHit2D * simplerechit);
69  std::vector<unsigned int> associateMatchedRecHit(const SiStripMatchedRecHit2D * matchedrechit);
70  std::vector<unsigned int> associatePixelRecHit(const SiPixelRecHit * pixelrechit);
71  */
72  //for PU events
73  std::vector<SimHitIdpr> associateHitId(const TrackingRecHit & thit);
74  void associateHitId(const TrackingRecHit & thit,std::vector<SimHitIdpr> &simhitid);
75  // std::vector<SimHitIdpr> associateSimpleRecHit(const SiStripRecHit2D * simplerechit);
76  void associateSimpleRecHit(const SiStripRecHit2D * simplerechit,std::vector<SimHitIdpr> & simhitid);
77  void associateSiStripRecHit1D(const SiStripRecHit1D * simplerechit,std::vector<SimHitIdpr> & simhitid);
79  std::vector<SimHitIdpr>& theSimtrackid,
80  std::vector<PSimHit>& simhit);
81  void associateSimpleRecHitCluster(const SiStripCluster* clust, std::vector<PSimHit>& simhit);
82  void associateSimpleRecHitCluster(const SiStripCluster* clust, std::vector<SimHitIdpr>& simtrackid);
83 
84  std::vector<SimHitIdpr> associateMatchedRecHit(const SiStripMatchedRecHit2D * matchedrechit);
85  std::vector<SimHitIdpr> associateProjectedRecHit(const ProjectedSiStripRecHit2D * projectedrechit);
86  // std::vector<SimHitIdpr> associatePixelRecHit(const SiPixelRecHit * pixelrechit);
87  void associatePixelRecHit(const SiPixelRecHit * pixelrechit, std::vector<SimHitIdpr> & simhitid);
88  std::vector<SimHitIdpr> associateGSRecHit(const SiTrackerGSRecHit2D * gsrechit);
89  std::vector<SimHitIdpr> associateMultiRecHitId(const SiTrackerMultiRecHit * multirechit);
90  std::vector<PSimHit> associateMultiRecHit(const SiTrackerMultiRecHit * multirechit);
91  std::vector<SimHitIdpr> associateGSMatchedRecHit(const SiTrackerGSMatchedRecHit2D * gsmrechit);
92 
93  std::vector<PSimHit> theStripHits;
94  typedef std::map<unsigned int, std::vector<PSimHit> > simhit_map;
95  typedef simhit_map::iterator simhit_map_iterator;
97  std::vector<PSimHit> thePixelHits;
98 
99  private:
101  typedef std::vector<std::string> vstring;
103 
104  //ADDED NOW AS A PRIVATE MEMBER
106  std::vector<const CrossingFrame<PSimHit> *> cf_simhitvec;
108 
111  //vector with the trackIds
112  // std::vector<unsigned int> simtrackid;
113  std::vector<SimHitIdpr> simtrackid;
114  //vector with the simhits
115  std::vector<int> simhitCFPos;
116  std::vector<PSimHit> simhitassoc;
117  bool StripHits;
118 
120 
121 };
122 
123 
124 #endif
125 
MixCollection< PSimHit > TrackerHits
std::vector< PSimHit > thePixelHits
edm::Handle< edm::DetSetVector< StripDigiSimLink > > stripdigisimlink
std::vector< PSimHit > theStripHits
std::vector< SimHitIdpr > associateGSRecHit(const SiTrackerGSRecHit2D *gsrechit)
std::vector< std::string > vstring
TrackerHitAssociator(const edm::Event &e)
void associateSimpleRecHit(const SiStripRecHit2D *simplerechit, std::vector< SimHitIdpr > &simhitid)
std::map< unsigned int, std::vector< PSimHit > > simhit_map
edm::Handle< edm::DetSetVector< PixelDigiSimLink > > pixeldigisimlink
std::vector< SimHitIdpr > associateHitId(const TrackingRecHit &thit)
void associateSiStripRecHit1D(const SiStripRecHit1D *simplerechit, std::vector< SimHitIdpr > &simhitid)
std::vector< SimHitIdpr > simtrackid
std::vector< const CrossingFrame< PSimHit > * > cf_simhitvec
std::vector< int > simhitCFPos
simhit_map::iterator simhit_map_iterator
std::vector< SimHitIdpr > associateMultiRecHitId(const SiTrackerMultiRecHit *multirechit)
std::vector< PSimHit > associateMultiRecHit(const SiTrackerMultiRecHit *multirechit)
tuple conf
Definition: dbtoconf.py:185
edm::Handle< CrossingFrame< PSimHit > > cf_simhit
void associateSimpleRecHitCluster(const SiStripCluster *clust, std::vector< SimHitIdpr > &theSimtrackid, std::vector< PSimHit > &simhit)
std::pair< uint32_t, EncodedEventId > SimHitIdpr
std::vector< PSimHit > associateHit(const TrackingRecHit &thit)
std::vector< PSimHit > simhitassoc
std::vector< SimHitIdpr > associateProjectedRecHit(const ProjectedSiStripRecHit2D *projectedrechit)
const edm::Event & myEvent_
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)