Main Page | Namespace List | Class Hierarchy | Alphabetical List | Class List | File List | Class Members | File Members

NonProjCalGeometry Class Reference

#include <NonProjCalGeometry.hh>

Collaboration diagram for NonProjCalGeometry:

Collaboration graph
[legend]
List of all members.

Public Member Functions

 NonProjCalGeometry (const NonProjCalGeomParams &par)
 ~NonProjCalGeometry ()
int NumberOfLayers () const
double getCellCenterCylR (const NPCellID &id) const
double getCellCenterPhi (const NPCellID &id) const
double getCellCenterZ (const NPCellID &id) const
G4ThreeVector getCellCenter (const NPCellID &id) const
double getCellCenterX (const NPCellID &id) const
double getCellCenterY (const NPCellID &id) const
double getCellCenterTheta (const NPCellID &id) const
double getCellCenterSphR (const NPCellID &id) const
double getInnerROfActiveLayer (int i) const
double getNcellsAlongZInLayer (int i) const
double getNcellsAlongPhiInLayer (int i) const
double getCellSizeAlongZInLayer (int i) const
double getCellSizeAlongPhiInLayer (int i) const
NPCellID getClosestCell (const G4ThreeVector &pos) const
bool activeCellContains (const NPCellID &npid, const G4ThreeVector &pos) const
int getLayer (const G4ThreeVector &pos) const

Private Attributes

int _nlayers
const NonProjCalGeomParams_par
std::vector< const NonProjCalLayer * > _layers

Constructor & Destructor Documentation

NonProjCalGeometry::NonProjCalGeometry const NonProjCalGeomParams par  ) 
 

Definition at line 5 of file NonProjCalGeometry.cc.

References _layers, _nlayers, and _par.

00006 {
00007   // Build layers
00008   _par = &par;
00009   _nlayers = par.NumberOfLayers();
00010   for(int i=0; i<_nlayers; i++) {
00011     _layers.push_back(new NonProjCalLayer(par,i));
00012 
00013     // some debugging
00014 //     NonProjCalLayer ithlayer = (NonProjCalLayer)_layers.get(i);
00015 //          System.out.println("Layer="+ithlayer.Index()
00016 //                             +", nCellsZ="+ithlayer.NumCellsAlongZ()
00017 //                             +", nCellsPhi="+ithlayer.NumCellsAlongPhi()
00018 //                             );
00019 //          System.out.println(" ");
00020   }
00021 }

NonProjCalGeometry::~NonProjCalGeometry  )  [inline]
 

Definition at line 22 of file NonProjCalGeometry.hh.

00022 {}


Member Function Documentation

bool NonProjCalGeometry::activeCellContains const NPCellID npid,
const G4ThreeVector &  pos
const
 

Definition at line 34 of file NonProjCalGeometry.cc.

References _layers, and NPCellID::ir.

00036 {
00037   return _layers[ npid.ir ]->activeCellContains(npid, pos);
00038 }

G4ThreeVector NonProjCalGeometry::getCellCenter const NPCellID id  )  const [inline]
 

Definition at line 37 of file NonProjCalGeometry.hh.

References _layers, and NPCellID::ir.

Referenced by LCDG4CalSDNonProj::getCellCenter().

00037                                                         {
00038     return ( _layers[id.ir]->getCellCenter(id) );
00039   }

double NonProjCalGeometry::getCellCenterCylR const NPCellID id  )  const [inline]
 

Definition at line 28 of file NonProjCalGeometry.hh.

References _layers, and NPCellID::ir.

00028                                                      {
00029     return ( _layers[id.ir]->getCellCenterCylR(id) );
00030   }

double NonProjCalGeometry::getCellCenterPhi const NPCellID id  )  const [inline]
 

Definition at line 31 of file NonProjCalGeometry.hh.

References _layers, and NPCellID::ir.

00031                                                     {
00032     return ( _layers[id.ir]->getCellCenterPhi(id) );
00033   }

double NonProjCalGeometry::getCellCenterSphR const NPCellID id  )  const [inline]
 

Definition at line 49 of file NonProjCalGeometry.hh.

References _layers, and NPCellID::ir.

00049                                                      {
00050     return ( _layers[id.ir]->getCellCenterSphR(id) );
00051   }

double NonProjCalGeometry::getCellCenterTheta const NPCellID id  )  const [inline]
 

Definition at line 46 of file NonProjCalGeometry.hh.

References _layers, and NPCellID::ir.

00046                                                       {
00047     return ( _layers[id.ir]->getCellCenterTheta(id) );
00048   }

double NonProjCalGeometry::getCellCenterX const NPCellID id  )  const [inline]
 

Definition at line 40 of file NonProjCalGeometry.hh.

