Project
Loading...
Searching...
No Matches
o2::tpc::CalibPadGainTracks Class Reference

Gain calibration class. More...

#include <CalibPadGainTracks.h>

Inherits o2::tpc::CalibPadGainTracksBase.

Public Types

enum  DEdxType : unsigned char { dedxTrack , dedxTracking , dedxBB }
 mode of normalizing qmax More...
 
enum  DEdxRegion : unsigned char { chamber , stack , sector }
 
- Public Types inherited from o2::tpc::CalibPadGainTracksBase
enum  NormType : unsigned char { none , stack , region }
 normalization type of the extracted gain map More...
 
using DataTHisto = FastHisto< unsigned int >
 
using DataTHistos = CalDet< DataTHisto >
 

Public Member Functions

 CalibPadGainTracks (const bool initCalPad=true)
 
 ~CalibPadGainTracks ()=default
 default destructor
 
void processTracks (const int nMaxTracks=-1)
 
void setMembers (gsl::span< const o2::tpc::TrackTPC > *vTPCTracksArrayInp, gsl::span< const o2::tpc::TPCClRefElem > *tpcTrackClIdxVecInput, const o2::tpc::ClusterNativeAccess &clIndex, gsl::span< const unsigned char > TPCRefitterShMap, gsl::span< const unsigned int > TPCRefitterOccMap)
 
void setMode (DEdxType iMode)
 
void setMomentumRange (const float momMin, const float momMax)
 
void setMaxEta (const float eta)
 
void setdEdxMin (const float mindedx)
 
void setdEdxMax (const float maxdEdx)
 
void doNotNomalize (const bool doNotNormCharge)
 
void setMinNClusters (const int nCl)
 
void setPropagateTrack (const bool propagate)
 
void setFieldNominalGPUBz (const float field)
 
void setChargeType (const ChargeType chargeType)
 
void setRefGainMap (const char *inpFile, const char *mapName)
 
void setRefGainMap (const CalPad &gainmap)
 
void setdEdxRegion (const DEdxRegion dedx)
 set how the dedx is calculated which is used for normalizing the cluster charge
 
float getMomMin () const
 
float getMomMax () const
 
float getEtaMax () const
 
float getdEdxMin () const
 
float getdEdxMax () const
 
bool getdoNotNomalize () const
 
float getMinNClusters () const
 
bool getPropagateTrack () const
 
float getFieldNominalGPUBz () const
 
void dumpToFile (const char *outFileName="calPadGainTracks.root", const char *outName="calPadGain") const
 
void loadPolTopologyCorrectionFromFile (std::string_view fileName)
 
void setPolTopologyCorrectionFromContainer (const CalibdEdxTrackTopologyPolContainer &polynomials)
 
void drawReferenceGainMapSector (const int sector, const std::string filename="GainMapSector.pdf", const float minZ=0, const float maxZ=-1) const
 
void drawReferenceGainMapSide (const o2::tpc::Side side, const std::string filename="GainMapSide.pdf", const float minZ=0, const float maxZ=-1) const
 
void dumpReferenceExtractedGainMap (const char *outFileName="GainMapRefExtracted.root", const char *outName="GainMap") const
 
void setTPCVDrift (const o2::tpc::VDriftCorrFact &v)
 set VDrift correction
 
void setTPCCorrMaps (o2::gpu::CorrectionMapsHelper *maph)
 set cluster correction maps helper
 
- Public Member Functions inherited from o2::tpc::CalibPadGainTracksBase
 CalibPadGainTracksBase (const bool initCalPad=true)
 
void initCalPadMemory ()
 initializing CalPad object for gainmap
 
void initCalPadStdDevMemory ()
 initializing CalPad object for std dev map
 
void initCalPadStat ()
 initializing CalPad object for std dev map
 
 CalibPadGainTracksBase (const CalibPadGainTracksBase &other)
 copy constructor
 
void fill (const gsl::span< const DataTHistos > &caldets)
 
