17#ifndef AliceO2_TPC_QC_PID_H
18#define AliceO2_TPC_QC_PID_H
21#include <unordered_map>
73 void setPIDCuts(
int minnCls = 60,
float absTgl = 1.,
float mindEdxTot = 10.0,
74 float maxdEdxTot = 70.,
float minpTPC = 0.05,
float maxpTPC = 20.,
float minpTPCMIPs = 0.45,
float maxpTPCMIPs = 0.55,
bool turnOffHistosForAsync =
false,
bool getdEdxVspHypoHist =
false)
76 mCutMinnCls = minnCls;
78 mCutMindEdxTot = mindEdxTot;
79 mCutMaxdEdxTot = maxdEdxTot;
80 mCutMinpTPC = minpTPC;
81 mCutMaxpTPC = maxpTPC;
82 mCutMinpTPCMIPs = minpTPCMIPs;
83 mCutMaxpTPCMIPs = maxpTPCMIPs;
84 mTurnOffHistosForAsync = turnOffHistosForAsync;
85 mGetdEdxVspHypoHist = getdEdxVspHypoHist;
94 std::unordered_map<std::string_view, std::vector<std::unique_ptr<TH1>>>&
getMapOfHisto() {
return mMapHist; }
95 const std::unordered_map<std::string_view, std::vector<std::unique_ptr<TH1>>>&
getMapOfHisto()
const {
return mMapHist; }
98 std::unordered_map<std::string_view, std::vector<std::unique_ptr<TCanvas>>>&
getMapOfCanvas() {
return mMapCanvas; }
100 const std::unordered_map<std::string_view, std::vector<std::unique_ptr<TCanvas>>>&
getMapOfCanvas()
const {
return mMapCanvas; }
103 int mCutMinnCls = 60;
104 float mCutAbsTgl = 1.f;
105 float mCutMindEdxTot = 10.f;
106 float mCutMaxdEdxTot = 70.f;
107 float mCutMinpTPC = 0.05f;
108 float mCutMaxpTPC = 20.f;
109 float mCutMinpTPCMIPs = 0.45f;
110 float mCutMaxpTPCMIPs = 0.55f;
111 bool mTurnOffHistosForAsync =
false;
112 bool mGetdEdxVspHypoHist =
false;
114 bool mCreateCanvas =
true;
116 std::unordered_map<std::string_view, std::vector<std::unique_ptr<TH1>>> mMapHist;
119 std::unordered_map<std::string_view, std::vector<std::unique_ptr<TCanvas>>> mMapCanvas;
121 std::unordered_map<std::string_view, std::vector<std::unique_ptr<TH1>>> mMapHistCanvas;
122 std::unique_ptr<TCanvas> mSeparationPowerCanvas;
PID quality control class.
std::unordered_map< std::string_view, std::vector< std::unique_ptr< TH1 > > > & getMapOfHisto()
void setPIDCuts(int minnCls=60, float absTgl=1., float mindEdxTot=10.0, float maxdEdxTot=70., float minpTPC=0.05, float maxpTPC=20., float minpTPCMIPs=0.45, float maxpTPCMIPs=0.55, bool turnOffHistosForAsync=false, bool getdEdxVspHypoHist=false)
const std::unordered_map< std::string_view, std::vector< std::unique_ptr< TCanvas > > > & getMapOfCanvas() const
void setCreateCanvas(int createCanvas=1)
const std::unordered_map< std::string_view, std::vector< std::unique_ptr< TH1 > > > & getMapOfHisto() const
void dumpToFile(std::string filename)
Dump results to a file.
void resetHistograms()
Reset all histograms.
PID()=default
Constructor.
TCanvas * getSeparationPowerCanvas()
void initializeHistograms()
Initialize all histograms.
bool processTrack(const o2::tpc::TrackTPC &track, size_t nTracks)
std::unordered_map< std::string_view, std::vector< std::unique_ptr< TCanvas > > > & getMapOfCanvas()
a couple of static helper functions to create timestamp values for CCDB queries or override obsolete ...
TCanvas * createCanvas(std::string name, std::string title, std::vector< std::shared_ptr< TH1I > > &histograms)