PandaRoot
PndGemTrackFinderOnHitsTB.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 // ----- PndGemTrackFinderOnHitsTB header file -----
15 // ----- Created 02.06.2009 by R. Karabowicz -----
16 // -------------------------------------------------------------------------
17 
27 #ifndef PNDGEMTRACKFINDERONHITSTB_H
28 #define PNDGEMTRACKFINDERONHITSTB_H
29 
30 #include "TStopwatch.h"
31 
32 #include "PndMCTrack.h"
33 
34 #include "PndGemHit.h"
35 #include "PndGemTrackFinder.h"
36 #include "PndGemDigiPar.h"
37 
38 #include <vector>
39 
41  Int_t stationIndex[2];
42  Int_t sensorNumber[2];
43  Int_t hitIndex[2];
44  Double_t trackMom;
45  Double_t trackPhi;
46  Double_t trackTheta;
48 };
49 
51 
52  public:
55 
57  virtual ~PndGemTrackFinderOnHitsTB();
58 
64  virtual Int_t DoFind(TClonesArray *hitArray, TClonesArray *trackArray, TClonesArray *trackCandArray);
65 
67  void SetVerbose(const Int_t &verbose) { fVerbose = verbose; };
68  void SetPrimary(const Int_t &primary) { fPrimary = primary; };
69  void SetSigmaMult(Double_t tempd) { fSigmaMult = tempd; };
70 
71  private:
72  PndGemDigiPar *fDigiPar;
73 
75  TClonesArray *fMCTrackArray;
76  TClonesArray *fMCPointArray;
77 
79  // PndGemStructure *fGemStructure;
80 
87  Int_t fVerbose;
88 
93  Int_t fPrimary;
94 
95  Double_t fSigmaMult;
96 
97  // Parameters, taken from the digiPar file
98  Double_t fParThetaA;
99  Double_t fParThetaB;
100 
101  Double_t fParTheta0;
102  Double_t fParTheta1;
103  Double_t fParTheta2;
104  Double_t fParTheta3;
105 
106  Double_t fParRadPhi0;
107  Double_t fParRadPhi2;
108 
109  Double_t fParMat0[3];
110  Double_t fParMat1[3];
111 
112  TStopwatch fTimer;
113 
114  Double_t fPrepTime;
115  Double_t fSegmTime;
116  Double_t fMatchTime;
117  Double_t fRemoveTime;
118  Double_t fWriteTime;
119  Double_t fAllTime;
120 
122  Int_t fNofEvents; // event counter
123  Int_t fMCAvailable;
124  Int_t fNofClHits;
125 
126  Int_t fNofExpectedTrackSegments;
127  Int_t fNofFoundTrackSegments;
128  std::vector<TrackSegmentTB> fTrackSegments;
129  Int_t FindTrackSegments(TClonesArray *hitArray, Int_t stat1Id, Int_t stat2Id);
130  Int_t MatchTrackSegments();
131  void RemoveCloneTracks(Int_t nofRecoTracks);
132  Int_t CreateTracks(TClonesArray *hitArray, TClonesArray *trackArray, TClonesArray *trackCandArray, Int_t nofRecoTracks);
133 
134  void PrintTrackSegments(TClonesArray *hitArray);
135  void PrintTracks(TClonesArray *hitArray, Int_t nofRecoTracks);
136  void PrintMCTrackSegments(TClonesArray *hitArray);
137  void PrintMCTracks(TClonesArray *hitArray, Int_t nofRecoTracks);
138 
140  virtual void SetParContainers();
141 
143  virtual void Init();
144 
145  virtual void Finish();
146 
147  ClassDef(PndGemTrackFinderOnHitsTB, 1);
148 };
149 
150 #endif
Abstract base class for concrete Gem track finding algorithm.
Digitization Parameter Class for GEM part.
Definition: PndGemDigiPar.h:42
void SetPrimary(const Int_t &primary)
OnHits track finding algorithm.
void SetVerbose(const Int_t &verbose)