ROOT logo
AliRoot » FMD » AliFMD

class AliFMD: public AliDetector

Function Members (Methods)

 
    This is an abstract class, constructors will not be documented.
    Look at the header to check for available constructors.

public:
virtual~AliFMD()
voidTObject::AbstractMethod(const char* method) const
virtual voidAddAlignableVolumes() const
virtual voidAddDigit(Int_t* digits, Int_t* notused = 0)
virtual voidAddDigitByFields(UShort_t detector = 0, Char_t ring = '\0', UShort_t sector = 0, UShort_t strip = 0, UShort_t count1 = 0, Short_t count2 = -1, Short_t count3 = -1, Short_t count4 = -1, UShort_t nrefs = 0, Int_t* refs = 0)
virtual voidAddHit(Int_t track, Int_t* vol, Float_t* hits)
virtual AliFMDHit*AddHitByFields(Int_t track, UShort_t detector, Char_t ring, UShort_t sector, UShort_t strip, Float_t x = 0, Float_t y = 0, Float_t z = 0, Float_t px = 0, Float_t py = 0, Float_t pz = 0, Float_t edep = 0, Int_t pdg = 0, Float_t t = 0, Float_t len = 0, Bool_t stopped = kFALSE)
virtual voidAddSDigit(Int_t* digits)
virtual voidAddSDigitByFields(UShort_t detector = 0, Char_t ring = '\0', UShort_t sector = 0, UShort_t strip = 0, Float_t edep = 0, UShort_t count1 = 0, Short_t count2 = -1, Short_t count3 = -1, Short_t count4 = -1, UShort_t ntot = 0, UShort_t nprim = 0, Int_t* refs = 0)
virtual AliTrackReference*AliModule::AddTrackReference(Int_t label, Int_t id = -999)
virtual voidAliModule::AliGetMaterial(Int_t imat, char* name, Float_t& a, Float_t& z, Float_t& dens, Float_t& radl, Float_t& absl) const
virtual voidAliModule::AliMaterial(Int_t imat, const char* name, Float_t a, Float_t z, Float_t dens, Float_t radl, Float_t absl, Float_t* buf = 0, Int_t nwbuf = 0) const
virtual voidAliModule::AliMatrix(Int_t& nmat, Float_t theta1, Float_t phi1, Float_t theta2, Float_t phi2, Float_t theta3, Float_t phi3) const
virtual voidAliModule::AliMedium(Int_t numed, const char* name, Int_t nmat, Int_t isvol, Int_t ifield, Float_t fieldm, Float_t tmaxfd, Float_t stemax, Float_t deemax, Float_t epsil, Float_t stmin, Float_t* ubuf = 0, Int_t nbuf = 0) const
virtual voidAliModule::AliMixture(Int_t imat, const char* name, Float_t* a, Float_t* z, Float_t dens, Int_t nlmat, Float_t* wmat) const
virtual voidTObject::AppendPad(Option_t* option = "")
virtual voidBrowse(TBrowser* b)
virtual voidAliModule::BuildGeometry()
virtual voidAliModule::CheckQA()
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 AliDigitizer*CreateDigitizer(AliDigitizationInput* digInput) const
virtual voidCreateGeometry()
virtual voidCreateMaterials()
virtual AliTriggerDetector*AliModule::CreateTriggerDetector() const
virtual voidAliModule::DefineOpticalProperties()
virtual voidTObject::Delete(Option_t* option = "")MENU
virtual TClonesArray*AliDetector::Digits() const
virtual voidDigits2Raw()
virtual voidAliModule::Digits2Reco()
virtual voidAliModule::DisableStepManager()
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 voidAliDetector::DrawModule() const
virtual voidTObject::Dump() constMENU
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)
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
virtual voidFinishEvent()
virtual voidAliModule::FinishPrimary()
virtual voidAliDetector::FinishRun()
virtual AliHit*AliDetector::FirstHit(Int_t track)
static Float_tAliModule::GetDensityFactor()
AliDigitizationInput*AliModule::GetDigitizationInput() const
virtual Option_t*TObject::GetDrawOption() const
static Long_tTObject::GetDtorOnly()
virtual const char*TObject::GetIconName() const
virtual TArrayI*AliModule::GetIdtmed() const
virtual Int_tAliDetector::GetIshunt() const
virtual AliLoader*AliDetector::GetLoader() const
virtual const char*TNamed::GetName() const
virtual intAliDetector::GetNdigits() const
virtual intAliDetector::GetNhits() const
virtual char*TObject::GetObjectInfo(Int_t px, Int_t py) const
static Bool_tTObject::GetObjectStat()
virtual Option_t*TObject::GetOption() const
virtual Float_tAliDetector::GetTimeGate() const
virtual const char*TNamed::GetTitle() const
virtual UInt_tTObject::GetUniqueID() const
virtual Bool_tTObject::HandleTimer(TTimer* timer)
virtual ULong_tTNamed::Hash() const
virtual Int_t&AliModule::HiMedium()
virtual TClonesArray*AliDetector::Hits() const
virtual voidHits2Digits()
virtual voidHits2SDigits()
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 voidTObject::Inspect() constMENU
voidTObject::InvertBit(UInt_t f)
virtual TClass*IsA() const
virtual Bool_tAliModule::IsActive() const
virtual Bool_tAliDetector::IsDetector() const
virtual Bool_tTObject::IsEqual(const TObject* obj) const
virtual Bool_tAliModule::IsFolder() const
virtual Bool_tAliDetector::IsModule() const
Bool_tTObject::IsOnHeap() const
virtual Bool_tTNamed::IsSortable() const
virtual Int_tAliModule::IsVersion() const
Bool_tTObject::IsZombie() const
virtual voidAliModule::LoadPoints(Int_t)
virtual Int_t&AliModule::LoMedium()
virtual voidTNamed::ls(Option_t* option = "") const
virtual voidMakeBranch(Option_t* opt = " ")
virtual TBranch*AliDetector::MakeBranchInTree(TTree* tree, const char* cname, void* address, Int_t size = 32000, const char* file = 0)
virtual TBranch*AliDetector::MakeBranchInTree(TTree* tree, const char* cname, const char* name, void* address, Int_t size = 32000, Int_t splitlevel = 99, const char* file = 0)
virtual AliLoader*AliDetector::MakeLoader(const char* topfoldername)
virtual voidAliDetector::MakeTree(Option_t* option)
voidTObject::MayNotUse(const char* method) const
virtual AliHit*AliDetector::NextHit()
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 voidAliModule::Paint(Option_t*)
virtual TObjArray*AliModule::Points() const
virtual voidTObject::Pop()
virtual voidAliModule::PostTrack()
virtual voidAliModule::PreTrack()
virtual voidTNamed::Print(Option_t* option = "") const
virtual voidAliDetector::Publish(const char* dir, void* c, const char* name = 0) const
virtual voidAliModule::QADataMaker(const char*)
virtual voidAliModule::Raw2Digits()
virtual Bool_tRaw2SDigits(AliRawReader* reader)
virtual Int_tTObject::Read(const char* name)
virtual voidTObject::RecursiveRemove(TObject* obj)
virtual voidAliDetector::RemapTrackHitIDs(Int_t*)
voidTObject::ResetBit(UInt_t f)
virtual voidAliDetector::ResetDigits()
virtual voidAliDetector::ResetHits()
virtual voidResetSDigits()
virtual voidTObject::SaveAs(const char* filename = "", Option_t* option = "") constMENU
virtual voidTObject::SavePrimitive(basic_ostream<char,char_traits<char> >& out, Option_t* option = "")
virtual TClonesArray*SDigits()
virtual voidAliModule::SDigits2Digits()
voidTObject::SetBit(UInt_t f)
voidTObject::SetBit(UInt_t f, Bool_t set)
virtual voidAliDetector::SetBufferSize(Int_t bufsize = 8000)
static voidAliModule::SetDensityFactor(Float_t density)
virtual voidTObject::SetDrawOption(Option_t* option = "")MENU
static voidTObject::SetDtorOnly(void* obj)
virtual voidSetHitsAddressBranch(TBranch* b)
virtual voidAliDetector::SetIshunt(Int_t ishunt)
voidAliDetector::SetLoader(AliLoader* loader)
virtual voidTNamed::SetName(const char* name)MENU
virtual voidTNamed::SetNameTitle(const char* name, const char* title)
static voidTObject::SetObjectStat(Bool_t stat)
voidAliModule::SetRunLoader(AliRunLoader* runLoader)
virtual voidSetSDigitsAddressBranch(TBranch* b)
virtual voidAliDetector::SetTimeGate(Float_t gate)
virtual voidTNamed::SetTitle(const char* title = "")MENU
virtual voidSetTreeAddress()
virtual voidTObject::SetUniqueID(UInt_t uid)
virtual voidShowMembers(TMemberInspector&)
virtual Int_tTNamed::Sizeof() const
virtual voidStepManager()
virtual Bool_tAliModule::StepManagerIsEnabled() 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
TTree*AliModule::TreeTR()
virtual voidAliModule::UpdateInternalGeometry()
virtual voidTObject::UseCurrentStyle()
voidUseDetailed(Bool_t use = kTRUE)
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
virtual Float_tAliModule::ZMax() const
virtual Float_tAliModule::ZMin() const
protected:
TClonesArray*DigitsArray()
virtual voidTObject::DoError(int level, const char* location, const char* fmt, va_list va) const
TClonesArray*HitsArray()
voidTObject::MakeZombie()
TClonesArray*SDigitsArray()
private:
AliFMD&operator=(const AliFMD& other)