void fill (const DataTHistos &caldet)
 
void print () const
 Print the total number of entries and minimum number of entries (ToDo add some more informations which will be printed)
 
void merge (const CalibPadGainTracksBase *other)
 Add histograms from other container.
 
bool hasEnoughData (const int minEntries) const
 
void finalize (const int minEntries=10, const float minRelgain=0.1f, const float maxRelgain=2.f, const float low=0.05f, const float high=0.6f, const float minStDev=0.01)
 
const auto & getHistos () const
 returns calpad containing pad-by-pad histograms
 
const CalPadgetPadGainMap () const
 
CalPadgetPadGainMap ()
 
const CalPadgetSigmaMap () const
 
const CalPadgetNTracksMap () const
 
DataTHisto getHistogram (const int sector, const int region, const int lrow, const int pad) const
 
DataTHisto getHistogram (const int sector, const int grow, const int pad) const
 
void drawExtractedGainMapSector (const int sector, const std::string filename="GainMapSector.pdf", const float minZ=0, const float maxZ=-1) const
 
void drawExtractedGainMapSide (const o2::tpc::Side side, const std::string filename="GainMapSide.pdf", const float minZ=0, const float maxZ=-1) const
 
void drawNClustersMapSide (const o2::tpc::Side side, const std::string filename="NClustersMapSide.pdf", const float minZ=0, const float maxZ=-1) const
 
void drawExtractedSigmaMapSector (const int sector, const bool norm=false, const std::string filename="StdDevMapSector.pdf", const float minZ=0, const float maxZ=-1) const
 
void drawExtractedSigmaMapSide (const o2::tpc::Side side, const bool norm=false, const std::string filename="StdDevMapSide.pdf", const float minZ=0, const float maxZ=-1) const
 
void drawNClustersMapSector (const int sector, const std::string filename="NClustersMapSector.pdf", const float minZ=0, const float maxZ=-1) const
 
TCanvas * drawExtractedGainMapPainter () const
 draw gain map using painter functionality
 
void divideGainMap (const char *inpFile, const char *mapName)
 
void dumpGainMap (const char *fileName="GainMap.root") const
 
void dumpToFile (const char *outFileName="calPadGainTracksBase.root", const char *outName="calPadGain") const
 
void dumpToTree (const std::string filename="map_debug.root") const
 
void setGainMap (const char *inpFile, const char *mapName)
 
void setGainMap (const CalPad &gainmap)
 setting the gain map
 
void setRMSMap (const CalPad &rmsMap)
 setting the RMS map
 
void setNClMap (const CalPad &nclMap)
 setting number of clusters map
 
void setNormalizationType (const NormType type)
 set how the extracted gain map is normalized
 
auto getNormalizationType () const
 
bool setLogTransformQ (const bool logTransformQ)
 set if the cluster charge is transformed using log(1+Q)
 
bool getLogTransformQ () const
 
void resetHistos ()
 resetting the histograms which are used for extraction of the gain map
 
void init (const unsigned int nBins, const float xmin, const float xmax, const bool useUnderflow, const bool useOverflow)
 
void fillPadByPadHistogram (const size_t roc, const size_t padInROC, const float val)
 

Detailed Description

Gain calibration class.

This class is used to produce pad wise gain calibration information with reconstructed tracks. The idea is to use the self calibrated probe qMax/dEdx and store the information for each pad in an histogram. The dEdx can be used from the track itself or from some bethe-bloch parametrization. Using the dEdx information from the bethe bloch avoids biases in the dEdx of the track itself. However the use of a bethe bloch parametrization is not yet implemented and shouldnt be used yet. When enough thata is collected, the truncated mean of each histogram delivers the relative gain of each pad. This method can be used to study the pad-by-pad gain as a function of time (i.e. performing this method n times with n different consecutive data samples)

origin: TPC

Author
Matthias Kleiner, matth.nosp@m.ias..nosp@m.klein.nosp@m.er@c.nosp@m.ern.c.nosp@m.h

