StRoot  1
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Groups Pages
StKinkVertex.h
1 
5 /***************************************************************************
6  *
7  * $Id: StKinkVertex.h,v 2.9 2009/11/23 16:34:06 fisyak Exp $
8  *
9  * Author: Thomas Ullrich, Sep 1999
10  ***************************************************************************
11  *
12  * Description:
13  *
14  ***************************************************************************
15  *
16  * $Log: StKinkVertex.h,v $
17  * Revision 2.9 2009/11/23 16:34:06 fisyak
18  * Cleanup, remove dependence on dst tables, clean up software monitors
19  *
20  * Revision 2.8 2004/07/15 16:36:24 ullrich
21  * Removed all clone() declerations and definitions. Use StObject::clone() only.
22  *
23  * Revision 2.7 2002/02/22 22:56:48 jeromel
24  * Doxygen basic documentation in all header files. None of this is required
25  * for QM production.
26  *
27  * Revision 2.6 2001/05/30 17:45:54 perev
28  * StEvent branching
29  *
30  * Revision 2.5 2001/04/05 04:00:38 ullrich
31  * Replaced all (U)Long_t by (U)Int_t and all redundant ROOT typedefs.
32  *
33  * Revision 2.4 2001/03/24 03:34:52 perev
34  * clone() -> clone() const
35  *
36  * Revision 2.3 1999/11/04 16:33:26 ullrich
37  * Fixed wrong option to ClassDef macro.
38  *
39  * Revision 2.2 1999/10/28 22:25:56 ullrich
40  * Adapted new StArray version. First version to compile on Linux and Sun.
41  *
42  * Revision 2.1 1999/10/13 19:43:22 ullrich
43  * Initial Revision
44  *
45  **************************************************************************/
46 #ifndef StKinkVertex_hh
47 #define StKinkVertex_hh
48 #include "StVertex.h"
49 
51 
52 class StKinkVertex : public StVertex {
53 public:
54  StKinkVertex();
55  // StKinkVertex(const StKinkVertex&); use default
56  // StKinkVertex& operator=(const StKinkVertex&); use default
57  ~StKinkVertex();
58 
59  StVertexId type() const;
60  unsigned int numberOfDaughters() const;
61  StTrack* daughter(unsigned int = 0);
62  const StTrack* daughter(unsigned int = 0) const;
63  StPtrVecTrack daughters(StTrackFilter&);
64 
65  StParticleDefinition* pidParent() const;
66  StParticleDefinition* pidDaughter() const;
67  unsigned short geantIdParent() const;
68  unsigned short geantIdDaughter() const;
69  float dcaParentDaughter() const;
70  float dcaDaughterPrimaryVertex() const;
71  float dcaParentPrimaryVertex() const;
72  float hitDistanceParentDaughter() const;
73  float hitDistanceParentVertex() const;
74  float dE(unsigned int i) const;
75  float decayAngle() const;
76  float decayAngleCM() const;
77  const StThreeVectorF& parentMomentum() const;
78  StThreeVectorF& parentMomentum();
79  const StThreeVectorF& daughterMomentum() const;
80  StThreeVectorF& daughterMomentum();
81 
82  void setGeantIdParent(unsigned short);
83  void setGeantIdDaughter(unsigned short);
84  void setDcaParentDaughter(float);
85  void setDcaDaughterPrimaryVertex(float);
86  void setDcaParentPrimaryVertex(float);
87  void setHitDistanceParentDaughter(float);
88  void setHitDistanceParentVertex(float);
89  void setdE(unsigned int, float);
90  void setDecayAngle(float);
91  void setDecayAngleCM(float);
92  void setParentMomentum(const StThreeVectorF&);
93  void setDaughterMomentum(const StThreeVectorF&);
94  void addDaughter(StTrack*);
95  void removeDaughter(StTrack*);
96 
97 protected:
98 // StTrack* mDaughter; //$LINK
99 #ifdef __CINT__
100  StObjLink mDaughter;
101 #else
102  StLink<StTrack> mDaughter;
103 #endif //__CINT__
104  UShort_t mParentGeantId;
105  UShort_t mDaughterGeantId;
106  Float_t mDcaParentDaughter;
107  Float_t mDcaDaughterPrimaryVertex;
108  Float_t mDcaParentPrimaryVertex;
109  Float_t mHitDistanceParentDaughter;
110  Float_t mHitDistanceParentVertex;
111  Float_t mDeltaEnergy[3];
112  Float_t mDecayAngle;
113  Float_t mDecayAngleCM;
114  StThreeVectorF mParentMomentum;
115  StThreeVectorF mDaughterMomentum;
116 
117  ClassDef(StKinkVertex,2)
118 };
119 #endif