ATLAS Offline Software
Loading...
Searching...
No Matches
HIEventDefs.h
Go to the documentation of this file.
1/*
2 Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration
3*/
4
5#ifndef HIEVENTUTILS_HIEVENTDEFS_H
6#define HIEVENTUTILS_HIEVENTDEFS_H
7
8#include <utility>
9#include <cmath>
12#include "CaloGeoHelpers/CaloSampling.h"
13
14namespace HI{
15
16 enum BinningScheme{ TOWER = 100, COMPACT = 562 };
17
18 namespace TowerBins{
19 constexpr unsigned int numEtaBins() {return 100;}
20 constexpr float etaMin() {return -5.;}
21 constexpr float etaMax() {return 5.;}
22 constexpr unsigned int numPhiBins() {return 64;}
23 constexpr unsigned int numLayers() {return 24;}
24 //these fail b/c Root doesn't know about constexpr
25 //constexpr float PhiMin() {return -TMath::Pi();}
26 //constexpr float PhiMax() {return TMath::Pi();}
27 //use cmath's M_PI
28 constexpr float PhiMin() {return -M_PI;}
29 constexpr float PhiMax() {return M_PI;}
30
31 constexpr float getBinSizeEta() {return (etaMax()-etaMin())/((float)numEtaBins());}
32 constexpr float getBinSizePhi() {return (PhiMax()-PhiMin())/((float)numPhiBins());}
33
34 constexpr float getBinArea() {return getBinSizeEta()*getBinSizePhi();}
35 constexpr float getTotalArea() {return (etaMax()-etaMin())*(PhiMax()-PhiMin());}
36 constexpr unsigned int getNumEtaPhiBins() {return numEtaBins()*numPhiBins();}
37
38 inline float getBinLowEdgeEta(unsigned int eb) {return etaMin()+eb*getBinSizeEta();}
39 inline float getBinUpEdgeEta(unsigned int eb) {return etaMin()+(eb+1)*getBinSizeEta();}
40 inline float getBinCenterEta(unsigned int eb) {return etaMin()+(eb+0.5)*getBinSizeEta();}
41
42 inline float getBinLowEdgePhi(unsigned int pb) {return PhiMin()+pb*getBinSizePhi();}
43 inline float getBinUpEdgePhi(unsigned int pb) {return PhiMin()+(pb+1)*getBinSizePhi();}
44 inline float getBinCenterPhi(unsigned int pb) {return PhiMin()+(pb+0.5)*getBinSizePhi();}
45
46 inline unsigned int findBinEta(float eta) {return std::floor((eta-etaMin())/getBinSizeEta());}
47 inline unsigned int findBinPhi(float phi)
48 {
49 int pb=std::floor((phi-PhiMin()) /getBinSizePhi());
50 return pb % numPhiBins();
51 }
52 inline unsigned int findEtaPhiBin(float eta, float phi) { return numPhiBins()*findBinEta(eta)+findBinPhi(phi);}
53 }
54
55 namespace SubCalo
56 {
57
58 namespace Lists
59 {
60 constexpr std::initializer_list<int> EMBarrel{CaloSampling::PreSamplerB, CaloSampling::EMB1, CaloSampling::EMB2, CaloSampling::EMB3};
61 constexpr std::initializer_list<int> EMEC{CaloSampling::PreSamplerE, CaloSampling::EME1, CaloSampling::EME2, CaloSampling::EME3};
62 constexpr std::initializer_list<int> HEC{CaloSampling::HEC0, CaloSampling::HEC1, CaloSampling::HEC2, CaloSampling::HEC3};
63 constexpr std::initializer_list<int> TileBarrel{CaloSampling::TileBar0, CaloSampling::TileBar1, CaloSampling::TileBar2};
64 constexpr std::initializer_list<int> TileGap{CaloSampling::TileGap1, CaloSampling::TileGap2, CaloSampling::TileGap3};
65 constexpr std::initializer_list<int> TileExt{CaloSampling::TileExt0, CaloSampling::TileExt1, CaloSampling::TileExt2};
66 constexpr std::initializer_list<int> FCal{CaloSampling::FCAL0, CaloSampling::FCAL1, CaloSampling::FCAL2};
67
68 constexpr std::initializer_list<int> EMCal{CaloSampling::PreSamplerB, CaloSampling::EMB1, CaloSampling::EMB2, CaloSampling::EMB3,
69 CaloSampling::PreSamplerE, CaloSampling::EME1, CaloSampling::EME2, CaloSampling::EME3};
70 constexpr std::initializer_list<int> Tile{CaloSampling::TileBar0, CaloSampling::TileBar1, CaloSampling::TileBar2,
71 CaloSampling::TileGap1, CaloSampling::TileGap2, CaloSampling::TileGap3,
72 CaloSampling::TileExt0, CaloSampling::TileExt1, CaloSampling::TileExt2};
73 constexpr std::initializer_list<int> HCal{CaloSampling::TileBar0, CaloSampling::TileBar1, CaloSampling::TileBar2,
74 CaloSampling::TileGap1, CaloSampling::TileGap2, CaloSampling::TileGap3,
75 CaloSampling::TileExt0, CaloSampling::TileExt1, CaloSampling::TileExt2,
76 CaloSampling::HEC0, CaloSampling::HEC1, CaloSampling::HEC2, CaloSampling::HEC3};
77 constexpr std::initializer_list<int> PreSampler{CaloSampling::PreSamplerB,CaloSampling::PreSamplerE};
78
79 constexpr std::initializer_list<int> ALL{ CaloSampling::PreSamplerB, CaloSampling::EMB1, CaloSampling::EMB2, CaloSampling::EMB3,
80 CaloSampling::PreSamplerE, CaloSampling::EME1, CaloSampling::EME2, CaloSampling::EME3,
81 CaloSampling::HEC0, CaloSampling::HEC1, CaloSampling::HEC2, CaloSampling::HEC3,
82 CaloSampling::TileBar0, CaloSampling::TileBar1, CaloSampling::TileBar2,
83 CaloSampling::TileGap1, CaloSampling::TileGap2, CaloSampling::TileGap3,
84 CaloSampling::TileExt0, CaloSampling::TileExt1, CaloSampling::TileExt2,
85 CaloSampling::FCAL0, CaloSampling::FCAL1, CaloSampling::FCAL2};
86
87 }
88 }
89 //selectors
90 namespace Sel
91 {
104
117
130
131 }
132
133
134}
135
136#endif
#define M_PI
Scalar eta() const
pseudorapidity method
Scalar phi() const
phi method
constexpr ByLayersP TileGap_P
constexpr ByLayersP HEC_P
constexpr ByLayersN FCal_N
constexpr ByLayersP HCal_P
constexpr ByLayersN EMEC_N
constexpr ByLayersN PreSampler_N
constexpr ByLayersN ALL_N
constexpr ByLayersP Tile_P
constexpr ByLayersN EMBarrel_N
constexpr ByLayersP EMCal_P
constexpr ByLayersN Tile_N
constexpr ByLayers TileExt
Definition HIEventDefs.h:97
constexpr ByLayersP TileBarrel_P
constexpr ByLayersN TileExt_N
constexpr ByLayers HCal
constexpr ByLayers HEC
Definition HIEventDefs.h:94
constexpr ByLayers EMCal
Definition HIEventDefs.h:99
constexpr ByLayers TileGap
Definition HIEventDefs.h:96
constexpr ByLayers EMEC
Definition HIEventDefs.h:93
constexpr ByLayersP EMBarrel_P
constexpr ByLayersP PreSampler_P
constexpr ByLayersN HCal_N
constexpr ByLayersP EMEC_P
constexpr ByLayers PreSampler
constexpr ByLayersN TileGap_N
constexpr ByLayers TileBarrel
Definition HIEventDefs.h:95
constexpr ByLayersP TileExt_P
constexpr ByLayers ALL
constexpr ByLayersN EMCal_N
constexpr ByLayers EMBarrel
Definition HIEventDefs.h:92
constexpr ByLayersN HEC_N
constexpr ByLayers FCal
Definition HIEventDefs.h:98
constexpr ByLayersN TileBarrel_N
constexpr ByLayersP FCal_P
constexpr ByLayersP ALL_P
constexpr std::initializer_list< int > EMBarrel
Definition HIEventDefs.h:60
constexpr std::initializer_list< int > ALL
Definition HIEventDefs.h:79
constexpr std::initializer_list< int > Tile
Definition HIEventDefs.h:70
constexpr std::initializer_list< int > HEC
Definition HIEventDefs.h:62
constexpr std::initializer_list< int > EMCal
Definition HIEventDefs.h:68
constexpr std::initializer_list< int > PreSampler
Definition HIEventDefs.h:77
constexpr std::initializer_list< int > TileGap
Definition HIEventDefs.h:64
constexpr std::initializer_list< int > TileBarrel
Definition HIEventDefs.h:63
constexpr std::initializer_list< int > FCal
Definition HIEventDefs.h:66
constexpr std::initializer_list< int > EMEC
Definition HIEventDefs.h:61
constexpr std::initializer_list< int > TileExt
Definition HIEventDefs.h:65
constexpr std::initializer_list< int > HCal
Definition HIEventDefs.h:73
float getBinCenterEta(unsigned int eb)
Definition HIEventDefs.h:40
float getBinUpEdgeEta(unsigned int eb)
Definition HIEventDefs.h:39
float getBinLowEdgeEta(unsigned int eb)
Definition HIEventDefs.h:38
float getBinUpEdgePhi(unsigned int pb)
Definition HIEventDefs.h:43
constexpr float etaMax()
Definition HIEventDefs.h:21
constexpr float getBinArea()
Definition HIEventDefs.h:34
constexpr unsigned int numLayers()
Definition HIEventDefs.h:23
constexpr float getTotalArea()
Definition HIEventDefs.h:35
constexpr unsigned int numPhiBins()
Definition HIEventDefs.h:22
constexpr float getBinSizeEta()
Definition HIEventDefs.h:31
unsigned int findEtaPhiBin(float eta, float phi)
Definition HIEventDefs.h:52
unsigned int findBinEta(float eta)
Definition HIEventDefs.h:46
constexpr unsigned int numEtaBins()
Definition HIEventDefs.h:19
constexpr float PhiMax()
Definition HIEventDefs.h:29
float getBinLowEdgePhi(unsigned int pb)
Definition HIEventDefs.h:42
float getBinCenterPhi(unsigned int pb)
Definition HIEventDefs.h:44
constexpr float etaMin()
Definition HIEventDefs.h:20
constexpr unsigned int getNumEtaPhiBins()
Definition HIEventDefs.h:36
unsigned int findBinPhi(float phi)
Definition HIEventDefs.h:47
constexpr float getBinSizePhi()
Definition HIEventDefs.h:32
constexpr float PhiMin()
Definition HIEventDefs.h:28
BinningScheme
Definition HIEventDefs.h:16
@ COMPACT
Definition HIEventDefs.h:16
@ TOWER
Definition HIEventDefs.h:16