PandaRoot
PndMvdQATask.h
Go to the documentation of this file.
1 // -------------------------------------------------------------------------
2 // ----- PndMvdQATask header file -----
3 // ----- Created 20/3/2019 by T.Stockmanns -----
4 // -------------------------------------------------------------------------
5 
12 #ifndef PndMvdQATask_H
13 #define PndMvdQATask_H
14 
15 //#pragma once
16 
17 // Root includes
18 #include "TVector3.h"
19 #include "TRandom.h"
20 #include "TString.h"
21 #include "TGeoManager.h"
22 #include "TH1.h"
23 #include "TClonesArray.h"
24 
25 // framework includes
26 #include "PndPersistencyTask.h"
27 #include "PndSdsHit.h"
28 #include "PndGeoHandling.h"
30 
31 #include <array>
32 
34  public:
36  PndMvdQATask();
37 
39  virtual ~PndMvdQATask();
40 
42  virtual void SetParContainers();
43  virtual InitStatus Init();
44 
46  virtual void Exec(Option_t *opt);
47  virtual void FinishTask();
48  void SetWorkdir(TString path) { fWorkdir = path; } // only needed to give cdash the path to the stored pictures
49 
50  protected:
51  void CalculateDifference(PndSdsHit *hit);
52  std::array<Double_t, 6> DoubleGaussFit(TH1 *);
53  bool TestPixel();
54  bool TestStrip();
55  void DrawPixelHistos();
56  void DrawStripHistos();
57  void SetPixelBoundaries();
58  void SetStripBoundaries();
59 
60  void PrintDartMeasurement();
61 
62  private:
63  PndGeoHandling *fGeoH;
64  TClonesArray *fMcPoints;
65  TClonesArray *fStripHits;
66  TClonesArray *fPixelHits;
67  Bool_t fProperDifference;
68  TVector3 fSpatialDifference;
69  TString fWorkdir;
70  double fTimeDifference;
71  double fEnergyDifference;
72 
73  PndMeasurementBoundaries fBoundaries;
74 
75  std::array<double, 6> fPixelSpatialRes;
76  std::vector<std::pair<double, double>> fPixelBoundaries;
77  std::array<double, 6> fStripSpatialRes;
78  std::vector<std::pair<double, double>> fStripBoundaries;
79 
80  TH1 *fHStripSingle;
81  TH1 *fHStripDouble;
82  TH1 *fHStripAll;
83  TH1 *fHStripClusterSize;
84  TH1 *fHStripTime;
85  TH1 *fHStripEnergy;
86 
87  TH1 *fHPixelSingle;
88  TH1 *fHPixelDouble;
89  TH1 *fHPixelAll;
90  TH1 *fHPixelClusterSize;
91  TH1 *fHPixelTime;
92  TH1 *fHPixelEnergy;
93 
94  ClassDef(PndMvdQATask, 1);
95 };
96 
97 #endif
virtual void SetParContainers()
void SetPixelBoundaries()
void DrawPixelHistos()
virtual void FinishTask()
void CalculateDifference(PndSdsHit *hit)
void SetWorkdir(TString path)
Definition: PndMvdQATask.h:48
Class to access the naming information of the MVD.
virtual void Exec(Option_t *opt)
std::array< Double_t, 6 > DoubleGaussFit(TH1 *)
void SetStripBoundaries()
void DrawStripHistos()
virtual InitStatus Init()
bool TestStrip()
void PrintDartMeasurement()
virtual ~PndMvdQATask()
bool TestPixel()