00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017 #ifndef _EXT_TRACK_FLAG_
00018 #define _EXT_TRACK_FLAG_
00019
00020
00021
00022 #include <string>
00023
00024 #include "TrkExtAlg/Ext_xp_err.h"
00025
00026 #include "G4VUserPhysicsList.hh"
00027 #include "G4VUserDetectorConstruction.hh"
00028 #include "G4VPhysicalVolume.hh"
00029 #include "G4Track.hh"
00030 #include "G4TrackingManager.hh"
00031
00032 #include "TrkExtAlg/ExtSteppingAction.h"
00033
00038 class G4RunManagerKernel;
00039
00040 class Ext_track {
00041
00042 public:
00043
00044
00045 Ext_track();
00046 Ext_track(const bool msgFlag, const bool myBFieldOn, const bool GeomOptimization,const int m_detVer,const bool UseMucKal,const int MucWindow);
00047
00048
00049 ~Ext_track();
00050
00051
00052
00053
00054 void Initialization( const bool aMsgFlag,const bool Bfield,const bool GeomOptimization,const bool aUseMucKal,const int aMucWindow);
00055
00058
00059
00061
00062
00063
00064
00065
00066
00067
00068
00069 bool Set( const Hep3Vector &xv3, const Hep3Vector &pv3, const HepSymMatrix &err,
00070 const std::string &particleName, const double pathInMDC, const double tofInMdc );
00071
00072
00073 void TrackExtrapotation();
00074
00075
00078
00079
00088 inline void Dir( const int dir );
00089
00090 inline ExtSteppingAction *GetStepAction() {return extSteppingAction;};
00091
00092
00093 private:
00094
00095 bool GeometryInitialization();
00096
00097
00098 bool PhysicsInitialization();
00099
00100
00101 void CheckRegions();
00102
00103
00104 bool CheckVertexInsideWorld(const Hep3Vector& pos);
00105
00106
00107
00108 Ext_xp_err m_xp_err;
00109
00110 bool myMsgFlag;
00111 bool myGeomOptimization;
00112 bool myBFieldOn;
00113 int m_detVer;
00114 bool myUseMucKal;
00115 int myMucWindow;
00116 float m_vect[7];
00117 int m_dir;
00118
00119
00120
00121
00122
00123
00124
00125
00126
00127 G4VUserDetectorConstruction* bes3DetectorConstruction;
00128 G4VPhysicalVolume* bes3WorldVolume;
00129
00130
00131 G4VUserPhysicsList* extPhysicsList;
00132
00133
00134 G4Track* extTrack;
00135
00136
00137 ExtSteppingAction* extSteppingAction;
00138
00139
00140 G4TrackingManager* extTrackingManager;
00141
00142
00143 G4RunManagerKernel *extRunManagerKernel;
00144 };
00145
00146
00147
00148
00149
00150
00151
00152
00153
00154 inline void Ext_track::Dir( const int dir ){ m_dir = dir; }
00155
00156 #endif