AliRoot Core  da88d91 (da88d91)
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
AliFMDGeometry Class Reference

Singleton object of FMD geometry descriptions and parameters. This class is a singleton that handles the geometry parameters of the FMD detectors. More...

#include <AliFMDGeometry.h>

Inheritance diagram for AliFMDGeometry:

Public Member Functions

virtual void Init ()
 
virtual void InitTransformations (Bool_t force=kFALSE)
 
AliFMDRingGetInner () const
 
AliFMDRingGetOuter () const
 
AliFMD1GetFMD1 () const
 
AliFMD2GetFMD2 () const
 
AliFMD3GetFMD3 () const
 
AliFMDDetectorGetDetector (Int_t i) const
 
AliFMDRingGetRing (Char_t i) const
 
void Disable (Int_t i)
 
void Enable (Int_t i)
 
Double_t GetSiDensity () const
 
void Detector2XYZ (UShort_t detector, Char_t ring, UShort_t sector, UShort_t strip, Double_t &x, Double_t &y, Double_t &z) const
 
Bool_t XYZ2Detector (Double_t x, Double_t y, Double_t z, UShort_t &detector, Char_t &ring, UShort_t &sector, UShort_t &strip) const
 
void Build ()
 
Int_t GetDetectorOff () const
 
Int_t GetModuleOff () const
 
Int_t GetRingOff () const
 
Int_t GetSectorOff () const
 
void SetDetectorOff (Int_t off)
 
void SetModuleOff (Int_t off)
 
void SetRingOff (Int_t off)
 
void SetSectorOff (Int_t off)
 
Bool_t IsActive (Int_t vol) const
 
void SetActive (Int_t *active, Int_t n)
 
void AddActive (Int_t id)
 
const TArrayI & ActiveIds () const
 
void SetBuilder (AliFMDGeometryBuilder *b)
 
void ExtractGeomInfo ()
 
void SetDetailed (Bool_t det)
 
Bool_t IsDetailed () const
 
void UseAssembly (Bool_t ass)
 
virtual void GetGlobal (const AliRecPoint *p, TVector3 &pos, TMatrixF &mat) const
 
virtual void GetGlobal (const AliRecPoint *p, TVector3 &pos) const
 
virtual Bool_t Impact (const TParticle *particle) const
 
virtual void SetAlignableVolumes () const
 

Static Public Member Functions

static AliFMDGeometryInstance ()
 
static Bool_t XYZ2REtaPhiTheta (Double_t x, Double_t y, Double_t z, Double_t &r, Double_t &eta, Double_t &phi, Double_t &theta)
 

Protected Member Functions

 AliFMDGeometry ()
 
 AliFMDGeometry (const char *name)
 
 AliFMDGeometry (const AliFMDGeometry &other)
 
AliFMDGeometryoperator= (const AliFMDGeometry &other)
 
virtual ~AliFMDGeometry ()
 
 ClassDef (AliFMDGeometry, 1)
 

Protected Attributes

Bool_t fIsInitialized
 
AliFMDRingfInner
 
AliFMDRingfOuter
 
AliFMD1fFMD1
 
AliFMD2fFMD2
 
AliFMD3fFMD3
 
Bool_t fUseFMD1
 
Bool_t fUseFMD2
 
Bool_t fUseFMD3
 
Bool_t fIsInitTrans
 
AliFMDGeometryBuilderfBuilder
 
Int_t fDetectorOff
 
Int_t fModuleOff
 
Int_t fRingOff
 
Int_t fSectorOff
 
TArrayI fActive
 
Bool_t fDetailed
 
Bool_t fUseAssembly
 

Static Protected Attributes

static AliFMDGeometryfgInstance
 

Detailed Description

Singleton object of FMD geometry descriptions and parameters. This class is a singleton that handles the geometry parameters of the FMD detectors.

