StRoot  1
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Groups Pages
StppLMVVertexFinder.h
1 
10 #include <vector>
11 
12 #include "StGenericVertexMaker/StCtbUtility.h"
13 #include "StGenericVertexMaker/StGenericVertexFinder.h"
14 #include "StarClassLibrary/StPhysicalHelixD.hh"
15 
16 class StEvent;
17 class StTrack;
18 
20  public:
22 
23  // mandatory implementations
24  virtual ~StppLMVVertexFinder();
25  int fit(StEvent*);
26  void printInfo(ostream& = cout) const;
27  void Clear();
28 
29  // over-written method
30  virtual void Init();
31  void addFakeVerex(float z);
32 
33  private:
34 
35  virtual void UseVertexConstraint();
36 
37  unsigned int mMinNumberOfFitPointsOnTrack;
38  StPhysicalHelixD* mBeamHelix; // Beam Line helix
39 
40  //jan--------------------
41  bool matchTrack2CTB (StTrack* rTrack, float & sigma);
42  bool ppLMV5();
43  double mMaxTrkDcaRxy; //DCA to nominal beam line for each track
44  double mMinTrkPt; //~ pT=0.16(GeV/c) == R=2 (m )in 2001
45  float mMatchCtbMax_eta;
46  float mMatchCtbMax_phi;
47  float mDVtxMax;
48  unsigned int mMinMatchTr; // minimal # of tracks matched to CTB for valid vertex
49  float mMaxZrange;// for tracks used by the vertex finder.
50  int mBLequivNtr;
51  int n1,n2,n3,n4,n5,n6; // private counters
52  float mBfield;// magnetic field
53  int mTotEve;
54  int eveID;
55  int NCtbMatches();
56 
60  struct JHelix {StPhysicalHelixD helix; float sigma; };
61 
62  vector<JHelix> mPrimCand;
63 
64 };
65 
66 
67 
68 /***************************************************************************
69  *
70  * $Log: StppLMVVertexFinder.h,v $
71  * Revision 1.14 2017/02/14 22:00:41 smirnovd
72  * Squashed commit of the following clean-up changes:
73  *
74  * See master branch for details.
75  *
76  * - Remove commented code for debugging
77  * - Removed extra validation; it is done at construction
78  * - No need to include header for apple OS
79  * - Removed pointless assert
80  * - Use standard portable type name
81  * - Remove unused header math_constants.h
82  * - StMinuitVertexFinder: Remove abandoned member function
83  *
84  * Revision 1.13 2016/08/18 17:46:14 smirnovd
85  * Squashed commit of the following refactoring changes:
86  *
87  * Date: Wed Jul 27 18:31:18 2016 -0400
88  *
89  * Removed unused arguments in UseVertexConstraint()
90  *
91  * In StiPPVertexFinder and StvPPVertexFinder this method does nothing
92  *
93  * Date: Wed Jul 27 16:47:58 2016 -0400
94  *
95  * Make old UseVertexConstraint private virtual and call it from its public replacement in the base class
96  *
97  * also mark methods as private explicitly
98  *
99  * Date: Wed Jul 27 16:52:02 2016 -0400
100  *
101  * Removed unused private data member mWeight
102  *
103  * Date: Wed Jul 27 16:50:42 2016 -0400
104  *
105  * Prefer base class static beamline parameters rather than this class private members
106  *
107  * Date: Wed Jul 27 16:21:49 2016 -0400
108  *
109  * StPPVertexFinder: Got rid of unused private beamline parameters
110  *
111  * The equivalent measurements are available from the base class
112  * StGenericVertexFinder
113  *
114  * Date: Wed Jul 27 16:19:19 2016 -0400
115  *
116  * StPPVertexFinder: For beamline position use equivalent static methods from parent class
117  *
118  * Date: Wed Jul 27 16:05:50 2016 -0400
119  *
120  * StGenericVertexMaker: Assigning once is enough
121  *
122  * Date: Mon Aug 15 10:43:49 2016 -0400
123  *
124  * StGenericVertexFinder: Print out beamline parameters
125  *
126  * Print beamline values as extracted from the database before any modification.
127  *
128  * Date: Wed Jul 6 15:33:02 2016 -0400
129  *
130  * Stylistic changes and minor refactoring
131  *
132  * Whitespace and comments for improved readability
133  * s/track/stiKalmanTrack/
134  *
135  * Date: Wed Jul 6 15:28:16 2016 -0400
136  *
137  * StPPVertexFinder: Switched to cleaner c++11 range loop syntax
138  *
139  * Date: Wed Jul 6 15:22:14 2016 -0400
140  *
141  * StPPVertexFinder: Minor c++ refactoring
142  *
143  * - Removed unused counter
144  * - c-style array to std::array
145  *
146  * Date: Wed Jul 6 15:20:11 2016 -0400
147  *
148  * Deleted commented out code
149  *
150  * Removed unused #include's StMinuitVertexFinder
151  *
152  * Revision 1.12 2012/12/12 22:09:58 fisyak
153  * add sys/types.h include for APPLE
154  *
155  * Revision 1.11 2010/01/26 21:01:49 fisyak
156  * Clean up, switch from bit mask to attributes
157  *
158  * Revision 1.10 2005/07/19 21:57:40 perev
159  * MultiVertex
160  *
161  * Revision 1.9 2005/06/21 02:16:36 balewski
162  * multiple prim vertices are stored in StEvent
163  *
164  * Revision 1.8 2004/09/03 00:09:08 jeromel
165  * Modified code to Implement Init() and SetMode() and allow passing a switch
166  * to chose the vertex finder from within the same code implementation. Was
167  * needed for ppLMV (one implementation, two algorithm)
168  *
169  * Revision 1.7 2004/09/01 18:45:01 balewski
170  * ppLMV5/4 switch added
171  *
172  * Revision 1.6 2004/08/05 22:08:04 balewski
173  * toward working point
174  *
175  * Revision 1.5 2004/08/04 21:57:56 balewski
176  * toward smarter ppLMV5
177  *
178  * Revision 1.4 2004/07/24 02:57:40 balewski
179  * clean up of ppLMV, CTB-util separated
180  *
181  * Revision 1.3 2004/07/23 02:24:39 jeromel
182  * Oops ... Worng swithc (had twice Minuit). Now corrected.
183  *
184  * Revision 1.2 2004/07/23 01:00:52 jeromel
185  * Removed methods/data members (moved in base class) + doxygenized
186  *
187  * Revision 1.1 2004/07/21 01:53:18 balewski
188  * first
189 
190  *
191  * ppLMV use new set of params
192  * INT: CtbThres/ch=2 MinTrkPonits=10 i2=0 i3=0 i4=0 i5=0 i6=0 i7=0 i8=0 i9=9999
193  * FLOAT: CtbThres/MeV=1.000000 MaxTrkDcaRxy=3.900000 MinTrkPt/GeV=0.200000
194  * CtbEtaErr=0.020000 CtbPhiErr/deg=1.000000
195  * MaxTrkDcaZ=180.000000
196  * f6=0.000000 f7=0.000000 f8=0.000000 f9=8888.000000
197  *
198  *
199  **************************************************************************/
200