Update from Alberica. Addition of VZERO equalized signals and ZNC.
[u/mrichter/AliRoot.git] / MUON / AliMUONResponse.h
index c50a0cc..3f12582 100644 (file)
@@ -6,68 +6,73 @@
 /* $Id$ */
 // Revision of includes 07/05/2004
 
-#include <TObject.h>
+/// \ingroup sim
+/// \class AliMUONResponse
+/// \brief Chamber response base class
 
-class TF1;
-class AliSegmentation;
+#ifndef ROOT_TObject
+#include "TObject.h"
+#endif
+
+class AliMUONDigit;
 class AliMUONGeometrySegmentation;
-class AliMUONTransientDigit;
+class AliMUONHit;
+class TF1;
+class TList;
 
 class AliMUONResponse : public TObject 
 {
  public:
     AliMUONResponse();
-    ~AliMUONResponse();
+    virtual ~AliMUONResponse();
  
     //
     // Configuration methods
     //
-    // Set number of sigmas over which cluster disintegration is performed
+    /// Set number of sigmas over which cluster disintegration is performed (dummy)
     virtual void    SetSigmaIntegration(Float_t)           {return;}
-    // Get number of sigmas over which cluster disintegration is performed
+    /// Get number of sigmas over which cluster disintegration is performed (dummy)
     virtual Float_t SigmaIntegration() const                  {return 1.;}
-    // Set single electron pulse height (ADCcounts/e)
+    /// Set single electron pulse height (ADCcounts/e) (dummy)
     virtual void    SetChargeSlope(Float_t )                {return;}
-    // Get single electron pulse height (ADCcounts/e)
+    /// Get single electron pulse height (ADCcounts/e) (dummy)
     virtual Float_t ChargeSlope() const                       {return 1.;}
-    // Set sigmas of the charge spread function
+    /// Set sigmas of the charge spread function (dummy)
     virtual void    SetChargeSpread(Float_t , Float_t )   {return;}
-    // Get sigma_X of the charge spread function
+    /// Get sigma_X of the charge spread function (dummy)
     virtual Float_t ChargeSpreadX() const                     {return 1.;}
-    // Get sigma_Y of the charge spread function
+    /// Get sigma_Y of the charge spread function (dummy)
     virtual Float_t ChargeSpreadY() const                     {return 1.;}
-    // Set maximum Adc-count value
+    /// Set maximum Adc-count value (dummy)
     virtual void    SetMaxAdc(Int_t )                       {return;}
-    // Set saturation value
+    /// Set saturation value (dummy)
     virtual void    SetSaturation(Int_t )                   {return;}
-    // Set zero suppression threshold
+    /// Set zero suppression threshold (dummy)
     virtual void    SetZeroSuppression(Int_t )             {return;}
-    // Get maximum Adc-count value
+    /// Get maximum Adc-count value (dummy)
     virtual Int_t MaxAdc() const                              {return kTRUE;}
-    // Get saturation value
+    /// Get saturation value (dummy)
     virtual Int_t Saturation() const                          {return kTRUE;}
-    // Get maximum zero suppression threshold
+    /// Get maximum zero suppression threshold (dummy)
     virtual Int_t ZeroSuppression() const                     {return kTRUE;}
-    // Set anode cathode Pitch
+    /// Set anode cathode Pitch (dummy)
     virtual void    SetPitch(Float_t)                         {return;}
-    // Get anode cathode Pitch
+    /// Get anode cathode Pitch (dummy)
     virtual Float_t Pitch() const                             {return 1.;}
-    // Set the charge correlation
+    /// Set the charge correlation (dummy)
     virtual void SetChargeCorrel(Float_t)                     {return;}
-    // Get the charge correlation
+    /// Get the charge correlation (dummy)
     virtual Float_t ChargeCorrel() const                      {return 1.;}
-    //  
+    ///  
     // Chamber response methods
-    // Pulse height from scored quantity (eloss)
-    virtual Float_t IntPH(Float_t)                            {return 1.;}
-    // Charge disintegration 
-    virtual Float_t IntXY(AliSegmentation *)                  {return 1.;}
-    virtual Float_t IntXY(Int_t, AliMUONGeometrySegmentation*) {return 1.;}
-
-    // Noise, zero-suppression, adc saturation
-    //virtual Int_t DigitResponse(Int_t )                {return kTRUE;}
-    virtual Int_t DigitResponse(Int_t , 
-                                AliMUONTransientDigit* ) {return kTRUE;}
+    /// Pulse height from scored quantity (eloss) (dummy)
+    virtual Float_t IntPH(Float_t) const                      {return 1.;}
+    /// Charge disintegration (dummy)
+    virtual Float_t IntXY(Int_t, AliMUONGeometrySegmentation*) const {return 1.;}
+    
+    //// Go from one hit to several digits, applying charge spreading.
+    virtual void DisIntegrate(const AliMUONHit& hit, TList& digits, Float_t timeDif);
+    
     // 
     ClassDef(AliMUONResponse,1) // Chamber response virtual base class 
 };