MarlinTPC
1.2.0
|
TopoFinder contains finding algorithms for clusters of TrackerPulses. More...
#include <TopoFinder.h>
Public Member Functions | |
std::string | getRevision () |
Get the revision of the TopoFinder. More... | |
Static Public Member Functions | |
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 | |
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 | |
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... | |
TopoFinder contains finding algorithms for clusters of TrackerPulses.
It operates on a std::multimap<int, TrackerPulse*> which contains the pulses to search in a multimap sorted by the corresponding pad index.
This class is not a processor, but called from them.
|
static |
A helper function to add the contents of one TrackerHitVec to another.
Be aware that you need handlers of TrackerHitVec because the pointers are modified!
Referenced by findHitsInNeighbouringRows().
|
protected |
Find the hit which contains the given pulse.
It looks for pulses in neighbouring pads.
References _minHitSize, _negativeZDirection, _pulsesByIndex, _vDrift, _zAnode, and findNeighbouringPulses().
Referenced by findHitsInRange(), and marlintpc::HitTrackFinderTopoProcessor::processEvent().
|
protected |
Find Hits in the neighbouring rows.
If empty rows are allowed this does not necessarrily mean next neighbouring rows. (Empty row means there is no hit in this row which matches the given hit. It does not have to be completely empty.)
References _maxSkipRows, _recursionCounter, addTrackerHitVecs(), and findHitsInRange().
Referenced by marlintpc::HitTrackFinderTopoProcessor::processEvent().
|
protected |
Find all the hits in the given pad range.
There might be more than one hit in case of a looper or an interaction.
References _pulsesByIndex, and findHit().
Referenced by findHitsInNeighbouringRows().
|
protected |
Iteratively searches for pulses that are on neighbouring pads.
Erase the iterator of this pulse from the global map before calling this function to avoid finding it twice. The reference to the module is passed so it does not have to be retrieved over and over again...
References _maxEmptyPads, and _pulsesByIndex.
Referenced by findHit().
std::string marlintpc::TopoFinder::getRevision | ( | ) |
Get the revision of the TopoFinder.
Use this information in the processor which uses or is derived from this class:
run->parameters().setValue( _processorName + "_revision", * std::string("$Rev:$ using TopoFinder " + myTopoFinder->getRevision())); *
Referenced by marlintpc::HitTrackFinderTopoProcessor::processRunHeader().
|
protected |
Flag to determine if the second half TPC is reconstructed, which looks in the negative z direction.
In this case the x and z coordinate are multiplied with -1 (endplate rotated by 180 degress around y axis wrt. first endplate)
Referenced by findHit(), and marlintpc::HitTrackFinderTopoProcessor::HitTrackFinderTopoProcessor().
|
protected |
A multimap containing the pad index and the corresponding pulse.
Sorted by pad index.
Referenced by findHit(), findHitsInRange(), findNeighbouringPulses(), and marlintpc::HitTrackFinderTopoProcessor::processEvent().
|
protected |
A nested helper class for sorting gear::GlobalPadIndex.
They are sorted by moduleID, and within moduleID in padIndex
Referenced by findHitsInNeighbouringRows().