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

Detailed Description

Definition at line 19 of file MINFOutline.h.


Member Enumeration Documentation

Enumerator:
kNear 
kFar 
kCalib 
kTestStand 
kMapper 

Definition at line 23 of file MINFOutline.h.

00023                   {
00024       kNear      = 0x01,
00025       kFar       = 0x02, 
00026       kCalib     = 0x04,
00027       kTestStand = 0x08,
00028       kMapper    = 0x10 
00029    };

Enumerator:
kSteelEars 
kSteelNoEars 
kPartialActive 
kFullActive 
kCalDet 

Definition at line 31 of file MINFOutline.h.

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, fDetector, fGlobalXOffset, fOutlineType, 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 fDetector.

00047 { return fDetector; }

Float_t MINFOutline::GetGlobalXOffset (  )  const [inline]

Definition at line 48 of file MINFOutline.h.

References fGlobalXOffset.

Referenced by MINFDetGeom::BuildDetectorGeometry().

00048 { return fGlobalXOffset; }

EOutline MINFOutline::GetOutlineType (  )  const [inline]

Definition at line 49 of file MINFOutline.h.

References fOutlineType.

00049 { return fOutlineType; }


Member Data Documentation

Definition at line 55 of file MINFOutline.h.

Referenced by GetDetector(), and MINFOutline().

Float_t MINFOutline::fGlobalXOffset [private]

Definition at line 57 of file MINFOutline.h.

Referenced by GetGlobalXOffset(), and MINFOutline().

Definition at line 56 of file MINFOutline.h.

Referenced by GetOutlineType(), and MINFOutline().


The documentation for this class was generated from the following files:

Generated on 2 Nov 2017 for loon by  doxygen 1.6.1