how to use: example: CalibPadGainTracks cGain{}; cGain.init(20, 0, 3, 1, 1); // set the binning which will be used: 20 bins, minimum x=0, maximum x=10, use underflow and overflow bin start loop over the data cGain.setMembers(tpcTracks, tpcTrackClIdxVecInput, clusterIndex); // set the member variables: TrackTPC, TPCClRefElem, o2::tpc::ClusterNativeAccess cGain.setMomentumRange(.1, 3); cGain.processTracks(); after looping of the data (filling the histograms) is done cGain.fillgainMap(); // fill the gainmap with the truncated mean from each histogram cGain.dumpGainMap(); // write the gainmap to file

Definition at line 75 of file CalibPadGainTracks.h.

Member Enumeration Documentation

◆ DEdxRegion

Enumerator
chamber 

use the dE/dx from IROC and OROC

stack 

use the dE/dx from IROC, OROC1, OROC2, OROC3

sector 

use the dE/dx from the whole sector

Definition at line 86 of file CalibPadGainTracks.h.

◆ DEdxType

mode of normalizing qmax

Enumerator
dedxTrack 

normalize qMax using the truncated mean from the track

dedxTracking 

normalize qMax using the dEdx which was calculated during the tracking

dedxBB 

normalize qMax by evaluating a Bethe Bloch fit. THIS is yet not implemented and shouldnt be used.

Definition at line 80 of file CalibPadGainTracks.h.

Constructor & Destructor Documentation

◆ CalibPadGainTracks()

o2::tpc::CalibPadGainTracks::CalibPadGainTracks ( const bool  initCalPad = true)
inline

default constructor

Parameters
initCalPadinitialisation of the calpad for the gain map (if the gainmap is not extracted it can be false to save some memory)

Definition at line 94 of file CalibPadGainTracks.h.

◆ ~CalibPadGainTracks()

o2::tpc::CalibPadGainTracks::~CalibPadGainTracks ( )
default

default destructor

Member Function Documentation

◆ doNotNomalize()

void o2::tpc::CalibPadGainTracks::doNotNomalize ( const bool  doNotNormCharge)
inline
Parameters
mDoNotNormChargeminimmum do not normalize the cluster charge to the dE/dx

Definition at line 128 of file CalibPadGainTracks.h.

◆ drawReferenceGainMapSector()

void o2::tpc::CalibPadGainTracks::drawReferenceGainMapSector ( const int  sector,
const std::string  filename = "GainMapSector.pdf",
const float  minZ = 0,
const float  maxZ = -1 
) const
inline

draw reference gain map sector

Parameters
sectorsector which will be drawn
filenamename of the output file. If empty the canvas is drawn
minZmin z value for drawing (if minZ > maxZ automatic z axis)
maxZmax z value for drawing (if minZ > maxZ automatic z axis)

Definition at line 199 of file CalibPadGainTracks.h.

◆ drawReferenceGainMapSide()

void o2::tpc::CalibPadGainTracks::drawReferenceGainMapSide ( const o2::tpc::Side  side,
const std::string  filename = "GainMapSide.pdf",
const float  minZ = 0,
const float  maxZ = -1 
) const
inline

draw reference gain map side

Parameters
sideside of the TPC which will be drawn
filenamename of the output file. If empty the canvas is drawn
minZmin z value for drawing (if minZ > maxZ automatic z axis)
maxZmax z value for drawing (if minZ > maxZ automatic z axis)

Definition at line 206 of file CalibPadGainTracks.h.

◆ dumpReferenceExtractedGainMap()

void CalibPadGainTracks::dumpReferenceExtractedGainMap ( const char outFileName = "GainMapRefExtracted.root",
const char outName = "GainMap" 
) const

dump the extracted residual multiplied with the applied reference gain map to disc

Parameters
outFileNamename of the output file
outNamename of the object in the output file

Definition at line 382 of file CalibPadGainTracks.cxx.

◆ dumpToFile()

