21 #ifdef DO_TPCCATRACKER_EFF_PERFORMANCE 23 #ifndef PNDFTSCAPERFORMANCE_H 24 #define PNDFTSCAPERFORMANCE_H 59 class PndFTSCAPerformance {
61 typedef PndFTSPerformanceBase::PndFTSCAHitLabel PndFTSCAHitLabel;
63 PndFTSCAPerformance();
64 virtual ~PndFTSCAPerformance();
67 bool SetNewEvent(
PndFTSCAGBTracker *
const Tracker,
string mcTracksFile,
string mcPointsFile);
68 void InitSubPerformances();
71 static PndFTSCAPerformance &Instance();
74 void ExecPerformance();
78 const PndFTSCAHitLabel &HitLabel(
int i)
const {
return fHitLabels[
i]; }
83 void SetMCTracks(vector<PndFTSCAMCTrack> &mcTracks);
84 void SetMCPoints(vector<PndFTSCALocalMCPoint> &mcPoints);
85 void SetHitLabels(vector<PndFTSCAHitLabel> &hitLabels);
91 PndFTSPerformanceBase *GetSubPerformance(
string name);
93 const double *PV()
const {
return fPV; }
95 bool CreateHistos(
string name);
98 void SetOutputFile(TFile *oF) { fOutputFile = oF; }
100 void SaveDataInFiles(
string prefix)
const;
101 bool ReadData(vector<int> &labels, vector<PndFTSCALocalMCPoint> &mcpoints, vector<PndFTSCAMCTrack> &mctracks);
105 void ShiftHitsToMC(
float errX = -1,
float errY = -1);
106 void ResimulateHits(
float errX = -1,
float errY = -1);
110 void DivideHitsOnLR();
118 void ReadMCEvent(FILE *in);
119 void ReadLocalMCPoints(FILE *in);
121 void WriteMCEvent(FILE *out)
const;
124 struct TSubPerformance {
125 PndFTSPerformanceBase *perf;
130 TSubPerformance(PndFTSPerformanceBase *perf_,
string name_,
bool IsGlobalPerf_ = 1)
134 IsGlobalPerf = IsGlobalPerf_;
135 perf->SetHistoCreated(0);
139 PndFTSPerformanceBase &
operator*() {
return *perf; }
140 PndFTSPerformanceBase *operator->() {
return perf; }
142 vector<TSubPerformance> subPerformances;
157 TDirectory *fHistoDir;
160 void WriteDir2Current(TObject *obj);
162 PndFTSCAPerformance(
const PndFTSCAPerformance &);
163 PndFTSCAPerformance &operator=(
const PndFTSCAPerformance &);
167 #endif // DO_TPCCATRACKER_EFF_PERFORMANCE
friend F32vec4 operator*(const F32vec4 &a, const F32vec4 &b)