3 /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
4 * See cxx source for full Copyright notice */
7 // Revision of includes 07/05/2004
10 /// \class AliMUONDigit
15 class AliMUONDigit : public TObject
19 AliMUONDigit(const AliMUONDigit& rhs);
20 virtual ~AliMUONDigit();
22 AliMUONDigit& operator=(const AliMUONDigit& rhs);
24 virtual Bool_t IsSortable() const {return kTRUE;} ///< Return true if sortable
25 virtual Int_t Compare(const TObject *obj) const;
27 virtual Int_t DetElemId()const {return fDetElemId;} ///< Return detection element ID
28 virtual Int_t PadX() const {return fPadX;} ///< Return pad number along x
29 virtual Int_t PadY() const {return fPadY;} ///< Return pad number along y
30 virtual Int_t Cathode() const {return fCathode;} ///< Return cathode number
32 virtual Float_t Signal() const {return fSignal;} ///< Return signal amplitude
34 virtual Float_t Physics() const {return fPhysics;} ///< Return MC physics contribution to signal
36 virtual Int_t Hit() const {return fHit;} ///< Return MC hit number
38 virtual Int_t Ntracks() const { return fNtracks; } ///< Return MC tracks making to this digit
39 virtual void AddTrack(Int_t trackNumber, Float_t trackCharge);
40 virtual Int_t Track(Int_t i) const;
41 virtual Float_t TrackCharge(Int_t i) const;
43 virtual Int_t ADC() const { return fADC; } ///< Return ADC value
44 virtual Int_t ManuId() const { return fManuId; } ///< Return Id of the MANU chip
45 virtual Int_t ManuChannel() const { return fManuChannel; } ///< Return Channel within the MANU chip
46 virtual Bool_t IsSaturated() const;
47 virtual Bool_t IsNoiseOnly() const;
49 virtual void NoiseOnly(Bool_t value=kTRUE);
50 virtual void Saturated(Bool_t saturated=kTRUE);
51 virtual void SetElectronics(Int_t manuId, Int_t manuChannel);
52 virtual void SetADC(Int_t adc) { fADC=adc; }
53 virtual void SetDetElemId(Int_t id) {fDetElemId = id;} ///< Set detection element ID
54 virtual void SetPadX(Int_t pad) {fPadX = pad;} ///< Set pad number along x
55 virtual void SetPadY(Int_t pad) {fPadY = pad;} ///< Set pad number along y
56 virtual void SetSignal(Float_t q) {fSignal = q;} ///< Set signal amplitude
57 virtual void AddSignal(Float_t q) {fSignal += q;} ///< Add signal amplitude
58 virtual void AddPhysicsSignal(Float_t q) {fPhysics += q;} ///< Add MC physics contribution to signal
59 virtual void SetHit(Int_t n) {fHit = n;} ///< Set MC hit number
60 virtual void SetCathode(Int_t c) {fCathode = c;} ///< Set cathode number
61 virtual void SetPhysicsSignal(Float_t q) {fPhysics = q; } ///< Set MC physics contribution to signal
63 virtual void Print(Option_t* opt="") const;
65 virtual void Copy(TObject& digit) const;
67 /** Delete the internal track arrays (which are dynamically allocated).
68 * This is to insure we can put those digits in e.g. TClonesArray
71 virtual void Clear(Option_t*);
73 // Add mask to the track numbers.
74 virtual void PatchTracks(Int_t mask);
77 Int_t fDetElemId; ///< Detection element ID
78 Int_t fManuId; ///< Id of the MANU chip.
79 Int_t fManuChannel; ///< Channel within the MANU chip.
80 Float_t fSignal; ///< Signal amplitude
82 Int_t fPadX; ///< Pad number along x
83 Int_t fPadY; ///< Pad number along y
84 Int_t fCathode; ///< Cathode number
85 Int_t fADC; ///< ADC value
86 UInt_t fFlags; ///< Special flags (e.g. is the signal an overflow ?)
88 Int_t fNtracks; ///< MC tracks making to this digit.
90 /// charges of MC track making this digit
91 Float_t* fTcharges; //[fNtracks] charges of MC track making this digit
93 /// primary MC tracks making this digit
94 Int_t* fTracks; //[fNtracks] primary MC tracks making this digit
96 Float_t fPhysics; ///< MC physics contribution to signal
97 Int_t fHit; ///< MC hit number - temporary solution
99 static const UInt_t fgkSaturatedMask = 0x1; ///< the mask (part of fFlags) to indicate this digit is saturated
100 static const UInt_t fgkNoiseOnlyMask = 0x1000; ///< indicate a simulated digit due to noise only
102 ClassDef(AliMUONDigit,5) //Digits for MUON