]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - ITS/AliITSsimulationSSD.h
Removing obsolete macros
[u/mrichter/AliRoot.git] / ITS / AliITSsimulationSSD.h
index 53ea7a71e9b3bed63016c087ccc4bafbb157ced0..336838ce34ad27fd2293223ca288cda0e06454af 100644 (file)
@@ -5,12 +5,14 @@
 /* $Id$ */
 
 #include "AliITSsimulation.h"
+#include "AliITSsegmentationSSD.h" // function used in inline functions
 
-class ostream;
-class istream;
 class AliITSMapA2;
+class AliITSpList;
+class AliITSTableSSD;
 class AliITSdcsSSD;
 class AliITSsegmentationSSD;
+class AliITSresponseSSD;
 
 class AliITSsimulationSSD: public AliITSsimulation {
 
@@ -23,19 +25,22 @@ class AliITSsimulationSSD: public AliITSsimulation {
     AliITSsimulationSSD(AliITSsegmentation *seg,AliITSresponse *resp);
     //Destructor
     virtual ~AliITSsimulationSSD();
+    // Initilize variables for this simulation
+    void Init(AliITSsegmentationSSD *seg,AliITSresponseSSD *resp);
+    // Create maps to build the lists of tracks for each summable digit
+    void InitSimulationModule(Int_t module,Int_t events);
+    // Digitize module from the sum of summable digits.
+    void FinishSDigitiseModule();
     //Digitizes all of the hits in a module
-    void DigitiseModule(AliITSmodule *mod,Int_t imod,Int_t dummy);
+    void DigitiseModule(AliITSmodule *mod,Int_t dummy0,Int_t dummy1);
+    // Computes the Summable Digits
+    void SDigitiseModule(AliITSmodule *mod,Int_t module,Int_t dummy);
+    // Computes the Charge on each Strip/ Analog/summable digits
+    void HitsToAnalogDigits(AliITSmodule *mod,AliITSpList *pList);
     //Computes the signal from one hit
     void HitToDigit(Int_t module,Double_t x0,Double_t y0,Double_t z0, 
                    Double_t x,Double_t y,Double_t z,Double_t de,
-                   Int_t *indexRange,Bool_t first);
-    // returns the number of steps needed to proplerly distribute the charge
-    // in a step
-    Int_t NumOfSteps(Double_t x,Double_t y,Double_t z,
-                    Double_t  &dex,Double_t &dey,Double_t &dez);
-    void GetList(Int_t track,Float_t **pList,Int_t *IndexRange);
-    // sets thresholds and fills digits
-    void ChargeToSignal(Float_t **pList);
+                   AliITSTableSSD *tav);
     //returns a pointer to the SSD segmentation.
     AliITSsegmentationSSD *GetSegmentation() {
        return (AliITSsegmentationSSD*) fSegmentation;}
@@ -58,26 +63,49 @@ class AliITSsimulationSSD: public AliITSsimulation {
     // Standard ascii class read function
     void Read(istream *is);
 
- protected:
+ private:
+    // returns the number of steps needed to proplerly distribute the charge
+    // in a step
+    Int_t NumOfSteps(Double_t x,Double_t y,Double_t z,
+                    Double_t  &dex,Double_t &dey,Double_t &dez);
+    // Keepts track and orders tracks for a give strip.
+    void GetList(Int_t trk,Int_t ht,Int_t mod,AliITSpList *pLt,
+                AliITSTableSSD *tav);
+    // sets thresholds and fills digits
+    void ChargeToSignal(AliITSpList *pList);
+    // Writes Summable Digits to a root file for later use.
+    void WriteSDigits(AliITSpList *pList);
+    // ReadSDigits and create Digits
+    void SDigitToDigit(Int_t module,AliITSpList *pList);
+    // Fills fMapA2 from pList AliITSpList
+    void FillMapFrompList(AliITSpList *pList);
     // Diffuses the charge onto neighboring strips.
     void    IntegrateGaussian(Int_t k,Double_t par,Double_t av,Double_t sigma, 
                              Double_t inf, Double_t sup,
-                             Int_t *indexRange, Bool_t first);
-    void    ApplyNoise(); // Applies noise to strips randomly
-    void    ApplyCoupling(); // Applies posible signal coupling between strips
+                             AliITSTableSSD *tav);
+     // Applies noise to strips randomly
+    void    ApplyNoise(AliITSpList *pList,Int_t mod);
+     // Applies posible signal coupling between strips
+    void    ApplyCoupling(AliITSpList *pList,Int_t mod);
+    // Computes the integral of a gaussian using Error Function
     Float_t F(Float_t av, Float_t x, Float_t s);
+    // returns, from the segmentation, the number of stips
+    Int_t GetNStrips() {return GetSegmentation()->Npx();}
+    // returns, from the segmentation, the strip pitch
+    Float_t GetStripPitch() {return GetSegmentation()->Dpx(0);}
 
     // Data members
  protected:
     AliITSdcsSSD *fDCS;   // Class containing detector controle paramters
-    Int_t        fNstrips;//! number of strips, gotten from segmentation
-    Float_t      fPitch;  //! strip pitch spacing gotten from segmentation
 
  private:
     AliITSMapA2 *fMapA2;      //! Map of ionization, used localy only
     Double_t    fIonE;        // ionization energy of Si in GeV
     Double_t    fDifConst[2]; // Diffusion constants [h,e] in cm**2/sec
     Double_t    fDriftVel[2]; // Drift velocities [P,N sides] cm/sec
+//    Int_t       fModule;      //! Current module number
+//    Int_t       fEvent;       //! Current Event number
+//    AliITSpList *fpList;      //! Array of s digits.
 
     ClassDef(AliITSsimulationSSD,2) // SSD signal simulation class