Import Geant4 9.1.0 source tree

This commit is contained in:
Gabriele Cosmo
2016-06-09 15:37:50 +02:00
parent a8e9364cea
commit 96c8bcd0af
6923 changed files with 198390 additions and 41849 deletions
@@ -0,0 +1,67 @@
//
// ********************************************************************
// * 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: G4PSCellCharge.hh,v 1.1 2007/07/11 01:29:28 asaim Exp $
// GEANT4 tag $Name: geant4-09-01 $
//
#ifndef G4PSCellCharge_h
#define G4PSCellCharge_h 1
#include "G4VPrimitiveScorer.hh"
#include "G4THitsMap.hh"
///////////////////////////////////////////////////////////////////////////////
// (Description)
// This is a primitive scorer class for scoring cell charge.
// The Cell Charge is defined by a sum of deposited charge in the cell.
//
// Created: 2007-08-20 Tsukasa ASO
//
///////////////////////////////////////////////////////////////////////////////
class G4PSCellCharge : public G4VPrimitiveScorer
{
public: // with description
G4PSCellCharge(G4String name, G4int depth=0);
virtual ~G4PSCellCharge();
protected: // with description
virtual G4bool ProcessHits(G4Step*,G4TouchableHistory*);
public:
virtual void Initialize(G4HCofThisEvent*);
virtual void EndOfEvent(G4HCofThisEvent*);
virtual void clear();
virtual void DrawAll();
virtual void PrintAll();
private:
G4int HCID;
G4THitsMap<G4double>* EvtMap;
};
#endif
@@ -0,0 +1,62 @@
//
// ********************************************************************
// * 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: G4PSCellCharge3D.hh,v 1.2 2007/08/28 08:01:55 taso Exp $
// GEANT4 tag $Name: geant4-09-01 $
//
#ifndef G4PSCellCharge3D_h
#define G4PSCellCharge3D_h 1
#include "G4PSCellCharge.hh"
///////////////////////////////////////////////////////////////////////////////
// (Description)
// This is a primitive scorer class for scoring cell charge.
// The Cell Charge is defined by a sum of deposited charge in the cell.
//
// Created: 2007-08-20 Tsukasa ASO
//
///////////////////////////////////////////////////////////////////////////////
class G4PSCellCharge3D : public G4PSCellCharge
{
public: // with description
G4PSCellCharge3D(G4String name,
G4int ni=1,G4int nj=1, G4int nk=1,
G4int depi=2, G4int depj=1, G4int depk=0);
virtual ~G4PSCellCharge3D();
protected: // with description
virtual G4int GetIndex(G4Step*);
private:
G4int fDepthi, fDepthj, fDepthk;
};
#endif
@@ -0,0 +1,75 @@
//
// ********************************************************************
// * 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: G4PSCellFlux.hh,v 1.1 2007/07/11 01:29:28 asaim Exp $
// GEANT4 tag $Name: geant4-09-01 $
//
#ifndef G4PSCellFlux_h
#define G4PSCellFlux_h 1
#include "G4VPrimitiveScorer.hh"
#include "G4THitsMap.hh"
///////////////////////////////////////////////////////////////////////////////
// (Description)
// This is a primitive scorer class for scoring cell flux.
// The Cell Flux is defined by a sum of track length divided
// by the geometry volume, where all of the tracks in the geometry
// are taken into account. e.g. the unit of Cell Flux is mm/mm3.
//
//
// If you want to score only tracks passing through the geometry volume,
// please use G4PSPassageCellFlux.
//
//
// Created: 2005-11-14 Tsukasa ASO, Akinori Kimura.
//
///////////////////////////////////////////////////////////////////////////////
class G4PSCellFlux : public G4VPrimitiveScorer
{
public: // with description
G4PSCellFlux(G4String name, G4int depth=0);
virtual ~G4PSCellFlux();
protected: // with description
virtual G4bool ProcessHits(G4Step*,G4TouchableHistory*);
public:
virtual void Initialize(G4HCofThisEvent*);
virtual void EndOfEvent(G4HCofThisEvent*);
virtual void clear();
virtual void DrawAll();
virtual void PrintAll();
private:
G4int HCID;
G4THitsMap<G4double>* EvtMap;
};
#endif
@@ -0,0 +1,67 @@
//
// ********************************************************************
// * 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: G4PSCellFlux3D.hh,v 1.2 2007/08/28 08:01:55 taso Exp $
// GEANT4 tag $Name: geant4-09-01 $
//
#ifndef G4PSCellFlux3D_h
#define G4PSCellFlux3D_h 1
#include "G4PSCellFlux.hh"
///////////////////////////////////////////////////////////////////////////////
// (Description)
// This is a primitive scorer class for 3D scoring cell flux.
// The Cell Flux is defined by a sum of track length divided
// by the geometry volume, where all of the tracks in the geometry
// are taken into account. e.g. the unit of Cell Flux is mm/mm3.
//
//
// If you want to score only tracks passing through the geometry volume,
// please use G4PSPassageCellFlux3D.
//
//
// Created: 2007-08-14 Tsukasa ASO
//
///////////////////////////////////////////////////////////////////////////////
class G4PSCellFlux3D : public G4PSCellFlux
{
public: // with description
G4PSCellFlux3D(G4String name,
G4int ni=1,G4int nj=1, G4int nk=1,
G4int depi=2, G4int depj=1, G4int depk=0);
virtual ~G4PSCellFlux3D();
protected: // with description
virtual G4int GetIndex(G4Step*);
private:
G4int fDepthi, fDepthj, fDepthk;
};
#endif
@@ -0,0 +1,92 @@
//
// ********************************************************************
// * 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: G4PSCylinderSurfaceCurrent.hh,v 1.1 2007/08/14 21:23:51 taso Exp $
// GEANT4 tag $Name: geant4-09-01 $
//
#ifndef G4PSCylinderSurfaceCurrent_h
#define G4PSCylinderSurfaceCurrent_h 1
#include "G4VPrimitiveScorer.hh"
#include "G4THitsMap.hh"
#include "G4Tubs.hh"
#include "G4PSDirectionFlag.hh"
////////////////////////////////////////////////////////////////////////////////
// (Description)
// This is a primitive scorer class for scoring Surface Current.
// Current version assumes only for G4Tubs shape, and the surface
// is defined at the inner plane of the tubs.
// The current is given in the unit of area.
// e.g. (Number of tracks)/mm2.
//
// Surface is defined at the inner surface of the tube.
// Direction R R+dR
// 0 IN || OUT ->|<- | fCurrent_InOut
// 1 IN ->| | fCurrent_In
// 2 OUT |<- | fCurrent_Out
//
//
// Created: 2007-03-21 Tsukasa ASO
//
///////////////////////////////////////////////////////////////////////////////
class G4PSCylinderSurfaceCurrent : public G4VPrimitiveScorer
{
public: // with description
G4PSCylinderSurfaceCurrent(G4String name ,G4int direction, G4int depth=0);
virtual ~G4PSCylinderSurfaceCurrent();
inline void Weighted(G4bool flg=true) { weighted = flg; }
// Multiply track weight
inline void DivideByArea(G4bool flg=true) { divideByArea = flg; }
// Divided by Area.
protected: // with description
virtual G4bool ProcessHits(G4Step*,G4TouchableHistory*);
G4int IsSelectedSurface(G4Step*,G4Tubs*);
public:
virtual void Initialize(G4HCofThisEvent*);
virtual void EndOfEvent(G4HCofThisEvent*);
virtual void clear();
virtual void DrawAll();
virtual void PrintAll();
private:
G4int HCID;
G4int fDirection;
G4THitsMap<G4double>* EvtMap;
G4bool weighted;
G4bool divideByArea;
};
#endif
@@ -0,0 +1,69 @@
//
// ********************************************************************
// * 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: G4PSCylinderSurfaceCurrent3D.hh,v 1.2 2007/08/28 08:01:55 taso Exp $
// GEANT4 tag $Name: geant4-09-01 $
//
#ifndef G4PSCylinderSurfaceCurrent3D_h
#define G4PSCylinderSurfaceCurrent3D_h 1
#include "G4PSCylinderSurfaceCurrent.hh"
///////////////////////////////////////////////////////////////////////////////
// (Description)
// This is a primitive scorer class for scoring Surface Current.
// Current version assumes only for G4Tubs shape, and the surface
// is defined at the Rmin plane of the Tubs.
// The current is given in the unit of area.
// e.g. (Number of tracks)/mm2.
//
// Surface is defined at the -Z surface.
// Direction Rmin Rmax
// 0 IN || OUT ->|<- | fCurrent_InOut
// 1 IN ->| | fCurrent_In
// 2 OUT |<- | fCurrent_Out
//
//
// Created: 2008-08-14 Tsukasa ASO
///////////////////////////////////////////////////////////////////////////////
class G4PSCylinderSurfaceCurrent3D : public G4PSCylinderSurfaceCurrent
{
public: // with description
G4PSCylinderSurfaceCurrent3D(G4String name, G4int direction,
G4int ni=1,G4int nj=1, G4int nk=1,
G4int depi=2, G4int depj=1, G4int depk=0);
virtual ~G4PSCylinderSurfaceCurrent3D();
protected: // with description
virtual G4int GetIndex(G4Step*);
private:
G4int fDepthi, fDepthj, fDepthk;
};
#endif
@@ -0,0 +1,83 @@
//
// ********************************************************************
// * 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: G4PSCylinderSurfaceFlux.hh,v 1.1 2007/08/14 21:23:51 taso Exp $
// GEANT4 tag $Name: geant4-09-01 $
//
#ifndef G4PSCylinderSurfaceFlux_h
#define G4PSCylinderSurfaceFlux_h 1
#include "G4VPrimitiveScorer.hh"
#include "G4THitsMap.hh"
#include "G4Tubs.hh"
#include "G4PSDirectionFlag.hh"
////////////////////////////////////////////////////////////////////////////////
// (Description)
// This is a primitive scorer class for scoring Surface Flux.
// Current version assumes only for G4Tubs shape, and the surface
// is defined at the inner plane of the tube.
// The surface flux is given in the unit of area.
// e.g. sum of 1/cos(T)/mm2, where T is a incident angle of the
// track on the surface.
//
//
// Surface is defined at the inner surface of the tubs.
// Direction R R+dR
// 0 IN || OUT ->|<- | fFlux_InOut
// 1 IN ->| | fFlux_In
// 2 OUT |<- | fFlux_Out
//
// Created: 2007-03-29 Tsukasa ASO
//
///////////////////////////////////////////////////////////////////////////////
class G4PSCylinderSurfaceFlux : public G4VPrimitiveScorer
{
public: // with description
G4PSCylinderSurfaceFlux(G4String name,G4int direction, G4int depth=0);
virtual ~G4PSCylinderSurfaceFlux();
protected: // with description
virtual G4bool ProcessHits(G4Step*,G4TouchableHistory*);
G4int IsSelectedSurface(G4Step*,G4Tubs*);
public:
virtual void Initialize(G4HCofThisEvent*);
virtual void EndOfEvent(G4HCofThisEvent*);
virtual void clear();
virtual void DrawAll();
virtual void PrintAll();
private:
G4int HCID;
G4int fDirection;
G4THitsMap<G4double>* EvtMap;
};
#endif
@@ -0,0 +1,69 @@
//
// ********************************************************************
// * 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: G4PSCylinderSurfaceFlux3D.hh,v 1.2 2007/08/28 08:01:55 taso Exp $
// GEANT4 tag $Name: geant4-09-01 $
//
#ifndef G4PSCylinderSurfaceFlux3D_h
#define G4PSCylinderSurfaceFlux3D_h 1
#include "G4PSCylinderSurfaceFlux.hh"
///////////////////////////////////////////////////////////////////////////////
// (Description)
// This is a primitive scorer class for scoring Surface Flux.
// This Flux version assumes only for G4Tubs shape, and the surface
// is defined at the Rmin plane of the box.
// The current is given in the unit of area.
// e.g. (Number of tracks)/mm2.
//
// Surface is defined at the -Z surface.
// Direction Rmin Rmax
// 0 IN || OUT ->|<- | fFlux_InOut
// 1 IN ->| | fFlux_In
// 2 OUT |<- | fFlux_Out
//
//
// Created: 2008-08-14 Tsukasa ASO
///////////////////////////////////////////////////////////////////////////////
class G4PSCylinderSurfaceFlux3D : public G4PSCylinderSurfaceFlux
{
public: // with description
G4PSCylinderSurfaceFlux3D(G4String name, G4int direction,
G4int ni=1,G4int nj=1, G4int nk=1,
G4int di=2, G4int dj=1, G4int dk=0);
virtual ~G4PSCylinderSurfaceFlux3D();
protected: // with description
virtual G4int GetIndex(G4Step*);
private:
G4int fDepthi, fDepthj, fDepthk;
};
#endif
@@ -0,0 +1,70 @@
//
// ********************************************************************
// * 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: G4PSDirectionFlag.hh,v 1.1 2007/07/11 01:29:28 asaim Exp $
// GEANT4 tag $Name: geant4-09-01 $
//
//
//---------------------------------------------------------------
//
// G4PSDirectionFlag.hh
//
// Class Description:
// This is an enumerator to define the direction of
// the particle's Surface Current or Flux for PrimitiveScorer
//
//
//---------------------------------------------------------------
#ifndef G4PSDirectionFlag_h
#define G4PSDirectionFlag_h 1
//////////////////
enum G4PSFluxFlag
//////////////////
{
fFlux_InOut,
// For both direction In / Out.
fFlux_In,
// IN : Direction which comes into the geometry
fFlux_Out
};
/////////////////////
enum G4PSCurrentFlag
/////////////////////
{
fCurrent_InOut,
// For both direction In / Out.
fCurrent_In,
// IN : Direction which comes into the geometry
fCurrent_Out
// OUT : Direction which goes out fromthe geometry
};
#endif
@@ -0,0 +1,65 @@
//
// ********************************************************************
// * 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: G4PSDoseDeposit.hh,v 1.1 2007/07/11 01:29:28 asaim Exp $
// GEANT4 tag $Name: geant4-09-01 $
//
#ifndef G4PSDoseDeposit_h
#define G4PSDoseDeposit_h 1
#include "G4VPrimitiveScorer.hh"
#include "G4THitsMap.hh"
////////////////////////////////////////////////////////////////////////////////
// (Description)
// Primitive scorer class for scoring dose deposit in the geometry volume.
//
// Created: 2005-11-14 Tsukasa ASO, Akinori Kimura.
//
///////////////////////////////////////////////////////////////////////////////
class G4PSDoseDeposit : public G4VPrimitiveScorer
{
public: // with description
G4PSDoseDeposit(G4String name, G4int depth=0);
virtual ~G4PSDoseDeposit();
protected: // with description
virtual G4bool ProcessHits(G4Step*,G4TouchableHistory*);
public:
virtual void Initialize(G4HCofThisEvent*);
virtual void EndOfEvent(G4HCofThisEvent*);
virtual void clear();
virtual void DrawAll();
virtual void PrintAll();
private:
G4int HCID;
G4THitsMap<G4double>* EvtMap;
};
#endif
@@ -0,0 +1,60 @@
//
// ********************************************************************
// * 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: G4PSDoseDeposit3D.hh,v 1.2 2007/08/28 10:11:29 taso Exp $
// GEANT4 tag $Name: geant4-09-01 $
//
#ifndef G4PSDoseDeposit3D_h
#define G4PSDoseDeposit3D_h 1
#include "G4PSDoseDeposit.hh"
////////////////////////////////////////////////////////////////////////////////
// (Description)
// Primitive scorer class for scoring dose deposit in the geometry volume.
//
// Created: 2008-08-14 Tsukasa ASO
//
///////////////////////////////////////////////////////////////////////////////
class G4PSDoseDeposit3D : public G4PSDoseDeposit
{
public: // with description
G4PSDoseDeposit3D(G4String name,
G4int ni=1,G4int nj=1, G4int nk=1,
G4int depi=2, G4int depj=1, G4int depk=0);
virtual ~G4PSDoseDeposit3D();
protected: // with description
virtual G4int GetIndex(G4Step*);
private:
G4int fDepthi, fDepthj, fDepthk;
};
#endif
@@ -0,0 +1,66 @@
//
// ********************************************************************
// * 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: G4PSEnergyDeposit.hh,v 1.1 2007/07/11 01:29:28 asaim Exp $
// GEANT4 tag $Name: geant4-09-01 $
//
#ifndef G4PSEnergyDeposit_h
#define G4PSEnergyDeposit_h 1
#include "G4VPrimitiveScorer.hh"
#include "G4THitsMap.hh"
////////////////////////////////////////////////////////////////////////////////
// Description:
// This is a primitive scorer class for scoring energy deposit.
//
// Created: 2005-11-14 Tsukasa ASO, Akinori Kimura
//
///////////////////////////////////////////////////////////////////////////////
class G4PSEnergyDeposit : public G4VPrimitiveScorer
{
public: // with description
G4PSEnergyDeposit(G4String name, G4int depth=0);
virtual ~G4PSEnergyDeposit();
protected: // with description
virtual G4bool ProcessHits(G4Step*,G4TouchableHistory*);
public:
virtual void Initialize(G4HCofThisEvent*);
virtual void EndOfEvent(G4HCofThisEvent*);
virtual void clear();
virtual void DrawAll();
virtual void PrintAll();
private:
G4int HCID;
G4THitsMap<G4double>* EvtMap;
};
#endif
@@ -0,0 +1,58 @@
//
// ********************************************************************
// * 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: G4PSEnergyDeposit3D.hh,v 1.2 2007/08/28 08:01:55 taso Exp $
// GEANT4 tag $Name: geant4-09-01 $
//
#ifndef G4PSEnergyDeposit3D_h
#define G4PSEnergyDeposit3D_h 1
#include "G4PSEnergyDeposit.hh"
///////////////////////////////////////////////////////////////////////////////
// Description:
// This is a primitive scorer class for 3D scoring energy deposit.
//
// Created: 2007-08-14 Tsukasa ASO
///////////////////////////////////////////////////////////////////////////////
class G4PSEnergyDeposit3D : public G4PSEnergyDeposit
{
public: // with description
G4PSEnergyDeposit3D(G4String name,
G4int ni=1,G4int nj=1, G4int nk=1,
G4int depi=2, G4int depj=1, G4int depk=0);
virtual ~G4PSEnergyDeposit3D();
protected: // with description
virtual G4int GetIndex(G4Step*);
private:
G4int fDepthi, fDepthj, fDepthk;
};
#endif
@@ -0,0 +1,94 @@
//
// ********************************************************************
// * 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: G4PSFlatSurfaceCurrent.hh,v 1.2 2007/08/14 21:23:51 taso Exp $
// GEANT4 tag $Name: geant4-09-01 $
//
#ifndef G4PSFlatSurfaceCurrent_h
#define G4PSFlatSurfaceCurrent_h 1
#include "G4VPrimitiveScorer.hh"
#include "G4THitsMap.hh"
#include "G4Box.hh"
#include "G4PSDirectionFlag.hh"
////////////////////////////////////////////////////////////////////////////////
// (Description)
// This is a primitive scorer class for scoring Surface Current.
// Current version assumes only for G4Box shape, and the surface
// is defined at the -Z plane of the box.
// The current is given in the unit of area.
// e.g. (Number of tracks)/mm2.
//
// Surface is defined at the -Z surface.
// Direction -Z +Z
// 0 IN || OUT ->|<- | fCurrent_InOut
// 1 IN ->| | fCurrent_In
// 2 OUT |<- | fCurrent_Out
//
//
// Created: 2005-11-14 Tsukasa ASO, Akinori Kimura.
// 17-Nov-2005 T.Aso, Bug fix for area definition.
// 31-Mar-2007 T.Aso, Add option for normalizing by the area.
//
///////////////////////////////////////////////////////////////////////////////
class G4PSFlatSurfaceCurrent : public G4VPrimitiveScorer
{
public: // with description
G4PSFlatSurfaceCurrent(G4String name ,G4int direction, G4int depth=0);
virtual ~G4PSFlatSurfaceCurrent();
// Scoring options
inline void Weighted(G4bool flg=true) { weighted = flg; }
// Multiply track weight
inline void DivideByArea(G4bool flg=true) { divideByArea = flg; }
// Divided By Area
protected: // with description
virtual G4bool ProcessHits(G4Step*,G4TouchableHistory*);
G4int IsSelectedSurface(G4Step*,G4Box*);
public:
virtual void Initialize(G4HCofThisEvent*);
virtual void EndOfEvent(G4HCofThisEvent*);
virtual void clear();
virtual void DrawAll();
virtual void PrintAll();
private:
G4int HCID;
G4int fDirection;
G4THitsMap<G4double>* EvtMap;
G4bool weighted;
G4bool divideByArea;
};
#endif
@@ -0,0 +1,69 @@
//
// ********************************************************************
// * 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: G4PSFlatSurfaceCurrent3D.hh,v 1.2 2007/08/28 10:11:29 taso Exp $
// GEANT4 tag $Name: geant4-09-01 $
//
#ifndef G4PSFlatSurfaceCurrent3D_h
#define G4PSFlatSurfaceCurrent3D_h 1
#include "G4PSFlatSurfaceCurrent.hh"
///////////////////////////////////////////////////////////////////////////////
// (Description)
// This is a primitive scorer class for scoring Surface Current.
// Current version assumes only for G4Box shape, and the surface
// is defined at the -Z plane of the box.
// The current is given in the unit of area.
// e.g. (Number of tracks)/mm2.
//
// Surface is defined at the -Z surface.
// Direction -Z +Z
// 0 IN || OUT ->|<- | fCurrent_InOut
// 1 IN ->| | fCurrent_In
// 2 OUT |<- | fCurrent_Out
//
//
// Created: 2008-08-14 Tsukasa ASO
///////////////////////////////////////////////////////////////////////////////
class G4PSFlatSurfaceCurrent3D : public G4PSFlatSurfaceCurrent
{
public: // with description
G4PSFlatSurfaceCurrent3D(G4String name, G4int direction,
G4int ni=1,G4int nj=1, G4int nk=1,
G4int depi=2, G4int depj=1, G4int depk=0);
virtual ~G4PSFlatSurfaceCurrent3D();
protected: // with description
virtual G4int GetIndex(G4Step*);
private:
G4int fDepthi, fDepthj, fDepthk;
};
#endif
@@ -0,0 +1,86 @@
//
// ********************************************************************
// * 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: G4PSFlatSurfaceFlux.hh,v 1.1 2007/07/11 01:29:28 asaim Exp $
// GEANT4 tag $Name: geant4-09-01 $
//
#ifndef G4PSFlatSurfaceFlux_h
#define G4PSFlatSurfaceFlux_h 1
#include "G4VPrimitiveScorer.hh"
#include "G4THitsMap.hh"
#include "G4Box.hh"
#include "G4PSDirectionFlag.hh"
////////////////////////////////////////////////////////////////////////////////
// (Description)
// This is a primitive scorer class for scoring Surface Flux.
// Current version assumes only for G4Box shape, and the surface
// is defined at the -Z plane of the box.
// The surface flux is given in the unit of area.
// e.g. sum of 1/cos(T)/mm2, where T is a incident angle of the
// track on the surface.
//
//
// Surface is defined at the -Z surface.
// Direction -Z +Z
// 0 IN || OUT ->|<- | fFlux_InOut
// 1 IN ->| | fFlux_In
// 2 OUT |<- | fFlux_Out
//
// Created: 2005-11-14 Tsukasa ASO, Akinori Kimura.
//
// 18-Nov-2005 T.Aso, To use always positive value for anglefactor.
// Bug fix. Area definition.
// 29-Mar-2007 T.Aso, Bug fix for momentum direction at outgoing flux.
///////////////////////////////////////////////////////////////////////////////
class G4PSFlatSurfaceFlux : public G4VPrimitiveScorer
{
public: // with description
G4PSFlatSurfaceFlux(G4String name,G4int direction, G4int depth=0);
virtual ~G4PSFlatSurfaceFlux();
protected: // with description
virtual G4bool ProcessHits(G4Step*,G4TouchableHistory*);
G4int IsSelectedSurface(G4Step*,G4Box*);
public:
virtual void Initialize(G4HCofThisEvent*);
virtual void EndOfEvent(G4HCofThisEvent*);
virtual void clear();
virtual void DrawAll();
virtual void PrintAll();
private:
G4int HCID;
G4int fDirection;
G4THitsMap<G4double>* EvtMap;
};
#endif
@@ -0,0 +1,71 @@
//
// ********************************************************************
// * 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: G4PSFlatSurfaceFlux3D.hh,v 1.2 2007/08/28 10:11:29 taso Exp $
// GEANT4 tag $Name: geant4-09-01 $
//
#ifndef G4PSFlatSurfaceFlux3D_h
#define G4PSFlatSurfaceFlux3D_h 1
#include "G4PSFlatSurfaceFlux.hh"
///////////////////////////////////////////////////////////////////////////////
// (Description)
// This is a primitive scorer class for scoring Surface Flux.
// Current version assumes only for G4Box shape, and the surface
// is defined at the -Z plane of the box.
// The surface flux is given in the unit of area.
// e.g. sum of 1/cos(T)/mm2, where T is a incident angle of the
// track on the surface.
//
//
// Surface is defined at the -Z surface.
// Direction -Z +Z
// 0 IN || OUT ->|<- | fFlux_InOut
// 1 IN ->| | fFlux_In
// 2 OUT |<- | fFlux_Out
//
// Created: 2007-08-14 Tsukasa ASO
//
///////////////////////////////////////////////////////////////////////////////
class G4PSFlatSurfaceFlux3D : public G4PSFlatSurfaceFlux
{
public: // with description
G4PSFlatSurfaceFlux3D(G4String name, G4int direction,
G4int ni=1,G4int nj=1, G4int nk=1,
G4int depi=2, G4int depj=1, G4int depk=0);
virtual ~G4PSFlatSurfaceFlux3D();
protected: // with description
virtual G4int GetIndex(G4Step*);
private:
G4int fDepthi, fDepthj, fDepthk;
};
#endif
@@ -0,0 +1,80 @@
//
// ********************************************************************
// * 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: G4PSMinKinEAtGeneration.hh,v 1.2 2007/08/14 21:23:51 taso Exp $
// GEANT4 tag $Name: geant4-09-01 $
//
#ifndef G4PSMinKinEAtGeneration_h
#define G4PSMinKinEAtGeneration_h 1
#include "G4VPrimitiveScorer.hh"
#include "G4THitsMap.hh"
////////////////////////////////////////////////////////////////////////////////
// (Description)
// This is a primitive scorer class for scoring minimum energy of
// newly produced particles in the geometry.
//
// Created: 2005-11-17 Tsukasa ASO, Akinori Kimura.
//
//
///////////////////////////////////////////////////////////////////////////////
class G4PSMinKinEAtGeneration : public G4VPrimitiveScorer
{
public: // with description
G4PSMinKinEAtGeneration(G4String name, G4int depth=0);
protected: // with description
virtual G4bool ProcessHits(G4Step*,G4TouchableHistory*);
public:
virtual ~G4PSMinKinEAtGeneration();
public:
virtual void Initialize(G4HCofThisEvent*);
virtual void EndOfEvent(G4HCofThisEvent*);
virtual void clear();
public:
virtual void DrawAll();
virtual void PrintAll();
private:
G4int HCID;
G4THitsMap<G4double>* EvtMap;
public:
};
#endif
@@ -0,0 +1,61 @@
//
// ********************************************************************
// * 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: G4PSMinKinEAtGeneration3D.hh,v 1.2 2007/08/28 10:11:29 taso Exp $
// GEANT4 tag $Name: geant4-09-01 $
//
#ifndef G4PSMinKinEAtGeneration3D_h
#define G4PSMinKinEAtGeneration3D_h 1
#include "G4PSMinKinEAtGeneration.hh"
////////////////////////////////////////////////////////////////////////////////
// (Description)
// This is a primitive scorer class for scoring minimum energy of
// newly produced particles in the geometry.
//
// Created: 2007-08-14 Tsukasa ASO
//
//
///////////////////////////////////////////////////////////////////////////////
class G4PSMinKinEAtGeneration3D : public G4PSMinKinEAtGeneration
{
public: // with description
G4PSMinKinEAtGeneration3D(G4String name,
G4int ni=1,G4int nj=1, G4int nk=1,
G4int depi=2, G4int depj=1, G4int depk=0);
virtual ~G4PSMinKinEAtGeneration3D();
protected: // with description
virtual G4int GetIndex(G4Step*);
private:
G4int fDepthi, fDepthj, fDepthk;
};
#endif
@@ -0,0 +1,83 @@
//
// ********************************************************************
// * 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: G4PSNofCollision.hh,v 1.1 2007/07/11 01:29:28 asaim Exp $
// GEANT4 tag $Name: geant4-09-01 $
//
#ifndef G4PSNofCollision_h
#define G4PSNofCollision_h 1
#include "G4VPrimitiveScorer.hh"
#include "G4THitsMap.hh"
//////////////////////////////////////////////////////////////////////////////////
// (Description)
// This is a primitive scorer class for scoring Number of Steps in the cell.
//
// Created: 2007-2-2 Tsukasa ASO, Akinori Kimura.
//
///////////////////////////////////////////////////////////////////////////////
class G4PSNofCollision : public G4VPrimitiveScorer
{
public: // with description
G4PSNofCollision(G4String name, G4int depth=0);
protected: // with description
virtual G4bool ProcessHits(G4Step*,G4TouchableHistory*);
public:
virtual ~G4PSNofCollision();
inline void Weighted(G4bool flg=true) { weighted = flg; }
// Multiply track weight
public:
virtual void Initialize(G4HCofThisEvent*);
virtual void EndOfEvent(G4HCofThisEvent*);
virtual void clear();
public:
virtual void DrawAll();
virtual void PrintAll();
private:
G4int HCID;
G4THitsMap<G4double>* EvtMap;
G4bool weighted;
public:
};
#endif
@@ -0,0 +1,65 @@
//
// ********************************************************************
// * 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: G4PSNofCollision3D.hh,v 1.2 2007/08/28 10:11:29 taso Exp $
// GEANT4 tag $Name: geant4-09-01 $
//
#ifndef G4PSNofCollision3D_h
#define G4PSNofCollision3D_h 1
#include "G4PSNofCollision.hh"
//////////////////////////////////////////////////////////////////////////////////
// (Description)
// This is a primitive scorer class for scoring Number of Steps in the cell.
//
// Created: 2007-08-14 Tsukasa ASO
//
///////////////////////////////////////////////////////////////////////////////
class G4PSNofCollision3D : public G4PSNofCollision
{
public: // with description
G4PSNofCollision3D(G4String name,
G4int ni=1,G4int nj=1, G4int nk=1,
G4int depi=2, G4int depj=1, G4int depk=0);
public:
virtual ~G4PSNofCollision3D();
protected: // with description
virtual G4int GetIndex(G4Step*);
private:
G4int fDepthi, fDepthj, fDepthk;
};
#endif
@@ -0,0 +1,89 @@
//
// ********************************************************************
// * 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: G4PSNofSecondary.hh,v 1.2 2007/08/14 21:23:51 taso Exp $
// GEANT4 tag $Name: geant4-09-01 $
//
#ifndef G4PSNofSecondary_h
#define G4PSNofSecondary_h 1
#include "G4VPrimitiveScorer.hh"
#include "G4THitsMap.hh"
#include "G4ParticleTable.hh"
////////////////////////////////////////////////////////////////////////////////
// (Description)
// This is a primitive scorer class for scoring Number of particles
// generated in the geometry.
//
// Created: 2005-11-18 Tsukasa ASO, Akinori Kimura.
// Modified: 2007-03-23 Tsukasa ASO, Introduce SetSecondary() method for
// specifying a particluar secondary. If the pointer
// particleDef is not set, it accepts all secondaies.
// But onece user sets it, it accepts only the particle.
//
//
///////////////////////////////////////////////////////////////////////////////
class G4PSNofSecondary : public G4VPrimitiveScorer
{
public: // with description
G4PSNofSecondary(G4String name, G4int depth=0);
// Scoring option
void SetParticle(const G4String& particleName);
protected: // with description
virtual G4bool ProcessHits(G4Step*,G4TouchableHistory*);
public:
virtual ~G4PSNofSecondary();
public:
virtual void Initialize(G4HCofThisEvent*);
virtual void EndOfEvent(G4HCofThisEvent*);
virtual void clear();
public:
virtual void DrawAll();
virtual void PrintAll();
private:
G4int HCID;
G4THitsMap<G4double>* EvtMap;
G4ParticleDefinition* particleDef;
public:
};
#endif
@@ -0,0 +1,58 @@
//
// ********************************************************************
// * 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: G4PSNofSecondary3D.hh,v 1.2 2007/08/28 10:11:29 taso Exp $
// GEANT4 tag $Name: geant4-09-01 $
//
#ifndef G4PSNofSecondary3D_h
#define G4PSNofSecondary3D_h 1
#include "G4PSNofSecondary.hh"
////////////////////////////////////////////////////////////////////////////////
// (Description)
// This is a primitive scorer class for scoring Number of particles
// generated in the geometry.
//
// Created: 2007-08-14 Tsukasa ASO
////////////////////////////////////////////////////////////////////////////////
class G4PSNofSecondary3D : public G4PSNofSecondary
{
public: // with description
G4PSNofSecondary3D(G4String name,
G4int ni=1,G4int nj=1, G4int nk=1,
G4int depi=2, G4int depj=1, G4int depk=0);
virtual ~G4PSNofSecondary3D();
protected: // with description
virtual G4int GetIndex(G4Step*);
private:
G4int fDepthi, fDepthj, fDepthk;
};
#endif
@@ -0,0 +1,84 @@
//
// ********************************************************************
// * 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: G4PSNofStep.hh,v 1.2 2007/08/29 06:36:41 taso Exp $
// GEANT4 tag $Name: geant4-09-01 $
//
#ifndef G4PSNofStep_h
#define G4PSNofStep_h 1
#include "G4VPrimitiveScorer.hh"
#include "G4THitsMap.hh"
////////////////////////////////////////////////////////////////////////////////
// (Description)
// This is a primitive scorer class for scoring Number of Steps in the cell.
//
// Created: 2005-11-14 Tsukasa ASO, Akinori Kimura.
//
///////////////////////////////////////////////////////////////////////////////
class G4PSNofStep : public G4VPrimitiveScorer
{
public: // with description
G4PSNofStep(G4String name, G4int depth=0);
protected: // with description
virtual G4bool ProcessHits(G4Step*,G4TouchableHistory*);
public:
virtual ~G4PSNofStep();
public:
virtual void Initialize(G4HCofThisEvent*);
virtual void EndOfEvent(G4HCofThisEvent*);
virtual void clear();
public:
virtual void DrawAll();
virtual void PrintAll();
public:
void SetBoundaryFlag(G4bool flg=true)
{boundaryFlag = flg;}
private:
G4int HCID;
G4THitsMap<G4double>* EvtMap;
G4bool boundaryFlag;
public:
};
#endif
@@ -0,0 +1,59 @@
//
// ********************************************************************
// * 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: G4PSNofStep3D.hh,v 1.2 2007/08/28 10:11:29 taso Exp $
// GEANT4 tag $Name: geant4-09-01 $
//
#ifndef G4PSNofStep3D_h
#define G4PSNofStep3D_h 1
#include "G4PSNofStep.hh"
///////////////////////////////////////////////////////////////////////////////
// (Description)
// This is a primitive scorer class for scoring Number of Steps in the cell.
//
// Created: 2007-08-14 Tsukasa ASO
//
///////////////////////////////////////////////////////////////////////////////
class G4PSNofStep3D : public G4PSNofStep
{
public: // with description
G4PSNofStep3D(G4String name,
G4int ni=1,G4int nj=1, G4int nk=1,
G4int depi=2, G4int depj=1, G4int depk=0);
virtual ~G4PSNofStep3D();
protected: // with description
virtual G4int GetIndex(G4Step*);
private:
G4int fDepthi, fDepthj, fDepthk;
};
#endif
@@ -0,0 +1,82 @@
//
// ********************************************************************
// * 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: G4PSPassageCellCurrent.hh,v 1.1 2007/08/14 21:30:45 taso Exp $
// GEANT4 tag $Name: geant4-09-01 $
//
#ifndef G4PSPassageCellCurrent_h
#define G4PSPassageCellCurrent_h 1
#include "G4VPrimitiveScorer.hh"
#include "G4THitsMap.hh"
////////////////////////////////////////////////////////////////////////////////
// (Description)
// This is a primitive scorer class for scoring current.
// The number of tracks passing through the geometry are taken
// into account.
//
// Created: 2005-11-14 Tsukasa ASO, Akinori Kimura.
//
///////////////////////////////////////////////////////////////////////////////
class G4PSPassageCellCurrent : public G4VPrimitiveScorer
{
public: // with description
G4PSPassageCellCurrent(G4String name, G4int depth=0);
virtual ~G4PSPassageCellCurrent();
inline void Weighted(G4bool flg=true) { weighted = flg; }
// Multiply track weight
protected: // with description
virtual G4bool ProcessHits(G4Step*,G4TouchableHistory*);
virtual G4bool IsPassed(G4Step*);
public:
virtual void Initialize(G4HCofThisEvent*);
virtual void EndOfEvent(G4HCofThisEvent*);
virtual void clear();
public:
virtual void DrawAll();
virtual void PrintAll();
private:
G4int HCID;
G4int fCurrentTrkID;
G4double fCurrent;
G4THitsMap<G4double>* EvtMap;
G4bool weighted;
};
#endif
@@ -0,0 +1,62 @@
//
// ********************************************************************
// * 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: G4PSPassageCellCurrent3D.hh,v 1.2 2007/08/28 10:11:29 taso Exp $
// GEANT4 tag $Name: geant4-09-01 $
//
#ifndef G4PSPassageCellCurrent3D_h
#define G4PSPassageCellCurrent3D_h 1
#include "G4PSPassageCellCurrent.hh"
////////////////////////////////////////////////////////////////////////////////
// (Description)
// This is a primitive scorer class for scoring a current.
// The number of tracks passing through the geometry are taken
// into account.
//
// Created: 2007-08-14 Tsukasa ASO
//
///////////////////////////////////////////////////////////////////////////////
class G4PSPassageCellCurrent3D : public G4PSPassageCellCurrent
{
public: // with description
G4PSPassageCellCurrent3D(G4String name,
G4int ni=1,G4int nj=1, G4int nk=1,
G4int depi=2, G4int depj=1, G4int depk=0);
virtual ~G4PSPassageCellCurrent3D();
protected: // with description
virtual G4int GetIndex(G4Step*);
private:
G4int fDepthi, fDepthj, fDepthk;
};
#endif
@@ -0,0 +1,78 @@
//
// ********************************************************************
// * 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: G4PSPassageCellFlux.hh,v 1.1 2007/07/11 01:29:28 asaim Exp $
// GEANT4 tag $Name: geant4-09-01 $
//
#ifndef G4PSPassageCellFlux_h
#define G4PSPassageCellFlux_h 1
#include "G4VPrimitiveScorer.hh"
#include "G4THitsMap.hh"
////////////////////////////////////////////////////////////////////////////////
// (Description)
// This is a primitive scorer class for scoring cell flux.
// The Cell Flux is defined by a track length divided by a geometry
// volume, where only tracks passing through the geometry are taken
// into account. e.g. the unit of Cell Flux is mm/mm3.
//
// If you want to score all tracks in the geometry volume,
// please use G4PSCellFlux.
//
// Created: 2005-11-14 Tsukasa ASO, Akinori Kimura.
//
///////////////////////////////////////////////////////////////////////////////
class G4PSPassageCellFlux : public G4VPrimitiveScorer
{
public: // with description
G4PSPassageCellFlux(G4String name, G4int depth=0);
virtual ~G4PSPassageCellFlux();
protected: // with description
virtual G4bool ProcessHits(G4Step*,G4TouchableHistory*);
virtual G4bool IsPassed(G4Step*);
public:
virtual void Initialize(G4HCofThisEvent*);
virtual void EndOfEvent(G4HCofThisEvent*);
virtual void clear();
virtual void DrawAll();
virtual void PrintAll();
private:
G4int HCID;
G4int fCurrentTrkID;
G4double fCellFlux;
G4THitsMap<G4double>* EvtMap;
};
#endif
@@ -0,0 +1,64 @@
//
// ********************************************************************
// * 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: G4PSPassageCellFlux3D.hh,v 1.2 2007/08/28 10:11:29 taso Exp $
// GEANT4 tag $Name: geant4-09-01 $
//
#ifndef G4PSPassageCellFlux3D_h
#define G4PSPassageCellFlux3D_h 1
#include "G4PSPassageCellFlux.hh"
///////////////////////////////////////////////////////////////////////////////
// (Description)
// This is a primitive scorer class for scoring cell flux.
// The Cell Flux is defined by a track length divided by a geometry
// volume, where only tracks passing through the geometry are taken
// into account. e.g. the unit of Cell Flux is mm/mm3.
//
// If you want to score all tracks in the geometry volume,
// please use G4PSCellFlux.
//
// Created: 2007-08-14 Tsukasa ASO
///////////////////////////////////////////////////////////////////////////////
class G4PSPassageCellFlux3D : public G4PSPassageCellFlux
{
public: // with description
G4PSPassageCellFlux3D(G4String name,
G4int ni=1,G4int nj=1, G4int nk=1,
G4int depi=2, G4int depj=1, G4int depk=0);
virtual ~G4PSPassageCellFlux3D();
protected: // with description
virtual G4int GetIndex(G4Step*);
private:
G4int fDepthi, fDepthj, fDepthk;
};
#endif
@@ -0,0 +1,78 @@
//
// ********************************************************************
// * 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: G4PSPassageTrackLength.hh,v 1.1 2007/07/11 01:29:28 asaim Exp $
// GEANT4 tag $Name: geant4-09-01 $
//
#ifndef G4PSPassageTrackLength_h
#define G4PSPassageTrackLength_h 1
#include "G4VPrimitiveScorer.hh"
#include "G4THitsMap.hh"
////////////////////////////////////////////////////////////////////////////////
// (Description)
// This is a primitive scorer class for scoring only track length.
// The tracks which passed a geometry is taken into account.
//
//
// Created: 2005-11-14 Tsukasa ASO, Akinori Kimura.
//
///////////////////////////////////////////////////////////////////////////////
class G4PSPassageTrackLength : public G4VPrimitiveScorer
{
public: // with description
G4PSPassageTrackLength(G4String name, G4int depth=0);
virtual ~G4PSPassageTrackLength();
inline void Weighted(G4bool flg=true) { weighted = flg; }
// Multiply track weight
protected: // with description
virtual G4bool ProcessHits(G4Step*,G4TouchableHistory*);
G4bool IsPassed(G4Step*);
public:
virtual void Initialize(G4HCofThisEvent*);
virtual void EndOfEvent(G4HCofThisEvent*);
virtual void clear();
virtual void DrawAll();
virtual void PrintAll();
private:
G4int HCID;
G4int fCurrentTrkID;
G4double fTrackLength;
G4THitsMap<G4double>* EvtMap;
G4bool weighted;
};
#endif
@@ -0,0 +1,65 @@
//
// ********************************************************************
// * 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: G4PSPassageTrackLength3D.hh,v 1.2 2007/08/28 10:11:29 taso Exp $
// GEANT4 tag $Name: geant4-09-01 $
//
#ifndef G4PSPassageTrackLength3D_h
#define G4PSPassageTrackLength3D_h 1
#include "G4PSPassageTrackLength.hh"
////////////////////////////////////////////////////////////////////////////////
// (Description)
// This is a primitive scorer class for scoring only track length.
// The tracks which passed a geometry is taken into account.
//
//
// Created: 2008-08-14 Tsukasa ASO
//
///////////////////////////////////////////////////////////////////////////////
class G4PSPassageTrackLength3D : public G4PSPassageTrackLength
{
public: // with description
G4PSPassageTrackLength3D(G4String name,
G4int ni=1,G4int nj=1, G4int nk=1,
G4int depi=2, G4int depj=1, G4int depk=0);
virtual ~G4PSPassageTrackLength3D();
protected: // with description
virtual G4int GetIndex(G4Step*);
private:
G4int fDepthi, fDepthj, fDepthk;
};
#endif
@@ -0,0 +1,87 @@
//
// ********************************************************************
// * 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: G4PSPopulation.hh,v 1.2 2007/08/14 21:23:51 taso Exp $
// GEANT4 tag $Name: geant4-09-01 $
//
#ifndef G4PSPopulation_h
#define G4PSPopulation_h 1
#include "G4VPrimitiveScorer.hh"
#include "G4THitsMap.hh"
#include <map>
#include "G4TrackLogger.hh"
///////////////////////////////////////////////////////////////////////////////
// (Description)
// This is a primitive scorer class for scoring population in a cell.
//
// Created: 2007-02-02 Tsukasa ASO, Akinori Kimura.
//
///////////////////////////////////////////////////////////////////////////////
class G4PSPopulation : public G4VPrimitiveScorer
{
public: // with description
G4PSPopulation(G4String name, G4int depth=0);
protected: // with description
virtual G4bool ProcessHits(G4Step*,G4TouchableHistory*);
public:
virtual ~G4PSPopulation();
inline void Weighted(G4bool flg=true) { weighted = flg; }
// Multiply track weight
public:
virtual void Initialize(G4HCofThisEvent*);
virtual void EndOfEvent(G4HCofThisEvent*);
virtual void clear();
public:
virtual void DrawAll();
virtual void PrintAll();
private:
G4int HCID;
G4THitsMap<G4double>* EvtMap;
G4bool weighted;
std::map<G4int,G4TrackLogger> fCellTrackLogger;
public:
};
#endif
@@ -0,0 +1,66 @@
//
// ********************************************************************
// * 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: G4PSPopulation3D.hh,v 1.2 2007/08/28 10:11:29 taso Exp $
// GEANT4 tag $Name: geant4-09-01 $
//
#ifndef G4PSPopulation3D_h
#define G4PSPopulation3D_h 1
#include "G4PSPopulation.hh"
//////////////////////////////////////////////////////////////////////////////
// (Description)
// This is a primitive scorer class for scoring population in a cell.
//
// Created: 2007-08-14 Tsukasa ASO
//
///////////////////////////////////////////////////////////////////////////////
class G4PSPopulation3D : public G4PSPopulation
{
public: // with description
G4PSPopulation3D(G4String name,
G4int ni=1,G4int nj=1, G4int nk=1,
G4int depi=2, G4int depj=1, G4int depk=0);
public:
virtual ~G4PSPopulation3D();
protected: // with description
virtual G4int GetIndex(G4Step*);
private:
G4int fDepthi, fDepthj, fDepthk;
};
#endif
@@ -0,0 +1,92 @@
//
// ********************************************************************
// * 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: G4PSSphereSurfaceCurrent.hh,v 1.2 2007/08/14 21:23:51 taso Exp $
// GEANT4 tag $Name: geant4-09-01 $
//
#ifndef G4PSSphereSurfaceCurrent_h
#define G4PSSphereSurfaceCurrent_h 1
#include "G4VPrimitiveScorer.hh"
#include "G4THitsMap.hh"
#include "G4Sphere.hh"
#include "G4PSDirectionFlag.hh"
////////////////////////////////////////////////////////////////////////////////
// (Description)
// This is a primitive scorer class for scoring Surface Current.
// Current version assumes only for G4Sphere shape, and the surface
// is defined at the inside of the sphere.
// The current is given in the unit of area.
// e.g. (Number of tracks)/mm2.
//
// Surface is defined at the inside of sphere.
// Direction -Rmin +Rmax
// 0 IN || OUT ->|<- | fCurrent_InOut
// 1 IN ->| | fCurrent_In
// 2 OUT |<- | fCurrent_Out
//
// Created: 2005-11-14 Tsukasa ASO, Akinori Kimura.
// 17-Nov-2005 Bug fix. square definition.
// 31-Mar-2007 T.Aso, Add option for normalizing by the area.
//
///////////////////////////////////////////////////////////////////////////////
class G4PSSphereSurfaceCurrent : public G4VPrimitiveScorer
{
public: // with description
G4PSSphereSurfaceCurrent(G4String name, G4int direction, G4int depth=0);
virtual ~G4PSSphereSurfaceCurrent();
inline void Weighted(G4bool flg=true) { weighted = flg; }
// Multiply track weight
inline void DivideByArea(G4bool flg=true) { divideByArea = flg; }
// Divided by Area.
protected: // with description
virtual G4bool ProcessHits(G4Step*,G4TouchableHistory*);
G4int IsSelectedSurface(G4Step*,G4Sphere*);
public:
virtual void Initialize(G4HCofThisEvent*);
virtual void EndOfEvent(G4HCofThisEvent*);
virtual void clear();
virtual void DrawAll();
virtual void PrintAll();
private:
G4int HCID;
G4int fDirection;
G4THitsMap<G4double>* EvtMap;
G4bool weighted;
G4bool divideByArea;
};
#endif
@@ -0,0 +1,73 @@
//
// ********************************************************************
// * 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: G4PSSphereSurfaceCurrent3D.hh,v 1.2 2007/08/28 10:11:29 taso Exp $
// GEANT4 tag $Name: geant4-09-01 $
//
#ifndef G4PSSphereSurfaceCurrent3D_h
#define G4PSSphereSurfaceCurrent3D_h 1
#include "G4PSSphereSurfaceCurrent.hh"
////////////////////////////////////////////////////////////////////////////////
// (Description)
// This is a primitive scorer class for scoring Surface Current.
// Current version assumes only for G4Sphere shape, and the surface
// is defined at the inside of the sphere.
// The current is given in the unit of area.
// e.g. (Number of tracks)/mm2.
//
// Surface is defined at the inside of sphere.
// Direction -Rmin +Rmax
// 0 IN || OUT ->|<- | fCurrent_InOut
// 1 IN ->| | fCurrent_In
// 2 OUT |<- | fCurrent_Out
//
// Created: 2007-08-14 Tsukasa ASO
//
///////////////////////////////////////////////////////////////////////////////
class G4PSSphereSurfaceCurrent3D : public G4PSSphereSurfaceCurrent
{
public: // with description
G4PSSphereSurfaceCurrent3D(G4String name, G4int direction,
G4int ni=1,G4int nj=1, G4int nk=1,
G4int depi=2, G4int depj=1, G4int depk=0);
virtual ~G4PSSphereSurfaceCurrent3D();
protected: // with description
virtual G4int GetIndex(G4Step*);
private:
G4int fDepthi, fDepthj, fDepthk;
};
#endif
@@ -0,0 +1,85 @@
//
// ********************************************************************
// * 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: G4PSSphereSurfaceFlux.hh,v 1.1 2007/07/11 01:29:28 asaim Exp $
// GEANT4 tag $Name: geant4-09-01 $
//
#ifndef G4PSSphereSurfaceFlux_h
#define G4PSSphereSurfaceFlux_h 1
#include "G4VPrimitiveScorer.hh"
#include "G4THitsMap.hh"
#include "G4Sphere.hh"
#include "G4PSDirectionFlag.hh"
////////////////////////////////////////////////////////////////////////////////
// (Description)
// This is a primitive scorer class for scoring Surface Flux.
// Flux version assumes only for G4Sphere shape, and the surface
// is defined at the inside of the sphere.
// The current is given in the unit of area.
// e.g. (Number of tracks)/mm2.
//
// Surface is defined at the inside of sphere.
// Direction -Rmin +Rmax
// 0 IN || OUT ->|<- | fFlux_InOut
// 1 IN ->| | fFlux_In
// 2 OUT |<- | fFlux_Out
//
// Created: 2005-11-14 Tsukasa ASO, Akinori Kimura.
// 17-Nov-2005 Bug fix. square definition.
// 29-Mar-2007 T.Aso, Bug fix for momentum direction at outgoing flux.
//
///////////////////////////////////////////////////////////////////////////////
class G4PSSphereSurfaceFlux : public G4VPrimitiveScorer
{
public: // with description
G4PSSphereSurfaceFlux(G4String name, G4int direction, G4int depth=0);
virtual ~G4PSSphereSurfaceFlux();
protected: // with description
virtual G4bool ProcessHits(G4Step*,G4TouchableHistory*);
G4int IsSelectedSurface(G4Step*,G4Sphere*);
public:
virtual void Initialize(G4HCofThisEvent*);
virtual void EndOfEvent(G4HCofThisEvent*);
virtual void clear();
virtual void DrawAll();
virtual void PrintAll();
private:
G4int HCID;
G4int fDirection;
G4THitsMap<G4double>* EvtMap;
};
#endif
@@ -0,0 +1,72 @@
//
// ********************************************************************
// * 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: G4PSSphereSurfaceFlux3D.hh,v 1.2 2007/08/28 10:11:29 taso Exp $
// GEANT4 tag $Name: geant4-09-01 $
//
#ifndef G4PSSphereSurfaceFlux3D_h
#define G4PSSphereSurfaceFlux3D_h 1
#include "G4PSSphereSurfaceFlux.hh"
////////////////////////////////////////////////////////////////////////////////
// (Description)
// This is a primitive scorer class for scoring Surface Flux.
// Flux version assumes only for G4Sphere shape, and the surface
// is defined at the inside of the sphere.
// The current is given in the unit of area.
// e.g. (Number of tracks)/mm2.
//
// Surface is defined at the inside of sphere.
// Direction -Rmin +Rmax
// 0 IN || OUT ->|<- | fFlux_InOut
// 1 IN ->| | fFlux_In
// 2 OUT |<- | fFlux_Out
//
// Created: 2007-08-14 Tsukasa ASO
///////////////////////////////////////////////////////////////////////////////
class G4PSSphereSurfaceFlux3D : public G4PSSphereSurfaceFlux
{
public: // with description
G4PSSphereSurfaceFlux3D(G4String name, G4int direction,
G4int ni=1,G4int nj=1, G4int nk=1,
G4int depi=2, G4int depj=1, G4int depk=0);
virtual ~G4PSSphereSurfaceFlux3D();
protected: // with description
virtual G4int GetIndex(G4Step*);
private:
G4int fDepthi, fDepthj, fDepthk;
};
#endif
@@ -0,0 +1,83 @@
//
// ********************************************************************
// * 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: G4PSTermination.hh,v 1.2 2007/12/10 16:29:35 gunter Exp $
// GEANT4 tag $Name: geant4-09-01 $
//
#ifndef G4PSTermination_h
#define G4PSTermination_h 1
#include "G4VPrimitiveScorer.hh"
#include "G4THitsMap.hh"
//////////////////////////////////////////////////////////////////////////////////
// (Description)
// This is a primitive scorer class for scoring Number of Steps in the cell.
//
// Created: 2007-2-2 Tsukasa ASO, Akinori Kimura.
//
///////////////////////////////////////////////////////////////////////////////
class G4PSTermination : public G4VPrimitiveScorer
{
public: // with description
G4PSTermination(G4String name, G4int depth=0);
protected: // with description
virtual G4bool ProcessHits(G4Step*,G4TouchableHistory*);
public:
virtual ~G4PSTermination();
inline void Weighted(G4bool flg=true) { weighted = flg; }
// Multiply track weight
public:
virtual void Initialize(G4HCofThisEvent*);
virtual void EndOfEvent(G4HCofThisEvent*);
virtual void clear();
public:
virtual void DrawAll();
virtual void PrintAll();
private:
G4int HCID;
G4THitsMap<G4double>* EvtMap;
G4bool weighted;
public:
};
#endif
@@ -0,0 +1,64 @@
//
// ********************************************************************
// * 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: G4PSTermination3D.hh,v 1.3 2007/12/10 16:29:37 gunter Exp $
// GEANT4 tag $Name: geant4-09-01 $
//
#ifndef G4PSTermination3D_h
#define G4PSTermination3D_h 1
#include "G4PSTermination.hh"
//////////////////////////////////////////////////////////////////////////////////
// (Description)
// This is a primitive scorer class for scoring Number of tracks
// which stops(terminated) in the cell.
//
// Created: 2007-08-14 Tsukasa ASO
//
///////////////////////////////////////////////////////////////////////////////
class G4PSTermination3D : public G4PSTermination
{
public: // with description
G4PSTermination3D(G4String name,
G4int ni=1,G4int nj=1, G4int nk=1,
G4int di=2, G4int dj=1, G4int dk=0);
virtual ~G4PSTermination3D();
protected: // with description
virtual G4int GetIndex(G4Step*);
private:
G4int fDepthi, fDepthj, fDepthk;
};
#endif
@@ -0,0 +1,84 @@
//
// ********************************************************************
// * 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: G4PSTrackCounter.hh,v 1.2 2007/08/14 21:23:51 taso Exp $
// GEANT4 tag $Name: geant4-09-01 $
//
#ifndef G4PSTrackCounter_h
#define G4PSTrackCounter_h 1
#include "G4VPrimitiveScorer.hh"
#include "G4THitsMap.hh"
#include "G4PSDirectionFlag.hh"
///////////////////////////////////////////////////////////////////////////////
// (Description)
// This is a primitive scorer class for scoring number of tracks in a cell.
//
// Created: 2007-02-02 Tsukasa ASO, Akinori Kimura.
//
///////////////////////////////////////////////////////////////////////////////
class G4PSTrackCounter : public G4VPrimitiveScorer
{
public: // with description
G4PSTrackCounter(G4String name, G4int direction, G4int depth=0);
protected: // with description
virtual G4bool ProcessHits(G4Step*,G4TouchableHistory*);
public:
virtual ~G4PSTrackCounter();
inline void Weighted(G4bool flg=true) { weighted = flg; }
// Multiply track weight
public:
virtual void Initialize(G4HCofThisEvent*);
virtual void EndOfEvent(G4HCofThisEvent*);
virtual void clear();
public:
virtual void DrawAll();
virtual void PrintAll();
private:
G4int HCID;
G4int fDirection;
G4THitsMap<G4double>* EvtMap;
G4bool weighted;
public:
};
#endif
@@ -0,0 +1,66 @@
//
// ********************************************************************
// * 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: G4PSTrackCounter3D.hh,v 1.2 2007/08/28 10:11:29 taso Exp $
// GEANT4 tag $Name: geant4-09-01 $
//
#ifndef G4PSTrackCounter3D_h
#define G4PSTrackCounter3D_h 1
#include "G4PSTrackCounter.hh"
///////////////////////////////////////////////////////////////////////////////
// (Description)
// This is a primitive scorer class for scoring number of tracks in a cell.
//
// Created: 2007-08-14 Tsukasa ASO
//
///////////////////////////////////////////////////////////////////////////////
class G4PSTrackCounter3D : public G4PSTrackCounter
{
public: // with description
G4PSTrackCounter3D(G4String name, G4int direction,
G4int ni=1,G4int nj=1, G4int nk=1,
G4int di=2, G4int dj=1, G4int dk=0);
public:
virtual ~G4PSTrackCounter3D();
protected: // with description
virtual G4int GetIndex(G4Step*);
private:
G4int fDepthi, fDepthj, fDepthk;
};
#endif
@@ -0,0 +1,83 @@
//
// ********************************************************************
// * 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: G4PSTrackLength.hh,v 1.2 2007/08/14 21:23:51 taso Exp $
// GEANT4 tag $Name: geant4-09-01 $
//
#ifndef G4PSTrackLength_h
#define G4PSTrackLength_h 1
#include "G4VPrimitiveScorer.hh"
#include "G4THitsMap.hh"
////////////////////////////////////////////////////////////////////////////////
// (Description)
// This is a primitive scorer class for scoring track length.
//
//
// Created: 2005-11-14 Tsukasa ASO, Akinori Kimura.
// Modified: 2007-02-02 Tsukasa ASO, Add MultiplyKineticEnergy()
// and DivideByVelocity().
//
//
///////////////////////////////////////////////////////////////////////////////
class G4PSTrackLength : public G4VPrimitiveScorer
{
public: // with description
G4PSTrackLength(G4String name, G4int depth=0);
virtual ~G4PSTrackLength();
inline void Weighted(G4bool flg=true) { weighted = flg; }
// Multiply track weight
inline void MultiplyKineticEnergy(G4bool flg=true) { multiplyKinE = flg; }
// Multiply Kinetic Energy
inline void DivideByVelocity(G4bool flg=true) { divideByVelocity = flg; }
// Divide by velocity
protected: // with description
virtual G4bool ProcessHits(G4Step*,G4TouchableHistory*);
public:
virtual void Initialize(G4HCofThisEvent*);
virtual void EndOfEvent(G4HCofThisEvent*);
virtual void clear();
virtual void DrawAll();
virtual void PrintAll();
private:
G4int HCID;
G4THitsMap<G4double>* EvtMap;
G4bool weighted;
G4bool multiplyKinE;
G4bool divideByVelocity;
};
#endif
@@ -0,0 +1,62 @@
//
// ********************************************************************
// * 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: G4PSTrackLength3D.hh,v 1.2 2007/08/28 10:11:29 taso Exp $
// GEANT4 tag $Name: geant4-09-01 $
//
#ifndef G4PSTrackLength3D_h
#define G4PSTrackLength3D_h 1
#include "G4PSTrackLength.hh"
////////////////////////////////////////////////////////////////////////////////
// (Description)
// This is a primitive scorer class for scoring track length.
//
//
// Created: 2008-08-14 Tsukasa ASO
//
///////////////////////////////////////////////////////////////////////////////
class G4PSTrackLength3D : public G4PSTrackLength
{
public: // with description
G4PSTrackLength3D(G4String name,
G4int ni=1,G4int nj=1, G4int nk=1,
G4int depi=2, G4int depj=1, G4int depk=0);
virtual ~G4PSTrackLength3D();
protected: // with description
virtual G4int GetIndex(G4Step*);
private:
G4int fDepthi, fDepthj, fDepthk;
};
#endif
@@ -0,0 +1,62 @@
//
// ********************************************************************
// * 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: G4SDChargedFilter.hh,v 1.1 2007/07/11 01:29:28 asaim Exp $
// GEANT4 tag $Name: geant4-09-01 $
//
#ifndef G4SDChargedFilter_h
#define G4SDChargedFilter_h 1
class G4Step;
class G4ChargedDefinition;
#include "globals.hh"
#include "G4VSDFilter.hh"
////////////////////////////////////////////////////////////////////////////////
// class description:
//
// This is the class of a filter to be associated with a
// sensitive detector.
// This fileter accepts charged particles.
//
// Created: 2005-11-14 Tsukasa ASO.
//
///////////////////////////////////////////////////////////////////////////////
class G4SDChargedFilter : public G4VSDFilter
{
public: // with description
G4SDChargedFilter(G4String name);
virtual ~G4SDChargedFilter();
public: // with description
virtual G4bool Accept(const G4Step*) const;
};
#endif
@@ -0,0 +1,81 @@
//
// ********************************************************************
// * 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: G4SDKineticEnergyFilter.hh,v 1.1 2007/07/11 01:29:28 asaim Exp $
// GEANT4 tag $Name: geant4-09-01 $
//
#ifndef G4SDKineticEnergyFilter_h
#define G4SDKineticEnergyFilter_h 1
#include "globals.hh"
#include "G4VSDFilter.hh"
////////////////////////////////////////////////////////////////////////////////
// class description:
//
// This is the class of a filter to be associated with a
// sensitive detector.
//
// This filter accepts particles defined energy range.
// The energy range is given at constructor, or Set methods.
//
//
//
// Created: 2005-11-14 Tsukasa ASO.
//
///////////////////////////////////////////////////////////////////////////////
class G4SDKineticEnergyFilter : public G4VSDFilter
{
//-------
public: // with description
G4SDKineticEnergyFilter(G4String name,
G4double elow=0.0,
G4double ehigh=DBL_MAX);
// Constructor. Filter name and kinetic energy range( elow, ehigh).
virtual ~G4SDKineticEnergyFilter();
public: // with description
virtual G4bool Accept(const G4Step*) const;
void SetKineticEnergy(G4double elow, G4double ehigh);
void SetLowEnergy(G4double elow);
void SetHighEnergy(G4double ehigh);
// Set methods for kinetic energy range.
//
void show();
private:
G4double fLowEnergy;
G4double fHighEnergy;
};
#endif
@@ -0,0 +1,64 @@
//
// ********************************************************************
// * 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: G4SDNeutralFilter.hh,v 1.1 2007/07/11 01:29:28 asaim Exp $
// GEANT4 tag $Name: geant4-09-01 $
//
#ifndef G4SDNeutralFilter_h
#define G4SDNeutralFilter_h 1
class G4Step;
class G4NeutralDefinition;
#include "globals.hh"
#include "G4VSDFilter.hh"
////////////////////////////////////////////////////////////////////////////////
// class description:
//
// This is the class of a filter to be associated with a
// sensitive detector.
//
// This filter accepts neutral tracks.
//
// Created: 2005-11-14 Tsukasa ASO.
//
///////////////////////////////////////////////////////////////////////////////
class G4SDNeutralFilter : public G4VSDFilter
{
public: // with description
G4SDNeutralFilter(G4String name);
virtual ~G4SDNeutralFilter();
public: // with description
virtual G4bool Accept(const G4Step*) const;
};
#endif
@@ -0,0 +1,82 @@
//
// ********************************************************************
// * 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: G4SDParticleFilter.hh,v 1.2 2007/08/14 21:23:51 taso Exp $
// GEANT4 tag $Name: geant4-09-01 $
//
#ifndef G4SDParticleFilter_h
#define G4SDParticleFilter_h 1
class G4Step;
class G4ParticleDefinition;
#include "globals.hh"
#include "G4VSDFilter.hh"
#include <vector>
////////////////////////////////////////////////////////////////////////////////
// class description:
//
// This is the class of a filter to be associated with a
// sensitive detector.
// This class filters steps by partilce definition.
// The particles are given at constructor or add() method.
//
// Created: 2005-11-14 Tsukasa ASO.
//
///////////////////////////////////////////////////////////////////////////////
class G4SDParticleFilter : public G4VSDFilter
{
public: // with description
G4SDParticleFilter(G4String name);
G4SDParticleFilter(G4String name,const G4String& particleName);
G4SDParticleFilter(G4String name,
const std::vector<G4String>& particleNames);
G4SDParticleFilter(G4String name,
const std::vector<G4ParticleDefinition*>& particleDef);
// Constructors. Filter name and particle's name.
//
virtual ~G4SDParticleFilter();
public: // with description
virtual G4bool Accept(const G4Step*) const;
void add(const G4String& particleName);
// set method for acceptable particle name.
//
void show();
private:
std::vector<G4ParticleDefinition*> thePdef;
};
#endif
@@ -0,0 +1,76 @@
//
// ********************************************************************
// * 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: G4SDParticleWithEnergyFilter.hh,v 1.1 2007/07/11 01:29:28 asaim Exp $
// GEANT4 tag $Name: geant4-09-01 $
//
#ifndef G4SDParticleWithEnergyFilter_h
#define G4SDParticleWithEnergyFilter_h 1
class G4Step;
class G4ParticleDefinition;
#include "globals.hh"
#include "G4VSDFilter.hh"
#include "G4SDParticleFilter.hh"
#include "G4SDKineticEnergyFilter.hh"
////////////////////////////////////////////////////////////////////////////////
// class description:
//
// This is the class of a filter to be associated with a
// sensitive detector.
// This class filters steps by partilce definition and kinetic energy.
//
// Created: 2005-11-14 Tsukasa ASO.
//
///////////////////////////////////////////////////////////////////////////////
class G4SDParticleWithEnergyFilter : public G4VSDFilter
{
public: // with description
G4SDParticleWithEnergyFilter(G4String name,
G4double elow=0.0, G4double ehigh=DBL_MAX);
virtual ~G4SDParticleWithEnergyFilter();
public: // with description
virtual G4bool Accept(const G4Step*) const;
void add(const G4String& particleName);
// add the particle into accepatable particle list.
//
void SetKineticEnergy(G4double elow, G4double ehigh);
// Set acceptable kinetic energy range.
//
void show();
private:
G4SDParticleFilter* fParticleFilter;
G4SDKineticEnergyFilter* fKineticFilter;
};
#endif