Import Geant4 10.0.0 source tree

This commit is contained in:
Gabriele Cosmo
2016-06-10 11:51:14 +02:00
parent e2d2f9810a
commit 286caacf06
12421 changed files with 730077 additions and 502383 deletions
@@ -23,28 +23,30 @@
// * acceptance of all terms of the Geant4 Software license. *
// ********************************************************************
//
/// \file biasing/B02/include/B02ScoringDetectorConstruction.hh
/// \brief Definition of the B02ScoringDetectorConstruction class
/// \file biasing/B02/include/B02ActionInitialization.hh
/// \brief Definition of the B02ActionInitialization class
//
//
// $Id$
// $Id: B02ActionInitialization.hh 66780 2013-01-12 14:56:35Z gcosmo $
//
#ifndef B02ScoringDetectorConstruction_hh
#define B02ScoringDetectorConstruction_hh B02ScoringDetectorConstruction_hh
#ifndef B02ActionInitialization_h
#define B02ActionInitialization_h 1
#include "G4VUserDetectorConstruction.hh"
#include "G4VUserActionInitialization.hh"
class G4VPhysicalVolume;
class B02ScoringDetectorConstruction : public G4VUserDetectorConstruction
class B02ActionInitialization : public G4VUserActionInitialization
{
public:
B02ScoringDetectorConstruction(){}
~B02ScoringDetectorConstruction(){}
public:
B02ActionInitialization();
virtual ~B02ActionInitialization();
G4VPhysicalVolume* Construct();
public:
virtual void BuildForMaster() const;
virtual void Build() const;
};
#endif
@@ -1,77 +0,0 @@
//
// ********************************************************************
// * License and Disclaimer *
// * *
// * The Geant4 software is copyright of the Copyright Holders of *
// * the Geant4 Collaboration. It is provided under the terms and *
// * conditions of the Geant4 Software License, included in the file *
// * LICENSE and available at http://cern.ch/geant4/license . These *
// * include a list of copyright holders. *
// * *
// * Neither the authors of this software system, nor their employing *
// * institutes,nor the agencies providing financial support for this *
// * work make any representation or warranty, express or implied, *
// * regarding this software system or assume any liability for its *
// * use. Please see the license in the file LICENSE and URL above *
// * for the full disclaimer and the limitation of liability. *
// * *
// * This code implementation is the result of the scientific and *
// * technical work of the GEANT4 collaboration. *
// * By using, copying, modifying or distributing the software (or *
// * any work based on the software) you agree to acknowledge its *
// * use in resulting scientific publications, and indicate your *
// * acceptance of all terms of the Geant4 Software license. *
// ********************************************************************
//
/// \file biasing/B02/include/B02CellScorer.hh
/// \brief Definition of the B02CellScorer class
//
//
// $Id$
//
// ----------------------------------------------------------------------
// Class B02CellScorer
//
// Class description:
//
// This class is an example how to build a customized cell scorer
// derived from G4VCellScorer that also uses the G4CellScorer.
//
// Author: Michael Dressel (Michael.Dressel@cern.ch)
// ----------------------------------------------------------------------
#ifndef B02CellScorer_hh
#define B02CellScorer_hh B02CellScorer_hh
#include "G4VCellScorer.hh"
#include "G4CellScoreComposer.hh"
#include "G4CellScorer.hh"
#include <vector>
#include "AIDA/IHistogram1D.h"
class B02CellScorer : public G4VCellScorer {
public:
B02CellScorer(AIDA::IHistogram1D *h);
virtual ~B02CellScorer();
virtual void ScoreAnExitingStep(const G4Step &aStep,
const G4GeometryCell &gCell);
virtual void ScoreAnEnteringStep(const G4Step &aStep,
const G4GeometryCell &gCell);
virtual void ScoreAnInVolumeStep(const G4Step &aStep,
const G4GeometryCell &gCell);
G4CellScorer &GetG4CellScorer(){
return fG4CellScorer;
}
private:
void FillHisto(const G4Step &aStep);
G4CellScorer fG4CellScorer;
AIDA::IHistogram1D *fHisto;
};
#endif
@@ -1,85 +0,0 @@
//
// ********************************************************************
// * License and Disclaimer *
// * *
// * The Geant4 software is copyright of the Copyright Holders of *
// * the Geant4 Collaboration. It is provided under the terms and *
// * conditions of the Geant4 Software License, included in the file *
// * LICENSE and available at http://cern.ch/geant4/license . These *
// * include a list of copyright holders. *
// * *
// * Neither the authors of this software system, nor their employing *
// * institutes,nor the agencies providing financial support for this *
// * work make any representation or warranty, express or implied, *
// * regarding this software system or assume any liability for its *
// * use. Please see the license in the file LICENSE and URL above *
// * for the full disclaimer and the limitation of liability. *
// * *
// * This code implementation is the result of the scientific and *
// * technical work of the GEANT4 collaboration. *
// * By using, copying, modifying or distributing the software (or *
// * any work based on the software) you agree to acknowledge its *
// * use in resulting scientific publications, and indicate your *
// * acceptance of all terms of the Geant4 Software license. *
// ********************************************************************
//
/// \file biasing/B02/include/B02CellScorerStore.hh
/// \brief Definition of the B02CellScorerStore class
//
//
// $Id$
//
// ----------------------------------------------------------------------
// Class B02CellScorerStore
//
// Class description:
//
// This class is a cell customized cell scorer store.
// Nevertheless the standard G4CellScorer may be created with this class
// simular to the G4CellScorerStore. In addition this class
// stores B02CellScorer pointers.
// This class delivers a map with the G4CellScorer objects
// to be printed with the G4ScorerTable class.
//
// Author: Michael Dressel (Michael.Dressel@cern.ch)
// ----------------------------------------------------------------------
#ifndef B02CellScorerStore_hh
#define B02CellScorerStore_hh B02CellScorerStore_hh
#include <map>
#include "G4GeometryCell.hh"
#include "G4GeometryCellComp.hh"
#include "globals.hh"
#include "G4VCellScorerStore.hh"
class G4CellScorer;
class B02CellScorer;
class IHistogram1D;
typedef std::map<G4GeometryCell, G4CellScorer *, G4GeometryCellComp> G4MapGeometryCellCellScorer;
typedef std::map<G4GeometryCell,B02CellScorer *, G4GeometryCellComp> B02MapGeometryCellB02CellScorer;
class B02CellScorerStore : public G4VCellScorerStore {
public:
B02CellScorerStore();
virtual ~B02CellScorerStore(){}
virtual G4VCellScorer *GetCellScore(const G4GeometryCell &gCell);
G4CellScorer *AddG4CellScorer(const G4GeometryCell &gCell);
const G4MapGeometryCellCellScorer &GetMapGeometryCellCellScorer() ;
void AddB02CellScorer(B02CellScorer *b02cellScorer,
const G4GeometryCell &gCell);
const B02MapGeometryCellB02CellScorer &GetMapGeometryCellB02CellScorer() const ;
private:
G4MapGeometryCellCellScorer fMapGeometryCellCellScorer;
B02MapGeometryCellB02CellScorer fMapGeometryCellB02CellScorer;
};
#endif
@@ -27,7 +27,7 @@
/// \brief Definition of the B02DetectorConstruction class
//
//
// $Id$
// $Id: B02DetectorConstruction.hh 77475 2013-11-25 09:38:51Z gcosmo $
//
#ifndef B02DetectorConstruction_hh
@@ -35,9 +35,11 @@
#include "globals.hh"
#include "G4VUserDetectorConstruction.hh"
#include <vector>
class G4VPhysicalVolume;
class G4IStore;
class G4LogicalVolume;
class G4VIStore;
class G4VWeightWindowStore;
class B02DetectorConstruction : public G4VUserDetectorConstruction
{
@@ -45,19 +47,30 @@ public:
B02DetectorConstruction();
~B02DetectorConstruction();
G4VPhysicalVolume* Construct();
virtual G4VPhysicalVolume* Construct();
G4VIStore* CreateImportanceStore();
// create an importance store, caller is responsible for deleting it
G4VWeightWindowStore *CreateWeightWindowStore();
// create an weight window store, caller is responsible for
// deleting it
G4VPhysicalVolume* GetWorldVolume();
G4VPhysicalVolume& GetWorldVolumeAddress() const;
// G4String GetCellName(G4int i);
void SetSensitive();
// virtual void ConstructSDandField();
inline G4VIStore* GetGeomStore(){return aIstore;};
private:
std::vector< G4LogicalVolume * > fLogicalVolumeVector;
std::vector< G4VPhysicalVolume * > fPhysicalVolumeVector;
G4VPhysicalVolume* pWorldVolume;
G4VPhysicalVolume* fWorldVolume;
G4VIStore *aIstore;
};
@@ -27,7 +27,7 @@
/// \brief Definition of the B02ImportanceDetectorConstruction class
//
//
// $Id$
// $Id: B02ImportanceDetectorConstruction.hh 77324 2013-11-22 14:26:57Z ahoward$
//
#ifndef B02ImportanceDetectorConstruction_hh
@@ -43,6 +43,8 @@
class G4VPhysicalVolume;
class G4LogicalVolume;
class G4VIStore;
class G4VWeightWindowStore;
@@ -50,7 +52,7 @@ class B02ImportanceDetectorConstruction : public G4VUserParallelWorld
{
public:
B02ImportanceDetectorConstruction(G4String worldName);
~B02ImportanceDetectorConstruction();
virtual ~B02ImportanceDetectorConstruction();
const G4VPhysicalVolume &GetPhysicalVolumeByName(const G4String& name) const;
G4VPhysicalVolume &GetWorldVolumeAddress() const;
@@ -62,16 +64,28 @@ public:
void SetSensitive();
virtual void Construct();
virtual void ConstructSD();
G4VIStore* CreateImportanceStore();
// create an importance store, caller is responsible for deleting it
G4VWeightWindowStore *CreateWeightWindowStore();
// create an weight window store, caller is responsible for
// deleting it
private:
void Construct();
B02PVolumeStore fPVolumeStore;
// std::vector< G4VPhysicalVolume * > fPhysicalVolumeVector;
std::vector< G4LogicalVolume * > fLogicalVolumeVector;
// G4VPhysicalVolume *fWorldVolume;
G4VPhysicalVolume* ghostWorld;
G4VPhysicalVolume* fGhostWorld;
};
@@ -1,76 +0,0 @@
//
// ********************************************************************
// * License and Disclaimer *
// * *
// * The Geant4 software is copyright of the Copyright Holders of *
// * the Geant4 Collaboration. It is provided under the terms and *
// * conditions of the Geant4 Software License, included in the file *
// * LICENSE and available at http://cern.ch/geant4/license . These *
// * include a list of copyright holders. *
// * *
// * Neither the authors of this software system, nor their employing *
// * institutes,nor the agencies providing financial support for this *
// * work make any representation or warranty, express or implied, *
// * regarding this software system or assume any liability for its *
// * use. Please see the license in the file LICENSE and URL above *
// * for the full disclaimer and the limitation of liability. *
// * *
// * This code implementation is the result of the scientific and *
// * technical work of the GEANT4 collaboration. *
// * By using, copying, modifying or distributing the software (or *
// * any work based on the software) you agree to acknowledge its *
// * use in resulting scientific publications, and indicate your *
// * acceptance of all terms of the Geant4 Software license. *
// ********************************************************************
//
/// \file biasing/B02/include/B02PSScoringDetectorConstruction.hh
/// \brief Definition of the B02PSScoringDetectorConstruction class
//
//
// $Id$
//
#ifndef B02PSScoringDetectorConstruction_hh
#define B02PSScoringDetectorConstruction_hh B02PSScoringDetectorConstruction_hh
#include "globals.hh"
#include <map>
//#include "G4GeometryCell.hh"
//#include "B02PVolumeStore.hh"
#include "G4VUserParallelWorld.hh"
#include <vector>
class G4VPhysicalVolume;
class G4LogicalVolume;
class B02PSScoringDetectorConstruction: public G4VUserParallelWorld
{
public:
B02PSScoringDetectorConstruction(G4String worldName);
~B02PSScoringDetectorConstruction();
//const G4VPhysicalVolume &GetPhysicalVolumeByName(const G4String& name) const;
// G4VPhysicalVolume *GetWorldVolume() const;
//G4String ListPhysNamesAsG4String();
G4String GetCellName(G4int i);
//G4GeometryCell GetGeometryCell(G4int i);
G4VPhysicalVolume* GetWorldVolume();
G4VPhysicalVolume& GetWorldVolumeAddress() const;
void SetSensitive();
private:
void Construct();
//B02PVolumeStore fPVolumeStore;
G4VPhysicalVolume *fWorldVolume;
G4VPhysicalVolume* ghostWorld;
std::vector< G4LogicalVolume* > fLogicalVolumeVector;
};
#endif
@@ -27,7 +27,7 @@
/// \brief Definition of the B02PVolumeStore class
//
//
// $Id$
// $Id: B02PVolumeStore.hh 77475 2013-11-25 09:38:51Z gcosmo $
// GEANT4 tag
//
// ----------------------------------------------------------------------
@@ -57,6 +57,7 @@ public:
void AddPVolume(const G4GeometryCell &cell);
const G4VPhysicalVolume *GetPVolume(const G4String &name) const;
G4int Size();
G4String GetPNames() const;
private:
@@ -1,84 +0,0 @@
//
// ********************************************************************
// * License and Disclaimer *
// * *
// * The Geant4 software is copyright of the Copyright Holders of *
// * the Geant4 Collaboration. It is provided under the terms and *
// * conditions of the Geant4 Software License, included in the file *
// * LICENSE and available at http://cern.ch/geant4/license . These *
// * include a list of copyright holders. *
// * *
// * Neither the authors of this software system, nor their employing *
// * institutes,nor the agencies providing financial support for this *
// * work make any representation or warranty, express or implied, *
// * regarding this software system or assume any liability for its *
// * use. Please see the license in the file LICENSE and URL above *
// * for the full disclaimer and the limitation of liability. *
// * *
// * This code implementation is the result of the scientific and *
// * technical work of the GEANT4 collaboration. *
// * By using, copying, modifying or distributing the software (or *
// * any work based on the software) you agree to acknowledge its *
// * use in resulting scientific publications, and indicate your *
// * acceptance of all terms of the Geant4 Software license. *
// ********************************************************************
//
/// \file biasing/B02/include/B02PhysicsList.hh
/// \brief Definition of the B02PhysicsList class
//
//
#ifndef B02PhysicsList_h
#define B02PhysicsList_h 1
#include "G4VUserPhysicsList.hh"
#include "globals.hh"
#include <vector>
// taken from Tst12PhysicsList
class B02PhysicsList: public G4VUserPhysicsList
{
public:
B02PhysicsList();
virtual ~B02PhysicsList();
public:
void AddParallelWorldName(G4String& pname)
{paraWorldName.push_back(pname);}
protected:
// Construct particle and physics
virtual void ConstructParticle();
virtual void ConstructProcess();
//
virtual void SetCuts();
protected:
// these methods Construct physics processes and register them
virtual void ConstructGeneral();
virtual void ConstructEM();
virtual void ConstructHad();
virtual void ConstructLeptHad();
void AddScoringProcess();
//
void ConstructAllBosons();
void ConstructAllLeptons();
void ConstructAllMesons();
void ConstructAllBaryons();
void ConstructAllIons();
void ConstructAllShortLiveds();
private:
std::vector<G4String> paraWorldName;
};
#endif
@@ -43,10 +43,10 @@ class B02PrimaryGeneratorAction : public G4VUserPrimaryGeneratorAction
~B02PrimaryGeneratorAction();
public:
void GeneratePrimaries(G4Event* anEvent);
virtual void GeneratePrimaries(G4Event* anEvent);
private:
G4ParticleGun* particleGun;
G4ParticleGun* fParticleGun;
};
#endif
@@ -27,7 +27,7 @@
/// \brief Definition of the B02Run class
//
//
// $Id$
// $Id: B02Run.hh 77475 2013-11-25 09:38:51Z gcosmo $
//
//---------------------------------------------------------------------
// (Purpose)
@@ -63,11 +63,11 @@ public:
// Access methods for scoring information.
// - Number of HitsMap for this RUN.
// This is equal to number of collections.
G4int GetNumberOfHitsMap() const {return theRunMap.size();}
G4int GetNumberOfHitsMap() const {return fRunMap.size();}
// - Get HitsMap of this RUN.
// by sequential number, by multifucntional name and collection name,
// and by collection name with full path.
G4THitsMap<G4double>* GetHitsMap(G4int i){return theRunMap[i];}
G4THitsMap<G4double>* GetHitsMap(G4int i){return fRunMap[i];}
G4THitsMap<G4double>* GetHitsMap(const G4String& detName,
const G4String& colName);
G4THitsMap<G4double>* GetHitsMap(const G4String& fullName);
@@ -75,10 +75,12 @@ public:
// This method calls G4THisMap::PrintAll() for individual HitsMap.
void DumpAllScorer();
virtual void Merge(const G4Run*);
private:
std::vector<G4String> theCollName;
std::vector<G4int> theCollID;
std::vector<G4THitsMap<G4double>*> theRunMap;
std::vector<G4String> fCollName;
std::vector<G4int> fCollID;
std::vector<G4THitsMap<G4double>*> fRunMap;
};
//
@@ -27,7 +27,7 @@
/// \brief Definition of the B02RunAction class
//
//
// $Id$
// $Id: B02RunAction.hh 72953 2013-08-14 14:13:36Z gcosmo $
//
#ifndef B02RunAction_h
@@ -61,14 +61,15 @@ public:
public:
void PrintHeader(std::ostream *out);
std::string FillString(const std::string &name, char c, G4int n, G4bool back=true);
std::string FillString(const std::string &name, char c, G4int n,
G4bool back=true);
private:
// Data member
// - vector of MultiFunctionalDetecor names.
std::vector<G4String> theSDName;
G4int FieldName;
G4int FieldValue;
std::vector<G4String> fSDName;
// G4int fFieldName;
G4int fFieldValue;
};
@@ -1,93 +0,0 @@
//
// ********************************************************************
// * License and Disclaimer *
// * *
// * The Geant4 software is copyright of the Copyright Holders of *
// * the Geant4 Collaboration. It is provided under the terms and *
// * conditions of the Geant4 Software License, included in the file *
// * LICENSE and available at http://cern.ch/geant4/license . These *
// * include a list of copyright holders. *
// * *
// * Neither the authors of this software system, nor their employing *
// * institutes,nor the agencies providing financial support for this *
// * work make any representation or warranty, express or implied, *
// * regarding this software system or assume any liability for its *
// * use. Please see the license in the file LICENSE and URL above *
// * for the full disclaimer and the limitation of liability. *
// * *
// * This code implementation is the result of the scientific and *
// * technical work of the GEANT4 collaboration. *
// * By using, copying, modifying or distributing the software (or *
// * any work based on the software) you agree to acknowledge its *
// * use in resulting scientific publications, and indicate your *
// * acceptance of all terms of the Geant4 Software license. *
// ********************************************************************
//
/// \file biasing/B02/include/B02ScoreTable.hh
/// \brief Definition of the B02ScoreTable class
//
// $Id$
//
// ----------------------------------------------------------------------
// Class B02ScoreTable
//
// Class description:
//
// This class creates a table from a given G4CellScoreStore
// and prints it to a given output stream.
//
// Author: Michael Dressel (Michael.Dressel@cern.ch)
// ----------------------------------------------------------------------
//
#ifndef B02ScoreTable_hh
#define B02ScoreTable_hh B02ScoreTable_hh
#include <iostream>
#include <iomanip>
#include <vector>
#include "globals.hh"
#include "G4CellScorerStore.hh"
#include "G4CellScoreValues.hh"
class G4VIStore;
class B02ScoreTable
{
public: // with description
explicit B02ScoreTable(const G4VIStore *aIStore = 0);
~B02ScoreTable();
void Print(const G4MapGeometryCellCellScorer &cs,
std::ostream *out = 0);
// create the table and print it to the ouput stream.
void PrintHeader(std::ostream *out);
// print the table header, done by the above Print() function
void PrintTable(const G4MapGeometryCellCellScorer &cs,
std::ostream *out);
// print the table contend, done by the above Print() function
std::string FillString(const std::string &name,
char c, G4int n, G4bool back = true);
// create a string of length n, by filling up
// name with the char c.
private:
B02ScoreTable(const B02ScoreTable &);
B02ScoreTable &operator=(const B02ScoreTable &);
G4String CreateName(const G4GeometryCell &gCell);
void PrintLine(const G4String &name,
const G4CellScoreValues &sc_scores,
std::ostream *out);
const G4VIStore *fIStore;
G4int FieldName;
G4int FieldValue;
};
#endif