X-Git-Url: http://git.uio.no/git/?a=blobdiff_plain;f=MUON%2FAliMUONDigit.h;h=ba7b139a922cc0e9f0828d8c74f55144b52a4e1e;hb=ae6eeca4e8aea55f7ba8e10526ef004ff4006843;hp=4b94ea10c66320e8d9cf79968e75ec081a14e460;hpb=81b310730a10daa0b4ae922427fa55b1c53f2092;p=u%2Fmrichter%2FAliRoot.git diff --git a/MUON/AliMUONDigit.h b/MUON/AliMUONDigit.h index 4b94ea10c66..ba7b139a922 100644 --- a/MUON/AliMUONDigit.h +++ b/MUON/AliMUONDigit.h @@ -12,14 +12,14 @@ #include -static const Int_t kMAXTRACKS=10; - -class AliMUONDigit : public TObject { - +class AliMUONDigit : public TObject +{ public: AliMUONDigit(); AliMUONDigit(const AliMUONDigit& rhs); + /// \deprecated AliMUONDigit(Int_t *digits); + /// \deprecated AliMUONDigit(Int_t *tracks, Int_t *charges, Int_t *digits); virtual ~AliMUONDigit(); @@ -28,7 +28,7 @@ class AliMUONDigit : public TObject { virtual Bool_t IsSortable() const {return kTRUE;} virtual int Compare(const TObject *obj) const; - virtual Int_t DetElemId()const {return fDetElemId;} + virtual Int_t DetElemId()const {return fDetElemId;} virtual Int_t PadX() const {return fPadX;} virtual Int_t PadY() const {return fPadY;} virtual Int_t Cathode() const {return fCathode;} @@ -37,18 +37,23 @@ class AliMUONDigit : public TObject { virtual Int_t Physics() const {return fPhysics;} - virtual Int_t Hit() const {return fHit;} - virtual Int_t Track(Int_t i) const {return fTracks[i];} - virtual Int_t TrackCharge(Int_t i) const {return fTcharges[i];} + virtual Int_t Hit() const {return fHit;} - virtual Int_t ADC() const; - virtual Int_t ManuId() const; - virtual Int_t ManuChannel() const; + virtual Int_t Ntracks() const { return fNtracks; } + virtual void AddTrack(Int_t trackNumber, Int_t trackCharge); + virtual Int_t Track(Int_t i) const; + virtual Int_t TrackCharge(Int_t i) const; + + virtual Int_t ADC() const { return fADC; } + virtual Int_t ManuId() const { return fManuId; } + virtual Int_t ManuChannel() const { return fManuChannel; } virtual Bool_t IsSaturated() const; + virtual Bool_t IsNoiseOnly() const; + virtual void NoiseOnly(Bool_t value=kTRUE); virtual void Saturated(Bool_t saturated=kTRUE); virtual void SetElectronics(Int_t manuId, Int_t manuChannel); - virtual void SetADC(Int_t adc); + virtual void SetADC(Int_t adc) { fADC=adc; } virtual void SetDetElemId(Int_t id) {fDetElemId = id;} virtual void SetPadX(Int_t pad) {fPadX = pad;} virtual void SetPadY(Int_t pad) {fPadY = pad;} @@ -63,23 +68,36 @@ class AliMUONDigit : public TObject { virtual void Copy(TObject& digit) const; - private: + /** Delete the internal track arrays (which are dynamically allocated). + * This is to insure we can put those digits in e.g. TClonesArray + * w/o leaking memory. + */ + virtual void Clear(Option_t*); + + /// Add mask to the track numbers. + virtual void PatchTracks(Int_t mask); + +private: + Int_t fDetElemId; // Detection element ID + Int_t fManuId; // Id of the MANU chip. + Int_t fManuChannel; // Channel within the MANU chip. + Int_t fSignal; // Signal amplitude + Int_t fPadX; // Pad number along x Int_t fPadY; // Pad number along y Int_t fCathode; // Cathode number + Int_t fADC; // ADC value + UInt_t fFlags; // Special flags (e.g. is the signal an overflow ?) - Int_t fSignal; // Signal amplitude - Int_t fTcharges[kMAXTRACKS]; // charge per track making this digit (up to 10) - Int_t fTracks[kMAXTRACKS]; // primary tracks making this digit (up to 10) - Int_t fPhysics; // physics contribution to signal - Int_t fHit; // hit number - temporary solution - Int_t fDetElemId; // Detection element ID - - Int_t fManuId; // Id of the MANU chip. - Int_t fManuChannel; // Channel within the MANU chip. - Int_t fADC; // ADC value - Bool_t fIsSaturated; // Is the signal an overflow ? + Int_t fNtracks; // MC tracks making to this digit. + Int_t* fTcharges; //[fNtracks] charges of MC track making this digit + Int_t* fTracks; //[fNtracks] primary MC tracks making this digit + Int_t fPhysics; // MC physics contribution to signal + Int_t fHit; // MC hit number - temporary solution + + static const UInt_t fgkSaturatedMask = 0x1; // the mask (part of fFlags) to indicate this digit is saturated + static const UInt_t fgkNoiseOnlyMask = 0x1000; // indicate a simulated digit due to noise only - ClassDef(AliMUONDigit,3) //Digits for MUON + ClassDef(AliMUONDigit,4) //Digits for MUON }; #endif