MyMarlinTPC  170316
Public Member Functions | Protected Attributes | Private Member Functions | Private Attributes | List of all members
marlintpc::SimpleHelixGeneralBrokenLineInterfaceProcessor Class Reference

Using GBL with a simple helix. More...

#include <SimpleHelixGeneralBrokenLineInterfaceProcessor.h>

Inheritance diagram for marlintpc::SimpleHelixGeneralBrokenLineInterfaceProcessor:

Public Member Functions

virtual Processor * newProcessor ()
 
 SimpleHelixGeneralBrokenLineInterfaceProcessor ()
 
virtual void init ()
 Initialize processor. More...
 
virtual void processRunHeader (EVENT::LCRunHeader *run)
 
virtual void processEvent (EVENT::LCEvent *evt)
 Process event. More...
 
virtual void check (EVENT::LCEvent *evt)
 
virtual void end ()
 

Protected Attributes

std::string _inputCollectionName
 Name of the input collection – track seeds. More...
 
std::string _outputTrackCollectionName
 Name of the output track collection. More...
 
double _bfieldScaleFactor
 scale factor for magnetic field (default: 1.0) More...
 
bool _outputIsPersistent
 whether the output is to be stored or not (default: true) More...
 
std::string _fitOptions
 list of iterations with 'h' Huber, 't' Tukey or 'c' Cauchy down-weighting More...
 
bool _writeMillepedeOut
 selects output to Millepede-II binary file More...
 
int _milleCalcMethod
 defines which parameter should be calculated for Millepede-II binary file More...
 
int _milleMinHits
 defines minimum number of hits on track for output to Millepede binary file More...
 
std::string _fileNameMillepedeFile
 name of Millepede-II binary file More...
 
bool _encodedModuleID
 Module ID is encoded in CellID0. More...
 
double _x0PerUnitLength
 X0 per unit length (TPC gas as homogeneous scatterer) (default: 0.) More...
 
bool _thickScatterer
 selects thick (otherwise thin) scatterers for multiple scattering (default: false) More...
 
double _defaultMomentum
 default momentum for multiple scattering (for Bfield off, GeV) (default: 10.) More...
 

Private Member Functions

void calcLineSeed (const std::vector< TrackerHit *>, const double *, double &, double &, double &, double &, double &) const
 Simple seed for straight line. More...
 

Private Attributes

gbl::GblTrajectory * _trajectory
 GBL trajectory. More...
 
gbl::MilleBinary * _milleBinary
 Millepede-II binary file. More...
 
bool _curvature
 flag for curved track (helix, else straight line) More...
 
std::vector< unsigned int > _theLabels
 Labels of (global) MP-II parameters. More...
 
TVectorD * _correctionVector
 correction vector from GBL fit (for track parameters) More...
 
TMatrixDSym * _covarianceMatrix
 covariance matrix from GBL More...
 
int _ndf
 number of degrees of freedom in GBL fit More...
 
double _chisquare
 chi2 from GBL fit More...
 
double _lostweight
 weight lost by down-weighting More...
 
double _refPointS
 arc-length of reference point More...
 
unsigned int _refPointIndex
 label of reference point More...
 
double _Xcenter
 TPC center, X coordinate. More...
 
double _Ycenter
 TPC center, Y coordinate. More...
 

Detailed Description

Using GBL with a simple helix.

Processor interface to simple helix (or line) fitting with General Broken Lines, written by Claus Kleinwort

Author
Ch. Rosemann, DESY (straight line), C. Kleinwort, DESY (extention to helix)

This processor interfaces the re-fitting functionality of the general broken line package by Claus Kleinwort. For information on the General Broken Lines, please refer to the publication and/or the wiki pages:

The standard behaviour is that a single, straightforward fit without any outlier rejection is performed. For multiple turns, including some outlier rejection; extend the fit options in the according steering parameter. The calculation of the measurement (pad) direction in XY uses "module.getLocalPadLayout().getCoordinateType()" to select polar or cartesian pad row geometry.

Inputs and requirements

Output

