8 #ifdef DO_TPCCATRACKER_EFF_PERFORMANCE
10 #ifndef PNDFTSPERFORMANCEBASE_H
11 #define PNDFTSPERFORMANCEBASE_H
44 class PndFTSPerformanceBase
48 struct PndFTSCAHitLabel {
51 {
return out << hl.fLab[0] <<
" " << hl.fLab[1] <<
" "<< hl.fLab[2] <<
" " << std::endl;}
53 {
return in >> hl.fLab[0] >> hl.fLab[1] >> hl.fLab[2];}
56 PndFTSPerformanceBase();
57 virtual ~PndFTSPerformanceBase();
65 virtual void CreateHistos(
string histoDir =
"", TFile*
outFile = 0){ UNUSED_PARAM2(histoDir,
outFile); };
68 virtual void Exec(
bool print =
false);
70 virtual void PrintEfficiencyStatistic(){ fEffStat.CalcEff(); fEffStat.Print(); };
71 virtual void PrintEfficiency() { fEff.CalcEff(); fEff.Print(); };
73 virtual void Draw(){};
79 bool IsHistoCreated() {
return fIsHistoCreated; }
80 void SetHistoCreated(
bool v = 1) { fIsHistoCreated =
v; }
86 vector<PndFTSCAPerformanceMCTrackData> &GetMCData() {
return mcData; };
87 vector<PndFTSCAPerformanceRecoTrackData> &GetRecoData(){
return recoData; };
91 virtual void FillHistos(){};
92 TH1 *GetHisto(
const char*
name);
95 virtual void CheckMCTracks(){};
97 virtual void MatchTracks(){};
99 virtual void EfficiencyPerformance();
114 THistoInfo(
const char *name_,
const char *title_, Int_t nx_,
Double_t left_,
Double_t right_,
116 :
name(name_),title(title_),nx(nx_),left(left_),right(right_),ny(ny_),
low(low_),up(up_),XAxisName(XAxisName_),YAxisName(YAxisName_){};
127 THistoInfo *fHistosInfo;
130 vector<PndFTSCAPerformanceMCTrackData> mcData;
131 vector<PndFTSCAPerformanceRecoTrackData> recoData;
141 int nRecoTracks, nMCTracks;
143 TDirectory *fHistoDir;
144 bool fIsHistoCreated;
148 #endif //DO_TPCCATRACKER_EFF_PERFORMANCE
std::ostream & operator<<(std::ostream &o, const PndEventInfo &a)
tree Draw("fELoss:TMath::Sqrt(fPx_out*fPx_out+ fPy_out*fPy_out+ fPz_out*fPz_out)", ppos &&"fELoss < 0.04")
basic_ostream< char, char_traits< char > > ostream
basic_istream< char, char_traits< char > > istream
TBuffer & operator>>(TBuffer &buf, PndAnaPidSelector *&obj)