]> git.uio.no Git - u/mrichter/AliRoot.git/blob - MUON/AliMUONChamber.h
commented logging message
[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 #include "AliMUONGeometrySegmentation.h"
20
21 class AliMUONClusterFinderVS;
22 class AliMUON;
23 class AliMUONHit;
24
25
26 class AliMUONChamber : public TObject
27 {
28  public:
29     AliMUONChamber();
30     AliMUONChamber(Int_t id);
31     virtual ~AliMUONChamber();
32     
33 /// Get chamber Id
34   virtual Int_t   GetId() const {return fId;}
35
36   
37 /// Set response model
38   virtual void    SetResponseModel(AliMUONResponse* thisResponse) {fResponse=thisResponse;}
39   
40 ///  Get pointer to response model
41   virtual AliMUONResponse* &ResponseModel(){return fResponse;}
42
43 //
44 // Member function forwarding to the segmentation and response models
45 //
46 /// Calculate pulse height from energy loss  
47   virtual Float_t IntPH(Float_t eloss) {return fResponse->IntPH(eloss);}
48
49 // Initialisation of charge fluctuation for given hit
50   virtual void    ChargeCorrelationInit();
51
52 // Configuration forwarding
53 //
54 /// Define signal distribution region
55 /// by number of sigmas of the distribution function
56   virtual void   SetSigmaIntegration(Float_t p1)
57       {fResponse->SetSigmaIntegration(p1);}
58 /// Set the single electron pulse-height (ADCchan/e)  
59   virtual void   SetChargeSlope(Float_t p1)              {fResponse->SetChargeSlope(p1);}
60 /// Set width of charge distribution function  
61   virtual void   SetChargeSpread(Float_t p1, Float_t p2) {fResponse->SetChargeSpread(p1,p2);}
62 /// Set maximum ADC count value
63   virtual void   SetMaxAdc(Int_t p1)                   {fResponse->SetMaxAdc(p1);}
64 //  
65 // Cluster formation method (charge disintegration)
66   virtual void   DisIntegration(AliMUONHit* hit,
67                                 Int_t& x, Float_t newclust[6][500]);
68 /// Set charge correlation
69   virtual void SetChargeCorrel(Float_t correl) {fResponse->SetChargeCorrel(correl);}
70
71  protected:
72   /// Not implemented
73   AliMUONChamber(const AliMUONChamber & rChamber);
74   /// Not implemented
75   AliMUONChamber& operator =(const AliMUONChamber& rhs);
76
77   Int_t   fId;            ///< chamber number
78   Float_t fCurrentCorrel; //!< charge correlation for current hit.
79
80   AliMUONResponse        *fResponse; ///< pointer to response
81   AliMUON                *fMUON;     ///< pointer to MUON
82
83   ClassDef(AliMUONChamber,3) // Muon tracking chamber class
84 };
85
86 #endif