Data Members

public:
enum { kSiId
kAirId
kPlasticId
kPcbId
kSiChipId
kAlId
kCarbonId
kCopperId
kKaptonId
kSteelId
};
enum TObject::EStatusBits { kCanDelete
kMustCleanup
kObjInCanvas
kIsReferenced
kHasUUID
kCannotPick
kNoContextMenu
kInvalidObject
};
enum TObject::[unnamed] { kIsOnHeap
kNotDeleted
kZombie
kBitMask
kSingleKey
kOverwrite
kWriteDelete
};
protected:
Bool_tAliModule::fActiveDetector activity flag
TObjArray*fBad! debugging - bad hits
Int_tAliDetector::fBufferSize!buffer size for Tree detector branches
Int_tAliDetector::fCurIterHit!Counter for the hit iterator
Int_tAliModule::fCurrentIterTrackRef!for track refernce iterator routines
Bool_tfDetailedUse detailed geometry
AliDigitizationInput*AliModule::fDigInput! input for sdigits -> digits
TClonesArray*AliDetector::fDigits!List of digits for this detector
Bool_tAliModule::fEnableStepManager enabling flag
Int_tAliModule::fHiMedium!Maximum tracking medium ID for this Module
TClonesArray*AliDetector::fHits!List of hits for one track only
TArrayI*AliModule::fIdmate!List of material numbers
TArrayI*AliModule::fIdtmed!List of tracking medium numbers
Int_tAliDetector::fIshunt1 if the hit is attached to the primary
Int_tAliModule::fLoMedium!Minimum tracking medium ID for this Module
AliLoader*AliDetector::fLoader! pointer to getter for this module skowron
Int_tAliDetector::fMaxIterHit!Limit for the hit iterator
Int_tAliModule::fMaxIterTrackRef!for track refernce iterator routines
TStringTNamed::fNameobject identifier
Int_tAliDetector::fNdigits!Number of digits
Int_tAliDetector::fNhits!Number of hits
Int_tfNsdigitsNumber of digits
AliRunLoader*AliModule::fRunLoader!local pointer to run loader
TClonesArray*fSDigitsSummable digits
Float_tAliDetector::fTimeGateTime gate in seconds
TStringTNamed::fTitleobject title
Bool_tfUseAssemblyUse divided volumes
Bool_tfUseOldUse old approx geometry
static Float_tAliModule::fgDensityFactor! factor that is multiplied to all material densities (ONLY for systematic studies)

