AliFMD Class Reference

#include <FMD/AliFMD.h>

Inheritance diagram for AliFMD:

Inheritance graph
[legend]
List of all members.

Detailed Description

Forward Multiplicity Detector based on Silicon wafers. This class is the driver for especially simulation.

The Forward Multiplicity Detector consists of 3 sub-detectors FMD1, FMD2, and FMD3, each of which has 1 or 2 rings of silicon sensors.

This is the base class for all FMD manager classes.

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

          +----------+   +----------+   
          | AliFMDv1 |   | AliFMDv0 |   
          +----------+   +----------+   
               |              |                    +-----------------+
          +----+--------------+                 +--| AliFMDDigitizer |
          |                                     |  +-----------------+
          |           +---------------------+   |
          |        +--| AliFMDBaseDigitizer |<--+
          V     1  |  +---------------------+   |
     +--------+<>--+                            |  +------------------+
     | AliFMD |                                 +--| AliFMDSDigitizer |    
     +--------+<>--+                               +------------------+       
	       1  |  +---------------------+
	          +--| AliFMDReconstructor |
	  	     +---------------------+
    

Calibration and geometry parameters are managed by separate singleton managers. These are AliFMDGeometry and AliFMDParameters. Please refer to these classes for more information on these.

Definition at line 280 of file AliFMD.h.

Public Member Functions

 AliFMD ()
 AliFMD (const char *name, const char *title)
 AliFMD (const AliFMD &other)
virtual ~AliFMD ()
AliFMDoperator= (const AliFMD &other)
void UseDetailed (Bool_t use=kTRUE)
GEometry ANd Tracking (GEANT :-)
virtual void CreateGeometry ()
virtual void CreateMaterials ()
virtual void Init ()
virtual void StepManager ()=0
virtual void FinishEvent ()
Graphics and event display
virtual void BuildGeometry ()
virtual void DrawDetector ()
virtual Int_t DistanceToPrimitive (Int_t px, Int_t py)
virtual void LoadPoints (Int_t track)
Hit and digit management
virtual void MakeBranch (Option_t *opt=" ")
virtual void SetHitsAddressBranch (TBranch *b)
virtual void SetTreeAddress ()
virtual TClonesArray * SDigits ()
virtual void ResetSDigits ()
virtual void AddHit (Int_t track, Int_t *vol, Float_t *hits)
virtual AliFMDHitAddHitByFields (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 void AddDigit (Int_t *digits, Int_t *notused=0)
virtual void 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)
virtual void AddSDigit (Int_t *digits)
virtual void 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)
Digitisation
virtual AliDigitizer * CreateDigitizer (AliRunDigitizer *manager) const
virtual void Hits2Digits ()
virtual void Hits2SDigits ()
Raw data
virtual void Digits2Raw ()
Utility
void Browse (TBrowser *b)

Protected Types

enum  {
  kSiId, kAirId, kPlasticId, kPcbId,
  kSiChipId, kAlId, kCarbonId, kCopperId,
  kKaptonId
}

Protected Member Functions

TClonesArray * HitsArray ()
TClonesArray * DigitsArray ()
TClonesArray * SDigitsArray ()

Protected Attributes

TClonesArray * fSDigits
Int_t fNsdigits
Bool_t fDetailed
Bool_t fUseOld
Bool_t fUseAssembly
TObjArray * fBad


Member Enumeration Documentation

anonymous enum [protected]
 

Enumerator:
kSiId 
kAirId 
kPlasticId 
kPcbId 
kSiChipId 
kAlId 
kCarbonId 
kCopperId 
kKaptonId 

Definition at line 525 of file AliFMD.h.


Constructor & Destructor Documentation

AliFMD::AliFMD  ) 
 

Default constructor. Do not use.

AliFMD::AliFMD const char *  name,
const char *  title
 

Normal constructor

Parameters:
name Name of object.
title Title of object.

AliFMD::AliFMD const AliFMD other  ) 
 

Copy constructor

Parameters:
other Object to copy from

virtual AliFMD::~AliFMD  )  [virtual]
 

Destructor


Member Function Documentation

virtual void AliFMD::AddDigit Int_t *  digits,
Int_t *  notused = 0
[virtual]
 

Add a digit to the Digit tree

Parameters:
digits 
  • 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
notused Not used

virtual void AliFMD::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
[virtual]
 

add a real 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)
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

virtual void AliFMD::AddHit Int_t  track,
Int_t *  vol,
Float_t *  hits
[virtual]
 

Add a hit to the hits tree

Parameters:
track Track #
vol Volume parameters, interpreted as
  • ivol[0] [UShort_t ] Detector #
  • ivol[1] [Char_t ] Ring ID
  • ivol[2] [UShort_t ] Sector #
  • ivol[3] [UShort_t ] Strip #
hits Hit information
  • 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

virtual AliFMDHit* AliFMD::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]
 

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
len Track length through the material.
stopped Whether track was stopped or disappeared

virtual void AliFMD::AddSDigit Int_t *  digits  )  [virtual]
 

