MarlinTPC  1.2.0
Public Member Functions | List of all members
marlintpc::HitTrackFinderTopoProcessor Class Reference

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

#include <HitTrackFinderTopoProcessor.h>

Inheritance diagram for marlintpc::HitTrackFinderTopoProcessor:
marlintpc::TopoFinder

Public Member Functions

virtual Processor * newProcessor ()
 
 HitTrackFinderTopoProcessor ()
 
virtual void init ()
 Called at the begin of the job before anything is read. More...
 
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 check (lcio::LCEvent *evt)
 
virtual void end ()
 Called after data processing for clean up.
 
- Public Member Functions inherited from marlintpc::TopoFinder
std::string getRevision ()
 Get the revision of the TopoFinder. More...
 

Additional Inherited Members

- Static Public Member Functions inherited from marlintpc::TopoFinder
static void addTrackerHitVecs (EVENT::TrackerHitVec **vectorToAddTo, EVENT::TrackerHitVec **vectorToBeAdded)
 A helper function to add the contents of one TrackerHitVec to another. More...
 
- Protected Member Functions inherited from marlintpc::TopoFinder
 TopoFinder ()
 The constructor.
 
EVENT::TrackerHit * findHit (std::multimap< gear::GlobalPadIndex, EVENT::TrackerPulse * >::iterator currentPulseIter)
 Find the hit which contains the given pulse. More...
 
std::list< EVENT::TrackerPulse * > findNeighbouringPulses (gear::GlobalPadIndex currentPadIndex, EVENT::TrackerPulse *currentPulse, const gear::TPCModule &module)
 Iteratively searches for pulses that are on neighbouring pads. More...
 
EVENT::TrackerHitVec * findHitsInNeighbouringRows (EVENT::TrackerHit *hit, int moduleID)
 Find Hits in the neighbouring rows. More...
 
EVENT::TrackerHitVec * findHitsInRange (gear::GlobalPadIndex index1, gear::GlobalPadIndex index2, float minADCIndex, float maxADCIndex)
 Find all the hits in the given pad range. More...
 
- Protected Attributes inherited from marlintpc::TopoFinder
int _maxEmptyPads
 Maximum number of consecuitve empty pads in cluster.
 
int _minHitSize
 Minimum number of pads per hit.
 
float _maxTimeSpread
 Maximum time between pulses in a cluster in ??
 
int _minTrackHits
 Minimum number of hits on track.
 
int _maxSkipRows
 Maximum number of empty rows.
 
float _vDrift
 Optional: Set drift velocity in case there is no conditions data.
 
float _zAnode
 The position of the readout anode (positive value, TPC currently assumed to be symmetrical)
 
int _negativeZDirection
 Flag to determine if the second half TPC is reconstructed, which looks in the negative z direction. More...
 
std::multimap
< gear::GlobalPadIndex,
EVENT::TrackerPulse * > * 
_pulsesByIndex
 A multimap containing the pad index and the corresponding pulse. More...
 
unsigned int _recursionCounter
 A nested helper class for sorting gear::GlobalPadIndex. More...
 

Detailed Description

The HitTrackFinderTopoProcessor 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

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)
VDriftOverrideOPTIONAL: Override drift velocity from conditions data or in case there is no conditions data [in mm/us]
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::HitTrackFinderTopoProcessor::HitTrackFinderTopoProcessor ( )

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 marlintpc::TopoFinder::_maxEmptyPads, marlintpc::TopoFinder::_maxSkipRows, marlintpc::TopoFinder::_maxTimeSpread, marlintpc::TopoFinder::_minHitSize, marlintpc::TopoFinder::_minTrackHits, marlintpc::TopoFinder::_negativeZDirection, and marlintpc::TopoFinder::_vDrift.

Member Function Documentation

void marlintpc::HitTrackFinderTopoProcessor::init ( )
virtual

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

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

References marlintpc::TopoFinder::_zAnode.


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