]> git.uio.no Git - u/mrichter/AliRoot.git/blob - MUON/AliMUONChamber.h
Changing once more (hopefully we get it correct this time...) the logic to trig the...
[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 sim
10 /// \class AliMUONChamber
11 /// \brief MUON tracking chamber class
12 ///
13 /// Now only providing DisIntegration function
14
15 #include <TObject.h>
16 #include <TObjArray.h>
17
18 #include "AliMUONResponse.h"
19
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(const AliMUONResponse& 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 /// Set charge correlation
64   virtual void SetChargeCorrel(Float_t correl) {fResponse->SetChargeCorrel(correl);}
65
66  protected:
67   /// Not implemented
68   AliMUONChamber(const AliMUONChamber & rChamber);
69   /// Not implemented
70   AliMUONChamber& operator =(const AliMUONChamber& rhs);
71
72   Int_t   fId;            ///< chamber number
73   Float_t fCurrentCorrel; //!< charge correlation for current hit.
74
75   AliMUONResponse        *fResponse; ///< pointer to response
76   AliMUON                *fMUON;     ///< pointer to MUON
77
78   ClassDef(AliMUONChamber,3) // Muon tracking chamber class
79 };
80
81 #endif