LCDSwimTraj


class description - source file - inheritance tree

class LCDSwimTraj : public TObject

    private:
void CalcTrackParameters(Double_t fld) Bool_t CheckInside(LCDDetectorVolume* pCur) Int_t CircleIntersect(Double_t rv, TVector3& p1, TVector3& p2) Double_t PhaseChange(TVector2 newP) static Double_t QuadRoot(const Double_t a, const Double_t b, const Double_t c, Bool_t* status) LCDSwimTraj::PropagateRet ShortestPath(Double_t sEnd, Double_t sIn, Double_t sOut, Double_t* pS) protected:
public:
LCDSwimTraj LCDSwimTraj() LCDSwimTraj LCDSwimTraj(LCDSwimTraj&) virtual void ~LCDSwimTraj() static TClass* Class() Int_t GetCharge() TVector3 GetIniMom() TVector3* GetIniMomPtr() TVector3 GetIniPos() TVector3* GetIniPosPtr() TVector3 GetNewMom() TVector3* GetNewMomPtr() TVector3 GetNewPos() TVector3* GetNewPosPtr() Double_t GetS() LCDSwimTraj::PropagateRet HelixPath(Double_t fld, Double_t s) LCDSwimTraj::PropagateRet HelixPath(Double_t s) LCDSwimTraj::PropagateRet HelixToCyl(LCDDetectorVolume* pCur, Double_t* pS) virtual TClass* IsA() const LCDSwimTraj::PropagateRet LinePath(Double_t s) LCDSwimTraj::PropagateRet LineToCyl(LCDDetectorVolume* pCur, Double_t* pS) void SetParticleParams(const TVector3& pos, const TVector3& mom, Int_t charge) virtual void ShowMembers(TMemberInspector& insp, char* parent) virtual void Streamer(TBuffer& b) void StreamerNVirtual(TBuffer& b) void Update()

Data Members

private:
Int_t q charge TVector3 xtrj position vector TVector3 ptrj momentum vector TVector3 xnew new position vector TVector3 pnew new momentum vector Double_t m_tkpar[5] helix parameter vector... Double_t deltaS delta path length for last piece of propagation Double_t totalS (geometrical) path length traversed by particle protected:
public:
static const LCDSwimTraj::PropagateRet INTERSECT_CYLIN static const LCDSwimTraj::PropagateRet INTERSECT_ZMINUS static const LCDSwimTraj::PropagateRet INTERSECT_NONE static const LCDSwimTraj::PropagateRet INTERSECT_ZPLUS static const LCDSwimTraj::PropagateRet INTERSECT_CYLOUT static const LCDSwimTraj::PropagateRet INTERSECT_XYMOM static const LCDSwimTraj::PropagateRet INTERSECT_UNCHARGED static const LCDSwimTraj::PropagateRet INTERSECT_PATHOK static const LCDSwimTraj::PropagateRet INTERSECT_ERROR

Class Description

 SwimTraj

 This class does the work of propagating particles.

LCDSwimTraj()

void CalcTrackParameters(Double_t bfld_z)

Int_t CircleIntersect(Double_t rv, // radius of cylinder TVector3& p1, // (x,y) of 1st solution TVector3& p2) // (x,y) of 2nd solution
 This utility is used by SwimTraj::HelixToCy.

 Given two circles, one centered about the origin, find their points of
 intersection.  The return value is the number of solutions found.
 In this application, one circle is the (xy-projection) of a volume
 boundary, always centered about the origin.  The other the helix which
 is typically not centered about the origin.
 This algorithm is due to Rasmus Munk Larsen.

Double_t PhaseChange(TVector2 newP)
 Return change in phase needed to get to (newX, newY) from
 initial position

Double_t QuadRoot(const Double_t a, const Double_t b, const Double_t c, Bool_t* status)
 Utility used when swimming linearly to cylinder.  Return
 Smallest positive root, if any.

void SetParticleParams(const TVector3& pos0, const TVector3& mom0, Int_t charge)
 Compute and cache some information about this particle

void Update()
 Invoke this routine when the result of the last request to propagate is
 is deemed OK.



Inline Functions


        LCDSwimTraj::PropagateRet HelixToCyl(LCDDetectorVolume* pCur, Double_t* pS)
        LCDSwimTraj::PropagateRet HelixPath(Double_t fld, Double_t s)
        LCDSwimTraj::PropagateRet HelixPath(Double_t s)
        LCDSwimTraj::PropagateRet LinePath(Double_t s)
        LCDSwimTraj::PropagateRet LineToCyl(LCDDetectorVolume* pCur, Double_t* pS)
                         TVector3 GetNewPos()
                        TVector3* GetNewPosPtr()
                         TVector3 GetNewMom()
                        TVector3* GetNewMomPtr()
                         TVector3 GetIniPos()
                        TVector3* GetIniPosPtr()
                         TVector3 GetIniMom()
                        TVector3* GetIniMomPtr()
                            Int_t GetCharge()
                         Double_t GetS()
                           Bool_t CheckInside(LCDDetectorVolume* pCur)
        LCDSwimTraj::PropagateRet ShortestPath(Double_t sEnd, Double_t sIn, Double_t sOut, Double_t* pS)
                          TClass* Class()
                          TClass* IsA() const
                             void ShowMembers(TMemberInspector& insp, char* parent)
                             void Streamer(TBuffer& b)
                             void StreamerNVirtual(TBuffer& b)
                      LCDSwimTraj LCDSwimTraj(LCDSwimTraj&)
                             void ~LCDSwimTraj()


ROOT page - Class index - Top of the page

This page has been automatically generated. If you have any comments or suggestions about the page layout send a mail to ROOT support, or contact the developers with any questions or problems regarding ROOT.