ROOT logo
AliRoot » FMD » AliFMDGeometry

class AliFMDGeometry: public AliGeometry

Function Members (Methods)

public:
voidTObject::AbstractMethod(const char* method) const
const TArrayI&ActiveIds() const
voidAddActive(Int_t id)
virtual voidTObject::AppendPad(Option_t* option = "")
virtual voidTObject::Browse(TBrowser* b)
voidBuild()
static TClass*Class()
virtual const char*TObject::ClassName() const
virtual voidTNamed::Clear(Option_t* option = "")
virtual TObject*TNamed::Clone(const char* newname = "") const
virtual Int_tTNamed::Compare(const TObject* obj) const
virtual voidTNamed::Copy(TObject& named) const
virtual voidTObject::Delete(Option_t* option = "")MENU
voidDetector2XYZ(UShort_t detector, Char_t ring, UShort_t sector, UShort_t strip, Double_t& x, Double_t& y, Double_t& z) const
voidDisable(Int_t i)
virtual Int_tTObject::DistancetoPrimitive(Int_t px, Int_t py)
virtual voidTObject::Draw(Option_t* option = "")
virtual voidTObject::DrawClass() constMENU
virtual TObject*TObject::DrawClone(Option_t* option = "") constMENU
virtual voidTObject::Dump() constMENU
voidEnable(Int_t i)
virtual voidTObject::Error(const char* method, const char* msgfmt) const
virtual voidTObject::Execute(const char* method, const char* params, Int_t* error = 0)
virtual voidTObject::Execute(TMethod* method, TObjArray* params, Int_t* error = 0)
virtual voidTObject::ExecuteEvent(Int_t event, Int_t px, Int_t py)
voidExtractGeomInfo()
virtual voidTObject::Fatal(const char* method, const char* msgfmt) const
virtual voidTNamed::FillBuffer(char*& buffer)
virtual TObject*TObject::FindObject(const char* name) const
virtual TObject*TObject::FindObject(const TObject* obj) const
AliFMDDetector*GetDetector(Int_t i) const
Int_tGetDetectorOff() const
virtual Option_t*TObject::GetDrawOption() const
static Long_tTObject::GetDtorOnly()
AliFMD1*GetFMD1() const
AliFMD2*GetFMD2() const
AliFMD3*GetFMD3() const
virtual voidGetGlobal(const AliRecPoint* p, TVector3& pos) const
virtual voidGetGlobal(const AliRecPoint* p, TVector3& pos, TMatrixF& mat) const
virtual const char*TObject::GetIconName() const
AliFMDRing*GetInner() const
Int_tGetModuleOff() const
virtual const char*TNamed::GetName() const
virtual char*TObject::GetObjectInfo(Int_t px, Int_t py) const
static Bool_tTObject::GetObjectStat()
virtual Option_t*TObject::GetOption() const
AliFMDRing*GetOuter() const
AliFMDRing*GetRing(Char_t i) const
Int_tGetRingOff() const
Int_tGetSectorOff() const
Double_tGetSiDensity() const
virtual const char*TNamed::GetTitle() const
virtual UInt_tTObject::GetUniqueID() const
virtual Bool_tTObject::HandleTimer(TTimer* timer)
virtual ULong_tTNamed::Hash() const
virtual Bool_tImpact(const TParticle* particle) const
virtual voidTObject::Info(const char* method, const char* msgfmt) const
virtual Bool_tTObject::InheritsFrom(const char* classname) const
virtual Bool_tTObject::InheritsFrom(const TClass* cl) const
virtual voidInit()
virtual voidInitTransformations(Bool_t force = kFALSE)
virtual voidTObject::Inspect() constMENU
static AliFMDGeometry*Instance()
voidTObject::InvertBit(UInt_t f)
virtual TClass*IsA() const
Bool_tIsActive(Int_t vol) const
Bool_tIsDetailed() const
virtual Bool_tTObject::IsEqual(const TObject* obj) const
virtual Bool_tTObject::IsFolder() const
Bool_tTObject::IsOnHeap() const
virtual Bool_tTNamed::IsSortable() const
Bool_tTObject::IsZombie() const
virtual voidTNamed::ls(Option_t* option = "") const
voidTObject::MayNotUse(const char* method) const
virtual Bool_tTObject::Notify()
voidTObject::Obsolete(const char* method, const char* asOfVers, const char* removedFromVers) const
static voidTObject::operator delete(void* ptr)
static voidTObject::operator delete(void* ptr, void* vp)
static voidTObject::operator delete[](void* ptr)
static voidTObject::operator delete[](void* ptr, void* vp)
void*TObject::operator new(size_t sz)
void*TObject::operator new(size_t sz, void* vp)
void*TObject::operator new[](size_t sz)
void*TObject::operator new[](size_t sz, void* vp)
virtual voidTObject::Paint(Option_t* option = "")
virtual voidTObject::Pop()
virtual voidTNamed::Print(Option_t* option = "") const
virtual Int_tTObject::Read(const char* name)
virtual voidTObject::RecursiveRemove(TObject* obj)
voidTObject::ResetBit(UInt_t f)
virtual voidTObject::SaveAs(const char* filename = "", Option_t* option = "") constMENU
virtual voidTObject::SavePrimitive(basic_ostream<char,char_traits<char> >& out, Option_t* option = "")
voidSetActive(Int_t* active, Int_t n)
virtual voidSetAlignableVolumes() const
voidTObject::SetBit(UInt_t f)
voidTObject::SetBit(UInt_t f, Bool_t set)
voidSetBuilder(AliFMDGeometryBuilder* b)
voidSetDetailed(Bool_t det)
voidSetDetectorOff(Int_t off)
virtual voidTObject::SetDrawOption(Option_t* option = "")MENU
static voidTObject::SetDtorOnly(void* obj)
voidSetModuleOff(Int_t off)
virtual voidTNamed::SetName(const char* name)MENU
virtual voidTNamed::SetNameTitle(const char* name, const char* title)
static voidTObject::SetObjectStat(Bool_t stat)
voidSetRingOff(Int_t off)
voidSetSectorOff(Int_t off)
virtual voidTNamed::SetTitle(const char* title = "")MENU
virtual voidTObject::SetUniqueID(UInt_t uid)
virtual voidShowMembers(TMemberInspector&)
virtual Int_tTNamed::Sizeof() const
virtual voidStreamer(TBuffer&)
voidStreamerNVirtual(TBuffer& ClassDef_StreamerNVirtual_b)
virtual voidTObject::SysError(const char* method, const char* msgfmt) const
Bool_tTObject::TestBit(UInt_t f) const
Int_tTObject::TestBits(UInt_t f) const
voidUseAssembly(Bool_t ass)
virtual voidTObject::UseCurrentStyle()
virtual voidTObject::Warning(const char* method, const char* msgfmt) const
virtual Int_tTObject::Write(const char* name = 0, Int_t option = 0, Int_t bufsize = 0)
virtual Int_tTObject::Write(const char* name = 0, Int_t option = 0, Int_t bufsize = 0) const
Bool_tXYZ2Detector(Double_t x, Double_t y, Double_t z, UShort_t& detector, Char_t& ring, UShort_t& sector, UShort_t& strip) const
static Bool_tXYZ2REtaPhiTheta(Double_t x, Double_t y, Double_t z, Double_t& r, Double_t& eta, Double_t& phi, Double_t& theta)
protected:
AliFMDGeometry()
AliFMDGeometry(const char* name)
AliFMDGeometry(const AliFMDGeometry& other)
virtual voidTObject::DoError(int level, const char* location, const char* fmt, va_list va) const
voidTObject::MakeZombie()
AliFMDGeometry&operator=(const AliFMDGeometry& other)
private:
(unknown)()

