BOSS 7.0.1
BESIII Offline Software System
Loading...
Searching...
No Matches
Reconstruction/TrkExtAlg/TrkExtAlg-00-00-64/TrkExtAlg/Ext_track.h
Go to the documentation of this file.
1//
2// File: Ext_track.h
3//
4// Description: Ext_track class.
5//
6// Author: L.L.Wang
7//
8// Creation: 2005.3.7
9// Version: v1
10//
11// $Id: Ext_track.h,v 1.11 2015/07/29 00:28:14 sunss Exp $
12//
13// Revision history
14//
15//
16
17#ifndef _EXT_TRACK_FLAG_
18#define _EXT_TRACK_FLAG_
19
20//class Hep3Vector;
21
22#include <string>
23
24#include "TrkExtAlg/Ext_xp_err.h"
25
26#include "G4VUserPhysicsList.hh"
27#include "G4VUserDetectorConstruction.hh"
28#include "G4VPhysicalVolume.hh"
29#include "G4Track.hh"
30#include "G4TrackingManager.hh"
31
32#include "TrkExtAlg/ExtSteppingAction.h"
33
34/**
35 Track extrapolation class.
36*/
37
38class G4RunManagerKernel;
39
40class Ext_track {
41
42public:
43
44 // Default constructor.
46 Ext_track(const bool msgFlag, const bool myBFieldOn, const bool GeomOptimization,const int m_detVer,const bool UseMucKal,const int MucWindow);
47
48 // Destructor.
50
51// Public member functins.
52
53 //Initialization of the object. par -- Options.
54 void Initialization( const bool aMsgFlag,const bool Bfield,const bool GeomOptimization,const bool aUseMucKal,const int aMucWindow);
55
56 /** Setup the error skip list as a part of the initialization.
57 errskip\_list -- Name of the error skip file.*/
58// bool Set_errskip_list( const char* errskip_list );
59
60 /** Print out the contents of the error skip list.*/
61// void Prn_errskip_list() const;
62
63 // Set the starting point of the track extrapolation.
64 // xv3 -- Starting position(x,y,z)
65 // pv3 -- Starting momentum(px,py,pz)
66 // err -- Starting error matrix(x,y,z,px,py,pz)
67 // particleName - Assumed particle's name
68 //
69 bool Set( const Hep3Vector &xv3, const Hep3Vector &pv3, const HepSymMatrix &err,
70 const std::string &particleName, const double pathInMDC, const double tofInMdc );
71
72 //Perform the actual extrapolation and write the result of the extrapolation to TDS.
74
75
76 /** Termination of the track extrapolation.
77 */
78// void End();
79
80 /** Accessors for the parameters.
81 */
82
83 /** Modifiers for the parameters.
84 */
85
86 /** Modifiers for the track direction. (0/1)=(outgoing/incoming).
87 */
88 inline void Dir( const int dir );
89
90 inline ExtSteppingAction *GetStepAction() {return extSteppingAction;};
91
92
93private:
94 // Geometry Initialization
95 bool GeometryInitialization();
96
97 // Physics Initialization
98 bool PhysicsInitialization();
99
100 // CheckRegions
101 void CheckRegions();
102
103 // Check Vertex is Inside the setup
104 bool CheckVertexInsideWorld(const Hep3Vector& pos);
105
106 // Commonly used data in member functions.
107
108 Ext_xp_err m_xp_err;
109
110 bool myMsgFlag;
111 bool myGeomOptimization;
112 bool myBFieldOn;
113 int m_detVer;
114 bool myUseMucKal;
115 int myMucWindow;
116 float m_vect[7];
117 int m_dir;
118
119 // Error calculation skip data.
120
121 // Ext_list m_errskip_list;
122 // bool m_errskip_flag;
123 // int m_errskip_level;
124 // int m_errskip_iname;
125
126 // Bes3DetectorConstruction
127 G4VUserDetectorConstruction* bes3DetectorConstruction;
128 G4VPhysicalVolume* bes3WorldVolume;
129
130 // ExtPhysicsList
131 G4VUserPhysicsList* extPhysicsList;
132
133 //G4Track
134 G4Track* extTrack;
135
136 // ExtSteppingAction
137 ExtSteppingAction* extSteppingAction;
138
139 //Tracking Manager
140 G4TrackingManager* extTrackingManager;
141
142 //RunManagerKernel for geant4.9.0
143 G4RunManagerKernel *extRunManagerKernel;
144};
145
146
147
148/*
149 Inline function.
150*/
151
152// Modifiers.
153
154inline void Ext_track::Dir( const int dir ){ m_dir = dir; }
155
156#endif /* _EXT_TRACK_FLAG_ */
Ext_track(const bool msgFlag, const bool myBFieldOn, const bool GeomOptimization, const int m_detVer, const bool UseMucKal, const int MucWindow)
void TrackExtrapotation()
void Initialization(const bool aMsgFlag, const bool Bfield, const bool GeomOptimization, const bool aUseMucKal, const int aMucWindow)
bool Set(const Hep3Vector &xv3, const Hep3Vector &pv3, const HepSymMatrix &err, const std::string &particleName, const double pathInMDC, const double tofInMdc)
void Dir(const int dir)