PandaRoot
PndSttSkewStrawPzFinderAnalysisTask.h
Go to the documentation of this file.
1 /*
2  * PndSttSkewStrawPzFinderAnalysisTask.h
3  *
4  * Created on: Apr 6, 2016
5  * Author: walan603
6  */
7 
8 #ifndef PNDSTTSKEWSTRAWPZFINDERANALYSISTASK_H_
9 #define PNDSTTSKEWSTRAWPZFINDERANALYSISTASK_H_
10 
11 #include <FairTask.h>
12 #include <FairMCPoint.h>
14 
15 class TClonesArray;
16 class TCanvas;
17 class PndGeoSttPar;
18 class PndSttHit;
19 class PndTrack;
20 class PndTrackCand;
21 
22 // class PndMCMatch;
23 // class PndMCResult;
24 
25 using namespace std;
26 
27 class PndSttSkewStrawPzFinderAnalysisTask : public FairTask {
28  public:
30 
32 
34  void setDraw(bool input) { fDraw = input; }
35 
36  void AddHitsBranchName(TString name) { fBranchNames.push_back(name); }
37  void setIdealTrackBranch(TString input) { IdealTrackBranchName = input; }
38  void setIdealTrackCandBranch(TString input) { IdealTrackCandBranchName = input; }
39  void setTrackBranch(TString input) { TrackBranchName = input; }
40  void setTrackCandBranch(TString input) { TrackCandBranchName = input; }
41  void setPzDataBranch(TString input) { PzDataBranchName = input; }
42 
43  virtual InitStatus Init();
44 
45  virtual void Exec(Option_t *opt);
46 
47  virtual void Finish();
48 
49  private:
50  Int_t fVerbose;
51  bool fDraw;
52  TString IdealTrackBranchName;
53  TString IdealTrackCandBranchName;
54  TString TrackBranchName;
55  TString TrackCandBranchName;
56  TString PzDataBranchName;
57 
58  std::vector<TString> fBranchNames;
59  std::map<TString, TString> fPointBranchMap;
60 
61  TClonesArray *fEventHeader;
62  TCanvas *SttXYproj;
63  vector<PndSttHit *> fSkewedHits;
64  PndGeoSttPar *fSttParameters; // for filling fTubeArray
65  TClonesArray *fTubeArray;
66 
67  TClonesArray *fMCTrack;
68 
69  TClonesArray *fIdealTrackCand;
70  TClonesArray *fIdealTrack;
71 
72  TClonesArray *fFinalTrackCand;
73  TClonesArray *fFinalTrack;
74  // TClonesArray *fFinalRiemannTrack;
75 
76  TClonesArray *fPzData;
77 
78  // QA histograms
79  TH1F *hSttSZErr;
80  TH1F *hSttSZErrAbs;
81  TH1F *hSttSZmct;
82  TH1F *hSttSZErrTrue;
83  TH1F *hSttSZErrAbsTrue;
84  TH1F *hSttSZmctTrue;
85 
86  void GetCenterOfTrack(PndTrack *temp, TVector2 &center, double &radius);
87 
88  void DrawSkewTubeLines(PndSttHit *hit);
89 
90  void DrawStt(bool isskew);
91 
92  void DrawHitIsochrone(PndSttHit *hit, Color_t color);
93 
94  void DrawHitSkewedIsochrone(PndSttHit *hit, Color_t color, Double_t beta, Double_t a, Double_t b);
95 
96  void DrawTrackParams(PndTrack *track);
97 
98  void DrawCombiLines(vector<vector<TVector2>> SZPairVector);
99 
100  // void DrawCombiLinesResult(vector<vector<TVector2>> TrueSZ);
101 
102  void DrawSZBase(PndSttSkewStrawPzFinderData *data);
103 
104  void DrawTrack(PndTrack *temp);
105 };
106 
107 #endif /* PNDSTTSKEWSTRAWPZFINDERANALYSISTASK_H_ */
STL namespace.