void CalibPadGainTracks::dumpToFile ( const char outFileName = "calPadGainTracks.root",
const char outName = "calPadGain" 
) const

dump object to disc

Parameters
outFileNamename of the output file
outNamename of the object in the output file

Definition at line 303 of file CalibPadGainTracks.cxx.

◆ getdEdxMax()

float o2::tpc::CalibPadGainTracks::getdEdxMax ( ) const
inline
Returns
returns minimmum accepted dE/dx

Definition at line 167 of file CalibPadGainTracks.h.

◆ getdEdxMin()

float o2::tpc::CalibPadGainTracks::getdEdxMin ( ) const
inline
Returns
returns minimmum accepted dE/dx

Definition at line 164 of file CalibPadGainTracks.h.

◆ getdoNotNomalize()

bool o2::tpc::CalibPadGainTracks::getdoNotNomalize ( ) const
inline
Returns
returns whether the charge will be normalized to the dE/dx dE/dx

Definition at line 170 of file CalibPadGainTracks.h.

◆ getEtaMax()

float o2::tpc::CalibPadGainTracks::getEtaMax ( ) const
inline
Returns
returns maximum eta of accepted tracks

Definition at line 161 of file CalibPadGainTracks.h.

◆ getFieldNominalGPUBz()

float o2::tpc::CalibPadGainTracks::getFieldNominalGPUBz ( ) const
inline
Returns
returns magnetic field which is used for propagation of track parameters

Definition at line 179 of file CalibPadGainTracks.h.

◆ getMinNClusters()

float o2::tpc::CalibPadGainTracks::getMinNClusters ( ) const
inline
Returns
returns minimum number of clusters required of the tracks

Definition at line 173 of file CalibPadGainTracks.h.

◆ getMomMax()

float o2::tpc::CalibPadGainTracks::getMomMax ( ) const
inline
Returns
returns maximum momentum of accepted tracks

Definition at line 158 of file CalibPadGainTracks.h.

◆ getMomMin()

float o2::tpc::CalibPadGainTracks::getMomMin ( ) const
inline
Returns
returns minimum momentum of accepted tracks

Definition at line 155 of file CalibPadGainTracks.h.

◆ getPropagateTrack()

bool o2::tpc::CalibPadGainTracks::getPropagateTrack ( ) const
inline
Returns
returns whether the track will be propagated instead of refitted

Definition at line 176 of file CalibPadGainTracks.h.

◆ loadPolTopologyCorrectionFromFile()

void CalibPadGainTracks::loadPolTopologyCorrectionFromFile ( std::string_view  fileName)

loading the track topology correction from a file

Parameters
fileNamename of the file containing the object

Definition at line 353 of file CalibPadGainTracks.cxx.

◆ processTracks()

void CalibPadGainTracks::processTracks ( const int  nMaxTracks = -1)

processes input tracks and filling the histograms with self calibrated probe qMax/dEdx

Parameters
nMaxTracksmax number of tracks to process (-1 to process all tracks)

Definition at line 36 of file CalibPadGainTracks.cxx.

◆ setChargeType()

void o2::tpc::CalibPadGainTracks::setChargeType ( const ChargeType  chargeType)
inline
Parameters
chargeTypetype of charge which is used for the dE/dx and the pad-by-pad histograms

Definition at line 140 of file CalibPadGainTracks.h.

◆ setdEdxMax()

void o2::tpc::CalibPadGainTracks::setdEdxMax ( const float  maxdEdx)
inline
Parameters
mDedxMaxmaximum accepted dE/dx

Definition at line 125 of file CalibPadGainTracks.h.

◆ setdEdxMin()

void o2::tpc::CalibPadGainTracks::setdEdxMin ( const float  mindedx)
inline
Parameters
mindedxminimmum accepted dE/dx

Definition at line 122 of file CalibPadGainTracks.h.

◆ setdEdxRegion()

void CalibPadGainTracks::setdEdxRegion ( const DEdxRegion  dedx)

