ATLAS Offline Software
Loading...
Searching...
No Matches
GetLCSinglePionsPerf.h
Go to the documentation of this file.
1/*
2 Copyright (C) 2002-2022 CERN for the benefit of the ATLAS collaboration
3*/
4
5#ifndef CALOLOCALHADCALIB_GETLCSINGLEPIONSPERF_H
6#define CALOLOCALHADCALIB_GETLCSINGLEPIONSPERF_H
7
16
17
23#include <vector>
24#include <string>
25#include <set>
26
27
28class AtlasDetectorID;
29class CaloCell_ID;
31
32class TFile;
33class TH1F;
34class TProfile;
35class TProfile2D;
36
38{
39
40 public:
41 GetLCSinglePionsPerf(const std::string& name, ISvcLocator* pSvcLocator);
42 virtual ~GetLCSinglePionsPerf();
43 virtual StatusCode initialize();
44 virtual StatusCode execute();
45 virtual StatusCode finalize();
46
47 static double angle_mollier_factor(double x);
48
49 private:
50 typedef std::pair<std::string,xAOD::CaloCluster::MomentType> moment_name_pair;
51 typedef std::vector<moment_name_pair> moment_name_vector;
52
57
61
64 std::string m_outputFileName;
65 TFile * m_outputFile;
69
71
73 float m_etamin;
74 float m_etamax;
75 float m_deta;
77 float m_phimin;
78 float m_phimax;
79 float m_dphi;
85 int m_nnormtype; // pion energy, calibration level, calibration level with ideal previous step
86 int m_ncluscoll; // CaloTopoCluster, CaloWTopoCluster, CaloOOCTopoCluster, CaloCalTopoCluster
87 int m_ntagcases; // TAGGEDEM, TAGGEDHAD, TAGGEDUNKNOWN
88 int m_nmoments; // number of moments assigned to clusters we want to study
89 int m_nmomsums; // ratio of moment assigned to cls0, cls1, cls2, cls_sum, non assigned
90// int m_nhitsums; // number of histograms for calibration hits validation
91
103
104 // ereco over truth after each step of calibration
105 std::vector<std::vector<std::vector<TProfile *> > > m_engRecOverTruth_vs_eta; // [ncluscoll][nnormtype][nenerbin]
106 std::vector<std::vector<std::vector<TProfile *> > > m_engRecOverTruth_vs_ebeam; // [ncluscoll][nnormtype][netabin]
107 // classification performance
108 std::vector<std::vector<TProfile *> > m_engTag_vs_eta; // [ntagcases][nenerbin]
109 std::vector<std::vector<TProfile *> > m_engTag_vs_ebeam; // [ntagcases][netabin]
110 // reconstructed energy spectras after each step of calibration
111 std::vector<std::vector<std::vector<TH1F *> > > m_engRecSpect; // [ncluscoll][nenerbin][netabin]
112 // average incident pion energy in bins
113 std::vector<std::vector<TH1F *> > m_engPionSpect; // [nenerbin][netabin]
114 // spectra of noise clusters
115 std::vector<std::vector<TH1F *> > m_engNoiseClusSpect; // [ncluscoll][netabin]
116 std::vector<TProfile *> m_engNoiseClus_vs_eta; // [ncluscoll]
117 // cluster moments
118 std::vector<std::vector<std::vector<TProfile *> > > m_clusMoment_vs_eta; // [nmoments][nmomsums][nenerbin]
119 std::vector<std::vector<std::vector<TProfile *> > > m_clusMoment_vs_ebeam; // [nmoments][nmomsums][netabin]
120 // reconstruction efficiency
121 std::vector<TH1F *> m_RecoEfficiency_vs_eta[2]; // [nenerbin]
122 std::vector<TH1F *> m_RecoEfficiency_vs_ebeam[2]; // [netabin]
123 // calibration hits
124 std::vector<TProfile *> m_SumCalibHitOverEbeam_vs_eta; // [nenerbin]
125 //std::vector<TProfile *> m_SumCalibHitOverEbeam_vs_ebeam; // [netabin]
126 std::vector<TProfile *> m_DefaultCalculatorOverEbeam_vs_eta; // [nenerbin]
127 //std::vector<TProfile *> m_DefaultCalculatorOverEbeam_vs_ebeam; // [netabin]
128 std::vector<TProfile *> m_SumCalibHitAssignedOverEbeam_vs_eta; // [nenerbin]
129 std::vector<TProfile2D *> m_SumCalibHitAssignedOverEbeam_vs_etaphi; // [nenerbin]
130
131 double m_mc_ener;
132 double m_mc_eta;
133 double m_mc_phi;
137
138 int fill_reco (const xAOD::CaloClusterContainer& clusColl,
139 const EventContext& ctx);
140 int fill_moments (const xAOD::CaloClusterContainer& clusColl,
141 const EventContext& ctx);
142 int fill_calibhits (const xAOD::CaloClusterContainer& clusColl,
143 const EventContext& ctx);
144
145};
146
147#endif // LOCALHADCALIBCHECK_CHECKHITSASSIGNMENT_H
148
Property holding a SG store/key/clid from which a ReadHandle is made.
#define x
AthAlgorithm(const std::string &name, ISvcLocator *pSvcLocator)
Constructor with parameters:
This class provides an interface to generate or decode an identifier for the upper levels of the dete...
Helper class for offline cell identifiers.
Definition CaloCell_ID.h:34
std::vector< TProfile2D * > m_SumCalibHitAssignedOverEbeam_vs_etaphi
SG::ReadHandleKeyArray< CaloCalibrationHitContainer > m_DMCalibrationHitContainerNames
SG::ReadHandleKeyArray< xAOD::CaloClusterContainer > m_clusterCollNames
virtual StatusCode finalize()
int fill_moments(const xAOD::CaloClusterContainer &clusColl, const EventContext &ctx)
std::vector< TProfile * > m_DefaultCalculatorOverEbeam_vs_eta
virtual StatusCode initialize()
const CaloCell_ID * m_calo_id
moment_name_vector m_validMoments
std::vector< TH1F * > m_RecoEfficiency_vs_eta[2]
std::vector< TH1F * > m_RecoEfficiency_vs_ebeam[2]
const AtlasDetectorID * m_id_helper
std::vector< std::vector< std::vector< TProfile * > > > m_engRecOverTruth_vs_ebeam
std::vector< std::vector< TH1F * > > m_engPionSpect
std::vector< std::vector< std::vector< TProfile * > > > m_engRecOverTruth_vs_eta
static double angle_mollier_factor(double x)
std::vector< TProfile * > m_SumCalibHitAssignedOverEbeam_vs_eta
SG::ReadHandleKey< xAOD::CaloClusterContainer > m_clusterBasicCollName
std::vector< std::vector< TH1F * > > m_engNoiseClusSpect
std::pair< std::string, xAOD::CaloCluster::MomentType > moment_name_pair
std::vector< std::vector< TProfile * > > m_engTag_vs_eta
std::vector< std::vector< std::vector< TProfile * > > > m_clusMoment_vs_eta
SG::ReadHandleKeyArray< CaloCalibrationHitContainer > m_CalibrationHitContainerNames
std::vector< TProfile * > m_SumCalibHitOverEbeam_vs_eta
std::vector< std::vector< std::vector< TH1F * > > > m_engRecSpect
GetLCSinglePionsPerf(const std::string &name, ISvcLocator *pSvcLocator)
int fill_reco(const xAOD::CaloClusterContainer &clusColl, const EventContext &ctx)
const CaloDmDescrManager * m_caloDmDescrManager
virtual StatusCode execute()
std::vector< TProfile * > m_engNoiseClus_vs_eta
std::vector< moment_name_pair > moment_name_vector
std::vector< std::vector< std::vector< TProfile * > > > m_clusMoment_vs_ebeam
int fill_calibhits(const xAOD::CaloClusterContainer &clusColl, const EventContext &ctx)
std::vector< std::vector< TProfile * > > m_engTag_vs_ebeam
Property holding a SG store/key/clid from which a ReadHandle is made.
HandleKeyArray< ReadHandle< T >, ReadHandleKey< T >, Gaudi::DataHandle::Reader > ReadHandleKeyArray
TH1F(name, title, nxbins, bins_par2, bins_par3=None, path='', **kwargs)
CaloClusterContainer_v1 CaloClusterContainer
Define the latest version of the calorimeter cluster container.