Add a digit to the Digit tree

Parameters:
digits 
  • 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

virtual void AliFMD::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
[virtual]
 

add a summable 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)
edep 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

void AliFMD::Browse TBrowser *  b  ) 
 

Browse this object

Parameters:
b Browser to show this object in

virtual void AliFMD::BuildGeometry  )  [virtual]
 

Build simple ROOT TNode geometry for event display. With the new geometry modeller, TGeoManager, this seems rather redundant.

virtual AliDigitizer* AliFMD::CreateDigitizer AliRunDigitizer *  manager  )  const [virtual]
 

Create a digitizer object

Parameters:
manager Digitization manager
Returns:
a newly allocated AliFMDDigitizer

virtual void AliFMD::CreateGeometry  )  [virtual]
 

Define the geometry. This is done by asking the manager AliFMDGeometry to construct the geometry. This in turn calls AliFMDGeometryBuilder.

virtual void AliFMD::CreateMaterials  )  [virtual]
 

Create the tracking mediums used by the FMD. This associates the tracking mediums defined with the FMD in the TVirtualMCApplication (AliMC).

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)

virtual void AliFMD::Digits2Raw  )  [virtual]
 

Turn digits into raw data. This uses the class AliFMDRawWriter to do the job. Please refer to that class for more information.

TClonesArray* AliFMD::DigitsArray  )  [protected]
 

Initialize digit array if not already done, and return pointert.

Returns:
Digit array

virtual Int_t AliFMD::DistanceToPrimitive Int_t  px,
Int_t  py
[virtual]
 

Calculate the distance from the mouse to the FMD on the screen Dummy routine

virtual void AliFMD::DrawDetector  )  [virtual]
 

Draw a shaded view of the Forward multiplicity detector. This isn't really useful anymore.

virtual void AliFMD::FinishEvent  )  [virtual]
 

Called at the end of each simulation event. If the debug level is high enough a list of bad hits is printed.

virtual void AliFMD::Hits2Digits  )  [virtual]
 

Create AliFMDDigit's from AliFMDHit's. This is done by creating an AliFMDDigitizer object, and executing it.

virtual void AliFMD::Hits2SDigits  )  [virtual]
 

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

TClonesArray* AliFMD::HitsArray  )  [protected]
 

Initialize hit array if not already done, and return pointert.

Returns:
Hit array

virtual void AliFMD::Init  )  [virtual]
 

Initialize this detector

virtual void AliFMD::LoadPoints Int_t  track  )  [virtual]
 

Store x, y, z of all hits in memory for display. Normally, the hits are drawn using TPolyMarker3D - however, that is not very useful for the FMD. Therefor, this member function is overloaded to make TMarker3D, via the class AliFMDPoints. AliFMDPoints is a local class.

Parameters:
track the track number to load the hits for

virtual void AliFMD::MakeBranch Option_t *  opt = " "  )  [virtual]
 

AliFMD& AliFMD::operator= const AliFMD other  ) 
 

Assignment operator

Parameters:
other Object to assign from
Returns:
Reference to this object

virtual void AliFMD::ResetSDigits  )  [virtual]
 

Reset the array of summable digits

virtual TClonesArray* AliFMD::SDigits  )  [inline, virtual]
 

Get the array of summable digits

Returns:
summable digits

Definition at line 370 of file AliFMD.h.

TClonesArray* AliFMD::SDigitsArray  )  [protected]
 

Initialize summable digit array if not already done, and return pointert.

Returns:
Summable digit array

virtual void AliFMD::SetHitsAddressBranch TBranch *  b  )  [virtual]
 

Set the TClonesArray to read hits into.

Parameters:
b The branch to containn the hits

virtual void AliFMD::SetTreeAddress  )  [virtual]
 

Set branch address for the Hits, Digits, and SDigits Tree.

virtual void AliFMD::StepManager  )  [pure virtual]
 

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.

Implemented in AliFMDv0, and AliFMDv1.

void AliFMD::UseDetailed Bool_t  use = kTRUE  )  [inline]
 

Wheter to make a detailed geometry

Parameters:
use If true, make detailed geometry

Definition at line 300 of file AliFMD.h.


Member Data Documentation

TObjArray* AliFMD::fBad [protected]
 

Definition at line 537 of file AliFMD.h.

Bool_t AliFMD::fDetailed [protected]
 

Definition at line 521 of file AliFMD.h.

Int_t AliFMD::fNsdigits [protected]
 

Definition at line 520 of file AliFMD.h.

TClonesArray* AliFMD::fSDigits [protected]
 

Definition at line 519 of file AliFMD.h.

Bool_t AliFMD::fUseAssembly [protected]
 

Definition at line 523 of file AliFMD.h.

Bool_t AliFMD::fUseOld [protected]
 

Definition at line 522 of file AliFMD.h.


The documentation for this class was generated from the following file:
Generated on Fri Mar 24 17:11:22 2006 for ALICE FMD Off-line by  doxygen 1.4.6