StRoot  1
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Groups Pages
StV0Vertex.h
1 
5 /***************************************************************************
6  *
7  * $Id: StV0Vertex.h,v 2.8 2009/11/23 16:34:08 fisyak Exp $
8  *
9  * Author: Thomas Ullrich, Sep 1999
10  ***************************************************************************
11  *
12  * Description:
13  *
14  ***************************************************************************
15  *
16  * $Log: StV0Vertex.h,v $
17  * Revision 2.8 2009/11/23 16:34:08 fisyak
18  * Cleanup, remove dependence on dst tables, clean up software monitors
19  *
20  * Revision 2.7 2004/07/15 16:36:26 ullrich
21  * Removed all clone() declerations and definitions. Use StObject::clone() only.
22  *
23  * Revision 2.6 2002/11/26 02:19:11 perev
24  * StEventMaker ITTF modif
25  *
26  * Revision 2.5 2002/03/08 20:28:37 ullrich
27  * Custom Streamer written.
28  *
29  * Revision 2.4 2002/02/22 22:56:53 jeromel
30  * Doxygen basic documentation in all header files. None of this is required
31  * for QM production.
32  *
33  * Revision 2.3 2001/04/05 04:00:46 ullrich
34  * Replaced all (U)Long_t by (U)Int_t and all redundant ROOT typedefs.
35  *
36  * Revision 2.2 2001/03/24 03:35:01 perev
37  * clone() -> clone() const
38  *
39  * Revision 2.1 1999/10/28 22:28:04 ullrich
40  * Adapted new StArray version. First version to compile on Linux and Sun.
41  *
42  * Revision 2.0 1999/10/12 18:43:26 ullrich
43  * Completely Revised for New Version
44  *
45  **************************************************************************/
46 #ifndef StV0Vertex_hh
47 #define StV0Vertex_hh
48 #include "StVertex.h"
49 #include "StContainers.h"
50 
51 
52 class StV0Vertex : public StVertex {
53 public:
54  StV0Vertex();
55  // StV0Vertex(const StV0Vertex&); use default
56  // StV0Vertex& operator=(const StV0Vertex&); use default
57  ~StV0Vertex();
58 
59  StVertexId type() const;
60  unsigned int numberOfDaughters() const;
61  StTrack* daughter(StChargeSign sign);
62  const StTrack* daughter(StChargeSign sign) const;
63  StTrack* daughter(unsigned int);
64  const StTrack* daughter(unsigned int) const;
65  StPtrVecTrack daughters(StTrackFilter&);
66  void addDaughter(StTrack*);
67  void removeDaughter(StTrack*);
68 
69  float dcaDaughterToPrimaryVertex(StChargeSign sign) const;
70  float dcaDaughters() const;
71  float dcaParentToPrimaryVertex() const;
72  const StThreeVectorF& momentumOfDaughter(StChargeSign sign) const;
73  StThreeVectorF momentum() const;
74 
75  void setDcaDaughterToPrimaryVertex(StChargeSign, float);
76  void setMomentumOfDaughter(StChargeSign, const StThreeVectorF&);
77  void setDcaDaughters(float);
78  void setDcaParentToPrimaryVertex(float);
79 
80 private:
81  StPtrVecTrack mDaughters;
82  Float_t mDcaDaughtersToPrimaryVertex[2];
83  // StThreeVectorF mMomentumOfDaughters[2];
84  StThreeVectorF mMomentumOfDaughters[2]; // negative/positive
85  Float_t mDcaDaughters;
86  Float_t mDcaParentToPrimaryVertex;
87 
88  ClassDef(StV0Vertex,3)
89 };
90 #endif