Parameters
"InputSeedTracks":stringThe name of the input collection of track candidates (default: "TPCSeedTracks")
"OutputTracks":stringThe name of the output collection with the fitted tracks(default: "TPCTracks")
"WriteOutputToStorage":boolTo set whether the output should be written to storage
"BFieldScaleFactor":doubleOptional parameter, scales magnetic field (map), use 1.0 (default) for field ON or 0.0 for field OFF
"FitOptions":stringOptional parameter, defines if multiple passes with "h" huber, "t" tukey or "c" cauchy downweighting should be performed
"WriteMillepedeBinary":boolOptional parameter, set to "true" if you want a Millepede binary file (default:"false")
"MillepedeFilename":stringOptional parameter to set the name of the Millepede binary file (default:"")
"MillePedeCalcMethod":intOptional parameter to define set of (global) parameters (default:0 = module alignment)
"MillePedeMinHits":intOptional parameter to define the minimum number of hits on track for output to Millepede binary file (default: 42)
"EncodedModuleID":boolOptional parameter, flag for encoding of module ID in CellID0 (default true)
"X0PerUnitLength":doubleOptional parameter, X0 per unit length (TPC gas as homogeneous scatterer) (default: 0.)
"ThickScatterer":boolOptional parameter, selects thick (otherwise thin) scatterers for multiple scattering (default: false)
"DefaultMomentum":doubleOptional parameter, default momentum for multiple scattering (for Bfield off, GeV) (default: 10.)

WORK IN PROGRESS: currently only works for modules with concentric pad rows (using center from GEAR)

Todo:
  • implement additional output of pull distributions, residuals, track paramters for each measurement point

A detailed description is available as lcnote LC-TOOL-2014-008. Changes with respect to this note:

Definition at line 80 of file SimpleHelixGeneralBrokenLineInterfaceProcessor.h.

Constructor & Destructor Documentation

◆ SimpleHelixGeneralBrokenLineInterfaceProcessor()

marlintpc::SimpleHelixGeneralBrokenLineInterfaceProcessor::SimpleHelixGeneralBrokenLineInterfaceProcessor ( )

Member Function Documentation

◆ calcLineSeed()

void marlintpc::SimpleHelixGeneralBrokenLineInterfaceProcessor::calcLineSeed ( const std::vector< TrackerHit *>  hitList,
const double *  refPos,
double &  omega,
double &  phi,
double &  d0,
double &  tanLambda,
double &  z0 
) const
private

Simple seed for straight line.

Calculate seed from straight line defined by (radially) first and last hit

Parameters
[in]hitListlist of hits
[in]refPosreference position
[out]omegacurvature, = 0.
[out]phiXY slope
[out]d0XY offset
[out]tanLambdaZS slope
[out]z0ZS offset

Definition at line 410 of file SimpleHelixGeneralBrokenLineInterfaceProcessor.cc.

Referenced by processEvent().

◆ check()

void marlintpc::SimpleHelixGeneralBrokenLineInterfaceProcessor::check ( EVENT::LCEvent *  evt)
virtual

Definition at line 390 of file SimpleHelixGeneralBrokenLineInterfaceProcessor.cc.

Referenced by newProcessor().

◆ end()

void marlintpc::SimpleHelixGeneralBrokenLineInterfaceProcessor::end ( )
virtual

Definition at line 393 of file SimpleHelixGeneralBrokenLineInterfaceProcessor.cc.

References _milleBinary.

Referenced by newProcessor().

◆ init()

void marlintpc::SimpleHelixGeneralBrokenLineInterfaceProcessor::init ( )
virtual

Initialize processor.

Definition at line 98 of file SimpleHelixGeneralBrokenLineInterfaceProcessor.cc.

References _fileNameMillepedeFile, _milleBinary, _writeMillepedeOut, _Xcenter, and _Ycenter.

Referenced by newProcessor().

◆ newProcessor()

virtual Processor* marlintpc::SimpleHelixGeneralBrokenLineInterfaceProcessor::newProcessor ( )
inlinevirtual

◆ processEvent()

void marlintpc::SimpleHelixGeneralBrokenLineInterfaceProcessor::processEvent ( EVENT::LCEvent *  evt)
virtual

◆ processRunHeader()

void marlintpc::SimpleHelixGeneralBrokenLineInterfaceProcessor::processRunHeader ( EVENT::LCRunHeader *  run)
virtual

Definition at line 110 of file SimpleHelixGeneralBrokenLineInterfaceProcessor.cc.

Referenced by newProcessor().

Member Data Documentation

◆ _bfieldScaleFactor

double marlintpc::SimpleHelixGeneralBrokenLineInterfaceProcessor::_bfieldScaleFactor
protected

scale factor for magnetic field (default: 1.0)

Definition at line 101 of file SimpleHelixGeneralBrokenLineInterfaceProcessor.h.

