FairRoot/PandaRoot
PndSttCellTrackFinderAnalysisTask.h
Go to the documentation of this file.
1 /*
2  * PndSttCellTrackFinderAnalysisTask.h
3  *
4  * Created on: Jun 26, 2013
5  * Author: schumann
6  */
7 
8 #ifndef PndSttCellTrackFinderAnalysisTask_H_
9 #define PndSttCellTrackFinderAnalysisTask_H_
10 
11 #include "FairTask.h"
12 #include "TH1I.h"
13 #include "TCanvas.h"
14 #include "FairMultiLinkedData.h"
15 
16 #include <map>
17 #include <vector>
18 #include <fstream>
19 
20 class TClonesArray;
21 class PndMCMatch;
22 class PndGeoSttPar;
23 class PndMCResult;
24 
25 class PndSttCellTrackFinderAnalysisTask: public FairTask {
26 public:
27  PndSttCellTrackFinderAnalysisTask(): FairTask("Stt Cell TrackFinder Analysis Task"){ };
29 
31  virtual void SetParContainers();
32  virtual InitStatus Init();
33 
35  virtual void Exec(Option_t* opt);
36  virtual void FinishEvent();
37  virtual void Finish();
38 
39  void SetVerbose(Int_t verbose){ fVerbose = verbose;};
40 
41 private:
42 
43  /*Method for testing functionality of Conformal Mapping (Circle Fit)*/
44  void CheckConformalMap();
45 
46  /*Method verifies the result of the first step of the trackfinding-algorithm*/
47  void CheckFirstTracklets();
48 
49  /*Method verifies the result of the second step of the trackfinding-algorithm*/
51 
52  /*Method for drawing STTHits + Circles of Riemann Fit for the first step of trackfinding*/
53  void DrawFirstRiemannPlots(int eventNumber);
54 
55  /*Method for drawing STTHits + Circles of Riemann Fit for the second step of trackfinding*/
56  void DrawCombiRiemannPlots(int eventNumber);
57 
58  int GetNumLinksOfHits(FairMultiLinkedData& hitLinks, PndMCResult& sttHitsToMCTrack, PndMCResult& sttHitToPoint);
59 
61 
62  void TestRecoQualityCombi();
63 
64  void CountMaxHitsFirstStep();
65 
66  void CountMaxHitsCombi();
67 
68  std::map<int, bool> fFoundMC;
69 
70  PndMCMatch* fMCMatch;
71 
72  TClonesArray* fMCTrack;
73 
74  TClonesArray* fFirstTrackCand;
75  TClonesArray* fFirstRiemannTrack;
76  TClonesArray* fCombiTrackCand;
77  TClonesArray* fCombiRiemannTrack;
78 
79  TClonesArray* fEventHeader;
80  TClonesArray* fSTTHits;
81 
82  std::map<int, std::vector<int> > fMapTubeIDToHits; // map<tube-id, vector<indices of SttHits in fSTTHits>>
83  std::map<int, int> fMapHitIndexToTubeID; // map<index of SttHit in fSTTHits, tube-id>
84 
85  PndGeoSttPar *fSttParameters; // for filling fTubeArray
86  TClonesArray *fTubeArray; // contains at index tube-id corresponding PndSttTube
87 
88  // histograms for first step of trackfinding
96 
98 
99  // histograms for second step of trackfinding
106 
109 
110  TCanvas* fCanvas;
111 
113 
114 
115 };
116 
117 #endif /* PndSttCellTrackFinderAnalysisTask_H_ */
int fVerbose
Definition: poormantracks.C:24
ClassDef(PndSttCellTrackFinderAnalysisTask, 1)
#define verbose
int GetNumLinksOfHits(FairMultiLinkedData &hitLinks, PndMCResult &sttHitsToMCTrack, PndMCResult &sttHitToPoint)
std::map< int, std::vector< int > > fMapTubeIDToHits