BmnRoot
Loading...
Searching...
No Matches
CbmKF.h
Go to the documentation of this file.
1
13#ifndef CBMKF_H
14#define CBMKF_H
15
16#include "CbmKFMaterial.h"
17#include "CbmStsDigiScheme.h"
18#include "CbmKFTrackInterface.h"
19#include "BmnNewFieldMap.h"
20#include "BmnTask.h"
21
22#include "FairField.h"
23#include "FairGeoNode.h"
24
25#include <map>
26#include <vector>
27
28class CbmKF : public BmnTask {
29
30 public:
31
32 CbmKF(const char *name="KF", Int_t iVerbose = 1 );
34
35 static CbmKF *Instance(){ return fInstance; }
36
38
40 InitStatus ReInit();
41 InitStatus Init();
42
44
45 Int_t GetMaterialIndex( Int_t uid );
46
50 Int_t Propagate( Double_t *T, Double_t *C, Double_t z_out, Double_t QP0, Bool_t line=false );
51
52 Int_t PassMaterial( CbmKFTrackInterface &track, Double_t &QP0, Int_t ifst, Int_t ilst );
53 Int_t PassMaterialBetween( CbmKFTrackInterface &track, Double_t &QP0, Int_t ifst, Int_t ilst );
54 Int_t PassMaterialBetween( CbmKFTrackInterface &track, Double_t &QP0, CbmKFHit *fst, CbmKFHit *lst );
55
57
58 std::vector<CbmKFMaterial*> vMaterial;
59
60 std::vector<CbmKFTube> vMvdMaterial;
61 std::vector<CbmKFTube> vStsMaterial;
62 std::vector<CbmKFWall> vSttMaterial;
63 std::vector<CbmKFTube> vTargets;
64 std::vector<CbmKFCone> vPipe;
65
66 std::vector<CbmKFTube> vPassiveTube;
67 std::vector<CbmKFWall> vPassiveWall;
68 std::vector<CbmKFBox> vPassiveBox;
69
71
72 //FairField *GetMagneticField(){ return fMagneticField; }
73 BmnNewFieldMap *GetMagneticField(){ return fMagneticField; }
74
75 std::map<Int_t,Int_t> MvdStationIDMap;
76 std::map<Int_t,Int_t> StsStationIDMap;
77 std::map<Int_t,Int_t> SttStationIDMap;
78
79 Int_t GetMethod(){ return fMethod; }
80
81 void SetMethod(Int_t fm){ fMethod=fm; }
82
83 //AZ CbmStsDigiScheme StsDigi;
85
86 int GetNMvdStations() const { return CbmKF::Instance()->vMvdMaterial.size(); }
87 //AZ int GetNStsStations() const { return const_cast<CbmStsDigiScheme*>(&StsDigi)->GetNStations();}
89
90 virtual void SetField(const std::unique_ptr<FairField> &magneticField) {
91 fMagneticField = static_cast<BmnNewFieldMap *>(magneticField.get());
92 }
93
94 private:
95
96 static CbmKF *fInstance;
97
98 // FairField *fMagneticField;
99
100 BmnNewFieldMap* fMagneticField;
101
102
103 Int_t fMethod; /* 0 = straight line,
104 1 = AnalyticLight
105 2 = Runge-Kutta 4 order,
106 */
107
108 std::map<Int_t,Int_t> fMaterialID2IndexMap;
109
110 Int_t ReadTube( CbmKFTube &tube, FairGeoNode *node);
111 Int_t ReadTube( CbmKFTube &tube, TGeoVolume *vol); //AZ-171023
112 CbmKFMaterial *ReadPassive( FairGeoNode *node);
113
114 private:
115 CbmKF(const CbmKF&);
116 void operator=(const CbmKF&);
117 public:
118
120
121};
122
123#endif /* !CBMKF_H */
BmnTask.
Definition BmnTask.h:13
Definition CbmKF.h:28
Int_t Propagate(Double_t *T, Double_t *C, Double_t z_out, Double_t QP0, Bool_t line=false)
void SetMethod(Int_t fm)
Definition CbmKF.h:81
std::vector< CbmKFTube > vPassiveTube
Definition CbmKF.h:66
Int_t PassMaterialBetween(CbmKFTrackInterface &track, Double_t &QP0, CbmKFHit *fst, CbmKFHit *lst)
std::vector< CbmKFMaterial * > vMaterial
Definition CbmKF.h:58
ClassDef(CbmKF, 1)
std::map< Int_t, Int_t > MvdStationIDMap
Definition CbmKF.h:75
static CbmKF * Instance()
Definition CbmKF.h:35
Int_t PassMaterialBetween(CbmKFTrackInterface &track, Double_t &QP0, Int_t ifst, Int_t ilst)
int GetNStsStations() const
Definition CbmKF.h:88
void SetParContainers()
BmnNewFieldMap * GetMagneticField()
Definition CbmKF.h:73
std::vector< CbmKFWall > vPassiveWall
Definition CbmKF.h:67
std::vector< CbmKFWall > vSttMaterial
Definition CbmKF.h:62
std::vector< CbmKFTube > vTargets
Definition CbmKF.h:63
std::vector< CbmKFCone > vPipe
Definition CbmKF.h:64
std::map< Int_t, Int_t > StsStationIDMap
Definition CbmKF.h:76
std::map< Int_t, Int_t > SttStationIDMap
Definition CbmKF.h:77
Int_t GetMaterialIndex(Int_t uid)
std::vector< CbmKFBox > vPassiveBox
Definition CbmKF.h:68
std::vector< CbmKFTube > vStsMaterial
Definition CbmKF.h:61
CbmKF(const char *name="KF", Int_t iVerbose=1)
CbmStsDigiScheme * StsDigi
Definition CbmKF.h:84
int GetNMvdStations() const
Definition CbmKF.h:86
virtual void SetField(const std::unique_ptr< FairField > &magneticField)
Definition CbmKF.h:90
Int_t GetMethod()
Definition CbmKF.h:79
Int_t PassMaterial(CbmKFTrackInterface &track, Double_t &QP0, Int_t ifst, Int_t ilst)
std::vector< CbmKFTube > vMvdMaterial
Definition CbmKF.h:60
InitStatus Init()
InitStatus ReInit()
static CbmStsDigiScheme * Instance(int version=1)