]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - MUON/AliMUONResponse.h
Coding conventions (Laurent)
[u/mrichter/AliRoot.git] / MUON / AliMUONResponse.h
index 0b5ad31a49882dd3d68bc69f93f5aa64a38e51c1..fb7c633a0c66561112fd6e49537ef776891d69e7 100644 (file)
@@ -4,55 +4,81 @@
  * See cxx source for full Copyright notice                               */
 
 /* $Id$ */
+// Revision of includes 07/05/2004
 
+/// \ingroup sim
+/// \class AliMUONResponse
+/// \brief Chamber response base class
+
+#ifndef ROOT_TObject
 #include "TObject.h"
+#endif
 
+class AliMUONDigit;
+class AliMUONGeometrySegmentation;
+class AliMUONHit;
+class AliMUONTransientDigit;
 class TF1;
-class AliMUONChamber;
-class AliMUONRecCluster;
-class AliMUONSegmentation;
-
+class TList;
 
-class AliMUONResponse :
-public TObject {
+class AliMUONResponse : public TObject 
+{
  public:
+    AliMUONResponse();
+    virtual ~AliMUONResponse();
     //
     // Configuration methods
     //
     // Set number of sigmas over which cluster disintegration is performed
-    virtual void    SetSigmaIntegration(Float_t p1)           =0;
+    virtual void    SetSigmaIntegration(Float_t)           {return;}
     // Get number of sigmas over which cluster disintegration is performed
-    virtual Float_t SigmaIntegration()                        =0;
+    virtual Float_t SigmaIntegration() const                  {return 1.;}
     // Set single electron pulse height (ADCcounts/e)
-    virtual void    SetChargeSlope(Float_t p1)                =0;
+    virtual void    SetChargeSlope(Float_t )                {return;}
     // Get single electron pulse height (ADCcounts/e)
-    virtual Float_t ChargeSlope()                             =0;
+    virtual Float_t ChargeSlope() const                       {return 1.;}
     // Set sigmas of the charge spread function
-    virtual void    SetChargeSpread(Float_t p1, Float_t p2)   =0;
+    virtual void    SetChargeSpread(Float_t , Float_t )   {return;}
     // Get sigma_X of the charge spread function
-    virtual Float_t ChargeSpreadX()                           =0;
+    virtual Float_t ChargeSpreadX() const                     {return 1.;}
     // Get sigma_Y of the charge spread function
-    virtual Float_t ChargeSpreadY()                           =0;
+    virtual Float_t ChargeSpreadY() const                     {return 1.;}
     // Set maximum Adc-count value
-    virtual void    SetMaxAdc(Int_t p1)                       =0;
+    virtual void    SetMaxAdc(Int_t )                       {return;}
+    // Set saturation value
+    virtual void    SetSaturation(Int_t )                   {return;}
     // Set zero suppression threshold
-    virtual void    SetZeroSuppression(Int_t val)             =0;
+    virtual void    SetZeroSuppression(Int_t )             {return;}
     // Get maximum Adc-count value
-    virtual Int_t MaxAdc()                                    =0;
+    virtual Int_t MaxAdc() const                              {return kTRUE;}
+    // Get saturation value
+    virtual Int_t Saturation() const                          {return kTRUE;}
     // Get maximum zero suppression threshold
-    virtual Int_t ZeroSuppression()                           =0;
+    virtual Int_t ZeroSuppression() const                     {return kTRUE;}
     // Set anode cathode Pitch
-    virtual void    SetPitch(Float_t)                         =0;
+    virtual void    SetPitch(Float_t)                         {return;}
     // Get anode cathode Pitch
-    virtual Float_t Pitch()                                   =0;
+    virtual Float_t Pitch() const                             {return 1.;}
+    // Set the charge correlation
+    virtual void SetChargeCorrel(Float_t)                     {return;}
+    // Get the charge correlation
+    virtual Float_t ChargeCorrel() const                      {return 1.;}
     //  
     // Chamber response methods
     // Pulse height from scored quantity (eloss)
-    virtual Float_t IntPH(Float_t eloss)                      =0;
+    virtual Float_t IntPH(Float_t) const                      {return 1.;}
     // Charge disintegration 
-    virtual Float_t IntXY(AliMUONSegmentation *)              =0;
+    virtual Float_t IntXY(Int_t, AliMUONGeometrySegmentation*) const {return 1.;}
+
     // Noise, zero-suppression, adc saturation
-    virtual Int_t DigitResponse(Int_t digit)                  =0;
+    //virtual Int_t DigitResponse(Int_t )                {return kTRUE;}
+    virtual Int_t DigitResponse(Int_t , 
+                                AliMUONTransientDigit* ) const {return kTRUE;}
+    
+    /// Go from one hit to several digits, applying charge spreading.
+    virtual void DisIntegrate(const AliMUONHit& hit, TList& digits);
+
     // 
     ClassDef(AliMUONResponse,1) // Chamber response virtual base class 
 };