ATLAS Offline Software
Loading...
Searching...
No Matches
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
38namespace LVL1 {
39
49public:
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
68protected: // Protected methods
72 KeyUtilities(double phi, double eta) ;
73
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
94protected:
96 int m_iphi;
98 int m_ieta;
100 double m_eta;
102 double m_phi;
115};
116}
117#endif
static Double_t a
Coordinate policies.
Used to pass data between the methods of the Key Classes: Returns the Eta and Phi bins,...
Definition BinAndCoord.h:35
Used by Key Classes, returns and integer coorginate for the bin Eta-Phi.
Definition ICoordinate.h:26
virtual double dPhi(const Coordinate &coord) const =0
returns the height at eta_coord:
virtual double eta() const
returns the centre of the TT at eta_coord:
virtual int sign(int temp) const
returns -1 if temp is -ve and +1 if it is +ve.
virtual BinAndCoord * calculateTriggerBin(ICoordinate *iCoord)=0
converts integer phi, eta coordinates to phi, eta trigger bins.
int m_ieta
integer eta coord
int sharpRound2(int a, int b) const
divides a/b and returns a number as follows (where +b means +ve b): if 0
virtual double phi() const
returns phi coordinate of centre of relevant trigger tower.
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.
ICoordinate * convertCoordsToIntegers(double phi, double eta)
converts the coordinates and corrects for overflows etc.
int m_iphi
integer phi coord
virtual double dEta(const Coordinate &coord) const =0
returns the width at eta_coord:
double m_centralEta
this is the coordinate of the centre of the relevant trigger tower.
int round(double a) const
rounds number to nearest whole number
unsigned int key(double phi, double eta)
calculates a map key from passed phi, eta coordinates
Coordinate coord() const
return central coords of current key value.
double m_centralPhi
this is the coordinate of the centre of the relevant trigger tower.
KeyUtilities()
the constructor is protected so a user can never make a KeyUtilities object
bool m_debug
turns DEBUG code on and off
double m_phi
phi coordinate of key
double m_eta
eta coordinate of key
eFexTowerBuilder creates xAOD::eFexTowerContainer from supercells (LATOME) and triggerTowers (TREX) i...