The actual code is done by various separate classes. Below is diagram showing the relationship between the various FMD classes that handles the geometry

                              +------------+ 
                           +- | AliFMDRing |
         2   |  +------------+
     +----------------+<>--+        |       
     | AliFMDGeometry |             ^                         
     +----------------+<>--+        V 1..2                      
                 3   | +----------------+     
                     +-| AliFMDDetector |     
                 +----------------+   
                                    ^
                                    |
                      +-------------+-------------+
                      |             |             |       
                 +---------+   +---------+   +---------+
                 | AliFMD1 |   | AliFMD2 |   | AliFMD3 |
                 +---------+   +---------+   +---------+
  • AliFMDRing This class contains all stuff needed to do with a ring. It's used by the AliFMDDetector objects to instantise inner and outer rings. The AliFMDRing objects are shared by the AliFMDDetector objects, and owned by the AliFMDv1 object.
  • AliFMD1, AliFMD2, and AliFMD3 These are specialisation of AliFMDDetector, that contains the particularities of each of the sub-detector system. It is envisioned that the classes should also define the support volumes and material for each of the detectors.

Definition at line 83 of file AliFMDGeometry.h.

Constructor & Destructor Documentation

AliFMDGeometry::AliFMDGeometry ( )
protected

CTOR

Definition at line 108 of file AliFMDGeometry.cxx.

AliFMDGeometry::AliFMDGeometry ( const char *  name)
protected

CTOR

Parameters
nameNot used

Definition at line 136 of file AliFMDGeometry.cxx.

AliFMDGeometry::AliFMDGeometry ( const AliFMDGeometry other)
protected

Copy CTOR

Parameters
otherTo copy from

Definition at line 174 of file AliFMDGeometry.cxx.

virtual AliFMDGeometry::~AliFMDGeometry ( )
inlineprotectedvirtual

Destructor

Definition at line 379 of file AliFMDGeometry.h.

Member Function Documentation

const TArrayI& AliFMDGeometry::ActiveIds ( ) const
inline

Get Array of active volume numbers

Returns
constant reference to active volume numbers

Definition at line 254 of file AliFMDGeometry.h.

Referenced by AliFMD::Init().

void AliFMDGeometry::AddActive ( Int_t  id)

Add an active volume

Parameters
idRegister volume id to be active

Definition at line 300 of file AliFMDGeometry.cxx.

Referenced by ExtractGeomInfo().

void AliFMDGeometry::Build ( )

Make the geometry. This delegates to AliFMDGeometryBuilder

Definition at line 269 of file AliFMDGeometry.cxx.

Referenced by AliFMD::CreateGeometry().

AliFMDGeometry::ClassDef ( AliFMDGeometry  ,
 
)
protected
void AliFMDGeometry::Detector2XYZ ( UShort_t  detector,
Char_t  ring,
UShort_t  sector,
UShort_t  strip,
Double_t &  x,
Double_t &  y,
Double_t &  z 
) const

Translate detector coordinates (detector, ring, sector, strip) to spatial coordinates (x, y, z) in the master reference frame of ALICE. The member function uses the transformations previously obtained from the TGeoManager.

Parameters
detectorDetector number
ringRing id
sectorSector number
stripStrip number
xOn return, X coordinate
yOn return, Y coordinate
zOn return, Z coordinate

Definition at line 410 of file AliFMDGeometry.cxx.

Referenced by AliFMDFancy::AliFancyDetector::AddMarker(), AliFMDPattern::AddMarker(), AliFMDDisplay::AddMarker(), FillEtas(), FullMapping(), GetGlobal(), MakeFakeHits(), PhysicalCoordinates(), AliFMDESDRevertexer::PhysicalCoordinates(), AliFMDReconstructor::PhysicalCoordinates(), CheckAlign::ProcessDigit(), PoissonHit::ProcessHit(), DrawSDigits::ProcessSDigit(), DrawTrackRefs::ProcessTrackRef(), AliFMDv1::StepManager(), and TestESDPhi().

void AliFMDGeometry::Disable ( Int_t  i)

Disable the ith detector

Parameters
iIF true, disable sub-detector i

Definition at line 393 of file AliFMDGeometry.cxx.

void AliFMDGeometry::Enable ( Int_t  i)

Enable the ith detector

Parameters
iIF true, enable sub-detector i

Definition at line 376 of file AliFMDGeometry.cxx.

void AliFMDGeometry::ExtractGeomInfo ( )

Check the volume depth of some nodes, get the active volume numbers, and so forth.

Todo:
Here, we should actually also get the parameters of the shapes, like the verticies of the polygon shape that makes up the silicon sensor, the strip pitch, the ring radii, the z-positions, and so on - that is, all the geometric information we need for futher processing, such as simulation, digitization, reconstruction, etc.

