Import Geant4 11.4.0 source tree

This commit is contained in:
Gabriele Cosmo
2025-12-05 08:54:02 +01:00
parent a499fb82e9
commit b4a16de652
6484 changed files with 232674 additions and 221097 deletions
+20 -24
View File
@@ -23,16 +23,12 @@
// * acceptance of all terms of the Geant4 Software license. *
// ********************************************************************
//
// ********************************************************************
// CaTS (Calorimetry and Tracking Simulation)
//
// CaTS (Calorimetry and Tracking Simulation)
// Authors: Hans Wenzel and Soon Yung Jun
// (Fermi National Accelerator Laboratory)
//
// Authors : Hans Wenzel
// Soon Yung Jun
// (Fermi National Accelerator Laboratory)
//
// History
// October 18th, 2021 : first implementation
// History: October 18th, 2021 : first implementation
//
// ********************************************************************
//
@@ -71,6 +67,7 @@
#include "lArTPCSD.hh"
#include "ConfigurationManager.hh"
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
lArTPCSD::lArTPCSD(G4String name)
: G4VSensitiveDetector(name)
{
@@ -86,6 +83,7 @@ lArTPCSD::lArTPCSD(G4String name)
first = true;
}
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
void lArTPCSD::Initialize(G4HCofThisEvent* hce)
{
flArTPCHitsCollection =
@@ -102,6 +100,7 @@ void lArTPCSD::Initialize(G4HCofThisEvent* hce)
hce->AddHitsCollection(fHCID, flArTPCHitsCollection);
}
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
G4bool lArTPCSD::ProcessHits(G4Step* aStep, G4TouchableHistory*)
{
G4double edep = aStep->GetTotalEnergyDeposit();
@@ -272,7 +271,7 @@ G4bool lArTPCSD::ProcessHits(G4Step* aStep, G4TouchableHistory*)
for(G4int i = 0; i < hctable->entries(); ++i)
{
std::string sdn = hctable->GetSDname(i);
std::size_t found = sdn.find("Photondetector");
std::size_t found = sdn.find("PhotonDetector");
if(found != std::string::npos)
{
PhotonSD* aSD =
@@ -288,6 +287,7 @@ G4bool lArTPCSD::ProcessHits(G4Step* aStep, G4TouchableHistory*)
return true;
}
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
void lArTPCSD::EndOfEvent(G4HCofThisEvent*)
{
tSphotons = 0;
@@ -299,26 +299,22 @@ void lArTPCSD::EndOfEvent(G4HCofThisEvent*)
}
}
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
G4double lArTPCSD::NumElectrons(G4double edep, G4double ds)
{
G4double dEdx = std::max((ds <= 0.0) ? 0.0 : edep / ds, 1.0);
// Nucl.Instrum.Meth.A523:275-286,2004
G4double fGeVToElectrons = 4.237e+07;
G4double fModBoxA = 0.930;
G4double fModBoxB = 0.212;
G4double EFieldStep = 0.5;
G4double recomb = 0.0;
G4double dEdx = (ds <= 0.0) ? 0.0 : edep / ds;
if(dEdx < 1.)
dEdx = 1.;
const G4double fGeVToElectrons = 4.237e+04;
G4double recomb = 0.0;
if(ds > 0)
{
G4double Xi = fModBoxB * dEdx / EFieldStep;
G4double fModBoxA = 0.930;
G4double fModBoxB = 0.212;
G4double Xi = 2.0 * fModBoxB * dEdx;
recomb = std::log(fModBoxA + Xi) / Xi;
}
else
{
recomb = 0.0;
}
G4double fNumIonElectrons = fGeVToElectrons * 1.e-3 * edep * recomb;
return fNumIonElectrons;
return fGeVToElectrons * edep * recomb;
}