9 #ifdef DO_TPCCATRACKER_EFF_PERFORMANCE 11 #ifndef PNDFTSCAPERFORMANCE_H 12 #define PNDFTSCAPERFORMANCE_H 47 class PndFTSCAPerformance {
49 typedef PndFTSPerformanceBase::PndFTSCAHitLabel PndFTSCAHitLabel;
51 PndFTSCAPerformance();
52 virtual ~PndFTSCAPerformance();
55 bool SetNewEvent(
PndFTSCAGBTracker *
const Tracker,
string mcTracksFile,
string mcPointsFile);
56 void InitSubPerformances();
59 static PndFTSCAPerformance &Instance();
62 void ExecPerformance();
66 const PndFTSCAHitLabel &HitLabel(
int i)
const {
return fHitLabels[
i]; }
71 void SetMCTracks(vector<PndFTSCAMCTrack> &mcTracks);
72 void SetMCPoints(vector<PndFTSCALocalMCPoint> &mcPoints);
73 void SetHitLabels(vector<PndFTSCAHitLabel> &hitLabels);
79 PndFTSPerformanceBase *GetSubPerformance(
string name);
81 const double *PV()
const {
return fPV; }
83 bool CreateHistos(
string name);
86 void SetOutputFile(TFile *oF) { fOutputFile = oF; }
88 void SaveDataInFiles(
string prefix)
const;
89 bool ReadData(vector<int> &labels, vector<PndFTSCALocalMCPoint> &mcpoints, vector<PndFTSCAMCTrack> &mctracks);
93 void ShiftHitsToMC(
float errX = -1,
float errY = -1);
94 void ResimulateHits(
float errX = -1,
float errY = -1);
98 void DivideHitsOnLR();
106 void ReadMCEvent(FILE *in);
107 void ReadLocalMCPoints(FILE *in);
109 void WriteMCEvent(FILE *out)
const;
112 struct TSubPerformance {
113 PndFTSPerformanceBase *perf;
118 TSubPerformance(PndFTSPerformanceBase *perf_,
string name_,
bool IsGlobalPerf_ = 1)
122 IsGlobalPerf = IsGlobalPerf_;
123 perf->SetHistoCreated(0);
127 PndFTSPerformanceBase &
operator*() {
return *perf; }
128 PndFTSPerformanceBase *operator->() {
return perf; }
130 vector<TSubPerformance> subPerformances;
145 TDirectory *fHistoDir;
148 void WriteDir2Current(TObject *obj);
150 PndFTSCAPerformance(
const PndFTSCAPerformance &);
151 PndFTSCAPerformance &operator=(
const PndFTSCAPerformance &);
155 #endif // DO_TPCCATRACKER_EFF_PERFORMANCE
friend F32vec4 operator*(const F32vec4 &a, const F32vec4 &b)