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

Processor to drift primary electrons according to the characteristics of the choosen gas to pad plane. More...

#include <DriftProcessor.h>

Inheritance diagram for marlintpc::DriftProcessor:

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.
 

Detailed Description

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.

Input - Prerequisites

Collection of SimTrackerHits with charge values set as dEdx

Output

Collection containing SimTrackerHits with x,y-position on pad plane.

Parameters
InputCollectionNameName of input collection, SimTrackerHits
OutputCollectionNameName of output collection, SimTrackerHits
TransientIf not 0 the output collection is set transient
GasThe gas in the TPC [TDR, P10, P5, T2K] (default: TDR)
DriftFieldValue of the drift field in V/cm
IonisationEnergyMean ionisation energy of the chambers gas in [GeV] (default: 26E-9 (argon))
FullCurlerBackwardCompatibilityNOT 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.
Todo:
Implement full curler handling (10 electrons per hit for low p_t and low p_z)
Author
Astrid Muennich, last modifications by Martin Killenberg

Member Function Documentation

void marlintpc::DriftProcessor::init ( )
virtual
void marlintpc::DriftProcessor::MakeElectronDriftCoordinates ( )
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().

Member Data Documentation

double marlintpc::DriftProcessor::x_e
protected

Coordinates of the electron.

Referenced by GetElectronCoordinates(), init(), and MakeElectronDriftCoordinates().


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