Class Charts

Inheritance Chart:
TNamed
AliModule
AliDetector
AliFMD
AliFMDv0
AliFMDv1

Function documentation

~AliFMD()
 Destructor for base class AliFMD
CreateGeometry()
 Create the geometry of Forward Multiplicity Detector.  The actual
 construction of the geometry is delegated to the class
 AliFMDGeometryBuilder, invoked by the singleton manager
 AliFMDGeometry.

void CreateMaterials()
 Define the materials and tracking mediums needed by the FMD
 simulation.   These mediums are made by sending the messages
 AliMaterial, AliMixture, and AliMedium to the passed AliModule
 object module.   The defined mediums are

	FMD Si$		Silicon (active medium in sensors)
	FMD C$		Carbon fibre (support cone for FMD3 and vacuum pipe)
	FMD Al$		Aluminium (honeycomb support plates)
	FMD PCB$	Printed Circuit Board (FEE board with VA1_3)
	FMD Chip$	Electronics chips (currently not used)
	FMD Air$	Air (Air in the FMD)
	FMD Plastic$	Plastic (Support legs for the hybrid cards)

 The geometry builder should really be the one that creates the
 materials, but the architecture of AliROOT makes that design
 akward.  What should happen, was that the AliFMDGeometryBuilder
 made the mediums, and that this class retrives pointers from the
 TGeoManager, and registers the mediums here.  Alas, it's not
 really that easy.

