EgammaDefs.h 4.98 KB
Newer Older
1
2
3
4
5
6
// Dear emacs, this is -*- c++ -*-

/*
  Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
*/

7
// $Id: EgammaDefs.h 634202 2014-12-06 15:00:49Z christos $
8
9
10
#ifndef XAODEGAMMA_EGAMMADEFS_H
#define XAODEGAMMA_EGAMMADEFS_H

11
12
13
14
extern "C" {
 #include <stdint.h>
 }

15
16
17
18
19

/// Namespace holding all the xAOD EDM classes
namespace xAOD {

  namespace EgammaParameters {
20
     /// for the Authors of the egamma objects
21
22
    /** @brief Default author */
    const uint16_t AuthorUnknown=0x0;
23
    /** @brief Object Reconstructed by standard cluster-based algorithm. Surely not Photon ==> Electron */
24
    const uint16_t AuthorElectron=0x1;
25
    /** @brief Electron reconstructed by the track-based algorithm, here for compatibility with old AOD format*/
26
    const uint16_t AuthorSofte =0x2;
27
    /** @brief Object Reconstructed by standard cluster-based algorithm. Surely not Electron ==> Photon */
28
29
30
    const uint16_t AuthorPhoton=0x4;
    /** @brief Electron reconstructed by the Forward cluster-based algorithm */
    const uint16_t AuthorFwdElectron=0x8;
31
    /** @brief Object Reconstructed by standard cluster-based algorithm. Ambiguous ==> can be either Electron or Photon */
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
    const uint16_t AuthorAmbiguous=0x10; 
    /** @brief trigger Electrons */
    const uint16_t AuthorTrigElectron=0x20;
    /** @brief trigger Photons */
    const uint16_t AuthorTrigPhoton=0x40;
    /** @brief Photon reconstructed by SW CaloTopo35 seeded clusters */
    const uint16_t AuthorCaloTopo35=0x80;
    /** @brief not an actual author, but used as default in some functions */
    const uint16_t AuthorALL = 0xFFFF;

  //
  // for object quality flags
  //

  enum BitDefOQ {
    /** @brief Dead High Voltage in the EM Presampler */
    DeadHVPS = 0,
    /** @brief Dead High Voltage in the EM strips, middle and back affecting the core of the cluster*/
    DeadHVS1S2S3Core = 1,
    /** @brief Dead High Voltage in the EM strips, middle and back affecting the edge of the cluster*/
    DeadHVS1S2S3Edge = 2,

    /** @brief Non Nominal High Voltage in the EM Presampler */
    NonNominalHVPS = 3,
   /** @brief Non Nominal High Voltage in the EM strips, middle and back*/
    NonNominalHVS1S2S3 = 4,

    /** @brief Missing FEB in the core of the cluster */
    MissingFEBCellCore = 5,
    /** @brief Missing FEB in the edge of the cluster */
    MissingFEBCellEdgePS = 6,
    /** @brief Missing FEB in the edge of the cluster */
    MissingFEBCellEdgeS1 = 7,
    /** @brief Missing FEB in the edge of the cluster */
    MissingFEBCellEdgeS2 = 8,
    /** @brief Missing FEB in the edge of the cluster */
    MissingFEBCellEdgeS3 = 9,

    /** @brief Masked cell in the core of the cluster */
    MaskedCellCore = 10,
    /** @brief Masked presampler cell in the edge of the cluster */
    MaskedCellEdgePS = 11,
    /** @brief Masked strip cell in the edge of the cluster */
    MaskedCellEdgeS1 = 12,
    /** @brief Masked middle cell in the edge of the cluster */
    MaskedCellEdgeS2 = 13,
    /** @brief Masked back cell in the edge of the cluster */
    MaskedCellEdgeS3 = 14,
   /** @brief Missing FEB or masked cell in S1 core (corresponding to the 8 strips in front of the core of the cluster)*/
    BadS1Core = 15,
    /** @brief Sporadic noisy cell in the core of the cluster */
    SporadicNoiseLowQCore = 16,
    /** @brief Sporadic noisy cell in the edge of the cluster */
    SporadicNoiseLowQEdge = 17,
    /** @brief High quality factor cell in the core of the cluster */
    HighQCore = 18,
    /** @brief High quality factor cell in the edge of the cluster */
    HighQEdge = 19,
    /** @brief Affected cell in the core of the cluster */
    AffectedCellCore = 20,
    /** @brief Affected presampler cell in the edge of the cluster */
    AffectedCellEdgePS = 21,
    /** @brief Affected strip cell in the edge of the cluster */
    AffectedCellEdgeS1 = 22,
    /** @brief Affected middle cell in the edge of the cluster */
    AffectedCellEdgeS2 = 23,
    /** @brief Affected back cell in the edge of the cluster */
    AffectedCellEdgeS3 = 24,
    /** @brief High quality factor cell in the HEC */
    HECHighQ = 25,
    /** @brief Out of time cell */
    OutTime =26,
    /** @brief Cleaning based on LArQ factor--> sum[ E(Q>4000)/E]*/
    LArQCleaning=27,
    /** @brief Dead cell in the Tile Calorimeter S0 affecting the hadronic leakage calculation*/
    DeadCellTileS0=28,
    /** @brief Dead cell in the Tile Calorimeter S1,2,3 affecting the hadronic leakage calculation*/
    DeadCellTileS1S2=29
  };

  /** @brief */
  
  const uint32_t BADCLUSELECTRON = 
    0x1 << MaskedCellCore |
    0x1 << MissingFEBCellCore |
    0x1 << MissingFEBCellEdgeS1 |
    0x1 << MissingFEBCellEdgeS2 |
    0x1 << DeadHVS1S2S3Core | 
    0x1 << DeadHVS1S2S3Edge ; 
  
 const uint32_t BADCLUSPHOTON = 
    0x1 << MaskedCellCore |
    0x1 << MissingFEBCellCore |
    0x1 << MissingFEBCellEdgeS1 |
    0x1 << MissingFEBCellEdgeS2 |
    0x1 << DeadHVS1S2S3Core | 
    0x1 << DeadHVS1S2S3Edge |
    0x1 << BadS1Core; 
  
  const uint32_t ALLOQ= 0xFFFFFFFF;

  }
}

#endif // XAODEGAMMA_EGAMMADEFS_H