CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
TrackingTruthProducer.h
Go to the documentation of this file.
1 #ifndef TrackingAnalysis_TrackingTruthProducer_h
2 #define TrackingAnalysis_TrackingTruthProducer_h
3 
4 #include <map>
5 
7 
11 
13 
22 
28 
31 
32 
33 
34 
36 {
37 
38 public:
39 
40  explicit TrackingTruthProducer( const edm::ParameterSet & );
41 
42 private:
43 
44  void produce( edm::Event &, const edm::EventSetup & );
45 
46  int LayerFromDetid(const unsigned int&);
47 
49 
50  std::vector<std::string> dataLabels_;
52  double distanceCut_;
53  std::vector<std::string> hitLabelsVector_;
54  double volumeRadius_;
55  double volumeZ_;
58  std::string simHitLabel_;
59 
60  std::string MessageCategory_;
61 
62  // Related to production
63 
64  std::vector<edm::Handle<edm::HepMCProduct> > hepMCProducts_;
65 
67 
72 
73  std::auto_ptr<MixCollection<SimTrack> > simTracks_;
74  std::auto_ptr<MixCollection<SimVertex> > simVertexes_;
75 
76  std::auto_ptr<TrackingParticleCollection> trackingParticles_;
77  std::auto_ptr<TrackingVertexCollection> trackingVertexes_;
78 
81 
82  std::auto_ptr<TrackingParticleCollection> mergedTrackingParticles_;
83  std::auto_ptr<TrackingVertexCollection> mergedTrackingVertexes_;
86 
87  typedef std::map<EncodedEventId, unsigned int> EncodedEventIdToIndex;
88  typedef std::map<EncodedTruthId, unsigned int> EncodedTruthIdToIndex;
89  typedef std::multimap<EncodedTruthId, unsigned int> EncodedTruthIdToIndexes;
90 
95 
98 
99  void associator(
100  std::vector<PSimHit> const &,
102  );
103 
104  void associator(
105  std::auto_ptr<MixCollection<SimTrack> > const &,
107  );
108 
109  void associator(
110  std::auto_ptr<MixCollection<SimVertex> > const &,
112  );
113 
114  void mergeBremsstrahlung();
115 
117  TrackingVertex const & vertex,
118  std::auto_ptr<TrackingParticleCollection> & tPC
119  );
120 
121  void createTrackingTruth();
122 
123  bool setTrackingParticle(
124  SimTrack const &,
126  );
127 
128  int setTrackingVertex(
129  SimVertex const &,
131  );
132 
134 };
135 
136 
137 #endif
std::auto_ptr< TrackingVertexCollection > trackingVertexes_
std::auto_ptr< TrackingParticleCollection > trackingParticles_
void produce(edm::Event &, const edm::EventSetup &)
TrackingParticleRefProd refMergedTrackingParticles_
std::auto_ptr< MixCollection< SimTrack > > simTracks_
std::auto_ptr< TrackingVertexCollection > mergedTrackingVertexes_
MuonPSimHitSelector muonPSimHitSelector_
std::auto_ptr< TrackingParticleCollection > mergedTrackingParticles_
PixelPSimHitSelector pixelPSimHitSelector_
EncodedEventIdToIndex eventIdCounter_
std::vector< std::string > hitLabelsVector_
int LayerFromDetid(const unsigned int &)
std::multimap< EncodedTruthId, unsigned int > EncodedTruthIdToIndexes
TrackingParticleRefProd refTrackingParticles_
EncodedTruthIdToIndexes trackIdToHits_
TrackerPSimHitSelector trackerPSimHitSelector_
TrackingParticleSelector selector_
TrackingVertexRefProd refMergedTrackingVertexes_
bool isBremsstrahlungVertex(TrackingVertex const &vertex, std::auto_ptr< TrackingParticleCollection > &tPC)
EncodedTruthIdToIndex trackIdToIndex_
TrackingVertexRefProd refTrackingVertexes_
void associator(std::vector< PSimHit > const &, EncodedTruthIdToIndexes &)
std::auto_ptr< MixCollection< SimVertex > > simVertexes_
PSimHitSelector class.
void addCloseGenVertexes(TrackingVertex &)
TrackingTruthProducer(const edm::ParameterSet &)
std::vector< PSimHit > PSimHitCollection
PSimHitSelector::PSimHitCollection pSimHits_
std::vector< edm::Handle< edm::HepMCProduct > > hepMCProducts_
PixelPSimHitSelector class.
PSimHitSelector pSimHitSelector_
std::vector< std::string > dataLabels_
int setTrackingVertex(SimVertex const &, TrackingVertex &)
TrackerPSimHitSelector class.
bool setTrackingParticle(SimTrack const &, TrackingParticle &)
std::map< EncodedEventId, unsigned int > EncodedEventIdToIndex
std::map< EncodedTruthId, unsigned int > EncodedTruthIdToIndex
EncodedTruthIdToIndex vertexIdToIndex_
MuonPSimHitSelector class.