Import Geant4 9.0.0 source tree
This commit is contained in:
@@ -1,4 +1,4 @@
|
||||
$Id: History,v 1.39 2005/11/09 14:47:39 gcosmo Exp $
|
||||
$Id: History,v 1.43 2007/06/04 13:05:14 ahoward Exp $
|
||||
-------------------------------------------------------------------
|
||||
|
||||
=========================================================
|
||||
@@ -17,6 +17,28 @@ committal in the CVS repository !
|
||||
* Reverse chronological order (last date on top), please *
|
||||
----------------------------------------------------------
|
||||
|
||||
June 4th, 2007 A.Howard geombias-V08-03-02
|
||||
- Put back some missing store and scoring classes:
|
||||
G4IStore, G4VCellScorerstore, G4VCellScorer
|
||||
|
||||
May 31st, 2007 A.Howard geombias-V08-03-01
|
||||
- Removed classes from old biasing scheme. These are now replaced by
|
||||
either CoupledTransportation (parallel navigation) or in
|
||||
processe/biasing. In addition the scoring is implemented with the new
|
||||
scoring frame-work (digits_hits) and processes/scoring.
|
||||
- The following classes are removed:
|
||||
G4IStore, G4ParallelNavigator, G4ParallelStepper, G4ParallelWorld,
|
||||
G4VCellScorer, G4VCellScorerStore, G4VIStore, G4VParallelStepper,
|
||||
G4VPGeoDriver, G4VScorer, G4ImportanceSplitExaminer,
|
||||
G4VImportanceSplitExaminer, G4VWeightWindowExaminer,
|
||||
G4WeightWindowExaminer
|
||||
- Classes are kept in the HEAD for testing purposes.
|
||||
|
||||
May 11th, 2007 G.Cosmo geombias-V08-03-00
|
||||
- Use call to G4GeometryTolerance instead of kCarTolerance constant in
|
||||
G4ParallelNavigator.
|
||||
- Requires tag "global-V08-03-00" and related tag set.
|
||||
|
||||
Nov, 9th 2005 G.Cosmo geombias-V07-01-00
|
||||
- Implemented migration to <sstream> for affected classes:
|
||||
G4ParallelNavigator and G4ImportanceAlgorithm.
|
||||
|
||||
@@ -25,7 +25,7 @@
|
||||
//
|
||||
//
|
||||
// $Id: G4GeometryCell.hh,v 1.6 2006/06/29 18:15:49 gunter Exp $
|
||||
// GEANT4 tag $Name: geant4-08-02 $
|
||||
// GEANT4 tag $Name: geant4-09-00 $
|
||||
//
|
||||
// ----------------------------------------------------------------------
|
||||
// Class G4GeometryCell
|
||||
|
||||
@@ -25,7 +25,7 @@
|
||||
//
|
||||
//
|
||||
// $Id: G4GeometryCellComp.hh,v 1.2 2006/06/29 18:15:52 gunter Exp $
|
||||
// GEANT4 tag $Name: geant4-08-02 $
|
||||
// GEANT4 tag $Name: geant4-09-00 $
|
||||
//
|
||||
// ----------------------------------------------------------------------
|
||||
// Class G4GeometryCellComp
|
||||
|
||||
@@ -25,7 +25,7 @@
|
||||
//
|
||||
//
|
||||
// $Id: G4GeometryCellImportance.hh,v 1.4 2006/06/29 18:15:54 gunter Exp $
|
||||
// GEANT4 tag $Name: geant4-08-02 $
|
||||
// GEANT4 tag $Name: geant4-09-00 $
|
||||
//
|
||||
// ----------------------------------------------------------------------
|
||||
// Class G4GeometryCellImportance
|
||||
|
||||
@@ -25,7 +25,7 @@
|
||||
//
|
||||
//
|
||||
// $Id: G4GeometryCellStep.hh,v 1.2 2006/06/29 18:15:57 gunter Exp $
|
||||
// GEANT4 tag $Name: geant4-08-02 $
|
||||
// GEANT4 tag $Name: geant4-09-00 $
|
||||
//
|
||||
// ----------------------------------------------------------------------
|
||||
// Class G4GeometryCellStep
|
||||
|
||||
@@ -25,7 +25,7 @@
|
||||
//
|
||||
//
|
||||
// $Id: G4GeometryCellStepStream.hh,v 1.3 2006/06/29 18:15:59 gunter Exp $
|
||||
// GEANT4 tag $Name: geant4-08-02 $
|
||||
// GEANT4 tag $Name: geant4-09-00 $
|
||||
//
|
||||
// ----------------------------------------------------------------------
|
||||
// Declarations
|
||||
|
||||
@@ -25,7 +25,7 @@
|
||||
//
|
||||
//
|
||||
// $Id: G4GeometryCellWeight.hh,v 1.3 2006/06/29 18:16:02 gunter Exp $
|
||||
// GEANT4 tag $Name: geant4-08-02 $
|
||||
// GEANT4 tag $Name: geant4-09-00 $
|
||||
//
|
||||
// ----------------------------------------------------------------------
|
||||
// Class G4GeometryCellWeight
|
||||
|
||||
@@ -25,7 +25,7 @@
|
||||
//
|
||||
//
|
||||
// $Id: G4IStore.hh,v 1.10 2006/06/29 18:16:04 gunter Exp $
|
||||
// GEANT4 tag $Name: geant4-08-02 $
|
||||
// GEANT4 tag $Name: geant4-09-00 $
|
||||
//
|
||||
// ----------------------------------------------------------------------
|
||||
// Class G4IStore
|
||||
|
||||
@@ -25,7 +25,7 @@
|
||||
//
|
||||
//
|
||||
// $Id: G4ImportanceAlgorithm.hh,v 1.7 2006/06/29 18:16:06 gunter Exp $
|
||||
// GEANT4 tag $Name: geant4-08-02 $
|
||||
// GEANT4 tag $Name: geant4-09-00 $
|
||||
//
|
||||
// ----------------------------------------------------------------------
|
||||
// Class G4ImportanceAlgorithm
|
||||
|
||||
@@ -1,80 +0,0 @@
|
||||
//
|
||||
// ********************************************************************
|
||||
// * License and Disclaimer *
|
||||
// * *
|
||||
// * The Geant4 software is copyright of the Copyright Holders of *
|
||||
// * the Geant4 Collaboration. It is provided under the terms and *
|
||||
// * conditions of the Geant4 Software License, included in the file *
|
||||
// * LICENSE and available at http://cern.ch/geant4/license . These *
|
||||
// * include a list of copyright holders. *
|
||||
// * *
|
||||
// * 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. Please see the license in the file LICENSE and URL above *
|
||||
// * for the full disclaimer and the limitation of liability. *
|
||||
// * *
|
||||
// * This code implementation is the result of the scientific and *
|
||||
// * technical work of the GEANT4 collaboration. *
|
||||
// * By using, copying, modifying or distributing the software (or *
|
||||
// * any work based on the software) you agree to acknowledge its *
|
||||
// * use in resulting scientific publications, and indicate your *
|
||||
// * acceptance of all terms of the Geant4 Software license. *
|
||||
// ********************************************************************
|
||||
//
|
||||
//
|
||||
// $Id: G4ImportanceSplitExaminer.hh,v 1.8 2006/06/29 18:16:08 gunter Exp $
|
||||
// GEANT4 tag $Name: geant4-08-02 $
|
||||
//
|
||||
// ----------------------------------------------------------------------
|
||||
// Class G4ImportanceSplitExaminer
|
||||
//
|
||||
// Class description:
|
||||
//
|
||||
// This class is used internally by importance sampling.
|
||||
// Implementation of a importance split examiner
|
||||
// (see G4VImportanceSplitExaminer).
|
||||
// This implementation is used for sampling in a "parallel"
|
||||
// geometry.
|
||||
|
||||
// Author: Michael Dressel (Michael.Dressel@cern.ch)
|
||||
// ----------------------------------------------------------------------
|
||||
#ifndef G4ImportanceSplitExaminer_hh
|
||||
#define G4ImportanceSplitExaminer_hh G4ImportanceSplitExaminer_hh
|
||||
|
||||
#include "G4VImportanceSplitExaminer.hh"
|
||||
|
||||
class G4VImportanceAlgorithm;
|
||||
class G4VParallelStepper;
|
||||
class G4VIStore;
|
||||
|
||||
class G4ImportanceSplitExaminer: public G4VImportanceSplitExaminer
|
||||
{
|
||||
|
||||
public: // with description
|
||||
|
||||
G4ImportanceSplitExaminer(const G4VImportanceAlgorithm &aIalg,
|
||||
const G4VParallelStepper &astepper,
|
||||
const G4VIStore &istore);
|
||||
|
||||
virtual ~G4ImportanceSplitExaminer();
|
||||
|
||||
virtual G4Nsplit_Weight Examine(G4double w) const;
|
||||
// Get G4Nsplit_Weight for a given mother track weight.
|
||||
|
||||
|
||||
private:
|
||||
|
||||
G4ImportanceSplitExaminer(const G4ImportanceSplitExaminer &);
|
||||
G4ImportanceSplitExaminer &operator=(const G4ImportanceSplitExaminer &);
|
||||
|
||||
private:
|
||||
|
||||
const G4VImportanceAlgorithm &fIalgorithm;
|
||||
const G4VParallelStepper &fPStepper;
|
||||
const G4VIStore &fIStore;
|
||||
};
|
||||
|
||||
|
||||
#endif
|
||||
@@ -25,7 +25,7 @@
|
||||
//
|
||||
//
|
||||
// $Id: G4Nsplit_Weight.hh,v 1.11 2006/06/29 18:16:21 gunter Exp $
|
||||
// GEANT4 tag $Name: geant4-08-02 $
|
||||
// GEANT4 tag $Name: geant4-09-00 $
|
||||
//
|
||||
// ----------------------------------------------------------------------
|
||||
// Class G4Nsplit_Weight
|
||||
|
||||
@@ -1,146 +0,0 @@
|
||||
//
|
||||
// ********************************************************************
|
||||
// * License and Disclaimer *
|
||||
// * *
|
||||
// * The Geant4 software is copyright of the Copyright Holders of *
|
||||
// * the Geant4 Collaboration. It is provided under the terms and *
|
||||
// * conditions of the Geant4 Software License, included in the file *
|
||||
// * LICENSE and available at http://cern.ch/geant4/license . These *
|
||||
// * include a list of copyright holders. *
|
||||
// * *
|
||||
// * 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. Please see the license in the file LICENSE and URL above *
|
||||
// * for the full disclaimer and the limitation of liability. *
|
||||
// * *
|
||||
// * This code implementation is the result of the scientific and *
|
||||
// * technical work of the GEANT4 collaboration. *
|
||||
// * By using, copying, modifying or distributing the software (or *
|
||||
// * any work based on the software) you agree to acknowledge its *
|
||||
// * use in resulting scientific publications, and indicate your *
|
||||
// * acceptance of all terms of the Geant4 Software license. *
|
||||
// ********************************************************************
|
||||
//
|
||||
//
|
||||
// $Id: G4ParallelNavigator.hh,v 1.10 2006/06/29 18:16:23 gunter Exp $
|
||||
// GEANT4 tag $Name: geant4-08-02 $
|
||||
//
|
||||
// ----------------------------------------------------------------------
|
||||
// Class G4ParallelNavigator
|
||||
//
|
||||
// Class description:
|
||||
//
|
||||
// Used internaly for importance sampling and scoring in a "parallel"
|
||||
// geometry.
|
||||
// It implements the interface G4VPGeoDriver (see G4VPGeoDriver.hh).
|
||||
// It uses a G4Navigator.
|
||||
|
||||
// Author: Michael Dressel (Michael.Dressel@cern.ch)
|
||||
// ----------------------------------------------------------------------
|
||||
#ifndef G4ParallelNavigator_hh
|
||||
#define G4ParallelNavigator_hh G4ParallelNavigator_hh
|
||||
|
||||
#include "G4VPGeoDriver.hh"
|
||||
#include "geomdefs.hh"
|
||||
|
||||
#include "G4TouchableHandle.hh"
|
||||
#include "G4Navigator.hh"
|
||||
|
||||
class G4GeometryCell ;
|
||||
class G4VPhysicalVolume;
|
||||
|
||||
class G4ParallelNavigator : public G4VPGeoDriver
|
||||
{
|
||||
|
||||
public: // with description
|
||||
|
||||
explicit G4ParallelNavigator(G4VPhysicalVolume &aWorldVolume);
|
||||
// initialise and create G4Navigator and a TouchableHistory
|
||||
|
||||
virtual ~G4ParallelNavigator();
|
||||
// delete Touchable and Navigator
|
||||
|
||||
virtual G4GeometryCell
|
||||
LocateOnBoundary(const G4ThreeVector &aPosition,
|
||||
const G4ThreeVector &aDirection);
|
||||
// The location of a track according to it's position
|
||||
// and direction in case the track crosses a boundary
|
||||
// of a "parallel" geometry.
|
||||
// Must be called in the PostDOIT of the ParallelTransportation.
|
||||
// (The track crosses the boundary if PostDOIT gets called.)
|
||||
|
||||
|
||||
virtual G4GeometryCell GetCurrentGeometryCell() const;
|
||||
// get the current G4GeometryCell of the "parallel" geometry
|
||||
|
||||
virtual G4double
|
||||
ComputeStepLengthInit(const G4ThreeVector &aPosition,
|
||||
const G4ThreeVector &aDirection);
|
||||
// compute step length for a starting track.
|
||||
|
||||
virtual G4double
|
||||
ComputeStepLengthCrossBoundary(const G4ThreeVector &aPosition,
|
||||
const G4ThreeVector &aDirection);
|
||||
// compute the step length after a track crossed a boundary
|
||||
// in a "parallel" geometry
|
||||
|
||||
virtual G4double
|
||||
ComputeStepLengthInVolume(const G4ThreeVector &aPosition,
|
||||
const G4ThreeVector &aDirection);
|
||||
// compute step length when track moves inside a volume.
|
||||
|
||||
void SetVerboseity(G4int v);
|
||||
|
||||
private:
|
||||
|
||||
G4ParallelNavigator(const G4ParallelNavigator &);
|
||||
G4ParallelNavigator &operator=(const G4ParallelNavigator &);
|
||||
|
||||
G4double ComputeStepLengthShifted(const G4String &m,
|
||||
const G4ThreeVector &aPosition,
|
||||
const G4ThreeVector &aDirection);
|
||||
|
||||
G4double GetStepLength(const G4String &methodname,
|
||||
const G4ThreeVector &aPosition,
|
||||
const G4ThreeVector &aDirection);
|
||||
|
||||
G4double GetStepLengthUseLocate(const G4String &methodname,
|
||||
const G4ThreeVector &aPosition,
|
||||
const G4ThreeVector &aDirection);
|
||||
|
||||
void Locate(const G4ThreeVector &aPosition,
|
||||
const G4ThreeVector &aDirection,
|
||||
G4bool historysearch,
|
||||
G4bool useDirection);
|
||||
|
||||
void Error(const G4String &m,
|
||||
const G4ThreeVector &pos,
|
||||
const G4ThreeVector &dir);
|
||||
|
||||
G4double Shift(G4double d);
|
||||
|
||||
private:
|
||||
|
||||
G4Navigator fNavigator;
|
||||
G4int fNlocated;
|
||||
G4int fMaxShiftedTrys;
|
||||
G4TouchableHandle fCurrentTouchableH;
|
||||
G4int fVerbose;
|
||||
};
|
||||
|
||||
#endif
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -1,89 +0,0 @@
|
||||
//
|
||||
// ********************************************************************
|
||||
// * License and Disclaimer *
|
||||
// * *
|
||||
// * The Geant4 software is copyright of the Copyright Holders of *
|
||||
// * the Geant4 Collaboration. It is provided under the terms and *
|
||||
// * conditions of the Geant4 Software License, included in the file *
|
||||
// * LICENSE and available at http://cern.ch/geant4/license . These *
|
||||
// * include a list of copyright holders. *
|
||||
// * *
|
||||
// * 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. Please see the license in the file LICENSE and URL above *
|
||||
// * for the full disclaimer and the limitation of liability. *
|
||||
// * *
|
||||
// * This code implementation is the result of the scientific and *
|
||||
// * technical work of the GEANT4 collaboration. *
|
||||
// * By using, copying, modifying or distributing the software (or *
|
||||
// * any work based on the software) you agree to acknowledge its *
|
||||
// * use in resulting scientific publications, and indicate your *
|
||||
// * acceptance of all terms of the Geant4 Software license. *
|
||||
// ********************************************************************
|
||||
//
|
||||
//
|
||||
// $Id: G4ParallelStepper.hh,v 1.7 2006/06/29 18:16:25 gunter Exp $
|
||||
// GEANT4 tag $Name: geant4-08-02 $
|
||||
//
|
||||
// ----------------------------------------------------------------------
|
||||
// Class G4ParallelStepper
|
||||
//
|
||||
// Class description:
|
||||
//
|
||||
// Used internally by importance sampling and scoring in a "parallel"
|
||||
// geometry. (See G4VParallelStepper.hh)
|
||||
|
||||
// Author: Michael Dressel (Michael.Dressel@cern.ch)
|
||||
// ----------------------------------------------------------------------
|
||||
#ifndef G4ParallelStepper_hh
|
||||
#define G4ParallelStepper_hh G4ParallelStepper_hh
|
||||
|
||||
#include "G4VParallelStepper.hh"
|
||||
#include "G4GeometryCellStep.hh"
|
||||
|
||||
class G4ParallelStepper : public G4VParallelStepper
|
||||
{
|
||||
|
||||
public: // with description
|
||||
|
||||
G4ParallelStepper();
|
||||
// imitilisation
|
||||
|
||||
G4ParallelStepper(const G4ParallelStepper &);
|
||||
// create new G4GeometryCellStep
|
||||
|
||||
virtual ~G4ParallelStepper();
|
||||
// delete G4Pstep if created
|
||||
|
||||
virtual G4GeometryCellStep GetPStep() const;
|
||||
// get the current G4GeometryCellStep
|
||||
|
||||
virtual void Init(const G4GeometryCell &agCell);
|
||||
// initialise the parallel stepper and the G4GeometryCellStep
|
||||
// pre and post G4GeometryCell of the step are set equal
|
||||
|
||||
virtual void Update(const G4GeometryCell &agCell);
|
||||
// to be called when crossing a boundary of the
|
||||
// "parallel" geometry to update the G4GeometryCellStep
|
||||
|
||||
virtual void UnSetCrossBoundary();
|
||||
// to be called to unset the fCrossBoundary member of the G4GeometryCellStep
|
||||
|
||||
|
||||
G4ParallelStepper &operator=(const G4ParallelStepper &);
|
||||
// create new G4GeometryCellStep
|
||||
|
||||
private:
|
||||
|
||||
void Error(const G4String &m);
|
||||
|
||||
private:
|
||||
|
||||
G4GeometryCellStep *fPStep;
|
||||
};
|
||||
|
||||
|
||||
|
||||
#endif
|
||||
@@ -1,82 +0,0 @@
|
||||
//
|
||||
// ********************************************************************
|
||||
// * License and Disclaimer *
|
||||
// * *
|
||||
// * The Geant4 software is copyright of the Copyright Holders of *
|
||||
// * the Geant4 Collaboration. It is provided under the terms and *
|
||||
// * conditions of the Geant4 Software License, included in the file *
|
||||
// * LICENSE and available at http://cern.ch/geant4/license . These *
|
||||
// * include a list of copyright holders. *
|
||||
// * *
|
||||
// * 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. Please see the license in the file LICENSE and URL above *
|
||||
// * for the full disclaimer and the limitation of liability. *
|
||||
// * *
|
||||
// * This code implementation is the result of the scientific and *
|
||||
// * technical work of the GEANT4 collaboration. *
|
||||
// * By using, copying, modifying or distributing the software (or *
|
||||
// * any work based on the software) you agree to acknowledge its *
|
||||
// * use in resulting scientific publications, and indicate your *
|
||||
// * acceptance of all terms of the Geant4 Software license. *
|
||||
// ********************************************************************
|
||||
//
|
||||
//
|
||||
// $Id: G4ParallelWorld.hh,v 1.7 2006/06/29 18:16:27 gunter Exp $
|
||||
// GEANT4 tag $Name: geant4-08-02 $
|
||||
//
|
||||
// ----------------------------------------------------------------------
|
||||
// Class G4ParallelWorld
|
||||
//
|
||||
// Class description:
|
||||
//
|
||||
// Used internally by importance samplin and scoring in a "parallel"
|
||||
// geometry.
|
||||
// The class relates the world volume (G4VPhysicalVolume),
|
||||
// G4VGeoDriver and G4VParallelStepper for one "parallel"
|
||||
// geometry.
|
||||
|
||||
// Author: Michael Dressel (Michael.Dressel@cern.ch)
|
||||
// ----------------------------------------------------------------------
|
||||
#ifndef G4ParallelWorld_hh
|
||||
#define G4ParallelWorld_hh G4ParallelWorld_hh
|
||||
|
||||
#include "globals.hh"
|
||||
|
||||
class G4VPhysicalVolume;
|
||||
class G4VParallelStepper;
|
||||
class G4VPGeoDriver;
|
||||
|
||||
class G4ParallelWorld
|
||||
{
|
||||
|
||||
public: // with description
|
||||
|
||||
explicit G4ParallelWorld(G4VPhysicalVolume &worldvolume);
|
||||
// initialisation and create G4ParallelStepper and a G4VPGeoDriver
|
||||
|
||||
~G4ParallelWorld();
|
||||
// delete G4ParallelStepper and a G4VPGeoDriver
|
||||
|
||||
|
||||
G4VParallelStepper &GetParallelStepper();
|
||||
// get the parallel stepper
|
||||
|
||||
G4VPGeoDriver &GetGeoDriver();
|
||||
// get the G4VPGeoDriver
|
||||
|
||||
private:
|
||||
|
||||
G4ParallelWorld(const G4ParallelWorld &rhs);
|
||||
// create G4ParallelStepper and a G4VPGeoDriver
|
||||
|
||||
G4ParallelWorld &operator=(const G4ParallelWorld &rhs);
|
||||
// create G4ParallelStepper and a G4VPGeoDriver
|
||||
|
||||
G4VParallelStepper *fPstepper;
|
||||
G4VPGeoDriver *fPdriver;
|
||||
};
|
||||
|
||||
#endif
|
||||
@@ -25,7 +25,7 @@
|
||||
//
|
||||
//
|
||||
// $Id: G4VCellScorer.hh,v 1.7 2006/06/29 18:16:29 gunter Exp $
|
||||
// GEANT4 tag $Name: geant4-08-02 $
|
||||
// GEANT4 tag $Name: geant4-09-00 $
|
||||
//
|
||||
// ----------------------------------------------------------------------
|
||||
// Class G4VCellScorer
|
||||
|
||||
@@ -25,7 +25,7 @@
|
||||
//
|
||||
//
|
||||
// $Id: G4VCellScorerStore.hh,v 1.7 2006/06/29 18:16:32 gunter Exp $
|
||||
// GEANT4 tag $Name: geant4-08-02 $
|
||||
// GEANT4 tag $Name: geant4-09-00 $
|
||||
//
|
||||
// ----------------------------------------------------------------------
|
||||
// Class G4VCellScorerStore
|
||||
|
||||
@@ -25,7 +25,7 @@
|
||||
//
|
||||
//
|
||||
// $Id: G4VGCellFinder.hh,v 1.2 2006/06/29 18:16:34 gunter Exp $
|
||||
// GEANT4 tag $Name: geant4-08-02 $
|
||||
// GEANT4 tag $Name: geant4-09-00 $
|
||||
//
|
||||
// ----------------------------------------------------------------------
|
||||
// Class G4VGCellFinder
|
||||
|
||||
@@ -25,7 +25,7 @@
|
||||
//
|
||||
//
|
||||
// $Id: G4VIStore.hh,v 1.9 2006/06/29 18:16:37 gunter Exp $
|
||||
// GEANT4 tag $Name: geant4-08-02 $
|
||||
// GEANT4 tag $Name: geant4-09-00 $
|
||||
//
|
||||
// ----------------------------------------------------------------------
|
||||
// Class G4VIStore
|
||||
|
||||
@@ -25,7 +25,7 @@
|
||||
//
|
||||
//
|
||||
// $Id: G4VImportanceAlgorithm.hh,v 1.8 2006/06/29 18:16:40 gunter Exp $
|
||||
// GEANT4 tag $Name: geant4-08-02 $
|
||||
// GEANT4 tag $Name: geant4-09-00 $
|
||||
//
|
||||
// ----------------------------------------------------------------------
|
||||
// Class G4VImportanceAlgorithm
|
||||
|
||||
@@ -25,7 +25,7 @@
|
||||
//
|
||||
//
|
||||
// $Id: G4VImportanceSplitExaminer.hh,v 1.5 2006/06/29 18:16:42 gunter Exp $
|
||||
// GEANT4 tag $Name: geant4-08-02 $
|
||||
// GEANT4 tag $Name: geant4-09-00 $
|
||||
//
|
||||
// ----------------------------------------------------------------------
|
||||
// Class G4VImportanceSplitExaminer
|
||||
|
||||
@@ -1,85 +0,0 @@
|
||||
//
|
||||
// ********************************************************************
|
||||
// * License and Disclaimer *
|
||||
// * *
|
||||
// * The Geant4 software is copyright of the Copyright Holders of *
|
||||
// * the Geant4 Collaboration. It is provided under the terms and *
|
||||
// * conditions of the Geant4 Software License, included in the file *
|
||||
// * LICENSE and available at http://cern.ch/geant4/license . These *
|
||||
// * include a list of copyright holders. *
|
||||
// * *
|
||||
// * 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. Please see the license in the file LICENSE and URL above *
|
||||
// * for the full disclaimer and the limitation of liability. *
|
||||
// * *
|
||||
// * This code implementation is the result of the scientific and *
|
||||
// * technical work of the GEANT4 collaboration. *
|
||||
// * By using, copying, modifying or distributing the software (or *
|
||||
// * any work based on the software) you agree to acknowledge its *
|
||||
// * use in resulting scientific publications, and indicate your *
|
||||
// * acceptance of all terms of the Geant4 Software license. *
|
||||
// ********************************************************************
|
||||
//
|
||||
//
|
||||
// $Id: G4VPGeoDriver.hh,v 1.7 2006/06/29 18:16:45 gunter Exp $
|
||||
// GEANT4 tag $Name: geant4-08-02 $
|
||||
//
|
||||
// ----------------------------------------------------------------------
|
||||
// Class G4VPGeoDriver
|
||||
//
|
||||
// Class description:
|
||||
//
|
||||
// Used internally by importance sampling and scoring in a "parallel"
|
||||
// geometry.
|
||||
// It defines an interface to "drive" or "move" a particle in a
|
||||
// "parallel" geometry.
|
||||
|
||||
// Author: Michael Dressel (Michael.Dressel@cern.ch)
|
||||
// ----------------------------------------------------------------------
|
||||
#ifndef G4VPGeoDriver_hh
|
||||
#define G4VPGeoDriver_hh G4VPGeoDriver_hh
|
||||
|
||||
#include "globals.hh"
|
||||
#include "G4ThreeVector.hh"
|
||||
#include "G4GeometryCell.hh"
|
||||
|
||||
class G4VPhysicalVolume;
|
||||
|
||||
class G4VPGeoDriver
|
||||
{
|
||||
|
||||
public: // with description
|
||||
|
||||
G4VPGeoDriver();
|
||||
virtual ~G4VPGeoDriver();
|
||||
|
||||
virtual G4GeometryCell LocateOnBoundary(const G4ThreeVector &aPosition,
|
||||
const G4ThreeVector &aDirection) = 0;
|
||||
// The location of a track according to it's position
|
||||
// and direction in case the track crosses a boundary
|
||||
// of a "parallel" geometry.
|
||||
// Must be called in the PostDOIT of the ParallelTransportation.
|
||||
// (The track crosses the boundary if PostDOIT gets called.)
|
||||
|
||||
virtual G4GeometryCell GetCurrentGeometryCell() const = 0;
|
||||
// get the current G4GeometryCell of the "parallel" geometry
|
||||
|
||||
virtual G4double ComputeStepLengthInit(const G4ThreeVector &aPosition,
|
||||
const G4ThreeVector &aDirection) = 0;
|
||||
// compute step length for a starting track.
|
||||
|
||||
virtual G4double ComputeStepLengthCrossBoundary(const G4ThreeVector &aPosition,
|
||||
const G4ThreeVector &aDirection) = 0;
|
||||
// compute the step length after a track crossed a boundary
|
||||
// in a "parallel" geometry
|
||||
|
||||
virtual G4double ComputeStepLengthInVolume(const G4ThreeVector &aPosition,
|
||||
const G4ThreeVector &aDirection) = 0;
|
||||
// compute step length when track moves inside a volume.
|
||||
|
||||
};
|
||||
|
||||
#endif
|
||||
@@ -1,73 +0,0 @@
|
||||
//
|
||||
// ********************************************************************
|
||||
// * License and Disclaimer *
|
||||
// * *
|
||||
// * The Geant4 software is copyright of the Copyright Holders of *
|
||||
// * the Geant4 Collaboration. It is provided under the terms and *
|
||||
// * conditions of the Geant4 Software License, included in the file *
|
||||
// * LICENSE and available at http://cern.ch/geant4/license . These *
|
||||
// * include a list of copyright holders. *
|
||||
// * *
|
||||
// * 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. Please see the license in the file LICENSE and URL above *
|
||||
// * for the full disclaimer and the limitation of liability. *
|
||||
// * *
|
||||
// * This code implementation is the result of the scientific and *
|
||||
// * technical work of the GEANT4 collaboration. *
|
||||
// * By using, copying, modifying or distributing the software (or *
|
||||
// * any work based on the software) you agree to acknowledge its *
|
||||
// * use in resulting scientific publications, and indicate your *
|
||||
// * acceptance of all terms of the Geant4 Software license. *
|
||||
// ********************************************************************
|
||||
//
|
||||
//
|
||||
// $Id: G4VParallelStepper.hh,v 1.8 2006/06/29 18:16:47 gunter Exp $
|
||||
// GEANT4 tag $Name: geant4-08-02 $
|
||||
//
|
||||
// ----------------------------------------------------------------------
|
||||
// Class G4VParallelStepper
|
||||
//
|
||||
// Class description:
|
||||
//
|
||||
// This interface is used internally by importance sampling and scoring
|
||||
// in a "parallel" geometry.
|
||||
// It abstracts a parallel stepper which servs to comunicate
|
||||
// information about a G4GeometryCellStep between the "transportation"
|
||||
// (done by G4ParallelTransport) of a track in a "parallel" geometry
|
||||
// and a scorer for that geometry.
|
||||
|
||||
// Author: Michael Dressel (Michael.Dressel@cern.ch)
|
||||
// ----------------------------------------------------------------------
|
||||
#ifndef G4VParallelStepper_hh
|
||||
#define G4VParallelStepper_hh G4VParallelStepper_hh
|
||||
|
||||
#include "G4GeometryCellStep.hh"
|
||||
|
||||
class G4VParallelStepper
|
||||
{
|
||||
|
||||
public: // with description
|
||||
|
||||
G4VParallelStepper();
|
||||
virtual ~G4VParallelStepper();
|
||||
|
||||
virtual G4GeometryCellStep GetPStep() const = 0;
|
||||
// get the current G4GeometryCellStep
|
||||
|
||||
virtual void Init(const G4GeometryCell &agCell) = 0;
|
||||
// initialise the parallel stepper and the G4GeometryCellStep
|
||||
// pre and post G4GeometryCell of the step are set equal
|
||||
|
||||
virtual void Update(const G4GeometryCell &agCell) = 0;
|
||||
// to be called when crossing a boundary of the
|
||||
// "parallel" geometry to update the G4GeometryCellStep
|
||||
|
||||
virtual void UnSetCrossBoundary() = 0;
|
||||
// to be called to unset the fCrossBoundary member of the G4GeometryCellStep
|
||||
|
||||
};
|
||||
|
||||
#endif
|
||||
@@ -1,64 +0,0 @@
|
||||
//
|
||||
// ********************************************************************
|
||||
// * License and Disclaimer *
|
||||
// * *
|
||||
// * The Geant4 software is copyright of the Copyright Holders of *
|
||||
// * the Geant4 Collaboration. It is provided under the terms and *
|
||||
// * conditions of the Geant4 Software License, included in the file *
|
||||
// * LICENSE and available at http://cern.ch/geant4/license . These *
|
||||
// * include a list of copyright holders. *
|
||||
// * *
|
||||
// * 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. Please see the license in the file LICENSE and URL above *
|
||||
// * for the full disclaimer and the limitation of liability. *
|
||||
// * *
|
||||
// * This code implementation is the result of the scientific and *
|
||||
// * technical work of the GEANT4 collaboration. *
|
||||
// * By using, copying, modifying or distributing the software (or *
|
||||
// * any work based on the software) you agree to acknowledge its *
|
||||
// * use in resulting scientific publications, and indicate your *
|
||||
// * acceptance of all terms of the Geant4 Software license. *
|
||||
// ********************************************************************
|
||||
//
|
||||
//
|
||||
// $Id: G4VScorer.hh,v 1.2 2006/06/29 18:16:50 gunter Exp $
|
||||
// GEANT4 tag $Name: geant4-08-02 $
|
||||
//
|
||||
// ----------------------------------------------------------------------
|
||||
// Class G4VScorer
|
||||
//
|
||||
// Class description:
|
||||
//
|
||||
// This interface is known by scoring. Implementation of
|
||||
// scorers should inherit from it.
|
||||
// A scorer is applicable to a particle type.
|
||||
// The scorer (inheriting from this interface) is informed
|
||||
// about every step of a particle of the applicable type.
|
||||
// The information consists of the G4Step and the G4GeometryCellStep
|
||||
// (see G4GeometryCellStep.hh).
|
||||
|
||||
// Author: Michael Dressel (Michael.Dressel@cern.ch)
|
||||
// ----------------------------------------------------------------------
|
||||
#ifndef G4VScorer_hh
|
||||
#define G4VScorer_hh G4VScorer_hh
|
||||
|
||||
class G4Step;
|
||||
class G4GeometryCellStep;
|
||||
|
||||
class G4VScorer
|
||||
{
|
||||
|
||||
public: // with description
|
||||
|
||||
G4VScorer();
|
||||
|
||||
virtual ~G4VScorer();
|
||||
|
||||
virtual void Score(const G4Step &step, const G4GeometryCellStep &gstep) = 0;
|
||||
// perform scoring for the G4Step and G4GeometryCellStep
|
||||
};
|
||||
|
||||
#endif
|
||||
@@ -25,7 +25,7 @@
|
||||
//
|
||||
//
|
||||
// $Id: G4VWeightWindowAlgorithm.hh,v 1.8 2006/06/29 18:16:52 gunter Exp $
|
||||
// GEANT4 tag $Name: geant4-08-02 $
|
||||
// GEANT4 tag $Name: geant4-09-00 $
|
||||
//
|
||||
// ----------------------------------------------------------------------
|
||||
// Class G4VWeightWindowAlgorithm
|
||||
|
||||
@@ -1,64 +0,0 @@
|
||||
//
|
||||
// ********************************************************************
|
||||
// * License and Disclaimer *
|
||||
// * *
|
||||
// * The Geant4 software is copyright of the Copyright Holders of *
|
||||
// * the Geant4 Collaboration. It is provided under the terms and *
|
||||
// * conditions of the Geant4 Software License, included in the file *
|
||||
// * LICENSE and available at http://cern.ch/geant4/license . These *
|
||||
// * include a list of copyright holders. *
|
||||
// * *
|
||||
// * 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. Please see the license in the file LICENSE and URL above *
|
||||
// * for the full disclaimer and the limitation of liability. *
|
||||
// * *
|
||||
// * This code implementation is the result of the scientific and *
|
||||
// * technical work of the GEANT4 collaboration. *
|
||||
// * By using, copying, modifying or distributing the software (or *
|
||||
// * any work based on the software) you agree to acknowledge its *
|
||||
// * use in resulting scientific publications, and indicate your *
|
||||
// * acceptance of all terms of the Geant4 Software license. *
|
||||
// ********************************************************************
|
||||
//
|
||||
//
|
||||
// $Id: G4VWeightWindowExaminer.hh,v 1.3 2006/06/29 18:16:54 gunter Exp $
|
||||
// GEANT4 tag $Name: geant4-08-02 $
|
||||
//
|
||||
// ----------------------------------------------------------------------
|
||||
// Class G4VWeightWindowExaminer
|
||||
//
|
||||
// Class description:
|
||||
//
|
||||
// Interface class to a weight window examiner. The examiner
|
||||
// has to return the number of tracks and their weight according to
|
||||
// the initial track weight and the energy of the track.
|
||||
|
||||
// Author: Michael Dressel (Michael.Dressel@cern.ch)
|
||||
// ----------------------------------------------------------------------
|
||||
#ifndef G4VWeightWindowExaminer_hh
|
||||
#define G4VWeightWindowExaminer_hh G4VWeightWindowExaminer_hh
|
||||
|
||||
#include "globals.hh"
|
||||
#include "G4Nsplit_Weight.hh"
|
||||
|
||||
class G4VWeightWindowExaminer
|
||||
{
|
||||
|
||||
public: // with description
|
||||
|
||||
// constructor and destructor
|
||||
G4VWeightWindowExaminer();
|
||||
virtual ~G4VWeightWindowExaminer();
|
||||
|
||||
|
||||
|
||||
virtual G4Nsplit_Weight Examine(G4double w, G4double energy) const = 0;
|
||||
// evaluate the number of tracks and their weight according
|
||||
// to the initial track weight and energy
|
||||
|
||||
};
|
||||
|
||||
#endif
|
||||
@@ -25,7 +25,7 @@
|
||||
//
|
||||
//
|
||||
// $Id: G4VWeightWindowStore.hh,v 1.3 2006/06/29 18:16:57 gunter Exp $
|
||||
// GEANT4 tag $Name: geant4-08-02 $
|
||||
// GEANT4 tag $Name: geant4-09-00 $
|
||||
//
|
||||
// ----------------------------------------------------------------------
|
||||
// Class G4VWeightWindowStore
|
||||
|
||||
@@ -25,7 +25,7 @@
|
||||
//
|
||||
//
|
||||
// $Id: G4WeightWindowAlgorithm.hh,v 1.7 2006/06/29 18:16:59 gunter Exp $
|
||||
// GEANT4 tag $Name: geant4-08-02 $
|
||||
// GEANT4 tag $Name: geant4-09-00 $
|
||||
//
|
||||
// ----------------------------------------------------------------------
|
||||
// Class G4WeightWindowAlgorithm
|
||||
|
||||
@@ -1,82 +0,0 @@
|
||||
//
|
||||
// ********************************************************************
|
||||
// * License and Disclaimer *
|
||||
// * *
|
||||
// * The Geant4 software is copyright of the Copyright Holders of *
|
||||
// * the Geant4 Collaboration. It is provided under the terms and *
|
||||
// * conditions of the Geant4 Software License, included in the file *
|
||||
// * LICENSE and available at http://cern.ch/geant4/license . These *
|
||||
// * include a list of copyright holders. *
|
||||
// * *
|
||||
// * 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. Please see the license in the file LICENSE and URL above *
|
||||
// * for the full disclaimer and the limitation of liability. *
|
||||
// * *
|
||||
// * This code implementation is the result of the scientific and *
|
||||
// * technical work of the GEANT4 collaboration. *
|
||||
// * By using, copying, modifying or distributing the software (or *
|
||||
// * any work based on the software) you agree to acknowledge its *
|
||||
// * use in resulting scientific publications, and indicate your *
|
||||
// * acceptance of all terms of the Geant4 Software license. *
|
||||
// ********************************************************************
|
||||
//
|
||||
//
|
||||
// $Id: G4WeightWindowExaminer.hh,v 1.3 2006/06/29 18:17:02 gunter Exp $
|
||||
// GEANT4 tag $Name: geant4-08-02 $
|
||||
//
|
||||
// ----------------------------------------------------------------------
|
||||
// Class G4WeightWindowExaminer
|
||||
//
|
||||
// Class description:
|
||||
//
|
||||
// Implementation of an weight window examiner according to
|
||||
// G4VWeightWindowExaminer interface.
|
||||
// See also description in G4VWeightWindowExaminer.hh
|
||||
|
||||
// Author: Michael Dressel (Michael.Dressel@cern.ch)
|
||||
// ----------------------------------------------------------------------
|
||||
#ifndef G4WeightWindowExaminer_hh
|
||||
#define G4WeightWindowExaminer_hh G4WeightWindowExaminer_hh
|
||||
|
||||
#include "G4VWeightWindowExaminer.hh"
|
||||
|
||||
class G4VWeightWindowAlgorithm;
|
||||
class G4VParallelStepper;
|
||||
class G4VWeightWindowStore;
|
||||
|
||||
class G4WeightWindowExaminer: public G4VWeightWindowExaminer
|
||||
{
|
||||
|
||||
public: // with description
|
||||
|
||||
G4WeightWindowExaminer(const G4VWeightWindowAlgorithm &aWWalg,
|
||||
const G4VParallelStepper &astepper,
|
||||
const G4VWeightWindowStore &wwstore);
|
||||
// constructor
|
||||
|
||||
virtual ~G4WeightWindowExaminer();
|
||||
// destructor
|
||||
|
||||
virtual G4Nsplit_Weight Examine(G4double w, G4double energy) const;
|
||||
// evaluate the number of tracks and their weight according
|
||||
// to the initial track weight and energy
|
||||
|
||||
|
||||
|
||||
private:
|
||||
|
||||
G4WeightWindowExaminer(const G4WeightWindowExaminer &);
|
||||
G4WeightWindowExaminer &operator=(const G4WeightWindowExaminer &);
|
||||
|
||||
private:
|
||||
|
||||
const G4VWeightWindowAlgorithm &fWWalgorithm;
|
||||
const G4VParallelStepper &fPStepper;
|
||||
const G4VWeightWindowStore &fWWStore;
|
||||
};
|
||||
|
||||
|
||||
#endif
|
||||
@@ -25,7 +25,7 @@
|
||||
//
|
||||
//
|
||||
// $Id: G4WeightWindowStore.hh,v 1.3 2006/06/29 18:17:05 gunter Exp $
|
||||
// GEANT4 tag $Name: geant4-08-02 $
|
||||
// GEANT4 tag $Name: geant4-09-00 $
|
||||
//
|
||||
// ----------------------------------------------------------------------
|
||||
// Class G4WeightWindowStore
|
||||
|
||||
@@ -25,7 +25,7 @@
|
||||
//
|
||||
//
|
||||
// $Id: G4GeometryCell.cc,v 1.6 2006/06/29 18:17:07 gunter Exp $
|
||||
// GEANT4 tag $Name: geant4-08-02 $
|
||||
// GEANT4 tag $Name: geant4-09-00 $
|
||||
//
|
||||
// ----------------------------------------------------------------------
|
||||
// GEANT 4 class source file
|
||||
|
||||
@@ -24,7 +24,7 @@
|
||||
// ********************************************************************
|
||||
//
|
||||
// $Id: G4GeometryCellComp.cc,v 1.4 2006/06/29 18:17:10 gunter Exp $
|
||||
// GEANT4 tag $Name: geant4-08-02 $
|
||||
// GEANT4 tag $Name: geant4-09-00 $
|
||||
//
|
||||
// ----------------------------------------------------------------------
|
||||
// GEANT 4 class source file
|
||||
|
||||
@@ -25,7 +25,7 @@
|
||||
//
|
||||
//
|
||||
// $Id: G4GeometryCellImportance.cc,v 1.5 2006/06/29 18:17:12 gunter Exp $
|
||||
// GEANT4 tag $Name: geant4-08-02 $
|
||||
// GEANT4 tag $Name: geant4-09-00 $
|
||||
//
|
||||
// ----------------------------------------------------------------------
|
||||
// GEANT 4 class source file
|
||||
|
||||
@@ -25,7 +25,7 @@
|
||||
//
|
||||
//
|
||||
// $Id: G4GeometryCellStep.cc,v 1.2 2006/06/29 18:17:14 gunter Exp $
|
||||
// GEANT4 tag $Name: geant4-08-02 $
|
||||
// GEANT4 tag $Name: geant4-09-00 $
|
||||
//
|
||||
// ----------------------------------------------------------------------
|
||||
// GEANT 4 class source file
|
||||
|
||||
@@ -25,7 +25,7 @@
|
||||
//
|
||||
//
|
||||
// $Id: G4GeometryCellStepStream.cc,v 1.3 2006/06/29 18:17:16 gunter Exp $
|
||||
// GEANT4 tag $Name: geant4-08-02 $
|
||||
// GEANT4 tag $Name: geant4-09-00 $
|
||||
//
|
||||
// ----------------------------------------------------------------------
|
||||
// GEANT 4 class source file
|
||||
|
||||
@@ -25,7 +25,7 @@
|
||||
//
|
||||
//
|
||||
// $Id: G4IStore.cc,v 1.14 2006/06/29 18:17:18 gunter Exp $
|
||||
// GEANT4 tag $Name: geant4-08-02 $
|
||||
// GEANT4 tag $Name: geant4-09-00 $
|
||||
//
|
||||
// ----------------------------------------------------------------------
|
||||
// GEANT 4 class source file
|
||||
|
||||
@@ -25,7 +25,7 @@
|
||||
//
|
||||
//
|
||||
// $Id: G4ImportanceAlgorithm.cc,v 1.14 2006/06/29 18:17:20 gunter Exp $
|
||||
// GEANT4 tag $Name: geant4-08-02 $
|
||||
// GEANT4 tag $Name: geant4-09-00 $
|
||||
//
|
||||
// ----------------------------------------------------------------------
|
||||
// GEANT 4 class source file
|
||||
|
||||
@@ -1,63 +0,0 @@
|
||||
//
|
||||
// ********************************************************************
|
||||
// * License and Disclaimer *
|
||||
// * *
|
||||
// * The Geant4 software is copyright of the Copyright Holders of *
|
||||
// * the Geant4 Collaboration. It is provided under the terms and *
|
||||
// * conditions of the Geant4 Software License, included in the file *
|
||||
// * LICENSE and available at http://cern.ch/geant4/license . These *
|
||||
// * include a list of copyright holders. *
|
||||
// * *
|
||||
// * 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. Please see the license in the file LICENSE and URL above *
|
||||
// * for the full disclaimer and the limitation of liability. *
|
||||
// * *
|
||||
// * This code implementation is the result of the scientific and *
|
||||
// * technical work of the GEANT4 collaboration. *
|
||||
// * By using, copying, modifying or distributing the software (or *
|
||||
// * any work based on the software) you agree to acknowledge its *
|
||||
// * use in resulting scientific publications, and indicate your *
|
||||
// * acceptance of all terms of the Geant4 Software license. *
|
||||
// ********************************************************************
|
||||
//
|
||||
//
|
||||
// $Id: G4ImportanceSplitExaminer.cc,v 1.8 2006/06/29 18:17:22 gunter Exp $
|
||||
// GEANT4 tag $Name: geant4-08-02 $
|
||||
//
|
||||
// ----------------------------------------------------------------------
|
||||
// GEANT 4 class source file
|
||||
//
|
||||
// G4ImportanceSplitExaminer.cc
|
||||
//
|
||||
// ----------------------------------------------------------------------
|
||||
|
||||
#include "G4ImportanceSplitExaminer.hh"
|
||||
#include "G4VParallelStepper.hh"
|
||||
#include "G4VImportanceAlgorithm.hh"
|
||||
#include "G4VIStore.hh"
|
||||
|
||||
G4ImportanceSplitExaminer::
|
||||
G4ImportanceSplitExaminer(const G4VImportanceAlgorithm &aIalg,
|
||||
const G4VParallelStepper &astepper,
|
||||
const G4VIStore &istore)
|
||||
: fIalgorithm(aIalg),
|
||||
fPStepper(astepper),
|
||||
fIStore(istore)
|
||||
{}
|
||||
|
||||
G4ImportanceSplitExaminer::~G4ImportanceSplitExaminer()
|
||||
{}
|
||||
|
||||
|
||||
G4Nsplit_Weight G4ImportanceSplitExaminer::Examine(G4double w) const
|
||||
{
|
||||
G4GeometryCellStep pstep = fPStepper.GetPStep();
|
||||
G4Nsplit_Weight nw = fIalgorithm.
|
||||
Calculate(fIStore.GetImportance(pstep.GetPreGeometryCell()),
|
||||
fIStore.GetImportance(pstep.GetPostGeometryCell()),
|
||||
w);
|
||||
return nw;
|
||||
}
|
||||
@@ -25,7 +25,7 @@
|
||||
//
|
||||
//
|
||||
// $Id: G4Nsplit_Weight.cc,v 1.10 2006/06/29 18:17:25 gunter Exp $
|
||||
// GEANT4 tag $Name: geant4-08-02 $
|
||||
// GEANT4 tag $Name: geant4-09-00 $
|
||||
//
|
||||
// ----------------------------------------------------------------------
|
||||
// GEANT 4 class source file
|
||||
|
||||
@@ -1,282 +0,0 @@
|
||||
//
|
||||
// ********************************************************************
|
||||
// * License and Disclaimer *
|
||||
// * *
|
||||
// * The Geant4 software is copyright of the Copyright Holders of *
|
||||
// * the Geant4 Collaboration. It is provided under the terms and *
|
||||
// * conditions of the Geant4 Software License, included in the file *
|
||||
// * LICENSE and available at http://cern.ch/geant4/license . These *
|
||||
// * include a list of copyright holders. *
|
||||
// * *
|
||||
// * 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. Please see the license in the file LICENSE and URL above *
|
||||
// * for the full disclaimer and the limitation of liability. *
|
||||
// * *
|
||||
// * This code implementation is the result of the scientific and *
|
||||
// * technical work of the GEANT4 collaboration. *
|
||||
// * By using, copying, modifying or distributing the software (or *
|
||||
// * any work based on the software) you agree to acknowledge its *
|
||||
// * use in resulting scientific publications, and indicate your *
|
||||
// * acceptance of all terms of the Geant4 Software license. *
|
||||
// ********************************************************************
|
||||
//
|
||||
//
|
||||
// $Id: G4ParallelNavigator.cc,v 1.20 2006/06/29 18:17:27 gunter Exp $
|
||||
// GEANT4 tag $Name: geant4-08-02 $
|
||||
//
|
||||
// ----------------------------------------------------------------------
|
||||
// GEANT 4 class source file
|
||||
//
|
||||
// G4ParallelNavigator.cc
|
||||
//
|
||||
// ----------------------------------------------------------------------
|
||||
|
||||
#include "G4ParallelNavigator.hh"
|
||||
|
||||
#include <sstream>
|
||||
#include "G4VParallelStepper.hh"
|
||||
|
||||
|
||||
G4ParallelNavigator::G4ParallelNavigator(G4VPhysicalVolume &aWorldVolume)
|
||||
:
|
||||
fNlocated(0),
|
||||
fMaxShiftedTrys(10),
|
||||
fCurrentTouchableH((fNavigator.SetWorldVolume(&aWorldVolume),
|
||||
fNavigator.CreateTouchableHistory())),
|
||||
fVerbose(0)
|
||||
{}
|
||||
|
||||
G4ParallelNavigator::~G4ParallelNavigator()
|
||||
{
|
||||
}
|
||||
|
||||
// public functions
|
||||
|
||||
G4GeometryCell G4ParallelNavigator::
|
||||
LocateOnBoundary(const G4ThreeVector &aPosition,
|
||||
const G4ThreeVector &aDirection)
|
||||
{/*
|
||||
fNavigator->SetGeometricallyLimitedStep();
|
||||
fNavigator->
|
||||
LocateGlobalPointAndUpdateTouchableHandle( aPosition,
|
||||
aDirection,
|
||||
fCurrentTouchableH,
|
||||
true);
|
||||
fNlocated++;
|
||||
*/
|
||||
if (fVerbose>=2) {
|
||||
G4cout.precision(12);
|
||||
G4cout << "LOB: " << aPosition << ", " << aDirection << G4endl;
|
||||
}
|
||||
fNavigator.SetGeometricallyLimitedStep();
|
||||
Locate(aPosition, aDirection, true, false);
|
||||
// since the track crosses a boundary ipdate stepper
|
||||
G4GeometryCell g= GetCurrentGeometryCell();
|
||||
return g;
|
||||
}
|
||||
|
||||
G4double G4ParallelNavigator::
|
||||
ComputeStepLengthInit(const G4ThreeVector &aPosition,
|
||||
const G4ThreeVector &aDirection)
|
||||
{
|
||||
// initialization
|
||||
fNlocated = 0;
|
||||
if (fVerbose>=2) {
|
||||
G4cout.precision(12);
|
||||
G4cout << "CSInit: " << aPosition << ", " << aDirection << G4endl;
|
||||
}
|
||||
Locate(aPosition, aDirection, false, false);
|
||||
return GetStepLength("ComputeStepLengthInit",
|
||||
aPosition, aDirection);
|
||||
}
|
||||
|
||||
G4double G4ParallelNavigator::
|
||||
ComputeStepLengthCrossBoundary(const G4ThreeVector &aPosition,
|
||||
const G4ThreeVector &aDirection)
|
||||
{
|
||||
if (fNlocated == 0 ) {
|
||||
Error("ComputeStepLengthCrossBoundary: no location done before call",
|
||||
aPosition, aDirection);
|
||||
}
|
||||
if (fVerbose>=2) {
|
||||
G4cout.precision(12);
|
||||
G4cout << "CSCB: " << aPosition << ", " << aDirection << G4endl;
|
||||
}
|
||||
// if the track is on boundary the LocateOnBoundary was called
|
||||
// in the DOIT of the ParalleTransport
|
||||
|
||||
// but location in volume overcomes a problem with spheres
|
||||
// fNavigator->LocateGlobalPointWithinVolume(aPosition);
|
||||
return GetStepLength("ComputeStepLengthCrossBoundary",
|
||||
aPosition, aDirection);
|
||||
}
|
||||
|
||||
|
||||
G4double G4ParallelNavigator::
|
||||
ComputeStepLengthInVolume(const G4ThreeVector &aPosition,
|
||||
const G4ThreeVector &aDirection)
|
||||
{
|
||||
if (fNlocated == 0 ) {
|
||||
Error("ComputeStepLengthInVolume, no location done before call",
|
||||
aPosition, aDirection);
|
||||
}
|
||||
if (fVerbose>=2) {
|
||||
G4cout.precision(12);
|
||||
G4cout << "CSinV: " << aPosition << ", " << aDirection << G4endl;
|
||||
}
|
||||
// if the track is not on the boundary and it's
|
||||
// not the first step, the location must be inside the
|
||||
// volume
|
||||
|
||||
fNavigator.LocateGlobalPointWithinVolume(aPosition);
|
||||
// Locate(aPosition, aDirection, true); // reduces stepLength<=0. calls
|
||||
return GetStepLengthUseLocate("ComputeStepLengthInVolume",
|
||||
aPosition, aDirection);
|
||||
}
|
||||
|
||||
// private functions
|
||||
|
||||
void G4ParallelNavigator::Locate(const G4ThreeVector &aPosition,
|
||||
const G4ThreeVector &aDirection,
|
||||
G4bool historysearch,
|
||||
G4bool useDirection)
|
||||
{
|
||||
if (fVerbose>=2) {
|
||||
G4cout.precision(12);
|
||||
G4cout << "Locate: " << aPosition << ", " << aDirection << G4endl;
|
||||
}
|
||||
fNavigator.LocateGlobalPointAndSetup( aPosition,
|
||||
&aDirection,
|
||||
historysearch,
|
||||
!useDirection);
|
||||
fCurrentTouchableH = fNavigator.CreateTouchableHistory();
|
||||
|
||||
fNlocated++;
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
G4double G4ParallelNavigator::
|
||||
GetStepLength(const G4String &methodname,
|
||||
const G4ThreeVector &aPosition,
|
||||
const G4ThreeVector &aDirection) {
|
||||
if (fVerbose>=2) {
|
||||
G4cout.precision(12);
|
||||
G4cout << "GetSL: " << aPosition << ", " << aDirection << G4endl;
|
||||
}
|
||||
G4double newSafety = 0.;
|
||||
G4double stepLength = fNavigator.ComputeStep( aPosition,
|
||||
aDirection,
|
||||
kInfinity,
|
||||
newSafety);
|
||||
// if stepLength = 0 try shifting
|
||||
if (stepLength<=2*kCarTolerance) {
|
||||
stepLength =
|
||||
ComputeStepLengthShifted(methodname,
|
||||
aPosition, aDirection);
|
||||
}
|
||||
return stepLength;
|
||||
}
|
||||
|
||||
G4double G4ParallelNavigator::
|
||||
GetStepLengthUseLocate(const G4String &methodname,
|
||||
const G4ThreeVector &aPosition,
|
||||
const G4ThreeVector &aDirection) {
|
||||
if (fVerbose>=2) {
|
||||
G4cout.precision(12);
|
||||
G4cout << "GetSLuseLocate: " << aPosition << ", " << aDirection << G4endl;
|
||||
}
|
||||
G4double newSafety = 0;
|
||||
G4double stepLength = fNavigator.ComputeStep( aPosition, aDirection,
|
||||
kInfinity, newSafety);
|
||||
// if stepLength = 0 try locate
|
||||
if (stepLength<=2*kCarTolerance) {
|
||||
Locate(aPosition, aDirection, true, true);
|
||||
stepLength = GetStepLength(methodname +
|
||||
"form GetStepLengthUseLocate",
|
||||
aPosition,
|
||||
aDirection);
|
||||
}
|
||||
return stepLength;
|
||||
}
|
||||
|
||||
|
||||
G4double
|
||||
G4ParallelNavigator::
|
||||
ComputeStepLengthShifted(const G4String &m,
|
||||
const G4ThreeVector &aPosition,
|
||||
const G4ThreeVector &aDirection)
|
||||
{
|
||||
G4ThreeVector shift_pos(aPosition);
|
||||
G4double stepLength = 0.;
|
||||
G4int trys = 0;
|
||||
while (stepLength<=2*kCarTolerance && trys < fMaxShiftedTrys) {
|
||||
shift_pos+=G4ThreeVector(Shift(aDirection.x()),
|
||||
Shift(aDirection.y()),
|
||||
Shift(aDirection.z()));
|
||||
if (fVerbose>=1 || trys >= fMaxShiftedTrys - 1) {
|
||||
G4cout << "G4ParallelNavigator::ComputeStepLengthShifted: invoked by: "
|
||||
<< m << G4endl;
|
||||
G4cout << " trys = "
|
||||
<< ++trys << G4endl;
|
||||
G4cout.precision(12);
|
||||
G4cout << " shifted position: " << shift_pos
|
||||
<< ", direction: " << aDirection << G4endl;
|
||||
}
|
||||
fNavigator.SetGeometricallyLimitedStep();
|
||||
Locate(shift_pos, aDirection, true, false); // to get into the correct volume
|
||||
G4double newSafety = 0;
|
||||
fNavigator.LocateGlobalPointWithinVolume(aPosition); // to place at the correct position
|
||||
stepLength = fNavigator.ComputeStep( aPosition, aDirection,
|
||||
kInfinity, newSafety);
|
||||
}
|
||||
if (stepLength<=kCarTolerance) {
|
||||
std::ostringstream os;
|
||||
os << "still got stepLength<=kCarTolerance: "
|
||||
<< shift_pos
|
||||
<< "\n"
|
||||
<< '\0';
|
||||
G4String m = os.str();
|
||||
Error(m, aPosition, aDirection);
|
||||
}
|
||||
return stepLength;
|
||||
}
|
||||
|
||||
G4GeometryCell G4ParallelNavigator::GetCurrentGeometryCell() const
|
||||
{
|
||||
return G4GeometryCell(*fCurrentTouchableH->GetVolume(),
|
||||
fCurrentTouchableH->GetReplicaNumber());
|
||||
}
|
||||
|
||||
|
||||
void G4ParallelNavigator::SetVerboseity(G4int v) {
|
||||
fVerbose = v;
|
||||
}
|
||||
|
||||
void G4ParallelNavigator::Error(const G4String &m,
|
||||
const G4ThreeVector &pos,
|
||||
const G4ThreeVector &dir)
|
||||
{
|
||||
G4cerr << "ERROR - G4ParallelNavigator: " << m << G4endl
|
||||
<< " aPosition: " << pos << G4endl
|
||||
<< " dir: " << dir << G4endl;
|
||||
G4Exception("G4ParallelNavigator::Error()",
|
||||
"FatalException", FatalException, m);
|
||||
}
|
||||
|
||||
G4double G4ParallelNavigator::Shift(G4double d)
|
||||
{
|
||||
G4double s(0);
|
||||
G4double ds(10 * kCarTolerance);
|
||||
if (d>0){
|
||||
s = ds;
|
||||
}
|
||||
else if (d<0) {
|
||||
s = -1 * ds;
|
||||
}
|
||||
return s;
|
||||
}
|
||||
@@ -1,116 +0,0 @@
|
||||
//
|
||||
// ********************************************************************
|
||||
// * License and Disclaimer *
|
||||
// * *
|
||||
// * The Geant4 software is copyright of the Copyright Holders of *
|
||||
// * the Geant4 Collaboration. It is provided under the terms and *
|
||||
// * conditions of the Geant4 Software License, included in the file *
|
||||
// * LICENSE and available at http://cern.ch/geant4/license . These *
|
||||
// * include a list of copyright holders. *
|
||||
// * *
|
||||
// * 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. Please see the license in the file LICENSE and URL above *
|
||||
// * for the full disclaimer and the limitation of liability. *
|
||||
// * *
|
||||
// * This code implementation is the result of the scientific and *
|
||||
// * technical work of the GEANT4 collaboration. *
|
||||
// * By using, copying, modifying or distributing the software (or *
|
||||
// * any work based on the software) you agree to acknowledge its *
|
||||
// * use in resulting scientific publications, and indicate your *
|
||||
// * acceptance of all terms of the Geant4 Software license. *
|
||||
// ********************************************************************
|
||||
//
|
||||
//
|
||||
// $Id: G4ParallelStepper.cc,v 1.12 2006/06/29 18:17:30 gunter Exp $
|
||||
// GEANT4 tag $Name: geant4-08-02 $
|
||||
//
|
||||
// ----------------------------------------------------------------------
|
||||
// GEANT 4 class source file
|
||||
//
|
||||
// G4ParallelStepper.cc
|
||||
//
|
||||
// ----------------------------------------------------------------------
|
||||
|
||||
#include "G4ParallelStepper.hh"
|
||||
#include "G4VPhysicalVolume.hh"
|
||||
|
||||
G4ParallelStepper::G4ParallelStepper() :
|
||||
G4VParallelStepper(),
|
||||
fPStep(0)
|
||||
{}
|
||||
|
||||
G4ParallelStepper::~G4ParallelStepper()
|
||||
{
|
||||
if (fPStep) {
|
||||
delete fPStep;
|
||||
}
|
||||
}
|
||||
|
||||
G4ParallelStepper::G4ParallelStepper(const G4ParallelStepper &rhs)
|
||||
: G4VParallelStepper(), fPStep(new G4GeometryCellStep(rhs.GetPStep()))
|
||||
{
|
||||
if (!fPStep) {
|
||||
Error("G4ParallelStepper:: new failed to create a G4GeometryCellStep!");
|
||||
}
|
||||
}
|
||||
|
||||
G4ParallelStepper &G4ParallelStepper::operator=(const G4ParallelStepper &rhs)
|
||||
{
|
||||
if (this != &rhs) {
|
||||
fPStep = new G4GeometryCellStep(rhs.GetPStep());
|
||||
if (!fPStep) {
|
||||
Error("operator=: new failed to create a G4GeometryCellStep!");
|
||||
}
|
||||
}
|
||||
return *this;
|
||||
}
|
||||
|
||||
G4GeometryCellStep G4ParallelStepper::GetPStep() const {
|
||||
G4GeometryCellStep p = *fPStep;
|
||||
return p;
|
||||
}
|
||||
|
||||
|
||||
void G4ParallelStepper::Init(const G4GeometryCell &agCell)
|
||||
{
|
||||
if (!fPStep) {
|
||||
fPStep = new G4GeometryCellStep(agCell, agCell);
|
||||
if (!fPStep) {
|
||||
Error("Init new failed to create a G4GeometryCellStep!");
|
||||
}
|
||||
|
||||
}
|
||||
else {
|
||||
fPStep->SetPreGeometryCell(agCell);
|
||||
fPStep->SetPostGeometryCell(agCell);
|
||||
fPStep->SetCrossBoundary(false);
|
||||
}
|
||||
}
|
||||
|
||||
void G4ParallelStepper::Update(const G4GeometryCell &agCell)
|
||||
{
|
||||
if (!fPStep) {
|
||||
Error("fPStep == 0, Init not called?");
|
||||
}
|
||||
fPStep->SetPreGeometryCell(fPStep->GetPostGeometryCell());
|
||||
fPStep->SetPostGeometryCell(agCell);
|
||||
fPStep->SetCrossBoundary(true);
|
||||
}
|
||||
|
||||
void G4ParallelStepper::UnSetCrossBoundary()
|
||||
{
|
||||
if (!fPStep) {
|
||||
Error("fPStep == 0, Init not called?");
|
||||
}
|
||||
fPStep->SetCrossBoundary(false);
|
||||
}
|
||||
|
||||
void G4ParallelStepper::Error(const G4String &m)
|
||||
{
|
||||
G4cout << "ERROR: in G4ParallelStepper: " << m << G4endl;
|
||||
G4Exception("G4ParallelStepper::Error()",
|
||||
"FatalException", FatalException, m);
|
||||
}
|
||||
@@ -1,70 +0,0 @@
|
||||
//
|
||||
// ********************************************************************
|
||||
// * License and Disclaimer *
|
||||
// * *
|
||||
// * The Geant4 software is copyright of the Copyright Holders of *
|
||||
// * the Geant4 Collaboration. It is provided under the terms and *
|
||||
// * conditions of the Geant4 Software License, included in the file *
|
||||
// * LICENSE and available at http://cern.ch/geant4/license . These *
|
||||
// * include a list of copyright holders. *
|
||||
// * *
|
||||
// * 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. Please see the license in the file LICENSE and URL above *
|
||||
// * for the full disclaimer and the limitation of liability. *
|
||||
// * *
|
||||
// * This code implementation is the result of the scientific and *
|
||||
// * technical work of the GEANT4 collaboration. *
|
||||
// * By using, copying, modifying or distributing the software (or *
|
||||
// * any work based on the software) you agree to acknowledge its *
|
||||
// * use in resulting scientific publications, and indicate your *
|
||||
// * acceptance of all terms of the Geant4 Software license. *
|
||||
// ********************************************************************
|
||||
//
|
||||
//
|
||||
// $Id: G4ParallelWorld.cc,v 1.8 2006/06/29 18:17:33 gunter Exp $
|
||||
// GEANT4 tag $Name: geant4-08-02 $
|
||||
//
|
||||
// ----------------------------------------------------------------------
|
||||
// GEANT 4 class source file
|
||||
//
|
||||
// G4ParallelWorld.cc
|
||||
//
|
||||
// ----------------------------------------------------------------------
|
||||
|
||||
#include "G4ParallelWorld.hh"
|
||||
#include "G4ParallelStepper.hh"
|
||||
#include "G4ParallelNavigator.hh"
|
||||
#include "G4VPhysicalVolume.hh"
|
||||
|
||||
G4ParallelWorld::G4ParallelWorld(G4VPhysicalVolume &worldvolume)
|
||||
: fPstepper(new G4ParallelStepper),
|
||||
fPdriver(new G4ParallelNavigator(worldvolume))
|
||||
{
|
||||
if (!fPstepper) {
|
||||
G4Exception("G4ParallelWorld::G4ParallelWorld()", "FatalException",
|
||||
FatalException, "NULL stepper. Failure in creation.");
|
||||
}
|
||||
if (!fPdriver) {
|
||||
G4Exception("G4ParallelWorld::G4ParallelWorld()", "FatalException",
|
||||
FatalException, "NULL navigator driver. Failure in creation.");
|
||||
}
|
||||
}
|
||||
|
||||
G4ParallelWorld::~G4ParallelWorld()
|
||||
{
|
||||
delete fPdriver;
|
||||
delete fPstepper;
|
||||
}
|
||||
|
||||
G4VParallelStepper &G4ParallelWorld::GetParallelStepper()
|
||||
{
|
||||
return *fPstepper;
|
||||
}
|
||||
|
||||
G4VPGeoDriver &G4ParallelWorld::GetGeoDriver()
|
||||
{
|
||||
return *fPdriver;
|
||||
}
|
||||
@@ -25,7 +25,7 @@
|
||||
//
|
||||
//
|
||||
// $Id: G4VCellScorer.cc,v 1.6 2006/06/29 18:17:35 gunter Exp $
|
||||
// GEANT4 tag $Name: geant4-08-02 $
|
||||
// GEANT4 tag $Name: geant4-09-00 $
|
||||
//
|
||||
// ----------------------------------------------------------------------
|
||||
// GEANT 4 class source file
|
||||
|
||||
@@ -25,7 +25,7 @@
|
||||
//
|
||||
//
|
||||
// $Id: G4VCellScorerStore.cc,v 1.4 2006/06/29 18:17:37 gunter Exp $
|
||||
// GEANT4 tag $Name: geant4-08-02 $
|
||||
// GEANT4 tag $Name: geant4-09-00 $
|
||||
//
|
||||
// ----------------------------------------------------------------------
|
||||
// GEANT 4 class source file
|
||||
|
||||
@@ -25,7 +25,7 @@
|
||||
//
|
||||
//
|
||||
// $Id: G4VGCellFinder.cc,v 1.2 2006/06/29 18:17:39 gunter Exp $
|
||||
// GEANT4 tag $Name: geant4-08-02 $
|
||||
// GEANT4 tag $Name: geant4-09-00 $
|
||||
//
|
||||
// ----------------------------------------------------------------------
|
||||
// GEANT 4 class source file
|
||||
|
||||
@@ -25,7 +25,7 @@
|
||||
//
|
||||
//
|
||||
// $Id: G4VIStore.cc,v 1.2 2006/06/29 18:17:41 gunter Exp $
|
||||
// GEANT4 tag $Name: geant4-08-02 $
|
||||
// GEANT4 tag $Name: geant4-09-00 $
|
||||
//
|
||||
// ----------------------------------------------------------------------
|
||||
// GEANT 4 class source file
|
||||
|
||||
@@ -25,7 +25,7 @@
|
||||
//
|
||||
//
|
||||
// $Id: G4VImportanceAlgorithm.cc,v 1.2 2006/06/29 18:17:43 gunter Exp $
|
||||
// GEANT4 tag $Name: geant4-08-02 $
|
||||
// GEANT4 tag $Name: geant4-09-00 $
|
||||
//
|
||||
// ----------------------------------------------------------------------
|
||||
// GEANT 4 class source file
|
||||
|
||||
@@ -25,7 +25,7 @@
|
||||
//
|
||||
//
|
||||
// $Id: G4VImportanceSplitExaminer.cc,v 1.2 2006/06/29 18:17:45 gunter Exp $
|
||||
// GEANT4 tag $Name: geant4-08-02 $
|
||||
// GEANT4 tag $Name: geant4-09-00 $
|
||||
//
|
||||
// ----------------------------------------------------------------------
|
||||
// GEANT 4 class source file
|
||||
|
||||
@@ -1,44 +0,0 @@
|
||||
//
|
||||
// ********************************************************************
|
||||
// * License and Disclaimer *
|
||||
// * *
|
||||
// * The Geant4 software is copyright of the Copyright Holders of *
|
||||
// * the Geant4 Collaboration. It is provided under the terms and *
|
||||
// * conditions of the Geant4 Software License, included in the file *
|
||||
// * LICENSE and available at http://cern.ch/geant4/license . These *
|
||||
// * include a list of copyright holders. *
|
||||
// * *
|
||||
// * 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. Please see the license in the file LICENSE and URL above *
|
||||
// * for the full disclaimer and the limitation of liability. *
|
||||
// * *
|
||||
// * This code implementation is the result of the scientific and *
|
||||
// * technical work of the GEANT4 collaboration. *
|
||||
// * By using, copying, modifying or distributing the software (or *
|
||||
// * any work based on the software) you agree to acknowledge its *
|
||||
// * use in resulting scientific publications, and indicate your *
|
||||
// * acceptance of all terms of the Geant4 Software license. *
|
||||
// ********************************************************************
|
||||
//
|
||||
//
|
||||
// $Id: G4VPGeoDriver.cc,v 1.2 2006/06/29 18:17:48 gunter Exp $
|
||||
// GEANT4 tag $Name: geant4-08-02 $
|
||||
//
|
||||
// ----------------------------------------------------------------------
|
||||
// GEANT 4 class source file
|
||||
//
|
||||
// G4VPGeoDriver.cc
|
||||
//
|
||||
// ----------------------------------------------------------------------
|
||||
|
||||
|
||||
#include "G4VPGeoDriver.hh"
|
||||
G4VPGeoDriver::G4VPGeoDriver()
|
||||
{}
|
||||
|
||||
G4VPGeoDriver::~G4VPGeoDriver()
|
||||
{}
|
||||
|
||||
@@ -1,43 +0,0 @@
|
||||
//
|
||||
// ********************************************************************
|
||||
// * License and Disclaimer *
|
||||
// * *
|
||||
// * The Geant4 software is copyright of the Copyright Holders of *
|
||||
// * the Geant4 Collaboration. It is provided under the terms and *
|
||||
// * conditions of the Geant4 Software License, included in the file *
|
||||
// * LICENSE and available at http://cern.ch/geant4/license . These *
|
||||
// * include a list of copyright holders. *
|
||||
// * *
|
||||
// * 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. Please see the license in the file LICENSE and URL above *
|
||||
// * for the full disclaimer and the limitation of liability. *
|
||||
// * *
|
||||
// * This code implementation is the result of the scientific and *
|
||||
// * technical work of the GEANT4 collaboration. *
|
||||
// * By using, copying, modifying or distributing the software (or *
|
||||
// * any work based on the software) you agree to acknowledge its *
|
||||
// * use in resulting scientific publications, and indicate your *
|
||||
// * acceptance of all terms of the Geant4 Software license. *
|
||||
// ********************************************************************
|
||||
//
|
||||
//
|
||||
// $Id: G4VParallelStepper.cc,v 1.2 2006/06/29 18:17:50 gunter Exp $
|
||||
// GEANT4 tag $Name: geant4-08-02 $
|
||||
//
|
||||
// ----------------------------------------------------------------------
|
||||
// GEANT 4 class source file
|
||||
//
|
||||
// G4VParallelStepper.cc
|
||||
//
|
||||
// ----------------------------------------------------------------------
|
||||
|
||||
#include "G4VParallelStepper.hh"
|
||||
|
||||
G4VParallelStepper::G4VParallelStepper()
|
||||
{}
|
||||
|
||||
G4VParallelStepper::~G4VParallelStepper()
|
||||
{}
|
||||
@@ -1,45 +0,0 @@
|
||||
//
|
||||
// ********************************************************************
|
||||
// * License and Disclaimer *
|
||||
// * *
|
||||
// * The Geant4 software is copyright of the Copyright Holders of *
|
||||
// * the Geant4 Collaboration. It is provided under the terms and *
|
||||
// * conditions of the Geant4 Software License, included in the file *
|
||||
// * LICENSE and available at http://cern.ch/geant4/license . These *
|
||||
// * include a list of copyright holders. *
|
||||
// * *
|
||||
// * 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. Please see the license in the file LICENSE and URL above *
|
||||
// * for the full disclaimer and the limitation of liability. *
|
||||
// * *
|
||||
// * This code implementation is the result of the scientific and *
|
||||
// * technical work of the GEANT4 collaboration. *
|
||||
// * By using, copying, modifying or distributing the software (or *
|
||||
// * any work based on the software) you agree to acknowledge its *
|
||||
// * use in resulting scientific publications, and indicate your *
|
||||
// * acceptance of all terms of the Geant4 Software license. *
|
||||
// ********************************************************************
|
||||
//
|
||||
//
|
||||
// $Id: G4VScorer.cc,v 1.2 2006/06/29 18:17:52 gunter Exp $
|
||||
// GEANT4 tag $Name: geant4-08-02 $
|
||||
//
|
||||
// ----------------------------------------------------------------------
|
||||
// GEANT 4 class source file
|
||||
//
|
||||
// G4VScorer.cc
|
||||
//
|
||||
// ----------------------------------------------------------------------
|
||||
|
||||
|
||||
#include "G4VScorer.hh"
|
||||
|
||||
G4VScorer::G4VScorer()
|
||||
{}
|
||||
|
||||
G4VScorer::~G4VScorer()
|
||||
{}
|
||||
|
||||
@@ -25,7 +25,7 @@
|
||||
//
|
||||
//
|
||||
// $Id: G4VWeightWindowAlgorithm.cc,v 1.2 2006/06/29 18:17:54 gunter Exp $
|
||||
// GEANT4 tag $Name: geant4-08-02 $
|
||||
// GEANT4 tag $Name: geant4-09-00 $
|
||||
//
|
||||
// ----------------------------------------------------------------------
|
||||
// GEANT 4 class source file
|
||||
|
||||
@@ -1,43 +0,0 @@
|
||||
//
|
||||
// ********************************************************************
|
||||
// * License and Disclaimer *
|
||||
// * *
|
||||
// * The Geant4 software is copyright of the Copyright Holders of *
|
||||
// * the Geant4 Collaboration. It is provided under the terms and *
|
||||
// * conditions of the Geant4 Software License, included in the file *
|
||||
// * LICENSE and available at http://cern.ch/geant4/license . These *
|
||||
// * include a list of copyright holders. *
|
||||
// * *
|
||||
// * 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. Please see the license in the file LICENSE and URL above *
|
||||
// * for the full disclaimer and the limitation of liability. *
|
||||
// * *
|
||||
// * This code implementation is the result of the scientific and *
|
||||
// * technical work of the GEANT4 collaboration. *
|
||||
// * By using, copying, modifying or distributing the software (or *
|
||||
// * any work based on the software) you agree to acknowledge its *
|
||||
// * use in resulting scientific publications, and indicate your *
|
||||
// * acceptance of all terms of the Geant4 Software license. *
|
||||
// ********************************************************************
|
||||
//
|
||||
//
|
||||
// $Id: G4VWeightWindowExaminer.cc,v 1.2 2006/06/29 18:17:56 gunter Exp $
|
||||
// GEANT4 tag $Name: geant4-08-02 $
|
||||
//
|
||||
// ----------------------------------------------------------------------
|
||||
// GEANT 4 class source file
|
||||
//
|
||||
// G4VWeightWindowExaminer.cc
|
||||
//
|
||||
// ----------------------------------------------------------------------
|
||||
|
||||
#include "G4VWeightWindowExaminer.hh"
|
||||
|
||||
G4VWeightWindowExaminer::G4VWeightWindowExaminer()
|
||||
{}
|
||||
|
||||
G4VWeightWindowExaminer::~G4VWeightWindowExaminer()
|
||||
{}
|
||||
@@ -25,7 +25,7 @@
|
||||
//
|
||||
//
|
||||
// $Id: G4VWeightWindowStore.cc,v 1.3 2006/06/29 18:17:59 gunter Exp $
|
||||
// GEANT4 tag $Name: geant4-08-02 $
|
||||
// GEANT4 tag $Name: geant4-09-00 $
|
||||
//
|
||||
// ----------------------------------------------------------------------
|
||||
// GEANT 4 class source file
|
||||
|
||||
@@ -25,7 +25,7 @@
|
||||
//
|
||||
//
|
||||
// $Id: G4WeightWindowAlgorithm.cc,v 1.8 2006/06/29 18:18:01 gunter Exp $
|
||||
// GEANT4 tag $Name: geant4-08-02 $
|
||||
// GEANT4 tag $Name: geant4-09-00 $
|
||||
//
|
||||
// ----------------------------------------------------------------------
|
||||
// GEANT 4 class source file
|
||||
|
||||
@@ -1,66 +0,0 @@
|
||||
//
|
||||
// ********************************************************************
|
||||
// * License and Disclaimer *
|
||||
// * *
|
||||
// * The Geant4 software is copyright of the Copyright Holders of *
|
||||
// * the Geant4 Collaboration. It is provided under the terms and *
|
||||
// * conditions of the Geant4 Software License, included in the file *
|
||||
// * LICENSE and available at http://cern.ch/geant4/license . These *
|
||||
// * include a list of copyright holders. *
|
||||
// * *
|
||||
// * 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. Please see the license in the file LICENSE and URL above *
|
||||
// * for the full disclaimer and the limitation of liability. *
|
||||
// * *
|
||||
// * This code implementation is the result of the scientific and *
|
||||
// * technical work of the GEANT4 collaboration. *
|
||||
// * By using, copying, modifying or distributing the software (or *
|
||||
// * any work based on the software) you agree to acknowledge its *
|
||||
// * use in resulting scientific publications, and indicate your *
|
||||
// * acceptance of all terms of the Geant4 Software license. *
|
||||
// ********************************************************************
|
||||
//
|
||||
//
|
||||
// $Id: G4WeightWindowExaminer.cc,v 1.2 2006/06/29 18:18:03 gunter Exp $
|
||||
// GEANT4 tag $Name: geant4-08-02 $
|
||||
//
|
||||
// ----------------------------------------------------------------------
|
||||
// GEANT 4 class source file
|
||||
//
|
||||
// G4WeightWindowExaminer.cc
|
||||
//
|
||||
// ----------------------------------------------------------------------
|
||||
|
||||
#include "G4WeightWindowExaminer.hh"
|
||||
#include "G4VParallelStepper.hh"
|
||||
#include "G4VWeightWindowAlgorithm.hh"
|
||||
#include "G4GeometryCellStep.hh"
|
||||
#include "G4VWeightWindowStore.hh"
|
||||
|
||||
G4WeightWindowExaminer::
|
||||
G4WeightWindowExaminer(const G4VWeightWindowAlgorithm &aWWalg,
|
||||
const G4VParallelStepper &astepper,
|
||||
const G4VWeightWindowStore &wwstore)
|
||||
: fWWalgorithm(aWWalg),
|
||||
fPStepper(astepper),
|
||||
fWWStore(wwstore)
|
||||
{}
|
||||
|
||||
G4WeightWindowExaminer::~G4WeightWindowExaminer()
|
||||
{}
|
||||
|
||||
|
||||
G4Nsplit_Weight G4WeightWindowExaminer::Examine(G4double w,
|
||||
G4double energy) const
|
||||
{
|
||||
G4GeometryCellStep pstep = fPStepper.GetPStep();
|
||||
|
||||
G4Nsplit_Weight nw = fWWalgorithm.
|
||||
Calculate(w, fWWStore.GetLowerWeitgh(pstep.GetPostGeometryCell(),
|
||||
energy));
|
||||
|
||||
return nw;
|
||||
}
|
||||
@@ -25,7 +25,7 @@
|
||||
//
|
||||
//
|
||||
// $Id: G4WeightWindowStore.cc,v 1.5 2006/06/29 18:18:05 gunter Exp $
|
||||
// GEANT4 tag $Name: geant4-08-02 $
|
||||
// GEANT4 tag $Name: geant4-09-00 $
|
||||
//
|
||||
// ----------------------------------------------------------------------
|
||||
// GEANT 4 class source file
|
||||
|
||||
Reference in New Issue
Block a user