00001
00002
00003 #ifndef UGLI_H
00004 #define UGLI_H
00005
00007
00008
00009
00010
00011
00012
00013
00014
00016
00017 #include "TVector3.h"
00018 #include "Conventions/Detector.h"
00019
00020 namespace Ugli
00021 {
00022
00023
00024
00026 enum EModifyMode {
00027 kModifiable,
00028 kFrozen,
00029 kUseGlobal
00030 };
00031
00033 typedef enum ESMRegion {
00034 kUpstream = -1,
00035 kDownstream = -2,
00036 kSMGap = 0,
00037 kInSM1 = 1,
00038 kInSM2 = 2
00039 } SMRegion_t;
00040
00042 typedef enum EXYRegion {
00043 kCoil = 0,
00044 kThroat = 1,
00045 kNeck = 2,
00046 kHole = 3,
00047 kFlange = 4,
00048 kBypass = 5,
00049 kSteel = 6,
00050 kHall = 7,
00051 kRock = 8
00052 } XYRegion_t;
00053
00054
00055
00056
00057
00058 static EModifyMode fDefaultModifyMode = Ugli::kFrozen;
00059
00060
00061
00062
00063 void SetDefaultModifyMode(EModifyMode mmode = kFrozen);
00064 inline EModifyMode GetDefaultModifyMode() { return fDefaultModifyMode; }
00065
00066 const Char_t* AsString(EModifyMode mmode);
00067 const Char_t* AsString(ESMRegion smregion);
00068 const Char_t* AsString(EXYRegion xyregion);
00069
00070
00071 inline bool XYisUV(Detector::Detector_t det)
00072 { return (Detector::kCalDet == det); }
00073
00074 void uv2xy(Detector::Detector_t det,
00075 Double_t u, Double_t v,
00076 Double_t& x, Double_t& y);
00077 void uv2xy(Detector::Detector_t det,
00078 Float_t u, Float_t v,
00079 Float_t& x, Float_t& y);
00080 void xy2uv(Detector::Detector_t det,
00081 Double_t x, Double_t y,
00082 Double_t& u, Double_t& v);
00083 void xy2uv(Detector::Detector_t det,
00084 Float_t x, Float_t y,
00085 Float_t& u, Float_t& v);
00086 TVector3 uvz2xyz(Detector::Detector_t det, const TVector3& uvz);
00087 TVector3 xyz2uvz(Detector::Detector_t det, const TVector3& xyz);
00088
00089
00090
00091 static const Double_t pi = 3.14159265358979323846;
00092 static const Double_t rad2deg = 180. / pi;
00093 static const Double_t deg2rad = pi / 180.;
00094 static const Double_t r_sqrt2 = 7.07106781186547462e-01;
00095
00096 }
00097
00098 #endif // UGLI_H