Referenced by processEvent(), and SimpleHelixGeneralBrokenLineInterfaceProcessor().

◆ _chisquare

double marlintpc::SimpleHelixGeneralBrokenLineInterfaceProcessor::_chisquare
private

chi2 from GBL fit

Definition at line 121 of file SimpleHelixGeneralBrokenLineInterfaceProcessor.h.

Referenced by processEvent().

◆ _correctionVector

TVectorD* marlintpc::SimpleHelixGeneralBrokenLineInterfaceProcessor::_correctionVector
private

correction vector from GBL fit (for track parameters)

Definition at line 118 of file SimpleHelixGeneralBrokenLineInterfaceProcessor.h.

◆ _covarianceMatrix

TMatrixDSym* marlintpc::SimpleHelixGeneralBrokenLineInterfaceProcessor::_covarianceMatrix
private

covariance matrix from GBL

Definition at line 119 of file SimpleHelixGeneralBrokenLineInterfaceProcessor.h.

◆ _curvature

bool marlintpc::SimpleHelixGeneralBrokenLineInterfaceProcessor::_curvature
private

flag for curved track (helix, else straight line)

Definition at line 116 of file SimpleHelixGeneralBrokenLineInterfaceProcessor.h.

Referenced by processEvent().

◆ _defaultMomentum

double marlintpc::SimpleHelixGeneralBrokenLineInterfaceProcessor::_defaultMomentum
protected

default momentum for multiple scattering (for Bfield off, GeV) (default: 10.)

Definition at line 111 of file SimpleHelixGeneralBrokenLineInterfaceProcessor.h.

Referenced by processEvent(), and SimpleHelixGeneralBrokenLineInterfaceProcessor().

◆ _encodedModuleID

bool marlintpc::SimpleHelixGeneralBrokenLineInterfaceProcessor::_encodedModuleID
protected

Module ID is encoded in CellID0.

Definition at line 108 of file SimpleHelixGeneralBrokenLineInterfaceProcessor.h.

Referenced by processEvent(), and SimpleHelixGeneralBrokenLineInterfaceProcessor().

◆ _fileNameMillepedeFile

std::string marlintpc::SimpleHelixGeneralBrokenLineInterfaceProcessor::_fileNameMillepedeFile
protected

name of Millepede-II binary file

Definition at line 107 of file SimpleHelixGeneralBrokenLineInterfaceProcessor.h.

Referenced by init(), and SimpleHelixGeneralBrokenLineInterfaceProcessor().

◆ _fitOptions

std::string marlintpc::SimpleHelixGeneralBrokenLineInterfaceProcessor::_fitOptions
protected

list of iterations with 'h' Huber, 't' Tukey or 'c' Cauchy down-weighting

Definition at line 103 of file SimpleHelixGeneralBrokenLineInterfaceProcessor.h.

Referenced by processEvent(), and SimpleHelixGeneralBrokenLineInterfaceProcessor().

◆ _inputCollectionName

std::string marlintpc::SimpleHelixGeneralBrokenLineInterfaceProcessor::_inputCollectionName
protected

Name of the input collection – track seeds.

Definition at line 99 of file SimpleHelixGeneralBrokenLineInterfaceProcessor.h.

Referenced by processEvent(), and SimpleHelixGeneralBrokenLineInterfaceProcessor().

◆ _lostweight

double marlintpc::SimpleHelixGeneralBrokenLineInterfaceProcessor::_lostweight
private

weight lost by down-weighting

Definition at line 122 of file SimpleHelixGeneralBrokenLineInterfaceProcessor.h.

Referenced by processEvent().

◆ _milleBinary

gbl::MilleBinary* marlintpc::SimpleHelixGeneralBrokenLineInterfaceProcessor::_milleBinary
private

Millepede-II binary file.

Definition at line 115 of file SimpleHelixGeneralBrokenLineInterfaceProcessor.h.

Referenced by end(), init(), and processEvent().

◆ _milleCalcMethod

int marlintpc::SimpleHelixGeneralBrokenLineInterfaceProcessor::_milleCalcMethod
protected

defines which parameter should be calculated for Millepede-II binary file

Definition at line 105 of file SimpleHelixGeneralBrokenLineInterfaceProcessor.h.

Referenced by processEvent(), and SimpleHelixGeneralBrokenLineInterfaceProcessor().

◆ _milleMinHits

