MarlinTPC
1.2.0
|
Basic overview: More...
#include <MMScatterProcessor.h>
Classes | |
class | PRFFcn |
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 () |
Static Public Attributes | |
static std::vector< double > | CALIB_PARAMS |
Protected Member Functions | |
void | _sortPulses (const EVENT::TrackerHitVec &, const gear::TPCParameters &, SortedPulseMap &) |
void | _fillData (const SortedPulseMap &, const gear::TPCParameters &, const IMPL::TrackImpl *, PointsMap &) |
void | calibrate () |
Basic overview:
This processor takes in a collection of tracks. Filters are applied to screen unwanted tracks (trackangle, number of tracks, etc.) The hits from the track are extracted, and from them, the consituent pulses. A vector of points is created – the independent variable is the pulse's distance from the track, and the dependent variable is the pulse's amplitude. The vector is then amended so that the pulse amplitude's are normalized.
If performing a calibration, the scatter plot is fit with the PRF after a given interval of events, and the results are used in the calculation of the hits for the next interval of events, so as to iteratively converge on the correct parameters.
Parameters:
InputTrackCollections = Input collections of tracks [StringVec] SingleTrack = Restrict to single-track events [boolean] SmallAngle = Restrict to hits with a local track angle between -5 and 5 degrees [boolean] PRFType = Type of PRF to use [string] NormType = Type of PRF normalization to use. See MMAdvancedCalibrationProcessor for options [integer] PRF_Parameters = List of PRF Parameters [FloatVec] FitPRF = Whether or not the PRF should be fit to the scatter plot(s) [boolean] CalibRun = Whether or not this is a calibration run (hence whether or not the static PRF variable should be modified) [boolean] CalibIterations = If calibrating, this sets the number of events per iteration [integer] CalibPad = If calibrating, this sets whether or not to pad the hits with empty pulses [boolean] RowDep = Set whether or not the PRF parameters have a row dependency (as defined in the MMHitFinderProcessor) [boolean] Profiles = Whether or not to turn the scatter plots into TProfiles [boolean] ModuleList = List of modules to be used [IntVec] ParOutputPath = If calibrating, this is the path to save the calibrated parameters [string]
Author: P. Hayman, Carleton University
|
protected |
Taken almost directly from MMHitFinderProcessor.
Simple method. Procedure is as follows:
-Check hits one-by-one: -For each pulse in the hit: -Check if its module is already in the map: -if it is not there, add it; -Check if its row is in the map: -if it is not there, add it; -Add the pulse to the vector of the appropriate row in the appropriate module;
|
virtual |
TODO: Set additional braces, according to indentation, to prevent warnings: suggest explicit braces to avoid ambiguous 'else' Please check carefully, if braces are still set correctly!