Main Page   Class Hierarchy   Compound List   File List   Compound Members   File Members   Related Pages  

CalGeometrySvc Class Reference

#include <CalGeometrySvc.h>

Inheritance diagram for CalGeometrySvc::

ICalGeometrySvc List of all members.

Public Methods

 CalGeometrySvc (const std::string &name, ISvcLocator *pSvcLocator)
 Constructor of this form must be provided. More...

virtual ~CalGeometrySvc ()
StatusCode initialize ()
StatusCode finalize ()
int numModulesX ()
int numModulesY ()
int numViews ()
int numLayers ()
int numLogs ()
double moduleWidth ()
double Z0 ()
double layerWidth ()
double layerHeight ()
double logWidth ()
double logHeight ()
double logLength ()
double logGap ()
double light_att ()
CalDetGeo getLayer (int ilayer, CalDetGeo::axis a)
CalDetGeo getLog (int ilayer, CalDetGeo::axis a, int ilog)
CalDetGeo getLog (int ilayer, CalDetGeo::axis a, int ilog, idents::ModuleId mod)
StatusCode queryInterface (const IID &riid, void **ppvUnknown)
 queryInterface - for implementing a Service this is necessary. More...

const IID & type () const
 return the service type. More...


Static Public Methods

const InterfaceID & interfaceID ()

Private Attributes

int m_geoType
int m_balloonFlight
int m_nmodx
int m_nmody
int m_nviews
int m_nlayers
int m_nLogs
double m_modWidth
double m_Z0
double m_layerWidth
double m_layerHeight
double m_logWidth
double m_logLength
double m_logHeight
double m_logGap
double m_latt

Constructor & Destructor Documentation

CalGeometrySvc::CalGeometrySvc const std::string &    name,
ISvcLocator *    pSvcLocator
 

Constructor of this form must be provided.

Definition at line 11 of file CalGeometrySvc.cpp.

References m_balloonFlight, m_geoType, m_latt, m_layerHeight, m_layerWidth, m_logGap, m_logHeight, m_logLength, m_logWidth, m_nlayers, m_nLogs, m_nmodx, m_nmody, m_nviews, and m_Z0.

00013 :Service(name, pSvcLocator) 
00014 {
00015         declareProperty("geometryType", m_geoType = 0);
00016         declareProperty("balloonFlight", m_balloonFlight = 0);
00017         
00018         
00019                 
00020 // testbeam geometry (default)
00021 
00022 
00023                 m_nviews  = 2;
00024                 m_nlayers = 4;
00025                 m_nLogs   = 10;
00026                 m_nmodx   = 1;
00027                 m_nmody   = 1;
00028 
00029 //   testbeam geometry 
00030                 m_Z0          = -25.9602; 
00031 
00032 
00033         m_layerWidth  =   31.05;
00034                 m_layerHeight =    2.614;
00035 
00036                 m_logWidth    =  3.05;
00037                 m_logLength   = 31.05;
00038                 m_logHeight   =  2.35;
00039                 m_logGap      =  0.06;
00040         m_latt        =  0.35;
00041 
00042 
00043         
00044 
00045 
00046 
00047 }

virtual CalGeometrySvc::~CalGeometrySvc   [inline, virtual]
 

Definition at line 33 of file CalGeometrySvc.h.

00033 {}


Member Function Documentation

StatusCode CalGeometrySvc::finalize  
 

Definition at line 122 of file CalGeometrySvc.cpp.

00124 {
00125     return StatusCode::SUCCESS;
00126 }

CalDetGeo CalGeometrySvc::getLayer int    ilayer,
CalDetGeo::axis    a
[virtual]
 

Reimplemented from ICalGeometrySvc.

Definition at line 132 of file CalGeometrySvc.cpp.

References CalAxis::axis, and CalAxis::Y.

