// ---------------------------------------------------------------------------- // $Id: LCDTrjPart.h,v 1.2 2001/06/19 16:59:19 toshi Exp $ // ---------------------------------------------------------------------------- // // $Log: LCDTrjPart.h,v $ // Revision 1.2 2001/06/19 16:59:19 toshi // Just add $ID: $ in the top of this file. // // // LCDTrjPart For particle extrapolator // // Assume all relevant volumes are either barrels or endcaps, in any // case cylinders // #ifndef LCDTRJPART_H #define LCDTRJPART_H #include "TMath.h" #include "TObject.h" #include "LCDGetParameters.h" #include "LCDDetectorVolume.h" #include "LCDSwimTraj.h" #include "LCDEvent.h" #include "LCDTrack.h" #include "LCDMcPart.h" //========================================================= class LCDTrjPart :public TObject { private: LCDSwimTraj traj; LCDDetectorVolume* pVolumes; // Array of detector volumes LCDDetectorVolume* pInnerVolume; // Innermost volume about IP Int_t nVolumes; // Number of detector volumes in array Int_t f_dblevel; //debug level void Init(); public: LCDTrjPart(); LCDTrjPart(LCDGetParameters* gp); ~LCDTrjPart() {}; void SetDetectorParameters(LCDGetParameters* gp); void Swim(Int_t charge, const TVector3& momentum, const TVector3& position, Int_t barend, Double_t tRZ); void Swim(LCDEvent* event, Int_t itrk, Int_t barend, Double_t tRZ); void Swim(LCDTrack* trk, LCDMcPart* mcp, Int_t barend, Double_t tRZ); TVector3 GetPos() { return traj.GetNewPos(); } TVector3* GetPosPtr() { return traj.GetNewPosPtr(); } TVector3 GetMom() { return traj.GetNewMom(); } TVector3* GetMomPtr() { return traj.GetNewMomPtr(); } Double_t GetS() { return traj.GetS(); } Int_t GetDebugLevel() { return f_dblevel; } void SetDebugLevel(Int_t a) { f_dblevel=a; } LCDSwimTraj* GetSwimTrjPtr() { return &traj; } void CalcPOCA(Double_t qMC, Double_t bfld_z, const TVector3& p_orig, const TVector3& x_orig, TVector3& p_poca, TVector3& x_poca); ClassDef(LCDTrjPart,0) // Particle Extrapolator }; #endif