References _layers, and NPCellID::ir.

00040                                                   {
00041     return ( _layers[id.ir]->getCellCenterX(id) );
00042   }

double NonProjCalGeometry::getCellCenterY const NPCellID id  )  const [inline]
 

Definition at line 43 of file NonProjCalGeometry.hh.

References _layers, and NPCellID::ir.

00043                                                   {
00044     return ( _layers[id.ir]->getCellCenterY(id) );
00045   }

double NonProjCalGeometry::getCellCenterZ const NPCellID id  )  const [inline]
 

Definition at line 34 of file NonProjCalGeometry.hh.

References _layers, and NPCellID::ir.

00034                                                   {
00035     return ( _layers[id.ir]->getCellCenterZ(id) );
00036   }

double NonProjCalGeometry::getCellSizeAlongPhiInLayer int  i  )  const [inline]
 

Definition at line 65 of file NonProjCalGeometry.hh.

References _layers.

00065                                                  {
00066     return _layers[i]->getCellSizeAlongPhi();
00067   }

double NonProjCalGeometry::getCellSizeAlongZInLayer int  i  )  const [inline]
 

Definition at line 62 of file NonProjCalGeometry.hh.

References _layers.

00062                                                {
00063     return _layers[i]->getCellSizeAlongZ();
00064   }

NPCellID NonProjCalGeometry::getClosestCell const G4ThreeVector &  pos  )  const
 

Definition at line 23 of file NonProjCalGeometry.cc.

References _layers, and getLayer().

Referenced by LCDG4CalSDNonProj::findCell().

00024 {
00025   return _layers[ getLayer(pos) ]->getClosestCell(pos);
00026 }

double NonProjCalGeometry::getInnerROfActiveLayer int  i  )  const [inline]
 

Definition at line 53 of file NonProjCalGeometry.hh.

References _layers.

00053                                              {
00054     return _layers[i]->getInnerRadiusOfActive();
00055   }

int NonProjCalGeometry::getLayer const G4ThreeVector &  pos  )  const
 

Definition at line 47 of file NonProjCalGeometry.cc.

References _par, NonProjCalGeomParams::GlobalRmin(), and NonProjCalGeomParams::LayerThickness().

Referenced by getClosestCell().

00048 {
00049   double depth = sqrt(pos.x()*pos.x() + pos.y()*pos.y()) - _par->GlobalRmin();
00050   int layer = (int)floor( depth / _par->LayerThickness() );
00051   // There are some rare cases where this goes to -1...  weird!!
00052   if(layer<0) {
00053     G4cout<< "NPCalGeom::getLayer: invalid layer="<< layer <<", set to 0."
00054           << G4endl;
00055     G4cout<< " Culprit: depth(mm)="<< depth << G4endl;
00056     layer=0;
00057   }
00058   return layer;
00059 }

double NonProjCalGeometry::getNcellsAlongPhiInLayer int  i  )  const [inline]
 

Definition at line 59 of file NonProjCalGeometry.hh.

References _layers.

00059                                                {
00060     return _layers[i]->getNcellsAlongPhi();
00061   }

double NonProjCalGeometry::getNcellsAlongZInLayer int  i  )  const [inline]
 

Definition at line 56 of file NonProjCalGeometry.hh.

References _layers.

00056                                              {
00057     return _layers[i]->getNcellsAlongZ();
00058   }

int NonProjCalGeometry::NumberOfLayers  )  const [inline]
 

Definition at line 25 of file NonProjCalGeometry.hh.

References _nlayers.

00025 { return _nlayers; }


Member Data Documentation

std::vector<const NonProjCalLayer*> NonProjCalGeometry::_layers [private]
 

Definition at line 76 of file NonProjCalGeometry.hh.

Referenced by activeCellContains(), getCellCenter(), getCellCenterCylR(), getCellCenterPhi(), getCellCenterSphR(), getCellCenterTheta(), getCellCenterX(), getCellCenterY(), getCellCenterZ(), getCellSizeAlongPhiInLayer(), getCellSizeAlongZInLayer(), getClosestCell(), getInnerROfActiveLayer(), getNcellsAlongPhiInLayer(), getNcellsAlongZInLayer(), and NonProjCalGeometry().

int NonProjCalGeometry::_nlayers [private]
 

Definition at line 74 of file NonProjCalGeometry.hh.

Referenced by NonProjCalGeometry(), and NumberOfLayers().

const NonProjCalGeomParams* NonProjCalGeometry::_par [private]
 

Definition at line 75 of file NonProjCalGeometry.hh.

Referenced by getLayer(), and NonProjCalGeometry().


The documentation for this class was generated from the following files:
Generated on Thu Oct 7 18:45:09 2004 for LCDG4 by doxygen 1.3.4