Import Geant4 6.2.0 source tree

This commit is contained in:
Gabriele Cosmo
2016-06-09 10:56:29 +02:00
parent 1d812b78b1
commit e083ffb441
1415 changed files with 111223 additions and 21207 deletions
@@ -21,34 +21,40 @@
// ********************************************************************
//
//
// $Id: PhysListGeneral.hh,v 1.1 2003/10/08 17:28:37 maire Exp $
// GEANT4 tag $Name: geant4-06-00-patch-01 $
// $Id: DecaysBuilder.hh,v 1.1 2004/05/04 08:32:47 vnivanch Exp $
// GEANT4 tag $Name: geant4-06-02 $
//
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
#ifndef PhysListGeneral_h
#define PhysListGeneral_h 1
#ifndef DecaysBuilder_h
#define DecaysBuilder_h 1
#include "G4VPhysicsConstructor.hh"
#include "globals.hh"
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
class PhysListGeneral : public G4VPhysicsConstructor
class DecaysBuilder : public G4VPhysicsConstructor
{
public:
PhysListGeneral(const G4String& name = "general");
~PhysListGeneral();
public:
DecaysBuilder(const G4String& name = "decays");
virtual ~DecaysBuilder();
public:
// This method is dummy for physics
void ConstructParticle() {};
// This method will be invoked in the Construct() method.
// each physics process will be instantiated and
// registered to the process manager of each particle type
void ConstructProcess();
public:
// This method is dummy for physics
virtual void ConstructParticle();
// This method will be invoked in the Construct() method.
// each physics process will be instantiated and
// registered to the process manager of each particle type
virtual void ConstructProcess();
private:
// hide assignment operator
DecaysBuilder & operator=(const DecaysBuilder &right);
DecaysBuilder(const DecaysBuilder&);
};
@@ -21,8 +21,8 @@
// ********************************************************************
//
//
// $Id: DetectorConstruction.hh,v 1.1 2003/10/08 17:28:34 maire Exp $
// GEANT4 tag $Name: geant4-06-00-patch-01 $
// $Id: DetectorConstruction.hh,v 1.5 2004/06/18 15:43:39 maire Exp $
// GEANT4 tag $Name: geant4-06-02 $
//
//
@@ -63,12 +63,11 @@ class DetectorConstruction : public G4VUserDetectorConstruction
void UpdateGeometry();
public:
const
G4VPhysicalVolume* GetEcal() {return physiEcal;};
G4Material* GetMaterial() {return myMaterial;};
// Subdivision of absorber
G4int GetnLtot() {return nLtot;};
G4int GetnRtot() {return nRtot;};
G4double GetdLradl() {return dLradl;};
@@ -20,12 +20,10 @@
// * statement, and all its terms. *
// ********************************************************************
//
//
// $Id: DetectorMessenger.hh,v 1.1 2003/10/08 17:28:34 maire Exp $
// GEANT4 tag $Name: geant4-06-00-patch-01 $
// $Id: DetectorMessenger.hh,v 1.4 2004/06/18 15:43:39 maire Exp $
// GEANT4 tag $Name: geant4-06-02 $
//
//
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
@@ -46,21 +44,21 @@ class G4UIcmdWithoutParameter;
class DetectorMessenger: public G4UImessenger
{
public:
DetectorMessenger(DetectorConstruction* );
~DetectorMessenger();
void SetNewValue(G4UIcommand*, G4String);
private:
DetectorConstruction* Detector;
G4UIdirectory* testemDir;
G4UIcmdWithAString* MaterCmd;
G4UIcmdWith3Vector* LBinCmd;
G4UIcmdWith3Vector* RBinCmd;
G4UIcmdWithADoubleAndUnit* FieldCmd;
G4UIcmdWithoutParameter* UpdateCmd;
public:
DetectorMessenger(DetectorConstruction* );
~DetectorMessenger();
void SetNewValue(G4UIcommand*, G4String);
private:
DetectorConstruction* Detector;
G4UIdirectory* testemDir;
G4UIcmdWithAString* MaterCmd;
G4UIcmdWith3Vector* LBinCmd;
G4UIcmdWith3Vector* RBinCmd;
G4UIcmdWithADoubleAndUnit* FieldCmd;
G4UIcmdWithoutParameter* UpdateCmd;
};
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
@@ -0,0 +1,62 @@
//
// ********************************************************************
// * DISCLAIMER *
// * *
// * The following disclaimer summarizes all the specific disclaimers *
// * of contributors to this software. The specific disclaimers,which *
// * govern, are listed with their locations in: *
// * http://cern.ch/geant4/license *
// * *
// * Neither the authors of this software system, nor their employing *
// * institutes,nor the agencies providing financial support for this *
// * work make any representation or warranty, express or implied, *
// * regarding this software system or assume any liability for its *
// * use. *
// * *
// * This code implementation is the intellectual property of the *
// * GEANT4 collaboration. *
// * By copying, distributing or modifying the Program (or any work *
// * based on the Program) you indicate your acceptance of this *
// * statement, and all its terms. *
// ********************************************************************
//
//
// $Id: EmAcceptance.hh,v 1.1 2004/05/24 07:03:22 vnivanch Exp $
// GEANT4 tag $Name: geant4-06-02 $
//
//
#ifndef EmAcceptance_h
#define EmAcceptance_h 1
#include "globals.hh"
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
class EmAcceptance
{
public:
EmAcceptance();
~EmAcceptance();
void BeginOfAcceptance(const G4String& title, G4int stat);
void EndOfAcceptance();
void EmAcceptanceGauss(const G4String& title, G4int stat,
G4double avr, G4double avr0,
G4double rms, G4double limit);
private:
// hide assignment operator
EmAcceptance & operator=(const EmAcceptance &right);
EmAcceptance(const EmAcceptance&);
G4bool isAccepted;
};
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
#endif
@@ -0,0 +1,64 @@
//
// ********************************************************************
// * DISCLAIMER *
// * *
// * The following disclaimer summarizes all the specific disclaimers *
// * of contributors to this software. The specific disclaimers,which *
// * govern, are listed with their locations in: *
// * http://cern.ch/geant4/license *
// * *
// * Neither the authors of this software system, nor their employing *
// * institutes,nor the agencies providing financial support for this *
// * work make any representation or warranty, express or implied, *
// * regarding this software system or assume any liability for its *
// * use. *
// * *
// * This code implementation is the intellectual property of the *
// * GEANT4 collaboration. *
// * By copying, distributing or modifying the Program (or any work *
// * based on the Program) you indicate your acceptance of this *
// * statement, and all its terms. *
// ********************************************************************
//
//
// $Id: G4EmHadronBuilder.hh,v 1.1 2004/05/04 08:32:48 vnivanch Exp $
// GEANT4 tag $Name: geant4-06-02 $
//
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
#ifndef G4EmHadronBuilder_h
#define G4EmHadronBuilder_h 1
#include "G4VPhysicsConstructor.hh"
#include "globals.hh"
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
class G4EmHadronBuilder : public G4VPhysicsConstructor
{
public:
G4EmHadronBuilder(const G4String& name = "EM_stand_had");
virtual ~G4EmHadronBuilder();
public:
// This method is dummy for physics
virtual void ConstructParticle();
// This method will be invoked in the Construct() method.
// each physics process will be instantiated and
// registered to the process manager of each particle type
virtual void ConstructProcess();
private:
// hide assignment operator
G4EmHadronBuilder & operator=(const G4EmHadronBuilder &right);
G4EmHadronBuilder(const G4EmHadronBuilder&);
};
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
#endif
@@ -0,0 +1,64 @@
//
// ********************************************************************
// * DISCLAIMER *
// * *
// * The following disclaimer summarizes all the specific disclaimers *
// * of contributors to this software. The specific disclaimers,which *
// * govern, are listed with their locations in: *
// * http://cern.ch/geant4/license *
// * *
// * Neither the authors of this software system, nor their employing *
// * institutes,nor the agencies providing financial support for this *
// * work make any representation or warranty, express or implied, *
// * regarding this software system or assume any liability for its *
// * use. *
// * *
// * This code implementation is the intellectual property of the *
// * GEANT4 collaboration. *
// * By copying, distributing or modifying the Program (or any work *
// * based on the Program) you indicate your acceptance of this *
// * statement, and all its terms. *
// ********************************************************************
//
//
// $Id: G4EmHadronBuilder52.hh,v 1.1 2004/05/04 08:32:48 vnivanch Exp $
// GEANT4 tag $Name: geant4-06-02 $
//
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
#ifndef G4EmHadronBuilder52_h
#define G4EmHadronBuilder52_h 1
#include "G4VPhysicsConstructor.hh"
#include "globals.hh"
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
class G4EmHadronBuilder52 : public G4VPhysicsConstructor
{
public:
G4EmHadronBuilder52(const G4String& name = "EM_stand_had");
virtual ~G4EmHadronBuilder52();
public:
// This method is dummy for physics
virtual void ConstructParticle();
// This method will be invoked in the Construct() method.
// each physics process will be instantiated and
// registered to the process manager of each particle type
virtual void ConstructProcess();
private:
// hide assignment operator
G4EmHadronBuilder52 & operator=(const G4EmHadronBuilder52 &right);
G4EmHadronBuilder52(const G4EmHadronBuilder52&);
};
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
#endif
@@ -0,0 +1,64 @@
//
// ********************************************************************
// * DISCLAIMER *
// * *
// * The following disclaimer summarizes all the specific disclaimers *
// * of contributors to this software. The specific disclaimers,which *
// * govern, are listed with their locations in: *
// * http://cern.ch/geant4/license *
// * *
// * Neither the authors of this software system, nor their employing *
// * institutes,nor the agencies providing financial support for this *
// * work make any representation or warranty, express or implied, *
// * regarding this software system or assume any liability for its *
// * use. *
// * *
// * This code implementation is the intellectual property of the *
// * GEANT4 collaboration. *
// * By copying, distributing or modifying the Program (or any work *
// * based on the Program) you indicate your acceptance of this *
// * statement, and all its terms. *
// ********************************************************************
//
//
// $Id: G4EmHighEnergyBuilder.hh,v 1.1 2004/05/04 08:32:49 vnivanch Exp $
// GEANT4 tag $Name: geant4-06-02 $
//
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
#ifndef G4EmHighEnergyBuilder_h
#define G4EmHighEnergyBuilder_h 1
#include "G4VPhysicsConstructor.hh"
#include "globals.hh"
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
class G4EmHighEnergyBuilder : public G4VPhysicsConstructor
{
public:
G4EmHighEnergyBuilder(const G4String& name = "EM_stan_HE");
virtual ~G4EmHighEnergyBuilder();
public:
// This method is dummy for physics
virtual void ConstructParticle();
// This method will be invoked in the Construct() method.
// each physics process will be instantiated and
// registered to the process manager of each particle type
virtual void ConstructProcess();
private:
// hide assignment operator
G4EmHighEnergyBuilder & operator=(const G4EmHighEnergyBuilder &right);
G4EmHighEnergyBuilder(const G4EmHighEnergyBuilder&);
};
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
#endif
@@ -0,0 +1,63 @@
//
// ********************************************************************
// * DISCLAIMER *
// * *
// * The following disclaimer summarizes all the specific disclaimers *
// * of contributors to this software. The specific disclaimers,which *
// * govern, are listed with their locations in: *
// * http://cern.ch/geant4/license *
// * *
// * Neither the authors of this software system, nor their employing *
// * institutes,nor the agencies providing financial support for this *
// * work make any representation or warranty, express or implied, *
// * regarding this software system or assume any liability for its *
// * use. *
// * *
// * This code implementation is the intellectual property of the *
// * GEANT4 collaboration. *
// * By copying, distributing or modifying the Program (or any work *
// * based on the Program) you indicate your acceptance of this *
// * statement, and all its terms. *
// ********************************************************************
//
//
// $Id: G4EmMuonBuilder.hh,v 1.1 2004/05/04 08:32:49 vnivanch Exp $
// GEANT4 tag $Name: geant4-06-02 $
//
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
#ifndef G4EmMuonBuilder_h
#define G4EmMuonBuilder_h 1
#include "G4VPhysicsConstructor.hh"
#include "globals.hh"
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
class G4EmMuonBuilder : public G4VPhysicsConstructor
{
public:
G4EmMuonBuilder(const G4String& name = "EM_stan_muons");
virtual ~G4EmMuonBuilder();
public:
// This method is dummy for physics
virtual void ConstructParticle();
// This method will be invoked in the Construct() method.
// each physics process will be instantiated and
// registered to the process manager of each particle type
virtual void ConstructProcess();
private:
// hide assignment operator
G4EmMuonBuilder & operator=(const G4EmMuonBuilder &right);
G4EmMuonBuilder(const G4EmMuonBuilder&);
};
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
#endif
@@ -0,0 +1,63 @@
//
// ********************************************************************
// * DISCLAIMER *
// * *
// * The following disclaimer summarizes all the specific disclaimers *
// * of contributors to this software. The specific disclaimers,which *
// * govern, are listed with their locations in: *
// * http://cern.ch/geant4/license *
// * *
// * Neither the authors of this software system, nor their employing *
// * institutes,nor the agencies providing financial support for this *
// * work make any representation or warranty, express or implied, *
// * regarding this software system or assume any liability for its *
// * use. *
// * *
// * This code implementation is the intellectual property of the *
// * GEANT4 collaboration. *
// * By copying, distributing or modifying the Program (or any work *
// * based on the Program) you indicate your acceptance of this *
// * statement, and all its terms. *
// ********************************************************************
//
//
// $Id: G4EmMuonBuilder52.hh,v 1.1 2004/05/04 08:32:50 vnivanch Exp $
// GEANT4 tag $Name: geant4-06-02 $
//
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
#ifndef G4EmMuonBuilder52_h
#define G4EmMuonBuilder52_h 1
#include "G4VPhysicsConstructor.hh"
#include "globals.hh"
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
class G4EmMuonBuilder52 : public G4VPhysicsConstructor
{
public:
G4EmMuonBuilder52(const G4String& name = "EM_stan_muons");
virtual ~G4EmMuonBuilder52();
public:
// This method is dummy for physics
virtual void ConstructParticle();
// This method will be invoked in the Construct() method.
// each physics process will be instantiated and
// registered to the process manager of each particle type
virtual void ConstructProcess();
private:
// hide assignment operator
G4EmMuonBuilder52 & operator=(const G4EmMuonBuilder52 &right);
G4EmMuonBuilder52(const G4EmMuonBuilder52&);
};
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
#endif
@@ -21,44 +21,44 @@
// ********************************************************************
//
//
// $Id: PhysListEmStandard.hh,v 1.1 2003/10/08 17:28:36 maire Exp $
// GEANT4 tag $Name: geant4-06-00-patch-01 $
// $Id: G4EmQEDBuilder.hh,v 1.1 2004/05/04 08:32:50 vnivanch Exp $
// GEANT4 tag $Name: geant4-06-02 $
//
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
#ifndef PhysListEmStandard_h
#define PhysListEmStandard_h 1
#ifndef G4EmQEDBuilder_h
#define G4EmQEDBuilder_h 1
#include "G4VPhysicsConstructor.hh"
#include "globals.hh"
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
class PhysListEmStandard : public G4VPhysicsConstructor
class G4EmQEDBuilder : public G4VPhysicsConstructor
{
public:
PhysListEmStandard(const G4String& name = "standard");
~PhysListEmStandard();
public:
G4EmQEDBuilder(const G4String& name = "EM_stan_QED");
virtual ~G4EmQEDBuilder();
public:
// This method is dummy for physics
virtual void ConstructParticle();
// This method will be invoked in the Construct() method.
// each physics process will be instantiated and
// registered to the process manager of each particle type
virtual void ConstructProcess();
private:
// hide assignment operator
G4EmQEDBuilder & operator=(const G4EmQEDBuilder &right);
G4EmQEDBuilder(const G4EmQEDBuilder&);
public:
// This method is dummy for physics
void ConstructParticle() {};
// This method will be invoked in the Construct() method.
// each physics process will be instantiated and
// registered to the process manager of each particle type
void ConstructProcess();
};
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
#endif
@@ -0,0 +1,64 @@
//
// ********************************************************************
// * DISCLAIMER *
// * *
// * The following disclaimer summarizes all the specific disclaimers *
// * of contributors to this software. The specific disclaimers,which *
// * govern, are listed with their locations in: *
// * http://cern.ch/geant4/license *
// * *
// * Neither the authors of this software system, nor their employing *
// * institutes,nor the agencies providing financial support for this *
// * work make any representation or warranty, express or implied, *
// * regarding this software system or assume any liability for its *
// * use. *
// * *
// * This code implementation is the intellectual property of the *
// * GEANT4 collaboration. *
// * By copying, distributing or modifying the Program (or any work *
// * based on the Program) you indicate your acceptance of this *
// * statement, and all its terms. *
// ********************************************************************
//
//
// $Id: G4EmQEDBuilder52.hh,v 1.1 2004/05/04 08:32:51 vnivanch Exp $
// GEANT4 tag $Name: geant4-06-02 $
//
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
#ifndef G4EmQEDBuilder52_h
#define G4EmQEDBuilder52_h 1
#include "G4VPhysicsConstructor.hh"
#include "globals.hh"
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
class G4EmQEDBuilder52 : public G4VPhysicsConstructor
{
public:
G4EmQEDBuilder52(const G4String& name = "EM_stan_QED");
virtual ~G4EmQEDBuilder52();
public:
// This method is dummy for physics
virtual void ConstructParticle();
// This method will be invoked in the Construct() method.
// each physics process will be instantiated and
// registered to the process manager of each particle type
virtual void ConstructProcess();
private:
// hide assignment operator
G4EmQEDBuilder52 & operator=(const G4EmQEDBuilder52 &right);
G4EmQEDBuilder52(const G4EmQEDBuilder52&);
};
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
#endif
@@ -21,34 +21,34 @@
// ********************************************************************
//
//
// $Id: PhysListParticles.hh,v 1.1 2003/10/08 17:28:37 maire Exp $
// GEANT4 tag $Name: geant4-06-00-patch-01 $
// $Id: ParticlesBuilder.hh,v 1.1 2004/05/04 08:32:51 vnivanch Exp $
// GEANT4 tag $Name: geant4-06-02 $
//
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
#ifndef PhysListParticles_h
#define PhysListParticles_h 1
#ifndef ParticlesBuilder_h
#define ParticlesBuilder_h 1
#include "G4VPhysicsConstructor.hh"
#include "globals.hh"
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
class PhysListParticles : public G4VPhysicsConstructor
class ParticlesBuilder : public G4VPhysicsConstructor
{
public:
PhysListParticles(const G4String& name = "particles");
~PhysListParticles();
public:
ParticlesBuilder(const G4String& name = "particles");
virtual ~ParticlesBuilder();
public:
// This method will be invoked in the Construct() method.
// each particle type will be instantiated
void ConstructParticle();
// This method is dummy.
void ConstructProcess() {};
public:
// This method will be invoked in the Construct() method.
// each particle type will be instantiated
virtual void ConstructParticle();
// This method is dummy.
virtual void ConstructProcess() {};
};
@@ -21,12 +21,20 @@
// ********************************************************************
//
//
// $Id: PhysicsList.hh,v 1.1 2003/10/08 17:28:37 maire Exp $
// GEANT4 tag $Name: geant4-06-00-patch-01 $
// $Id: PhysicsList.hh,v 1.2 2004/05/04 07:36:40 vnivanch Exp $
// GEANT4 tag $Name: geant4-06-02 $
//
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
//
// 14.10.02 (V.Ivanchenko) provide modular list on base of old PhysicsList
//---------------------------------------------------------------------------
//
// ClassName: PhysicsList
//
// Author: V.Ivanchenko 03.05.2004
//
// Modified:
//
//----------------------------------------------------------------------------
//
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
@@ -38,36 +46,40 @@
#include "globals.hh"
class PhysicsListMessenger;
class G4VPhysicsConstructor;
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
class PhysicsList: public G4VModularPhysicsList
{
public:
PhysicsList();
~PhysicsList();
public:
PhysicsList();
~PhysicsList();
virtual void ConstructParticle();
virtual void ConstructProcess();
void AddPhysicsList(const G4String& name);
virtual void ConstructParticle();
virtual void ConstructProcess();
virtual void SetCuts();
void SetCuts();
void SetCutForGamma(G4double);
void SetCutForElectron(G4double);
void SetCutForPositron(G4double);
void SetCutForGamma(G4double);
void SetCutForElectron(G4double);
void SetCutForPositron(G4double);
private:
G4double cutForGamma;
G4double cutForElectron;
G4double cutForPositron;
G4double currentDefaultCut;
G4VPhysicsConstructor* emPhysicsList;
G4VPhysicsConstructor* generalPhysicsList;
G4VPhysicsConstructor* particleList;
G4String emName;
void AddPhysicsList(const G4String&);
void SetVerbose(G4int val);
private:
// hide assignment operator
PhysicsList & operator=(const PhysicsList &right);
PhysicsList(const PhysicsList&);
G4double cutForGamma;
G4double cutForElectron;
G4double cutForPositron;
G4int verbose;
G4bool emBuilderIsRegisted;
PhysicsListMessenger* pMessenger;
PhysicsListMessenger* pMessenger;
};
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
@@ -20,14 +20,9 @@
// * statement, and all its terms. *
// ********************************************************************
//
// $Id: RunAction.hh,v 1.5 2004/06/18 15:43:40 maire Exp $
// GEANT4 tag $Name: geant4-06-02 $
//
// $Id: RunAction.hh,v 1.1 2003/10/08 17:28:37 maire Exp $
// GEANT4 tag $Name: geant4-06-00-patch-01 $
//
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
// 08.03.01 Hisaya: Adapted MyVector for STL
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
@@ -37,6 +32,7 @@
#include "G4UserRunAction.hh"
#include "G4ParticleDefinition.hh"
#include "G4ThreeVector.hh"
#include "globals.hh"
#include <vector>
@@ -47,72 +43,96 @@ typedef std::vector<G4double> MyVector;
class DetectorConstruction;
class PrimaryGeneratorAction;
class RunActionMessenger;
class G4Run;
#ifdef G4ANALYSIS_USE
#ifdef USE_AIDA
namespace AIDA {
class ITree;
class IHistogram1D;
}
class ITree;
class IHistogram1D;
}
#endif
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
class RunAction : public G4UserRunAction
{
public:
RunAction(DetectorConstruction*, PrimaryGeneratorAction*);
~RunAction();
void BeginOfRunAction(const G4Run*);
void EndOfRunAction(const G4Run*);
inline void initializePerEvent();
void fillPerEvent();
inline void fillPerTrack(G4double,G4double);
inline void fillPerStep (G4double,G4int,G4int);
inline void particleFlux(G4ParticleDefinition*,G4int);
// Acceptance parameters
void SetEdepAndRMS(G4ThreeVector);
G4double GetAverageEdep() const {return edeptrue;};
G4double GetRMSEdep() const {return rmstrue;};
G4double GetLimitEdep() const {return limittrue;};
// Histogram name and type
void SetHistoName(G4String& val) {histoName = val;};
void SetHistoType(G4String& val) {histoType = val;};
const G4String& HistoName() const {return histoName;};
const G4String& HistoType() const {return histoType;};
private:
void bookHisto();
void cleanHisto();
private:
DetectorConstruction* Det;
PrimaryGeneratorAction* Kin;
RunActionMessenger* runMessenger;
G4int nLbin;
G4int nLbin;
MyVector dEdL;
MyVector sumELongit;
MyVector sumE2Longit;
MyVector sumELongitCumul;
MyVector sumE2LongitCumul;
G4int nRbin;
G4int nRbin;
MyVector dEdR;
MyVector sumERadial;
MyVector sumE2Radial;
MyVector sumERadialCumul;
MyVector sumE2RadialCumul;
MyVector gammaFlux;
MyVector electronFlux;
MyVector positronFlux;
G4double ChargTrLength;
G4double sumChargTrLength;
G4double sum2ChargTrLength;
G4double NeutrTrLength;
G4double sumNeutrTrLength;
G4double sum2NeutrTrLength;
#ifdef G4ANALYSIS_USE
G4double edeptrue;
G4double rmstrue;
G4double limittrue;
G4String histoName;
G4String histoType;
#ifdef USE_AIDA
AIDA::ITree* tree; // the tree should only be deleted at the end
AIDA::IHistogram1D* histo[12]; // (after writing the histos to file)
#endif
#endif
};
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
@@ -120,7 +140,7 @@ class RunAction : public G4UserRunAction
inline
void RunAction::initializePerEvent()
{
//initialize arrays of energy deposit per bin
//initialize arrays of energy deposit per bin
for (G4int i=0; i<nLbin; i++)
{ dEdL[i] = 0.; }
@@ -20,45 +20,39 @@
// * statement, and all its terms. *
// ********************************************************************
//
//
// $Id: PhysListEmG4v52.hh,v 1.1 2003/10/08 17:28:36 maire Exp $
// GEANT4 tag $Name: geant4-06-00-patch-01 $
// $Id: RunActionMessenger.hh,v 1.1 2004/06/18 15:43:40 maire Exp $
// GEANT4 tag $Name: geant4-06-02 $
//
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
#ifndef PhysListEmG4v52_h
#define PhysListEmG4v52_h 1
#ifndef RunActionMessenger_h
#define RunActionMessenger_h 1
#include "G4VPhysicsConstructor.hh"
#include "globals.hh"
#include "G4UImessenger.hh"
class RunAction;
class G4UIcmdWithAString;
class G4UIcmdWith3Vector;
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
class PhysListEmG4v52 : public G4VPhysicsConstructor
class RunActionMessenger: public G4UImessenger
{
public:
PhysListEmG4v52(const G4String& name = "g4v52");
~PhysListEmG4v52();
public:
// This method is dummy for physics.
void ConstructParticle() {};
// This method will be invoked in the Construct() method.
// each physics process will be instantiated and
// registered to the process manager of each particle type
void ConstructProcess();
public:
RunActionMessenger(RunAction*);
~RunActionMessenger();
void SetNewValue(G4UIcommand*, G4String);
private:
RunAction* Run;
G4UIcmdWith3Vector* accCmd;
G4UIcmdWithAString* factoryCmd;
G4UIcmdWithAString* fileCmd;
};
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
#endif
@@ -21,8 +21,8 @@
// ********************************************************************
//
//
// $Id: TrackingAction.hh,v 1.1 2003/10/08 17:28:39 maire Exp $
// GEANT4 tag $Name: geant4-06-00-patch-01 $
// $Id: TrackingAction.hh,v 1.2 2004/05/24 07:03:22 vnivanch Exp $
// GEANT4 tag $Name: geant4-06-02 $
//
//
@@ -37,14 +37,19 @@ class RunAction;
class TrackingAction : public G4UserTrackingAction {
public:
TrackingAction(RunAction*);
~TrackingAction() {};
void PostUserTrackingAction(const G4Track*);
private:
RunAction* Run;
public:
TrackingAction(RunAction*);
~TrackingAction() {};
void PostUserTrackingAction(const G4Track*);
private:
// hide assignment operator
TrackingAction & operator=(const TrackingAction &right);
TrackingAction(const TrackingAction&);
RunAction* Run;
};
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......