00134 {
00135         double xpos = 0.;
00136         double ypos = 0.;
00137         double zfar = 0.;
00138         if (a == CalDetGeo::Y) zfar = layerHeight();
00139         double zpos = Z0()+2.*ilayer*layerHeight()+zfar;
00140 
00141         double xsize = layerWidth();
00142         double ysize = layerWidth();
00143         double zsize = layerHeight();
00144 
00145         Point P(xpos,ypos,zpos);
00146         Point S(0.5*xsize,0.5*ysize,0.5*zsize);
00147 
00148         CalDetGeo layer(ilayer,a,ilayer,P,S);
00149         return layer;
00150 }

CalDetGeo CalGeometrySvc::getLog int    ilayer,
CalDetGeo::axis    a,
int    ilog,
idents::ModuleId    mod
[virtual]
 

Reimplemented from ICalGeometrySvc.

Definition at line 152 of file CalGeometrySvc.cpp.

References CalAxis::axis, CalGeo::position(), and CalGeo::setPosition().

00154 {
00155 
00156         double xmod = (mod.ix()-(m_nmodx+1)*0.5)*m_modWidth;
00157         double ymod = (mod.iy()-(m_nmody+1)*0.5)*m_modWidth;
00158         Vector modcenter(xmod,ymod,0);
00159         CalDetGeo log = getLog(ilayer, a, ilog);
00160         log.setPosition(log.position()+modcenter);
00161         return log;
00162 }

CalDetGeo CalGeometrySvc::getLog int    ilayer,
CalDetGeo::axis    a,
int    ilog
[virtual]
 

Reimplemented from ICalGeometrySvc.

Definition at line 164 of file CalGeometrySvc.cpp.

References CalAxis::axis, CalGeo::position(), and CalAxis::X.

00166 {
00167         CalDetGeo layer = getLayer(ilayer,a);
00168         double xpos = layer.position().x();
00169         double ypos = layer.position().y();
00170         double zpos = layer.position().z();
00171         
00172         int nlogs = numLogs();
00173         double posRef = -0.5*(nlogs-1)*(logWidth()+logGap());
00174         double pos = posRef+ilog*(logWidth()+logGap());
00175         if (fabs(pos) < 1e-5) pos =0.; 
00176         if (a == CalDetGeo::X) xpos = pos;
00177         else ypos = pos;
00178 
00179         double xsize = logLength();
00180         double ysize = logLength();
00181         if (a == CalDetGeo::X) xsize = logWidth();
00182         else ysize = logWidth();
00183         double zsize = logHeight();
00184         
00185         Point P(xpos,ypos,zpos);
00186         Point S(0.5*xsize,0.5*ysize,0.5*zsize);
00187 
00188         CalDetGeo log(ilayer,a,ilog,P,S);
00189 
00190         return log;
00191 }

StatusCode CalGeometrySvc::initialize  
 

Definition at line 51 of file CalGeometrySvc.cpp.

00053 {
00054     StatusCode sc = StatusCode::SUCCESS;
00055         Service::initialize();
00056         setProperties();
00057     
00058     //    balloon flight geometry
00059     if (m_geoType == 0 && m_balloonFlight == 1) m_Z0 = -24.346; 
00060 
00061         if (m_geoType == 1)
00062         {
00063         
00064                 // Flight geometry, compressed cell design 
00065                 m_nviews  = 2;
00066                 m_nlayers = 4;
00067                 m_nLogs   = 12;
00068                 m_nmodx   = 4;
00069                 m_nmody   = 4;
00070 
00071                 m_modWidth    = 39.37;
00072                 m_Z0          = -34.094;   
00073 
00074                 m_layerWidth  =   36.99;
00075                 m_layerHeight =    2.446;
00076 
00077                 m_logWidth    =  3.00;
00078                 m_logLength   = 36.99;
00079                 m_logHeight   =  2.10;
00080                 m_logGap      =  0.084;
00081         m_latt        =  0.35;
00082 
00083         }
00084         else if (m_geoType == 2)
00085         {
00086         
00087                 // Flight geometry, carbon cell design 
00088                 m_nviews  = 2;
00089                 m_nlayers = 4;
00090                 m_nLogs   = 12;
00091                 m_nmodx   = 4;
00092                 m_nmody   = 4;
00093 
00094 //              m_modWidth    = 37.35;
00095 
00096 //      after grid design modification m_modWidth became                
00097                 m_modWidth    = 37.45;
00098 
00099 //              m_Z0          = -32.1425;        
00100 //     after tracker geometry modification m_Z0 became
00101 //              m_Z0          = -32.7756;   
00102 
00103 //      after grid design modification m_Z0 became                
00104                 
00105                 m_Z0          = -30.9176;   
00106 
00107                 m_layerWidth  =   33.3;
00108                 m_layerHeight =    2.139;
00109 
00110                 m_logWidth    =  2.6714;
00111                 m_logLength   = 33.3;
00112                 m_logHeight   =  1.99;
00113                 m_logGap      =  0.113;
00114         m_latt        =  0.35;
00115 
00116         }
00117         return sc;
00118 }

