StRoot  1
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Groups Pages
StV0FinderMaker.h
1 
8 #ifndef StV0FinderMaker_hh
9 #define StV0FinderMaker_hh
10 
11 #include "StMaker.h"
12 #include "StPhysicalHelixD.hh"
13 #include <vector>
14 
15 class St_V0FinderParameters;
16 class V0FinderParameters_st;
17 class StEvent;
18 class StV0Vertex;
19 class StTrack;
20 
21 
22 //Betty
23 class StMuDstMaker;
24 //end Betty
25 
26 enum TrackerUsage
27 {
28  kTrackerUseTPT = 0,
29  kTrackerUseITTF = 1,
30  kTrackerUseBOTH = 2
31 };
32 
33 
34 
36 enum SVTUsage
37 {
38  kNoSVT = 0,
39  kUseSVT = 1
40 };
41 
42 enum EventModelUsage
43 {
44  kUseStEvent = 0,
45  kUseMuDst =1
46 };
48 
49 
50 enum V0LanguageUsage
51 {
52  kV0LanguageUseFortran = 1,
53  kV0LanguageUseCpp = 2,
54  kV0LanguageUseBoth = 3
55 };
56 
57 
58 
59 
60 enum XiLanguageUsage
61 {
62  kXiLanguageUseFortran = 1,
63  kXiLanguageUseCppOnFortranV0 = 2,
64  kXiLanguageUseCppOnCppV0 = 4,
65  kXiLanguageUseFortranAndCppOnFortranV0 = 3,
66  kXiLanguageUseFortranAndCppOnCppV0 = 5,
67  kXiLanguageUseBothCpp = 6,
68  kXiLanguageUseAll = 7
69 };
70 
71 
72 
73 
74 enum LanguageUsage
75 {
76  kLanguageUseSpecial = 0,
77  kLanguageUseOldRun = 1,
78  kLanguageUseRun = 2,
79  kLanguageUseTestV0Finder = 5,
80  kLanguageUseTestXiFinder = 6,
81  kLanguageUseTestBothFinders = 7
82 };
83 
84 
85 
86 
87 enum LikesignUsage
88 {
89  kLikesignUseStandard = 0,
90  kLikesignUseLikesign = 2
91 };
92 
93 
94 
95 
96 enum RotatingUsage
97 {
98  kRotatingUseStandard = 0,
99  kRotatingUseRotating = 1,
100  kRotatingUseSymmetry = 2,
101  kRotatingUseRotatingAndSymmetry = 3
102 };
103 
104 
105 
138 class StV0FinderMaker : public StMaker {
139 
140  public:
141  StV0FinderMaker(const char* name="V0FinderMaker");
142  virtual ~StV0FinderMaker();
143 
144  virtual void GetPars();
145  virtual Int_t Init();
146  //virtual Int_t InitRun(int RunNumber);
147  virtual Int_t Make();
148 
149  //Betty
150  virtual void Clear(Option_t *option="");
151  //end Betty
152  virtual void UseExistingV0s(Bool_t opt=kTRUE) { useExistingV0s = opt; }
153  virtual void DontZapV0s(Bool_t opt=kTRUE) { dontZapV0s = opt; }
154  virtual Bool_t UseV0() { return kFALSE; }
155  virtual void SetTrackerUsage(Int_t opt=0) {useTracker=opt;}
156  virtual Int_t GetTrackerUsage() {return useTracker;}
157  virtual void SetSVTUsage(Int_t opt=0) {useSVT=opt;}
158  virtual Int_t GetSVTUsage() {return useSVT;}
159  virtual void SetV0LanguageUsage(Int_t opt=0) {useV0Language=opt;}
160  virtual Int_t GetV0LanguageUsage() {return useV0Language;}
161  virtual void SetXiLanguageUsage(Int_t opt=0) {useXiLanguage=opt;}
162  virtual Int_t GetXiLanguageUsage() {return useXiLanguage;}
163  virtual void SetLanguageUsage(Int_t opt=0) {useLanguage=opt;}
164  virtual Int_t GetLanguageUsage() {return useLanguage;}
165  virtual void SetLikesignUsage(Int_t opt=0) {useLikesign=opt;}
166  virtual Int_t GetLikesignUsage() {return useLikesign;}
167  virtual void SetRotatingUsage(Int_t opt=0) {useRotating=opt;}
168  virtual Int_t GetRotatingUsage() {return useRotating;}
169  virtual void Trim();
170 
171  //Betty
172  virtual void SetEventUsage(Int_t opt=0){useEventModel=opt;}
173  virtual Int_t GetEventUsage(){return useEventModel;}
174  //end Betty
175 
176  virtual const char *GetCVS() const
177  {static const char cvs[]="Tag $Name: $ $Id: StV0FinderMaker.h,v 1.12 2014/08/06 11:43:37 jeromel Exp $ built " __DATE__ " " __TIME__ ; return cvs;}
178 
179  protected:
180  virtual Int_t Prepare();
181  St_V0FinderParameters* v0pars;
182  V0FinderParameters_st* pars;
183  V0FinderParameters_st* pars2;
184  StEvent* event;
185  StV0Vertex* v0Vertex;
186 
187  //Betty
188  StMuDstMaker* mMuDstMaker;
189  //end Betty
190 
191  double Bfield;
192  unsigned short trks;
193  Bool_t prepared;
194  Bool_t useExistingV0s;
195  Bool_t dontZapV0s;
196  Int_t useTracker;
197  Int_t useSVT; //Betty //!
198  Int_t useEventModel; //Betty //!
199  Int_t useV0Language;
200  Int_t useXiLanguage;
201  Int_t useLanguage;
202  Int_t useLikesign;
203  Int_t useRotating;
204  int det_id_v0;
205  int ITTFflag;
206  int TPTflag;
207 
208  vector<StTrack*> trk;
209  vector<unsigned short> ntrk;
210  vector<unsigned short> ptrk;
211  vector<short> hits;
212  vector<int> detId;
213  vector<double> pt;
214  vector<double> ptot;
215  vector<StPhysicalHelixD> heli;
216  vector<unsigned short> trkID;
217  void ExpandVectors(unsigned short size);
218 
219  StThreeVectorD mainv;
220 
221  private:
222  static StV0FinderMaker* mInstance;
223  int trkcnt;
224  int trkmax;
225  float trkNodeRatio;
226  float trkNodeRatioCnt;
227 
228  ClassDef(StV0FinderMaker,0)
229 
230 };
231 
232 #endif
233 
234 //_____________________________________________________________________________
235 // $Id: StV0FinderMaker.h,v 1.12 2014/08/06 11:43:37 jeromel Exp $
236 // $Log: StV0FinderMaker.h,v $
237 // Revision 1.12 2014/08/06 11:43:37 jeromel
238 // Suffix on literals need to be space (later gcc compiler makes it an error) - first wave of fixes
239 //
240 // Revision 1.11 2008/03/05 04:20:18 genevb
241 // Change to DB table of V0FinderParameters, reduce logger output, improve Bfield calc
242 //
243 // Revision 1.10 2004/08/26 03:00:46 genevb
244 // Improved vector size management
245 //
246 // Revision 1.9 2004/08/11 21:26:38 genevb
247 // Trade static arrays for vectors
248 //
249 // Revision 1.8 2004/04/02 08:56:22 faivre
250 // Use actual TPT flag rather than "not ITTF" for TPT tracks.
251 //
252 // Revision 1.7 2004/03/03 01:46:13 cmironov
253 // (J.L. commit)
254 // Modified doxygen documentation (was not taken before). Indentation
255 // for numerous enum{} which would need some //< comments for usage
256 // summary ...
257 //
258 // Revision 1.6 2004/01/27 17:56:06 betya
259 //
260 // added EventModelUsage so that the V0Finder and XiFinder can no run on
261 // MuDst as well as on StEvent. Note that the output is still in the StEvent
262 // format. Added Clear() in StV0FinderMaker.cxx to accomodate this addition.
263 //
264 // Revision 1.5 2003/11/08 18:25:48 faivre
265 // Bfield + consistency int/short
266 //
267 // Revision 1.4 2003/08/22 17:47:14 caines
268 // Get sign AND magnitude of mag field correctly for Xi and V0 finder
269 //
270 // Revision 1.3 2003/05/14 19:14:41 faivre
271 // Setting new enum's. Fancy choices Fortran/C++ V0's and Xi's. Xi rotating and like-sign. SVT tracks.
272 //
273 // Revision 1.2 2003/04/30 19:13:52 faivre
274 // ITTF vs TPT V0s
275 //
276 //
virtual void Clear(Option_t *option="")
User defined functions.
virtual Int_t Prepare()
virtual Int_t GetSVTUsage()
Betty.
virtual Int_t Make()
virtual void SetV0LanguageUsage(Int_t opt=0)
Betty.
virtual void GetPars()