Main Page   Modules   Namespace List   Class Hierarchy   Compound List   File List   Namespace Members   Compound Members   File Members  

MUIOO.h

Go to the documentation of this file.
00001 #ifndef __MUIOO_H__
00002 #define __MUIOO_H__
00003 
00004 #include<string>
00005 #include<iostream>
00006 #include<TDataType.h>
00007 
00008 // Hide anything remotely complicated from CINT
00009 //
00010 #ifndef __CINT__
00011 #include<boost/tuple/tuple.hpp>
00012 #include<gsl/gsl_math.h>
00013 #endif
00014 
00015 namespace MUIOO {
00016 
00017   // Here we encapsulate constants used in class invariant tests and
00018   // the trace functions. Only stuff for debug testing allowed in
00019   // here. 
00020 
00021   // enumerations
00022   //
00023   enum Verbosity {NONE=0,SOME=1,ALOT=2,MAX=3};
00024   // constants 
00025   //
00026   const int MAX_ARM = 2;
00027   const int MAX_PLANE = 5;
00028   const int MAX_PANEL = 6;
00029   const int MAX_ORIENTATION = 2;
00030   const int MAX_TWOPACK_PANEL = 64;
00031   const short kROCsPerFEM=20;
00032   const short kWordsPerROC=6;
00033   const short kChannelsPerWord=16;
00034   const short kFEMsTotal=4;
00035   const short kROCsTotal
00036     =kFEMsTotal*kROCsPerFEM;
00037   const short kWordsTotal
00038     =kROCsTotal*kWordsPerROC;
00039   const short kChannelsTotal
00040     =kWordsTotal*kChannelsPerWord;
00041   const short kWordsPerFEM
00042     =kROCsPerFEM*kWordsPerROC;
00043   
00044 #ifndef __CINT__
00045   // Constants not in gsl_constants
00046   //
00047   const double RAD_TO_DEG = 180.0/M_PI;
00048   const double DEG_TO_RAD = M_PI/180.0;
00049   const double MASS_MUON  = 0.105658388214;
00050   const double MASS_MUON_SQUARE = 0.011163695;
00051 
00052 #endif
00053 
00054   // Nicki's enumerations brought inside MUTOO namespace
00055   //
00056   const int NumberOfArms = 2;
00057   enum ArmNumber {South,North};
00058 
00059   // functions
00060   //
00061   void TRACE(std::string message);
00062   void TRACE(std::string message, float);
00063   void PRINT(std::ostream& os = std::cout, std::string message = "");
00064   double SQUARE(double x); 
00065 
00066   // locator typedefs
00067   //
00068 #ifndef __CINT__
00069 
00071   typedef boost::tuple<const UShort_t, 
00072                        const UShort_t, 
00073                        const UShort_t, 
00074                        const UShort_t, 
00075                        const UShort_t> object_locator;
00076 
00079   typedef boost::tuple<const UShort_t, 
00080                        const UShort_t, 
00081                        const UShort_t, 
00082                        const UShort_t> panel_orient_locator;
00083 
00086   typedef boost::tuple<const UShort_t, 
00087                        const UShort_t, 
00088                        const UShort_t> panel_locator;
00089 
00090 
00093   typedef boost::tuple<const UShort_t, 
00094                        const UShort_t> plane_locator;
00095 
00096 #endif
00097 
00099   double rapidity(double px, double py, double pz, double mass);
00100 
00102   double pt(double px, double py);
00103 
00104 };
00105 
00106 #endif
00107 
00108 

MUIOO: PHENIX Muon Identifier Analysis Framework. Documentation by doxygen
Last modified: