PandaRoot
PndFTSTopoPerformance.h
Go to the documentation of this file.
1 //-*- Mode: C++ -*-
2 // ************************************************************************
3 // This file is property of and copyright by the ALICE HLT Project *
4 // ALICE Experiment at CERN, All rights reserved. *
5 // See cxx source for full Copyright notice *
6 // *
7 //*************************************************************************
8 #ifdef DO_TPCCATRACKER_EFF_PERFORMANCE
9 
10 #ifndef PNDFTSTOPOPERFORMANCE_H
11 #define PNDFTSTOPOPERFORMANCE_H
12 
14 
15 #include "PndFTSCADef.h"
16 #include "PndFTSArray.h"
17 
18 #include "PndFTSCAMCTrack.h"
19 #include "PndFTSCAMCPoint.h"
20 #include "PndFTSCAMCVertex.h"
21 #include <fstream>
22 #include <cstdio>
23 #include <map>
24 
25 #include "KFPartMatch.h"
26 #include "KFMCParticle.h"
27 
28 class TObject;
29 class TParticle;
30 class PndFTSCAMCPoint;
31 class PndFTSCAGBTracker;
33 class TDirectory;
34 class TH1D;
35 class TH2D;
36 class TProfile;
37 
38 class TFile;
39 class PndFTSCATracker;
40 
44 class PndFTSTopoPerformance : public PndFTSParticlePerformanceBase {
45  public:
46  PndFTSTopoPerformance();
47  virtual ~PndFTSTopoPerformance(){};
48 
49  virtual void SetNewEvent(const PndFTSCAGBTracker *const Tracker, PndFTSResizableArray<PndFTSCAHitLabel> *hitLabels, PndFTSResizableArray<PndFTSCAMCTrack> *mcTracks,
51 
52  void SetNewEvent2(const PndFTSTopoReconstructor *const TopoReconstructor); // use together with SetNewEvent !!!
53 
55  // Check if MC track is reconstructable. Calculate set of MC track. Etc.
56  virtual void CheckMCTracks(); // fill mcData.
57  // Find reco-MCTracks correspondence
58  virtual void MatchTracks(); // fill recoData.
59  // Calculate efficiencies
60  virtual void EfficiencyPerformance(){}; // current don't use eff
61 
62  virtual void PrintEfficiencyStatistic(){}; // current don't use eff
63  virtual void PrintEfficiency(){};
64 
66  // virtual void CreateHistos(string histoDir);
67  virtual void FillHistos();
68 
69  private:
70  void GetMCParticles();
71  void MatchParticles();
72  void CalculateEfficiency();
73  void FindReconstructableMCParticles();
74  void CheckMCParticleIsReconstructable(KFMCParticle &part);
75 
76  const PndFTSTopoReconstructor *fTopoReconstructor;
77 
78  vector<PndFTSCAMCVertex> fPrimVertices; // primary vertex positions (currently only one vertex is implemented)
79 
80  vector<KFMCParticle> vMCParticles; // MC particles
81 
82  vector<KFPartMatch> MCtoRParticleId; // array for match MC and reco particles
83  vector<KFPartMatch> RtoMCParticleId;
84 
85  // defines the mode of an efficiency calculation
86  // 1 - efficiency is normalized on the all MCParticles
87  // 2 - efficiency is normalized on the MCParticles, which has all daughters reconstructable
88  // 3 - efficiency is normalized on the MCParticles, which has all daughters reconstructed by the track finder
89  const int fFindParticlesMode;
90 };
91 
92 #endif
93 #endif // DO_TPCCATRACKER_EFF_PERFORMANCE