MarlinTPC
1.2.0
|
Functionality to evaluate the pad response function for a hit. More...
#include <PadResponseFunctionGEM.h>
Public Member Functions | |
PadResponseFunctionGEM (double defocussing, double diffusion, const gear::TPCParameters &gearparameter) | |
The constructor. | |
bool | EvaluateHit (lcio::TrackerHit *hit, lcio::Track *track=NULL) |
returns true if a PRF correction was applied, returns false if KeepCentreOfGravityInfo was used | |
double * | GetPRFPosition () |
PRF improved position in global coordinates. PRF acts in rphi or xy not in z, so this is a 2D position in global coordinates. | |
double | GetPRFCharge () |
Hit charge given by the integral of the PRF. | |
double | GetPRFChargeError () |
Error on the hit charge. | |
bool | GetPRFSucceeded () |
Option to check if the fit failed. A way to distinguish between the reseon the PRF was not used, either because enough pads or fit failed. | |
void | SetPRCOnly (int value) |
Option to check if the fit failed. A way to distinguish between the reseon the PRF was not used, either because enough pads or fit failed. | |
Protected Member Functions | |
void | CalculateFixedWidth (lcio::TrackerHit *hit, lcio::Track *track=NULL) |
Calculate the width to be fixed for the PRF fit from information from the hit and/or track based on a parametrisation. | |
void | PrepareHitData (lcio::TrackerHit *hit) |
prepare hit data, transfer info to fit object | |
void | FitPRF (lcio::TrackerHit *hit, bool fixCharge=false) |
Carry out the fit. | |
void | CalculatePRC (lcio::TrackerHit *hit) |
calculate only a position correction for the center of gravity based on parametrisation | |
void | KeepCentreOfGravityInfo (lcio::TrackerHit *hit) |
In case a PRF is not needed we keep the information of the original hit via the centre of gravity. | |
Protected Attributes | |
double | _defocussing |
First paramter for the parametrisation of expected width: diffusion within gem stack sigma_0^2 [mm^2]. | |
double | _diffusion |
Second paramter for the parametrisation of expected width: diffusion in drift region D^2 [mm]. | |
double | _fixedWidth |
width for the gaussian fit | |
double | _position |
position of the hit along the row in global coordinates | |
double | _positionRow |
position of the row of the hit in global coordinates, unaffected by PRF fit | |
double | _prfpos [2] |
position to give back | |
double | _positionRowLocal |
position of the row of the hit in local coordinates, unaffected by PRF fit | |
double | _charge |
charge of the hit as given by the integral | |
double | _chargeErr |
bool | _status |
status of prf evaluation, true if fits have worked | |
bool | _fitOK |
status of prf fit | |
TGraph * | _graph |
object for fitting or calculation in local coordinates | |
double | _maxCharge |
max charge filled in graph | |
double | _maxPos |
max position in graph | |
double | _min |
range of graph | |
double | _max |
const gear::TPCParameters & | _tpcParameters |
access to gear information | |
TF1 * | _PRFShift |
prf parametrisation for flat region | |
TF1 * | _PRF |
prf parametrisation | |
int | _PRConly |
Switch to disable the fitting, just do the calculation of a correction (like in MultiFit) | |
Functionality to evaluate the pad response function for a hit.
This class is for GEM data where the PRF can be described as a gaussian. Goals are to improve the position of the hit, enable the correction of dead channels and channels in overrange.