ATLAS Offline Software
PhysicsAnalysis
ElectronPhotonID
ElectronPhotonFourMomentumCorrection
ElectronPhotonFourMomentumCorrection
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
14
#include <
AsgMessaging/AsgMessaging.h
>
15
#include <TFile.h>
16
#include <TProfile2D.h>
17
#include <
xAODCaloEvent/CaloClusterAuxContainer.h
>
18
#include <
xAODCaloEvent/CaloClusterContainer.h
>
19
#include <
xAODEgamma/Egamma.h
>
20
#include <
xAODEgamma/Electron.h
>
21
#include <
xAODEgamma/ElectronAuxContainer.h
>
22
#include <
xAODEgamma/ElectronContainer.h
>
23
#include <
xAODEgamma/Photon.h
>
24
#include <
xAODEgamma/PhotonAuxContainer.h
>
25
#include <
xAODEgamma/PhotonContainer.h
>
26
#include <
xAODEventInfo/EventInfo.h
>
27
#include <
xAODRootAccess/TEvent.h
>
28
#include <
xAODRootAccess/TStore.h
>
29
#include <
xAODTracking/TrackParticleAuxContainer.h
>
30
#include <
xAODTracking/TrackParticleContainer.h
>
31
#include <
xAODTracking/VertexAuxContainer.h
>
32
#include <
xAODTracking/VertexContainer.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;
63
xAOD::CaloClusterAuxContainer
* m_clAux;
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;
70
xAOD::TrackParticleContainer
* m_tracks;
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
AllowedVariables::e
e
Definition:
AsgElectronSelectorTool.cxx:37
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:67
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:83
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
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
Generated on Thu Nov 7 2024 21:14:15 for ATLAS Offline Software by
1.8.18