ATLAS Offline Software
Loading...
Searching...
No Matches
LArG4GenShowerLib.h
Go to the documentation of this file.
1/*
2 Copyright (C) 2002-2025 CERN for the benefit of the ATLAS collaboration
3*/
4
5#ifndef LARG4GENSHOWERLIB_LARG4GENSHLIB_H
6#define LARG4GENSHOWERLIB_LARG4GENSHLIB_H
7
8// STL includes
9#include <string>
10#include <list>
11#include <map>
12
14
15// CLHEP include(s)
16#include "CLHEP/Vector/ThreeVector.h"
17
18// forward includes in namespaces
19namespace ShowerLib {
20 class IShowerLib;
22 class StepInfo;
23 typedef std::list<StepInfo*> StepInfoList;
24}
26
27
41
42 public:
44
45 virtual StatusCode initialize() override;
46 virtual StatusCode finalize() override;
47 virtual StatusCode execute() override;
48
49 private:
50
51 void clusterize(ShowerLib::StepInfoList* stepinfo);
52
54
56
58
59 void truncate(ShowerLib::StepInfoList* stepinfo);
60
65 double& weights, double& xavfra, double& yavfra, double& ravfra);
68
69 /* data members */
70 DoubleProperty m_maxDistance {this, "MaxDistance", 50000.
71 , "max distance squared after which the hits will be truncated"};
72 DoubleProperty m_maxRadius {this, "MaxRadius", 25.
73 , "maximal radius squared until two hits will be combined"};
74 DoubleProperty m_minEnergy {this, "MinEnergy", .99
75 , "energy border, that truncation won't cross"};
76 DoubleProperty m_containmentEnergy {this, "ContainmentEnergy", 0.95
77 , "energy fraction that will be inside containment borders"};
78 DoubleProperty m_energyFraction {this, "EnergyFraction", .02
79 , "the allowed amount of energy that can be deposited outside calorimeter region"};
80 StringProperty m_physicslist_name {this, "PhysicsList", "FTFP_BERT"
81 , "Geant4 PhysicsList used in the simulation"};
82 StringArrayProperty m_lib_struct_files {this, "LibStructFiles", {}
83 , "List of files to read library structures from"};
84
85 typedef std::map<std::string, ShowerLib::IShowerLib*> libMap;
88
93
94 std::map<ShowerLib::IShowerLib*, int> m_stat_lib_saved;
95 std::map<ShowerLib::IShowerLib*, int> m_stat_lib_notsaved;
96}; // class LArG4GenShowerLib
97
98#endif // LARG4GENSHOWERLIB_LARG4GENSHLIB_H
AthAlgorithm(const std::string &name, ISvcLocator *pSvcLocator)
Constructor with parameters:
Class for shower library generation algorithm.
virtual StatusCode initialize() override
StringArrayProperty m_lib_struct_files
void addingTagsToLibrary()
adding tag information (release, detector description, ...) to library comment
libMap m_libraries
pointer to shower library
virtual StatusCode execute() override
DoubleProperty m_containmentEnergy
property, see LArG4GenShowerLib::LArG4GenShowerLib
DoubleProperty m_energyFraction
property, see LArG4GenShowerLib::LArG4GenShowerLib
StringProperty m_physicslist_name
std::map< ShowerLib::IShowerLib *, int > m_stat_lib_notsaved
void truncate(ShowerLib::StepInfoList *stepinfo)
std::map< ShowerLib::IShowerLib *, int > m_stat_lib_saved
void clusterize(ShowerLib::StepInfoList *stepinfo)
DoubleProperty m_maxDistance
property, see LArG4GenShowerLib::LArG4GenShowerLib
void calculateMoments(const ShowerLib::StepInfoCollection &eventSteps, double &weights, double &xavfra, double &yavfra, double &ravfra)
calculate moments from StepInfoCollection
std::map< std::string, ShowerLib::IShowerLib * > libMap
DoubleProperty m_minEnergy
property, see LArG4GenShowerLib::LArG4GenShowerLib
ShowerLib::StepInfoList * copyStepInfo(const ShowerLib::StepInfoCollection *stepinfo)
DoubleProperty m_maxRadius
property, see LArG4GenShowerLib::LArG4GenShowerLib
HepMC::ConstGenParticlePtr getParticleFromMC()
return first MC truth particle for event
virtual StatusCode finalize() override
const ShowerLib::StepInfoCollection * getStepInfo()
ShowerLib::StepInfoList * copyStepInfoZeroCleanup(const ShowerLib::StepInfoCollection *stepinfo)
AthAlgorithm(const std::string &name, ISvcLocator *pSvcLocator)
Constructor with parameters:
Class for shower library shower lib interface.
Definition IShowerLib.h:40
Class for collection of StepInfo class (G4 hits)
Class to collect information about G4 steps.
Definition StepInfo.h:35
const GenParticle * ConstGenParticlePtr
Definition GenParticle.h:38
Namespace for the ShowerLib related classes.
Definition StepInfo.h:17
std::list< StepInfo * > StepInfoList