StRoot  1
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Groups Pages
StPrimaryVertex.h
1 
5 /***************************************************************************
6  *
7  * $Id: StPrimaryVertex.h,v 2.16 2012/09/16 21:37:13 fisyak Exp $
8  *
9  * Author: Thomas Ullrich, Sep 1999
10  ***************************************************************************
11  *
12  * Description:
13  *
14  ***************************************************************************
15  *
16  * $Log: StPrimaryVertex.h,v $
17  * Revision 2.16 2012/09/16 21:37:13 fisyak
18  * Add no. of Tpc West Only and East only tracks
19  *
20  * Revision 2.15 2012/05/07 14:42:58 fisyak
21  * Add handilings for Track to Fast Detectors Matching
22  *
23  * Revision 2.14 2009/11/23 22:25:21 ullrich
24  * Added new member mNumMatchesWithBTOF and related access fcts.
25  *
26  * Revision 2.13 2009/11/23 16:34:07 fisyak
27  * Cleanup, remove dependence on dst tables, clean up software monitors
28  *
29  * Revision 2.12 2006/04/07 18:21:28 ullrich
30  * Added data member mMeanDip incl. access functions (Marco).
31  *
32  * Revision 2.11 2005/07/15 20:17:35 ullrich
33  * Corrected spelling in membrane
34  *
35  * Revision 2.10 2005/06/15 21:54:34 ullrich
36  * Added members and methods to identify used vertex finder and store vertex quality.
37  *
38  * Revision 2.9 2004/07/15 16:36:24 ullrich
39  * Removed all clone() declerations and definitions. Use StObject::clone() only.
40  *
41  * Revision 2.8 2002/04/18 23:38:21 jeromel
42  * Implementation of the SVT 2 tables scheme ...
43  *
44  * Revision 2.7 2002/02/22 22:56:49 jeromel
45  * Doxygen basic documentation in all header files. None of this is required
46  * for QM production.
47  *
48  * Revision 2.6 2001/04/05 04:00:39 ullrich
49  * Replaced all (U)Long_t by (U)Int_t and all redundant ROOT typedefs.
50  *
51  * Revision 2.5 2001/03/24 03:34:54 perev
52  * clone() -> clone() const
53  *
54  * Revision 2.4 1999/11/09 15:44:22 ullrich
55  * Removed method unlink() and all calls to it.
56  *
57  * Revision 2.3 1999/11/04 20:36:17 ullrich
58  * New method to obtain daughter container directly
59  *
60  * Revision 2.2 1999/10/28 22:26:19 ullrich
61  * Adapted new StArray version. First version to compile on Linux and Sun.
62  *
63  * Revision 2.1 1999/10/13 19:43:33 ullrich
64  * Initial Revision
65  *
66  **************************************************************************/
67 #ifndef StPrimaryVertex_hh
68 #define StPrimaryVertex_hh
69 #include "StVertex.h"
70 class StPrimaryVertex;
71 ostream& operator<<(ostream& os, const StPrimaryVertex& v);
72 class StPrimaryVertex : public StVertex {
73 public:
75  // StPrimaryVertex(const StPrimaryVertex&); use default
76  // StPrimaryVertex& operator=(const StPrimaryVertex&); use default
77  ~StPrimaryVertex();
78 
79  StVertexId type() const;
80  UInt_t numberOfDaughters() const;
81  UInt_t numberOfGoodTracks() const;
82  StTrack* daughter(UInt_t);
83  const StTrack* daughter(UInt_t) const;
84  StSPtrVecPrimaryTrack &daughters() {return mDaughters;}
85  const StSPtrVecPrimaryTrack &daughters() const {return mDaughters;}
86  StPtrVecTrack daughters(StTrackFilter&);
87  void addDaughter(StTrack*);
88  void removeDaughter(StTrack*);
89  void setParent(StTrack*); // overwrite inherited
90  //
91  // Vertex finder specifics
92  //
93  StVertexFinderId vertexFinderId() const {return mVertexFinderId;}
94  UShort_t numTracksUsedInFinder() const {return mNumTracksUsedInFinder;}
95  UShort_t numMatchesWithCTB() const {return mNumMatchesWithCTB;}
96  UShort_t numMatchesWithTOF() const {return mNumMatchesWithTOF;}
97  UShort_t numMatchesWithBTOF() const {return mNumMatchesWithTOF;}
98  UShort_t numMatchesWithBEMC() const {return mNumMatchesWithBEMC;}
99  UShort_t numMatchesWithEEMC() const {return mNumMatchesWithEEMC;}
100  UShort_t numNotMatchesWithCTB() const {return mNumNotMatchesWithCTB;}
101  UShort_t numNotMatchesWithTOF() const {return mNumNotMatchesWithTOF;}
102  UShort_t numNotMatchesWithBTOF() const {return mNumNotMatchesWithTOF;}
103  UShort_t numNotMatchesWithBEMC() const {return mNumNotMatchesWithBEMC;}
104  UShort_t numNotMatchesWithEEMC() const {return mNumNotMatchesWithEEMC;}
105  UShort_t numTracksCrossingCentralMembrane() const {return mNumTracksCrossingCentralMembrane;}
106  Float_t meanDip() const {return mMeanDip;}
107  Float_t sumOfTrackPt() const {return mSumOfTrackPt;}
108  Float_t ranking() const {return mRanking;}
109  UShort_t numTracksWithPromptHit() const {return mNumTracksWithPromptHit;}
110  UShort_t numPostXTracks() const {return mNumPostXTracks;}
111  UShort_t numTracksTpcWestOnly() const {return mNumTracksTpcWestOnly;}
112  UShort_t numTracksTpcEastOnly() const {return mNumTracksTpcEastOnly;}
113  void setTrackNumbers();
114  void setNumMatchesWithCTB(UShort_t val) {mNumMatchesWithCTB = val;}
115  void setNumMatchesWithTOF(UShort_t val) {mNumMatchesWithTOF = val;}
116  void setNumMatchesWithBTOF(UShort_t val) {mNumMatchesWithTOF = val;}
117  void setNumMatchesWithBEMC(UShort_t val) {mNumMatchesWithBEMC = val;}
118  void setNumMatchesWithEEMC(UShort_t val) {mNumMatchesWithEEMC = val;}
119  void setNumNotMatchesWithCTB(UShort_t val) {mNumNotMatchesWithCTB = val;}
120  void setNumNotMatchesWithTOF(UShort_t val) {mNumNotMatchesWithTOF = val;}
121  void setNumNotMatchesWithBTOF(UShort_t val) {mNumNotMatchesWithTOF = val;}
122  void setNumNotMatchesWithBEMC(UShort_t val) {mNumNotMatchesWithBEMC = val;}
123  void setNumNotMatchesWithEEMC(UShort_t val) {mNumNotMatchesWithEEMC = val;}
124  void setVertexFinderId(StVertexFinderId val) {mVertexFinderId = val;}
125  void setNumTracksUsedInFinder(UShort_t val) {mNumTracksUsedInFinder = val;}
126  void setNumTracksCrossingCentralMembrane(UShort_t val) {mNumTracksCrossingCentralMembrane = val;}
127  void setMeanDip(Float_t val) {mMeanDip = val;}
128  void setSumOfTrackPt(Float_t val) {mSumOfTrackPt = val;}
129  void setRanking(Float_t val) {mRanking = val;}
130  void setNumTracksWithPromptHit(UShort_t p) {mNumTracksWithPromptHit = p;}
131  void setNumPostXTracks(UShort_t p) {mNumPostXTracks = p;}
132  void setNumTracksTpcWestOnly(UShort_t val) {mNumTracksTpcWestOnly = val;}
133  void setNumTracksTpcEastOnly(UShort_t val) {mNumTracksTpcEastOnly = val;}
134  void Print(Option_t *option="") const {cout << option << *this << endl; }
135 private:
136  void init();
137 protected:
138  StSPtrVecPrimaryTrack mDaughters;
139 
140 private:
141  StVertexFinderId mVertexFinderId;
142  Char_t mBeg[1];
143  UShort_t mNumTracksUsedInFinder;
144  UShort_t mNumMatchesWithCTB;
145  UShort_t mNumMatchesWithTOF;
146  UShort_t mNumMatchesWithBEMC;
147  UShort_t mNumMatchesWithEEMC;
148  UShort_t mNumNotMatchesWithCTB;
149  UShort_t mNumNotMatchesWithTOF;
150  UShort_t mNumNotMatchesWithBEMC;
151  UShort_t mNumNotMatchesWithEEMC;
152  UShort_t mNumTracksCrossingCentralMembrane;
153  Float_t mMeanDip;
154  Float_t mSumOfTrackPt;
155  Float_t mRanking;
156  UShort_t mNumTracksWithPromptHit;
157  UShort_t mNumPostXTracks;
158  UShort_t mNumTracksTpcWestOnly;
159  UShort_t mNumTracksTpcEastOnly;
160  Char_t mEnd[1];
161  ClassDef(StPrimaryVertex,7)
162 };
163 #endif