Definition at line 595 of file AliFMDGeometry.cxx.

Referenced by AliFMD::Init().

AliFMDDetector * AliFMDGeometry::GetDetector ( Int_t  i) const

Get description of a sub-detector

Parameters
iSub-detector #
Returns
Description of sub-detector, or 0

Definition at line 333 of file AliFMDGeometry.cxx.

Referenced by AliFMDPattern::Begin(), AliFMDFancy::Begin(), CheckAlign::CheckAlign(), Detector2XYZ(), AliFMDBaseDigitizer::DigitizeHits(), AliFMDFancy::End(), AliFMDFancy::AliFancyDetector::Init(), SetAlignableVolumes(), AliFMDv1::VMC2FMD(), and XYZ2Detector().

Int_t AliFMDGeometry::GetDetectorOff ( ) const
inline
Returns
Get detector offset in paths

Definition at line 200 of file AliFMDGeometry.h.

Referenced by AliFMDv1::VMC2FMD().

AliFMD1* AliFMDGeometry::GetFMD1 ( ) const
inline
Returns
Get FMD1 description

Definition at line 111 of file AliFMDGeometry.h.

Referenced by AliFMDGeometryBuilder::Exec().

AliFMD2* AliFMDGeometry::GetFMD2 ( ) const
inline
Returns
Get FMD2 description

Definition at line 115 of file AliFMDGeometry.h.

Referenced by AliFMDGeometryBuilder::Exec().

AliFMD3* AliFMDGeometry::GetFMD3 ( ) const
inline
Returns
Get FMD3 description

Definition at line 119 of file AliFMDGeometry.h.

Referenced by AliFMDGeometryBuilder::Exec().

void AliFMDGeometry::GetGlobal ( const AliRecPoint *  p,
TVector3 &  pos,
TMatrixF &  mat 
) const
virtual

Get global coordinates cooresponding to a rec point.

Parameters
pReconstructed point.
posOn return, the position
matOn return, the material at post

Definition at line 527 of file AliFMDGeometry.cxx.

void AliFMDGeometry::GetGlobal ( const AliRecPoint *  p,
TVector3 &  pos 
) const
virtual

Get global coordinates cooresponding to a rec point.

Parameters
pReconstructed point.
posOn return, the position

Definition at line 544 of file AliFMDGeometry.cxx.

AliFMDRing* AliFMDGeometry::GetInner ( ) const
inline
Returns
Get inner description

Definition at line 103 of file AliFMDGeometry.h.

Referenced by AliFMDGeometryBuilder::Exec().

Int_t AliFMDGeometry::GetModuleOff ( ) const
inline
Returns
Get sensor offset in paths

Definition at line 204 of file AliFMDGeometry.h.

Referenced by AliFMDv1::VMC2FMD().

AliFMDRing* AliFMDGeometry::GetOuter ( ) const
inline
Returns
Get outer description

Definition at line 107 of file AliFMDGeometry.h.

Referenced by AliFMDGeometryBuilder::Exec().

AliFMDRing * AliFMDGeometry::GetRing ( Char_t  i) const

Get description of a ring, i should be one of 'I' or 'O' (case insensitive). If an invalid parameter is passed, 0 (NULL) is returned.

Parameters
iRing id
Returns
Description of ring, or 0

Definition at line 353 of file AliFMDGeometry.cxx.

Referenced by AliFMDFancy::AliFancyDetector::AddMarker(), AliFMDPattern::AddMarker(), CheckAlign::CheckAlign(), AliFMDParameters::GetEdepMip(), AliFMDPattern::Init(), and PrintOne().

Int_t AliFMDGeometry::GetRingOff ( ) const
inline
Returns
Get ring offset in paths

Definition at line 208 of file AliFMDGeometry.h.

Referenced by AliFMDv1::VMC2FMD().

Int_t AliFMDGeometry::GetSectorOff ( ) const
inline
Returns
Get ring sector in paths

Definition at line 212 of file AliFMDGeometry.h.

Referenced by AliFMDv1::VMC2FMD().

Double_t AliFMDGeometry::GetSiDensity ( ) const
inline
Returns
Density \( \rho\) of silicon

