1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
|
#ifndef FastSimulation_CaloGeometryTools_CaloDirectionOperations_h
#define FastSimulation_CaloGeometryTools_CaloDirectionOperations_h
#include "Geometry/CaloTopology/interface/CaloDirection.h"
// A set of "non standard" operations on CaloDirections
// This is FastSimulation specific !
// F. Beaudette 23/10/06
class CaloDirectionOperations {
public:
CaloDirectionOperations() { ; }
~CaloDirectionOperations() { ; }
// add directions in 2D
static CaloDirection add2d(const CaloDirection& dir1, const CaloDirection& dir2);
/// unsigned int -> Side conversion
static CaloDirection Side(unsigned i);
/// Side -> unsigned conversion
static unsigned Side(const CaloDirection& side);
/// unsigned int -> Direction for the neighbours
static unsigned neighbourDirection(const CaloDirection& side);
/// Direction -> unsigned conversion for the neighbours
static CaloDirection neighbourDirection(unsigned i);
// returns the opposite side
static CaloDirection oppositeSide(const CaloDirection& side);
static unsigned oppositeDirection(unsigned iside);
};
#endif
|