"MarlinReco"  1.16.0
Public Member Functions | Protected Attributes | List of all members
TPCDigiProcessor Class Reference

====== TPCDigiProcessor ======
More...

#include <TPCDigiProcessor.h>

Inheritance diagram for TPCDigiProcessor:

Public Member Functions

virtual Processor * newProcessor ()
 
virtual void init ()
 Called at the begin of the job before anything is read. More...
 
virtual void processRunHeader (LCRunHeader *run)
 Called for every run.
 
virtual void processEvent (LCEvent *evt)
 Called for every event - the working horse.
 
virtual void check (LCEvent *evt)
 
virtual void end ()
 Called after data processing for clean up.
 
void writeVoxelToHit (Voxel_tpc *aVoxel)
 
void writeMergedVoxelsToHit (std::vector< Voxel_tpc * > *hitList)
 
void plotHelixHitResidual (MCParticle *mcp, CLHEP::Hep3Vector *thisPointRPhi)
 
double getPadPhi (CLHEP::Hep3Vector *thisPointRPhi, CLHEP::Hep3Vector *firstPointRPhi, CLHEP::Hep3Vector *middlePointRPhi, CLHEP::Hep3Vector *lastPointRPhi)
 
double getPadTheta (CLHEP::Hep3Vector *firstPointRPhi, CLHEP::Hep3Vector *middlePointRPhi, CLHEP::Hep3Vector *lastPointRPhi)
 

Protected Attributes

std::string _padRowHitColName
 Input collection name.
 
std::string _spacePointColName
 
std::string _lowPtHitscolName
 
std::string _TPCTrackerHitsCol
 Output collection name.
 
std::string _outRelColName
 
bool _use_raw_hits_to_store_simhit_pointer
 
int _rejectCellID0
 
float _padWidth
 
int _nRun
 
int _nEvt
 
EVENT::MCParticle * _mcp
 
EVENT::MCParticle * _previousMCP
 
EVENT::MCParticle * _nextMCP
 
EVENT::MCParticle * _nMinus2MCP
 
EVENT::MCParticle * _nPlus2MCP
 
SimTrackerHit * _SimTHit
 
SimTrackerHit * _previousSimTHit
 
SimTrackerHit * _nextSimTHit
 
SimTrackerHit * _nPlus2SimHit
 
SimTrackerHit * _nMinus2SimHit
 
gsl_rng * _random
 
bool _dontEncodeSide
 
float _pointResoRPhi0
 
float _pointResoPadPhi
 
float _diffRPhi
 
int _nEff
 
float _pointResoZ0
 
float _diffZ
 
float _binningZ
 
float _binningRPhi
 
float _doubleHitResZ
 
float _doubleHitResRPhi
 
int _maxMerge
 
int _nRechits
 
std::vector< std::vector
< Voxel_tpc * > > 
_tpcRowHits
 
std::map< Voxel_tpc
*, SimTrackerHit * > 
_tpcHitMap
 
std::vector< float > _length
 
int lenpos
 
LCCollectionVec * _trkhitVec
 
LCCollectionVec * _relCol
 
CellIDEncoder< TrackerHitImpl > * _cellid_encoder
 
int _NSimTPCHits
 
int _NBackgroundSimTPCHits
 
int _NPhysicsSimTPCHits
 
int _NPhysicsAbove02GeVSimTPCHits
 
int _NPhysicsAbove1GeVSimTPCHits
 
int _NRecTPCHits
 
int _NLostPhysicsTPCHits
 
int _NLostPhysicsAbove02GeVPtTPCHits
 
int _NLostPhysicsAbove1GeVPtTPCHits
 
int _NRevomedHits
 

Detailed Description

====== TPCDigiProcessor ======

This Processor depends on Circle.h from MarlinUtil

Caution: This digitiser presently does not process space-point like SimTrackerHits which have been flagged with CellIDs set to the negetive row number. This must be implemented in future. Produces TPC TrackerHit collection from SimTrackerHit collection, smeared in r-phi and z. Double hits are identified but are currently not added to the collection. This may be change at a later date when criteria for their seperation is defined. The resolutions are defined in the GEAR stearing file.

Resolution in r-phi is calculated according to the formular
sigma_{point}^2 = sigma_0^2 + Cd^2/N_{eff} * L_{drift} Cd^2/N_{eff}} = 25^2/(22/sin(theta)*h/6mm) Cd = 25 ( microns / cm^(1/2) ) (this is for B=4T, h is the pad height = pad-row pitch in mm, theta is the polar angle)

At the moment resolution in z assumed to be independent of drift length.

The type of TPC TrackerHit is set to 500 via method TrackerHitImpl::setType(int type)

Input collections and prerequisites

Processor requires collections of SimTrackerHits in TPC

Output

Processor produces collection of digitized TrackerHits in TPC

Parameters
CollectionNameThe name of input SimTrackerHit collection
(default name STpc01_TPC)
RejectCellID0Whether or not to reject SimTrackerHits with Cell ID 0. Mokka drivers TPC00-TPC03 encoded the pad row number in the cell ID, which should always be non-zero anyway. Drivers TPC04 and TPC05 do not simulate pad rows and thus have the cell ID set to zero for all hits. You will need to set RejectCellID0 to 0 in order to use this processor with these drivers, but note that the implications for track reconstruction are not strictly defined. Mokka driver TPC06 uses a mixed approach with one hit per pad row having non-zero cell ID, extra hits having 0 cell ID. Typically, unless you use TPC04 or TPC05, you should not touch this parameter.
(default value 1)
TPCTrackerHitsColThe name of output collection of TrackerHits
(default name TPCTrackerHits)

Authors
S. Aplin, DESY and A.Raspereza, MPI

Changed 7/9/07 so that the const and diffusion resolution terms are taken as processor parameters rather than the gear file. The parameters _pixZ and pixRP were also changed from gear parameters to processor parameters clare.nosp@m..lyn.nosp@m.ch@br.nosp@m.isto.nosp@m.l.ac..nosp@m.uk

Member Function Documentation

virtual void TPCDigiProcessor::init ( )
virtual

Called at the begin of the job before anything is read.

Use to initialize the processor, e.g. book histograms.


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