AliRoot Core  3dc7879 (3dc7879)
AliFMDv1 Class Reference

Forward Multiplicity Detector based on Silicon wafers. More...

#include <AliFMDv1.h>

Inheritance diagram for AliFMDv1:

Public Member Functions

 AliFMDv1 ()
 
 AliFMDv1 (const char *name, const char *title="Detailed geometry")
 
virtual ~AliFMDv1 ()
 
virtual Int_t IsVersion () const
 
virtual void StepManager ()
 
- Public Member Functions inherited from AliFMD
 AliFMD ()
 
 AliFMD (const char *name, const char *title)
 
virtual ~AliFMD ()
 
void UseDetailed (Bool_t use=kTRUE)
 
virtual void CreateGeometry ()
 
virtual void AddAlignableVolumes () const
 
virtual void CreateMaterials ()
 
virtual void Init ()
 
virtual void FinishEvent ()
 
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 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, 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)
 
virtual AliDigitizerCreateDigitizer (AliDigitizationInput *digInput) const
 
virtual void Hits2Digits ()
 
virtual void Hits2SDigits ()
 
virtual void Digits2Raw ()
 
virtual Bool_t Raw2SDigits (AliRawReader *reader)
 
void Browse (TBrowser *b)
 
- Public Member Functions inherited from AliDetector
 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 AliHitFirstHit (Int_t track)
 
virtual AliHitNextHit ()
 
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 AliLoaderMakeLoader (const char *topfoldername)
 
void SetLoader (AliLoader *loader)
 
AliLoaderGetLoader () const
 
- Public Member Functions inherited from AliModule
 AliModule (const char *name, const char *title)
 
 AliModule ()
 
virtual ~AliModule ()
 
virtual TArrayI * GetIdtmed () const
 
virtual TObjArrayPoints () 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 AliTriggerDetectorCreateTriggerDetector () 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 AliTrackReferenceAddTrackReference (Int_t label, Int_t id=-999)
 
TTree * TreeTR ()
 
void SetRunLoader (AliRunLoader *runLoader)
 
virtual void CheckQA ()
 
AliDigitizationInputGetDigitizationInput () const
 
void CacheVMCInstance (TVirtualMC *mc)
 

Protected Member Functions

Bool_t VMC2FMD (TLorentzVector &v, UShort_t &detector, Char_t &ring, UShort_t &sector, UShort_t &strip) const
 
Bool_t VMC2FMD (Int_t copy, TLorentzVector &v, UShort_t &detector, Char_t &ring, UShort_t &sector, UShort_t &strip) const
 
Bool_t CheckHit (Int_t trackno, Int_t pdg, Float_t absQ, const TLorentzVector &p, Float_t edep) const
 
- Protected Member Functions inherited from AliFMD
TClonesArray * HitsArray ()
 
TClonesArray * DigitsArray ()
 
TClonesArray * SDigitsArray ()
 

Protected Attributes

Double_t fCurrentDeltaE
 
TLorentzVector fCurrentV
 
TLorentzVector fCurrentP
 
Int_t fCurrentPdg
 
- Protected Attributes inherited from AliFMD
TClonesArray * fSDigits
 
Int_t fNsdigits
 
Bool_t fDetailed
 
Bool_t fUseOld
 
Bool_t fUseAssembly
 
TObjArrayfBad
 
- Protected Attributes inherited from AliDetector
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...
 
AliLoaderfLoader
 List of digits for this detector. More...
 
- Protected Attributes inherited from AliModule
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...
 
AliRunLoaderfRunLoader
 for track refernce iterator routines More...
 
AliDigitizationInputfDigInput
 local pointer to run loader More...
 

Additional Inherited Members

- Static Public Member Functions inherited from AliModule
static void SetDensityFactor (Float_t density)
 
static Float_t GetDensityFactor ()
 
- Protected Types inherited from AliFMD
enum  {
  kSiId, kAirId, kPlasticId, kPcbId,
  kSiChipId, kAlId, kCarbonId, kCopperId,
  kKaptonId, kSteelId
}
 
- Static Protected Attributes inherited from AliModule
static Float_t fgDensityFactor = 1.0
 input for sdigits -> digits More...
 

Detailed Description

Forward Multiplicity Detector based on Silicon wafers.

This class contains the base procedures for the Forward Multiplicity detector Detector consists of 3 sub-detectors FMD1, FMD2, and FMD3, each of which has 1 or 2 rings of silicon sensors.

This class contains the detailed version of the FMD - that is, hits are produced during simulation.