const InterfaceID& CalGeometrySvc::interfaceID   [inline, static]
 

Reimplemented from ICalGeometrySvc.

Definition at line 67 of file CalGeometrySvc.h.

References ICalGeometrySvc::interfaceID().

00067 { return ICalGeometrySvc::interfaceID(); }

double CalGeometrySvc::layerHeight   [inline, virtual]
 

Reimplemented from ICalGeometrySvc.

Definition at line 49 of file CalGeometrySvc.h.

References m_layerHeight.

00049 {return m_layerHeight;}

double CalGeometrySvc::layerWidth   [inline, virtual]
 

Reimplemented from ICalGeometrySvc.

Definition at line 48 of file CalGeometrySvc.h.

References m_layerWidth.

00048 {return m_layerWidth;}

double CalGeometrySvc::light_att   [inline, virtual]
 

Reimplemented from ICalGeometrySvc.

Definition at line 55 of file CalGeometrySvc.h.

References CalAxis::axis, and m_latt.

00055 {return m_latt;}

double CalGeometrySvc::logGap   [inline, virtual]
 

Reimplemented from ICalGeometrySvc.

Definition at line 54 of file CalGeometrySvc.h.

References m_logGap.

00054 {return m_logGap;}

double CalGeometrySvc::logHeight   [inline, virtual]
 

Reimplemented from ICalGeometrySvc.

Definition at line 52 of file CalGeometrySvc.h.

References m_logHeight.

00052 {return m_logHeight;}

double CalGeometrySvc::logLength   [inline, virtual]
 

Reimplemented from ICalGeometrySvc.

Definition at line 53 of file CalGeometrySvc.h.

References m_logLength.

00053 {return m_logLength;}

double CalGeometrySvc::logWidth   [inline, virtual]
 

Reimplemented from ICalGeometrySvc.

Definition at line 51 of file CalGeometrySvc.h.

References m_logWidth.

00051 {return m_logWidth;}

double CalGeometrySvc::moduleWidth   [inline, virtual]
 

Reimplemented from ICalGeometrySvc.

Definition at line 46 of file CalGeometrySvc.h.

References m_modWidth.

00046 {return m_modWidth;}

int CalGeometrySvc::numLayers   [inline, virtual]
 

Reimplemented from ICalGeometrySvc.

Definition at line 43 of file CalGeometrySvc.h.

References m_nlayers.

00043 {return m_nlayers;}

int CalGeometrySvc::numLogs   [inline, virtual]
 

Reimplemented from ICalGeometrySvc.

Definition at line 44 of file CalGeometrySvc.h.

References m_nLogs.

00044 {return m_nLogs;}

int CalGeometrySvc::numModulesX   [inline, virtual]
 

Reimplemented from ICalGeometrySvc.

Definition at line 40 of file CalGeometrySvc.h.

References m_nmodx.

00040 {return m_nmodx;}

int CalGeometrySvc::numModulesY   [inline, virtual]
 

Reimplemented from ICalGeometrySvc.

Definition at line 41 of file CalGeometrySvc.h.

References m_nmody.

00041 {return m_nmody;}

int CalGeometrySvc::numViews   [inline, virtual]
 

