/Home/aooliver/hepsoft/lcdroot/LCDRootApps/PhUtil/inc/LCDTrjPart.h

Go to the documentation of this file.
00001 // ----------------------------------------------------------------------------
00002 // $Id: LCDTrjPart.h,v 1.3 2001/10/08 17:51:57 toshi Exp $
00003 // ----------------------------------------------------------------------------
00004 //
00005 // LCDTrjPart  For particle extrapolator  
00006 //
00007 // Assume all relevant volumes are either barrels or endcaps, in any
00008 // case cylinders
00009 //
00010 
00011 #ifndef LCDTRJPART_H
00012 #define LCDTRJPART_H
00013 
00014 #include "TMath.h"
00015 #include "TObject.h"
00016 #include "LCDGetParameters.h"
00017 #include "LCDDetectorVolume.h"
00018 #include "LCDSwimTraj.h"
00019 #include "LCDEvent.h"
00020 #include "LCDTrack.h"
00021 #include "LCDMcPart.h"
00022 
00023 //=========================================================
00024 class LCDTrjPart :public TObject {
00025 
00026  private:
00027   LCDSwimTraj        traj;
00028   LCDDetectorVolume* pVolumes;       // Array of detector volumes
00029   LCDDetectorVolume* pInnerVolume;   // Innermost volume about IP
00030   Int_t              nVolumes;       // Number of detector volumes in array
00031   Int_t              f_dblevel;      //debug level
00032   
00033   void Init();
00034 
00035  public:
00036   LCDTrjPart();
00037   LCDTrjPart(LCDGetParameters* gp);
00038   ~LCDTrjPart() {};
00039   
00040   void SetDetectorParameters(LCDGetParameters* gp);
00041 
00042   void Swim(Int_t charge, const TVector3& momentum, const TVector3& position, 
00043             Int_t barend, Double_t tRZ);
00044   
00045   void Swim(LCDEvent* event, Int_t itrk, Int_t barend, Double_t tRZ);
00046   void Swim(LCDTrack* trk, LCDMcPart* mcp, Int_t barend, Double_t tRZ);
00047   
00048   TVector3  GetPos()    { return traj.GetNewPos();    }
00049   TVector3* GetPosPtr() { return traj.GetNewPosPtr(); }
00050   TVector3  GetMom()    { return traj.GetNewMom();    }
00051   TVector3* GetMomPtr() { return traj.GetNewMomPtr(); }
00052   Double_t  GetS()      { return traj.GetS(); }
00053 
00054   Int_t     GetDebugLevel() { return f_dblevel; }
00055   void      SetDebugLevel(Int_t a) { f_dblevel=a; }
00056   
00057   LCDSwimTraj* GetSwimTrjPtr() { return &traj; }
00058   
00059   void CalcPOCA(Double_t  qMC, Double_t  bfld_z,
00060                 const TVector3& p_orig, const TVector3&  x_orig, 
00061                 TVector3& p_poca, TVector3& x_poca);
00062   
00063   ClassDef(LCDTrjPart,0)  // Particle Extrapolator
00064 };
00065 #endif
00066 
00067 

Generated on Tue Jul 18 18:33:57 2006 for LCDROOT by  doxygen 1.4.6