CbmRoot
Loading...
Searching...
No Matches
CbmKF.h
Go to the documentation of this file.
1/* Copyright (C) 2006-2020 GSI Helmholtzzentrum fuer Schwerionenforschung, Darmstadt
2 SPDX-License-Identifier: GPL-3.0-only
3 Authors: Denis Bertini [committer], Florian Uhlig, Sergey Gorbunov */
4
16
17#ifndef CBMKF_H
18#define CBMKF_H
19
20#include "CbmKFMaterial.h"
21#include "FairField.h"
22#include "FairTask.h"
23#include "TGeoNode.h"
24
25#include <iostream>
26#include <map>
27#include <vector>
28
31class FairGeoNode;
32class TObjArray;
33
34class CbmKF : public FairTask {
35
36 public:
37 CbmKF(const char* name = "KF", Int_t iVerbose = 1);
38 ~CbmKF();
39
40 static CbmKF* Instance() { return fInstance; }
41
43
44 void SetParContainers();
45 InitStatus ReInit();
46 InitStatus Init();
47
49
51
54
55 Int_t Propagate(Double_t* T, Double_t* C, Double_t z_out, Double_t QP0);
56
58
59 std::vector<CbmKFMaterial*> vMaterial;
60
61 std::vector<CbmKFTube> vMvdMaterial;
62 std::vector<CbmKFTube> vStsMaterial;
63 std::vector<CbmKFTube> vMuchMaterial;
64 std::vector<CbmKFTube> vMuchDetectors;
65 std::vector<CbmKFTube> vRichMaterial;
66 std::vector<CbmKFWall> vTrdMaterial;
67 std::vector<CbmKFTube> vTargets;
68 std::vector<CbmKFCone> vPipe;
69
70 std::vector<CbmKFTube> vPassiveTube;
71 std::vector<CbmKFWall> vPassiveWall;
72 std::vector<CbmKFBox> vPassiveBox;
73
75
76 FairField* GetMagneticField() { return fMagneticField; }
77
78 std::map<Int_t, Int_t> MvdStationIDMap;
79 std::map<Int_t, Int_t> StsStationIDMap;
80 std::map<Int_t, Int_t> TrdStationIDMap;
81 std::map<Int_t, Int_t> MuchMCID2StationMap;
82 std::map<Int_t, Int_t> MuchStation2MCIDMap;
83
84 Int_t GetMethod() { return fMethod; }
85
86 int GetNMvdStations() const { return CbmKF::Instance()->vMvdMaterial.size(); }
87
88 const std::array<float, 3> GetTargetPosition();
89
90 private:
92
93 FairField* fMagneticField;
94
95
96 Int_t fMethod; /* 0 = straight line,
97 1 = AnalyticLight
98 2 = Runge-Kutta 4 order,
99 */
100
101 std::map<Int_t, Int_t> fMaterialID2IndexMap;
102
103 Int_t ReadTube(CbmKFTube& tube, FairGeoNode* node);
104 CbmKFMaterial* ReadPassive(FairGeoNode* node);
105 void GetTargetInfo();
106
107
108 void FindTargetNode(TString& targetPath, TGeoNode*& targetNode);
109
110 std::array<float, 3> fTargetXYZ;
111
112
113 private:
114 CbmKF(const CbmKF&);
115 void operator=(const CbmKF&);
116
117 public:
119};
120
121#endif /* !CBMKF_H */
int Int_t
Some class C.
std::vector< CbmKFMaterial * > vMaterial
Definition CbmKF.h:59
void operator=(const CbmKF &)
CbmKF(const CbmKF &)
Int_t fMethod
Definition CbmKF.h:96
std::vector< CbmKFWall > vTrdMaterial
Definition CbmKF.h:66
std::vector< CbmKFBox > vPassiveBox
Definition CbmKF.h:72
ClassDef(CbmKF, 1)
std::vector< CbmKFTube > vPassiveTube
Definition CbmKF.h:70
void GetTargetInfo()
Definition CbmKF.cxx:281
std::array< float, 3 > fTargetXYZ
Definition CbmKF.h:110
static CbmKF * Instance()
Definition CbmKF.h:40
CbmKFMaterial * ReadPassive(FairGeoNode *node)
Definition CbmKF.cxx:514
std::map< Int_t, Int_t > TrdStationIDMap
Definition CbmKF.h:80
std::vector< CbmKFWall > vPassiveWall
Definition CbmKF.h:71
std::map< Int_t, Int_t > MuchMCID2StationMap
Definition CbmKF.h:81
void SetParContainers()
Definition CbmKF.cxx:87
std::vector< CbmKFTube > vRichMaterial
Definition CbmKF.h:65
std::vector< CbmKFCone > vPipe
Definition CbmKF.h:68
std::vector< CbmKFTube > vMuchDetectors
Definition CbmKF.h:64
FairField * GetMagneticField()
Definition CbmKF.h:76
std::vector< CbmKFTube > vMvdMaterial
Definition CbmKF.h:61
Int_t GetMaterialIndex(Int_t uid)
Definition CbmKF.cxx:372
std::map< Int_t, Int_t > MuchStation2MCIDMap
Definition CbmKF.h:82
FairField * fMagneticField
Definition CbmKF.h:93
~CbmKF()
Definition CbmKF.cxx:85
std::vector< CbmKFTube > vStsMaterial
Definition CbmKF.h:62
std::map< Int_t, Int_t > StsStationIDMap
Definition CbmKF.h:79
CbmKF(const char *name="KF", Int_t iVerbose=1)
void FindTargetNode(TString &targetPath, TGeoNode *&targetNode)
Definition CbmKF.cxx:347
std::map< Int_t, Int_t > fMaterialID2IndexMap
Definition CbmKF.h:101
int GetNMvdStations() const
Definition CbmKF.h:86
std::map< Int_t, Int_t > MvdStationIDMap
Definition CbmKF.h:78
std::vector< CbmKFTube > vMuchMaterial
Definition CbmKF.h:63
Int_t GetMethod()
Definition CbmKF.h:84
Int_t ReadTube(CbmKFTube &tube, FairGeoNode *node)
Definition CbmKF.cxx:382
const std::array< float, 3 > GetTargetPosition()
Definition CbmKF.cxx:345
InitStatus Init()
Definition CbmKF.cxx:97
std::vector< CbmKFTube > vTargets
Definition CbmKF.h:67
static CbmKF * fInstance
Definition CbmKF.h:91
Int_t Propagate(Double_t *T, Double_t *C, Double_t z_out, Double_t QP0)
Definition CbmKF.cxx:649
InitStatus ReInit()
Definition CbmKF.cxx:95