Main Page | Modules | Namespace List | Class Hierarchy | Alphabetical List | Class List | Directories | File List | Namespace Members | Class Members | File Members | Related Pages

MINFOutline Class Reference

#include <MINFOutline.h>

List of all members.

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


Member Enumeration Documentation

enum MINFOutline::EDetector
 

Enumeration values:
kNear 
kFar 
kCalib 
kTestStand 
kMapper 

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    };

enum MINFOutline::EOutline
 

Enumeration values:
kSteelEars 
kSteelNoEars 
kPartialActive 
kFullActive 
kCalDet 

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    };


Constructor & Destructor Documentation

MINFOutline::MINFOutline  ) 
 

Definition at line 23 of file MINFOutline.cxx.

00024 {
00025    // Default constructor
00026 
00027 }

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
 

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 }

MINFOutline::MINFOutline const MINFOutline so  ) 
 

Definition at line 233 of file MINFOutline.cxx.

00234   : TXTRU(so)
00235 {
00236    ((MINFOutline&)so).Copy(*this);
00237 }

MINFOutline::~MINFOutline  )  [virtual]
 

Definition at line 228 of file MINFOutline.cxx.

00229 {
00230 }


Member Function Documentation

void MINFOutline::Copy TObject &  obj  )  const [private]
 

Definition at line 240 of file MINFOutline.cxx.

00241 {
00242    TXTRU::Copy(obj);
00243 }

EDetector MINFOutline::GetDetector  )  const [inline]
 

Definition at line 47 of file MINFOutline.h.

References EDetector.

00047 { return fDetector; }

Float_t MINFOutline::GetGlobalXOffset  )  const [inline]
 

Definition at line 48 of file MINFOutline.h.

Referenced by MINFDetGeom::BuildDetectorGeometry().

00048 { return fGlobalXOffset; }

EOutline MINFOutline::GetOutlineType  )  const [inline]
 

Definition at line 49 of file MINFOutline.h.

References EOutline.

00049 { return fOutlineType; }


Member Data Documentation

EDetector MINFOutline::fDetector [private]
 

Definition at line 55 of file MINFOutline.h.

Float_t MINFOutline::fGlobalXOffset [private]
 

Definition at line 57 of file MINFOutline.h.

Referenced by MINFOutline().

EOutline MINFOutline::fOutlineType [private]
 

Definition at line 56 of file MINFOutline.h.


The documentation for this class was generated from the following files:
Generated on Mon Feb 15 11:09:35 2010 for loon by  doxygen 1.3.9.1