/home/cern/BDSIM_new/utils/display/BDSBox.C

00001 /* Display for BDSIM code     
00002 Author: Olivier Dadoun, Laboratoire de l'Accelerateur Lineaire (LAL-IN2P3), Orsay (France)
00003 <mailto:> dadoun@lal.in2p3.fr, 2005
00004 Last modified 30.09.2005
00005 */
00006 #include "BDSBox.h"
00007 #include "BDSConstant.h"
00008 #include "BDSPad.h"
00009 
00010 ClassImp(BDSBox)
00011 
00012 
00013 Double_t Bdsbox2Bdsaxis(Double_t real_position, Double_t min, Double_t max)
00014 {
00015         Double_t deltaxis_position=xmax_axis_position-xmin_axis_position;
00016         Double_t deltaxis = max-min;
00017         if( real_position > max )  real_position = max;
00018         if( real_position < min )  real_position = min;
00019         return (real_position-min)*deltaxis_position/deltaxis+xmin_axis_position;
00020 }
00021 
00022 BDSBox::BDSBox(Element _item, Double_t _y1, Double_t _y2)
00023 : item(_item)
00024 {
00025         SetY1(_y1);
00026         SetY2(_y2);     
00027 }       
00028 
00029 void BDSBox::Update(BDSPad* pad, Double_t xmin, Double_t xmax)
00030 {
00031         Double_t xx1 = Bdsbox2Bdsaxis(GetBDSX1(),xmin,xmax);
00032         Double_t xx2 = Bdsbox2Bdsaxis(GetBDSX2(),xmin,xmax);    
00033         SetX1(xx1);
00034         SetX2(xx2);             
00035         
00036         if(pad)
00037         {
00038                 if(xx2 < BDSPad::get_xmin_axis() || xx1 > BDSPad::get_xmax_axis())
00039                 {
00040                         pad->GetListOfPrimitives()->Remove(this);
00041                 }
00042                 else
00043                 {
00044                         
00045                         if(item.type==_QUAD || item.type==_SBEND || item.type==_SEXTUPOLE || item.type==_ECOL || item.type==_RCOL || item.type==_OCTUPOLE || item.type==_MULT)
00046                         {
00047                                 pad->GetListOfPrimitives()->Add(this);
00048                         }
00049                 
00050                 }
00051         }
00052 }

Generated on Wed Mar 5 17:25:25 2008 for BDSIM by  doxygen 1.5.3