PandaRoot
PndMvdGemTrackFinderOnHits.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 // -------------------------------------------------------------------------
14 // ----- PndMvdGemTrackFinderOnHits header file -----
15 // ----- Created 02.06.2009 by R. Karabowicz -----
16 // -------------------------------------------------------------------------
17 
27 #ifndef PNDMVDGEMTRACKFINDERONHITS_H
28 #define PNDMVDGEMTRACKFINDERONHITS_H
29 
30 #include "PndPersistencyTask.h"
31 #include "FairMCPoint.h"
32 #include "PndMCTrack.h"
33 
34 #include "PndSdsHit.h"
35 #include "PndGemHit.h"
36 #include "PndGemTrackFinder.h"
37 #include "PndGemDigiPar.h"
38 
39 #include <vector>
40 
41 struct TrackSegment {
42  Int_t detId[2];
43  Int_t hitIndex[2];
44  Double_t trackMom;
45  Double_t trackPhi;
46  Double_t trackTheta;
47  Int_t recoTrackIndex;
48 };
49 
51 
52  public:
55 
57  PndMvdGemTrackFinderOnHits(Int_t iVerbose);
58 
60  virtual ~PndMvdGemTrackFinderOnHits();
61 
63  virtual void Exec(Option_t *opt);
64 
66  void SetVerbose(const Int_t &verbose) { fVerbose = verbose; };
67 
68  private:
69  PndGemDigiPar *fDigiPar;
70 
72  TClonesArray *fMvdPixelHitArray;
73  TClonesArray *fMvdStripHitArray;
74  TClonesArray *fGemHitArray;
75 
77  TClonesArray *fTrackArray;
78  TClonesArray *fTrackCandArray;
79 
81  TClonesArray *fMCTrackArray;
82  TClonesArray *fMCGemPointArray;
83  TClonesArray *fMCMvdPointArray;
84 
86  // PndGemStructure *fGemStructure;
87 
94  Int_t fVerbose;
95 
100  Int_t fPrimary;
101 
102  // Parameters, taken from the digiPar file
103  Double_t fParThetaA;
104  Double_t fParThetaB;
105 
106  Double_t fParTheta0;
107  Double_t fParTheta1;
108  Double_t fParTheta2;
109  Double_t fParTheta3;
110 
111  Double_t fParRadPhi0;
112  Double_t fParRadPhi2;
113 
114  Double_t fParMat0[3];
115  Double_t fParMat1[3];
116 
118  Int_t fNofEvents; // event counter
119  Int_t fMCAvailable;
120 
121  Int_t fNofExpectedTrackSegments;
122  Int_t fNofFoundTrackSegments;
123  std::vector<TrackSegment> fTrackSegments;
124  Int_t FindTrackSegments(Int_t stat1Id, Int_t stat2Id);
125  Int_t FindTrackSegments(Int_t stat2Id);
126  Int_t FindTrackSegments();
127  Int_t MatchTrackSegments();
128  void RemoveCloneTracks(Int_t nofRecoTracks);
129  Int_t CreateTracks(Int_t nofRecoTracks);
130 
131  void PrintTrackSegments();
132  void PrintTracks(Int_t nofRecoTracks);
133  void PrintMCTrackSegments();
134  void PrintMCTracks(Int_t nofRecoTracks);
135 
137  virtual void SetParContainers();
138 
140  virtual void Finish();
141 
143  virtual InitStatus Init();
144 
146  virtual InitStatus ReInit();
147 
148  ClassDef(PndMvdGemTrackFinderOnHits, 1);
149 };
150 
151 #endif
Digitization Parameter Class for GEM part.
Definition: PndGemDigiPar.h:42
void SetVerbose(const Int_t &verbose)
OnHits track finding algorithm.