SmearTraj


class description - source file - inheritance tree

class SmearTraj : public TObject

    private:
Bool_t checkInside(SmearVolume* pCur) Int_t circleIntersect(Double_t rv, Double_t* p1, Double_t* p2) void makeHelixQuantities(Double_t fld) Double_t phaseChange(Double_t newX, Double_t newY) Double_t pythagMinus(Double_t x, Double_t y) Double_t pythagPlus(Double_t x, Double_t y) Double_t QuadRoot(Double_t a, Double_t b, Double_t c, Bool_t* status) public:
SmearTraj SmearTraj() SmearTraj SmearTraj(SmearTraj&) void ~SmearTraj() TClass* Class() Int_t GetCharge() McPart* GetMc() Int_t GetMcIx() Double_t* GetNewMom() Double_t* GetNewPos() Double_t GetS() SmearTraj::PropagateRet HelixPath(Double_t fld, Double_t s) SmearTraj::PropagateRet HelixToCyl(SmearVolume* pCur, Double_t* pS) virtual TClass* IsA() SmearTraj::PropagateRet LinePath(Double_t s) SmearTraj::PropagateRet LineToCyl(SmearVolume* pCur, Double_t* pS) void SetParticle(McPart* pPart, Int_t ix) virtual void ShowMembers(TMemberInspector& insp, char* parent) virtual void Streamer(TBuffer& b) void Update()

Data Members

private:
McPart* pPart ptr to particle to be smeared Int_t particleIx index of part. to be smeared (in list of same) Int_t q charge Double_t iP[3] position at starting point Double_t iM[3] mom. at starting point Double_t newP[3] position after calling a swim routine Double_t newM[3] mom. after calling a swim routine Double_t momMag Magnitude of momentum Double_t xyMomMag Mag. of momentum projected to xy-plane Double_t sinLambda Double_t cosLambda Double_t rad radius of helix projected to xy-plane Double_t radQ ..take into account sign of q Double_t xCenter Double_t yCenter ... of helix circle Double_t fieldCnv Parameter derived from mag. field Double_t deltaS delta path length for last piece of propagation Double_t totalS (geometrical) path length traversed by particle public:
static const SmearTraj::PropagateRet INTERSECT_CYLIN static const SmearTraj::PropagateRet INTERSECT_ZMINUS static const SmearTraj::PropagateRet INTERSECT_NONE static const SmearTraj::PropagateRet INTERSECT_ZPLUS static const SmearTraj::PropagateRet INTERSECT_CYLOUT static const SmearTraj::PropagateRet INTERSECT_XYMOM static const SmearTraj::PropagateRet INTERSECT_UNCHARGED static const SmearTraj::PropagateRet INTERSECT_PATHOK static const SmearTraj::PropagateRet INTERSECT_ERROR

Class Description

 SmearTraj

 This class does the work of propagating particles.

void SetParticle(McPart* pP, Int_t partIx)
 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.

void makeHelixQuantities(Double_t fld)
 For a given field (and momementum magnitude of particle which,
 for current implementation, is constant throughoutn its life)
 compute and store some useful quantities.

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.

Int_t circleIntersect(Double_t rv, // radius of cylinder Double_t p1[], // (x,y) of 1st solution Double_t p2[]) // (x,y) of 2nd solution
 This utility is used by SmearTraj::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(Double_t newX, Double_t newY)
 Return change in phase needed to get to (newX, newY) from
 initial position

Double_t pythagPlus(const Double_t x, Double_t y)
 Compute sqrt(x*x + y*y) in maximally stable fashion

Double_t pythagMinus(const Double_t x, Double_t y)
 Compute sqrt(x*x - y*y) maximally stable fashion



Inline Functions


                      SmearTraj SmearTraj()
        SmearTraj::PropagateRet HelixPath(Double_t fld, Double_t s)
        SmearTraj::PropagateRet LinePath(Double_t s)
        SmearTraj::PropagateRet HelixToCyl(SmearVolume* pCur, Double_t* pS)
        SmearTraj::PropagateRet LineToCyl(SmearVolume* pCur, Double_t* pS)
                      Double_t* GetNewPos()
                      Double_t* GetNewMom()
                          Int_t GetCharge()
                       Double_t GetS()
                        McPart* GetMc()
                          Int_t GetMcIx()
                         Bool_t checkInside(SmearVolume* pCur)
                        TClass* Class()
                        TClass* IsA()
                           void ShowMembers(TMemberInspector& insp, char* parent)
                           void Streamer(TBuffer& b)
                      SmearTraj SmearTraj(SmearTraj&)
                           void ~SmearTraj()


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.