Init()
 Initialize the detector

FinishEvent()
 Called at the end of the an event in simulations.  If the debug
 level is high enough, then the `bad' hits are printed.

MakeBranch(Option_t* opt = " ")
 Create Tree branches for the FMD.

 Options:

    H          Make a branch of TClonesArray of AliFMDHit's
    D          Make a branch of TClonesArray of AliFMDDigit's
    S          Make a branch of TClonesArray of AliFMDSDigit's

SetTreeAddress()
 Set branch address for the Hits, Digits, and SDigits Tree.
SetHitsAddressBranch(TBranch* b)
 Set the TClonesArray to read hits into.
SetSDigitsAddressBranch(TBranch* b)
 Set the TClonesArray to read hits into.
AddHit(Int_t track, Int_t* vol, Float_t* hits)
 Add a hit to the hits tree

 The information of the two arrays are decoded as

 Parameters
    track	 	     Track #
    ivol[0]  [UShort_t ] Detector #
    ivol[1]	 [Char_t   ] Ring ID
    ivol[2]	 [UShort_t ] Sector #
    ivol[3]	 [UShort_t ] Strip #
    hits[0]	 [Float_t  ] Track's X-coordinate at hit
    hits[1]	 [Float_t  ] Track's Y-coordinate at hit
    hits[3]  [Float_t  ] Track's Z-coordinate at hit
    hits[4]  [Float_t  ] X-component of track's momentum
    hits[5]	 [Float_t  ] Y-component of track's momentum
    hits[6]	 [Float_t  ] Z-component of track's momentum
    hits[7]	 [Float_t  ] Energy deposited by track
    hits[8]	 [Int_t    ] Track's particle Id #
    hits[9]	 [Float_t  ] Time when the track hit


AddHitByFields(Int_t track, UShort_t detector, Char_t ring, UShort_t sector, UShort_t strip, Float_t x = 0, Float_t y = 0, Float_t z = 0, Float_t px = 0, Float_t py = 0, Float_t pz = 0, Float_t edep = 0, Int_t pdg = 0, Float_t t = 0, Float_t len = 0, Bool_t stopped = kFALSE)
 Add a hit to the list

 Parameters:

    track	  Track #
    detector  Detector # (1, 2, or 3)
    ring	  Ring ID ('I' or 'O')
    sector	  Sector # (For inner/outer rings: 0-19/0-39)
    strip	  Strip # (For inner/outer rings: 0-511/0-255)
    x	  Track's X-coordinate at hit
    y	  Track's Y-coordinate at hit
    z	  Track's Z-coordinate at hit
    px	  X-component of track's momentum
    py	  Y-component of track's momentum
    pz	  Z-component of track's momentum
    edep	  Energy deposited by track
    pdg	  Track's particle Id #
    t	  Time when the track hit
    l         Track length through the material.
    stop      Whether track was stopped or disappeared

AddDigit(Int_t* digits, Int_t* notused = 0)
 Add a digit to the Digit tree

 Paramters

    digits[0]  [UShort_t] Detector #
    digits[1]  [Char_t]   Ring ID
    digits[2]  [UShort_t] Sector #
    digits[3]  [UShort_t] Strip #
    digits[4]  [UShort_t] ADC Count
    digits[5]  [Short_t]  ADC Count, -1 if not used
    digits[6]  [Short_t]  ADC Count, -1 if not used

AddDigitByFields(UShort_t detector = 0, Char_t ring = '\0', UShort_t sector = 0, UShort_t strip = 0, UShort_t count1 = 0, Short_t count2 = -1, Short_t count3 = -1, Short_t count4 = -1, UShort_t nrefs = 0, Int_t* refs = 0)
 add a real digit - as coming from data

 Parameters

    detector  Detector # (1, 2, or 3)
    ring	  Ring ID ('I' or 'O')
    sector	  Sector # (For inner/outer rings: 0-19/0-39)
    strip	  Strip # (For inner/outer rings: 0-511/0-255)
    count1    ADC count (a 10-bit word)
    count2    ADC count (a 10-bit word), or -1 if not used
    count3    ADC count (a 10-bit word), or -1 if not used
AddSDigit(Int_t* digits)
 Add a digit to the SDigit tree

 Paramters

    digits[0]  [UShort_t] Detector #
    digits[1]  [Char_t]   Ring ID
    digits[2]  [UShort_t] Sector #
    digits[3]  [UShort_t] Strip #
    digits[4]  [Float_t]  Total energy deposited
    digits[5]  [UShort_t] ADC Count
    digits[6]  [Short_t]  ADC Count, -1 if not used
    digits[7]  [Short_t]  ADC Count, -1 if not used

AddSDigitByFields(UShort_t detector = 0, Char_t ring = '\0', UShort_t sector = 0, UShort_t strip = 0, Float_t edep = 0, UShort_t count1 = 0, Short_t count2 = -1, Short_t count3 = -1, Short_t count4 = -1, UShort_t ntot = 0, UShort_t nprim = 0, Int_t* refs = 0)
 add a summable digit

 Parameters

    detector  Detector # (1, 2, or 3)
    ring	  Ring ID ('I' or 'O')
    sector	  Sector # (For inner/outer rings: 0-19/0-39)
    strip	  Strip # (For inner/outer rings: 0-511/0-255)
    edep      Total energy deposited
    count1    ADC count (a 10-bit word)
    count2    ADC count (a 10-bit word), or -1 if not used
    count3    ADC count (a 10-bit word), or -1 if not used

ResetSDigits()
 Reset number of digits and the digits array for this detector.

HitsArray()
 Initialize hit array if not already, and return pointer to it.
DigitsArray()
 Initialize digit array if not already, and return pointer to it.
SDigitsArray()
 Initialize digit array if not already, and return pointer to it.
Hits2Digits()
 Create AliFMDDigit's from AliFMDHit's.  This is done by making a
 AliFMDDigitizer, and executing that code.

Hits2SDigits()
 Create AliFMDSDigit's from AliFMDHit's.  This is done by creating
 an AliFMDSDigitizer object, and executing it.

CreateDigitizer(AliDigitizationInput* digInput) const
 Create a digitizer object
Digits2Raw()
 Turn digits into raw data.

 This uses the class AliFMDRawWriter to do the job.   Please refer
 to that class for more information.
Raw2SDigits(AliRawReader* reader)
 Turn digits into raw data.

 This uses the class AliFMDRawWriter to do the job.   Please refer
 to that class for more information.
Browse(TBrowser* b)
 Browse this object.

AddAlignableVolumes() const
 Create entries for alignable volumes associating the symbolic volume
 name with the corresponding volume path. Needs to be syncronized with
 eventual changes in the geometry.

 This code was made by Raffaele Grosso <rgrosso@mail.cern.ch>.  I
 (cholm) will probably want to change it.   For one, I think it
 should be the job of the geometry manager to deal with this.
void UseDetailed(Bool_t use = kTRUE)
 Wheter to make a detailed geometry
@param use If true, make detailed geometry  
{ fDetailed = use; }
void StepManager()
 This member function is called when ever a track deposites
      energy (or similar) in an FMD tracking medium.  In this base
      class this member function is pure abstract.   In concrete
      sub-classes, the member function may make hits or other
stuff. 
TClonesArray* SDigits()
 Get the array of summable digits
@return summable digits 
{ return fSDigits; }
AliFMD& operator=(const AliFMD& other)
 Assignment operator
      @param other Object to assign from
@return Reference to this object