LCDSwimTraj
class description - source file - inheritance tree
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()
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
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.