MarlinTPC
1.2.0
|
Public Member Functions | |
HitDistributor (const gear::TPCParameters *, double zBinLength, double inductionFactor=0) | |
Constructors for the class. | |
~HitDistributor () | |
Destructor. | |
std::list< TPCVoxel > | distributeHit (SimTrackerHit *hit, double sigmaTrans, double sigmaLong=0) |
Only function accessible from the outside. More... | |
Protected Member Functions | |
std::list< GlobalPadIndex > | getPads (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< TPCVoxel > | distributeHitOnPadsPolar (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< TPCVoxel > | distributeHitOnPadsRect (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. | |
|
protected |
Helper function to carry out induction of charge on neighbouring pads.
References _tpcParameters, and FillZBins().
Referenced by distributeHitOnPadsPolar().
|
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().
|
protected |
Helper function to fill charge on pad in z bins.
References _zBinLength.
Referenced by ApplyInduction(), and distributeHitOnPadsPolar().
|
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().
|
protected |
Coordinates of the hit.
Are newly set for each hit.
Referenced by checkDistance(), distributeHit(), distributeHitOnPadsPolar(), and getPads().
|
protected |
Type of the pad layout.
Decides which smearing decides which smearing function is called.
Referenced by distributeHit(), and getPads().
|
protected |
Diffusion parameters.
Come with the hit to smear and may change from hit to hit.