]> git.uio.no Git - u/mrichter/AliRoot.git/blob - MUON/AliMUONDigit.h
- Adding volume path attribute (moved from AliMUONGeometryModule)
[u/mrichter/AliRoot.git] / MUON / AliMUONDigit.h
1 #ifndef ALIMUONDIGIT_H
2 #define ALIMUONDIGIT_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 AliMUONDigit
11 /// \brief MUON digit
12
13 #include <TObject.h>
14
15 static const Int_t kMAXTRACKS=10;
16
17 class AliMUONDigit : public TObject {
18
19  public:
20     AliMUONDigit();
21     AliMUONDigit(const AliMUONDigit& rhs);
22     AliMUONDigit(Int_t *digits);
23     AliMUONDigit(Int_t *tracks, Int_t *charges, Int_t *digits);
24     virtual ~AliMUONDigit();
25
26     AliMUONDigit& operator=(const AliMUONDigit& rhs);
27     
28     virtual Bool_t IsSortable() const {return kTRUE;}
29     virtual int Compare(const TObject *obj) const;
30
31     virtual Int_t DetElemId()const     {return fDetElemId;}
32     virtual Int_t PadX() const         {return fPadX;}
33     virtual Int_t PadY() const         {return fPadY;}
34     virtual Int_t Cathode() const      {return fCathode;}
35     
36     virtual Int_t Signal() const       {return fSignal;}
37     
38     virtual Int_t Physics() const      {return fPhysics;}
39     
40     virtual Int_t Hit() const          {return fHit;}    
41     virtual Int_t Track(Int_t i) const {return fTracks[i];}
42     virtual Int_t TrackCharge(Int_t i) const {return fTcharges[i];} 
43     
44     virtual Int_t ADC() const;
45     virtual Int_t ManuId() const;
46     virtual Int_t ManuChannel() const;
47     virtual Bool_t IsSaturated() const;
48     
49     virtual void Saturated(Bool_t saturated=kTRUE);
50     virtual void SetElectronics(Int_t manuId, Int_t manuChannel);
51     virtual void SetADC(Int_t adc);
52     virtual void SetDetElemId(Int_t id)    {fDetElemId = id;}
53     virtual void SetPadX(Int_t pad)        {fPadX = pad;}
54     virtual void SetPadY(Int_t pad)        {fPadY = pad;}
55     virtual void SetSignal(Int_t q)        {fSignal = q;}
56     virtual void AddSignal(Int_t q)        {fSignal += q;}
57     virtual void AddPhysicsSignal(Int_t q) {fPhysics += q;}
58     virtual void SetHit(Int_t n)           {fHit = n;}    
59     virtual void SetCathode(Int_t c)       {fCathode = c;}
60     virtual void SetPhysicsSignal(Int_t q) {fPhysics = q; }
61     
62     virtual void Print(Option_t* opt="") const;
63     
64     virtual void Copy(TObject& digit) const;
65     
66  private:
67     Int_t fPadX;          // Pad number along x
68     Int_t fPadY;          // Pad number along y
69     Int_t fCathode;       // Cathode number
70     
71     Int_t fSignal;        // Signal amplitude
72     Int_t fTcharges[kMAXTRACKS];  // charge per track making this digit (up to 10)
73     Int_t fTracks[kMAXTRACKS];    // primary tracks making this digit (up to 10)
74     Int_t fPhysics;       // physics contribution to signal 
75     Int_t fHit;           // hit number - temporary solution
76     Int_t fDetElemId;     // Detection element ID
77
78     Int_t fManuId; // Id of the MANU chip.
79     Int_t fManuChannel; // Channel within the MANU chip.
80     Int_t fADC; // ADC value
81     Bool_t fIsSaturated; // Is the signal an overflow ? 
82     
83     ClassDef(AliMUONDigit,3)  //Digits for MUON
84 };
85 #endif