PandaRoot
PndGemTrackFinderOnHits.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 // ----- PndGemTrackFinderOnHits header file -----
15 // ----- Created 02.06.2009 by R. Karabowicz -----
16 // -------------------------------------------------------------------------
17 
27 #ifndef PNDGEMTRACKFINDERONHITS_H
28 #define PNDGEMTRACKFINDERONHITS_H
29 
30 #include "PndMCTrack.h"
31 
32 #include "PndGemHit.h"
33 #include "PndGemTrackFinder.h"
34 #include "PndGemDigiPar.h"
35 
36 #include <vector>
37 
38 struct TrackSegment {
39  Int_t stationIndex[2];
40  Int_t hitIndex[4];
41  Double_t trackMom;
42  Double_t trackPhi;
43  Double_t trackTheta;
45 };
46 
48 
49  public:
52 
54  virtual ~PndGemTrackFinderOnHits();
55 
61  virtual Int_t DoFind(TClonesArray *hitArray, TClonesArray *trackArray, TClonesArray *trackCandArray);
62 
64  void SetVerbose(const Int_t &verbose) { fVerbose = verbose; };
65  void SetPrimary(const Int_t &primary) { fPrimary = primary; };
66  void SetSigmaMult(Double_t tempd) { fSigmaMult = tempd; };
67 
68  private:
69  PndGemDigiPar *fDigiPar;
70 
72  TClonesArray *fMCTrackArray;
73  TClonesArray *fMCPointArray;
74 
76  // PndGemStructure *fGemStructure;
77 
84  Int_t fVerbose;
85 
90  Int_t fPrimary;
91 
92  Double_t fSigmaMult;
93 
94  // Parameters, taken from the digiPar file
95  Double_t fParThetaA;
96  Double_t fParThetaB;
97 
98  Double_t fParTheta0;
99  Double_t fParTheta1;
100  Double_t fParTheta2;
101  Double_t fParTheta3;
102 
103  Double_t fParRadPhi0;
104  Double_t fParRadPhi2;
105 
106  Double_t fParMat0[3];
107  Double_t fParMat1[3];
108 
110  Int_t fNofEvents; // event counter
111  Int_t fMCAvailable;
112  Int_t fNofClHits;
113 
114  Int_t fNofExpectedTrackSegments;
115  Int_t fNofFoundTrackSegments;
116  std::vector<TrackSegment> fTrackSegments;
117  Int_t FindTrackSegments(TClonesArray *hitArray, Int_t stat1Id, Int_t stat2Id);
118  Int_t MatchTrackSegments();
119  void RemoveCloneTracks(Int_t nofRecoTracks);
120  Int_t CreateTracks(TClonesArray *hitArray, TClonesArray *trackArray, TClonesArray *trackCandArray, Int_t nofRecoTracks);
121 
122  void PrintTrackSegments(TClonesArray *hitArray);
123  void PrintTracks(TClonesArray *hitArray, Int_t nofRecoTracks);
124  void PrintMCTrackSegments(TClonesArray *hitArray);
125  void PrintMCTracks(TClonesArray *hitArray, Int_t nofRecoTracks);
126 
128  virtual void SetParContainers();
129 
131  virtual void Init();
132 
133  ClassDef(PndGemTrackFinderOnHits, 1);
134 };
135 
136 #endif
void SetPrimary(const Int_t &primary)
Abstract base class for concrete Gem track finding algorithm.
OnHits track finding algorithm.
Digitization Parameter Class for GEM part.
Definition: PndGemDigiPar.h:42
void SetSigmaMult(Double_t tempd)
void SetVerbose(const Int_t &verbose)