PandaRoot
PndMvdSttGemRiemannTrackFinderTask.h
Go to the documentation of this file.
1 //****************************************************************************
2 //* This file is part of PandaRoot. *
3 //* *
4 //* PandaRoot is distributed under the terms of the *
5 //* GNU General Public License (GPL) version 3, *
6 //* copied verbatim in the file "LICENSE". *
7 //* *
8 //* Copyright (C) 2006 - 2024 FAIR GmbH and copyright holders of PandaRoot *
9 //* The copyright holders are listed in the file "COPYRIGHTHOLDERS". *
10 //* The authors are listed in the file "AUTHORS". *
11 //****************************************************************************
12 
13 #ifndef PNDMVDSTTGEMRIEMANNTRACKFINDERTASK_H_
14 #define PNDMVDSTTGEMRIEMANNTRACKFINDERTASK_H_
15 
16 #include "FairTask.h"
17 //#include "PndSdsHit.h"
18 #include "TH2F.h"
19 #include "PndGeoHandling.h"
20 #include "PndGeoSttPar.h"
21 
22 #include "FairTSBufferFunctional.h"
23 
24 #include <vector>
25 
26 class PndMvdSttGemRiemannTrackFinderTask : public FairTask {
27  public:
32 
34  virtual void SetParContainers();
35  virtual InitStatus Init();
36  virtual InitStatus ReInit();
37 
39  virtual void Exec(Option_t *opt);
40  virtual void FinishEvent();
41 
42  void AddHitBranch(TString branchName); // Has to be called before Init() is used otherwise the default names are taken!
43 
44  void SetMaxSZChi2(double val) { fMaxSZChi2 = val; }
45  void SetMaxSZDist(double val) { fMaxSZDist = val; }
46  void SetMinPointDist(double val) { fMinPointDist = val; }
47  void SetMaxDist(double val) { fMaxDist = val; }
48 
49  void SetCutDistH(TH2F *hist) { fCutDistH = hist; }
50  void SetCutChi2H(TH2F *hist) { fCutChi2H = hist; }
51 
52  void SetB(Double_t B) { fB = B; }
53 
54  // void PrintResult(); // not implemented
55  void SetVerbose(Int_t verbose) { fVerbose = verbose; };
56  void SetPersistence(Bool_t val) { fPersistence = val; };
57  // void SetGeoH(PndGeoHandling geoH){ fGeoH=geoH;};
58 
59  void FillHitArray();
60  void InitHitArray(TString branchName);
61 
62  private:
63  std::vector<TString> fHitBranch;
64  TString fTrackBranch;
65 
66  int fEventNr;
67 
68  double fMaxSZChi2;
69  double fMaxSZDist;
70  double fMinPointDist;
71  double fMaxDist;
72 
73  double fB;
74 
75  std::vector<TClonesArray *> fHitArray;
76  TClonesArray *fTrackCandArray;
77  TClonesArray *fRiemannTrackArray;
78  TClonesArray *fTrackArray;
79  TClonesArray *fCorrectedSttHitArray;
80 
81  TH2F *fCutDistH;
82  TH2F *fCutChi2H;
83 
84  Bool_t fInitDone;
85  Bool_t fPersistence;
86 
87  BinaryFunctor *fStopFunctor;
88  BinaryFunctor *fTimeGapFunctor;
89 
90  PndGeoSttPar *fSttParameters; // CHECK added
91  TClonesArray *fTubeArray;
92 
93  // PndGeoHandling* fGeoH;
94 
95  void Register();
96  void Reset();
97  void ProduceHits();
98 
100 };
101 
102 #endif /*PNDMVDRIEMANNTRACKFINDERTASK_H_*/
void AddHitBranch(TString branchName)
PndMvdSttGemRiemannTrackFinderTask & operator=(const PndMvdSttGemRiemannTrackFinderTask &)=delete
void InitHitArray(TString branchName)
virtual void Exec(Option_t *opt)