//----------------------------------------------------------------------------- // 15 Dec 2000 P.Murat: abstract interface to the extrapolator //----------------------------------------------------------------------------- #ifndef Stntuple_alg_TExtrapolator_hh #define Stntuple_alg_TExtrapolator_hh #include "TNamed.h" class TTrajectoryPoint; class TExtrapolator : public TNamed { public: //_____________________________________________________________________________ // functions //_____________________________________________________________________________ public: TExtrapolator(); virtual ~TExtrapolator(); virtual Int_t Init(Double_t* xyz, Double_t* mom, Int_t charge, Int_t mode) { return 0; } virtual void GetFinalResults(Double_t* xyz, Double_t* mom, Double_t& ptot) {}; virtual int SwimToPathLength(Double_t s) { return 0; } // Swim to a particular R. virtual int SwimToR(Double_t r) { return 0; } //----------------------------------------------------------------------------- // extrapolate particle to a set of ordered Z planes and return a // set of the trajectory points at given Z's //----------------------------------------------------------------------------- virtual int SwimToZ (int Charge, int N , const Double_t* Z , TTrajectoryPoint* P ) { return 0; } // swim to a particular x ( CMP) virtual int SwimToX(float) { return 0; } // swim to a particular y ( CMP ) virtual int SwimToY(float) { return 0; } //----------------------------------------------------------------------------- // extrapolate particle to a set of ordered radii and return a set of // trajectory points, corresponding to these radii //----------------------------------------------------------------------------- virtual int SwimToCmu(int charge, int n, const Double_t* radius, TTrajectoryPoint* p)=0; // swim to CCAL or PCAL virtual int SwimToCal(TTrajectoryPoint* Point, int Charge) {return 0;} ClassDef(TExtrapolator,0) }; #endif