set how the dedx is calculated which is used for normalizing the cluster charge

Definition at line 297 of file CalibPadGainTracks.cxx.

◆ setFieldNominalGPUBz()

void o2::tpc::CalibPadGainTracks::setFieldNominalGPUBz ( const float  field)
inline
Parameters
fieldmagnetic field in kG, used for track propagation

Definition at line 137 of file CalibPadGainTracks.h.

◆ setMaxEta()

void o2::tpc::CalibPadGainTracks::setMaxEta ( const float  eta)
inline
Parameters
etamaximum accpeted eta of the tracks

Definition at line 119 of file CalibPadGainTracks.h.

◆ setMembers()

void CalibPadGainTracks::setMembers ( gsl::span< const o2::tpc::TrackTPC > *  vTPCTracksArrayInp,
gsl::span< const o2::tpc::TPCClRefElem > *  tpcTrackClIdxVecInput,
const o2::tpc::ClusterNativeAccess clIndex,
gsl::span< const unsigned char TPCRefitterShMap,
gsl::span< const unsigned int TPCRefitterOccMap 
)

set the member variables

Parameters
vTPCTracksArrayInpvector of tpc tracks
tpcTrackClIdxVecInputset the TPCClRefElem member variable
clIndexset the ClusterNativeAccess member variable

Definition at line 310 of file CalibPadGainTracks.cxx.

◆ setMinNClusters()

void o2::tpc::CalibPadGainTracks::setMinNClusters ( const int  nCl)
inline
Parameters
nClminimum number of clusters required of the tracks

Definition at line 131 of file CalibPadGainTracks.h.

◆ setMode()

void o2::tpc::CalibPadGainTracks::setMode ( DEdxType  iMode)
inline

this function sets the mode of the class. e.g. mode=0 -> use the truncated mean from the track for normalizing the dedx mode=1 -> use the value from the BB-fit for normalizing the dedx. NOT implemented yet

Definition at line 112 of file CalibPadGainTracks.h.

◆ setMomentumRange()

void CalibPadGainTracks::setMomentumRange ( const float  momMin,
const float  momMax 
)
Parameters
momMinminimum accpeted momentum of the tracks
momMaxmaximum accpeted momentum of the tracks

Definition at line 319 of file CalibPadGainTracks.cxx.

◆ setPolTopologyCorrectionFromContainer()

void CalibPadGainTracks::setPolTopologyCorrectionFromContainer ( const CalibdEdxTrackTopologyPolContainer polynomials)

setting the track topology correction

Parameters
polynomialspolynomials which will be set

Definition at line 359 of file CalibPadGainTracks.cxx.

◆ setPropagateTrack()

void o2::tpc::CalibPadGainTracks::setPropagateTrack ( const bool  propagate)
inline
Parameters
propagatepropagate the tracks to extract the track parameters instead of performing a refit

Definition at line 134 of file CalibPadGainTracks.h.

◆ setRefGainMap() [1/2]

void o2::tpc::CalibPadGainTracks::setRefGainMap ( const CalPad gainmap)
inline

setting a gain map

Parameters
gainmapCalDet containing the gain map

Definition at line 149 of file CalibPadGainTracks.h.

◆ setRefGainMap() [2/2]

void CalibPadGainTracks::setRefGainMap ( const char inpFile,
const char mapName 
)

setting a reference gain map from a file which is used to correct the cluster charge

Parameters
inpFileinput file containing some caldet
mapNamename of the caldet

Definition at line 325 of file CalibPadGainTracks.cxx.

◆ setTPCCorrMaps()

void CalibPadGainTracks::setTPCCorrMaps ( o2::gpu::CorrectionMapsHelper maph)

set cluster correction maps helper

Definition at line 410 of file CalibPadGainTracks.cxx.

◆ setTPCVDrift()

void CalibPadGainTracks::setTPCVDrift ( const o2::tpc::VDriftCorrFact v)

set VDrift correction

Definition at line 401 of file CalibPadGainTracks.cxx.


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