Definition at line 151 of file AliFMDGeometry.h.

Referenced by AliFMD::CreateMaterials(), and AliFMDParameters::GetEdepMip().

Bool_t AliFMDGeometry::Impact ( const TParticle *  particle) const
virtual

Check if particle will hit an active detector element.

Todo:
implement this function
Parameters
particleTrack
Returns
true if particle will hit this detector

Definition at line 566 of file AliFMDGeometry.cxx.

Bool_t AliFMDGeometry::IsActive ( Int_t  vol) const

Check if volume vol is marked as active

Parameters
volVolume ID
Returns
true if vol is declared active

Definition at line 316 of file AliFMDGeometry.cxx.

Referenced by AliFMDv1::StepManager().

Bool_t AliFMDGeometry::IsDetailed ( ) const
inline
Returns
true if geometry is detailed

Definition at line 282 of file AliFMDGeometry.h.

Referenced by AliFMDv1::StepManager().

AliFMDGeometry & AliFMDGeometry::operator= ( const AliFMDGeometry other)
protected

Assignment operator

Parameters
otherTo assig from
Returns
reference to this.

Definition at line 208 of file AliFMDGeometry.cxx.

void AliFMDGeometry::SetActive ( Int_t *  active,
Int_t  n 
)

Set active volumes

Parameters
activeActive volume id array
nelements of active

Definition at line 282 of file AliFMDGeometry.cxx.

Referenced by AliFMDGeometryBuilder::Exec(), and AliFMD::Init().

void AliFMDGeometry::SetAlignableVolumes ( ) const
virtual

Declare alignable volumes

Definition at line 583 of file AliFMDGeometry.cxx.

Referenced by AliFMD::AddAlignableVolumes(), and TestAlignable().

void AliFMDGeometry::SetBuilder ( AliFMDGeometryBuilder b)
inline

Set an external geometry builder

Parameters
bGeometry builder

Definition at line 260 of file AliFMDGeometry.h.

void AliFMDGeometry::SetDetailed ( Bool_t  det)
inline

Whether we are to use a detailed geometry or not

Parameters
detif true, make a detailed geometry.

Definition at line 278 of file AliFMDGeometry.h.

Referenced by AliFMD::CreateGeometry().

void AliFMDGeometry::SetDetectorOff ( Int_t  off)
inline
Parameters
offDetector off-set set in geometry path

Definition at line 216 of file AliFMDGeometry.h.

Referenced by AliFMDGeometryBuilder::Exec().

void AliFMDGeometry::SetModuleOff ( Int_t  off)
inline
Parameters
offModule off-set set in geometry path

Definition at line 220 of file AliFMDGeometry.h.

Referenced by AliFMDGeometryBuilder::Exec().

void AliFMDGeometry::SetRingOff ( Int_t  off)
inline
Parameters
offRing off-set set in geometry path

Definition at line 224 of file AliFMDGeometry.h.

Referenced by AliFMDGeometryBuilder::Exec().

void AliFMDGeometry::SetSectorOff ( Int_t  off)
inline
Parameters
offSectord off-set set in geometry path

Definition at line 228 of file AliFMDGeometry.h.

Referenced by AliFMDGeometryBuilder::Exec().

void AliFMDGeometry::UseAssembly ( Bool_t  ass)
inline
Parameters
assWhether to use assemblies or not

Definition at line 286 of file AliFMDGeometry.h.

Referenced by AliFMD::CreateGeometry().

Bool_t AliFMDGeometry::XYZ2Detector ( Double_t  x,
Double_t  y,
Double_t  z,
UShort_t &  detector,
Char_t &  ring,
UShort_t &  sector,
UShort_t &  strip 
) const

Translate spatial coordinates (x,y,z) in the master reference frame of ALICE to the detector coordinates (detector, ring, sector, strip). Note, that if this method is to be used in reconstruction or the like, then the input z-coordinate should be corrected for the events interactions points z-coordinate, like

geom->XYZ2Detector(x,y,z-ipz,d,r,s,t);
Parameters
xX coordinate
yY coordinate
zZ coordinate
detectorOn return, Detector number
ringOn return, Ring id
sectorOn return, Sector number
stripOn return, Strip number
Returns
false of (x, y, z) is not within this detector.

