BOSS 7.1.0
BESIII Offline Software System
Loading...
Searching...
No Matches
VertexExtrapolate.h
Go to the documentation of this file.
1/* <===<===<===<===<===<===<===<===<===~===>===>===>===>===>===>===>===>===>
2 * File Name: VertexExtrapolate.h
3 * Author: Hao-Kai SUN
4 * Created: 2021-09-06 Mon 18:02:17 CST
5 * <<=====================================>>
6 * Last Updated: 2022-01-06 Thu 11:00:20 CST
7 * By: Hao-Kai SUN
8 * Update #: 40
9 * ============================== CODES ==============================>>> */
10#ifndef VERTEXFITREFINE_VERTEXEXTRAPOLATE_H
11#define VERTEXFITREFINE_VERTEXEXTRAPOLATE_H
12//// constants
13#ifndef NULL
14#define NULL 0
15#endif
16
17#ifndef R__NULLPTR
18#ifndef nullptr
19#define nullptr 0
20#endif
21#endif
22////
23#include "G4Material.hh"
24#include "G4Tubs.hh"
25#include "GDMLProcessor.hh"
28
30
31#include <string>
32
34{
35 public:
38 void KalFitExt(const HepPoint3D& point, DstMdcKalTrack* kalTrack,
39 const int pid);
40
41 const HepVector getHelixVector() const;
42 const HepSymMatrix getErrorMatrix() const;
43
44 private:
46 static VertexExtrapolate* m_instance;
47
48 G4Tubs* getTubs(const std::string& name);
49 void G4MtovKalFitM(G4Material* g4m, const std::string& name);
50 void AddWalls(int index, double radius, double thick, double length,
51 double z0);
52 void AddWalls(int index);
53 void testMW(int index);
54 void constructWallsFromGdml();
55
56 void setHelixVector(const CLHEP::HepVector a);
57 void setErrorMatrix(const CLHEP::HepSymMatrix Ea);
58
59 int getWallMdcNumber(const HepPoint3D& point) const;
60 void extToAnyPoint(KalFitTrack& track, const HepPoint3D& point);
61
62 /// Properties
63 std::vector<KalFitCylinder> m_BesKalmanExtWalls;
64 std::vector<KalFitMaterial> m_BesKalmanExtMaterials;
65
66 CLHEP::HepVector m_helixVector;
67 CLHEP::HepSymMatrix m_errorMatrix;
68};
69
70inline const HepVector VertexExtrapolate::getHelixVector() const
71{
72 return m_helixVector;
73}
74
75inline const HepSymMatrix VertexExtrapolate::getErrorMatrix() const
76{
77 return m_errorMatrix;
78}
79
80inline void VertexExtrapolate::setHelixVector(const CLHEP::HepVector a)
81{
82 m_helixVector = a;
83}
84
85inline void VertexExtrapolate::setErrorMatrix(const CLHEP::HepSymMatrix Ea)
86{
87 m_errorMatrix = Ea;
88}
89
90inline G4Tubs* VertexExtrapolate::getTubs(const std::string& name)
91{
92 return dynamic_cast<G4Tubs*>(
93 const_cast<G4LogicalVolume*>(
94 GDMLProcessor::GetInstance()->GetLogicalVolume(name))
95 ->GetSolid());
96}
97
98#endif /* VERTEXFITREFINE_VERTEXEXTRAPOLATE_H */
99/* ===================================================================<<< */
100/* =================== VertexExtrapolate.h ends here ==================== */
Description of a track class (<- Helix.cc)
Definition: KalFitTrack.h:35
void KalFitExt(const HepPoint3D &point, DstMdcKalTrack *kalTrack, const int pid)
const HepVector getHelixVector() const
static VertexExtrapolate * instance()
const HepSymMatrix getErrorMatrix() const