]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - MUON/AliMUONChamber.h
Updates to AddTask macro from Chris
[u/mrichter/AliRoot.git] / MUON / AliMUONChamber.h
index 83e5077bcf68f0e9b7771e4048bc5304d4c544af..f00444a6db379b9baa93b28cfb2f48850403f29b 100644 (file)
  * See cxx source for full Copyright notice                               */
 
 /* $Id$ */
+// Revision of includes 07/05/2004
+//
+/// \ingroup sim
+/// \class AliMUONChamber
+/// \brief MUON tracking chamber class
+///
+/// Now only providing DisIntegration function
+
+#include <TObject.h>
+#include <TObjArray.h>
 
-#include "TObjArray.h"
-#include "AliMUONSegmentation.h"
 #include "AliMUONResponse.h"
 
-class AliMUONClusterFinder;
-//class AliMUONResponse ;
-//class AliMUONSegmentation ;
+class AliMUON;
+class AliMUONHit;
+
 
-class AliMUONChamber:
-public TObject
+class AliMUONChamber : public TObject
 {
  public:
     AliMUONChamber();
-    AliMUONChamber(const AliMUONChamber & rChamber);
+    AliMUONChamber(Int_t id);
     virtual ~AliMUONChamber();
     
-//
-// Get GEANT id of sensitive volume
-  virtual Int_t   GetGid() {return fGid;}
-// Set GEANT id of sensitive volume
-  virtual void    SetGid(Int_t id) {fGid=id;}
-//  
-// Initialisation
-  virtual void    Init();
-// Set z-position of chamber  
-  virtual void    SetZ(Float_t Z) {fZ = Z;}
-// Get z-position of chamber  
-  virtual Float_t Z(){return fZ;}
-// Set inner radius of sensitive volume 
-  virtual void SetRInner(Float_t rmin) {frMin=rmin;}
-// Set outer radius of sensitive volum  
-  virtual void SetROuter(Float_t rmax) {frMax=rmax;}  
+/// Get chamber Id
+  virtual Int_t   GetId() const {return fId;}
 
-// Return inner radius of sensitive volume 
-  virtual  Float_t RInner()            {return frMin;}
-// Return outer radius of sensitive volum  
-  virtual Float_t ROuter()            {return frMax;}  
-//  
-// Set response model
-  virtual void    SetResponseModel(AliMUONResponse* thisResponse) {fResponse=thisResponse;}
-//  
-// Set segmentation model
-  virtual void    SetSegmentationModel(Int_t i, AliMUONSegmentation* thisSegmentation) {
-      (*fSegmentation)[i-1] = thisSegmentation;
-  }
-// Set Cluster reconstruction model  
-  virtual void    SetReconstructionModel(AliMUONClusterFinder *thisReconstruction) {
-      fReconstruction = thisReconstruction;
-  }
-//  
-//  Get pointer to response model
+  
+/// Set response model
+  virtual void    SetResponseModel(const AliMUONResponse& thisResponse);
+  
+///  Get pointer to response model
   virtual AliMUONResponse* &ResponseModel(){return fResponse;}
-//  
-//  Get reference to segmentation model
-  virtual AliMUONSegmentation*  SegmentationModel(Int_t isec) {
-      return (AliMUONSegmentation *) (*fSegmentation)[isec-1];
-  }
-  virtual TObjArray* ChamberSegmentation() {return fSegmentation;}
-//  Get pointer to cluster reconstruction model
-  virtual AliMUONClusterFinder* &ReconstructionModel(){return fReconstruction;}
-// Get number of segmentation sectors  
-  virtual Int_t Nsec()              {return fnsec;}
-// Set number of segmented cathodes (1 or 2)  
-  virtual void  SetNsec(Int_t nsec) {fnsec=nsec;}
+
 //
 // Member function forwarding to the segmentation and response models
 //
-// Calculate pulse height from energy loss  
+/// Calculate pulse height from energy loss  
   virtual Float_t IntPH(Float_t eloss) {return fResponse->IntPH(eloss);}
-//  
-// Ask segmentation if signal should be generated  
-  virtual Int_t   SigGenCond(Float_t x, Float_t y, Float_t z);
-//
-// Initialisation of segmentation for hit  
-  virtual void    SigGenInit(Float_t x, Float_t y, Float_t z);
+
+// Initialisation of charge fluctuation for given hit
+  virtual void    ChargeCorrelationInit();
+
 // Configuration forwarding
 //
-// Define signal distribution region
-// by number of sigmas of the distribution function
+/// Define signal distribution region
+/// by number of sigmas of the distribution function
   virtual void   SetSigmaIntegration(Float_t p1)
       {fResponse->SetSigmaIntegration(p1);}
-// Set the single electron pulse-height (ADCchan/e)  
+/// Set the single electron pulse-height (ADCchan/e)  
   virtual void   SetChargeSlope(Float_t p1)              {fResponse->SetChargeSlope(p1);}
-// Set width of charge distribution function  
+/// Set width of charge distribution function  
   virtual void   SetChargeSpread(Float_t p1, Float_t p2) {fResponse->SetChargeSpread(p1,p2);}
-// Set maximum ADC count value
+/// Set maximum ADC count value
   virtual void   SetMaxAdc(Int_t p1)                   {fResponse->SetMaxAdc(p1);}
-// Set Pad size
-  virtual void   SetPadSize(Int_t isec, Float_t p1, Float_t p2) {
-      ((AliMUONSegmentation*) (*fSegmentation)[isec-1])->SetPadSize(p1,p2);
-  }
 //  
-// Cluster formation method (charge disintegration)
-  virtual void   DisIntegration(Float_t eloss, Float_t tof,
-                               Float_t xhit, Float_t yhit,
-                               Int_t& x, Float_t newclust[6][500]);
-// Initialize geometry related parameters  
-  virtual void    InitGeo(Float_t z);
-//
-  virtual Float_t DGas() {return fdGas;}
-  virtual Float_t DAlu() {return fdAlu;}  
-// assignment operator  
-  virtual AliMUONChamber& operator =(const AliMUONChamber& rhs);
-  
+/// Set charge correlation
+  virtual void SetChargeCorrel(Float_t correl) {fResponse->SetChargeCorrel(correl);}
+
  protected:
+  /// Not implemented
+  AliMUONChamber(const AliMUONChamber & rChamber);
+  /// Not implemented
+  AliMUONChamber& operator =(const AliMUONChamber& rhs);
+
+  Int_t   fId;            ///< chamber number
+  Float_t fCurrentCorrel; //!< charge correlation for current hit.
 
-  Float_t fdGas; // half gaz gap
-  Float_t fdAlu; // half Alu width  
-  Int_t   fGid;  // GEANT volume if for sensitive volume of this chamber
-  Float_t fZ;    // Z position (cm)
-  Int_t   fnsec; // number of semented cathode planes
-  Float_t frMin; // innermost sensitive radius
-  Float_t frMax; // outermost sensitive radius
+  AliMUONResponse        *fResponse; ///< pointer to response
+  AliMUON                *fMUON;     ///< pointer to MUON
 
-  TObjArray            *fSegmentation;    // pointer to segmentation
-  AliMUONClusterFinder *fReconstruction;  // pointer to reconstruction
-  AliMUONResponse      *fResponse;        // pointer to response
-  ClassDef(AliMUONChamber,1) // Muon tracking and trigger chamber class
+  ClassDef(AliMUONChamber,3) // Muon tracking chamber class
 };
 
 #endif