]> git.uio.no Git - u/mrichter/AliRoot.git/blob - MUON/AliMUONChamber.h
Removing semaphore .done files.
[u/mrichter/AliRoot.git] / MUON / AliMUONChamber.h
1 #ifndef ALIMUONCHAMBER_H
2 #define ALIMUONCHAMBER_H
3 /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
4  * See cxx source for full Copyright notice                               */
5
6 /* $Id$ */
7 // Revision of includes 07/05/2004
8 //
9 /// \ingroup base
10 /// \class AliMUONChamber
11 /// \brief MUON tracking chamber class
12
13 #include <TObject.h>
14 #include <TObjArray.h>
15
16 #include "AliMUONResponse.h"
17 #include "AliMUONGeometrySegmentation.h"
18
19 class AliMUONClusterFinderVS;
20 class AliMUON;
21 class AliMUONHit;
22
23
24 class AliMUONChamber : public TObject
25 {
26  public:
27     AliMUONChamber();
28     AliMUONChamber(Int_t id);
29     virtual ~AliMUONChamber();
30     
31 /// Get chamber Id
32   virtual Int_t   GetId() const {return fId;}
33
34   
35 /// Set response model
36   virtual void    SetResponseModel(AliMUONResponse* thisResponse) {fResponse=thisResponse;}
37   
38 ///  Get pointer to response model
39   virtual AliMUONResponse* &ResponseModel(){return fResponse;}
40
41 //
42 // Member function forwarding to the segmentation and response models
43 //
44 /// Calculate pulse height from energy loss  
45   virtual Float_t IntPH(Float_t eloss) {return fResponse->IntPH(eloss);}
46
47 // Initialisation of charge fluctuation for given hit
48   virtual void    ChargeCorrelationInit();
49
50 // Configuration forwarding
51 //
52 /// Define signal distribution region
53 /// by number of sigmas of the distribution function
54   virtual void   SetSigmaIntegration(Float_t p1)
55       {fResponse->SetSigmaIntegration(p1);}
56 /// Set the single electron pulse-height (ADCchan/e)  
57   virtual void   SetChargeSlope(Float_t p1)              {fResponse->SetChargeSlope(p1);}
58 /// Set width of charge distribution function  
59   virtual void   SetChargeSpread(Float_t p1, Float_t p2) {fResponse->SetChargeSpread(p1,p2);}
60 /// Set maximum ADC count value
61   virtual void   SetMaxAdc(Int_t p1)                   {fResponse->SetMaxAdc(p1);}
62 //  
63 // Cluster formation method (charge disintegration)
64   virtual void   DisIntegration(AliMUONHit* hit,
65                                 Int_t& x, Float_t newclust[6][500]);
66 /// Set charge correlation
67   virtual void SetChargeCorrel(Float_t correl) {fResponse->SetChargeCorrel(correl);}
68
69  protected:
70   AliMUONChamber(const AliMUONChamber & rChamber);
71   // assignment operator  
72   AliMUONChamber& operator =(const AliMUONChamber& rhs);
73
74   Int_t   fId;            ///< chamber number
75   Float_t fCurrentCorrel; //!< charge correlation for current hit.
76
77   AliMUONResponse        *fResponse; ///< pointer to response
78   AliMUON                *fMUON;     ///< pointer to MUON
79
80   ClassDef(AliMUONChamber,3) // Muon tracking chamber class
81 };
82
83 #endif