00001
00013 #ifndef STAR_StKinkMaker
00014 #define STAR_StKinkMaker
00015
00016 #include "StMaker.h"
00017 #include "StThreeVectorD.hh"
00018
00019 class StKinkLocalTrack;
00020 class St_tkf_tkfpar;
00021 class tkf_tkfpar_st;
00022 #include "StPhysicalHelixD.hh"
00023 class StEvent;
00024 class StKinkVertex;
00025 class StTrack;
00026 class StTrackGeometry;
00027
00028
00029
00030
00031
00032
00033
00034 class StKinkMaker : public StMaker {
00035 public:
00036
00037 StKinkMaker(const char* name="KinkMaker");
00038 virtual ~StKinkMaker();
00039 virtual Int_t Init();
00040 virtual Int_t InitRun(int runumber);
00041 virtual Int_t Make();
00042 virtual void SetTrackerUsage(Int_t opt=0);
00043 virtual Int_t GetTrackerUsage(){return mUseTracker;}
00044 virtual void Crop();
00045
00046 virtual const char *GetCVS() const
00047 {static const char cvs[]="Tag $Name: $ $Id: StKinkMaker.h,v 1.11 2008/04/03 19:58:35 fisyak Exp $ built "__DATE__" "__TIME__ ; return cvs;}
00048
00049
00050 private:
00051
00052
00053 StKinkLocalTrack *mTrack1;
00054 StKinkLocalTrack *mTrack2;
00055 StTrack *mParentTrackCandidate;
00056 StTrack *mDaughterTrackCandidate;
00057 StTrackGeometry *mDaughterTrackUnic;
00058
00059 StThreeVectorD mEventVertex;
00060 StThreeVectorD mParentMoment, mDaughterMoment;
00061 StThreeVectorD mKinkVertex;
00062 Float_t mParentImpact, mDaughterImpact;
00063 Float_t mDca, mDecayAngle;
00064 Int_t mGlobalTrks;
00065 double mBfield;
00066 protected:
00067
00068 void FillEvent(StTrackGeometry *myDaughterGeometry1,
00069 StTrackGeometry *myParentGeometry11);
00070
00071 bool acceptTrack(StTrack *);
00072
00073
00074 St_tkf_tkfpar* m_tkfpar;
00075
00076 StEvent* event;
00077 StKinkVertex* kinkVertex;
00078
00079 int mUseTracker;
00080 ClassDef(StKinkMaker,0)
00081 };
00082
00083 #endif
00084
00085
00086
00087
00088