int marlintpc::SimpleHelixGeneralBrokenLineInterfaceProcessor::_milleMinHits
protected

defines minimum number of hits on track for output to Millepede binary file

Definition at line 106 of file SimpleHelixGeneralBrokenLineInterfaceProcessor.h.

Referenced by processEvent(), and SimpleHelixGeneralBrokenLineInterfaceProcessor().

◆ _ndf

int marlintpc::SimpleHelixGeneralBrokenLineInterfaceProcessor::_ndf
private

number of degrees of freedom in GBL fit

Definition at line 120 of file SimpleHelixGeneralBrokenLineInterfaceProcessor.h.

Referenced by processEvent().

◆ _outputIsPersistent

bool marlintpc::SimpleHelixGeneralBrokenLineInterfaceProcessor::_outputIsPersistent
protected

whether the output is to be stored or not (default: true)

Definition at line 102 of file SimpleHelixGeneralBrokenLineInterfaceProcessor.h.

Referenced by processEvent(), and SimpleHelixGeneralBrokenLineInterfaceProcessor().

◆ _outputTrackCollectionName

std::string marlintpc::SimpleHelixGeneralBrokenLineInterfaceProcessor::_outputTrackCollectionName
protected

Name of the output track collection.

Definition at line 100 of file SimpleHelixGeneralBrokenLineInterfaceProcessor.h.

Referenced by processEvent(), and SimpleHelixGeneralBrokenLineInterfaceProcessor().

◆ _refPointIndex

unsigned int marlintpc::SimpleHelixGeneralBrokenLineInterfaceProcessor::_refPointIndex
private

label of reference point

Definition at line 124 of file SimpleHelixGeneralBrokenLineInterfaceProcessor.h.

Referenced by processEvent().

◆ _refPointS

double marlintpc::SimpleHelixGeneralBrokenLineInterfaceProcessor::_refPointS
private

arc-length of reference point

Definition at line 123 of file SimpleHelixGeneralBrokenLineInterfaceProcessor.h.

◆ _theLabels

std::vector<unsigned int> marlintpc::SimpleHelixGeneralBrokenLineInterfaceProcessor::_theLabels
private

Labels of (global) MP-II parameters.

Definition at line 117 of file SimpleHelixGeneralBrokenLineInterfaceProcessor.h.

◆ _thickScatterer

bool marlintpc::SimpleHelixGeneralBrokenLineInterfaceProcessor::_thickScatterer
protected

selects thick (otherwise thin) scatterers for multiple scattering (default: false)

Definition at line 110 of file SimpleHelixGeneralBrokenLineInterfaceProcessor.h.

Referenced by processEvent(), and SimpleHelixGeneralBrokenLineInterfaceProcessor().

◆ _trajectory

gbl::GblTrajectory* marlintpc::SimpleHelixGeneralBrokenLineInterfaceProcessor::_trajectory
private

GBL trajectory.

Definition at line 114 of file SimpleHelixGeneralBrokenLineInterfaceProcessor.h.

Referenced by processEvent().

◆ _writeMillepedeOut

bool marlintpc::SimpleHelixGeneralBrokenLineInterfaceProcessor::_writeMillepedeOut
protected

selects output to Millepede-II binary file

Definition at line 104 of file SimpleHelixGeneralBrokenLineInterfaceProcessor.h.

Referenced by init(), processEvent(), and SimpleHelixGeneralBrokenLineInterfaceProcessor().

◆ _x0PerUnitLength

double marlintpc::SimpleHelixGeneralBrokenLineInterfaceProcessor::_x0PerUnitLength
protected

X0 per unit length (TPC gas as homogeneous scatterer) (default: 0.)

Definition at line 109 of file SimpleHelixGeneralBrokenLineInterfaceProcessor.h.

Referenced by processEvent(), and SimpleHelixGeneralBrokenLineInterfaceProcessor().

◆ _Xcenter

double marlintpc::SimpleHelixGeneralBrokenLineInterfaceProcessor::_Xcenter
private

TPC center, X coordinate.

Definition at line 125 of file SimpleHelixGeneralBrokenLineInterfaceProcessor.h.

Referenced by init(), and processEvent().

◆ _Ycenter

double marlintpc::SimpleHelixGeneralBrokenLineInterfaceProcessor::_Ycenter
private

TPC center, Y coordinate.

Definition at line 126 of file SimpleHelixGeneralBrokenLineInterfaceProcessor.h.

Referenced by init(), and processEvent().


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