* See cxx source for full Copyright notice
*/
/** @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 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 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>
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,
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,
{
public:
/** Constructor
- @param filename File to read from
+ @param stream Stream to read from
@exception Int_t A negative error code in case of failure */
AliFMDAltroReader(std::istream& stream);
virtual ~AliFMDAltroReader() {}
{
public:
/** Constructor.
- @param filename File to read from
+ @param stream File to read from
@exception Int_t A negative error code in case of failure */
AliFMDAltroWriter(std::ostream& stream);
virtual ~AliFMDAltroWriter() {}
@param ring Ring
@param sec Sector
@param str Strip
- @param val Value of gain
@return Gain for strip */
Float_t Value(UShort_t det, Char_t ring, UShort_t sec, UShort_t str);
/** @return threshold */
@param ring Ring
@param sec Sector
@param str Strip
- @param val Value of gain
@return Pedestal for strip */
Float_t Value(UShort_t det, Char_t ring, UShort_t sec, UShort_t str);
/** Get pedestal width for a strip.
@param ring Ring
@param sec Sector
@param str Strip
- @param val Value of gain
@return Pedestal width for strip */
Float_t Width(UShort_t det, Char_t ring, UShort_t sec, UShort_t str);
private:
like
@code
geom->XYZ2Detector(x,y,z-ipz,d,r,s,t);
- @endverbatim
+ @endcode
@param x X coordinate
@param y Y coordinate
@param z Z coordinate
@param ring Ring
@param sector Sector
@param strip Strip
- @param count1 ADC (first sample)
+ @param count ADC (first sample)
@param count2 ADC (second sample, or -1 if not used)
@param count3 ADC (third sample, or -1 if not used) */
AliFMDDigit(UShort_t detector,
@param ring Ring
@param sector Sector
@param strip Strip
- @param count1 ADC (first sample)
+ @param edep Energy deposited
+ @param count ADC (first sample)
@param count2 ADC (second sample, or -1 if not used)
@param count3 ADC (third sample, or -1 if not used) */
AliFMDSDigit(UShort_t detector,
/** Reset to default */
virtual void Reset();
/** Reset to value
- @param v Value to reset from */
+ @param val Value to reset from */
virtual void Reset(const AliFMDEdepHitPair& val);
/** Access operator
- @param det Detector
- @param ring Ring
- @param sec Sector
- @param str Strip
+ @param detector Detector
+ @param ring Ring
+ @param sector Sector
+ @param strip Strip
@return reference value stored for the strip */
virtual AliFMDEdepHitPair& operator()(UShort_t detector,
- Char_t ring,
- UShort_t sector,
- UShort_t strip);
+ Char_t ring,
+ UShort_t sector,
+ UShort_t strip);
/** Access operator
- @param det Detector
- @param ring Ring
- @param sec Sector
- @param str Strip
+ @param detector Detector
+ @param ring Ring
+ @param sector Sector
+ @param strip Strip
@return value stored for the strip */
virtual const AliFMDEdepHitPair& operator()(UShort_t detector,
- Char_t ring,
- UShort_t sector,
- UShort_t strip) const;
+ Char_t ring,
+ UShort_t sector,
+ UShort_t strip) const;
protected:
size_t fTotal; // Total number of entries
AliFMDEdepHitPair* fData; //[fTotal] The data
like
@code
geom->XYZ2Detector(x,y,z-ipz,d,r,s,t);
- @endverbatim
+ @endcode
@param x X coordinate
@param y Y coordinate
@param z Z coordinate
virtual TGeoVolume* RingGeometry(AliFMDRing* r);
/** Make a detector volume
@param d Detector geometry
- @param mother Mother volume (detector volume)
+ @param motherTop Mother volume (detector volume)
+ @param motherBot Mother volume (detector volume)
@param zmother Z position of mother
- @param inner Inner ring volume
- @param outer Outer ring volume
+ @param innerTop Inner ring volume
+ @param innerBot Inner ring volume
+ @param outerTop Outer ring volume
+ @param outerBot Outer ring volume
@return Detector volume */
virtual TGeoVolume* DetectorGeometry(AliFMDDetector* d,
TGeoVolume* motherTop,
TGeoVolume* outerBot=0);
/** Make FMD1 volume
@param d Detector geometry
- @param inner Inner ring volume
+ @param innerTop Inner ring volume
+ @param innerBot Inner ring volume
@return FMD1 volume */
virtual TGeoVolume* FMD1Geometry(AliFMD1* d,
TGeoVolume* innerTop,
TGeoVolume* innerBot);
/** Make FMD2 volume
@param d Detector geometry
- @param inner Inner ring volume
- @param outer Outer ring volume
+ @param innerTop Inner ring volume
+ @param innerBot Inner ring volume
+ @param outerTop Outer ring volume
+ @param outerBot Outer ring volume
@return FMD2 volume */
virtual TGeoVolume* FMD2Geometry(AliFMD2* d,
TGeoVolume* innerTop,
TGeoVolume* outerBot);
/** Make FMD3 volume
@param d Detector geometry
- @param inner Inner ring volume
- @param outer Outer ring volume
+ @param innerTop Inner ring volume
+ @param innerBot Inner ring volume
+ @param outerTop Outer ring volume
+ @param outerBot Outer ring volume
@return FMD3 volume */
virtual TGeoVolume* FMD3Geometry(AliFMD3* d,
TGeoVolume* innerTop,
AliFMDHit();
/** Normal FMD hit ctor
@param shunt ???
- @param track Track #
+ @param track Track #
@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 x Track's X-coordinate at hit
- @param y Track's Y-coordinate at hit
- @param z Track's Z-coordinate at hit
- @param px X-component of track's momentum
- @param py Y-component of track's momentum
- @param pz Z-component of track's momentum
- @param edep Energy deposited by track
- @param pdg Track's particle Id #
- @param t Time when the track hit */
+ @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 x Track's X-coordinate at hit
+ @param y Track's Y-coordinate at hit
+ @param z Track's Z-coordinate at hit
+ @param px X-component of track's momentum
+ @param py Y-component of track's momentum
+ @param pz Z-component of track's momentum
+ @param edep Energy deposited by track
+ @param pdg Track's particle Id #
+ @param t Time when the track hit
+ @param l Track lenght through medium
+ @param stop Whether track is stopped in medium */
AliFMDHit(Int_t shunt,
Int_t track,
UShort_t detector,
@return reference to this object. */
AliFMDUShortMap& operator=(const AliFMDUShortMap& other);
/** Reset to value
- @param v Value to reset from */
+ @param val Value to reset from */
virtual void Reset(const UShort_t& val=UShort_t());
/** Access operator
- @param det Detector
- @param ring Ring
- @param sec Sector
- @param str Strip
+ @param detector Detector
+ @param ring Ring
+ @param sector Sector
+ @param strip Strip
@return reference value stored for the strip */
virtual UShort_t& operator()(UShort_t detector,
Char_t ring,
UShort_t sector,
UShort_t strip);
/** Access operator
- @param det Detector
- @param ring Ring
- @param sec Sector
- @param str Strip
+ @param detector Detector
+ @param ring Ring
+ @param sector Sector
+ @param strip Strip
@return value stored for the strip */
virtual const UShort_t& operator()(UShort_t detector,
Char_t ring,