MarlinTPC
1.2.0
|
The HitTrackFinderTopoProcessor searches for hits and groups contiguous areas to track candidates. More...
#include <HitTrackFinderTopoProcessor.h>
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. | |
![]() | |
std::string | getRevision () |
Get the revision of the TopoFinder. More... | |
Additional Inherited Members | |
![]() | |
static void | addTrackerHitVecs (EVENT::TrackerHitVec **vectorToAddTo, EVENT::TrackerHitVec **vectorToBeAdded) |
A helper function to add the contents of one TrackerHitVec to another. More... | |
![]() | |
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... | |
![]() | |
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... | |
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.
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.
Handling of dead and noisy channels.
Improve z cut. Currently it does not use topological information which can cause problems with curlers.
InputTrackerPulses | Name of input TrackerPulses collection (default: TPCPulses) |
OutputTrackerHits | Name of output TrackerHits collection (default: TPCHits) |
OutputTrackCandidates | Name of output Tracks collection (default: TPCTrackCandidates) |
InputTPCConditions | OPTIONAL: Name of the input collection containing the TPC conditions data (default: tpcconddata::TPCConditions::getDefaultColName() ) |
SetOutputHitsTransient | If not 0 the output collection is set transient (default: 0) |
SetOutputTrackCandidatesTransient | If not 0 the output collection is set transient (default: 0) |
MaxEmptyPads | Maximum number of consecuitve empty pads in cluster (default: 1) |
MinHitSize | Minimum size of hit / Minimum number of Pads (default: 1) |
MaxTimeSpread | Maximum time between pulses in a cluster [in ns] (default: 200) |
VDriftOverride | OPTIONAL: Override drift velocity from conditions data or in case there is no conditions data [in mm/us] |
NegativeZDirection | Set 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!
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.
|
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.