Reimplemented from ICalGeometrySvc.

Definition at line 42 of file CalGeometrySvc.h.

References m_nviews.

00042 {return m_nviews;}

StatusCode CalGeometrySvc::queryInterface const IID &    riid,
void **    ppvIF
 

queryInterface - for implementing a Service this is necessary.

Definition at line 194 of file CalGeometrySvc.cpp.

00195 {
00196     if (IID_ICalGeometrySvc == riid) {
00197         *ppvIF = dynamic_cast<ICalGeometrySvc*> (this);
00198         return StatusCode::SUCCESS;
00199     }
00200     else {
00201         return Service::queryInterface (riid, ppvIF);
00202     }
00203 }

const IID & CalGeometrySvc::type   const
 

return the service type.

Definition at line 206 of file CalGeometrySvc.cpp.

00206                                         {
00207     return IID_ICalGeometrySvc;
00208 }

double CalGeometrySvc::Z0   [inline, virtual]
 

Reimplemented from ICalGeometrySvc.

Definition at line 47 of file CalGeometrySvc.h.

References m_Z0.

00047 {return m_Z0;}


Member Data Documentation

int CalGeometrySvc::m_balloonFlight [private]
 

Definition at line 74 of file CalGeometrySvc.h.

Referenced by CalGeometrySvc().

int CalGeometrySvc::m_geoType [private]
 

Definition at line 73 of file CalGeometrySvc.h.

Referenced by CalGeometrySvc().

double CalGeometrySvc::m_latt [private]
 

Definition at line 93 of file CalGeometrySvc.h.

Referenced by CalGeometrySvc(), and light_att().

double CalGeometrySvc::m_layerHeight [private]
 

Definition at line 87 of file CalGeometrySvc.h.

Referenced by CalGeometrySvc(), and layerHeight().

double CalGeometrySvc::m_layerWidth [private]
 

Definition at line 86 of file CalGeometrySvc.h.

Referenced by CalGeometrySvc(), and layerWidth().

double CalGeometrySvc::m_logGap [private]
 

Definition at line 92 of file CalGeometrySvc.h.

Referenced by CalGeometrySvc(), and logGap().

double CalGeometrySvc::m_logHeight [private]
 

Definition at line 91 of file CalGeometrySvc.h.

Referenced by CalGeometrySvc(), and logHeight().

double CalGeometrySvc::m_logLength [private]
 

Definition at line 90 of file CalGeometrySvc.h.

Referenced by CalGeometrySvc(), and logLength().

double CalGeometrySvc::m_logWidth [private]
 

Definition at line 89 of file CalGeometrySvc.h.

Referenced by CalGeometrySvc(), and logWidth().

double CalGeometrySvc::m_modWidth [private]
 

Definition at line 82 of file CalGeometrySvc.h.

Referenced by moduleWidth().

int CalGeometrySvc::m_nlayers [private]
 

Definition at line 79 of file CalGeometrySvc.h.

Referenced by CalGeometrySvc(), and numLayers().

int CalGeometrySvc::m_nLogs [private]
 

Definition at line 80 of file CalGeometrySvc.h.

Referenced by CalGeometrySvc(), and numLogs().

int CalGeometrySvc::m_nmodx [private]
 

Definition at line 76 of file CalGeometrySvc.h.

Referenced by CalGeometrySvc(), and numModulesX().

int CalGeometrySvc::m_nmody [private]
 

Definition at line 77 of file CalGeometrySvc.h.

Referenced by CalGeometrySvc(), and numModulesY().

int CalGeometrySvc::m_nviews [private]
 

Definition at line 78 of file CalGeometrySvc.h.

Referenced by CalGeometrySvc(), and numViews().

double CalGeometrySvc::m_Z0 [private]
 

Definition at line 84 of file CalGeometrySvc.h.

Referenced by CalGeometrySvc(), and Z0().


The documentation for this class was generated from the following files:
Generated on Thu Nov 29 16:38:53 2001 by doxygen1.2.12 written by Dimitri van Heesch, © 1997-2001