Import Geant4 10.5.0.beta source tree
This commit is contained in:
@@ -33,8 +33,6 @@
|
||||
|
||||
#include "G4VUserActionInitialization.hh"
|
||||
|
||||
class LXeRecorderBase;
|
||||
|
||||
class B4DetectorConstruction;
|
||||
|
||||
/// Action initialization class.
|
||||
@@ -43,16 +41,13 @@ class B4DetectorConstruction;
|
||||
class LXeActionInitialization : public G4VUserActionInitialization
|
||||
{
|
||||
public:
|
||||
LXeActionInitialization(LXeRecorderBase*);
|
||||
LXeActionInitialization();
|
||||
virtual ~LXeActionInitialization();
|
||||
|
||||
virtual void BuildForMaster() const;
|
||||
virtual void Build() const;
|
||||
|
||||
virtual G4VSteppingVerbose* InitializeSteppingVerbose() const;
|
||||
|
||||
private:
|
||||
LXeRecorderBase* fRecorder;
|
||||
};
|
||||
|
||||
#endif
|
||||
|
||||
@@ -1,68 +0,0 @@
|
||||
//
|
||||
// ********************************************************************
|
||||
// * License and Disclaimer *
|
||||
// * *
|
||||
// * The Geant4 software is copyright of the Copyright Holders of *
|
||||
// * the Geant4 Collaboration. It is provided under the terms and *
|
||||
// * conditions of the Geant4 Software License, included in the file *
|
||||
// * LICENSE and available at http://cern.ch/geant4/license . These *
|
||||
// * include a list of copyright holders. *
|
||||
// * *
|
||||
// * Neither the authors of this software system, nor their employing *
|
||||
// * institutes,nor the agencies providing financial support for this *
|
||||
// * work make any representation or warranty, express or implied, *
|
||||
// * regarding this software system or assume any liability for its *
|
||||
// * use. Please see the license in the file LICENSE and URL above *
|
||||
// * for the full disclaimer and the limitation of liability. *
|
||||
// * *
|
||||
// * This code implementation is the result of the scientific and *
|
||||
// * technical work of the GEANT4 collaboration. *
|
||||
// * By using, copying, modifying or distributing the software (or *
|
||||
// * any work based on the software) you agree to acknowledge its *
|
||||
// * use in resulting scientific publications, and indicate your *
|
||||
// * acceptance of all terms of the Geant4 Software license. *
|
||||
// ********************************************************************
|
||||
//
|
||||
// $Id: LXeEMPhysics.hh 81557 2014-06-03 08:32:44Z gcosmo $
|
||||
//
|
||||
/// \file optical/LXe/include/LXeEMPhysics.hh
|
||||
/// \brief Definition of the LXeEMPhysics class
|
||||
//
|
||||
//
|
||||
#ifndef LXeEMPhysics_h
|
||||
#define LXeEMPhysics_h 1
|
||||
|
||||
#include "globals.hh"
|
||||
#include "G4ios.hh"
|
||||
|
||||
#include "G4VPhysicsConstructor.hh"
|
||||
|
||||
#include "G4PhotoElectricEffect.hh"
|
||||
#include "G4ComptonScattering.hh"
|
||||
#include "G4GammaConversion.hh"
|
||||
#include "G4eMultipleScattering.hh"
|
||||
#include "G4eIonisation.hh"
|
||||
#include "G4eBremsstrahlung.hh"
|
||||
#include "G4eplusAnnihilation.hh"
|
||||
|
||||
class LXeEMPhysics : public G4VPhysicsConstructor
|
||||
{
|
||||
public:
|
||||
|
||||
LXeEMPhysics(const G4String& name ="EM");
|
||||
virtual ~LXeEMPhysics();
|
||||
|
||||
public:
|
||||
|
||||
// This method will be invoked in the Construct() method.
|
||||
// each particle type will be instantiated
|
||||
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();
|
||||
|
||||
};
|
||||
|
||||
#endif
|
||||
@@ -23,7 +23,7 @@
|
||||
// * acceptance of all terms of the Geant4 Software license. *
|
||||
// ********************************************************************
|
||||
//
|
||||
// $Id: LXeEventAction.hh 68752 2013-04-05 10:23:47Z gcosmo $
|
||||
// $Id: LXeEventAction.hh 109784 2018-05-09 08:14:08Z gcosmo $
|
||||
//
|
||||
/// \file optical/LXe/include/LXeEventAction.hh
|
||||
/// \brief Definition of the LXeEventAction class
|
||||
@@ -38,13 +38,12 @@
|
||||
#include "G4ThreeVector.hh"
|
||||
|
||||
class G4Event;
|
||||
class LXeRecorderBase;
|
||||
|
||||
class LXeEventAction : public G4UserEventAction
|
||||
{
|
||||
public:
|
||||
|
||||
LXeEventAction(LXeRecorderBase*);
|
||||
LXeEventAction();
|
||||
virtual ~LXeEventAction();
|
||||
|
||||
public:
|
||||
@@ -61,9 +60,45 @@ class LXeEventAction : public G4UserEventAction
|
||||
void SetForceDrawPhotons(G4bool b){fForcedrawphotons=b;}
|
||||
void SetForceDrawNoPhotons(G4bool b){fForcenophotons=b;}
|
||||
|
||||
void IncPhotonCount_Scint(){fPhotonCount_Scint++;}
|
||||
void IncPhotonCount_Ceren(){fPhotonCount_Ceren++;}
|
||||
void IncEDep(G4double dep){fTotE+=dep;}
|
||||
void IncAbsorption(){fAbsorptionCount++;}
|
||||
void IncBoundaryAbsorption(){fBoundaryAbsorptionCount++;}
|
||||
void IncHitCount(G4int i=1){fHitCount+=i;}
|
||||
|
||||
void SetEWeightPos(const G4ThreeVector& p){fEWeightPos=p;}
|
||||
void SetReconPos(const G4ThreeVector& p){fReconPos=p;}
|
||||
void SetConvPos(const G4ThreeVector& p){fConvPos=p;fConvPosSet=true;}
|
||||
void SetPosMax(const G4ThreeVector& p,G4double edep) {
|
||||
fPosMax = p;
|
||||
fEdepMax = edep;
|
||||
}
|
||||
|
||||
G4int GetPhotonCount_Scint()const {return fPhotonCount_Scint;}
|
||||
G4int GetPhotonCount_Ceren()const {return fPhotonCount_Ceren;}
|
||||
G4int GetHitCount()const {return fHitCount;}
|
||||
G4double GetEDep()const {return fTotE;}
|
||||
G4int GetAbsorptionCount()const {return fAbsorptionCount;}
|
||||
G4int GetBoundaryAbsorptionCount() const {return fBoundaryAbsorptionCount;}
|
||||
|
||||
G4ThreeVector GetEWeightPos(){return fEWeightPos;}
|
||||
G4ThreeVector GetReconPos(){return fReconPos;}
|
||||
G4ThreeVector GetConvPos(){return fConvPos;}
|
||||
G4ThreeVector GetPosMax(){return fPosMax;}
|
||||
G4double GetEDepMax(){return fEdepMax;}
|
||||
G4double IsConvPosSet(){return fConvPosSet;}
|
||||
|
||||
//Gets the total photon count produced
|
||||
G4int GetPhotonCount(){return fPhotonCount_Scint+fPhotonCount_Ceren;}
|
||||
|
||||
void IncPMTSAboveThreshold(){fPMTsAboveThreshold++;}
|
||||
G4int GetPMTSAboveThreshold(){return fPMTsAboveThreshold;}
|
||||
|
||||
|
||||
|
||||
private:
|
||||
|
||||
LXeRecorderBase* fRecorder;
|
||||
LXeEventMessenger* fEventMessenger;
|
||||
|
||||
G4int fSaveThreshold;
|
||||
@@ -78,6 +113,28 @@ class LXeEventAction : public G4UserEventAction
|
||||
G4bool fForcedrawphotons;
|
||||
G4bool fForcenophotons;
|
||||
|
||||
|
||||
G4int fHitCount;
|
||||
G4int fPhotonCount_Scint;
|
||||
G4int fPhotonCount_Ceren;
|
||||
G4int fAbsorptionCount;
|
||||
G4int fBoundaryAbsorptionCount;
|
||||
|
||||
G4double fTotE;
|
||||
|
||||
//These only have meaning if totE > 0
|
||||
//If totE = 0 then these wont be set by EndOfEventAction
|
||||
G4ThreeVector fEWeightPos;
|
||||
G4ThreeVector fReconPos; //Also relies on hitCount>0
|
||||
G4ThreeVector fConvPos;//true (initial) converstion position
|
||||
G4bool fConvPosSet;
|
||||
G4ThreeVector fPosMax;
|
||||
G4double fEdepMax;
|
||||
|
||||
G4int fPMTsAboveThreshold;
|
||||
|
||||
|
||||
|
||||
};
|
||||
|
||||
#endif
|
||||
|
||||
@@ -1,58 +0,0 @@
|
||||
//
|
||||
// ********************************************************************
|
||||
// * License and Disclaimer *
|
||||
// * *
|
||||
// * The Geant4 software is copyright of the Copyright Holders of *
|
||||
// * the Geant4 Collaboration. It is provided under the terms and *
|
||||
// * conditions of the Geant4 Software License, included in the file *
|
||||
// * LICENSE and available at http://cern.ch/geant4/license . These *
|
||||
// * include a list of copyright holders. *
|
||||
// * *
|
||||
// * Neither the authors of this software system, nor their employing *
|
||||
// * institutes,nor the agencies providing financial support for this *
|
||||
// * work make any representation or warranty, express or implied, *
|
||||
// * regarding this software system or assume any liability for its *
|
||||
// * use. Please see the license in the file LICENSE and URL above *
|
||||
// * for the full disclaimer and the limitation of liability. *
|
||||
// * *
|
||||
// * This code implementation is the result of the scientific and *
|
||||
// * technical work of the GEANT4 collaboration. *
|
||||
// * By using, copying, modifying or distributing the software (or *
|
||||
// * any work based on the software) you agree to acknowledge its *
|
||||
// * use in resulting scientific publications, and indicate your *
|
||||
// * acceptance of all terms of the Geant4 Software license. *
|
||||
// ********************************************************************
|
||||
//
|
||||
// $Id: LXeGeneralPhysics.hh 90338 2015-05-26 08:35:43Z gcosmo $
|
||||
//
|
||||
/// \file optical/LXe/include/LXeGeneralPhysics.hh
|
||||
/// \brief Definition of the LXeGeneralPhysics class
|
||||
//
|
||||
//
|
||||
#ifndef LXeGeneralPhysics_h
|
||||
#define LXeGeneralPhysics_h 1
|
||||
|
||||
#include "globals.hh"
|
||||
#include "G4ios.hh"
|
||||
|
||||
#include "G4VPhysicsConstructor.hh"
|
||||
|
||||
class LXeGeneralPhysics : public G4VPhysicsConstructor
|
||||
{
|
||||
public:
|
||||
|
||||
LXeGeneralPhysics(const G4String& name = "general");
|
||||
virtual ~LXeGeneralPhysics();
|
||||
|
||||
// This method will be invoked in the Construct() method.
|
||||
// each particle type will be instantiated
|
||||
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();
|
||||
|
||||
};
|
||||
|
||||
#endif
|
||||
+22
-14
@@ -23,29 +23,37 @@
|
||||
// * acceptance of all terms of the Geant4 Software license. *
|
||||
// ********************************************************************
|
||||
//
|
||||
// $Id: LXeSteppingVerbose.hh 68752 2013-04-05 10:23:47Z gcosmo $
|
||||
//
|
||||
/// \file optical/LXe/include/LXeSteppingVerbose.hh
|
||||
/// \brief Definition of the LXeSteppingVerbose class
|
||||
/// \file optical/LXe/include/LXeHistoManager.hh
|
||||
/// \brief Definition of the LXeHistoManager class
|
||||
//
|
||||
//
|
||||
#ifndef LXeSteppingVerbose_h
|
||||
#define LXeSteppingVerbose_h 1
|
||||
// $Id: LXeHistoManager.hh
|
||||
//
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
#include "G4SteppingVerbose.hh"
|
||||
#ifndef LXeHistoManager_h
|
||||
#define LXeHistoManager_h 1
|
||||
|
||||
class LXeSteppingVerbose : public G4SteppingVerbose
|
||||
#include "globals.hh"
|
||||
|
||||
#include "g4root.hh"
|
||||
//#include "g4xml.hh"
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
class LXeHistoManager
|
||||
{
|
||||
public:
|
||||
LXeHistoManager();
|
||||
~LXeHistoManager();
|
||||
|
||||
LXeSteppingVerbose();
|
||||
virtual ~LXeSteppingVerbose();
|
||||
|
||||
virtual void StepInfo();
|
||||
virtual void TrackingStarted();
|
||||
|
||||
private:
|
||||
void Book();
|
||||
G4String fFileName;
|
||||
};
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
#endif
|
||||
|
||||
@@ -1,65 +0,0 @@
|
||||
//
|
||||
// ********************************************************************
|
||||
// * License and Disclaimer *
|
||||
// * *
|
||||
// * The Geant4 software is copyright of the Copyright Holders of *
|
||||
// * the Geant4 Collaboration. It is provided under the terms and *
|
||||
// * conditions of the Geant4 Software License, included in the file *
|
||||
// * LICENSE and available at http://cern.ch/geant4/license . These *
|
||||
// * include a list of copyright holders. *
|
||||
// * *
|
||||
// * Neither the authors of this software system, nor their employing *
|
||||
// * institutes,nor the agencies providing financial support for this *
|
||||
// * work make any representation or warranty, express or implied, *
|
||||
// * regarding this software system or assume any liability for its *
|
||||
// * use. Please see the license in the file LICENSE and URL above *
|
||||
// * for the full disclaimer and the limitation of liability. *
|
||||
// * *
|
||||
// * This code implementation is the result of the scientific and *
|
||||
// * technical work of the GEANT4 collaboration. *
|
||||
// * By using, copying, modifying or distributing the software (or *
|
||||
// * any work based on the software) you agree to acknowledge its *
|
||||
// * use in resulting scientific publications, and indicate your *
|
||||
// * acceptance of all terms of the Geant4 Software license. *
|
||||
// ********************************************************************
|
||||
//
|
||||
// $Id: LXeMuonPhysics.hh 85587 2014-10-31 09:12:28Z gcosmo $
|
||||
//
|
||||
/// \file optical/LXe/include/LXeMuonPhysics.hh
|
||||
/// \brief Definition of the LXeMuonPhysics class
|
||||
//
|
||||
//
|
||||
#ifndef LXeMuonPhysics_h
|
||||
#define LXeMuonPhysics_h 1
|
||||
|
||||
#include "globals.hh"
|
||||
#include "G4ios.hh"
|
||||
|
||||
#include "G4VPhysicsConstructor.hh"
|
||||
#include "G4MuMultipleScattering.hh"
|
||||
#include "G4MuBremsstrahlung.hh"
|
||||
#include "G4MuPairProduction.hh"
|
||||
#include "G4MuIonisation.hh"
|
||||
#include "G4hIonisation.hh"
|
||||
|
||||
#include "G4MuonMinusCapture.hh"
|
||||
|
||||
class LXeMuonPhysics : public G4VPhysicsConstructor
|
||||
{
|
||||
public:
|
||||
|
||||
LXeMuonPhysics(const G4String& name="muon");
|
||||
virtual ~LXeMuonPhysics();
|
||||
|
||||
// This method will be invoked in the Construct() method.
|
||||
// each particle type will be instantiated
|
||||
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();
|
||||
|
||||
};
|
||||
|
||||
#endif
|
||||
@@ -1,52 +0,0 @@
|
||||
//
|
||||
// ********************************************************************
|
||||
// * License and Disclaimer *
|
||||
// * *
|
||||
// * The Geant4 software is copyright of the Copyright Holders of *
|
||||
// * the Geant4 Collaboration. It is provided under the terms and *
|
||||
// * conditions of the Geant4 Software License, included in the file *
|
||||
// * LICENSE and available at http://cern.ch/geant4/license . These *
|
||||
// * include a list of copyright holders. *
|
||||
// * *
|
||||
// * Neither the authors of this software system, nor their employing *
|
||||
// * institutes,nor the agencies providing financial support for this *
|
||||
// * work make any representation or warranty, express or implied, *
|
||||
// * regarding this software system or assume any liability for its *
|
||||
// * use. Please see the license in the file LICENSE and URL above *
|
||||
// * for the full disclaimer and the limitation of liability. *
|
||||
// * *
|
||||
// * This code implementation is the result of the scientific and *
|
||||
// * technical work of the GEANT4 collaboration. *
|
||||
// * By using, copying, modifying or distributing the software (or *
|
||||
// * any work based on the software) you agree to acknowledge its *
|
||||
// * use in resulting scientific publications, and indicate your *
|
||||
// * acceptance of all terms of the Geant4 Software license. *
|
||||
// ********************************************************************
|
||||
//
|
||||
// $Id: LXePhysicsList.hh 68752 2013-04-05 10:23:47Z gcosmo $
|
||||
//
|
||||
/// \file optical/LXe/include/LXePhysicsList.hh
|
||||
/// \brief Definition of the LXePhysicsList class
|
||||
//
|
||||
//
|
||||
#ifndef LXePhysicsList_h
|
||||
#define LXePhysicsList_h 1
|
||||
|
||||
#include "G4VModularPhysicsList.hh"
|
||||
#include "globals.hh"
|
||||
|
||||
class LXePhysicsList: public G4VModularPhysicsList
|
||||
{
|
||||
public:
|
||||
|
||||
LXePhysicsList();
|
||||
virtual ~LXePhysicsList();
|
||||
|
||||
public:
|
||||
|
||||
// SetCuts()
|
||||
virtual void SetCuts();
|
||||
|
||||
};
|
||||
|
||||
#endif
|
||||
@@ -1,94 +0,0 @@
|
||||
//
|
||||
// ********************************************************************
|
||||
// * License and Disclaimer *
|
||||
// * *
|
||||
// * The Geant4 software is copyright of the Copyright Holders of *
|
||||
// * the Geant4 Collaboration. It is provided under the terms and *
|
||||
// * conditions of the Geant4 Software License, included in the file *
|
||||
// * LICENSE and available at http://cern.ch/geant4/license . These *
|
||||
// * include a list of copyright holders. *
|
||||
// * *
|
||||
// * Neither the authors of this software system, nor their employing *
|
||||
// * institutes,nor the agencies providing financial support for this *
|
||||
// * work make any representation or warranty, express or implied, *
|
||||
// * regarding this software system or assume any liability for its *
|
||||
// * use. Please see the license in the file LICENSE and URL above *
|
||||
// * for the full disclaimer and the limitation of liability. *
|
||||
// * *
|
||||
// * This code implementation is the result of the scientific and *
|
||||
// * technical work of the GEANT4 collaboration. *
|
||||
// * By using, copying, modifying or distributing the software (or *
|
||||
// * any work based on the software) you agree to acknowledge its *
|
||||
// * use in resulting scientific publications, and indicate your *
|
||||
// * acceptance of all terms of the Geant4 Software license. *
|
||||
// ********************************************************************
|
||||
//
|
||||
// $Id: LXeRecorderBase.hh 68752 2013-04-05 10:23:47Z gcosmo $
|
||||
//
|
||||
/// \file optical/LXe/include/LXeRecorderBase.hh
|
||||
/// \brief Definition of the LXeRecorderBase class
|
||||
//
|
||||
// LXeRecorderBase.hh
|
||||
// 1-Sep-1999 Bill Seligman
|
||||
|
||||
// This is an abstract base class to be used with Geant 4.0.1 (and
|
||||
// possibly higher, if the User classes don't change).
|
||||
|
||||
// The concept of a Recorder object is that it records the activities of
|
||||
// Geant in a manner that is useful to a physicist. Perhaps this record
|
||||
// takes the form of histograms, or ntuples, or entries in an Objectivity
|
||||
// database. This class does not care HOW the information is recorded; it
|
||||
// abstracts the behavior of a generalized recorder of Geant variables.
|
||||
|
||||
// No object should be instantiated from the Recorder class (in fact, any such
|
||||
// object won't do anything). The user must define a new class (say, a class
|
||||
// that creates histograms) and overload the methods of this class.
|
||||
|
||||
// Why do this? First of all, it keeps all record-keeping in a single class:
|
||||
// the class that inherits Recorder. The original Geant documentation suggests
|
||||
// that recording activities should be split among many different classes
|
||||
// (initialization in G4UserRunAction, recording in G4UserSteppingAction, etc.).
|
||||
// If you use a Recorder class, than all the record-keeping details are kept in
|
||||
// a single class instead of being spread out among many different classes.
|
||||
|
||||
// Secondly, by using an abstract Recorder class, you hide the implementation
|
||||
// details from the rest of Geant. If you change a couple of histograms, only
|
||||
// the Recorder-derived class and main() re-compile. No other class knows or
|
||||
// cares what or how you record.
|
||||
|
||||
// The only time this class (i.e., this header file) changes is if new
|
||||
// user action classes are added to Geant.
|
||||
|
||||
#ifndef RECORDER_BASE_H_
|
||||
#define RECORDER_BASE_H_
|
||||
|
||||
// The following objects are the arguments to the methods
|
||||
// invoked in the user action classes. In other words, they
|
||||
// contain the variables that we are normally able to record
|
||||
// in Geant.
|
||||
|
||||
#include "G4Run.hh"
|
||||
#include "G4Event.hh"
|
||||
#include "G4Track.hh"
|
||||
#include "G4Step.hh"
|
||||
|
||||
class LXeRecorderBase {
|
||||
|
||||
public:
|
||||
|
||||
virtual ~LXeRecorderBase() {};
|
||||
|
||||
// The following a list of methods that correspond to the available
|
||||
// user action classes in Geant 4.0.1. In this base class, the
|
||||
// methods are defined to do nothing.
|
||||
|
||||
virtual void RecordBeginOfRun(const G4Run*) = 0;
|
||||
virtual void RecordEndOfRun(const G4Run*) = 0;
|
||||
virtual void RecordBeginOfEvent(const G4Event*) {};
|
||||
virtual void RecordEndOfEvent(const G4Event*) {};
|
||||
virtual void RecordTrack(const G4Track*) {};
|
||||
virtual void RecordStep(const G4Step*) {};
|
||||
|
||||
};
|
||||
|
||||
#endif
|
||||
@@ -0,0 +1,93 @@
|
||||
//
|
||||
// ********************************************************************
|
||||
// * 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 optical/LXe/include/Run.hh
|
||||
/// \brief Definition of the Run class
|
||||
//
|
||||
// $Id: Run.hh 71375 2013-06-14 07:39:33Z maire $
|
||||
//
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
#ifndef LXeRun_h
|
||||
#define LXeRun_h 1
|
||||
|
||||
#include "G4Run.hh"
|
||||
#include "globals.hh"
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
class LXeRun : public G4Run
|
||||
{
|
||||
public:
|
||||
LXeRun();
|
||||
~LXeRun();
|
||||
|
||||
void IncPhotonCount_Scint(G4int count) {
|
||||
fPhotonCount_Scint += count;
|
||||
fPhotonCount_Scint2 += count*count;
|
||||
}
|
||||
void IncPhotonCount_Ceren(G4int count) {
|
||||
fPhotonCount_Ceren += count;
|
||||
fPhotonCount_Ceren2 += count*count;
|
||||
}
|
||||
void IncEDep(G4double dep) {
|
||||
fTotE += dep;
|
||||
fTotE2 += dep*dep;
|
||||
}
|
||||
void IncAbsorption(G4int count) {
|
||||
fAbsorptionCount += count;
|
||||
fAbsorptionCount2 += count*count;
|
||||
}
|
||||
void IncBoundaryAbsorption(G4int count) {
|
||||
fBoundaryAbsorptionCount += count;
|
||||
fBoundaryAbsorptionCount2 += count*count;
|
||||
}
|
||||
void IncHitCount(G4int count) {
|
||||
fHitCount += count;
|
||||
fHitCount2 += count*count;
|
||||
}
|
||||
void IncHitsAboveThreshold(G4int count) {
|
||||
fPMTsAboveThreshold += count;
|
||||
fPMTsAboveThreshold2 += count*count;
|
||||
}
|
||||
|
||||
virtual void Merge(const G4Run* run);
|
||||
|
||||
void EndOfRun();
|
||||
|
||||
|
||||
private:
|
||||
G4int fHitCount, fHitCount2;
|
||||
G4int fPhotonCount_Scint, fPhotonCount_Scint2;
|
||||
G4int fPhotonCount_Ceren, fPhotonCount_Ceren2;
|
||||
G4int fAbsorptionCount, fAbsorptionCount2;
|
||||
G4int fBoundaryAbsorptionCount, fBoundaryAbsorptionCount2;
|
||||
G4int fPMTsAboveThreshold, fPMTsAboveThreshold2;
|
||||
|
||||
G4double fTotE, fTotE2;
|
||||
};
|
||||
|
||||
#endif // LXeRun_h
|
||||
@@ -23,7 +23,7 @@
|
||||
// * acceptance of all terms of the Geant4 Software license. *
|
||||
// ********************************************************************
|
||||
//
|
||||
// $Id: LXeRunAction.hh 68752 2013-04-05 10:23:47Z gcosmo $
|
||||
// $Id: LXeRunAction.hh 109784 2018-05-09 08:14:08Z gcosmo $
|
||||
//
|
||||
/// \file optical/LXe/include/LXeRunAction.hh
|
||||
/// \brief Definition of the LXeRunAction class
|
||||
@@ -34,21 +34,25 @@
|
||||
#ifndef LXeRunAction_h
|
||||
#define LXeRunAction_h 1
|
||||
|
||||
class LXeRecorderBase;
|
||||
class LXeRun;
|
||||
class LXeHistoManager;
|
||||
class G4Run;
|
||||
|
||||
class LXeRunAction : public G4UserRunAction
|
||||
{
|
||||
public:
|
||||
|
||||
LXeRunAction(LXeRecorderBase*);
|
||||
LXeRunAction();
|
||||
virtual ~LXeRunAction();
|
||||
|
||||
virtual G4Run* GenerateRun();
|
||||
virtual void BeginOfRunAction(const G4Run*);
|
||||
virtual void EndOfRunAction(const G4Run*);
|
||||
|
||||
private:
|
||||
|
||||
LXeRecorderBase* fRecorder;
|
||||
LXeRun* fRun;
|
||||
LXeHistoManager* fHistoManager;
|
||||
};
|
||||
|
||||
#endif
|
||||
|
||||
@@ -23,7 +23,7 @@
|
||||
// * acceptance of all terms of the Geant4 Software license. *
|
||||
// ********************************************************************
|
||||
//
|
||||
// $Id: LXeStackingAction.hh 68752 2013-04-05 10:23:47Z gcosmo $
|
||||
// $Id: LXeStackingAction.hh 109652 2018-05-04 08:49:34Z gcosmo $
|
||||
//
|
||||
/// \file optical/LXe/include/LXeStackingAction.hh
|
||||
/// \brief Definition of the LXeStackingAction class
|
||||
@@ -35,11 +35,13 @@
|
||||
#include "globals.hh"
|
||||
#include "G4UserStackingAction.hh"
|
||||
|
||||
class LXeEventAction;
|
||||
|
||||
class LXeStackingAction : public G4UserStackingAction
|
||||
{
|
||||
public:
|
||||
|
||||
LXeStackingAction();
|
||||
LXeStackingAction(LXeEventAction*);
|
||||
virtual ~LXeStackingAction();
|
||||
|
||||
virtual G4ClassificationOfNewTrack ClassifyNewTrack(const G4Track* aTrack);
|
||||
@@ -47,6 +49,7 @@ class LXeStackingAction : public G4UserStackingAction
|
||||
virtual void PrepareNewEvent();
|
||||
|
||||
private:
|
||||
LXeEventAction* fEventAction;
|
||||
};
|
||||
|
||||
#endif
|
||||
|
||||
@@ -23,7 +23,7 @@
|
||||
// * acceptance of all terms of the Geant4 Software license. *
|
||||
// ********************************************************************
|
||||
//
|
||||
// $Id: LXeSteppingAction.hh 68752 2013-04-05 10:23:47Z gcosmo $
|
||||
// $Id: LXeSteppingAction.hh 109784 2018-05-09 08:14:08Z gcosmo $
|
||||
//
|
||||
/// \file optical/LXe/include/LXeSteppingAction.hh
|
||||
/// \brief Definition of the LXeSteppingAction class
|
||||
@@ -36,7 +36,6 @@
|
||||
|
||||
#include "G4OpBoundaryProcess.hh"
|
||||
|
||||
class LXeRecorderBase;
|
||||
class LXeEventAction;
|
||||
class LXeTrackingAction;
|
||||
class LXeSteppingMessenger;
|
||||
@@ -45,7 +44,7 @@ class LXeSteppingAction : public G4UserSteppingAction
|
||||
{
|
||||
public:
|
||||
|
||||
LXeSteppingAction(LXeRecorderBase*);
|
||||
LXeSteppingAction(LXeEventAction*);
|
||||
virtual ~LXeSteppingAction();
|
||||
virtual void UserSteppingAction(const G4Step*);
|
||||
|
||||
@@ -54,9 +53,9 @@ class LXeSteppingAction : public G4UserSteppingAction
|
||||
|
||||
private:
|
||||
|
||||
LXeRecorderBase* fRecorder;
|
||||
G4bool fOneStepPrimaries;
|
||||
LXeSteppingMessenger* fSteppingMessenger;
|
||||
LXeEventAction* fEventAction;
|
||||
|
||||
G4OpBoundaryProcessStatus fExpectedNextStatus;
|
||||
};
|
||||
|
||||
@@ -23,7 +23,7 @@
|
||||
// * acceptance of all terms of the Geant4 Software license. *
|
||||
// ********************************************************************
|
||||
//
|
||||
// $Id: LXeTrackingAction.hh 68752 2013-04-05 10:23:47Z gcosmo $
|
||||
// $Id: LXeTrackingAction.hh 109784 2018-05-09 08:14:08Z gcosmo $
|
||||
//
|
||||
/// \file optical/LXe/include/LXeTrackingAction.hh
|
||||
/// \brief Definition of the LXeTrackingAction class
|
||||
@@ -35,13 +35,11 @@
|
||||
#include "G4UserTrackingAction.hh"
|
||||
#include "globals.hh"
|
||||
|
||||
class LXeRecorderBase;
|
||||
|
||||
class LXeTrackingAction : public G4UserTrackingAction {
|
||||
|
||||
public:
|
||||
|
||||
LXeTrackingAction(LXeRecorderBase*);
|
||||
LXeTrackingAction();
|
||||
virtual ~LXeTrackingAction() {};
|
||||
|
||||
virtual void PreUserTrackingAction(const G4Track*);
|
||||
@@ -49,8 +47,6 @@ class LXeTrackingAction : public G4UserTrackingAction {
|
||||
|
||||
private:
|
||||
|
||||
LXeRecorderBase* fRecorder;
|
||||
|
||||
};
|
||||
|
||||
#endif
|
||||
|
||||
@@ -1,102 +0,0 @@
|
||||
//
|
||||
// ********************************************************************
|
||||
// * License and Disclaimer *
|
||||
// * *
|
||||
// * The Geant4 software is copyright of the Copyright Holders of *
|
||||
// * the Geant4 Collaboration. It is provided under the terms and *
|
||||
// * conditions of the Geant4 Software License, included in the file *
|
||||
// * LICENSE and available at http://cern.ch/geant4/license . These *
|
||||
// * include a list of copyright holders. *
|
||||
// * *
|
||||
// * Neither the authors of this software system, nor their employing *
|
||||
// * institutes,nor the agencies providing financial support for this *
|
||||
// * work make any representation or warranty, express or implied, *
|
||||
// * regarding this software system or assume any liability for its *
|
||||
// * use. Please see the license in the file LICENSE and URL above *
|
||||
// * for the full disclaimer and the limitation of liability. *
|
||||
// * *
|
||||
// * This code implementation is the result of the scientific and *
|
||||
// * technical work of the GEANT4 collaboration. *
|
||||
// * By using, copying, modifying or distributing the software (or *
|
||||
// * any work based on the software) you agree to acknowledge its *
|
||||
// * use in resulting scientific publications, and indicate your *
|
||||
// * acceptance of all terms of the Geant4 Software license. *
|
||||
// ********************************************************************
|
||||
//
|
||||
// $Id: LXeUserEventInformation.hh 68752 2013-04-05 10:23:47Z gcosmo $
|
||||
//
|
||||
/// \file optical/LXe/include/LXeUserEventInformation.hh
|
||||
/// \brief Definition of the LXeUserEventInformation class
|
||||
//
|
||||
#include "G4VUserEventInformation.hh"
|
||||
#include "G4ThreeVector.hh"
|
||||
#include "globals.hh"
|
||||
|
||||
#ifndef LXeUserEventInformation_h
|
||||
#define LXeUserEventInformation_h 1
|
||||
|
||||
class LXeUserEventInformation : public G4VUserEventInformation
|
||||
{
|
||||
public:
|
||||
|
||||
LXeUserEventInformation();
|
||||
virtual ~LXeUserEventInformation();
|
||||
|
||||
inline virtual void Print()const{};
|
||||
|
||||
void IncPhotonCount_Scint(){fPhotonCount_Scint++;}
|
||||
void IncPhotonCount_Ceren(){fPhotonCount_Ceren++;}
|
||||
void IncEDep(G4double dep){fTotE+=dep;}
|
||||
void IncAbsorption(){fAbsorptionCount++;}
|
||||
void IncBoundaryAbsorption(){fBoundaryAbsorptionCount++;}
|
||||
void IncHitCount(G4int i=1){fHitCount+=i;}
|
||||
|
||||
void SetEWeightPos(const G4ThreeVector& p){fEWeightPos=p;}
|
||||
void SetReconPos(const G4ThreeVector& p){fReconPos=p;}
|
||||
void SetConvPos(const G4ThreeVector& p){fConvPos=p;fConvPosSet=true;}
|
||||
void SetPosMax(const G4ThreeVector& p,G4double edep){fPosMax=p;fEdepMax=edep;}
|
||||
|
||||
G4int GetPhotonCount_Scint()const {return fPhotonCount_Scint;}
|
||||
G4int GetPhotonCount_Ceren()const {return fPhotonCount_Ceren;}
|
||||
G4int GetHitCount()const {return fHitCount;}
|
||||
G4double GetEDep()const {return fTotE;}
|
||||
G4int GetAbsorptionCount()const {return fAbsorptionCount;}
|
||||
G4int GetBoundaryAbsorptionCount() const {return fBoundaryAbsorptionCount;}
|
||||
|
||||
G4ThreeVector GetEWeightPos(){return fEWeightPos;}
|
||||
G4ThreeVector GetReconPos(){return fReconPos;}
|
||||
G4ThreeVector GetConvPos(){return fConvPos;}
|
||||
G4ThreeVector GetPosMax(){return fPosMax;}
|
||||
G4double GetEDepMax(){return fEdepMax;}
|
||||
G4double IsConvPosSet(){return fConvPosSet;}
|
||||
|
||||
//Gets the total photon count produced
|
||||
G4int GetPhotonCount(){return fPhotonCount_Scint+fPhotonCount_Ceren;}
|
||||
|
||||
void IncPMTSAboveThreshold(){fPMTsAboveThreshold++;}
|
||||
G4int GetPMTSAboveThreshold(){return fPMTsAboveThreshold;}
|
||||
|
||||
private:
|
||||
|
||||
G4int fHitCount;
|
||||
G4int fPhotonCount_Scint;
|
||||
G4int fPhotonCount_Ceren;
|
||||
G4int fAbsorptionCount;
|
||||
G4int fBoundaryAbsorptionCount;
|
||||
|
||||
G4double fTotE;
|
||||
|
||||
//These only have meaning if totE > 0
|
||||
//If totE = 0 then these wont be set by EndOfEventAction
|
||||
G4ThreeVector fEWeightPos;
|
||||
G4ThreeVector fReconPos; //Also relies on hitCount>0
|
||||
G4ThreeVector fConvPos;//true (initial) converstion position
|
||||
G4bool fConvPosSet;
|
||||
G4ThreeVector fPosMax;
|
||||
G4double fEdepMax;
|
||||
|
||||
G4int fPMTsAboveThreshold;
|
||||
|
||||
};
|
||||
|
||||
#endif
|
||||
@@ -23,7 +23,7 @@
|
||||
// * acceptance of all terms of the Geant4 Software license. *
|
||||
// ********************************************************************
|
||||
//
|
||||
// $Id: LXeWLSFiber.hh 110132 2018-05-16 06:48:25Z gcosmo $
|
||||
// $Id: LXeWLSFiber.hh 108789 2018-03-07 08:42:56Z gcosmo $
|
||||
//
|
||||
/// \file optical/LXe/include/LXeWLSFiber.hh
|
||||
/// \brief Definition of the LXeWLSFiber class
|
||||
|
||||
Reference in New Issue
Block a user