*
* See cxx source for full Copyright notice
*/
+/** @file AliFMD.h
+ @author Christian Holm Christensen <cholm@nbi.dk>
+ @date Sun Mar 26 17:59:37 2006
+ @brief Declaration of AliFMD detector driver
+*/
/** @mainpage ALICE FMD Off-line code
-
+
+ @b Contents
+ - @ref intro
+ - @ref structure
+ - @ref base (see also @ref FMD_base)
+ - @ref sim (see also @ref FMD_sim)
+ - @ref rec (see also @ref FMD_rec)
+ - @ref util (see also @ref FMD_util)
+ - @ref script (see also @ref FMD_script)
+ - @ref quick
+ - @ref authors
+
@section intro Introduction:
This file contains a short overview of the FMD code. It is by no
gSystem->Load("libFMDutil.so");
@endcode
The content of these libraries is detailed more below.
-
+
@subsection base libFMDbase:
This currently (18th or March 2006) contains the classes
dummy) calibration and alignment data. These derive from
TTask.
+ @section script Scripts
+
+ Most scripts live in @c FMD/scripts. The notiable exceptions are
+ @ref Simulate.C, @ref Reconstruct.C, and @ref Config.C
+
+ @section quick Quick start
+
+ First, install ROOT. Then Install TGeant3:
+ @verbatim
+ > cd ~/
+ > mkdir alice
+ > cd alice
+ > cvs -d :pserver:cvs@root.cern.ch:/user/cvs login
+ Password: cvs
+ > cvs -d :pserver:cvs@root.cern.ch:/user/cvs co geant3
+ > cd geant3
+ > make
+ @endverbatim
+
+ Now you can install AliRoot
+ @verbatim
+ > cd ../
+ > cvs -d :pserver:cvs@alisoft.cern.ch:/soft/cvsroot login
+ Password: <empty>
+ > cvs -d :pserver:cvs@alisoft.cern.ch:/soft/cvsroot co AliRoot
+ > cd AliRoot
+ > export ALICE_TARGET=`root-config --arch`
+ > export ALICE=${HOME}/alice
+ > export ALICE_ROOT=${ALICE}/AliRoot
+ > export ALICE_LEVEL=new
+ > export LD_LIBRARY_PATH=${ALICE_ROOT}/lib/tgt_${ALICE_TERGET}:${LD_LIBRARY_PATH}
+ > export PATH=${ALICE_ROOT}/bin/tgt_${ALICE_TERGET}:${PATH}
+ > export G3SYS=${ALICE}/geant3
+ > make
+ @endverbatim
+
+ To simulate one event, do something like
+
+ @verbatim
+ > aliroot ${ALICE_ROOT}/FMD/Simulate.C
+ @endverbatim
+
+ To reconstruct the generated event, do
+ @verbatim
+ > aliroot ${ALICE_ROOT}/FMD/Reconstruct.C
+ @endverbatim
+
+ Now, open the file `AliESDs.root' in AliRoot, and browse through that.
+
@section authors Authors:
- Alla Maevskaya <Alla.Maevskaia@cern.ch>
#ifndef ALIDETECTOR_H
# include <AliDetector.h>
#endif
-#ifndef ROOT_TBranch
-# include <TBranch.h>
-#endif
class TBranch;
class TClonesArray;
class TBrowser;
@param name Name of object.
@param title Title of object. */
AliFMD(const char *name, const char *title);
- /** Copy constructor
- @param other Object to copy from */
- AliFMD(const AliFMD& other);
/** Destructor */
virtual ~AliFMD();
- /** Assignment operator
- @param other Object to assign from
- @return Reference to this object */
- AliFMD& operator=(const AliFMD& other);
/** Wheter to make a detailed geometry
@param use If true, make detailed geometry */
void UseDetailed(Bool_t use=kTRUE) { fDetailed = use; }
AliFMDGeometry to construct the geometry. This in turn calls
AliFMDGeometryBuilder. */
virtual void CreateGeometry();
+ /** 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. */
+ virtual void AddAlignableVolumes() const;
/** Create the tracking mediums used by the FMD. This associates
the tracking mediums defined with the FMD in the
TVirtualMCApplication (AliMC).
virtual void DrawDetector();
/** Calculate the distance from the mouse to the FMD on the screen
Dummy routine */
- virtual Int_t DistanceToPrimitive(Int_t px, Int_t py);
+ virtual Int_t DistancetoPrimitive(Int_t px, Int_t py);
/** 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
/** Set the TClonesArray to read hits into.
@param b The branch to containn the hits */
virtual void SetHitsAddressBranch(TBranch *b);
+ /** Set the TClonesArray to read sdigits into.
+ @param b The branch to containn the sdigits */
+ virtual void SetSDigitsAddressBranch(TBranch *b);
/** Set branch address for the Hits, Digits, and SDigits Tree. */
virtual void SetTreeAddress();
/** Get the array of summable digits
virtual void ResetSDigits();
/** Add a hit to the hits tree
@param track Track #
- @param ivol Volume parameters, interpreted as
+ @param vol Volume parameters, interpreted as
- ivol[0] [UShort_t ] Detector #
- ivol[1] [Char_t ] Ring ID
- ivol[2] [UShort_t ] Sector #
@param edep Energy deposited by track
@param pdg Track's particle Id #
@param t Time when the track hit
- @param l Track length through the material.
- @param stop Whether track was stopped or disappeared */
+ @param len Track length through the material.
+ @param stopped Whether track was stopped or disappeared */
virtual AliFMDHit* AddHitByFields(Int_t track,
UShort_t detector,
Char_t ring,
UShort_t strip=0,
UShort_t count1=0,
Short_t count2=-1,
- Short_t count3=-1);
+ Short_t count3=-1,
+ Short_t count4=-1);
/** Add a digit to the Digit tree
@param digits
- digits[0] [UShort_t] Detector #
virtual void AddSDigit(Int_t *digits);
/** add a summable digit - as coming from data
@param detector Detector # (1, 2, or 3)
- @param ring Ring ID ('I' or 'O')
- @param sector Sector # (For inner/outer rings: 0-19/0-39)
- @param strip Strip # (For inner/outer rings: 0-511/0-255)
+ @param ring Ring ID ('I' or 'O')
+ @param sector Sector # (For inner/outer rings: 0-19/0-39)
+ @param strip Strip # (For inner/outer rings: 0-511/0-255)
+ @param edep Energy deposited
@param count1 ADC count (a 10-bit word)
- @param count2 ADC count (a 10-bit word), or -1 if not used */
+ @param count2 ADC count (a 10-bit word), or -1 if not used
+ @param count3 ADC count (a 10-bit word), or -1 if not used */
virtual void AddSDigitByFields(UShort_t detector=0,
Char_t ring='\0',
UShort_t sector=0,
Float_t edep=0,
UShort_t count1=0,
Short_t count2=-1,
- Short_t count3=-1);
+ Short_t count3=-1,
+ Short_t count4=-1);
/** @}*/
/** @{ */
kAlId, // ID index of Al medium
kCarbonId, // ID index of Carbon medium
kCopperId, // ID index of Copper Medium
- kKaptonId // ID index of Kapton Medium
+ kKaptonId, // ID index of Kapton Medium
+ kSteelId // ID index of Steel medium
};
TObjArray* fBad; //! debugging - bad hits
-
+
+private:
+ /** Copy constructor
+ @param other Object to copy from */
+ AliFMD(const AliFMD& other);
+ /** Assignment operator
+ @param other Object to assign from
+ @return Reference to this object */
+ AliFMD& operator=(const AliFMD& other);
+
ClassDef(AliFMD,11) // Base class FMD entry point
};