]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - MUON/AliMUONChamber.h
Geometry framework classes were made independent from the rest of MUON and linked...
[u/mrichter/AliRoot.git] / MUON / AliMUONChamber.h
index 0d755d9872963ecd7b48f6e62d6a14f7b0be4494..a8e562763cc2d398dfe0bde5360ca5208a178e6b 100644 (file)
@@ -4,52 +4,54 @@
  * See cxx source for full Copyright notice                               */
 
 /* $Id$ */
+// Revision of includes 07/05/2004
+
+#include <TObject.h>
+#include <TObjArray.h>
 
-#include "TObjArray.h"
 #include "AliSegmentation.h"
 #include "AliMUONResponse.h"
 
 class AliMUONClusterFinderVS;
-//class AliMUONResponse ;
-//class AliSegmentation ;
+class AliMUONGeometryModule;
 
-class AliMUONChamber:
-public TObject
+class AliMUONChamber : public TObject
 {
  public:
     AliMUONChamber();
     AliMUONChamber(Int_t id);
-    AliMUONChamber(const AliMUONChamber & rChamber);
     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;}
-//  
+// Get chamber Id
+  virtual Int_t   GetId() const {return fId;}
+//
+
+// Get chamber Id
+  virtual Bool_t  IsSensId(Int_t volId) const;
+  
 // 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;}
+  virtual Float_t Z() const {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;}  
 
 // Return inner radius of sensitive volume 
-  virtual  Float_t RInner()            {return frMin;}
+  virtual  Float_t RInner() const      {return frMin;}
 // Return outer radius of sensitive volum  
-  virtual Float_t ROuter()            {return frMax;}  
+  virtual Float_t ROuter() const       {return frMax;}  
 //  
 // Set response model
   virtual void    SetResponseModel(AliMUONResponse* thisResponse) {fResponse=thisResponse;}
 //  
 // Set segmentation model
   virtual void    SetSegmentationModel(Int_t i, AliSegmentation* thisSegmentation) {
-      (*fSegmentation)[i-1] = thisSegmentation;
+      fSegmentation->AddAt(thisSegmentation,i-1);
   }
 // Set Cluster reconstruction model  
   virtual void    SetReconstructionModel(AliMUONClusterFinderVS *thisReconstruction) {
@@ -67,7 +69,7 @@ public TObject
 //  Get pointer to cluster reconstruction model
   virtual AliMUONClusterFinderVS* &ReconstructionModel(){return fReconstruction;}
 // Get number of segmentation sectors  
-  virtual Int_t Nsec()              {return fnsec;}
+  virtual Int_t Nsec() const        {return fnsec;}
 // Set number of segmented cathodes (1 or 2)  
   virtual void  SetNsec(Int_t nsec) {fnsec=nsec;}
 //
@@ -81,6 +83,9 @@ public TObject
 //
 // 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
@@ -105,25 +110,36 @@ public TObject
 // Initialize geometry related parameters  
   virtual void    InitGeo(Float_t z);
 //
-  virtual Float_t DGas() {return fdGas;}
-  virtual Float_t DAlu() {return fdAlu;}  
-// assignment operator  
-  AliMUONChamber& operator =(const AliMUONChamber& rhs);
+  virtual Float_t DGas() const {return fdGas;}
+  virtual Float_t DAlu() const {return fdAlu;}  
+  virtual void SetDGas(Float_t DGas) {fdGas = DGas;}
+  virtual void SetDAlu(Float_t DAlu) {fdAlu = DAlu;}  
+  virtual void SetChargeCorrel(Float_t correl) {fResponse->SetChargeCorrel(correl);}
+
+// geometry  
+  void SetGeometry(AliMUONGeometryModule* geometry) {fGeometry = geometry;}
+  AliMUONGeometryModule* GetGeometry() const {return fGeometry; }
+
   
  protected:
+  AliMUONChamber(const AliMUONChamber & rChamber);
+  // assignment operator  
+  AliMUONChamber& operator =(const AliMUONChamber& rhs);
+
   Int_t   fId;   // chamber number
   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
+  Float_t fCurrentCorrel; //! charge correlation for current hit.
 
   TObjArray              *fSegmentation;    // pointer to segmentation
   AliMUONClusterFinderVS *fReconstruction;  // pointer to reconstruction
   AliMUONResponse        *fResponse;        // pointer to response
-  ClassDef(AliMUONChamber,1) // Muon tracking chamber class
+  AliMUONGeometryModule  *fGeometry;        // pointer to geometry
+  ClassDef(AliMUONChamber,3) // Muon tracking chamber class
 };
 
 #endif