]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - FMD/AliFMDBaseDigitizer.h
Use standard cuts.
[u/mrichter/AliRoot.git] / FMD / AliFMDBaseDigitizer.h
index 695cdf53568596db1ce623c6264fd82863cf6917..351e5542f31f185c1b39c493c2349a2cc855dff4 100644 (file)
@@ -170,8 +170,6 @@ public:
    
   /** Initialize */
   virtual Bool_t Init();
-  /** Run this task */
-  virtual void Exec(Option_t* option="");
   
   /** The response shape of the VA1 shaping circuit is approximently
       given by 
@@ -186,28 +184,16 @@ public:
   void     SetShapingTime(Float_t B=10) { fShapingTime = B;  }  
   /** @return Get the shaping time */
   Float_t  GetShapingTime()      const { return fShapingTime; }
+  
+  void SetStoreTrackRefs(Bool_t store=kTRUE) { fStoreTrackRefs = store; }
+  Bool_t IsStoreTrackRefs() const { return fStoreTrackRefs; }
+    
 protected:
-  /** Set-up loaders, etc. 
-      @param fmd  On return, contains pointer to loaded AliFMD object.
-      @param outFMD On return, contains pointer to loaded loader. 
-      @return kTRUE on success, kFALSE otherwise */
-  virtual Bool_t  SetupLoaders(AliFMD*& fmd, AliLoader*& outFMD);
-  /** Set-up loaders, etc. 
-      @param fmd Pointer to loaded AliFMD object 
-      @return kFALSE on failures. */
-  virtual Bool_t  LoopOverInput(AliFMD* fmd);
-  /** Output to disk 
-      @param outFMD Loader
-      @param fmd    AliFMD object */
-  virtual void OutputTree(AliLoader* outFMD, AliFMD* fmd) = 0;
-  /** Sum energy deposited contributions from each hit in a cache
-      @param fmd Pointer to detector */
-  virtual void     SumContributions(AliFMD* fmd);
   /** For the stored energy contributions in the cache, convert the
       energy signal to ADC counts, and store the created digit in  
       the digits array
       @param fmd Pointer to detector */
-  virtual void     DigitizeHits(AliFMD* fmd) const;
+  virtual void     DigitizeHits() const;
   /** Convert the total energy deposited to a (set of) ADC count(s).
       See also the class description for more details. 
       @param edep     Total energy deposited in detector
@@ -236,37 +222,65 @@ protected:
                                UShort_t  strip) const;
   /** Add noise to each sample */
   virtual void     AddNoise(TArrayI&) const {}
+
+  /** Add edep contribution from (detector,ring,sector,strip) to cache */ 
+  virtual void AddContribution(UShort_t detector, 
+                              Char_t   ring, 
+                              UShort_t sector, 
+                              UShort_t strip, 
+                              Float_t  edep, 
+                              Bool_t   isPrimary,
+                              Int_t    nTrackno,
+                              Int_t*   tracknos);
   /** Add a digit to output */
-  virtual void     AddDigit(AliFMD*  /* fmd      */,
-                           UShort_t /* detector */, 
-                           Char_t   /* ring     */,
-                           UShort_t /* sector   */, 
-                           UShort_t /* strip    */, 
-                           Float_t  /* edep     */, 
-                           UShort_t /* count1   */, 
-                           Short_t  /* count2   */, 
-                           Short_t  /* count3   */,
-                           Short_t  /* count4   */) const {}
+  virtual void     AddDigit(UShort_t       detector, 
+                           Char_t         ring,
+                           UShort_t       sector, 
+                           UShort_t       strip, 
+                           Float_t        edep, 
+                           UShort_t       count1, 
+                           Short_t        count2, 
+                           Short_t        count3,
+                           Short_t        count4, 
+                           UShort_t       ntot, 
+                           UShort_t       nprim,
+                           const TArrayI& refs) const;
+  /** Make the output tree using the passed loader 
+      @param loader 
+      @return The generated tree. */
+  virtual TTree* MakeOutputTree(AliLoader* loader);
+  /** Store the data using the loader 
+      @param loader The loader */
+  virtual void StoreDigits(AliLoader* loader);
 
-  AliRunLoader* fRunLoader;       //! Run loader
-  AliFMDEdepMap fEdep;             // Cache of Energy from hits 
-  Float_t       fShapingTime;      // Shaping profile parameter
+  AliFMD*         fFMD;              // Detector object 
+  AliRunLoader*   fRunLoader;       //! Run loader
+  AliFMDEdepMap   fEdep;             // Cache of Energy from hits 
+  Float_t         fShapingTime;      // Shaping profile parameter
+  Bool_t          fStoreTrackRefs;   // Wether to store track references
   
   /** Copy CTOR 
       @param o object to copy from  */
   AliFMDBaseDigitizer(const AliFMDBaseDigitizer& o) 
     : AliDigitizer(o),
+      fFMD(o.fFMD),
       fRunLoader(0),
-      fEdep(AliFMDMap::kMaxDetectors, 
-           AliFMDMap::kMaxRings, 
-           AliFMDMap::kMaxSectors, 
-           AliFMDMap::kMaxStrips),
-      fShapingTime(0)
+      fEdep(o.fEdep),
+      fShapingTime(o.fShapingTime),
+      fStoreTrackRefs(o.fStoreTrackRefs)
   {}
   /** Assignment operator
       @return Reference to this object */
-  AliFMDBaseDigitizer& operator=(const AliFMDBaseDigitizer&) { return *this; }
-  ClassDef(AliFMDBaseDigitizer,2) // Base class for FMD digitizers
+  AliFMDBaseDigitizer& operator=(const AliFMDBaseDigitizer& o) 
+  { 
+    AliDigitizer::operator=(o);
+    fRunLoader      = o.fRunLoader;
+    fEdep           = o.fEdep;
+    fShapingTime    = o.fShapingTime;
+    fStoreTrackRefs = o.fStoreTrackRefs;
+    return *this; 
+  }
+  ClassDef(AliFMDBaseDigitizer,3) // Base class for FMD digitizers
 };