Back to home page

Project CMSSW displayed by LXR

 
 

    


File indexing completed on 2024-04-06 12:11:11

0001 #ifndef FastSimulation_CaloGeometryTools_CaloDirectionOperations_h
0002 #define FastSimulation_CaloGeometryTools_CaloDirectionOperations_h
0003 
0004 #include "Geometry/CaloTopology/interface/CaloDirection.h"
0005 
0006 // A set of "non standard" operations on CaloDirections
0007 // This is FastSimulation specific !
0008 // F. Beaudette 23/10/06
0009 
0010 class CaloDirectionOperations {
0011 public:
0012   CaloDirectionOperations() { ; }
0013   ~CaloDirectionOperations() { ; }
0014 
0015   // add directions in 2D
0016   static CaloDirection add2d(const CaloDirection& dir1, const CaloDirection& dir2);
0017 
0018   /// unsigned int -> Side conversion
0019   static CaloDirection Side(unsigned i);
0020   /// Side -> unsigned conversion
0021   static unsigned Side(const CaloDirection& side);
0022 
0023   /// unsigned int -> Direction  for the neighbours
0024   static unsigned neighbourDirection(const CaloDirection& side);
0025   /// Direction -> unsigned conversion for the neighbours
0026   static CaloDirection neighbourDirection(unsigned i);
0027 
0028   // returns the opposite side
0029   static CaloDirection oppositeSide(const CaloDirection& side);
0030   static unsigned oppositeDirection(unsigned iside);
0031 };
0032 
0033 #endif