9 #ifdef DO_TPCCATRACKER_EFF_PERFORMANCE
11 #ifndef PNDFTSCAPERFORMANCE_H
12 #define PNDFTSCAPERFORMANCE_H
47 class PndFTSCAPerformance
51 typedef PndFTSPerformanceBase::PndFTSCAHitLabel PndFTSCAHitLabel;
53 PndFTSCAPerformance();
54 virtual ~PndFTSCAPerformance();
57 bool SetNewEvent(
PndFTSCAGBTracker*
const Tracker,
string mcTracksFile,
string mcPointsFile);
58 void InitSubPerformances();
61 static PndFTSCAPerformance &Instance();
64 void ExecPerformance();
68 const PndFTSCAHitLabel &HitLabel(
int i)
const {
return fHitLabels[
i]; }
74 void SetMCTracks(vector<PndFTSCAMCTrack>& mcTracks);
75 void SetMCPoints(vector<PndFTSCALocalMCPoint>& mcPoints);
76 void SetHitLabels(vector<PndFTSCAHitLabel>& hitLabels);
82 PndFTSPerformanceBase* GetSubPerformance(
string name);
84 const double* PV()
const {
return fPV; }
87 bool CreateHistos(
string name);
92 void SaveDataInFiles(
string prefix )
const;
93 bool ReadData( vector <int>&
labels, vector <PndFTSCALocalMCPoint>& mcpoints, vector<PndFTSCAMCTrack>& mctracks );
97 void ShiftHitsToMC(
float errX = -1,
float errY = -1 );
98 void ResimulateHits(
float errX = -1,
float errY = -1 );
102 void DivideHitsOnLR();
110 void ReadMCEvent( FILE *in );
111 void ReadLocalMCPoints( FILE *in );
113 void WriteMCEvent( FILE *
out )
const;
116 struct TSubPerformance{
117 PndFTSPerformanceBase* perf;
122 TSubPerformance(PndFTSPerformanceBase* perf_,
string name_,
bool IsGlobalPerf_ = 1){
125 IsGlobalPerf = IsGlobalPerf_;
126 perf->SetHistoCreated(0);
130 PndFTSPerformanceBase&
operator*(){
return *perf;}
131 PndFTSPerformanceBase* operator->(){
return perf;}
133 vector<TSubPerformance> subPerformances;
149 TDirectory *fHistoDir;
152 void WriteDir2Current( TObject *obj );
154 PndFTSCAPerformance(
const PndFTSCAPerformance& );
155 PndFTSCAPerformance &operator=(
const PndFTSCAPerformance& );
160 #endif //DO_TPCCATRACKER_EFF_PERFORMANCE
std::vector< std::string > labels
RhoError operator*(Double_t t, const RhoError &m1)
fRun SetOutputFile(outFile)