MarlinTPC  1.2.0
Classes | Public Member Functions | Static Public Member Functions | Static Public Attributes | Protected Types | Protected Member Functions | Protected Attributes | List of all members
marlintpc::MMScatterProcessor Class Reference

Basic overview: More...

#include <MMScatterProcessor.h>

Inheritance diagram for marlintpc::MMScatterProcessor:

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 Member Functions

static std::pair< double, double > calculateTrackPosition (const gear::TPCParameters &, const IMPL::TrackImpl *, int mod, int row)
 
static std::pair< double, double > calculateTrackPosition (const gear::TPCParameters &, double d0, double phi0, double omega, const float *ref, int mod, int row)
 
static std::pair< double, double > calculateStraightTrackPosition (const gear::TPCParameters &, double d0, double phi0, const float *ref, int mod, int row)
 

Static Public Attributes

static std::vector< double > CALIB_PARAMS
 

Protected Types

typedef std::map< int,
std::map< int, std::vector
< TrackerPulse * > > > 
SortedPulseMap
 
typedef std::map< std::pair
< int, int >, std::vector
< std::pair< double, float > > > 
PointsMap
 

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 ()
 

Protected Attributes

lcio::StringVec _inputColNames
 
bool _fitPRF
 
bool _rowDep
 
bool _moduleDep
 
bool _singleTrack
 
bool _smallAngle
 
bool _profile
 
int _curEvt
 
int _normType
 
int _nPar
 
double * _parArray
 
std::string _output_path
 
std::string _prfType
 
std::vector< float > _parVec
 
std::vector< int > _moduleList
 
std::map< int, int > _moduleMap
 
PointsMap _scatterMap
 
std::vector< std::vector
< double > > 
_iterationPar
 
std::vector< double > _iterationNumbers
 
int _nEvt
 
int _nIterations
 
int _calibIter
 
bool _calibRun
 
bool _calibPad
 
std::map< std::pair< int, int >
, TH1 * > 
_scatterPlots
 
AIDA::ITuple * fitData
 

Detailed Description

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

Member Function Documentation

void marlintpc::MMScatterProcessor::_sortPulses ( const EVENT::TrackerHitVec &  ,
const gear::TPCParameters &  ,
SortedPulseMap &   
)
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;

void marlintpc::MMScatterProcessor::init ( )
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!


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