PandaRoot
PndPatternDBGenerator.h
Go to the documentation of this file.
1 /*
2  * PndPatternDBGenerator.h
3  *
4  * Created on: Nov 8, 2017
5  * Author: Michael Papenbrock
6  */
7 
8 #ifndef PNDTRACKERS_PNDPATTERNMATCHER_PNDPATTERNDBGENERATOR_H_
9 #define PNDTRACKERS_PNDPATTERNMATCHER_PNDPATTERNDBGENERATOR_H_
10 
11 #include <FairTask.h>
12 #include <PndGeoSttPar.h>
13 #include <PndMCTrack.h>
14 #include <PndPattern.h>
15 #include <PndSttHit.h>
16 
17 #include <TTree.h>
18 #include <TClonesArray.h>
19 
20 typedef std::vector<PndSttHit *> HitArray;
21 typedef std::multimap<int, int> HitSectorMap;
22 typedef std::vector<PndPattern> PndPatterns;
23 
24 class PndPatternDBGenerator : public FairTask {
25  public:
27  virtual ~PndPatternDBGenerator();
28 
29  void SetOutputFilename(TString filename = "patternDB.root") { foutputFilename = filename; }
30 
31  protected:
32  virtual void SetParContainers();
33  virtual InitStatus Init();
34  virtual void Exec(Option_t *opt);
35  virtual void FinishTask();
36 
37  private:
38  void GenerateTrackPatterns();
39  HitSectorMap FillSectorHitMap(HitArray sttHitArray);
40  PndPatterns FillSectorPatterns(HitArray hitArray, PndMCTrack *mcTrack);
41  PndPatterns FillTrackPatterns(HitArray hitArray, PndMCTrack *mcTrack);
42  void AddPatternsToTree(PndPatterns patterns, TTree *tree);
43 
44  PndGeoSttPar *fSttParameters;
45  TClonesArray *fEventHeader;
46  TClonesArray *fTubeArray;
47  TClonesArray *fSttHitArray;
48  TClonesArray *fMCTrackArray;
49  TClonesArray *trackCands;
50 
51  TFile *foutputFile;
52  TTree *fsectorPatternTree;
53  TTree *ftrackPatternTree;
54 
55  PndPattern *bPattern;
56 
57  int sttBranchID;
58  int mcTrackID;
59  TString foutputFilename;
60 
61  int nTotalTracks;
62  int nMultipleMCTrackLinks;
63 
64  ClassDef(PndPatternDBGenerator, 1)
65 };
66 
67 #endif /* PNDTRACKERS_PNDPATTERNMATCHER_PNDPATTERNDBGENERATOR_H_ */
std::vector< PndPattern > PndPatterns
virtual void Exec(Option_t *opt)
virtual void FinishTask()
virtual void SetParContainers()
void SetOutputFilename(TString filename="patternDB.root")
virtual ~PndPatternDBGenerator()
std::multimap< int, int > HitSectorMap
std::vector< PndSttHit * > HitArray
virtual InitStatus Init()