Data Members

protected:
TArrayIfActiveActive volumes
AliFMDGeometryBuilder*fBuilderGeometry builder
Bool_tfDetailedWhether to make detailed geom
Int_tfDetectorOffDetector off-set
AliFMD1*fFMD1FMD1 geometry information
AliFMD2*fFMD2FMD2 geometry information
AliFMD3*fFMD3FMD3 geometry information
AliFMDRing*fInnerInner ring geometry information
Bool_tfIsInitTransTransforms initialised?
Bool_tfIsInitializedWhether singleton is initalized
Int_tfModuleOffModule off-set
TStringTNamed::fNameobject identifier
AliFMDRing*fOuterOuter ring geometry information
Int_tfRingOffring offset
Int_tfSectorOffSector offset
TStringTNamed::fTitleobject title
Bool_tfUseAssemblyWhther to use assemblies
Bool_tfUseFMD1Wheter to Use FMD1 or not
Bool_tfUseFMD2Wheter to Use FMD2 or not
Bool_tfUseFMD3Wheter to Use FMD3 or not
static AliFMDGeometry*fgInstanceSingleton instance

Class Charts

Inheritance Chart:
TNamed
AliGeometry
AliFMDGeometry

Function documentation

Instance()
 singleton access

 Return:
    Singleton

AliFMDGeometry()
 PROTECTED

 CTOR

AliFMDGeometry(const char* name)
 PROTECTED

 CTOR

 Parameters:
    name Not used

AliFMDGeometry(const AliFMDGeometry& other)
 PROTECTED

 Copy CTOR

 Parameters:
    other To copy from

operator=(const AliFMDGeometry& other)
 PROTECTED

 Assignment operator

 Parameters:
    other To assig from
 Return:
    reference to this.

Init()
 Initialize the the singleton if not done so already

