Line data Source code
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 0 : 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 230 : 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 0 : 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 0 : {fResponse->SetSigmaIntegration(p1);}
56 : /// Set the single electron pulse-height (ADCchan/e)
57 0 : virtual void SetChargeSlope(Float_t p1) {fResponse->SetChargeSlope(p1);}
58 : /// Set width of charge distribution function
59 0 : virtual void SetChargeSpread(Float_t p1, Float_t p2) {fResponse->SetChargeSpread(p1,p2);}
60 : /// Set maximum ADC count value
61 0 : virtual void SetMaxAdc(Int_t p1) {fResponse->SetMaxAdc(p1);}
62 : //
63 : /// Set charge correlation
64 28 : 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 1072 : ClassDef(AliMUONChamber,3) // Muon tracking chamber class
79 : };
80 :
81 : #endif
|