Moved Tao's code to TaoLEMuSR.
This commit is contained in:
119
geant4/TaoLEMuSR/G4Modified/G4FieldManager.cc
Normal file
119
geant4/TaoLEMuSR/G4Modified/G4FieldManager.cc
Normal file
@ -0,0 +1,119 @@
|
||||
//
|
||||
// ********************************************************************
|
||||
// * DISCLAIMER *
|
||||
// * *
|
||||
// * The following disclaimer summarizes all the specific disclaimers *
|
||||
// * of contributors to this software. The specific disclaimers,which *
|
||||
// * govern, are listed with their locations in: *
|
||||
// * http://cern.ch/geant4/license *
|
||||
// * *
|
||||
// * Neither the authors of this software system, nor their employing *
|
||||
// * institutes,nor the agencies providing financial support for this *
|
||||
// * work make any representation or warranty, express or implied, *
|
||||
// * regarding this software system or assume any liability for its *
|
||||
// * use. *
|
||||
// * *
|
||||
// * This code implementation is the intellectual property of the *
|
||||
// * GEANT4 collaboration. *
|
||||
// * By copying, distributing or modifying the Program (or any work *
|
||||
// * based on the Program) you indicate your acceptance of this *
|
||||
// * statement, and all its terms. *
|
||||
// ********************************************************************
|
||||
//
|
||||
//
|
||||
// $Id: G4FieldManager.cc,v 1.13 2003/11/08 04:08:13 japost Exp $
|
||||
// GEANT4 tag $Name: geant4-06-00-patch-01 $
|
||||
// - Augsut 05 T.K.Paraïso add magcomponent l.138
|
||||
// -------------------------------------------------------------------
|
||||
|
||||
#include "G4FieldManager.hh"
|
||||
#include "G4Field.hh"
|
||||
#include "G4MagneticField.hh"
|
||||
#include "G4ChordFinder.hh"
|
||||
|
||||
G4FieldManager::G4FieldManager(G4Field *detectorField,
|
||||
G4ChordFinder *pChordFinder,
|
||||
G4bool fieldChangesEnergy
|
||||
)
|
||||
: fDetectorField(detectorField),
|
||||
fChordFinder(pChordFinder),
|
||||
fAllocatedChordFinder(false),
|
||||
fDefault_Delta_One_Step_Value(0.01*mm),
|
||||
fDefault_Delta_Intersection_Val(0.001*mm),
|
||||
fEpsilonMinDefault(5.0e-5),
|
||||
fEpsilonMaxDefault(0.001),
|
||||
fEpsilonMin( fEpsilonMinDefault ),
|
||||
fEpsilonMax( fEpsilonMaxDefault),
|
||||
fMagComponent(false)
|
||||
{
|
||||
fDelta_One_Step_Value= fDefault_Delta_One_Step_Value;
|
||||
fDelta_Intersection_Val= fDefault_Delta_Intersection_Val;
|
||||
if ( detectorField )
|
||||
fFieldChangesEnergy= detectorField->DoesFieldChangeEnergy();
|
||||
else
|
||||
fFieldChangesEnergy= fieldChangesEnergy;
|
||||
}
|
||||
|
||||
G4FieldManager::G4FieldManager(G4MagneticField *detectorField)
|
||||
: fDetectorField(detectorField), fAllocatedChordFinder(true),
|
||||
fFieldChangesEnergy(false),
|
||||
fDefault_Delta_One_Step_Value(0.01*mm),
|
||||
fDefault_Delta_Intersection_Val(0.001*mm),
|
||||
fEpsilonMinDefault(5.0e-5),
|
||||
fEpsilonMaxDefault(0.001),
|
||||
fEpsilonMin( fEpsilonMinDefault ),
|
||||
fEpsilonMax( fEpsilonMaxDefault),
|
||||
fMagComponent(true)
|
||||
{
|
||||
fChordFinder= new G4ChordFinder( detectorField );
|
||||
fDelta_One_Step_Value= fDefault_Delta_One_Step_Value;
|
||||
fDelta_Intersection_Val= fDefault_Delta_Intersection_Val;
|
||||
}
|
||||
|
||||
void G4FieldManager::ConfigureForTrack( const G4Track * )
|
||||
{
|
||||
// Default is to do nothing!
|
||||
;
|
||||
}
|
||||
|
||||
G4FieldManager::~G4FieldManager()
|
||||
{
|
||||
if( fAllocatedChordFinder ){
|
||||
delete fChordFinder;
|
||||
}
|
||||
}
|
||||
|
||||
void
|
||||
G4FieldManager::CreateChordFinder(G4MagneticField *detectorMagField)
|
||||
{
|
||||
if ( fAllocatedChordFinder )
|
||||
delete fChordFinder;
|
||||
fChordFinder= new G4ChordFinder( detectorMagField );
|
||||
fAllocatedChordFinder= true;
|
||||
}
|
||||
|
||||
G4bool G4FieldManager::SetDetectorField(G4Field *pDetectorField)
|
||||
{
|
||||
fDetectorField= pDetectorField;
|
||||
|
||||
if ( pDetectorField )
|
||||
fFieldChangesEnergy= pDetectorField->DoesFieldChangeEnergy();
|
||||
else
|
||||
fFieldChangesEnergy= false; // No field
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
G4bool G4FieldManager::SetDetectorField(G4Field *pDetectorField,G4bool mag)
|
||||
{
|
||||
fDetectorField= pDetectorField;
|
||||
|
||||
fMagComponent = mag;
|
||||
|
||||
if ( pDetectorField )
|
||||
fFieldChangesEnergy= pDetectorField->DoesFieldChangeEnergy();
|
||||
else
|
||||
fFieldChangesEnergy= false; // No field
|
||||
|
||||
return false;
|
||||
}
|
Reference in New Issue
Block a user