Definition at line 40 of file AliFMDv1.h.

Constructor & Destructor Documentation

AliFMDv1::AliFMDv1 ( )
inline

CTOR

Definition at line 44 of file AliFMDv1.h.

AliFMDv1::AliFMDv1 ( const char *  name,
const char *  title = "Detailed geometry" 
)
inline

CTOR

Parameters
nameName
titleTitle

Definition at line 53 of file AliFMDv1.h.

virtual AliFMDv1::~AliFMDv1 ( )
inlinevirtual

DTOR

Definition at line 60 of file AliFMDv1.h.

Member Function Documentation

Bool_t AliFMDv1::CheckHit ( Int_t  trackno,
Int_t  pdg,
Float_t  absQ,
const TLorentzVector &  p,
Float_t  edep 
) const
protected

Check if hit is bad. A hit is bad if

\[ \Delta E > |Q|^2 p / m > 1 \]

holds, where \( \Delta E\) is the energy loss in this step, \( Q\) is the particle charge, \( p\) is the track momentum, and \( m\) is the particle mass. If a track is marked as bad, it's kept in a cache, and can be printed at the end of the event.

Parameters
tracknoTrack number
pdgPDG particle type ID
absQAbsolute value of particle charge
pTrack momentum
edepEnergy loss in this step.
Returns
true if hit is `bad'

Definition at line 161 of file AliFMDv1.cxx.

Referenced by IsVersion(), and StepManager().

virtual Int_t AliFMDv1::IsVersion ( void  ) const
inlinevirtual

Get version number

Returns
always 1

Implements AliModule.

Definition at line 65 of file AliFMDv1.h.

void AliFMDv1::StepManager ( void  )
virtual

Member function that is executed each time a hit is made in the FMD. None-charged particles are ignored. Dead tracks are ignored.

The procedure is as follows:

  • IF NOT track is alive THEN RETURN ENDIF
  • IF NOT particle is charged THEN RETURN ENDIF
  • IF NOT volume name is "STRI" or "STRO" THEN RETURN ENDIF
  • Get strip number (volume copy # minus 1)
  • Get phi division number (mother volume copy #)
  • Get module number (grand-mother volume copy #)
  • section # = 2 * module # + phi division # - 1
  • Get ring Id from volume name
  • Get detector # from grand-grand-grand-mother volume name
  • Get pointer to sub-detector object.
  • Get track position
  • IF track is entering volume AND track is inside real shape THEN
  • Reset energy deposited
  • Get track momentum
  • Get particle ID #
  • ENDIF
  • IF track is inside volume AND inside real shape THEN
  • Update energy deposited
  • ENDIF
  • IF track is inside real shape AND (track is leaving volume, or it died, or it is stopped THEN
  • Create a hit
  • ENDIF
  • ENDIF
  • Update energy deposited

Implements AliFMD.

Definition at line 213 of file AliFMDv1.cxx.

Referenced by IsVersion().

Bool_t AliFMDv1::VMC2FMD ( TLorentzVector &  v,
UShort_t &  detector,
Char_t &  ring,
UShort_t &  sector,
UShort_t &  strip 
) const
protected

Translate VMC coordinates to detector coordinates

Parameters
vOn output, Current position
detectorOn output, detector #
ringOn output, ring id
sectorOn output, sector #
stripOn output, strip #
Returns
true on success

Definition at line 58 of file AliFMDv1.cxx.

Referenced by IsVersion(), and StepManager().

Bool_t AliFMDv1::VMC2FMD ( Int_t  copy,
TLorentzVector &  v,
UShort_t &  detector,
Char_t &  ring,
UShort_t &  sector,
UShort_t &  strip 
) const
protected

Translate VMC coordinates to detector coordinates

Parameters
copyVolume copy number
vOn output, Current position
detectorOn output, detector #
ringOn output, ring id
sectorOn output, sector #
stripOn output, strip #
Returns
true on success

Definition at line 102 of file AliFMDv1.cxx.

Member Data Documentation

Double_t AliFMDv1::fCurrentDeltaE
protected

Definition at line 135 of file AliFMDv1.h.

Referenced by StepManager().

TLorentzVector AliFMDv1::fCurrentP
protected

Definition at line 137 of file AliFMDv1.h.

Referenced by StepManager().

Int_t AliFMDv1::fCurrentPdg
protected

Definition at line 138 of file AliFMDv1.h.

Referenced by StepManager().

TLorentzVector AliFMDv1::fCurrentV
protected

Definition at line 136 of file AliFMDv1.h.

Referenced by StepManager().


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