diff --git a/FullSimLight/include/FSLDetectorConstruction.hh b/FullSimLight/include/FSLDetectorConstruction.hh index 5c1295b039aea1120be0be3936a5b71912712b23..e4e40d261b9d0ce3333421407a2cdd7f6c72a197 100644 --- a/FullSimLight/include/FSLDetectorConstruction.hh +++ b/FullSimLight/include/FSLDetectorConstruction.hh @@ -15,8 +15,48 @@ #include "G4Cache.hh" #include "G4MagneticField.hh" +#include "G4ChordFinder.hh" +#include "G4UIdirectory.hh" //G4AnalysisMananager #include "FSLAnalysis.hh" +// +#include "G4UIcmdWithADoubleAndUnit.hh" +#include "G4FieldManager.hh" +#include "G4ChordFinder.hh" +// + +#include <iomanip> + +#include "G4ChordFinder.hh" +#include "G4SystemOfUnits.hh" +#include "G4Field.hh" +#include "G4Mag_UsualEqRhs.hh" +#include "G4MagIntegratorDriver.hh" +// #include "G4ClassicalRK4.hh" +// #include "G4CashKarpRKF45.hh" +// #include "G4BogackiShampine23.hh" +// #include "G4BogackiShampine45.hh" +#include "G4DormandPrince745.hh" + +// New FSAL type driver / steppers ----- +#include "G4FSALIntegrationDriver.hh" +#include "G4VFSALIntegrationStepper.hh" +#include "G4RK547FEq1.hh" +// #include "G4RK547FEq2.hh" +// #include "G4RK547FEq3.hh" +#include "G4NystromRK4.hh" + +// New FSAL type driver / steppers ----- +#include "G4IntegrationDriver.hh" +#include "G4InterpolationDriver.hh" +// #include "G4FSALBogackiShampine45.hh" +// #include "G4FSALDormandPrince745.hh" +#include "G4HelixHeum.hh" +#include "G4BFieldIntegrationDriver.hh" + +#include <cassert> + +// // Units #include "GeoModelKernel/Units.h" @@ -33,6 +73,10 @@ class G4MagIntegratorStepper; class FSLDetectorMessenger; class GeoPhysVol; +class G4FieldManager; +class G4ChordFinder; + + class FSLDetectorConstruction : public G4VUserDetectorConstruction { public: @@ -55,6 +99,7 @@ public: void SetTolerance (const G4double tolerance){fTolerance=tolerance;} void SetOutputGDMLFileName(const G4String &outputGDMLFileName) { fOutputGDMLFileName = outputGDMLFileName; } void SetDumpGDML(const bool dumpGDML) {fDumpGDML=dumpGDML;} + void SetDeltaChord(const G4double DeltaChord) {fDeltaChord=DeltaChord;} //////////added /// Common method to construct a driver with a stepper of requested type. G4VIntegrationDriver* createDriverAndStepper(std::string stepperType) const; @@ -119,8 +164,11 @@ private: G4VPhysicalVolume *fWorld; FSLDetectorMessenger *fDetectorMessenger; G4Cache<G4MagneticField*> fField; //pointer to the thread-local fields - - +////////////////////////////////////////// + G4FieldManager *fFieldManager; // <-- Added field manager variable + // G4ChordFinder *fChordFinder; +G4double fDeltaChord; ////////chord +///////////////////////////////////////////////////////// std::vector<std::string> sensitiveDetectorPluginName; std::string mag_field_plugin_path; @@ -131,7 +179,8 @@ private: std::vector<double> proton_cut; std::vector<double> positron_cut; std::vector<double> gamma_cut; - +///addedd....Nitika +//void SetDeltaChord(G4MagneticField *field); }; #endif