Project
Loading...
Searching...
No Matches
o2::tpc::ElectronTransport Class Reference

#include <ElectronTransport.h>

Public Member Functions

 ~ElectronTransport ()=default
 Destructor.
 
void updateParameters (float vdrift=0)
 Update the OCDB parameters cached in the class. To be called once per event.
 
GlobalPosition3D getElectronDrift (GlobalPosition3D posEle, float &driftTime)
 
bool isCompletelyOutOfSectorCoarseElectronDrift (GlobalPosition3D posEle, const Sector &sector) const
 
bool isElectronAttachment (float driftTime)
 
float getDriftTime (float zPos, float signChange=1.f) const
 

Static Public Member Functions

static ElectronTransportinstance ()
 

Detailed Description

This class handles the electron transport in the active volume of the TPC. In particular, in deals with the diffusion of the charge cloud while drifting towards the readout chambers and the loss of electrons during that drift due to attachement.

Definition at line 35 of file ElectronTransport.h.

Constructor & Destructor Documentation

◆ ~ElectronTransport()

o2::tpc::ElectronTransport::~ElectronTransport ( )
default

Destructor.

Member Function Documentation

◆ getDriftTime()

float o2::tpc::ElectronTransport::getDriftTime ( float  zPos,
float  signChange = 1.f 
) const
inline

Compute electron drift time from z position

Parameters
zPosz position of the charge
signChangeIf the zPosition of the charge is shifted to the other TPC side, the drift length needs to be accordingly longer. In such cases, this parameter is set to -1
Returns
Time of the charge

Definition at line 96 of file ElectronTransport.h.

◆ getElectronDrift()

GlobalPosition3D ElectronTransport::getElectronDrift ( GlobalPosition3D  posEle,
float &  driftTime 
)

Drift of electrons in electric field taking into account diffusion

Parameters
posEleGlobalPosition3D with start position of the electrons
Returns
driftTime Drift time taking into account diffusion in z direction
GlobalPosition3D with position of the electrons after the drift taking into account diffusion

For drift lengths shorter than 1 mm, the drift length is set to that value

The position is smeared by a Gaussian with mean around the actual position and a width according to the diffusion coefficient times sqrt(drift length)

If there is a sign change in the z position, the hit has changed sides This is not possible, but rather just an elongation of the drift time. In such cases, the old z position of the hit is returned, and the drift time is computed accordingly

Definition at line 36 of file ElectronTransport.cxx.

◆ instance()

static ElectronTransport & o2::tpc::ElectronTransport::instance ( )
inlinestatic

Definition at line 38 of file ElectronTransport.h.

◆ isCompletelyOutOfSectorCoarseElectronDrift()

bool ElectronTransport::isCompletelyOutOfSectorCoarseElectronDrift ( GlobalPosition3D  posEle,
const Sector sector 
) const

Drift of electrons in electric field taking into account diffusion with 3 sigma of the width

Parameters
posEleGlobalPosition3D with start position of the electrons
Returns
GlobalPosition3D with position of the electrons after the drift taking into account diffusion with 3 sigma of the width

For drift lengths shorter than 1 mm, the drift length is set to that value

Three sigma of the expected average transverse diffusion

Definition at line 68 of file ElectronTransport.cxx.

◆ isElectronAttachment()

bool o2::tpc::ElectronTransport::isElectronAttachment ( float  driftTime)
inline

Attachment probability for a given drift time

Parameters
driftTimeDrift time of the electron
Returns
Boolean whether the electron is attached (and lost) or not

electron is attached and lost

not attached

Definition at line 87 of file ElectronTransport.h.

◆ updateParameters()

void ElectronTransport::updateParameters ( float  vdrift = 0)

Update the OCDB parameters cached in the class. To be called once per event.

Definition at line 29 of file ElectronTransport.cxx.


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