Commit 19500f1f authored by Christos Anastopoulos's avatar Christos Anastopoulos
Browse files

xAODEgamma: Remove possibly unused methods

parent 7e7fea0e
......@@ -23,46 +23,46 @@ namespace xAOD {
/// Explicit Instantiation of Template
const SG::AuxElement::Accessor< float >*
showerShapeAccessorV1( xAOD::EgammaParameters::ShowerShapeType type )
{
showerShapeAccessorV1( xAOD::EgammaParameters::ShowerShapeType type )
{
switch( type ) {
DEFINE_ACCESSOR( float, e011 );
DEFINE_ACCESSOR( float, e033 );
DEFINE_ACCESSOR( float, e132 );
DEFINE_ACCESSOR( float, e1152 );
DEFINE_ACCESSOR( float, ethad1 );
DEFINE_ACCESSOR( float, ethad );
DEFINE_ACCESSOR( float, ehad1 );
DEFINE_ACCESSOR( float, f1 );
DEFINE_ACCESSOR( float, f3 );
DEFINE_ACCESSOR( float, f1core );
DEFINE_ACCESSOR( float, f3core );
DEFINE_ACCESSOR( float, e233 );
DEFINE_ACCESSOR( float, e235 );
DEFINE_ACCESSOR( float, e255 );
DEFINE_ACCESSOR( float, e237 );
DEFINE_ACCESSOR( float, e277 );
DEFINE_ACCESSOR( float, e333 );
DEFINE_ACCESSOR( float, e335 );
DEFINE_ACCESSOR( float, e337 );
DEFINE_ACCESSOR( float, e377 );
DEFINE_ACCESSOR( float, weta1 );
DEFINE_ACCESSOR( float, weta2 );
DEFINE_ACCESSOR( float, e2ts1 );
DEFINE_ACCESSOR( float, e2tsts1 );
DEFINE_ACCESSOR( float, fracs1 );
DEFINE_ACCESSOR( float, widths1 );
DEFINE_ACCESSOR( float, widths2 );
DEFINE_ACCESSOR( float, poscs1 );
DEFINE_ACCESSOR( float, poscs2 );
DEFINE_ACCESSOR( float, asy1 );
DEFINE_ACCESSOR( float, pos );
DEFINE_ACCESSOR( float, pos7 );
DEFINE_ACCESSOR( float, barys1 );
DEFINE_ACCESSOR( float, wtots1 );
DEFINE_ACCESSOR( float, emins1 );
DEFINE_ACCESSOR( float, emaxs1 );
DEFINE_ACCESSOR( float, r33over37allcalo );
DEFINE_ACCESSOR( float, e011 );
DEFINE_ACCESSOR( float, e033 );
DEFINE_ACCESSOR( float, e132 );
DEFINE_ACCESSOR( float, e1152 );
DEFINE_ACCESSOR( float, ethad1 );
DEFINE_ACCESSOR( float, ethad );
DEFINE_ACCESSOR( float, ehad1 );
DEFINE_ACCESSOR( float, f1 );
DEFINE_ACCESSOR( float, f3 );
DEFINE_ACCESSOR( float, f1core );
DEFINE_ACCESSOR( float, f3core );
DEFINE_ACCESSOR( float, e233 );
DEFINE_ACCESSOR( float, e235 );
DEFINE_ACCESSOR( float, e255 );
DEFINE_ACCESSOR( float, e237 );
DEFINE_ACCESSOR( float, e277 );
DEFINE_ACCESSOR( float, e333 );
DEFINE_ACCESSOR( float, e335 );
DEFINE_ACCESSOR( float, e337 );
DEFINE_ACCESSOR( float, e377 );
DEFINE_ACCESSOR( float, weta1 );
DEFINE_ACCESSOR( float, weta2 );
DEFINE_ACCESSOR( float, e2ts1 );
DEFINE_ACCESSOR( float, e2tsts1 );
DEFINE_ACCESSOR( float, fracs1 );
DEFINE_ACCESSOR( float, widths1 );
DEFINE_ACCESSOR( float, widths2 );
DEFINE_ACCESSOR( float, poscs1 );
DEFINE_ACCESSOR( float, poscs2 );
DEFINE_ACCESSOR( float, asy1 );
DEFINE_ACCESSOR( float, pos );
DEFINE_ACCESSOR( float, pos7 );
DEFINE_ACCESSOR( float, barys1 );
DEFINE_ACCESSOR( float, wtots1 );
DEFINE_ACCESSOR( float, emins1 );
DEFINE_ACCESSOR( float, emaxs1 );
DEFINE_ACCESSOR( float, r33over37allcalo );
DEFINE_ACCESSOR( float, ecore );
DEFINE_ACCESSOR( float, Reta );
DEFINE_ACCESSOR( float, Rphi );
......@@ -70,48 +70,12 @@ namespace xAOD {
DEFINE_ACCESSOR( float, Rhad );
DEFINE_ACCESSOR( float, Rhad1 );
DEFINE_ACCESSOR( float, DeltaE );
default:
default:
std::cerr << "xAOD::Egamma ERROR Unknown float ShowerShapeType ("
<< type << ") requested" << std::endl;
return nullptr;
}
}
const SG::AuxElement::Accessor< char >*
selectionMenuAccessorV1( xAOD::EgammaParameters::SelectionMenu menu )
{
switch( menu ) {
DEFINE_ACCESSOR( char, Loose);
DEFINE_ACCESSOR( char, Medium);
DEFINE_ACCESSOR( char, Tight);
DEFINE_ACCESSOR( char, LHLoose);
DEFINE_ACCESSOR( char, LHMedium);
DEFINE_ACCESSOR( char, LHTight);
DEFINE_ACCESSOR( char, MultiLepton);
default:
std::cerr << "xAOD::Egamma ERROR Unknown char ElectronSelectionMenu ("
<< menu << ") requested" << std::endl;
return nullptr;
}
}
const SG::AuxElement::Accessor< unsigned int >*
selectionisEMAccessorV1( xAOD::EgammaParameters::SelectionisEM isEM )
{
switch( isEM ) {
DEFINE_ACCESSOR( unsigned int, isEMLoose);
DEFINE_ACCESSOR( unsigned int, isEMMedium);
DEFINE_ACCESSOR( unsigned int, isEMTight);
DEFINE_ACCESSOR( unsigned int, isEMLHLoose);
DEFINE_ACCESSOR( unsigned int, isEMLHMedium);
DEFINE_ACCESSOR( unsigned int, isEMLHTight);
DEFINE_ACCESSOR( unsigned int, isEMMultiLepton);
default:
std::cerr << "xAOD::Egamma ERROR Unknown unsigned int ElectronSelectionisEM ("
<< isEM << ") requested" << std::endl;
return nullptr;
}
}
......
......@@ -9,7 +9,7 @@
#include "xAODEgamma/EgammaContainer.h"
#include "EgammaAccessors_v1.h"
#include "xAODPrimitives/tools/getIsolationAccessor.h"
#include "xAODPrimitives/tools/getIsolationCorrectionAccessor.h"
#include "xAODPrimitives/tools/getIsolationCorrectionAccessor.h"
#include "EventPrimitives/EventPrimitivesHelpers.h"
#include <stdexcept>
......@@ -53,8 +53,8 @@ Egamma_v1::Egamma_v1(const Egamma_v1& eg) : IParticle(eg) {
Egamma_v1& Egamma_v1::operator=(const Egamma_v1& eg ){
if (this != &eg){ // protect against invalid self-assignment
if (!this->container() && !this->hasStore() ) {
if (this != &eg){ // protect against invalid self-assignment
if (!this->container() && !this->hasStore() ) {
makePrivateStore();
}
this->IParticle::operator=( eg );
......@@ -89,17 +89,17 @@ Egamma_v1::GenVecFourMom_t Egamma_v1::genvecP4() const {
}
double Egamma_v1::e() const{
return genvecP4().E();
return genvecP4().E();
}
double Egamma_v1::rapidity() const {
return genvecP4().Rapidity();
return genvecP4().Rapidity();
}
Egamma_v1::FourMom_t Egamma_v1::p4() const {
FourMom_t p4;
p4.SetPtEtaPhiM( pt(), eta(), phi(),m());
return p4;
p4.SetPtEtaPhiM( pt(), eta(), phi(),m());
return p4;
}
void Egamma_v1::setP4(float pt, float eta, float phi, float m){
......@@ -139,15 +139,15 @@ Egamma_v1::EgammaCovMatrix_t Egamma_v1::covMatrix() const{
EgammaCovMatrix_t cov;
cov.setZero();
if(!acc.isAvailable(*this) ) {
if(!acc.isAvailable(*this) ) {
return cov;
}
const std::vector<float>& v = acc(*this);
size_t size= v.size();
const std::vector<float>& v = acc(*this);
size_t size= v.size();
if(size==16){
//up to 21.0.11
cov = Eigen::Map<const EgammaCovMatrix_t> (v.data());
}
}
else {
//from >21.0.11
EgammaCovMatrix_t cov;
......@@ -163,7 +163,7 @@ void Egamma_v1::setCovMatrix(const Egamma_v1::EgammaCovMatrix_t& cov){
MatrixHelpers::compress(cov,acc(*this));
}
///egamma author
///egamma author
uint16_t Egamma_v1::author(uint16_t mask) const {
static const Accessor< uint16_t > acc( "author" );
uint16_t author = acc(*this);
......@@ -210,7 +210,7 @@ bool Egamma_v1::showerShapeValue(float& value, const EgammaParameters::ShowerSha
if( !acc ) {
return false;
}
if(!acc->isAvailable(*this) ) {
if(!acc->isAvailable(*this) ) {
return false;
}
// Retrieve the value:
......@@ -279,7 +279,7 @@ bool Egamma_v1::setIsolation(float value, const Iso::IsolationType information)
}
///Isolation corrections
bool Egamma_v1::isolationCaloCorrection(float& value, const Iso::IsolationFlavour flavour, const Iso::IsolationCaloCorrection corr,
bool Egamma_v1::isolationCaloCorrection(float& value, const Iso::IsolationFlavour flavour, const Iso::IsolationCaloCorrection corr,
const Iso::IsolationCorrectionParameter param) const{
const SG::AuxElement::Accessor< float > acc = getIsolationCorrectionAccessor(flavour,corr,param);
if(!acc.isAvailable(*this) ) {
......@@ -290,7 +290,7 @@ bool Egamma_v1::isolationCaloCorrection(float& value, const Iso::IsolationFlavou
return true;
}
float Egamma_v1::isolationCaloCorrection(const Iso::IsolationFlavour flavour, const Iso::IsolationCaloCorrection corr,
float Egamma_v1::isolationCaloCorrection(const Iso::IsolationFlavour flavour, const Iso::IsolationCaloCorrection corr,
const Iso::IsolationCorrectionParameter param) const{
const SG::AuxElement::Accessor< float > acc = getIsolationCorrectionAccessor(flavour,corr,param);
......@@ -298,7 +298,7 @@ float Egamma_v1::isolationCaloCorrection(const Iso::IsolationFlavour flavour, co
return acc(*this);
}
bool Egamma_v1::setIsolationCaloCorrection(float value, const Iso::IsolationFlavour flavour, const Iso::IsolationCaloCorrection corr,
bool Egamma_v1::setIsolationCaloCorrection(float value, const Iso::IsolationFlavour flavour, const Iso::IsolationCaloCorrection corr,
const Iso::IsolationCorrectionParameter param){
const SG::AuxElement::Accessor< float > acc = getIsolationCorrectionAccessor(flavour,corr,param);
// Set the value:
......@@ -338,7 +338,7 @@ bool Egamma_v1::isolationTrackCorrection(float& value, const Iso::IsolationFlavo
return true;
}
float Egamma_v1::isolationTrackCorrection(const Iso::IsolationFlavour flavour, const Iso::IsolationTrackCorrection corr) const{
float Egamma_v1::isolationTrackCorrection(const Iso::IsolationFlavour flavour, const Iso::IsolationTrackCorrection corr) const{
const SG::AuxElement::Accessor< float > acc = getIsolationCorrectionAccessor(flavour,corr);
if( !acc.isAvailable(*this) ) {throw std::runtime_error( "Unknown/Unavailable Isolation correction requested" );}
return acc(*this);
......@@ -411,58 +411,10 @@ Egamma_v1::caloClusterLink( size_t index ) const {
AUXSTORE_OBJECT_SETTER_AND_GETTER( Egamma_v1, Egamma_v1::CLELVec_t,
caloClusterLinks, setCaloClusterLinks)
///Selectors / isEM and all that
///First with enums (static accessor no lookup => faster but less flexible)
bool Egamma_v1::passSelection(bool& value, const xAOD::EgammaParameters::SelectionMenu menu ) const {
const SG::AuxElement::Accessor< char >* acc = selectionMenuAccessorV1( menu );
if( !acc ) {
return false;
}
if(!acc->isAvailable(*this) ) {
return false;
}
value= (*acc)(*this);
return true;
}
bool Egamma_v1::passSelection(const xAOD::EgammaParameters::SelectionMenu menu ) const {
const SG::AuxElement::Accessor< char >* acc = selectionMenuAccessorV1( menu );
if(!acc ) throw std::runtime_error( "Unknown/Unavailable bool selection menu requested" );
return (*acc)(*this);
}
void Egamma_v1::setPassSelection(bool value, const xAOD::EgammaParameters::SelectionMenu menu){
const SG::AuxElement::Accessor< char >* acc = selectionMenuAccessorV1( menu );
( *acc )(*this)=value;
}
bool Egamma_v1::selectionisEM(unsigned int& value, const xAOD::EgammaParameters::SelectionisEM isEM) const {
const SG::AuxElement::Accessor< unsigned int >* acc = selectionisEMAccessorV1( isEM );
if(!acc ) {
return false;
}
if(!acc->isAvailable(*this) ) {
return false;
}
value= (*acc)(*this);
return true;
}
unsigned int Egamma_v1::selectionisEM(const xAOD::EgammaParameters::SelectionisEM isEM) const {
const SG::AuxElement::Accessor< unsigned int >* acc = selectionisEMAccessorV1( isEM );
if(!acc ) throw std::runtime_error( "Unknown/Unavailable unsigned int isEM requested" );
return (*acc)(*this);
}
void Egamma_v1::setSelectionisEM(unsigned int value, const xAOD::EgammaParameters::SelectionisEM isEM){
const SG::AuxElement::Accessor< unsigned int >* acc = selectionisEMAccessorV1( isEM );
( *acc )(*this)=value;
}
///Then with strings (full flexibility when adding new menus dynamically)
bool Egamma_v1::passSelection(bool& value, const std::string& menu ) const {
const SG::AuxElement::Accessor< char > acc( menu );
if(!acc.isAvailable(*this) ) {
if(!acc.isAvailable(*this) ) {
return false;
}
value= acc(*this);
......@@ -481,7 +433,7 @@ void Egamma_v1::setPassSelection(bool value, const std::string& menu){
bool Egamma_v1::selectionisEM(unsigned int& value, const std::string& isEM) const{
const SG::AuxElement::Accessor< unsigned int > acc( isEM );
if(!acc.isAvailable(*this) ) {
if(!acc.isAvailable(*this) ) {
return false;
}
value= acc(*this);
......@@ -500,7 +452,7 @@ void Egamma_v1::setSelectionisEM(unsigned int value, const std::string& isEM){
bool Egamma_v1::likelihoodValue(float& value, const std::string& LHValue/*=std::string("LHValue")*/) const{
const SG::AuxElement::Accessor<float> acc( LHValue );
if(!acc.isAvailable(*this) ) {
if(!acc.isAvailable(*this) ) {
return false;
}
value= acc(*this);
......
......@@ -29,7 +29,7 @@ namespace xAOD {
/** @brief Electron reconstructed by the Forward cluster-based algorithm */
const uint16_t AuthorFwdElectron=0x8;
/** @brief Object Reconstructed by standard cluster-based algorithm. Ambiguous ==> can be either Electron or Photon */
const uint16_t AuthorAmbiguous=0x10;
const uint16_t AuthorAmbiguous=0x10;
/** @brief trigger Electrons */
const uint16_t AuthorTrigElectron=0x20;
/** @brief trigger Photons */
......@@ -112,24 +112,24 @@ namespace xAOD {
};
/** @brief */
const uint32_t BADCLUSELECTRON =
const uint32_t BADCLUSELECTRON =
0x1 << MaskedCellCore |
0x1 << MissingFEBCellCore |
0x1 << MissingFEBCellEdgeS1 |
0x1 << MissingFEBCellEdgeS2 |
0x1 << DeadHVS1S2S3Core |
0x1 << DeadHVS1S2S3Edge ;
const uint32_t BADCLUSPHOTON =
0x1 << DeadHVS1S2S3Core |
0x1 << DeadHVS1S2S3Edge ;
const uint32_t BADCLUSPHOTON =
0x1 << MaskedCellCore |
0x1 << MissingFEBCellCore |
0x1 << MissingFEBCellEdgeS1 |
0x1 << MissingFEBCellEdgeS2 |
0x1 << DeadHVS1S2S3Core |
0x1 << DeadHVS1S2S3Core |
0x1 << DeadHVS1S2S3Edge |
0x1 << BadS1Core;
0x1 << BadS1Core;
const uint32_t ALLOQ= 0xFFFFFFFF;
......
......@@ -8,264 +8,288 @@
#ifndef XAODEGAMMA_EGAMMAENUMS_H
#define XAODEGAMMA_EGAMMAENUMS_H
namespace xAOD {
namespace EgammaParameters {
/// @name egamma types
enum EgammaType {
electron = 0,
unconvertedPhoton = 1,
convertedPhoton = 2,
NumberOfEgammaTypes = 3
};
namespace EgammaParameters {
/// @name Shower shape types
/// @{
enum ShowerShapeType{
/// @brief uncalibrated energy (sum of cells) in presampler in a 1x1 window in cells in eta X phi
e011 = 0,
/// @brief uncalibrated energy (sum of cells) in presampler in a 3x3 window in cells in eta X phi
e033 = 1,
/// @brief uncalibrated energy (sum of cells) in strips in a 3x2 window in cells in eta X phi
e132 = 2,
/// @brief uncalibrated energy (sum of cells) in strips in a 15x2 window in cells in eta X phi
e1152 = 3,
/// @brief transverse energy in the first sampling of the hadronic calorimeters behind the cluster calculated from ehad1
ethad1 = 4,
/// @brief ET leakage into hadronic calorimeter with exclusion of energy in CaloSampling::TileGap3
ethad = 5,
/// @brief E leakage into 1st sampling of had calo (CaloSampling::HEC0 + CaloSampling::TileBar0 + CaloSampling::TileExt0)
ehad1 = 6,
/// @brief E1/E = fraction of energy reconstructed in the first sampling, where E1 is energy in all strips belonging to the cluster and E is the total energy reconstructed in the electromagnetic calorimeter cluster
f1 = 7,
/// @brief fraction of energy reconstructed in 3rd sampling
f3 = 8,
/// @brief E1(3x1)/E = fraction of the energy reconstructed in the first longitudinal compartment of the electromagnetic calorimeter, where E1(3x1) the energy reconstructed in +/-3 strips in eta, centered around the maximum energy strip and E is the energy reconstructed in the electromagnetic calorimeter
f1core = 9,
/// @brief E3(3x3)/E fraction of the energy reconstructed in the third compartment of the electromagnetic calorimeter, where E3(3x3), energy in the back sampling, is the sum of the energy contained in a 3x3 window around the maximum energy cell
f3core = 10,
/// @brief uncalibrated energy (sum of cells) of the middle sampling in a rectangle of size 3x3 (in cell units eta X phi)
e233 = 11,
/// @brief uncalibrated energy (sum of cells) of the middle sampling in a rectangle of size 3x5
e235 = 12,
/// @brief uncalibrated energy (sum of cells) of the middle sampling in a rectangle of size 5x5
e255 = 13,
/// @brief uncalibrated energy (sum of cells) of the middle sampling in a rectangle of size 3x7
e237 = 14,
/// @brief uncalibrated energy (sum of cells) of the middle sampling in a rectangle of size 7x7
e277 = 15,
/// @brief uncalibrated energy (sum of cells) of the third sampling in a rectangle of size 3x3
e333 = 16,
/// @brief uncalibrated energy (sum of cells) of the third sampling in a rectangle of size 3x5
e335 = 17,
/// @brief uncalibrated energy (sum of cells) of the third sampling in a rectangle of size 3x7
e337 = 18,
/// @brief uncalibrated energy (sum of cells) of the middle sampling in a rectangle of size 7x7
e377 = 19,
/// @brief shower width using +/-3 strips around the one with the maximal energy deposit:
/// w3 strips = sqrt{sum(Ei)x(i-imax)^2/sum(Ei)}, where i is the number of the strip and imax the strip number of the most energetic one
weta1 = 20,
/// @brief the lateral width is calculated with a window of 3x5 cells using the energy weighted sum over all cells, which depends on the particle impact point inside the cell: weta2 =
/// sqrt(sum Ei x eta^2)/(sum Ei) -((sum Ei x eta)/(sum Ei))^2, where Ei is the energy of the i-th cell
weta2 = 21,
/// @brief 2nd max in strips calc by summing 3 strips
e2ts1 = 22,
/// @brief energy of the cell corresponding to second energy maximum in the first sampling
e2tsts1 = 23,
/// @brief shower shape in the shower core : [E(+/-3)-E(+/-1)]/E(+/-1), where E(+/-n) is the energy in ± n strips around the strip with highest energy
fracs1 = 24,
/// @brief same as egammaParameters::weta1 but without corrections on particle impact point inside the cell
widths1 = 25,
/// @brief same as egammaParameters::weta2 but without corrections on particle impact point inside the cell
widths2 = 26,
/// @brief relative position in eta within cell in 1st sampling
poscs1 = 27,
/// @brief relative position in eta within cell in 2nd sampling
poscs2= 28,
/// @brief uncorr asymmetry in 3 strips in the 1st sampling
asy1 = 29,
/// @brief difference between shower cell and predicted track in +/- 1 cells
pos = 30,
/// @brief Difference between the track and the shower positions:
/// sum_{i=i_m-7}^{i=i_m+7}E_i x (i-i_m) / sum_{i=i_m-7}^{i=i_m+7}E_i,
/// The difference between the track and the shower positions measured
/// in units of distance between the strips, where i_m is the impact cell
/// for the track reconstructed in the inner detector and E_i is the energy
/// reconstructed in the i-th cell in the eta direction for constant phi given by the track parameters
pos7 = 31,
/// @brief barycentre in sampling 1 calculated in 3 strips
barys1 =32,
/// @brief shower width is determined in a window detaxdphi = 0,0625 ×~0,2, corresponding typically to 20 strips in
///eta : wtot1=sqrt{sum Ei x ( i-imax)^2 / sum Ei}, where i is the strip number and imax the strip number of the first local maximum
wtots1 = 33,
/// @brief energy reconstructed in the strip with the minimal value between the first and second maximum
emins1 = 34,
/// @brief energy of strip with maximal energy deposit
emaxs1 = 35,
/// @brief 1-ratio of energy in 3x3 over 3x7 cells;
/// E(3x3) = E0(1x1) + E1(3x1) + E2(3x3) + E3(3x3); E(3x7) = E0(3x3) + E1(15x3) + E2(3x7) + E3(3x7)
r33over37allcalo = 36,
/// @brief core energy in em calo E(core) = E0(3x3) + E1(15x2) + E2(5x5) + E3(3x5)
ecore = 37,
/// @brief e237/e277
Reta = 38,
/// @brief e233/e237
Rphi = 39,
/// @brief (emaxs1-e2tsts1)/(emaxs1+e2tsts1)
Eratio = 40,
/// @brief ethad/et
Rhad = 41,
/// @brief ethad1/et
Rhad1 = 42,
/// @brief e2tsts1-emins1
DeltaE =43,
///maximum number of enums
NumberOfShowerShapes = 44
};
/// @}
/// @name Track Match variable types
/// @{
enum TrackCaloMatchType{
/// @brief difference between the cluster eta (presampler) and
///the eta of the track extrapolated to the presampler
deltaEta0 = 0,
///@brief difference between the cluster eta (first sampling) and the eta of the track extrapolated to the
///first sampling: |eta_stripscluster -eta_ID|, where eta_stripscluster is computed
///in the first sampling of the electromagnetic calorimeter, where the granularity is very fine, and eta_ID is the pseudo-rapidity
///of the track extrapolated to the calorimeter
deltaEta1 = 1,
/// @brief difference between the cluster eta (second sampling) and the eta of the track extrapolated to the second sampling
deltaEta2 = 2,
/// @brief difference between the cluster eta (3rd sampling) and
/// the eta of the track extrapolated to the 3rd sampling
deltaEta3 = 3,
/// @brief difference between the cluster phi (presampler) and
/// the eta of the track extrapolated to the presampler
deltaPhi0 = 4,
/// @brief difference between the cluster eta (1st sampling) and
/// the eta of the track extrapolated to the 1st sampling (strips)
deltaPhi1 = 5,
/// @brief difference between the cluster phi (second sampling) and the phi of the track
/// extrapolated to the second sampling : |phi_middlecluster -phi_ID|, where phi_middlecluster
/// is computed in the second compartment of the electromagnetic calorimeter and phi_ID is the
/// azimuth of the track extrapolated to the calorimeter
deltaPhi2 = 6,
///@brief difference between the cluster eta (3rd sampling) and
/// the eta of the track extrapolated to the 3rd sampling
deltaPhi3 = 7,
/// @brief difference between the cluster phi (sampling 2) and the
/// eta of the track extrapolated from the last measurement point.
deltaPhiFromLastMeasurement = 8,
/// @brief difference between the cluster phi (presampler) and
/// the eta of the track extrapolated to the presampler from the perigee with a rescaled
/// momentum.
deltaPhiRescaled0 = 9,
/// @brief difference between the cluster eta (1st sampling) and
/// the eta of the track extrapolated to the 1st sampling (strips) from the perigee with a rescaled
/// momentum.
deltaPhiRescaled1 = 10,
/// @brief difference between the cluster phi (second sampling) and the phi of the track
/// extrapolated to the second sampling from the perigee with a rescaled
/// momentum.
deltaPhiRescaled2 = 11,
///@brief difference between the cluster eta (3rd sampling) and
/// the eta of the track extrapolated to the 3rd sampling from the perigee with a rescaled
/// momentum.
deltaPhiRescaled3 = 12,
///maximum number of enums
NumberOfTrackMatchProperties= 13
};
///@}
/// @name egamma types
enum EgammaType
{
electron = 0,
unconvertedPhoton = 1,
convertedPhoton = 2,
NumberOfEgammaTypes = 3
};
/// @name Shower shape types
/// @{
enum ShowerShapeType
{
/// @brief uncalibrated energy (sum of cells) in presampler in a 1x1 window in
/// cells in eta X phi
e011 = 0,
/// @brief uncalibrated energy (sum of cells) in presampler in a 3x3 window in
/// cells in eta X phi
e033 = 1,
/// @brief uncalibrated energy (sum of cells) in strips in a 3x2 window in
/// cells in eta X phi
e132 = 2,
/// @brief uncalibrated energy (sum of cells) in strips in a 15x2 window in
/// cells in eta X phi
e1152 = 3,
/// @brief transverse energy in the first sampling of the hadronic
/// calorimeters behind the cluster calculated from ehad1
ethad1 = 4,
/// @brief ET leakage into hadronic calorimeter with exclusion of energy in
/// CaloSampling::TileGap3
ethad = 5,
/// @brief E leakage into 1st sampling of had calo (CaloSampling::HEC0 +
/// CaloSampling::TileBar0 + CaloSampling::TileExt0)
ehad1 = 6,
/// @brief E1/E = fraction of energy reconstructed in the first sampling,
/// where E1 is energy in all strips belonging to the cluster and E is the
/// total energy reconstructed in the electromagnetic calorimeter cluster
f1 = 7,
/// @brief fraction of energy reconstructed in 3rd sampling
f3 = 8,
/// @brief E1(3x1)/E = fraction of the energy reconstructed in the first
/// longitudinal compartment of the electromagnetic calorimeter, where E1(3x1)
/// the energy reconstructed in +/-3 strips in eta, centered around the
/// maximum energy strip and E is the energy reconstructed in the
/// electromagnetic calorimeter
f1core = 9,
/// @brief E3(3x3)/E fraction of the energy reconstructed in the third
/// compartment of the electromagnetic calorimeter, where E3(3x3), energy in
/// the back sampling, is the sum of the energy contained in a 3x3 window
/// around the maximum energy cell
f3core = 10,
/// @brief uncalibrated energy (sum of cells) of the middle sampling in a
/// rectangle of size 3x3 (in cell units eta X phi)
e233 = 11,
/// @brief uncalibrated energy (sum of cells) of the middle sampling in a