test
CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
BPHDecayVertex.h
Go to the documentation of this file.
1 #ifndef HeavyFlavorAnalysis_RecoDecay_BPHDecayVertex_h
2 #define HeavyFlavorAnalysis_RecoDecay_BPHDecayVertex_h
3 
12 //----------------------
13 // Base Class Headers --
14 //----------------------
16 
17 namespace edm {
18  class EventSetup;
19 }
20 
21 namespace reco {
22  class TransientTrack;
23  class Vertex;
24 }
25 
26 //------------------------------------
27 // Collaborating Class Declarations --
28 //------------------------------------
30 
31 //---------------
32 // C++ Headers --
33 //---------------
34 #include <vector>
35 
36 // ---------------------
37 // -- Class Interface --
38 // ---------------------
39 
40 class BPHDecayVertex: public virtual BPHDecayMomentum {
41 
42  public:
43 
50  virtual ~BPHDecayVertex();
51 
55  virtual bool validTracks() const;
57  virtual bool validVertex() const;
58 
60  virtual const reco::Vertex& vertex() const;
61 
63  const std::vector<const reco::Track*>& tracks() const;
64 
66  const reco::Track* getTrack( const reco::Candidate* cand ) const;
67 
69  const std::vector<reco::TransientTrack>& transientTracks() const;
70 
73 
74  protected:
75 
76  // constructor
77  BPHDecayVertex( const edm::EventSetup* es );
78  // pointer used to retrieve informations from other bases
79  BPHDecayVertex( const BPHDecayVertex* ptr,
80  const edm::EventSetup* es );
81 
84  virtual void addV( const std::string& name,
85  const reco::Candidate* daug,
86  const std::string& searchList,
87  double mass );
89  virtual void addV( const std::string& name,
90  const BPHRecoConstCandPtr& comp );
91 
92  // utility function used to cash reconstruction results
93  virtual void setNotUpdated() const;
94 
95  private:
96 
97  // EventSetup needed to build TransientTrack
99 
100  // map linking particles to associated track search list
101  std::map<const reco::Candidate*,std::string> searchMap;
102 
103  // reconstruction results cache
104  mutable bool oldTracks;
105  mutable bool oldVertex;
106  mutable bool validTks;
107  mutable std::vector<const reco::Track*> rTracks;
108  mutable std::vector<reco::TransientTrack> trTracks;
109  mutable std::map<const reco::Candidate*,const reco::Track*> tkMap;
110  mutable std::map<const reco::Candidate*,reco::TransientTrack*> ttMap;
112 
113  // create TransientTrack and fit vertex
114  virtual void tTracks() const;
115  virtual void fitVertex() const;
116 
117 };
118 
119 
120 #endif
121 
const reco::Track * getTrack(const reco::Candidate *cand) const
get Track for a daughter
BPHGenericPtr< const BPHRecoCandidate >::type BPHRecoConstCandPtr
reco::TransientTrack * getTransientTrack(const reco::Candidate *cand) const
get TransientTrack for a daughter
virtual bool validVertex() const
virtual ~BPHDecayVertex()
virtual void tTracks() const
std::vector< reco::TransientTrack > trTracks
virtual void fitVertex() const
virtual void addV(const std::string &name, const reco::Candidate *daug, const std::string &searchList, double mass)
const std::vector< const reco::Track * > & tracks() const
get list of Tracks
reco::Vertex fittedVertex
BPHDecayVertex(const edm::EventSetup *es)
std::map< const reco::Candidate *, std::string > searchMap
std::map< const reco::Candidate *, const reco::Track * > tkMap
const edm::EventSetup * evSetup
virtual bool validTracks() const
check for valid reconstructed vertex
std::map< const reco::Candidate *, reco::TransientTrack * > ttMap
virtual void setNotUpdated() const
const std::vector< reco::TransientTrack > & transientTracks() const
get list of TransientTracks
std::vector< const reco::Track * > rTracks
virtual const reco::Vertex & vertex() const
get reconstructed vertex