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

Processor to create primary ionisation from MCParticles passing the TPC. More...

#include <PrimaryIonisationProcessor.h>

Inheritance diagram for marlintpc::PrimaryIonisationProcessor:

Public Member Functions

virtual Processor * newProcessor ()
 
virtual void init ()
 Called at the begin of the job before anything is read.
 
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 SetParticleParameters (lcio::MCParticle *mcparticle)
 
virtual void InitializeTrackPoint ()
 
virtual void CalculateNumberOfElectrons ()
 
virtual void CalculateNumberOfClusters ()
 
virtual void ReadEPerClusterInfoFile ()
 
virtual void ReadClusterDensityFile ()
 
virtual void CalculateTrackPointwithBfield ()
 
virtual void CalculateTrackPointwithoutBfield ()
 
int GetTotalNumberOfElectrons ()
 
virtual void CalculateClusterDistance ()
 
virtual void CalculateEnergyLoss ()
 
virtual void RotateToTrack (double x, double y, double z)
 
virtual void RotateToDelta (double x, double y, double z)
 
virtual void MultipleScattering (double phi, double theta)
 
virtual void SetNextStartPoint ()
 

Protected Attributes

std::string _inputCollectionName
 Name of input collection.
 
std::string _outputCollectionName
 Name of output collection.
 
std::string clusterdensityfile
 File with parametrisation of cluster density.
 
std::string eperclusterfile
 File with parametrisation of electrons per cluster.
 
int _nRun
 
int _nEvt
 
float _TPCRadius
 Outer radius of the TPC.
 
float _TPCInnerRadius
 Inner radius of the TPC.
 
float _BField
 Magnetic field strength.
 
float _distance
 
int _transient
 
bool _groupElectrons
 
int Curler
 For full simulation of Curler set to 0, otherwise standard 1 means simplified treatment of low momentum particles.
 
double aheed [8]
 Fitparameters for calculation of # clusters from Parameterisation from HEED. More...
 
int numberofelectrons
 
double numberofclusters
 
double clusterdistance
 
std::vector< double > clusterelectrons [2]
 For calculation of # electrons per cluster from Parameterisation from HEED.
 
double _clusterprobcutoff
 
int InTPC
 
double xa
 
double ya
 
double za
 
double xv
 
double yv
 
double zv
 
double xend
 
double yend
 
double zend
 
double tend
 
double x_e
 
double y_e
 
double z_e
 
double t_e
 
double dx
 
double dy
 
double dz
 
double dr
 
double dp
 
double px
 
double py
 
double pz
 
double pt
 
double p
 
double p_const
 
double energy
 
double mass
 
double charge
 
int pdg
 
double delta_x
 
double delta_y
 
double delta_z
 

Detailed Description

Processor to create primary ionisation from MCParticles passing the TPC.

Input - Prerequisites

Collection of MCParticles

Output

Collection of SimTrackerHits

Parameters
InputCollectionNameName of input collection, MCParticles
OutputCollectionNameName of output collection, SimTrackerHits
TransientIf not 0 the output collection is set transient
OutputTypeIf not 0 all ions in the TPC are returned
FullCurlerSwitch detailed treatment of curlers on or off
ClusterInfoPath to file containing information on ionisation clusters (#e- in cluster)
ClusterProbCutoff(optional) For ClusterInfo file: set this to a value (very) slightly smaller than where the integrated probability is cut off
ClusterDensityFile(optional) Use user-defined file with heed parametrisation of the cluster density
GroupElectronsFlag whether to group electrons at the same position to a single hit, default: false
WARNING: Turning on the GroupElectrons flag currently breaks the default digitisation chain (DriftProcessor and GEMProcessor). It only works with the MokkaToVoxelProcessor.
Author
Astrid Muennich

Member Function Documentation

void marlintpc::PrimaryIonisationProcessor::CalculateClusterDistance ( )
virtual

distributes number of electrons randomly along track segment.

Referenced by processEvent().

void marlintpc::PrimaryIonisationProcessor::CalculateEnergyLoss ( )
virtual

Calculates energy loss for helix.

References dp.

Referenced by processEvent().

void marlintpc::PrimaryIonisationProcessor::CalculateNumberOfElectrons ( )
virtual

Determines number of electrons on track segment using parametrisation obtained with HEED.

References clusterelectrons.

Referenced by processEvent().

void marlintpc::PrimaryIonisationProcessor::CalculateTrackPointwithBfield ( )
virtual

Calculates end point of track segment with magnetic field.

References _BField, dp, px, xa, and xend.

Referenced by processEvent().

void marlintpc::PrimaryIonisationProcessor::CalculateTrackPointwithoutBfield ( )
virtual

Calculates end point of track segment without magnetic field.

References dx, px, xa, and xend.

Referenced by processEvent().

void marlintpc::PrimaryIonisationProcessor::InitializeTrackPoint ( )
virtual

Calculates parameters for helix like radius, so tracks can be curled if magnetic field is present.

References xa, and xend.

Referenced by processEvent().

void marlintpc::PrimaryIonisationProcessor::MultipleScattering ( double  phi,
double  theta 
)
virtual

Multiple scattering for delta rays.

References RotateToDelta().

Referenced by processEvent().

void marlintpc::PrimaryIonisationProcessor::RotateToDelta ( double  x,
double  y,
double  z 
)
virtual

Rotation for delta rays.

Referenced by MultipleScattering().

void marlintpc::PrimaryIonisationProcessor::RotateToTrack ( double  x,
double  y,
double  z 
)
virtual

Rotation for delta rays.

References px.

Referenced by processEvent().

void marlintpc::PrimaryIonisationProcessor::SetParticleParameters ( lcio::MCParticle *  mcparticle)
virtual

Reads in values from generator particle needed for track, like vertex, energy, momentum etc.

References px, and xv.

Referenced by processEvent().

Member Data Documentation

double marlintpc::PrimaryIonisationProcessor::aheed[8]
protected

Fitparameters for calculation of # clusters from Parameterisation from HEED.

Random generator for landau and gaussian.

Referenced by init().

double marlintpc::PrimaryIonisationProcessor::dp
protected

Scale factor for radius in case of dE/dx.

Referenced by CalculateEnergyLoss(), CalculateTrackPointwithBfield(), init(), and processEvent().

double marlintpc::PrimaryIonisationProcessor::dx
protected

Length of track segment.

Referenced by CalculateTrackPointwithoutBfield(), and init().

int marlintpc::PrimaryIonisationProcessor::InTPC
protected

#e- in one event

Referenced by init(), and processEvent().

double marlintpc::PrimaryIonisationProcessor::px
protected
double marlintpc::PrimaryIonisationProcessor::x_e
protected

e- coordinate on track segment.

double marlintpc::PrimaryIonisationProcessor::xa
protected
double marlintpc::PrimaryIonisationProcessor::xend
protected
double marlintpc::PrimaryIonisationProcessor::xv
protected

Vertex of particle.

Referenced by init(), processEvent(), and SetParticleParameters().


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