]> git.uio.no Git - u/mrichter/AliRoot.git/blob - MUON/AliMUONChamber.h
Basic implementation of AliMUONVNDStore containers, using AliMpExMap
[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 //
32 // Get chamber Id
33   virtual Int_t   GetId() const {return fId;}
34 //
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 //
69   virtual void SetChargeCorrel(Float_t correl) {fResponse->SetChargeCorrel(correl);}
70
71  protected:
72   AliMUONChamber(const AliMUONChamber & rChamber);
73   // assignment operator  
74   AliMUONChamber& operator =(const AliMUONChamber& rhs);
75
76   Int_t   fId;   // chamber number
77   Float_t fCurrentCorrel; //! charge correlation for current hit.
78
79   AliMUONResponse        *fResponse;        // pointer to response
80   AliMUON                *fMUON;            // pointer to MUON
81   ClassDef(AliMUONChamber,3) // Muon tracking chamber class
82 };
83
84 #endif