00001 // MdcSegPatterns.h -- holds list of allowed hits and ambiguity patterns for 00002 // track segments in a superlayer. A set of 8 wires is grouped 00003 // together and the hits characterized by a bit-mapped number given by: 00004 // 00005 // 7 6 5 outer layer of superlayer 00006 // 4 3 00007 // 2 00008 // 1 0 inner layer of superlayer 00009 // 00010 // Bits corresponding to a hit wire are set to 1; others are 0. There are 00011 // therefore 256 integers representing the 256 possible combinations of 00012 // hit wires. Only certain combinations of hits represent possible tracks -- 00013 // there are 8 hit combinations for tracks that span the group from inner 00014 // radius to outer (numbered 0 to 8): 00015 // 00016 // X X X X X X X X 00017 // X X X X X X X X 00018 // X X X X X X X X 00019 // X X X X X X X X 00020 // 00021 // Similarly, there are 22 allowed three-hit combinations; two of these 00022 // are dropped to avoid double-counting between overlapping groups. 00023 // 00024 // For each 4(3)-hit pattern there are 16(8) possible L-R ambiguity 00025 // combinations; for each pattern, some are allowed. Allowed ambig patterns 00026 // have ambigPatt4[pattern #][ambigPatt #] = 1. 00027 00028 // Interface Dependencies ---------------------------------------------- 00029 00030 #ifndef MDCSEGPATTERNS_H 00031 #define MDCSEGPATTERNS_H 00032 00033 // End Interface Dependencies ----------------------------------------- 00034 00035 // Class definition// 00036 class MdcSegPatterns { 00037 public: 00038 unsigned patt4[8]; // bit-mapped list of allowed patterns 00039 unsigned patt3[20]; 00040 int npatt4[256]; 00041 int npatt3[256]; 00042 int *allowedPatt4[256]; // pointers to lists of 4-hit allowed patterns 00043 int *allowedPatt3[256]; // " " " " 3-hit " " 00044 int **ambigPatt4; 00045 int **ambigPatt3; 00046 MdcSegPatterns(int useAllAmbig); 00047 ~MdcSegPatterns(); 00048 00049 }; 00050 #endif 00051 00052 00053 00054 00055 00056 00057