#include <MINFOutline.h>
Public Types | |
| enum | EDetector { kNear = 0x01, kFar = 0x02, kCalib = 0x04, kTestStand = 0x08, kMapper = 0x10 } |
| enum | EOutline { kSteelEars = 0, kSteelNoEars = 1, kPartialActive = 2, kFullActive = 3, kCalDet = 4 } |
Public Member Functions | |
| MINFOutline () | |
| MINFOutline (const Text_t *name, const Text_t *title, const Text_t *material, const EDetector detector, const EOutline outline, const Float_t dz, const Float_t scale) | |
| MINFOutline (const MINFOutline &so) | |
| virtual | ~MINFOutline () |
| EDetector | GetDetector () const |
| Float_t | GetGlobalXOffset () const |
| EOutline | GetOutlineType () const |
Private Member Functions | |
| void | Copy (TObject &obj) const |
Private Attributes | |
| EDetector | fDetector |
| EOutline | fOutlineType |
| Float_t | fGlobalXOffset |
|
|
Definition at line 23 of file MINFOutline.h. Referenced by GetDetector(). 00023 {
00024 kNear = 0x01,
00025 kFar = 0x02,
00026 kCalib = 0x04,
00027 kTestStand = 0x08,
00028 kMapper = 0x10
00029 };
|
|
|
Definition at line 31 of file MINFOutline.h. Referenced by GetOutlineType(). 00031 {
00032 kSteelEars = 0,
00033 kSteelNoEars = 1,
00034 kPartialActive = 2,
00035 kFullActive = 3,
00036 kCalDet = 4
00037 };
|
|
|
Definition at line 23 of file MINFOutline.cxx. 00024 {
00025 // Default constructor
00026
00027 }
|
|
||||||||||||||||||||||||||||||||
|
Definition at line 30 of file MINFOutline.cxx. References caldet_half_size, caldetxoffset, farxoffset, fGlobalXOffset, kCalDet, kCalib, kFar, kFullActive, kNear, kPartialActive, kSteelEars, kSteelNoEars, and nearxoffset. 00035 : TXTRU(name,title,material,8,2), 00036 fDetector(detector), fOutlineType(outline), fGlobalXOffset(0) 00037 { 00038 00039 const float inch2cm = 2.54; 00040 const float nearxoffset = 21.96 * inch2cm; 00041 const float farxoffset = 0.0; 00042 const float caldetxoffset = 0.0; 00043 const float caldet_half_size = 50; 00044 00045 this->DefineSection(0,-dz,scale,0.,0.); 00046 this->DefineSection(1,+dz,scale,0.,0.); 00047 00048 Bool_t error = kFALSE; 00049 00050 switch ( fDetector ) { 00051 00052 case kNear: 00053 switch ( fOutlineType ) { 00054 00055 // The Near detector outline is relative to the center of 00056 // the steel plate and NOT the global (x,y) 00057 00058 case kSteelEars: 00059 fGlobalXOffset = nearxoffset; 00060 this->DefineVertex( 0, -121.43*inch2cm, 0.47*inch2cm); 00061 this->DefineVertex( 1, -120.25*inch2cm, 0.47*inch2cm); 00062 this->DefineVertex( 2, -115.14*inch2cm, 3.42*inch2cm); 00063 this->DefineVertex( 3, -110.24*inch2cm, 3.42*inch2cm); 00064 this->DefineVertex( 4, -95.24*inch2cm, -1.48*inch2cm); 00065 this->DefineVertex( 5, -95.24*inch2cm, -35.47*inch2cm); 00066 this->DefineVertex( 6, -69.80*inch2cm, -60.91*inch2cm); 00067 this->DefineVertex( 7, -69.80*inch2cm, -75.04*inch2cm); 00068 this->DefineVertex( 8, 69.80*inch2cm, -75.04*inch2cm); 00069 this->DefineVertex( 9, 69.80*inch2cm, -60.91*inch2cm); 00070 this->DefineVertex(10, 95.24*inch2cm, -35.47*inch2cm); 00071 this->DefineVertex(11, 95.24*inch2cm, -1.48*inch2cm); 00072 this->DefineVertex(12, 110.16*inch2cm, 3.42*inch2cm); 00073 this->DefineVertex(13, 117.30*inch2cm, 3.42*inch2cm); 00074 this->DefineVertex(14, 120.25*inch2cm, 0.47*inch2cm); 00075 this->DefineVertex(15, 121.43*inch2cm, 0.47*inch2cm); 00076 this->DefineVertex(16, 121.43*inch2cm, 9.28*inch2cm); 00077 this->DefineVertex(17, 69.80*inch2cm, 60.91*inch2cm); 00078 this->DefineVertex(18, 69.80*inch2cm, 75.04*inch2cm); 00079 this->DefineVertex(19, -69.80*inch2cm, 75.04*inch2cm); 00080 this->DefineVertex(20, -69.80*inch2cm, 60.91*inch2cm); 00081 this->DefineVertex(21, -121.43*inch2cm, 9.28*inch2cm); 00082 break; 00083 00084 case kSteelNoEars: 00085 fGlobalXOffset = nearxoffset; 00086 this->DefineVertex( 0, 241.91, -90.12); 00087 this->DefineVertex( 1, 241.91, 90.08); 00088 this->DefineVertex( 2, 141.41, 190.59); 00089 this->DefineVertex( 3, -141.39, 190.60); 00090 this->DefineVertex( 4, -241.90, 90.11); 00091 this->DefineVertex( 5, -241.91, -90.08); 00092 this->DefineVertex( 6, -141.42, -190.59); 00093 this->DefineVertex( 7, 141.38, -190.62); 00094 break; 00095 00096 case kFullActive: 00097 fGlobalXOffset = nearxoffset; 00098 this->DefineVertex( 0, 141.48, -190.51); 00099 this->DefineVertex( 1, 241.91, -90.09); 00100 this->DefineVertex( 2, 241.91, 90.08); 00101 this->DefineVertex( 3, 141.41, 190.59); 00102 this->DefineVertex( 4, -43.64, 190.60); 00103 this->DefineVertex( 5, -234.25, 0.01); 00104 this->DefineVertex( 6, -234.25, 0.01); 00105 this->DefineVertex( 7, -43.78, -190.49); 00106 break; 00107 00108 case kPartialActive: 00109 fGlobalXOffset = nearxoffset; 00110 this->DefineVertex( 0, 141.37, -190.62); 00111 this->DefineVertex( 1, 241.91, -90.09); 00112 this->DefineVertex( 2, 241.91, 90.08); 00113 this->DefineVertex( 3, 141.41, 190.59); 00114 this->DefineVertex( 4, 122.19, 190.59); 00115 this->DefineVertex( 5, -8.77, 59.66); 00116 this->DefineVertex( 6, -8.78, -59.67); 00117 this->DefineVertex( 7, 122.16, -190.62); 00118 break; 00119 00120 default: 00121 error = kTRUE; 00122 } 00123 break; 00124 00125 case kFar: 00126 switch ( fOutlineType ) { 00127 00128 case kSteelEars: 00129 fGlobalXOffset = farxoffset; 00130 this->DefineVertex( 0,421.8893,-142.8867); 00131 this->DefineVertex( 1,421.8893,-138.3342); 00132 this->DefineVertex( 2,400.1614,-115.9855); 00133 this->DefineVertex( 3,400.7823,87.6358); 00134 this->DefineVertex( 4,406.9902,94.0507); 00135 this->DefineVertex( 5,429.1319,101.5003); 00136 this->DefineVertex( 6,447.1350,101.5003); 00137 this->DefineVertex( 7,454.7915,94.2577); 00138 this->DefineVertex( 8,457.6886,94.2577); 00139 this->DefineVertex( 9,457.6886,109.3637); 00140 this->DefineVertex(10,143.7724,423.2799); 00141 this->DefineVertex(11,139.4268,423.2799); 00142 this->DefineVertex(12,117.2850,401.1382); 00143 this->DefineVertex(13,-116.9622,401.1382); 00144 this->DefineVertex(14,-139.1040,423.2799); 00145 this->DefineVertex(15,-143.4496,423.2799); 00146 this->DefineVertex(16,-457.3658,109.3637); 00147 this->DefineVertex(17,-457.3658,94.2577); 00148 this->DefineVertex(18,-454.4687,94.2577); 00149 this->DefineVertex(19,-439.9834,101.9141); 00150 this->DefineVertex(20,-429.8438,101.9141); 00151 this->DefineVertex(21,-406.6674,94.2577); 00152 this->DefineVertex(22,-399.8386,84.7388); 00153 this->DefineVertex(23,-399.8386,-115.9855); 00154 this->DefineVertex(24,-421.5665,-137.7134); 00155 this->DefineVertex(25,-421.5665,-142.8867); 00156 this->DefineVertex(26,-143.4496,-421.0036); 00157 this->DefineVertex(27,-139.1040,-421.0036); 00158 this->DefineVertex(28,-116.9622,-398.8619); 00159 this->DefineVertex(29,116.8712,-398.8619); 00160 this->DefineVertex(30,139.4268,-421.0036); 00161 this->DefineVertex(31,143.7724,-421.0036); 00162 break; 00163 00164 case kSteelNoEars: 00165 fGlobalXOffset = farxoffset; 00166 this->DefineVertex( 0, 400.00, -165.72); 00167 this->DefineVertex( 1, 400.00, 165.67); 00168 this->DefineVertex( 2, 165.70, 399.99); 00169 this->DefineVertex( 3, -165.66, 400.01); 00170 this->DefineVertex( 4, -399.98, 165.71); 00171 this->DefineVertex( 5, -400.01, -165.65); 00172 this->DefineVertex( 6, -165.72, -399.98); 00173 this->DefineVertex( 7, 165.64, -400.02); 00174 break; 00175 00176 case kFullActive: 00177 case kPartialActive: 00178 this->DefineVertex( 0, 400.00, -165.72); 00179 this->DefineVertex( 1, 400.00, 165.67); 00180 this->DefineVertex( 2, 165.70, 399.99); 00181 this->DefineVertex( 3, -165.66, 400.01); 00182 this->DefineVertex( 4, -399.98, 165.71); 00183 this->DefineVertex( 5, -400.01, -165.65); 00184 this->DefineVertex( 6, -165.72, -399.98); 00185 this->DefineVertex( 7, 165.64, -400.02); 00186 break; 00187 00188 default: 00189 error = kTRUE; 00190 } 00191 break; 00192 00193 case kCalib: 00194 switch ( fOutlineType ) { 00195 00196 case kSteelEars: 00197 case kSteelNoEars: 00198 case kFullActive: 00199 case kCalDet: 00200 fGlobalXOffset = caldetxoffset; 00201 this->DefineVertex( 0,-caldet_half_size,-caldet_half_size); 00202 this->DefineVertex( 1, caldet_half_size,-caldet_half_size); 00203 this->DefineVertex( 2, caldet_half_size, caldet_half_size); 00204 this->DefineVertex( 3,-caldet_half_size, caldet_half_size); 00205 TruncateNxy(4); 00206 break; 00207 00208 default: 00209 error = kTRUE; 00210 } 00211 break; 00212 00213 default: 00214 cout << "MINFOutline::ctor Bad Detector Type " << (int)detector; 00215 break; 00216 } 00217 00218 if (error) 00219 cout << " MINFOutline ctor error: " 00220 << " can't construct Detector = " 00221 << (int)detector 00222 << " OutlineType = " << (int)outline << endl; 00223 00224 }
|
|
|
Definition at line 233 of file MINFOutline.cxx. 00234 : TXTRU(so)
00235 {
00236 ((MINFOutline&)so).Copy(*this);
00237 }
|
|
|
Definition at line 228 of file MINFOutline.cxx. 00229 {
00230 }
|
|
|
Definition at line 240 of file MINFOutline.cxx. 00241 {
00242 TXTRU::Copy(obj);
00243 }
|
|
|
Definition at line 47 of file MINFOutline.h. References EDetector. 00047 { return fDetector; }
|
|
|
Definition at line 48 of file MINFOutline.h. Referenced by MINFDetGeom::BuildDetectorGeometry(). 00048 { return fGlobalXOffset; }
|
|
|
Definition at line 49 of file MINFOutline.h. References EOutline. 00049 { return fOutlineType; }
|
|
|
Definition at line 55 of file MINFOutline.h. |
|
|
Definition at line 57 of file MINFOutline.h. Referenced by MINFOutline(). |
|
|
Definition at line 56 of file MINFOutline.h. |
1.3.9.1