![]() |
AliRoot Core
3dc7879 (3dc7879)
|
Forward Multiplicity Detector based on Silicon wafers. This class is the driver for especially simulation. More...
#include <FMD/AliFMD.h>
Public Member Functions | |
AliFMD () | |
AliFMD (const char *name, const char *title) | |
virtual | ~AliFMD () |
void | UseDetailed (Bool_t use=kTRUE) |
GEometry ANd Tracking (GEANT :-) | |
virtual void | CreateGeometry () |
virtual void | AddAlignableVolumes () const |
virtual void | CreateMaterials () |
virtual void | Init () |
virtual void | StepManager ()=0 |
virtual void | FinishEvent () |
Hit and digit management | |
virtual void | MakeBranch (Option_t *opt=" ") |
virtual void | SetHitsAddressBranch (TBranch *b) |
virtual void | SetSDigitsAddressBranch (TBranch *b) |
virtual void | SetTreeAddress () |
virtual TClonesArray * | SDigits () |
virtual void | ResetSDigits () |
virtual void | AddHit (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 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, Short_t count4=-1, UShort_t nrefs=0, Int_t *refs=0) |
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, Short_t count4=-1, UShort_t ntot=0, UShort_t nprim=0, Int_t *refs=0) |
Digitisation | |
virtual AliDigitizer * | CreateDigitizer (AliDigitizationInput *digInput) const |
virtual void | Hits2Digits () |
virtual void | Hits2SDigits () |
Raw data | |
virtual void | Digits2Raw () |
virtual Bool_t | Raw2SDigits (AliRawReader *reader) |
Utility | |
void | Browse (TBrowser *b) |
![]() | |
AliDetector (const char *name, const char *title) | |
AliDetector () | |
virtual | ~AliDetector () |
virtual int | GetNdigits () const |
virtual int | GetNhits () const |
TClonesArray * | Digits () const |
TClonesArray * | Hits () const |
virtual Bool_t | IsModule () const |
virtual Bool_t | IsDetector () const |
Int_t | GetIshunt () const |
void | SetIshunt (Int_t ishunt) |
virtual void | Publish (const char *dir, void *c, const char *name=0) const |
virtual void | FinishRun () |
virtual void | ResetDigits () |
virtual void | ResetHits () |
virtual void | SetTimeGate (Float_t gate) |
virtual Float_t | GetTimeGate () const |
virtual void | DrawModule () const |
virtual AliHit * | FirstHit (Int_t track) |
virtual AliHit * | NextHit () |
virtual void | SetBufferSize (Int_t bufsize=8000) |
virtual TBranch * | MakeBranchInTree (TTree *tree, const char *cname, void *address, Int_t size=32000, const char *file=0) |
virtual TBranch * | MakeBranchInTree (TTree *tree, const char *cname, const char *name, void *address, Int_t size=32000, Int_t splitlevel=99, const char *file=0) |
void | MakeTree (Option_t *option) |
virtual void | RemapTrackHitIDs (Int_t *) |
virtual AliLoader * | MakeLoader (const char *topfoldername) |
void | SetLoader (AliLoader *loader) |
AliLoader * | GetLoader () const |
![]() | |
AliModule (const char *name, const char *title) | |
AliModule () | |
virtual | ~AliModule () |
virtual TArrayI * | GetIdtmed () const |
virtual TObjArray * | Points () const |
virtual Bool_t | IsActive () const |
virtual void | SetActive (Bool_t v=kTRUE) |
virtual Bool_t | IsFolder () const |
virtual Int_t & | LoMedium () |
virtual Int_t & | HiMedium () |
virtual void | 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 void | AliGetMaterial (Int_t imat, char *name, Float_t &a, Float_t &z, Float_t &dens, Float_t &radl, Float_t &absl) const |
virtual void | AliMixture (Int_t imat, const char *name, Float_t *a, Float_t *z, Float_t dens, Int_t nlmat, Float_t *wmat) const |
virtual void | 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 |
void | AliMatrix (Int_t &nmat, Double_t theta1, Double_t phi1, Double_t theta2, Double_t phi2, Double_t theta3, Double_t phi3) const |
virtual void | BuildGeometry () |
virtual Int_t | IsVersion () const =0 |
virtual AliTriggerDetector * | CreateTriggerDetector () const |
virtual void | SDigits2Digits () |
virtual void | Digits2Reco () |
virtual void | Raw2Digits () |
virtual void | QADataMaker (const char *) |
virtual void | DefineOpticalProperties () |
virtual void | PreTrack () |
virtual void | PostTrack () |
virtual void | FinishPrimary () |
virtual void | LoadPoints (Int_t) |
virtual void | UpdateInternalGeometry () |
virtual void | Paint (Option_t *) |
virtual void | DisableStepManager () |
virtual Bool_t | StepManagerIsEnabled () const |
virtual Float_t | ZMin () const |
virtual Float_t | ZMax () const |
virtual AliTrackReference * | AddTrackReference (Int_t label, Int_t id=-999) |
TTree * | TreeTR () |
void | SetRunLoader (AliRunLoader *runLoader) |
virtual void | CheckQA () |
AliDigitizationInput * | GetDigitizationInput () const |
void | CacheVMCInstance (TVirtualMC *mc) |
Protected Types | |
enum | { kSiId, kAirId, kPlasticId, kPcbId, kSiChipId, kAlId, kCarbonId, kCopperId, kKaptonId, kSteelId } |
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 |
![]() | |
Float_t | fTimeGate |
Int_t | fIshunt |
Int_t | fNhits |
Int_t | fNdigits |
Number of hits. More... | |
Int_t | fBufferSize |
Number of digits. More... | |
Int_t | fMaxIterHit |
buffer size for Tree detector branches More... | |
Int_t | fCurIterHit |
Limit for the hit iterator. More... | |
TClonesArray * | fHits |
Counter for the hit iterator. More... | |
TClonesArray * | fDigits |
List of hits for one track only. More... | |
AliLoader * | fLoader |
List of digits for this detector. More... | |
![]() | |
TVirtualMC * | fMC |
TArrayI * | fIdtmed |
cached MC instance (to avoid calls to thread_local gMC=TVirtualMC::GetMC()) More... | |
TArrayI * | fIdmate |
List of tracking medium numbers. More... | |
Int_t | fLoMedium |
List of material numbers. More... | |
Int_t | fHiMedium |
Minimum tracking medium ID for this Module. More... | |
Bool_t | fActive |
Maximum tracking medium ID for this Module. More... | |
Bool_t | fEnable |
Int_t | fMaxIterTrackRef |
Int_t | fCurrentIterTrackRef |
for track refernce iterator routines More... | |
AliRunLoader * | fRunLoader |
for track refernce iterator routines More... | |
AliDigitizationInput * | fDigInput |
local pointer to run loader More... | |
Private Member Functions | |
AliFMD (const AliFMD &other) | |
debugging - bad hits More... | |
AliFMD & | operator= (const AliFMD &other) |
Additional Inherited Members | |
![]() | |
static void | SetDensityFactor (Float_t density) |
static Float_t | GetDensityFactor () |
![]() | |
static Float_t | fgDensityFactor = 1.0 |
input for sdigits -> digits More... | |
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.
|
protected |
AliFMD::AliFMD | ( | ) |
Default constructor. Do not use.
Definition at line 133 of file AliFMD.cxx.
AliFMD::AliFMD | ( | const char * | name, |
const char * | title | ||
) |
Normal constructor
name | Name of object. |
title | Title of object. |
Definition at line 153 of file AliFMD.cxx.
|
virtual |
Destructor
Definition at line 183 of file AliFMD.cxx.
|
private |
debugging - bad hits
Copy constructor
other | Object to copy from |
|
virtual |
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.
Reimplemented from AliDetector.
Definition at line 1060 of file AliFMD.cxx.
Referenced by UseDetailed().
|
virtual |
Add a digit to the Digit tree
digits | |
notused | Not used |
Reimplemented from AliModule.
Definition at line 754 of file AliFMD.cxx.
Referenced by SDigits().
|
virtual |
add a real digit
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 |
Definition at line 780 of file AliFMD.cxx.
Referenced by AliFMDBaseDigitizer::AddDigit(), AddDigit(), and SDigits().
|
virtual |
Add a hit to the hits tree
track | Track # |
vol | Volume parameters, interpreted as |
hits | Hit information
|
Reimplemented from AliModule.
Definition at line 627 of file AliFMD.cxx.
Referenced by SDigits().
|
virtual |
Add a hit to the list
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 |
Definition at line 668 of file AliFMD.cxx.
Referenced by AddHit(), MakeFakeHits(), SDigits(), and AliFMDv1::StepManager().
|
virtual |
Add a digit to the Digit tree
digits |
|
Definition at line 817 of file AliFMD.cxx.
Referenced by SDigits().
|
virtual |
add a summable digit - as coming from data
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 |
Definition at line 847 of file AliFMD.cxx.
Referenced by AliFMDHitDigitizer::AddDigit(), AddSDigit(), and SDigits().
|
virtual |
Browse this object
b | Browser to show this object in |
Reimplemented from AliDetector.
Definition at line 1049 of file AliFMD.cxx.
Referenced by SDigits().
|
virtual |
Create a digitizer object
manager | Digitization manager |
Reimplemented from AliModule.
Definition at line 966 of file AliFMD.cxx.
Referenced by SDigits().
|
virtual |
Define the geometry. This is done by asking the manager AliFMDGeometry to construct the geometry. This in turn calls AliFMDGeometryBuilder.
Reimplemented from AliModule.
Definition at line 215 of file AliFMD.cxx.
Referenced by UseDetailed().
|
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) Reimplemented from AliModule.
Definition at line 230 of file AliFMD.cxx.
Referenced by UseDetailed().
|
virtual |
Turn digits into raw data. This uses the class AliFMDRawWriter to do the job. Please refer to that class for more information.
Reimplemented from AliModule.
Definition at line 992 of file AliFMD.cxx.
Referenced by Digits2Raw(), and SDigits().
|
protected |
Initialize digit array if not already done, and return pointert.
Definition at line 913 of file AliFMD.cxx.
Referenced by AddDigitByFields(), MakeBranch(), SDigits(), and SetTreeAddress().
|
virtual |
Called at the end of each simulation event. If the debug level is high enough a list of bad hits is printed.
Reimplemented from AliModule.
Definition at line 534 of file AliFMD.cxx.
Referenced by UseDetailed().
|
virtual |
Create AliFMDDigit's from AliFMDHit's. This is done by creating an AliFMDDigitizer object, and executing it.
Reimplemented from AliModule.
Definition at line 941 of file AliFMD.cxx.
Referenced by Hits2Digits(), and SDigits().
|
virtual |
Create AliFMDSDigit's from AliFMDHit's. This is done by creating an AliFMDSDigitizer object, and executing it.
Reimplemented from AliModule.
Definition at line 953 of file AliFMD.cxx.
Referenced by Hits2SDigits(), and SDigits().
|
protected |
Initialize hit array if not already done, and return pointert.
Definition at line 899 of file AliFMD.cxx.
Referenced by AddHitByFields(), MakeBranch(), SDigits(), and SetTreeAddress().
|
virtual |
Initialize this detector
Reimplemented from AliModule.
Definition at line 490 of file AliFMD.cxx.
Referenced by UseDetailed().
|
virtual |
Reimplemented from AliDetector.
Definition at line 557 of file AliFMD.cxx.
Referenced by AliFMDHitDigitizer::MakeOutputTree(), AliFMDBaseDigitizer::MakeOutputTree(), Raw2SDigits(), and UseDetailed().
Assignment operator
other | Object to assign from |
|
virtual |
Convert raw data to sdigits
reader | Raw reader |
true
on success Reimplemented from AliModule.
Definition at line 1008 of file AliFMD.cxx.
Referenced by SDigits().
|
virtual |
Reset the array of summable digits
Reimplemented from AliModule.
Definition at line 888 of file AliFMD.cxx.
Referenced by Raw2SDigits(), SDigits(), and AliFMDHitDigitizer::StoreDigits().
|
inlinevirtual |
Get the array of summable digits
Definition at line 427 of file AliFMD.h.
Referenced by AliFMDInput::Begin(), Raw2SDigits(), AliFMDHitDigitizer::StoreDigits(), and AliFMDDigitizer::SumContributions().
|
protected |
Initialize summable digit array if not already done, and return pointert.
Definition at line 925 of file AliFMD.cxx.
Referenced by AddSDigitByFields(), MakeBranch(), SDigits(), and SetTreeAddress().
|
virtual |
Set the TClonesArray to read hits into.
b | The branch to containn the hits |
Definition at line 612 of file AliFMD.cxx.
Referenced by UseDetailed().
|
virtual |
Set the TClonesArray to read sdigits into.
b | The branch to containn the sdigits |
Definition at line 619 of file AliFMD.cxx.
Referenced by UseDetailed().
|
virtual |
Set branch address for the Hits, Digits, and SDigits Tree.
Reimplemented from AliDetector.
Definition at line 589 of file AliFMD.cxx.
Referenced by AliFMDHitDigitizer::Digitize(), AliFMDDigitizer::Digitize(), AliFMDRawWriter::Exec(), and UseDetailed().
|
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.
Reimplemented from AliDetector.
Implemented in AliFMDv1, and AliFMDv0.
Referenced by UseDetailed().
|
inline |
|
protected |
Definition at line 621 of file AliFMD.h.
Referenced by FinishEvent(), AliFMDv1::StepManager(), and ~AliFMD().
|
protected |
Definition at line 604 of file AliFMD.h.
Referenced by AliFMDv1::AliFMDv1(), CreateGeometry(), and UseDetailed().
|
protected |
Definition at line 603 of file AliFMD.h.
Referenced by AddSDigitByFields(), ResetSDigits(), and SDigitsArray().
|
protected |
Definition at line 602 of file AliFMD.h.
Referenced by MakeBranch(), ResetSDigits(), SDigits(), SDigitsArray(), SetSDigitsAddressBranch(), SetTreeAddress(), and ~AliFMD().
|
protected |
Definition at line 606 of file AliFMD.h.
Referenced by CreateGeometry().