"MarlinReco"  1.32.0
Public Member Functions | Protected Member Functions | Protected Attributes | List of all members
VTXDigitizer Class Reference

Digitizer for Simulated Hits in the Vertex Detector. More...

#include <VTXDigitizer.h>

Inheritance diagram for VTXDigitizer:

Public Member Functions

 VTXDigitizer (const VTXDigitizer &)=delete
 
VTXDigitizeroperator= (const VTXDigitizer &)=delete
 
virtual Processor * newProcessor ()
 
virtual void init ()
 Initialisation member function.
 
virtual void processRunHeader (LCRunHeader *run)
 Processing of run header.
 
virtual void processEvent (LCEvent *evt)
 Processing of one event.
 
virtual void check (LCEvent *evt)
 Produces check plots.
 
virtual void end ()
 Termination member function.
 

Protected Member Functions

void FindLocalPosition (SimTrackerHit *hit, double *localPosition, double *localDirection)
 Finds coordinates.
 
void TransformToLab (double *xLoc, double *xLab)
 
void ProduceIonisationPoints (SimTrackerHit *hit)
 
void ProduceSignalPoints ()
 
void ProduceHits (SimTrackerHitImplVec &simTrkVec)
 
void TransformXYToCellID (double x, double y, int &ix, int &iy)
 
void TransformCellIDToXY (int ix, int iy, double &x, double &y)
 
void PoissonSmearer (SimTrackerHitImplVec &simTrkVec)
 
void GainSmearer (SimTrackerHitImplVec &simTrkVec)
 
void PrintInfo (SimTrackerHit *simTrkHit, TrackerHitImpl *recoHit)
 
TrackerHitImpl * ReconstructTrackerHit (SimTrackerHitImplVec &simTrkVec)
 
void TrackerHitToLab (TrackerHitImpl *recoHit)
 
void PositionWithinCell (double x, double y, int &ix, int &iy, double &xCell, double &yCell)
 
void generateBackground (LCCollectionVec *col)
 

Protected Attributes

std::string _colName {}
 Input collection name.
 
std::string _outputCollectionName {}
 
std::string _colVTXRelation {}
 
int _nRun {}
 Run number.
 
int _nEvt {}
 Event number.
 
double _tanLorentzAngle {}
 tangent of Lorentz angle
 
double _cutOnDeltaRays {}
 cut in MeV on delta electrons used in simulation of charge for each ionisation point
 
double _diffusionCoefficient {}
 Diffusion coefficient in mm for nominla layer thickness.
 
int _numberOfLayers {}
 layer thickness More...
 
double _pixelSizeX {}
 
double _pixelSizeY {}
 
double _electronsPerKeV {}
 
double _segmentDepth {}
 
double _currentTotalCharge {}
 
std::vector< int > _laddersInLayer {}
 
std::vector< float > _layerRadius {}
 
std::vector< float > _layerThickness {}
 
std::vector< float > _layerHalfThickness {}
 
std::vector< float > _layerLadderLength {}
 
std::vector< float > _layerLadderHalfWidth {}
 
std::vector< float > _layerPhiOffset {}
 
std::vector< float > _layerActiveSiOffset {}
 
std::vector< float > _layerHalfPhi {}
 
std::vector< float > _layerLadderGap {}
 
std::vector< float > _bkgdHitsInLayer {}
 
std::vector< float > _layerLadderWidth {}
 
int _currentLayer {}
 
int _currentModule {}
 
int _generateBackground {}
 
double _currentParticleMomentum {}
 
double _currentParticleEnergy {}
 
double _currentParticleMass {}
 
double _currentPhi {}
 
double _widthOfCluster {}
 
double PI {}
 
double TWOPI {}
 
double PI2 {}
 
double SCALING {}
 
int _produceFullPattern {}
 
int _numberOfSegments {}
 
int _debug {}
 
int _PoissonSmearing {}
 
int _electronicEffects {}
 
int _useMCPMomentum {}
 
int _removeDrays {}
 
double _threshold {}
 
double _currentLocalPosition [3] {}
 
double _currentEntryPoint [3] {}
 
double _currentExitPoint [3] {}
 
double _electronicNoise {}
 
double _segmentLength {}
 
IonisationPointVec _ionisationPoints {}
 
SignalPointVec _signalPoints {}
 
MyG4UniversalFluctuationForSi_fluctuate {}
 
double _xLayerReco {}
 
double _yLayerReco {}
 
double _zLayerReco {}
 
double _xLayerSim {}
 
double _yLayerSim {}
 
double _zLayerSim {}
 
int _iLayer {}
 
int _nCoveredX {}
 
int _nCoveredY {}
 
int _nCells {}
 
int _totEntries {}
 
double _totMomentum {}
 
double _momX {}
 
double _momY {}
 
double _momZ {}
 
double _eDep {}
 
double _amplX [20] {}
 
double _amplY [20] {}
 
double _amplC [100] {}
 
double _ampl {}
 
double _amplMax {}
 
double _eSum {}
 
double _energyLoss {}
 
double _clusterWidthX {}
 
double _clusterWidthY {}
 
double _ampl33 {}
 
double _ampl55 {}
 
