ATLAS Offline Software
CaloSwECcrack_g3.cxx
Go to the documentation of this file.
1 /*
2  Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration
3 */
4 
5 /********************************************************************
6 
7 NAME: CaloSwECcrack_g3.cxx
8 PACKAGE: offline/Calorimeter/CaloClusterCorrection
9 
10 AUTHORS: H. Ma, S. Rajagopalan
11 CREATED: Dec. 15, 1999
12 
13 PURPOSE: correction for the cracks (for the time being only barrel - endcap)
14  Tuned using 50 GeV Et photons
15  Correction tuned on G3 samples.
16 
17 atrecon Orig: emreco/qecrack.F
18 
19 Updated: May 10, 2000 (SR, HM)
20  Migrated to Athena Framework from PASO
21 
22 Updated: Jan 5, 2001 (HM)
23  QA.
24 
25 Updated: May 5, 2004 (Sven Menke)
26  base class changed from algo to tool
27 
28 
29 ********************************************************************/
30 
31 #include "CaloSwECcrack_g3.h"
32 
33 // constants from atrecon/emreco/qecrack.F
34 using xAOD::CaloCluster;
35 const float CaloSwECcrack_g3::P0[3] = {116.8, 169.77, 62.224};
36 const float CaloSwECcrack_g3::P1[1] = {1.614};
37 const float CaloSwECcrack_g3::P2[3] = {188.1, 242.89, 78.836};
38 
39 
41  CaloCluster* cluster) const
42 {
43 
44  float eta = cluster->etaBE(2); // use second sampling
45 
46  float aeta = fabs(eta);
47 
48  float qECcrack = 1.;
49  if (aeta > 1.35 && aeta < 1.46)
50  qECcrack = P0[0] - P0[1]*aeta + P0[2]*aeta*aeta;
51  else if (aeta >= 1.46 && aeta < 1.475)
52  qECcrack = P1[0];
53  else if (aeta >= 1.475 && aeta < 1.55)
54  qECcrack = P2[0] - P2[1]*aeta + P2[2]*aeta*aeta;
55  else
56  return; // No correction required
57 
58  // make the correction
59 
60  float energy = cluster->e();
61  // set the energy, and rescale each sampling.
62  setenergy(cluster, energy*qECcrack);
63 
64 }
eta
Scalar eta() const
pseudorapidity method
Definition: AmgMatrixBasePlugin.h:83
CaloSwECcrack_g3::P0
static const float P0[3]
Definition: CaloSwECcrack_g3.h:78
CaloClusterCorrection::setenergy
virtual void setenergy(xAOD::CaloCluster *cluster, float energy) const
Definition: CaloClusterCorrection.cxx:94
xAOD::CaloCluster
CaloCluster_v1 CaloCluster
Define the latest version of the calorimeter cluster class.
Definition: Event/xAOD/xAODCaloEvent/xAODCaloEvent/CaloCluster.h:19
CaloSwECcrack_g3::makeCorrection
virtual void makeCorrection(const Context &myctx, xAOD::CaloCluster *cluster) const override
Definition: CaloSwECcrack_g3.cxx:40
ParticleGun_FastCalo_ChargeFlip_Config.energy
energy
Definition: ParticleGun_FastCalo_ChargeFlip_Config.py:78
CaloCluster
Principal data class for CaloCell clusters.
Definition: Calorimeter/CaloEvent/CaloEvent/CaloCluster.h:79
CaloSwECcrack_g3::P1
static const float P1[1]
Definition: CaloSwECcrack_g3.h:79
CaloCluster::etaBE
double etaBE(int sampling) const
EMB/EMEC combined barycenter .
Definition: Calorimeter/CaloEvent/CaloEvent/CaloCluster.h:1199
CaloSwECcrack_g3::P2
static const float P2[3]
Definition: CaloSwECcrack_g3.h:80
CaloSwECcrack_g3.h
CaloCluster::e
virtual double e() const
Retrieve energy independent of signal state.
Definition: Calorimeter/CaloEvent/CaloEvent/CaloCluster.h:753
CaloUtils::ToolConstantsContext
Context object for retrieving ToolConstant values.
Definition: ToolWithConstants.h:61