Definition at line 443 of file AliFMDGeometry.cxx.

Bool_t AliFMDGeometry::XYZ2REtaPhiTheta ( Double_t  x,
Double_t  y,
Double_t  z,
Double_t &  r,
Double_t &  eta,
Double_t &  phi,
Double_t &  theta 
)
static

Service function to convert Cartisean XYZ to r, eta, phi, and theta.

Note, that the z input should be corrected for the vertex location if needed.

Parameters
xCartisean X coordinate
yCartisean Y coordinate
zCartisean Z coordinate
rOn return, the radius
etaOn return, the pseudo-rapidity
phiOn return, the azimuthal angle
thetaOn return, the polar angle;
Returns
kTRUE on success, kFALSE in case of problems

Definition at line 489 of file AliFMDGeometry.cxx.

Referenced by AliFMDESDRevertexer::PhysicalCoordinates(), AliFMDReconstructor::PhysicalCoordinates(), and DrawTrackRefs::ProcessTrackRef().

Member Data Documentation

TArrayI AliFMDGeometry::fActive
protected
AliFMDGeometryBuilder* AliFMDGeometry::fBuilder
protected

Definition at line 381 of file AliFMDGeometry.h.

Referenced by Build(), and SetBuilder().

Bool_t AliFMDGeometry::fDetailed
protected

Definition at line 387 of file AliFMDGeometry.h.

Referenced by Build(), ExtractGeomInfo(), IsDetailed(), and SetDetailed().

Int_t AliFMDGeometry::fDetectorOff
protected

Definition at line 382 of file AliFMDGeometry.h.

Referenced by ExtractGeomInfo(), GetDetectorOff(), and SetDetectorOff().

AliFMD1* AliFMDGeometry::fFMD1
protected
AliFMD2* AliFMDGeometry::fFMD2
protected
AliFMD3* AliFMDGeometry::fFMD3
protected
AliFMDGeometry* AliFMDGeometry::fgInstance
staticprotected

Definition at line 352 of file AliFMDGeometry.h.

AliFMDRing* AliFMDGeometry::fInner
protected

Definition at line 343 of file AliFMDGeometry.h.

Referenced by AliFMDGeometry(), GetInner(), GetRing(), Init(), and operator=().

Bool_t AliFMDGeometry::fIsInitialized
protected

Definition at line 342 of file AliFMDGeometry.h.

Referenced by AliFMDGeometry(), Init(), and operator=().

Bool_t AliFMDGeometry::fIsInitTrans
protected

Definition at line 351 of file AliFMDGeometry.h.

Referenced by InitTransformations().

Int_t AliFMDGeometry::fModuleOff
protected

Definition at line 383 of file AliFMDGeometry.h.

Referenced by ExtractGeomInfo(), GetModuleOff(), and SetModuleOff().

AliFMDRing* AliFMDGeometry::fOuter
protected

Definition at line 344 of file AliFMDGeometry.h.

Referenced by AliFMDGeometry(), GetOuter(), GetRing(), Init(), and operator=().

Int_t AliFMDGeometry::fRingOff
protected

Definition at line 384 of file AliFMDGeometry.h.

Referenced by ExtractGeomInfo(), GetRingOff(), and SetRingOff().

Int_t AliFMDGeometry::fSectorOff
protected

Definition at line 385 of file AliFMDGeometry.h.

Referenced by ExtractGeomInfo(), GetSectorOff(), and SetSectorOff().

Bool_t AliFMDGeometry::fUseAssembly
protected

Definition at line 388 of file AliFMDGeometry.h.

Referenced by Build(), and UseAssembly().

Bool_t AliFMDGeometry::fUseFMD1
protected

Definition at line 348 of file AliFMDGeometry.h.

Referenced by Disable(), Enable(), GetDetector(), GetFMD1(), and operator=().

Bool_t AliFMDGeometry::fUseFMD2
protected

Definition at line 349 of file AliFMDGeometry.h.

Referenced by Disable(), Enable(), GetDetector(), GetFMD2(), and operator=().

Bool_t AliFMDGeometry::fUseFMD3
protected

Definition at line 350 of file AliFMDGeometry.h.

Referenced by Disable(), Enable(), GetDetector(), GetFMD3(), and operator=().


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