InitTransformations(Bool_t force = kFALSE)
 Find all local <-> global transforms

Build()
 Make the geometry.  This delegates to AliFMDGeometryBuilder

SetActive(Int_t* active, Int_t n)
 Set active volumes

 Parameters:
    active Active volume id array
    n elements of @a active

AddActive(Int_t id)
 Add an active volume

 Parameters:
    id Register volume @a id to be active


IsActive(Int_t vol) const
 Check if volume @a vol is marked as active

 Parameters:
    vol Volume ID
 Return:
     @c true if @a vol is declared active

GetDetector(Int_t i) const
 Get description of a sub-detector

 Parameters:
    i Sub-detector #
 Return:
    Description of sub-detector, or 0

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:
    i Ring id
 Return:
    Description of ring, or 0

Enable(Int_t i)
 Enable the ith detector

 Parameters:
    i IF true, enable sub-detector @a i

Disable(Int_t i)
 Disable the ith detector

 Parameters:
    i IF true, disable sub-detector @a i

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:
    detector Detector number
    ring     Ring id
    sector   Sector number
    strip    Strip number
    x        On return, X coordinate
    y        On return, Y coordinate
    z        On return, Z coordinate

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
 @code
 geom->XYZ2Detector(x,y,z-ipz,d,r,s,t);
 @endcode

 Parameters:
    x        X coordinate
    y 	      Y coordinate
    z 	      Z coordinate
    detector On return, Detector number
    ring     On return, Ring id
    sector   On return, Sector number
    strip    On return, Strip number
 Return:
    @c  false of (@a x, @a y, @a z) is not within this
 detector.

XYZ2REtaPhiTheta(Double_t x, Double_t y, Double_t z, Double_t& r, Double_t& eta, Double_t& phi, Double_t& theta)
GetGlobal(const AliRecPoint* p, TVector3& pos, TMatrixF& mat) const
 Get global coordinates cooresponding to a rec point.

 Parameters:
    p   Reconstructed point.
    pos On return, the position
    mat On return, the material at @a post

GetGlobal(const AliRecPoint* p, TVector3& pos) const
 Get global coordinates cooresponding to a rec point.

 Parameters:
    p   Reconstructed point.
    pos On return, the position

 FIXME: Implement this function to work with outer rings too.
Impact(const TParticle* particle) const
 Check if particle will hit an active detector element.

 @todo implement this function

 Parameters:
    particle Track
 Return:
    @c true if @a particle will hit this detector

SetAlignableVolumes() const
 Declare alignable volumes

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.
AliFMDRing* GetInner() const
   * @return Get inner description

{ return fInner; }
AliFMDRing* GetOuter() const
   * @return Get outer description

{ return fOuter; }
AliFMD1* GetFMD1() const
   * @return Get FMD1 description

{ return (fUseFMD1 ? fFMD1 : 0); }
AliFMD2* GetFMD2() const
   * @return Get FMD2 description

{ return (fUseFMD2 ? fFMD2 : 0); }
AliFMD3* GetFMD3() const
   * @return Get FMD3 description

{ return (fUseFMD3 ? fFMD3 : 0); }
Double_t GetSiDensity() const
   * @return Density @f$ \rho@f$ of silicon

{ return 2.33; }
Int_t GetDetectorOff() const
   * @return Get detector offset in paths

{ return fDetectorOff; }
Int_t GetModuleOff() const
   * @return Get sensor offset in paths

{ return fModuleOff; }
Int_t GetRingOff() const
   * @return Get ring offset in paths

{ return fRingOff; }
Int_t GetSectorOff() const
   * @return Get ring sector in paths

{ return fSectorOff; }
void SetDetectorOff(Int_t off)
   * @param off Detector off-set set in geometry path

{ fDetectorOff = off; }
void SetModuleOff(Int_t off)
   * @param off Module off-set set in geometry path

{ fModuleOff = off; }
void SetRingOff(Int_t off)
   * @param off Ring off-set set in geometry path

{ fRingOff = off; }
void SetSectorOff(Int_t off)
   * @param off Sectord off-set set in geometry path

{ fSectorOff = off; }
const TArrayI& ActiveIds() const
   * Get Array of active volume numbers
   *
   * @return constant reference to active volume numbers

{ return fActive; }
void SetBuilder(AliFMDGeometryBuilder* b)
   * Set an external geometry builder
   *
   * @param b Geometry builder

{ fBuilder = b; }
void SetDetailed(Bool_t det)
   * Whether we are to use a detailed geometry or not
   *
   * @param det if @c true, make a detailed geometry.

{ fDetailed = det; }
Bool_t IsDetailed() const
   * @return @c true if geometry is detailed

{ return fDetailed; }
void UseAssembly(Bool_t ass)
   * @param ass Whether to use assemblies or not

{ fUseAssembly = ass; }