PandaRoot
PndFairHitQATask.h
Go to the documentation of this file.
1 
16 #ifndef PndFairHitQATask_H
17 #define PndFairHitQATask_H
18 
19 // Root includes
20 #include "TVector3.h"
21 #include "TString.h"
22 #include "TGeoManager.h"
23 #include "TH1.h"
24 
25 // framework includes
26 #include "PndPersistencyTask.h"
28 
29 #include "FairLogger.h"
30 #include "FairHit.h"
31 
32 #include <map>
33 
34 class TClonesArray;
35 
37  public:
39  PndFairHitQATask(std::string hitBranchName, std::string pointBranchName);
40 
42  virtual ~PndFairHitQATask();
43 
45  virtual void SetParContainers();
46  virtual InitStatus Init();
47 
49  virtual void Exec(Option_t *opt);
50  virtual void FinishTask();
51  void SetWorkdir(TString path) { fWorkdir = path; }
52 
53  void SetHitBranch(std::string hitBranch) { fHitBranchName = hitBranch; }
54  void SetPointBranch(std::string pointBranch) { fPointBranchName = pointBranch; }
55  void SetOutputPlotName(std::string val) { fOutputPlotName = val; }
56 
57  protected:
58  // These methods should be overwritten for a realistic test
59 
63  virtual void InitHistos();
64 
68  virtual void SetAllBoundaries();
69 
73  virtual void CalculateResolutions(FairHit *hit);
74 
78  virtual void FillHistos();
79 
83  virtual void AssignMeasurements();
84 
85  // No need to touch these classes
86  bool Test();
87  void DrawHistos();
88  void SaveHistos();
89  void PrintDartMeasurement();
90 
91  std::string fHitBranchName;
92  std::string fPointBranchName;
93  std::string fOutputPlotName{"ResolutionHistos.png"};
94 
95  TClonesArray *fMcPoints = nullptr;
96  TClonesArray *fHits = nullptr;
97  Bool_t fProperDifference = false;
99  double fTimeDifference = -1.0;
100  TString fWorkdir;
101 
103 
104  std::map<std::string, TH1 *> fHistos;
105 
107 };
108 
109 #endif
virtual void CalculateResolutions(FairHit *hit)
Calculate the resolution of a FairHit based on the MC data from a FairMCPoint.
void SetWorkdir(TString path)
only needed to give cdash the path to the stored pictures
void PrintDartMeasurement()
virtual void SetAllBoundaries()
Set the name and the boundaries for a measurement to pass.
TClonesArray * fHits
virtual void FinishTask()
virtual ~PndFairHitQATask()
std::string fPointBranchName
virtual void Exec(Option_t *opt)
void SetPointBranch(std::string pointBranch)
virtual void AssignMeasurements()
Extract the measurement values from the histograms like mean or RMS values and assign them to the mea...
std::string fHitBranchName
void SetHitBranch(std::string hitBranch)
Base class to tests reconstructed hits based on FairHits for the PANDA QA tasks This class calculate...
TClonesArray * fMcPoints
virtual void FillHistos()
Fill the output of CalculateResolutions into the corresponding histograms.
virtual InitStatus Init()
PndMeasurementBoundaries fBoundaries
TVector3 fSpatialDifference
std::string fOutputPlotName
void SetOutputPlotName(std::string val)
PndFairHitQATask(std::string hitBranchName, std::string pointBranchName)
ClassDef(PndFairHitQATask, 2)
std::map< std::string, TH1 * > fHistos
virtual void SetParContainers()
Bool_t fProperDifference
if method CalculateResolutions worked
virtual void InitHistos()
Initialize the histograms containing the measurement data in the histogram map.