ATLAS Offline Software
Classes | Public Types | Public Member Functions | Private Member Functions | List of all members
CaloG4::SimulationEnergies Class Reference

#include <SimulationEnergies.h>

Collaboration diagram for CaloG4::SimulationEnergies:

Classes

struct  ClassifyResult_t
 This defines the results returned by the energy classification; these detailed results are mostly used for studies. More...
 

Public Types

enum  eEnergyCategory {
  kEm = 0, kNonEm, kInvisible0, kEscaped,
  kNumberOfEnergyCategories
}
 Accessing detailed information: More...
 

Public Member Functions

 SimulationEnergies ()
 
virtual ~SimulationEnergies ()
 
void Energies (const G4Step *, std::vector< G4double > &) const
 The simple method to call from a calibration calculator: Examine the G4Step and return the energies required for a calibration hit. More...
 
ClassifyResult_t Classify (const G4Step *, const G4bool processEscaped=true) const
 This method performs the actual function of this class: It classifies the components of the energy deposited by the current G4Step. More...
 

Private Member Functions

G4double measurableEnergy (const G4ParticleDefinition *particleDef, G4int PDGEncoding, G4double totalEnergy, G4double kineticEnergy) const
 Some private methods for internal calculations: More...
 
G4double measurableEnergyV2 (const G4ParticleDefinition *particleDef, G4int PDGEncoding, G4double totalEnergy, G4double kineticEnergy) const
 
G4bool ProcessEscapedEnergy (G4Step *fakeStep) const
 
G4bool ParticleIsNeutrino (G4ParticleDefinition *particle) const
 
std::unique_ptr< G4Step > CreateFakeStep (G4Track *a_track, G4double a_energy) const
 

Detailed Description

This class implements the calculations requires to categorize the energies deposited during the simulation. This "Monte Carlo truth" information is used in calibration studies and other applications.

12-Aug-2009 M. Leltchouk: this code update improves performance. Many thanks to Zachary Marshall for introducing and coding or suggesting most of these changes and to Gennady Pospelov for supporting this code (including careful testing) and the whole "machinary of calibration hits" which he greatly improved and extended.

07-Jan-2004 Mikhail Leltchouk with code additions and great support from William Glenn Seligman (WGS). Columbia University in the City of New York, Nevis Labs, 136 South Broadway, Irvington, NY 10533, USA

29-Jun-2004 WGS: Take advantage of the new features of Geant 4.6.2: this class no longer has to be a singleton, and it need no longer inherit from G4VSteppingVerbose.

Definition at line 46 of file SimulationEnergies.h.

Member Enumeration Documentation

◆ eEnergyCategory

Accessing detailed information:

It's useful to define some types here. The following enum uses a C++ trick: the first item in the list is set to zero. Therefore, "kNumberOfEnergyCategories" will be equal to the number of entries in the enum.

Enumerator
kEm 
kNonEm 
kInvisible0 
kEscaped 
kNumberOfEnergyCategories 

Definition at line 65 of file SimulationEnergies.h.

66  { kEm = 0,
67  kNonEm,
69  /* 12-Aug-2009 we compared three different techniques
70  kInvisible1, // to determine the energy lost
71  kInvisible2, // due to "invisible" processes in the detector
72  and chose one of them for production runs
73  */
74  kEscaped,

Constructor & Destructor Documentation

◆ SimulationEnergies()

CaloG4::SimulationEnergies::SimulationEnergies ( )

◆ ~SimulationEnergies()

virtual CaloG4::SimulationEnergies::~SimulationEnergies ( )
virtual

Member Function Documentation

◆ Classify()

ClassifyResult_t CaloG4::SimulationEnergies::Classify ( const G4Step *  ,
const G4bool  processEscaped = true 
) const

This method performs the actual function of this class: It classifies the components of the energy deposited by the current G4Step.

Allow a flag to control whether the escaped energy is routed to some other volume that the one in which the G4Step occurs.

◆ CreateFakeStep()

std::unique_ptr<G4Step> CaloG4::SimulationEnergies::CreateFakeStep ( G4Track *  a_track,
G4double  a_energy 
) const
private

◆ Energies()

void CaloG4::SimulationEnergies::Energies ( const G4Step *  ,
std::vector< G4double > &   
) const

The simple method to call from a calibration calculator: Examine the G4Step and return the energies required for a calibration hit.

◆ measurableEnergy()

G4double CaloG4::SimulationEnergies::measurableEnergy ( const G4ParticleDefinition *  particleDef,
G4int  PDGEncoding,
G4double  totalEnergy,
G4double  kineticEnergy 
) const
private

Some private methods for internal calculations:

◆ measurableEnergyV2()

G4double CaloG4::SimulationEnergies::measurableEnergyV2 ( const G4ParticleDefinition *  particleDef,
G4int  PDGEncoding,
G4double  totalEnergy,
G4double  kineticEnergy 
) const
private

◆ ParticleIsNeutrino()

G4bool CaloG4::SimulationEnergies::ParticleIsNeutrino ( G4ParticleDefinition *  particle) const
private

◆ ProcessEscapedEnergy()

G4bool CaloG4::SimulationEnergies::ProcessEscapedEnergy ( G4Step *  fakeStep) const
private

The documentation for this class was generated from the following file:
CaloG4::SimulationEnergies::kNumberOfEnergyCategories
@ kNumberOfEnergyCategories
Definition: SimulationEnergies.h:75
CaloG4::SimulationEnergies::kEm
@ kEm
Definition: SimulationEnergies.h:66
CaloG4::SimulationEnergies::kNonEm
@ kNonEm
Definition: SimulationEnergies.h:67
CaloG4::SimulationEnergies::kInvisible0
@ kInvisible0
Definition: SimulationEnergies.h:68
CaloG4::SimulationEnergies::kEscaped
@ kEscaped
Definition: SimulationEnergies.h:74