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

FarLayout.cxx

Go to the documentation of this file.
00001 #include <iostream>
00002 
00003 #include "TPolyLine.h"
00004 #include "TArc.h"
00005 #include "TMath.h"
00006 
00007 #include "MessageService/MsgService.h"
00008 #include "Conventions/Munits.h"
00009 
00010 #include "AtNuUtils/FarLayout.h"
00011 
00012 using namespace std;
00013 
00014 static double TPE = TMath::Sqrt((2.-TMath::Sqrt(2.))/
00015                                 (2.+TMath::Sqrt(2.)));
00016 
00017 CVSID("$Id: FarLayout.cxx,v 1.3 2007/01/15 19:52:00 rhatcher Exp $");
00018 
00019 FarLayout::FarLayout() {
00020   SteelLineColor=4;
00021   SteelLineStyle=1;
00022   SteelLineWidth=2;
00023 
00024   FiducialLineColor=2;
00025   FiducialLineStyle=2;
00026   FiducialLineWidth=2;
00027 
00028   ShieldLineColor=3;
00029   ShieldLineStyle=1;
00030   ShieldLineWidth=2;
00031 }
00032 
00033 FarLayout::~FarLayout() {
00034 }
00035 
00036 void FarLayout::Draw(Option_t *opt) {
00037   MSG("FarLayout",Msg::kDebug) << "FarLayout::Draw('" << opt << "')" << endl;
00038   this->DrawSteel(opt);
00039   this->DrawFiducial(opt);
00040   this->DrawShield(opt);
00041 }
00042 
00043 void FarLayout::DrawSteel(Option_t *opt) {
00044   MSG("FarLayout",Msg::kDebug) << "FarLayout::DrawSteel('" << opt << "')" << endl;
00045 
00046   TPolyLine *s1 = this->SteelOutline();
00047   s1->SetLineColor(this->SteelLineColor);
00048   s1->SetLineStyle(this->SteelLineStyle);
00049   s1->SetLineWidth(this->SteelLineWidth);
00050   s1->Draw();
00051 
00052   TArc *s2 = this->SteelCoilHole();
00053   s2->SetLineColor(this->SteelLineColor);
00054   s2->SetLineStyle(this->SteelLineStyle);
00055   s2->SetLineWidth(this->SteelLineWidth);
00056   s2->Draw();
00057 }
00058 
00059 void FarLayout::DrawFiducial(Option_t *opt) {
00060   MSG("FarLayout",Msg::kDebug) << "FarLayout::DrawFiducial('" << opt << "')" << endl;
00061   TPolyLine *fidol = this->FiducialOutline();
00062   fidol->SetLineColor(FiducialLineColor);
00063   fidol->SetLineStyle(FiducialLineStyle);
00064   fidol->SetLineWidth(FiducialLineWidth);
00065   fidol->Draw();
00066 
00067   TArc *fidch = this->FiducialCoilHole();
00068   fidch->SetLineColor(FiducialLineColor);
00069   fidch->SetLineStyle(FiducialLineStyle);
00070   fidch->SetLineWidth(FiducialLineWidth);
00071   fidch->Draw();
00072 }
00073 
00074 void FarLayout::DrawShield(Option_t *opt) {
00075   MSG("FarLayout",Msg::kDebug) << "FarLayout::DrawShield('" << opt << "')" << endl;
00076   TPolyLine *shield = this->ShieldTop();
00077   shield->SetLineColor(ShieldLineColor);
00078   shield->SetLineStyle(ShieldLineStyle);
00079   shield->SetLineWidth(ShieldLineWidth);
00080   shield->Draw();
00081 
00082   shield = this->ShieldEastWall1();
00083   shield->SetLineColor(ShieldLineColor);
00084   shield->SetLineStyle(ShieldLineStyle);
00085   shield->SetLineWidth(ShieldLineWidth);
00086   shield->Draw();
00087 
00088   shield = this->ShieldEastWall2();
00089   shield->SetLineColor(ShieldLineColor);
00090   shield->SetLineStyle(ShieldLineStyle);
00091   shield->SetLineWidth(ShieldLineWidth);
00092   shield->Draw();
00093 
00094   shield = this->ShieldWestWall1();
00095   shield->SetLineColor(ShieldLineColor);
00096   shield->SetLineStyle(ShieldLineStyle);
00097   shield->SetLineWidth(ShieldLineWidth);
00098   shield->Draw();
00099 
00100   shield = this->ShieldWestWall2();
00101   shield->SetLineColor(ShieldLineColor);
00102   shield->SetLineStyle(ShieldLineStyle);
00103   shield->SetLineWidth(ShieldLineWidth);
00104   shield->Draw();
00105 }
00106 
00107 TPolyLine* FarLayout::SteelOutline() {
00108   static TPolyLine* so = new TPolyLine(33,"");
00109 
00110   so->SetPoint( 0, 421.8893*Munits::cm,-142.8867*Munits::cm);
00111   so->SetPoint( 1, 421.8893*Munits::cm,-138.3342*Munits::cm);
00112   so->SetPoint( 2, 400.1614*Munits::cm,-115.9855*Munits::cm);
00113   //?? so->SetPoint( 3, 400.7823*Munits::cm,  87.6358*Munits::cm);
00114   so->SetPoint( 3, 400.1614*Munits::cm,  87.6358*Munits::cm);
00115   so->SetPoint( 4, 406.9902*Munits::cm,  94.0507*Munits::cm);
00116   so->SetPoint( 5, 429.1319*Munits::cm, 101.5003*Munits::cm);
00117   so->SetPoint( 6, 447.1350*Munits::cm, 101.5003*Munits::cm);
00118   so->SetPoint( 7, 454.7915*Munits::cm,  94.2577*Munits::cm);
00119   so->SetPoint( 8, 457.6886*Munits::cm,  94.2577*Munits::cm);
00120   so->SetPoint( 9, 457.6886*Munits::cm, 109.3637*Munits::cm);
00121   so->SetPoint(10, 143.7724*Munits::cm, 423.2799*Munits::cm);
00122   so->SetPoint(11, 139.4268*Munits::cm, 423.2799*Munits::cm);
00123   so->SetPoint(12, 117.2850*Munits::cm, 401.1382*Munits::cm);
00124   so->SetPoint(13,-116.9622*Munits::cm, 401.1382*Munits::cm);
00125   so->SetPoint(14,-139.1040*Munits::cm, 423.2799*Munits::cm);
00126   so->SetPoint(15,-143.4496*Munits::cm, 423.2799*Munits::cm);
00127   so->SetPoint(16,-457.3658*Munits::cm, 109.3637*Munits::cm);
00128   so->SetPoint(17,-457.3658*Munits::cm,  94.2577*Munits::cm);
00129   so->SetPoint(18,-454.4687*Munits::cm,  94.2577*Munits::cm);
00130   so->SetPoint(19,-439.9834*Munits::cm, 101.9141*Munits::cm);
00131   so->SetPoint(20,-429.8438*Munits::cm, 101.9141*Munits::cm);
00132   so->SetPoint(21,-406.6674*Munits::cm,  94.2577*Munits::cm);
00133   so->SetPoint(22,-399.8386*Munits::cm,  84.7388*Munits::cm);
00134   so->SetPoint(23,-399.8386*Munits::cm,-115.9855*Munits::cm);
00135   so->SetPoint(24,-421.5665*Munits::cm,-137.7134*Munits::cm);
00136   so->SetPoint(25,-421.5665*Munits::cm,-142.8867*Munits::cm);
00137   so->SetPoint(26,-143.4496*Munits::cm,-421.0036*Munits::cm);
00138   so->SetPoint(27,-139.1040*Munits::cm,-421.0036*Munits::cm);
00139   so->SetPoint(28,-116.9622*Munits::cm,-398.8619*Munits::cm);
00140   so->SetPoint(29, 116.8712*Munits::cm,-398.8619*Munits::cm);
00141   so->SetPoint(30, 139.4268*Munits::cm,-421.0036*Munits::cm);
00142   so->SetPoint(31, 143.7724*Munits::cm,-421.0036*Munits::cm);
00143   // repeat first so that "C" loops back
00144   so->SetPoint(32, 421.8893*Munits::cm,-142.8867*Munits::cm);
00145 
00146   return so;
00147 }
00148 
00149 TArc* FarLayout::SteelCoilHole() {
00150   static TArc* sch = new TArc(0,0,0.15);
00151 
00152   return sch;
00153 }
00154 
00155 TPolyLine* FarLayout::FiducialOutline(double FidUV) {
00156   static TPolyLine* so = new TPolyLine(9,"");
00157 
00158   double A = FidUV;
00159   double B = FidUV * TPE;
00160 
00161   so->SetPoint(0, -B*Munits::cm, -A*Munits::cm);
00162   so->SetPoint(1,  B*Munits::cm, -A*Munits::cm);
00163   so->SetPoint(2,  A*Munits::cm, -B*Munits::cm);
00164   so->SetPoint(3,  A*Munits::cm,  B*Munits::cm);
00165   so->SetPoint(4,  B*Munits::cm,  A*Munits::cm);
00166   so->SetPoint(5, -B*Munits::cm,  A*Munits::cm);
00167   so->SetPoint(6, -A*Munits::cm,  B*Munits::cm);
00168   so->SetPoint(7, -A*Munits::cm, -B*Munits::cm);
00169   so->SetPoint(8, -B*Munits::cm, -A*Munits::cm);
00170 
00171   return so;
00172 }
00173 
00174 TArc* FarLayout::FiducialCoilHole() {
00175   static TArc* sch = new TArc(0,0,0.3);
00176 
00177   return sch;
00178 }
00179 
00180 TPolyLine* FarLayout::ShieldTop() {
00181   static TPolyLine* so = new TPolyLine(6,"");
00182 
00183   so->SetPoint(0,-600.*Munits::cm, 300.*Munits::cm);
00184   so->SetPoint(1,-325.*Munits::cm, 300.*Munits::cm);
00185   so->SetPoint(2,-200.*Munits::cm, 450.*Munits::cm);
00186   so->SetPoint(3, 200.*Munits::cm, 450.*Munits::cm);
00187   so->SetPoint(4, 325.*Munits::cm, 300.*Munits::cm);
00188   so->SetPoint(5, 600.*Munits::cm, 300.*Munits::cm);
00189   return so;
00190 }
00191 
00192 TPolyLine* FarLayout::ShieldEastWall1() {
00193   static TPolyLine* so = new TPolyLine(3,"");
00194 
00195   so->SetPoint(0, 680.*Munits::cm, 140.*Munits::cm);
00196   so->SetPoint(1, 680.*Munits::cm, 380.*Munits::cm);
00197   so->SetPoint(2, 625.*Munits::cm, 440.*Munits::cm);
00198 
00199   return so;
00200 }
00201 
00202 TPolyLine* FarLayout::ShieldEastWall2() {
00203   static TPolyLine* so = new TPolyLine(2,"");
00204 
00205   so->SetPoint(0, 425.*Munits::cm,-120.*Munits::cm);
00206   so->SetPoint(1, 425.*Munits::cm,  30.*Munits::cm);
00207 
00208   return so;
00209 }
00210 
00211 TPolyLine* FarLayout::ShieldWestWall1() {
00212   static TPolyLine* so = new TPolyLine(3,"");
00213 
00214   so->SetPoint(0,-680.*Munits::cm, 140.*Munits::cm);
00215   so->SetPoint(1,-680.*Munits::cm, 380.*Munits::cm);
00216   so->SetPoint(2,-625.*Munits::cm, 440.*Munits::cm);
00217 
00218   return so;
00219 }
00220 
00221 TPolyLine* FarLayout::ShieldWestWall2() {
00222   static TPolyLine* so = new TPolyLine(2,"");
00223 
00224   so->SetPoint(0,-425.*Munits::cm,-120.*Munits::cm);
00225   so->SetPoint(1,-425.*Munits::cm,  30.*Munits::cm);
00226 
00227   return so;
00228 }

Generated on Mon Feb 15 11:06:41 2010 for loon by  doxygen 1.3.9.1