PandaRoot
PndGeanePro.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 PNDGEANEPRO_H
14 #define PNDGEANEPRO_H
15 
16 #include "FairLogger.h"
17 #include "FairPropagator.h"
18 #include "TGeant3.h"
19 #include "TString.h"
20 #include "TVector3.h"
21 #include "TDatabasePDG.h"
22 #include "FairGeaneApplication.h"
23 #include "PndPropagator.h"
25 
30 class PndGeanePro : public PndPropagator
31 {
32  private:
33  Float_t fDestinationLengthArray[1];
34  Float_t fInErrorMatrix[15];
35  Double_t fTransportMatrix[5][5];
36  Float_t fInitialPlane[6];
37  Float_t fInitialPositionArray[3];
38  Float_t fInitialMomentumArray[3];
39  Float_t fFinalPlane[12];
40  Float_t fFinalPositionArray[3];
41  Float_t fFinalMomentumArray[3];
42 
43  TGeant3* gMC3;
44  Ertrio_t* afErtrio;
45  TDatabasePDG* fDBpdg;
46 
47  TString fPropOption;
48  Int_t fNrep;
49  Int_t fGeantCode;
50  Int_t fProMode;
51  Float_t fTrackTime;
52 
53  PndGeaneGeometryMethods fGeoMethods;
54 
55  PndGeanePro(const PndGeanePro&);
56  PndGeanePro& operator=(const PndGeanePro&);
57 
58  public:
59  PndGeanePro();
60  ~PndGeanePro();
61 
67  void Init(FairTrackPar* TParam);
68 
77  Bool_t Propagate(Int_t PDG);
78 
93  virtual Bool_t Propagate(FairTrackPar* TStart, FairTrackPar* TEnd, int PDG);
94 
100  virtual Bool_t Propagate(Float_t* x1, Float_t* p1, Float_t* x2, Float_t* p2, Int_t PDG);
101 
120  virtual PndProp::PCAOutputStruct FindPCA(Int_t pca, Int_t PDGCode, TVector3 point, TVector3 wire1,
121  TVector3 wire2, Double_t maxdistance);
122 
129  virtual Bool_t SetDestinationPlane(const TVector3& v0, const TVector3& v1, const TVector3& v2);
130 
136  virtual Bool_t SetOriginPlane(const TVector3& v0, const TVector3& v1);
137 
144  virtual Bool_t SetDestinationVolume(std::string volName, Int_t copyNo, Int_t option);
145 
150  virtual Bool_t SetDestinationLength(Float_t length);
151 
156  virtual Bool_t SetDestinationPoint(TVector3 point);
157 
163  virtual Bool_t SetDestinationWire(TVector3 wire1, TVector3 wire2);
164 
168  virtual Bool_t SetPropagateOnlyParameters();
169 
181  virtual bool SetPCAPropagation(Int_t pca, Int_t dir = 1, FairTrackPar* par = nullptr);
182 
186  void SetBackProp() { fPropOption = "BPE"; }
187 
191  Float_t GetLengthAtPCA() { return fPcaOutput.TrackLength; }
192 
197  void GetTransportMatrix(Double_t trm[5][5])
198  {
199  for (Int_t i = 0; i < 5; i++){
200  for (Int_t j = 0; j < 5; j++) {
201  trm[i][j] = fTransportMatrix[i][j];
202  }
203  }
204  }
205 
206  ClassDef(PndGeanePro, 1);
207 };
208 
209 #endif //PNDGEANEPRO_H
Float_t GetLengthAtPCA()
Definition: PndGeanePro.h:191
virtual Bool_t SetDestinationPoint(TVector3 point)
Method to set point to propagate to.
void Init(FairTrackPar *TParam)
Method to initialize last track parameter of reconstructed track.
virtual Bool_t SetDestinationPlane(const TVector3 &v0, const TVector3 &v1, const TVector3 &v2)
Method to set the plane to propagate particles to.
PndProp::PCAOutputStruct fPcaOutput
Definition: PndPropagator.h:81
virtual Bool_t SetPropagateOnlyParameters()
Method to set to propagate only parameters.
~PndGeanePro()
destructor
unsigned int i
Definition: P4_F32vec4.h:33
Interface to GEANE for PandaRoot.
Definition: PndGeanePro.h:30
virtual Bool_t SetOriginPlane(const TVector3 &v0, const TVector3 &v1)
Method to set the plane to propagate particles from.
virtual Bool_t SetDestinationVolume(std::string volName, Int_t copyNo, Int_t option)
Method to set the volume to propagate particles to.
ClassDef(PndGeanePro, 1)
virtual Bool_t SetDestinationLength(Float_t length)
Method to set the length to propagate particles to.
void GetTransportMatrix(Double_t trm[5][5])
Method to retrieve the transport matrix.
Definition: PndGeanePro.h:197
virtual PndProp::PCAOutputStruct FindPCA(Int_t pca, Int_t PDGCode, TVector3 point, TVector3 wire1, TVector3 wire2, Double_t maxdistance)
Find the point of closest approach of the track to a point (measured position) or to a line (wire)...
Bool_t Propagate(Int_t PDG)
Main propagate function that calls ERTRAK from GEANE to do the propagation.
output of PCA finding algorithm
Definition: PndPropagator.h:41
virtual Bool_t SetDestinationWire(TVector3 wire1, TVector3 wire2)
Method to set wire to propagate to.
Propagator interface class for PandaRoot.
Definition: PndPropagator.h:64
void SetBackProp()
Method to set propagation to backwards propagation.
Definition: PndGeanePro.h:186
virtual bool SetPCAPropagation(Int_t pca, Int_t dir=1, FairTrackPar *par=nullptr)
Method to set PCA mode, propagation direction and other propagation options, initializes track parame...
PndGeanePro()
default constructor