ATLAS Offline Software
LArG4GenShowerLib.h
Go to the documentation of this file.
1 /*
2  Copyright (C) 2002-2017 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
19 namespace ShowerLib {
20  class IShowerLib;
21  class StepInfoCollection;
22  class StepInfo;
23  typedef std::list<StepInfo*> StepInfoList;
24 }
26 
27 
41 
42  public:
43 
44  LArG4GenShowerLib(const std::string& name, ISvcLocator* pSvcLocator);
45 
49 
50  private:
51 
52  void clusterize(ShowerLib::StepInfoList* stepinfo);
53 
55 
57 
59 
60  void truncate(ShowerLib::StepInfoList* stepinfo);
61 
65  void calculateMoments(const ShowerLib::StepInfoCollection& eventSteps,
66  double& weights, double& xavfra, double& yavfra, double& ravfra);
68  void addingTagsToLibrary();
69 
70  /* data members */
71 
72  DoubleProperty m_maxDistance;
73  DoubleProperty m_maxRadius;
74  DoubleProperty m_minEnergy;
75  DoubleProperty m_containmentEnergy;
76  DoubleProperty m_energyFraction;
77 
78  StringArrayProperty m_lib_struct_files;
79 
80  typedef std::map<std::string, ShowerLib::IShowerLib*> libMap;
83 
88 
89  std::map<ShowerLib::IShowerLib*, int> m_stat_lib_saved;
90  std::map<ShowerLib::IShowerLib*, int> m_stat_lib_notsaved;
91 
92  std::string m_physicslist_name;
93 
94 
95 }; // class LArG4GenShowerLib
96 
97 #endif // LARG4GENSHOWERLIB_LARG4GENSHLIB_H
LArG4GenShowerLib::truncate
void truncate(ShowerLib::StepInfoList *stepinfo)
Definition: LArG4GenShowerLib.cxx:393
LArG4GenShowerLib::m_energyFraction
DoubleProperty m_energyFraction
property, see LArG4GenShowerLib::LArG4GenShowerLib
Definition: LArG4GenShowerLib.h:76
LArG4GenShowerLib::m_stat_lib_notsaved
std::map< ShowerLib::IShowerLib *, int > m_stat_lib_notsaved
Definition: LArG4GenShowerLib.h:90
ShowerLib::StepInfoList
std::list< StepInfo * > StepInfoList
Definition: LArG4GenShowerLib.h:22
LArG4GenShowerLib::getStepInfo
const ShowerLib::StepInfoCollection * getStepInfo()
Definition: LArG4GenShowerLib.cxx:291
LArG4GenShowerLib::m_libraries
libMap m_libraries
pointer to shower library
Definition: LArG4GenShowerLib.h:81
LArG4GenShowerLib::m_maxRadius
DoubleProperty m_maxRadius
property, see LArG4GenShowerLib::LArG4GenShowerLib
Definition: LArG4GenShowerLib.h:73
GenParticle_fwd.h
ShowerLib::StepInfoCollection
Class for collection of StepInfo class (G4 hits)
Definition: StepInfoCollection.h:32
LArG4GenShowerLib::copyStepInfo
ShowerLib::StepInfoList * copyStepInfo(const ShowerLib::StepInfoCollection *stepinfo)
Definition: LArG4GenShowerLib.cxx:300
LArG4GenShowerLib::copyStepInfoZeroCleanup
ShowerLib::StepInfoList * copyStepInfoZeroCleanup(const ShowerLib::StepInfoCollection *stepinfo)
Definition: LArG4GenShowerLib.cxx:313
LArG4GenShowerLib::m_maxDistance
DoubleProperty m_maxDistance
property, see LArG4GenShowerLib::LArG4GenShowerLib
Definition: LArG4GenShowerLib.h:72
LArG4GenShowerLib::m_lib_struct_files
StringArrayProperty m_lib_struct_files
Definition: LArG4GenShowerLib.h:78
LArG4GenShowerLib::m_stat_invalid
int m_stat_invalid
Definition: LArG4GenShowerLib.h:86
LArG4GenShowerLib::m_stat_numshowers
int m_stat_numshowers
Definition: LArG4GenShowerLib.h:84
LArG4GenShowerLib::m_physicslist_name
std::string m_physicslist_name
Definition: LArG4GenShowerLib.h:92
AthAlgorithm.h
LArG4GenShowerLib::m_stat_valid
int m_stat_valid
Definition: LArG4GenShowerLib.h:85
LArG4GenShowerLib::addingTagsToLibrary
void addingTagsToLibrary()
adding tag information (release, detector description, ...) to library comment
Definition: LArG4GenShowerLib.cxx:427
LArG4GenShowerLib::m_stat_nolib
int m_stat_nolib
Definition: LArG4GenShowerLib.h:87
EL::StatusCode
::StatusCode StatusCode
StatusCode definition for legacy code.
Definition: PhysicsAnalysis/D3PDTools/EventLoop/EventLoop/StatusCode.h:22
ShowerLib::IShowerLib
Class for shower library shower lib interface.
Definition: IShowerLib.h:40
LArG4GenShowerLib::clusterize
void clusterize(ShowerLib::StepInfoList *stepinfo)
Definition: LArG4GenShowerLib.cxx:342
LArG4GenShowerLib::m_minEnergy
DoubleProperty m_minEnergy
property, see LArG4GenShowerLib::LArG4GenShowerLib
Definition: LArG4GenShowerLib.h:74
AthAlgorithm
Definition: AthAlgorithm.h:47
LArG4GenShowerLib::finalize
StatusCode finalize()
Definition: LArG4GenShowerLib.cxx:466
LArG4GenShowerLib::execute
StatusCode execute()
Definition: LArG4GenShowerLib.cxx:144
HepMC::ConstGenParticlePtr
const GenParticle * ConstGenParticlePtr
Definition: GenParticle.h:38
name
std::string name
Definition: Control/AthContainers/Root/debug.cxx:195
LArG4GenShowerLib::m_libraries_by_filename
libMap m_libraries_by_filename
Definition: LArG4GenShowerLib.h:82
LArG4GenShowerLib::calculateMoments
void calculateMoments(const ShowerLib::StepInfoCollection &eventSteps, double &weights, double &xavfra, double &yavfra, double &ravfra)
calculate moments from StepInfoCollection
Definition: LArG4GenShowerLib.cxx:505
LArG4GenShowerLib::getParticleFromMC
HepMC::ConstGenParticlePtr getParticleFromMC()
return first MC truth particle for event
Definition: LArG4GenShowerLib.cxx:275
LArG4GenShowerLib::m_containmentEnergy
DoubleProperty m_containmentEnergy
property, see LArG4GenShowerLib::LArG4GenShowerLib
Definition: LArG4GenShowerLib.h:75
ShowerLib
Namespace for the ShowerLib related classes.
Definition: LArG4GenShowerLib.h:19
LArG4GenShowerLib::libMap
std::map< std::string, ShowerLib::IShowerLib * > libMap
Definition: LArG4GenShowerLib.h:80
LArG4GenShowerLib::initialize
StatusCode initialize()
Definition: LArG4GenShowerLib.cxx:103
LArG4GenShowerLib
Class for shower library generation algorithm.
Definition: LArG4GenShowerLib.h:40
LArG4GenShowerLib::m_stat_lib_saved
std::map< ShowerLib::IShowerLib *, int > m_stat_lib_saved
Definition: LArG4GenShowerLib.h:89
ShowerLib::StepInfo
Class to collect information about G4 steps.
Definition: StepInfo.h:35
LArG4GenShowerLib::LArG4GenShowerLib
LArG4GenShowerLib(const std::string &name, ISvcLocator *pSvcLocator)
Definition: LArG4GenShowerLib.cxx:84