LCDCalRecon
class description - source file - inheritance tree
private:
void Init()
static Double_t RanExpDecay(TRandom* pRand, Double_t mean = 1.0)
Int_t Smearable(LCDMcPart*)
Int_t Swim(LCDSmearTraj* pTraj, Bool_t hadron)
public:
LCDCalRecon LCDCalRecon()
LCDCalRecon LCDCalRecon(LCDGetParameters* getparam)
LCDCalRecon LCDCalRecon(LCDCalRecon&)
virtual void ~LCDCalRecon()
void AddCluster(LCDCluster* kal1, LCDCluster* kal2)
static TClass* Class()
virtual void cleanup()
virtual void doit(LCDEvent* event)
void doMerge()
virtual TClass* IsA() const
TVector3 Rotate(const TVector3& inVec, const TVector3& angleVec)
TVector3 RotatePhi(const Double_t phi, const TVector3& iVec)
TVector3 RotateTheta(const Double_t theta, const TVector3& iVec)
void SetDetectorParameters(LCDGetParameters* getparam)
void SetMergeAngleEM(Double_t a)
void SetMergeAngleHAD(Double_t a)
void SetMergeSizeEM(Double_t a)
void SetMergeSizeHAD(Double_t a)
void SetNoClusterMerge()
virtual void ShowMembers(TMemberInspector& insp, char* parent)
void Smear(Double_t Epart, LCDSmearTraj& traj, Bool_t hadron, LCDGetParameters* gp, LCDCluster* kal)
virtual void spew(FILE* ofile) const
virtual void Streamer(TBuffer& b)
void StreamerNVirtual(TBuffer& b)
TVector3 ToPolar(const TVector3& pRect)
private:
TObjArray* ClsList "Clusters"
LCDGetParameters* gp
TRandom m_rand Use Root for randoms, gaussian or uniform
LCDDetectorVolume* pVolumes Array of detector volumes
LCDDetectorVolume* pInnerVolume Innermost volume about IP
Int_t nVolumes Number of detector volumes in array
Double_t merge_siz_EM Cut Value for merging. by cm (0.8 cm).
Double_t merge_siz_HAD Default value = 1.3 cm.
Double_t merge_angle_EM Cut Value for merging. by radian (0.0200 rad)
Double_t merge_angle_HAD Default value = 0.0600 rad
Int_t m_cluster_merge =1 With cluster merging (default)
LCDCalRecon
LCDCalRecon is the over-all manager for Fast MC calorimetry. It must
be instantiated for each detector (or change to smearing parameters)
but need only be cleared between events belonging to the same
detector
LCDCalRecon()
Constructor. Primary job is to assemble various parameters
describing detector geometry and resolution.
LCDCalRecon(LCDGetParameters* getparam)
Constructor. Primary job is to assemble various parameters
describing detector geometry and resolution.
void cleanup()
Get rid of allocated memory, obsolete pointers.
void Init()
void SetDetectorParameters(LCDGetParameters* Getparam)
void doit(LCDEvent* event)
Process an event. For each MC particle, check to see whether it's
"smearable". If so, propagate, then smear energy and transverse
position.
void spew(FILE* ofile) const
Output standard cluster quantities to ascii file.
Int_t Smearable(LCDMcPart* pPart)
Check a) that we have a final-state particle b) particle type.
Must be electron/positron, photon, or an acceptable hadron.
c) energy. Must be non-negligible.
Int_t Swim(LCDSmearTraj* pTraj, Bool_t hadron)
Swim particle with initial conditions described in pTraj through
the detector. Return true if particle showers in the detector
(where the coil counts as part of the detector)
void doMerge()
do Cluster merge taking into account detector granuarity...
void AddCluster(LCDCluster* kal1, LCDCluster* kal2)
cout<<endl<<" ------<Addcluster> add calhit..."<<kal1<<" "<<kal2;
void Smear(Double_t Epart,
LCDSmearTraj& traj, Bool_t hadron,
LCDGetParameters* gp,
LCDCluster* kal)
Inputs are
-- "perfect" particle position, after propagation
-- hadron/lepton boolean
-- smearing parameters
-- random number generator instance
TVector3 ToPolar(const TVector3& pRect)
Given rectangular coords, compute polar and store in provided 3-vector.
(theta, phi, r). The following conventions are used:
0 <= phi < 2 pi
0 < phi < pi/2 for x, y > 0. pi/2 < phi < pi for x < 0, y > 0, etc.
0 <= theta < pi; theta < pi/2 for z > 0
TVector3 Rotate(const TVector3& inVec, const TVector3& angleVec)
// Rotate something so that z axis is "returned"
// to normalVec. That is, if angleVec has polar coords (theta, phi, r),
// rotate about y-axis by theta, then about z-axis by phi.
We need to rotate by theta, phi coordinates of momentum
TVector3 RotateTheta(const Double_t theta, const TVector3& iVec)
// Rotate about y-axis with angle theta
TVector3 RotatePhi(const Double_t phi, const TVector3& iVec)
// Rotate about z-axis with angle phi
Inline Functions
Double_t RanExpDecay(TRandom* pRand, Double_t mean = 1.0)
void SetMergeSizeEM(Double_t a)
void SetMergeSizeHAD(Double_t a)
void SetMergeAngleEM(Double_t a)
void SetMergeAngleHAD(Double_t a)
void SetNoClusterMerge()
TClass* Class()
TClass* IsA() const
void ShowMembers(TMemberInspector& insp, char* parent)
void Streamer(TBuffer& b)
void StreamerNVirtual(TBuffer& b)
LCDCalRecon LCDCalRecon(LCDCalRecon&)
void ~LCDCalRecon()
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.