"MarlinReco"  1.32.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

 TPCDigiProcessor (const TPCDigiProcessor &)=delete
 
TPCDigiProcessoroperator= (const TPCDigiProcessor &)=delete
 
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: