]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - FMD/AliFMD.h
Simple scripts to run various steps.
[u/mrichter/AliRoot.git] / FMD / AliFMD.h
index 63341830144756b27eee4aa849325b5eefef807a..d127efa580fb1b08ee6a0b19c341d3f3daf1fa5d 100644 (file)
@@ -7,8 +7,24 @@
  *
  * 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 
@@ -37,7 +53,7 @@
       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;
@@ -226,15 +288,8 @@ public:
       @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; }
@@ -245,6 +300,10 @@ public:
       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). 
@@ -282,7 +341,7 @@ public:
   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
@@ -303,6 +362,9 @@ public:
   /** 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
@@ -312,7 +374,7 @@ public:
   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 #
@@ -343,8 +405,8 @@ public:
       @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, 
@@ -386,7 +448,8 @@ public:
                                         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 #
@@ -399,11 +462,13 @@ public:
   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, 
@@ -411,7 +476,8 @@ public:
                                          Float_t  edep=0,
                                          UShort_t count1=0, 
                                          Short_t  count2=-1, 
-                                         Short_t  count3=-1);
+                                         Short_t  count3=-1,
+                                         Short_t  count4=-1);
   /** @}*/
 
   /** @{ */
@@ -469,11 +535,21 @@ protected:
     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
 };