ATLAS Offline Software
KeyUtilities.h
Go to the documentation of this file.
1 /*
2  Copyright (C) 2002-2018 CERN for the benefit of the ATLAS collaboration
3 */
4 /***************************************************************************
5  KeyUtilities.h - description
6  -------------------
7  begin : Monday August 20 2001
8  email : e.moyse@qmw.ac.uk
9  ***************************************************************************/
10 
11 
12 #ifndef KeyUtilities_H
13 #define KeyUtilities_H
14 
15 #ifndef TRIGGERSPACE
16 // running in Athena
17 #include <iostream>
18 //#include "GaudiKernel/MsgStream.h"
19 #include <math.h>
23 
24 
25 #else
26 // running in TRIGGERSPACE
27 #include <iostream>
28 #include <math.h>
29 #include "ICoordinate.h"
30 #include "BinAndCoord.h"
31 #include "Coordinate.h"
32 
33 #endif
34 
35 
36 
37 
38 namespace LVL1 {
39 
48 class KeyUtilities {
49 public:
50  virtual ~KeyUtilities();
52  virtual double eta() const;
54  virtual double dEta(const Coordinate& coord) const=0;
57  virtual double phi() const;
59  virtual double dPhi(const Coordinate& coord) const=0;
62  unsigned int key( double phi, double eta) ;
64  unsigned int key(const Coordinate& coord) ;
66  Coordinate coord() const;
67 
68 protected: // Protected methods
70  KeyUtilities();
72  KeyUtilities(double phi, double eta) ;
73 
77  ICoordinate* convertCoordsToIntegers(double phi, double eta);
80  virtual BinAndCoord* calculateTriggerBin(ICoordinate* iCoord)=0;
82  virtual int sign(int temp) const;
84  virtual int sign(double temp) const;
86  int round(double a) const;
88  int sharpRound(double a) const ;
91  int sharpRound2(int a, int b) const ;
92  void setupThisKeyValues();
93 
94 protected:
96  int m_iphi;
98  int m_ieta;
100  double m_eta;
102  double m_phi;
104  int m_phiBin;
106  int m_etaBin;
109  double m_centralPhi;
112  double m_centralEta;
114  bool m_debug;
115 };
116 }
117 #endif
LVL1::KeyUtilities::sign
virtual int sign(int temp) const
returns -1 if temp is -ve and +1 if it is +ve.
Definition: KeyUtilities.cxx:164
LVL1::KeyUtilities::phi
virtual double phi() const
returns phi coordinate of centre of relevant trigger tower.
Definition: KeyUtilities.cxx:159
LVL1::KeyUtilities::m_phi
double m_phi
phi coordinate of key
Definition: KeyUtilities.h:112
LVL1::KeyUtilities::sharpRound
int sharpRound(double a) const
rounds number as follows (-1.0 to 0.0) -> -1, (0.0 to 1.0) -> 0, (1.0 to 2.0)->1 etc.
Definition: KeyUtilities.cxx:190
LVL1::KeyUtilities::key
unsigned int key(double phi, double eta)
calculates a map key from passed phi, eta coordinates
Definition: KeyUtilities.cxx:82
LVL1::KeyUtilities::m_iphi
int m_iphi
integer phi coord
Definition: KeyUtilities.h:106
LVL1::KeyUtilities::m_etaBin
int m_etaBin
eta bin
Definition: KeyUtilities.h:116
LVL1
eFexTowerBuilder creates xAOD::eFexTowerContainer from supercells (LATOME) and triggerTowers (TREX) i...
Definition: ICMMCPHitsCnvTool.h:18
LVL1::KeyUtilities::m_debug
bool m_debug
turns DEBUG code on and off
Definition: KeyUtilities.h:124
LVL1::KeyUtilities::KeyUtilities
KeyUtilities()
the constructor is protected so a user can never make a KeyUtilities object
Definition: KeyUtilities.cxx:42
LVL1::ICoordinate
Used by Key Classes, returns and integer coorginate for the bin Eta-Phi.
Definition: ICoordinate.h:31
LVL1::KeyUtilities::dPhi
virtual double dPhi(const Coordinate &coord) const =0
returns the height at eta_coord:
LVL1::KeyUtilities::eta
virtual double eta() const
returns the centre of the TT at eta_coord:
Definition: KeyUtilities.cxx:150
LVL1::KeyUtilities::coord
Coordinate coord() const
return central coords of current key value.
Definition: KeyUtilities.cxx:199
LVL1::Coordinate
Coordinate class declaration.
Definition: TrigT1/TrigT1Interfaces/TrigT1Interfaces/Coordinate.h:50
LVL1::KeyUtilities::m_ieta
int m_ieta
integer eta coord
Definition: KeyUtilities.h:108
LVL1::BinAndCoord
Used to pass data between the methods of the Key Classes: Returns the Eta and Phi bins,...
Definition: BinAndCoord.h:40
LVL1::KeyUtilities::setupThisKeyValues
void setupThisKeyValues()
Definition: KeyUtilities.cxx:173
BinAndCoord.h
Coordinate.h
Coordinate policies.
LVL1::KeyUtilities::round
int round(double a) const
rounds number to nearest whole number
Definition: KeyUtilities.cxx:185
LVL1::KeyUtilities::~KeyUtilities
virtual ~KeyUtilities()
Definition: KeyUtilities.cxx:69
LVL1::KeyUtilities::m_centralPhi
double m_centralPhi
this is the coordinate of the centre of the relevant trigger tower.
Definition: KeyUtilities.h:119
Coordinate.h
LVL1::KeyUtilities::m_eta
double m_eta
eta coordinate of key
Definition: KeyUtilities.h:110
plotBeamSpotMon.b
b
Definition: plotBeamSpotMon.py:77
LVL1::KeyUtilities::convertCoordsToIntegers
ICoordinate * convertCoordsToIntegers(double phi, double eta)
converts the coordinates and corrects for overflows etc.
Definition: KeyUtilities.cxx:110
a
TList * a
Definition: liststreamerinfos.cxx:10
LVL1::KeyUtilities::m_phiBin
int m_phiBin
phi bin
Definition: KeyUtilities.h:114
LVL1::KeyUtilities::m_centralEta
double m_centralEta
this is the coordinate of the centre of the relevant trigger tower.
Definition: KeyUtilities.h:122
ICoordinate.h
LVL1::KeyUtilities::dEta
virtual double dEta(const Coordinate &coord) const =0
returns the width at eta_coord:
LVL1::KeyUtilities::sharpRound2
int sharpRound2(int a, int b) const
divides a/b and returns a number as follows (where +b means +ve b): if 0<a<+b, then n=1,...
Definition: KeyUtilities.cxx:194
LVL1::KeyUtilities::calculateTriggerBin
virtual BinAndCoord * calculateTriggerBin(ICoordinate *iCoord)=0
converts integer phi, eta coordinates to phi, eta trigger bins.