CMS 3D CMS Logo

CMSFieldManager.h
Go to the documentation of this file.
1 #ifndef SimG4Core_MagneticField_CMSFieldManager_H
2 #define SimG4Core_MagneticField_CMSFieldManager_H
3 
4 /*
5  Created: 13 January 2017, V. Ivanchenko
6  This class implements smart magnetic field manager
7 */
8 
10 
11 #include "G4FieldManager.hh"
12 #include <vector>
13 
14 class G4Track;
15 class G4ChordFinder;
16 class G4PropagatorInField;
17 class G4MagIntegratorStepper;
18 class G4Region;
19 
20 namespace sim {
21  class Field;
22 }
23 
24 class CMSFieldManager : public G4FieldManager {
25 public:
26  explicit CMSFieldManager();
27 
28  ~CMSFieldManager() override;
29 
30  void ConfigureForTrack(const G4Track *) override;
31 
33  sim::Field *,
34  G4ChordFinder *cfDefault,
35  G4ChordFinder *cfMonopole,
36  const std::string &vol,
37  const std::string &fieldType,
38  const std::string &stepperName,
39  double delta,
40  G4PropagatorInField *);
41 
42  void SetMonopoleTracking(G4bool);
43 
44 private:
45  bool isInsideVacuum(const G4Track *);
46  void setDefaultChordFinder();
48 
49  CMSFieldManager(const CMSFieldManager &) = delete;
50  CMSFieldManager &operator=(const CMSFieldManager &) = delete;
51 
52  std::unique_ptr<sim::Field> theField;
53 
54  G4ChordFinder *m_currChordFinder;
55  G4ChordFinder *m_chordFinder;
56  G4ChordFinder *m_chordFinderMonopole;
57 
58  G4PropagatorInField *m_propagator;
59 
60  std::vector<const G4Region *> m_regions;
61 
62  double m_dChord;
63  double m_dOneStep;
65  double m_stepMax;
71 
72  bool m_cfVacuum;
73 };
74 #endif
CMSFieldManager::ConfigureForTrack
void ConfigureForTrack(const G4Track *) override
Definition: CMSFieldManager.cc:125
CMSFieldManager::m_dOneStepSimple
double m_dOneStepSimple
Definition: CMSFieldManager.h:68
CMSFieldManager::m_dOneStep
double m_dOneStep
Definition: CMSFieldManager.h:63
CMSFieldManager::SetMonopoleTracking
void SetMonopoleTracking(G4bool)
Definition: CMSFieldManager.cc:138
CMSFieldManager::m_chordFinder
G4ChordFinder * m_chordFinder
Definition: CMSFieldManager.h:55
CMSFieldManager::m_dIntersectionSimple
double m_dIntersectionSimple
Definition: CMSFieldManager.h:69
CMSFieldManager::m_stepMax
double m_stepMax
Definition: CMSFieldManager.h:65
CMSFieldManager::m_stepMaxSimple
double m_stepMaxSimple
Definition: CMSFieldManager.h:70
CMSFieldManager::InitialiseForVolume
void InitialiseForVolume(const edm::ParameterSet &, sim::Field *, G4ChordFinder *cfDefault, G4ChordFinder *cfMonopole, const std::string &vol, const std::string &fieldType, const std::string &stepperName, double delta, G4PropagatorInField *)
Definition: CMSFieldManager.cc:39
CMSFieldManager
Definition: CMSFieldManager.h:24
CMSFieldManager::theField
std::unique_ptr< sim::Field > theField
Definition: CMSFieldManager.h:52
CMSFieldManager::isInsideVacuum
bool isInsideVacuum(const G4Track *)
Definition: CMSFieldManager.cc:154
CMSFieldManager::m_currChordFinder
G4ChordFinder * m_currChordFinder
Definition: CMSFieldManager.h:54
CMSFieldManager::m_chordFinderMonopole
G4ChordFinder * m_chordFinderMonopole
Definition: CMSFieldManager.h:56
sim::Field
Definition: Field.h:9
CMSFieldManager::m_dChord
double m_dChord
Definition: CMSFieldManager.h:62
AlCaHLTBitMon_QueryRunRegistry.string
string
Definition: AlCaHLTBitMon_QueryRunRegistry.py:256
CMSFieldManager::~CMSFieldManager
~CMSFieldManager() override
Definition: CMSFieldManager.cc:30
CMSFieldManager::m_propagator
G4PropagatorInField * m_propagator
Definition: CMSFieldManager.h:58
edm::ParameterSet
Definition: ParameterSet.h:36
sim
Definition: GeometryProducer.h:20
dumpMFGeometry_cfg.delta
delta
Definition: dumpMFGeometry_cfg.py:25
CMSFieldManager::setChordFinderForVacuum
void setChordFinderForVacuum()
Definition: CMSFieldManager.cc:176
CMSFieldManager::setDefaultChordFinder
void setDefaultChordFinder()
Definition: CMSFieldManager.cc:166
CMSFieldManager::operator=
CMSFieldManager & operator=(const CMSFieldManager &)=delete
CMSFieldManager::m_dChordSimple
double m_dChordSimple
Definition: CMSFieldManager.h:67
ParameterSet.h
CMSFieldManager::CMSFieldManager
CMSFieldManager()
Definition: CMSFieldManager.cc:13
CMSFieldManager::m_regions
std::vector< const G4Region * > m_regions
Definition: CMSFieldManager.h:60
CMSFieldManager::m_energyThreshold
double m_energyThreshold
Definition: CMSFieldManager.h:66
CMSFieldManager::m_dIntersection
double m_dIntersection
Definition: CMSFieldManager.h:64
CMSFieldManager::m_cfVacuum
bool m_cfVacuum
Definition: CMSFieldManager.h:72