MarlinTPC  1.2.0
Public Member Functions | Protected Member Functions | Protected Attributes | List of all members
marlintpc::HitDistributor Class Reference

Public Member Functions

 HitDistributor (const gear::TPCParameters *, double zBinLength, double inductionFactor=0)
 Constructors for the class.
 
 ~HitDistributor ()
 Destructor.
 
std::list< TPCVoxeldistributeHit (SimTrackerHit *hit, double sigmaTrans, double sigmaLong=0)
 Only function accessible from the outside. More...
 

Protected Member Functions

std::list< GlobalPadIndexgetPads (double sigmaTrans)
 Methods to determine the pads on which the charge of the hit is distributed on.
 
void getPadsOnTheLeft (std::list< GlobalPadIndex > &padList, GlobalPadIndex centerIndex, double sigmaTrans)
 Called by getPads(). More...
 
void getPadsOnTheRight (std::list< GlobalPadIndex > &padList, GlobalPadIndex centerIndex, double sigmaTrans)
 
bool checkDistance (GlobalPadIndex globalPadIndex, double sigmaTrans)
 Check if the distance between the input pad and the hit is within the distribution range.
 
std::list< TPCVoxeldistributeHitOnPadsPolar (std::list< GlobalPadIndex > padIndexList, SimTrackerHit *hit, double sigmaTrans, double sigmaLong)
 Distributes the charge of the hit on the pads in the input list by integration over a 2D gaussian.
 
std::list< TPCVoxeldistributeHitOnPadsRect (std::list< GlobalPadIndex > padIndexList, SimTrackerHit *hit, double sigmaTrans, double sigmaLong)
 
double CalculateGausIntegral (double sigma, double start, double end, double center)
 Helper function to perform integration of gaussian in 1D. More...
 
void ApplyInduction (double hitTime, double sigmaLong, double charge, GlobalPadIndex gpadIndex, std::list< TPCVoxel > &voxelList)
 Helper function to carry out induction of charge on neighbouring pads. More...
 
void FillZBins (double hitTime, double sigmaLong, double charge, GlobalPadIndex padIndex, std::list< TPCVoxel > &voxelList)
 Helper function to fill charge on pad in z bins. More...
 

Protected Attributes

const gear::TPCParameters * _tpcParameters
 Pointer on the gear pad layout.
 
double _zBinLength
 Initilazation parameter.
 
double _sigmaTrans
 Diffusion parameters. More...
 
double _sigmaLong
 
double _c0Hit
 Coordinates of the hit. More...
 
double _c1Hit
 
int _padLayoutType
 Type of the pad layout. More...
 
int _tpcCoordinateType
 Type of the globale coordinate system for the TPC.
 
double _inductionFactor
 Size of induction on neighbour pads in percent of charge on central pad.
 

Member Function Documentation

void marlintpc::HitDistributor::ApplyInduction ( double  hitTime,
double  sigmaLong,
double  charge,
GlobalPadIndex  gpadIndex,
std::list< TPCVoxel > &  voxelList 
)
protected

Helper function to carry out induction of charge on neighbouring pads.

References _tpcParameters, and FillZBins().

Referenced by distributeHitOnPadsPolar().

double marlintpc::HitDistributor::CalculateGausIntegral ( double  sigma,
double  start,
double  end,
double  center 
)
protected

Helper function to perform integration of gaussian in 1D.

Referenced by distributeHitOnPadsPolar().

std::list< TPCVoxel > marlintpc::HitDistributor::distributeHit ( SimTrackerHit *  hit,
double  sigmaTrans,
double  sigmaLong = 0 
)

Only function accessible from the outside.

Takes a hit and the diffusion parameters for input. Calls all the over function necessary, depending on the type of the pad layout.

References _c0Hit, _padLayoutType, _tpcCoordinateType, _tpcParameters, distributeHitOnPadsPolar(), and getPads().

void marlintpc::HitDistributor::FillZBins ( double  hitTime,
double  sigmaLong,
double  charge,
GlobalPadIndex  padIndex,
std::list< TPCVoxel > &  voxelList 
)
protected

Helper function to fill charge on pad in z bins.

References _zBinLength.

Referenced by ApplyInduction(), and distributeHitOnPadsPolar().

void marlintpc::HitDistributor::getPadsOnTheLeft ( std::list< GlobalPadIndex > &  padList,
GlobalPadIndex  centerIndex,
double  sigmaTrans 
)
protected

Called by getPads().

Add all pad indices to the list which are within the distribution range and left/right from the input pad index. For performance reasons a reference is passed and the list in the argument is modified

References _tpcParameters, and checkDistance().

Referenced by getPads().

Member Data Documentation

double marlintpc::HitDistributor::_c0Hit
protected

Coordinates of the hit.

Are newly set for each hit.

Referenced by checkDistance(), distributeHit(), distributeHitOnPadsPolar(), and getPads().

int marlintpc::HitDistributor::_padLayoutType
protected

Type of the pad layout.

Decides which smearing decides which smearing function is called.

Referenced by distributeHit(), and getPads().

double marlintpc::HitDistributor::_sigmaTrans
protected

Diffusion parameters.

Come with the hit to smear and may change from hit to hit.


The documentation for this class was generated from the following files: