ATLAS Offline Software
EgammaFactory.h
Go to the documentation of this file.
1 /*
2  Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration
3 */
4 
5 #ifndef EGAMMAFACTORY_H
6 #define EGAMMAFACTORY_H
7 
8 #ifdef XAOD_STANDALONE
9 
15 #include <TFile.h>
16 #include <TProfile2D.h>
19 #include <xAODEgamma/Egamma.h>
20 #include <xAODEgamma/Electron.h>
23 #include <xAODEgamma/Photon.h>
27 #include <xAODRootAccess/TEvent.h>
28 #include <xAODRootAccess/TStore.h>
33 
34 #include <array>
35 #include <memory>
36 
37 class EgammaFactory : public asg::AsgMessaging {
38  public:
39  EgammaFactory();
40  ~EgammaFactory();
41  void clear();
42  void create_structure();
43  xAOD::CaloCluster* create_cluster(float eta, float phi, float e0, float e1,
44  float e2, float e3, float e);
45  xAOD::Photon* create_converted_photon(float eta, float phi, float e);
46  xAOD::Photon* create_unconverted_photon(float eta, float phi, float e);
47  xAOD::Photon* create_photon(float eta, float phi, float e, float rconv = 0,
48  float zconv = 0);
49  xAOD::Photon* create_photon(float eta, float phi, float e0, float e1,
50  float e2, float e3, float e, float rconv = 0,
51  float zconv = 0);
52  xAOD::Electron* create_electron(float eta, float phi, float e);
53  xAOD::Electron* create_electron(float eta, float phi, float e0, float e1,
54  float e2, float e3, float e);
55  // TODO: fix mu
56  xAOD::EventInfo* create_eventinfo(bool simulation, int runnumber,
57  int eventnumber = 1,
58  int average_interaction_per_crossing = 20);
59 
60  private:
61  xAOD::TStore m_store;
62  xAOD::CaloClusterContainer* m_clusters;
64  xAOD::VertexContainer* m_vertexes;
65  xAOD::VertexAuxContainer* m_vxAux;
66  xAOD::PhotonContainer* m_photons;
67  xAOD::PhotonAuxContainer* m_photonsAux;
68  xAOD::ElectronContainer* m_electrons;
69  xAOD::ElectronAuxContainer* m_electronsAux;
71  xAOD::TrackParticleAuxContainer* m_tracksAux;
72 
73  std::unique_ptr<TFile> m_fave;
74  std::array<TProfile2D*, 4> m_histos_electron;
75  std::array<TProfile2D*, 4> m_histos_conv;
76  std::array<TProfile2D*, 4> m_histos_unconv;
77  TProfile2D* m_histo_rconv;
78  TProfile2D* m_histo_zconv;
79  std::array<double, 4> get_layers_fraction(
80  const std::array<TProfile2D*, 4>& prof, double eta, double pt) const;
81 };
82 
83 #else
84 
85 struct EgammaFactory {};
86 
87 #endif
88 
89 #endif
xAOD::TrackParticleAuxContainer_v5
Temporary container used until we have I/O for AuxStoreInternal.
Definition: TrackParticleAuxContainer_v5.h:35
xAOD::VertexAuxContainer_v1
Temporary container used until we have I/O for AuxStoreInternal.
Definition: VertexAuxContainer_v1.h:32
phi
Scalar phi() const
phi method
Definition: AmgMatrixBasePlugin.h:64
egammaEnergyPositionAllSamples::e1
double e1(const xAOD::CaloCluster &cluster)
return the uncorrected cluster energy in 1st sampling
eta
Scalar eta() const
pseudorapidity method
Definition: AmgMatrixBasePlugin.h:79
TProfile2D
Definition: rootspy.cxx:531
test_pyathena.pt
pt
Definition: test_pyathena.py:11
CaloClusterAuxContainer.h
AsgMessaging.h
Egamma.h
EgammaFactory
Definition: EgammaFactory.h:85
xAOD::CaloCluster_v1
Description of a calorimeter cluster.
Definition: CaloCluster_v1.h:59
CheckAppliedSFs.e3
e3
Definition: CheckAppliedSFs.py:264
TrackParticleAuxContainer.h
ElectronContainer.h
ElectronAuxContainer.h
Photon.h
TEvent.h
DataVector
Derived DataVector<T>.
Definition: DataVector.h:581
DeMoScan.runnumber
runnumber
Definition: DeMoScan.py:266
xAOD::CaloClusterAuxContainer_v2
Auxiliary container for calorimeter cluster containers.
Definition: CaloClusterAuxContainer_v2.h:30
asg::AsgMessaging
Class mimicking the AthMessaging class from the offline software.
Definition: AsgMessaging.h:40
xAOD::Electron_v1
Definition: Electron_v1.h:34
EventInfo.h
xAOD::EventInfo_v1
Class describing the basic event information.
Definition: EventInfo_v1.h:43
VertexContainer.h
DiTauMassTools::MaxHistStrategyV2::e
e
Definition: PhysicsAnalysis/TauID/DiTauMassTools/DiTauMassTools/HelperFunctions.h:26
xAOD::TStore
A relatively simple transient store for objects created in analysis.
Definition: TStore.h:44
PhotonAuxContainer.h
VKalVrtAthena::varHolder_detail::clear
void clear(T &var)
Definition: NtupleVars.h:48
xAOD::PhotonAuxContainer_v3
Auxiliary store for offline photons.
Definition: PhotonAuxContainer_v3.h:36
xAOD::ElectronAuxContainer_v3
Container holding the payload of the electron container.
Definition: ElectronAuxContainer_v3.h:36
xAOD::Photon_v1
Definition: Photon_v1.h:37
egammaEnergyPositionAllSamples::e2
double e2(const xAOD::CaloCluster &cluster)
return the uncorrected cluster energy in 2nd sampling
CaloClusterContainer.h
Electron.h
egammaEnergyPositionAllSamples::e0
double e0(const xAOD::CaloCluster &cluster)
return the uncorrected cluster energy in pre-sampler
PhotonContainer.h
TStore.h
TrackParticleContainer.h
VertexAuxContainer.h