MarlinTPC
1.2.0
|
Processor to drift primary electrons according to the characteristics of the choosen gas to pad plane. More...
#include <DriftProcessor.h>
Public Member Functions | |
virtual Processor * | newProcessor () |
DriftProcessor () | |
C'tor. | |
virtual | ~DriftProcessor () |
D'tor. | |
virtual void | init () |
Called at the begin of the job before anything is read. More... | |
virtual void | processRunHeader (lcio::LCRunHeader *run) |
Called for every run. | |
virtual void | processEvent (lcio::LCEvent *evt) |
Called for every event - the working horse. | |
virtual void | end () |
Called after all events were processed for clean up. | |
Protected Member Functions | |
void | MakeElectronDriftCoordinates () |
Calculates coordinates of the drifted electrons. More... | |
void | GetElectronCoordinates (SimTrackerHit *) |
Gets electron coordinates before drifting. | |
Protected Attributes | |
std::string | _inputCollectionName |
Name of the input collection. | |
std::string | _outputCollectionName |
Name of the output collection. | |
std::string | _tpcConditionsColName |
Name of collection with TPCConditions. | |
std::string | _gas |
Name of the gas used in the TPC. | |
float | _EField |
float | _BField |
int | _transient |
If not set to 0 output collection is set transient. | |
gsl_rng * | r |
Random generator for landau and gaussian. | |
double | x_e |
double | y_e |
double | z_e |
double | t_e |
double | _TPCLength |
Maximum drift length of the TPC. | |
double | _TPCOuterRadius |
Outer Radius of the TPC. | |
double | _TPCInnerRadius |
Inner Radius of the TPC. | |
double | _distance |
Drift distance of an electron. | |
float | xdrift |
float | ydrift |
float | zdrift |
float | tdrift |
Coordinates of drifted e-. | |
float | _vdrift |
Drift velocity in mm/us. | |
float | _difflong |
Longitudinal diffusion in um/sqrt(cm) | |
float | _difftrans |
Transversal diffusion in um/sqrt(cm) | |
double | _meanAmp |
Mean amplification of an single electron. | |
TPCGas * | _gasClass |
gas object to calulated properties like drift and diffusion | |
double | _ionisationEnergy |
Ionisation energy of the gas. | |
bool | _fullCurlerBackwardCompatibility |
Flag whether to multiply hits in curlers with 10. | |
bool | _isFirstEvent |
Flag to store if this is the first event processed after init. | |
double | _attachment |
Additional attachment in drift reagion due to water and/or oxygen in gas. | |
Processor to drift primary electrons according to the characteristics of the choosen gas to pad plane.
Longitudinal and transverse diffusion are taken into account as well as magnetic fields.
Collection of SimTrackerHits with charge values set as dEdx
Collection containing SimTrackerHits with x,y-position on pad plane.
InputCollectionName | Name of input collection, SimTrackerHits |
OutputCollectionName | Name of output collection, SimTrackerHits |
Transient | If not 0 the output collection is set transient |
Gas | The gas in the TPC [TDR, P10, P5, T2K] (default: TDR) |
DriftField | Value of the drift field in V/cm |
IonisationEnergy | Mean ionisation energy of the chambers gas in [GeV] (default: 26E-9 (argon)) |
FullCurlerBackwardCompatibility | NOT IMPLEMENTED YET: Turn on for data from PrimaryIonisation < r1876 and FullCurler turned off (default: false) Without FullCurler the old versions of PrimaryIonisation grouped 10 electrons but did not set the charge currectly. |
|
virtual |
Called at the begin of the job before anything is read.
Use to initialize the processor, e.g. book histograms.
References _difflong, _difftrans, _distance, _gas, _gasClass, _isFirstEvent, _TPCInnerRadius, _TPCLength, _TPCOuterRadius, _vdrift, marlintpc::TPCGas::CalculateGasParameters(), marlintpc::TPCGas::GetDriftVelocity(), marlintpc::TPCGas::GetLongitudinalDiffusion(), marlintpc::TPCGas::GetTransverseDiffusion(), r, marlintpc::TPCGas::SetBField(), marlintpc::TPCGas::SetEField(), tdrift, and x_e.
|
protected |
Calculates coordinates of the drifted electrons.
Longitudinal as well as transvers diffusion are taken into account.
References _difflong, _difftrans, _distance, _vdrift, r, tdrift, and x_e.
Referenced by processEvent().
|
protected |
Coordinates of the electron.
Referenced by GetElectronCoordinates(), init(), and MakeElectronDriftCoordinates().