PandaRoot
PndGeanePro.h
Go to the documentation of this file.
1 #ifndef PNDGEANEPRO_H
2 #define PNDGEANEPRO_H
3 
4 #include "FairLogger.h"
5 #include "FairPropagator.h"
6 #include "TGeant3.h"
7 #include "TString.h"
8 #include "TVector3.h"
9 #include "TDatabasePDG.h"
10 #include "FairGeaneApplication.h"
11 #include "PndPropagator.h"
13 
18 class PndGeanePro : public PndPropagator
19 {
20  private:
21  Float_t fDestinationLengthArray[1];
22  Float_t fInErrorMatrix[15];
23  Double_t fTransportMatrix[5][5];
24  Float_t fInitialPlane[6];
25  Float_t fInitialPositionArray[3];
26  Float_t fInitialMomentumArray[3];
27  Float_t fFinalPlane[12];
28  Float_t fFinalPositionArray[3];
29  Float_t fFinalMomentumArray[3];
30 
31  TGeant3* gMC3;
32  Ertrio_t* afErtrio;
33  TDatabasePDG* fDBpdg;
34 
35  TString fPropOption;
36  Int_t fNrep;
37  Int_t fGeantCode;
38  Int_t fProMode;
39  Float_t fTrackTime;
40 
41  PndGeaneGeometryMethods fGeoMethods;
42 
43  PndGeanePro(const PndGeanePro&);
44  PndGeanePro& operator=(const PndGeanePro&);
45 
46  public:
47  PndGeanePro();
48  ~PndGeanePro();
49 
55  void Init(FairTrackPar* TParam);
56 
65  Bool_t Propagate(Int_t PDG);
66 
81  virtual Bool_t Propagate(FairTrackPar* TStart, FairTrackPar* TEnd, int PDG);
82 
88  virtual Bool_t Propagate(Float_t* x1, Float_t* p1, Float_t* x2, Float_t* p2, Int_t PDG);
89 
108  virtual PndProp::PCAOutputStruct FindPCA(Int_t pca, Int_t PDGCode, TVector3 point, TVector3 wire1,
109  TVector3 wire2, Double_t maxdistance);
110 
117  virtual Bool_t SetDestinationPlane(const TVector3& v0, const TVector3& v1, const TVector3& v2);
118 
124  virtual Bool_t SetOriginPlane(const TVector3& v0, const TVector3& v1);
125 
132  virtual Bool_t SetDestinationVolume(std::string volName, Int_t copyNo, Int_t option);
133 
138  virtual Bool_t SetDestinationLength(Float_t length);
139 
144  virtual Bool_t SetDestinationPoint(TVector3 point);
145 
151  virtual Bool_t SetDestinationWire(TVector3 wire1, TVector3 wire2);
152 
156  virtual Bool_t SetPropagateOnlyParameters();
157 
169  virtual bool SetPCAPropagation(Int_t pca, Int_t dir = 1, FairTrackPar* par = nullptr);
170 
174  void SetBackProp() { fPropOption = "BPE"; }
175 
179  Float_t GetLengthAtPCA() { return fPcaOutput.TrackLength; }
180 
185  void GetTransportMatrix(Double_t trm[5][5])
186  {
187  for (Int_t i = 0; i < 5; i++){
188  for (Int_t j = 0; j < 5; j++) {
189  trm[i][j] = fTransportMatrix[i][j];
190  }
191  }
192  }
193 
194  ClassDef(PndGeanePro, 1);
195 };
196 
197 #endif //PNDGEANEPRO_H
Float_t GetLengthAtPCA()
Definition: PndGeanePro.h:179
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:69
virtual Bool_t SetPropagateOnlyParameters()
Method to set to propagate only parameters.
~PndGeanePro()
destructor
unsigned int i
Definition: P4_F32vec4.h:21
Interface to GEANE for PandaRoot.
Definition: PndGeanePro.h:18
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:185
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:29
virtual Bool_t SetDestinationWire(TVector3 wire1, TVector3 wire2)
Method to set wire to propagate to.
Propagator interface class for PandaRoot.
Definition: PndPropagator.h:52
void SetBackProp()
Method to set propagation to backwards propagation.
Definition: PndGeanePro.h:174
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