ATLAS Offline Software
Loading...
Searching...
No Matches
EgammaTransitionRegions Class Reference

General Interface for calibrations at the LVL2 Egamma Calo Fex algo. More...

#include <EgammaTransitionRegions.h>

Inheritance diagram for EgammaTransitionRegions:
Collaboration diagram for EgammaTransitionRegions:

Public Member Functions

virtual StatusCode initialize () override
 Initialization of the tool.
virtual StatusCode finalize () override
 Finalization of the tool.
virtual void makeCorrection (xAOD::TrigEMCluster *, const void *v=nullptr) const override
 method to perform the correction.

Private Attributes

Constant< CxxUtils::Array< 2 > > m_correction { this, "correction" }
Constant< float > m_etamin_TR00 { this, "etamin_TR00" }
Constant< float > m_etamax_TR00 { this, "etamax_TR00" }
Constant< float > m_etamin_TR08 { this, "etamin_TR08" }
Constant< float > m_etamax_TR08 { this, "etamax_TR08" }
Constant< bool > m_use_raw_eta { this, "use_raw_eta" }

Detailed Description

General Interface for calibrations at the LVL2 Egamma Calo Fex algo.

Definition at line 23 of file EgammaTransitionRegions.h.

Member Function Documentation

◆ finalize()

StatusCode EgammaTransitionRegions::finalize ( )
overridevirtual

Finalization of the tool.

Definition at line 56 of file EgammaTransitionRegions.cxx.

56 {
57 ATH_MSG_DEBUG( "Finalize Tool : " << name() );
58 return StatusCode::SUCCESS;
59}
#define ATH_MSG_DEBUG(x)

◆ initialize()

StatusCode EgammaTransitionRegions::initialize ( )
overridevirtual

Initialization of the tool.

Definition at line 43 of file EgammaTransitionRegions.cxx.

43 {
44
45 CHECK (base_class::initialize());
46
47 ATH_MSG_DEBUG( "Initialize Tool : " << name() );
48
49
50
51// unsigned int shape[] = {2};
52
53 return StatusCode::SUCCESS;
54}
#define CHECK(...)
Evaluate an expression and check for errors.

◆ makeCorrection()

void EgammaTransitionRegions::makeCorrection ( xAOD::TrigEMCluster * clus,
const void * v = nullptr ) const
overridevirtual

method to perform the correction.

The correction type is defined by the tool which also uses this interface. In some cases, the tool needs more than the cluster to perform the calibration. This can be passed via the void pointer

Definition at line 61 of file EgammaTransitionRegions.cxx.

62 {
63
64 float the_aeta = (clus->eta());
65
66 the_aeta = (the_aeta>0)?(the_aeta):(- the_aeta);
67
68 //if (the_aeta >= m_etamax) return;
69
70#ifndef NDEBUG
71 ATH_MSG_DEBUG( "************************************************************************************************" );
72 ATH_MSG_DEBUG( " USING TRANSITION REGION " );
73 ATH_MSG_DEBUG( "************************************************************************************************" );
74#endif
75
76 CxxUtils::Array<2> correction = m_correction();
77 CaloRec::Array<1> tr00 = correction[0];
78 CaloRec::Array<1> tr08 = correction[1];
79
80#ifndef NDEBUG
81 ATH_MSG_DEBUG( "************************************************************************************************" );
82 ATH_MSG_DEBUG( "the_aeta ::::: " << the_aeta );
83#endif
84 double corr = 1.0;
85
86 // -------------------------------------------------------------
87 // Compute correction for eta = 0
88 // -------------------------------------------------------------
89
90 if (the_aeta < m_etamax_TR00() && the_aeta > m_etamin_TR00() ) {
91#ifndef NDEBUG
92 ATH_MSG_DEBUG( "Applying correction for eta = 0 (loose) " );
93 ATH_MSG_DEBUG( tr00[0] << " " << tr00[1] << " " << tr00[2] );
94#endif
95 corr = ( tr00[0] - tr00[1] / (exp( tr00[2] - the_aeta ) + exp( tr00[3]*( the_aeta - tr00[4]))+tr00[5]));
96 }
97 else if ( the_aeta < m_etamin_TR00() ) {
98 corr = tr00[6];
99#ifndef NDEBUG
100 ATH_MSG_DEBUG( "Applying correction for eta = 0 (tight) " );
101#endif
102 }
103
104 // -------------------------------------------------------------
105 // Compute correction for eta = 0.8
106 // -------------------------------------------------------------
107
108 if (the_aeta < m_etamax_TR08() && the_aeta > m_etamin_TR08() ) {
109#ifndef NDEBUG
110 ATH_MSG_DEBUG( "Applying correction for eta = 0.8 (loose) " );
111 ATH_MSG_DEBUG( tr08[0] << " " << tr08[1] << " " << tr08[2] );
112#endif
113 corr = (tr08[0] - tr08[1] / (exp( tr08[2] - the_aeta ) +
114 exp( tr08[3] *( the_aeta - tr08[4] )) + tr08[5] ));
115 }
116
117
118#ifndef NDEBUG
119 ATH_MSG_DEBUG( "EgammaTransitionRegions::Energy before correction --> " << clus->energy()
120 << " Correction --> " << corr );
121#endif
122 if ( corr == 1 ) return;
123
124
125// -------------------------------------------------------------
126// Apply the correction
127// -------------------------------------------------------------
128
129 // update sampling energies
130 for (int sampling=1; sampling<=3; sampling++){
131 if (the_aeta < 1.37 )
132 clus->setEnergy (samps[0][sampling],
133 clus->energy(samps[0][sampling]) / corr );
134 }
135
136 clus->setEnergy(clus->energy()/corr);
137
138 clus->setEt(clus->energy()/cosh(the_aeta));
139
140}
Constant< CxxUtils::Array< 2 > > m_correction
void setEt(float)
set Et (calibrated)
float eta() const
get Eta (calibrated)
void setEnergy(float energy)
set Energy (calibrated)
float energy() const
get Energy (calibrated)
correction(mu, runmode, campaign, run=None)
Definition zlumi_mc_cf.py:4

Member Data Documentation

◆ m_correction

Constant<CxxUtils::Array<2> > EgammaTransitionRegions::m_correction { this, "correction" }
private

Definition at line 47 of file EgammaTransitionRegions.h.

47{ this, "correction" };

◆ m_etamax_TR00

Constant<float> EgammaTransitionRegions::m_etamax_TR00 { this, "etamax_TR00" }
private

Definition at line 49 of file EgammaTransitionRegions.h.

49{ this, "etamax_TR00" };

◆ m_etamax_TR08

Constant<float> EgammaTransitionRegions::m_etamax_TR08 { this, "etamax_TR08" }
private

Definition at line 51 of file EgammaTransitionRegions.h.

51{ this, "etamax_TR08" };

◆ m_etamin_TR00

Constant<float> EgammaTransitionRegions::m_etamin_TR00 { this, "etamin_TR00" }
private

Definition at line 48 of file EgammaTransitionRegions.h.

48{ this, "etamin_TR00" };

◆ m_etamin_TR08

Constant<float> EgammaTransitionRegions::m_etamin_TR08 { this, "etamin_TR08" }
private

Definition at line 50 of file EgammaTransitionRegions.h.

50{ this, "etamin_TR08" };

◆ m_use_raw_eta

Constant<bool> EgammaTransitionRegions::m_use_raw_eta { this, "use_raw_eta" }
private

Definition at line 52 of file EgammaTransitionRegions.h.

52{ this, "use_raw_eta" };

The documentation for this class was generated from the following files: