MarlinTPC
1.2.0
|
Classes | |
class | HitCandidate |
Public Member Functions | |
virtual Processor * | newProcessor () |
virtual void | init () |
virtual void | processRunHeader (EVENT::LCRunHeader *run) |
virtual void | processEvent (EVENT::LCEvent *evt) |
virtual void | check (EVENT::LCEvent *evt) |
virtual void | end () |
|
virtual |
the processor is supposed to find "hits" in "rows" The input is a collection of pulses: (charge,time,moduleID,cellID + qualityFlag) The output is a collection of hits: ( [x,y,z] + covariance matrix, charge + qualityFlag )
steering input: - minimal hit size
structurally this happens in a decomposition of: (A) sort the pulses by module & row (B) LOOP: look for pulses that belong together in a row (for all rows in a module, for all modules) (C) create the "Hit" by calculating all of its parameters
the basic data structure for the hit search is a single row; the row is a simple vector of the Pulse pointers: vector<TrackerPulse*>
Pulses are grouped into rows, and the rows into modules. This is represented by a map of maps of vectors of TrackerPulses, typedefed to SortedPulseMap. –> SortedPulseMap ==> map<int, map<int, vector<TrackerPulse*> >;
a helper class is instantiated to hold the hit candidates: "HitCandidate" the temporary result of the hit candidate search is stored in a vector