Import Geant4 9.0.0 source tree
This commit is contained in:
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user