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

The ElectronCloudFinderProcessor searches for hits and groups contiguous areas to track candidates. More...

#include <ElectronCloudFinderProcessor.h>

Inheritance diagram for marlintpc::ElectronCloudFinderProcessor:

Public Member Functions

virtual Processor * newProcessor ()
 
 ElectronCloudFinderProcessor ()
 
virtual void init ()
 Called at the begin of the job before anything is read. More...
 
virtual void processRunHeader (EVENT::LCRunHeader *run)
 Called for every run.
 
virtual void processEvent (EVENT::LCEvent *evt)
 Called for every event - the working horse.
 
virtual void check (EVENT::LCEvent *evt)
 
virtual void end ()
 Called after data processing for clean up.
 

Static Protected Member Functions

static bool comparePulses (std::pair< lcio::TrackerPulse *, bool > firstSortingPair, std::pair< lcio::TrackerPulse *, bool > secondSortingPair)
 A special function for the STL list::sort algorithm comparing pairs of TDC TrackerPulses (and bools)
 

Protected Attributes

std::string _inputTrackerPulsesCollectionName
 the name of the collection the input pulses will be stored under
 
std::string _outputTrackerHitsCollectionName
 the name of the collection the output hits will be stored under
 
bool _outputHitsTransient
 Give the status which is set to the transient flag of the output collection. More...
 
float _vDrift
 
float _maxTimeSpread
 
int _minHitSize
 
int _maxHitSize
 
bool _negativeZDirection
 
float _maxDriftDistance
 
NeighbouringPadHandlermyNeighbouringPadHandler
 Create an object which holds the information about the neighbourship of all pads.
 

Detailed Description

The ElectronCloudFinderProcessor searches for hits and groups contiguous areas to track candidates.

Using PadRowLayout2D from GEAR (RectangularPadRowLayout or FixedPadSizeDiskLayout) the agorithm searches for contiguous areas. Contiguous pulses in one pad row are grouped as hit candidates, then the hit coordinates are calculated using the centre of gravity method. The hits in one contiguous area are filled into a track candidate.

Attention
This processor only performs the search. The tracks are not seeded, i. e. the track paramaters of the track candidates are not set. They are just containers to hold the hits belonging to one track.

If MarlinTPC is compiled with the $MARLIN_DEBUG option there is a lot of debug output. Use the steering file to reduce it / switch it off.

Author
Martin Killenberg, University of Bonn (derived from HitTrackFinderTopoProcessor)
Oliver Schaefer, University of Rostock
Todo:

Implement calculation of z-coordinate by drift velocity

Improve z cut. Currently it does not use topological information which can cause problems with curlers.

Input - Prerequisites

Output

Parameters
InputTrackerPulsesName of input TrackerPulses collection (default: TPCPulses)
OutputTrackerHitsName of output TrackerHits collection (default: TPCHits)
OutputTrackCandidatesName of output Tracks collection (default: TPCTrackCandidates)
InputTPCConditionsOPTIONAL: Name of the input collection containing the TPC conditions data (default: tpcconddata::TPCConditions::getDefaultColName() )
SetOutputHitsTransientIf not 0 the output collection is set transient (default: 0)
SetOutputTrackCandidatesTransientIf not 0 the output collection is set transient (default: 0)
MaxEmptyPadsMaximum number of consecuitve empty pads in cluster (default: 1)
MinHitSizeMinimum size of hit / Minimum number of Pads (default: 1)
MaxTimeSpreadMaximum time between pulses in a cluster [in ns] (default: 200)
VDriftOPTIONAL: Set drift velocity in case there is no conditions data [in mm/us] (default: 0)
NegativeZDirectionSet to 1 for the second half TPC, which look into the negative z direction (default: 0)

The drift velocity should normally come from the conditions data. This can be overwritten using this optional parameter. Do not set it in case you want to use vDrift from the CDDB!

Constructor & Destructor Documentation

marlintpc::ElectronCloudFinderProcessor::ElectronCloudFinderProcessor ( )

description of the processor which will be displayed in the steering file autometicly generated by marlin (use MarlinTPC -x (XML-format) or MarlinTPXC -l (text format))

References _inputTrackerPulsesCollectionName, _outputHitsTransient, and _outputTrackerHitsCollectionName.

Member Function Documentation

void marlintpc::ElectronCloudFinderProcessor::init ( )
virtual

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

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

Create an object which holds the information about the neighbourship of all pads.

References myNeighbouringPadHandler.

Member Data Documentation

bool marlintpc::ElectronCloudFinderProcessor::_outputHitsTransient
protected

Give the status which is set to the transient flag of the output collection.

If true the hits collection is set transient (default false).

Referenced by ElectronCloudFinderProcessor(), and processEvent().


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