ATLAS Offline Software
Public Member Functions | Private Attributes | List of all members
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. More...
 
virtual StatusCode finalize () override
 Finalization of the tool. More...
 
virtual void makeCorrection (xAOD::TrigEMCluster *, const void *v=nullptr) const override
 method to perform the correction. More...
 

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 }

◆ initialize()

StatusCode EgammaTransitionRegions::initialize ( )
overridevirtual

Initialization of the tool.

Definition at line 43 of file EgammaTransitionRegions.cxx.

43  {
44 
46 
47  ATH_MSG_DEBUG( "Initialize Tool : " << name() );
48 
49 
50 
51 // unsigned int shape[] = {2};
52 
53  return StatusCode::SUCCESS;
54 }

◆ 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 
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 }

Member Data Documentation

◆ m_correction

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

Definition at line 47 of file EgammaTransitionRegions.h.

◆ m_etamax_TR00

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

Definition at line 49 of file EgammaTransitionRegions.h.

◆ m_etamax_TR08

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

Definition at line 51 of file EgammaTransitionRegions.h.

◆ m_etamin_TR00

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

Definition at line 48 of file EgammaTransitionRegions.h.

◆ m_etamin_TR08

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

Definition at line 50 of file EgammaTransitionRegions.h.

◆ m_use_raw_eta

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

Definition at line 52 of file EgammaTransitionRegions.h.


The documentation for this class was generated from the following files:
EgammaTransitionRegions::m_etamin_TR08
Constant< float > m_etamin_TR08
Definition: EgammaTransitionRegions.h:50
xAOD::TrigEMCluster_v1::eta
float eta() const
get Eta (calibrated)
xAOD::TrigEMCluster_v1::setEnergy
void setEnergy(float energy)
set Energy (calibrated)
initialize
void initialize()
Definition: run_EoverP.cxx:894
EgammaTransitionRegions::m_etamax_TR08
Constant< float > m_etamax_TR08
Definition: EgammaTransitionRegions.h:51
drawFromPickle.exp
exp
Definition: drawFromPickle.py:36
tools.zlumi_mc_cf.correction
def correction(mu, runmode, campaign, run=None)
Definition: zlumi_mc_cf.py:4
ATH_MSG_DEBUG
#define ATH_MSG_DEBUG(x)
Definition: AthMsgStreamMacros.h:29
CxxUtils::Array< 2 >
CHECK
#define CHECK(...)
Evaluate an expression and check for errors.
Definition: Control/AthenaKernel/AthenaKernel/errorcheck.h:422
EgammaTransitionRegions::m_etamax_TR00
Constant< float > m_etamax_TR00
Definition: EgammaTransitionRegions.h:49
name
std::string name
Definition: Control/AthContainers/Root/debug.cxx:195
EgammaTransitionRegions::m_etamin_TR00
Constant< float > m_etamin_TR00
Definition: EgammaTransitionRegions.h:48
xAOD::TrigEMCluster_v1::setEt
void setEt(float)
set Et (calibrated)
xAOD::TrigEMCluster_v1::energy
float energy() const
get Energy (calibrated)
EgammaTransitionRegions::m_correction
Constant< CxxUtils::Array< 2 > > m_correction
Definition: EgammaTransitionRegions.h:47