/home/bes3soft/bes3soft/Boss/7.0.2/dist/7.0.2/DetectorDescription/Identifier/Identifier-00-02-17/Identifier/MdcID.h

Go to the documentation of this file.
00001 #ifndef __MdcID_h__
00002 #define __MdcID_h__
00003 
00004 #include "Identifier/BesDetectorID.h"
00005 #include <string>
00006 #include <assert.h>
00007 
00008 class MdcID : public BesDetectorID
00009 {
00010 public:
00011   typedef Identifier::size_type size_type; 
00012   typedef Identifier::value_type value_type; 
00013 
00015   MdcID();
00016 
00018   ~MdcID();
00019  
00021  static Identifier wire_id ( int wireType,
00022                              int layer,   
00023                              int wire 
00024                             ) ;
00025 
00026  static Identifier wire_id ( int layer, int wire );
00027 
00028 
00029  static value_type getIntID( unsigned  int wireType,
00030                              unsigned  int layer,
00031                              unsigned  int wire
00032                            );
00033 
00034  static value_type getIntID( unsigned  int layer,
00035                              unsigned  int wire
00036                            );
00037 
00038  static value_type getAXIAL_LAYER_MAX();
00039  static value_type getSTEREO_LAYER_MAX();
00040  static value_type getAXIAL_WIRE_MAX();
00041  static value_type getSTEREO_WIRE_MAX();
00042  static value_type getAXIAL_WIRE();
00043  static value_type getSTEREO_WIRE();
00044  
00045  
00046  static bool values_ok ( const unsigned int wireType,
00047                          const unsigned int layer,
00048                          const unsigned int wire                   
00049                        ) ;
00051 // bool  MdcID::is_axial (const Identifier& id);
00052    bool  is_axial (const Identifier& id);
00053 
00055  static int layer    (const Identifier& id) ; 
00056  static int wire     (const Identifier& id) ; 
00057  
00058 
00060  int layer_max  (const Identifier& id) ;
00061  int wire_max    (const Identifier& id) ;
00062 
00063 private:
00064  
00065  typedef std::vector<Identifier>     id_vec;
00066  typedef id_vec::const_iterator      id_vec_it;
00067 
00068  static const unsigned int AXIAL_WIRE          = 0;
00069  static const unsigned int STEREO_WIRE         = 1;
00070 
00071  static const unsigned int WIRETYPE_INDEX          = 15;
00072  static const unsigned int WIRETYPE_MASK           = 0x00008000;
00073 
00074  //LAYER numbering not seperating AXIAL and STEREO
00075  static const unsigned int LAYER_INDEX        = 9;
00076  static const unsigned int LAYER_MASK         = 0x00007E00;
00077  
00078 
00079  static const unsigned int WIRE_INDEX          = 0;
00080  static const unsigned int WIRE_MASK           = 0x000001FF;
00081 
00082  static const unsigned int AXIAL_LAYER_MAX      = 18;
00083  static const unsigned int INNER_AXIAL_LAYER_MAX      = 12;
00084  static const unsigned int OUTER_AXIAL_LAYER_MAX      = 7;
00085 
00086  static const unsigned int LAYER_MAX = 43;
00087  
00088    
00089  static const unsigned int STEREO_LAYER_MAX     = 23; 
00090  static const unsigned int INNER_STEREO_LAYER_MAX     = 8; 
00091  static const unsigned int OUTER_STEREO_LAYER_MAX     =16; 
00092  
00093  static const unsigned int  AXIAL_WIRE_MAX      = 287; 
00094  static const unsigned int  STEREO_WIRE_MAX     = 239; 
00095 };
00096 
00097 #endif

Generated on Tue Nov 29 22:58:00 2016 for BOSS_7.0.2 by  doxygen 1.4.7