17#ifndef AliceO2_TPC_CalculatedEdx_H
18#define AliceO2_TPC_CalculatedEdx_H
94 void setRefit(
const unsigned int nHbfPerTf = 32);
115 void setStreamer(
const char* debugRootFile) { mStreamer = std::make_unique<o2::utils::TreeStreamRedirector>(debugRootFile,
"recreate"); };
133 void fillMissingClusters(
int missingClusters[4],
float minChargeTot,
float minChargeMax,
int method, std::array<std::vector<float>, 5>& chargeTotROC, std::array<std::vector<float>, 5>& chargeMaxROC);
228 std::vector<TrackTPC>* mTracks{
nullptr};
229 std::vector<TPCClRefElem>* mTPCTrackClIdxVecInput{
nullptr};
232 std::vector<unsigned char> mTPCRefitterShMap;
233 std::vector<unsigned int> mTPCRefitterOccMap;
234 std::unique_ptr<o2::gpu::GPUO2InterfaceRefit> mRefit{
nullptr};
236 int mMaxMissingCl{1};
237 float mMinChargeTotThreshold{50};
238 float mMinChargeMaxThreshold{50};
239 float mFieldNominalGPUBz{5};
240 bool mPropagateTrack{
false};
242 CalibdEdxContainer mCalibCont;
243 std::unique_ptr<o2::utils::TreeStreamRedirector> mStreamer{
nullptr};
245 CorrectdEdxDistortions mSCdEdxCorrection;
Definition of container class for dE/dx corrections.
Helper class to access correction maps.
unsigned int getOccupancy(const o2::tpc::ClusterNative &cl) const
float getFieldNominalGPUBz()
void setFieldNominalGPUBz(const float field)
void setMinChargeMaxThreshold(float minChargeMaxThreshold)
void loadCalibsFromCCDB(long runNumberOrTimeStamp, const bool isMC=false)
void fillMissingClusters(int missingClusters[4], float minChargeTot, float minChargeMax, int method, std::array< std::vector< float >, 5 > &chargeTotROC, std::array< std::vector< float >, 5 > &chargeMaxROC)
fill missing clusters with minimum charge (method=0) or minimum charge/2 (method=1) or Landau (method...
void setMinChargeTotThreshold(float minChargeTotThreshold)
void setTrackTopologyCorrectionFromFile(const char *folder, const char *file, const char *object)
void loadCalibsFromLocalCCDBFolder(const char *localCCDBFolder)
void setZeroSuppressionThresholdFromFile(const char *folder, const char *file, const char *object)
void setMaxMissingCl(int maxMissingCl)
void setPropagatorFromFile(const char *folder, const char *file, const char *object)
float getMinChargeMaxThreshold()
void setRefit(const unsigned int nHbfPerTf=32)
set the refitter
float getTrackTopologyCorrectionPol(const o2::tpc::TrackTPC &track, const o2::tpc::ClusterNative &cl, const unsigned int region, const float charge, ChargeType chargeType, const float threshold) const
void setMembers(std::vector< o2::tpc::TPCClRefElem > *tpcTrackClIdxVecInput, const o2::tpc::ClusterNativeAccess &clIndex, std::vector< o2::tpc::TrackTPC > *vTPCTracksArrayInp)
void setPropagateTrack(const bool propagate)
void setLumi(const float lumi)
float getTruncMean(std::vector< float > &charge, float low, float high) const
void setResidualCorrectionFromFile(const char *folder, const char *file, const char *object)
float getTrackTopologyCorrection(const o2::tpc::TrackTPC &track, const unsigned int region) const
void calculatedEdx(TrackTPC &track, dEdxInfo &output, float low=0.015f, float high=0.6f, CorrectionFlags correctionMask=CorrectionFlags::TopologyPol|CorrectionFlags::dEdxResidual, ClusterFlags clusterMask=ClusterFlags::None, int subthresholdMethod=0, const char *debugRootFile="dEdxDebug.root")
void setSCStreamer(const char *debugRootFile="debug_sc_corrections.root")
set the debug streamer of the space-charge dedx correction
void setMagneticFieldFromFile(const char *folder, const char *file, const char *object)
void setGainMapResidualFromFile(const char *folder, const char *file, const char *object)
float getMinChargeTotThreshold()
void setStreamer(const char *debugRootFile)
set the debug streamer
void setGainMapFromFile(const char *folder, const char *file, const char *object)
void setDebug(const bool debug)
void setStreamer(const char *debugRootFile="debug_sc_corrections.root")
enable the debug streamer
GLboolean GLboolean GLboolean b
GLboolean GLboolean GLboolean GLboolean a
Global TPC definitions and constants.
@ ExcludeSingleCl
flag to exclude single clusters in dEdx calculation
@ ExcludeSubthresholdCl
flag to exclude subthreshold clusters in dEdx calculation
@ ExcludeEdgeCl
flag to exclude sector edge clusters in dEdx calculation
@ ExcludeSectorBoundaries
flag to exclude sector boundary clusters in subthreshold cluster treatment
@ ExcludeSplitCl
flag to exclude split clusters in dEdx calculation
@ ExcludeSharedCl
flag to exclude clusters shared between tracks
PadFlags operator|(PadFlags a, PadFlags b)
CorrectionFlags
dEdx calculation class
@ TopologyPol
flag for topology correction from polynomials
@ TopologySimple
flag for simple analytical topology correction
@ dEdxResidual
flag for residual dEdx correction
@ dEdxSC
flag for space-charge dEdx correction
@ GainFull
flag for full gain map from calibration container
@ GainResidual
flag for residuals gain map from calibration container
PadFlags operator&(PadFlags a, PadFlags b)
PadFlags operator~(PadFlags a)
Marks an empty item in the context.