double _ampl77 {}
 
int _ncell33 {}
 
int _ncell55 {}
 
int _ncell77 {}
 
int _storeNtuple {}
 
double _xLocalRecoCOG {}
 
double _yLocalRecoCOG {}
 
double _xLocalRecoEdge {}
 
double _yLocalRecoEdge {}
 
double _xLocalSim {}
 
double _yLocalSim {}
 
std::vector< SimTrackerHitImplVec > _hitsInLayer {}
 

Detailed Description

Digitizer for Simulated Hits in the Vertex Detector.


Digitization follows the procedure adopted in the CMS software package.
For each Simulated Tracker Hit the intersection points with
the inner and outer boundaries of sensitive Si layer are calculated.
Track segment within a layer is approximated with the line.
It is divided by n subsegments, where n can be specified by a user
via external Processor parameter. For each subsegment the charge
is simulated according to Landau distribution as expected for Silicon.
The charge transfer from the middle point of track subsegment (referred
hereafter to as ionisation point)
to the outer collection plane is performed taking
into account Lorentz effect in the magnetic field
It is assumed that on the collection plane the electron cloud from
each ionisation point is spread according to the Gaussian distribution
whose width is proportional to the square-root of the drift distance.
The charge on each fired pixel is then calculated as a sum of contributions
from n Gaussians. The VTX ladder is assumed to have matrix of rectangular pixels
(In the future I plan to implement possibility of variying pixel size with
the z coordinate).
The output of the processor is the collection of Reconstructed Tracker Hits.
Each reconstructed hit is assigned the position of the center-of-gravity of
the cluster of fired pixels. Lorentz effect is corrected for.

Input collections and prerequisites

Processor requires collection of simulated vertex tracker hits.
If such a collection with the user specified name does not exist
processor takes no action.

Output

Processor produces an output collection of the Tracker Hits. Collection has name "VTXTrackerHits".

Parameters
CollectionNamename of input SimTrackerHit collection
(default parameter value : "vxd01_VXD", taken from Mokka)
TanLorentztangent of the Lorentz angle
(default parameter value : 0.8)
CutOnDeltaRayscut on the energy of delta-electrons (in MeV)
(default parameter value : 0.03)
Diffusiondiffusion coefficient for the nominal active layer thickness (in mm)
(default parameter value : 0.002)
LayerThicknessthickness of the active Silicon layer (in mm)
(default parameter value : 0.03744)
PixelSizeXpixel size along direction perpendicular to beam axis (in mm)
(default value : 0.025)
PixelSizeYpixel size along beam axis (in mm)
(default value : 0.025)
ElectronsPerMeVnumber of electrons produced per MeV of deposited energy
(default parameter value : 270.3)
Thresholdthreshold on charge deposited on one pixel (in electons)
(default parameter value : 200.0)
LaddersInLayervector of integers, numbers of phi-ladders in each layer
(default parameter values : 8, 8, 12, 16, 20; taken from Mokka database for VXD model vxd01)
LadderRadiusvector of doubles, radii of layers (in mm)
(default parameter values : 15.301, 26.301, 38.301, 49.301, 60.301; taken from Mokka database for VXD model vxd01)
ActiveLadderOffsetvector of doubles, offset of active Si layer along phi-angle (in mm) for each layer
(default parameter values : 1.455, 1.39866, 2.57163, 3.59295, 4.42245)
LadderHalfWidthvector of doubles, half-width of the ladders in each layer (in mm)
(default parameter values : 6.5, 11.0, 11.0, 11.0, 11.0; taken from Mokka database for VXD model vxd01)
LadderGapsvector of doubles, gaps between two symmetric ladders (+/-z) in mm
(default parameter values : 0.0, 0.04, 0.04, 0.04, 0.04; taken from Mokka database)
PhiOffsetvector of doubles, offset in phi angle for starting ladder in each layer
(default parameter values : 0, 0, 0, 0, 0; taken from Mokka database for VXD model vxd01)
SegmentLengthsegment length along track path which is used to subdivide track into segments (in mm). The number of track subsegments is calculated as int(TrackLengthWithinActiveLayer/SegmentLength)+1
(default parameter value : 0.005)
WidthOfClusterdefines width in Gaussian sigmas to perform charge integration for a given pixel
(default parameter value : 3.0)
ElectronicEffectsflag to switch on gaussian smearing of signal (electronic noise)
(default parameter value : 1)
ElectronicNoiseelectronic noise in electrons
(default parameter value : 100)
GenerateBackgroundflag to switch on pseudo-generation of pair background hits Background hits are uniformly generated in cosQ and Phi
(default parameter value : 0)
BackgroundHitsPerLayerexpected mean value of background hits accumulated in each layer over readout time. This number is calculated as Number of background hits per bunch crossing times number of bunch crossings over integration time.
(default values : 34400 23900 9600 5500 3100 corresponding to 100 overlaid bunch crossings)
Debugboolean variable, if set to 1, printout is activated
(default parameter value : 0)

Author
A. Raspereza, MPI Munich

Member Data Documentation

int VTXDigitizer::_numberOfLayers {}
protected

layer thickness

layer half-thickness


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