]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - MUON/AliMUONDigit.h
CID 22679: Out-of-bounds write (OVERRUN_STATIC)
[u/mrichter/AliRoot.git] / MUON / AliMUONDigit.h
index 13f49b58420eab19abf95e637154078477de2bf7..571b1f299b618e98c5f77521dcfd597c18e33bdd 100644 (file)
@@ -25,11 +25,11 @@ class AliMUONDigit : public AliMUONVDigit
 
     AliMUONDigit& operator=(const AliMUONDigit& rhs);
     
+    /// Own clone methods (as the default TObject::Clone turned out to be pretty slow !)
+    virtual TObject* Clone(const char* /*newname*/ = "") const { return new AliMUONDigit(*this); }
+    
     virtual Bool_t HasMCInformation() const { return kTRUE; }
     
-    virtual Bool_t IsSortable() const {return kTRUE;}        ///< Return true if sortable
-    virtual Int_t Compare(const TObject *obj) const;
-
     virtual Int_t DetElemId()const     {return fDetElemId;}  ///< Return detection element ID  
     virtual Int_t PadX() const         {return fPadX;}       ///< Return pad number along x
     virtual Int_t PadY() const         {return fPadY;}       ///< Return pad number along y
@@ -39,6 +39,8 @@ class AliMUONDigit : public AliMUONVDigit
     
     virtual Int_t Hit() const          {return fHit;}        ///< Return MC hit number
     
+    virtual Float_t Time() const       {return fTime;}       /// Return MC hit age
+
     virtual Int_t Ntracks() const { return fNtracks; }       ///< Return MC tracks making to this digit
     virtual void AddTrack(Int_t trackNumber, Float_t trackCharge);
     virtual Int_t Track(Int_t i) const;
@@ -50,16 +52,21 @@ class AliMUONDigit : public AliMUONVDigit
     virtual Bool_t IsSaturated() const;
     virtual Bool_t IsNoiseOnly() const;
     virtual Bool_t IsEfficiencyApplied() const;
+    virtual Bool_t IsConverted() const;
+    virtual Bool_t IsChargeInFC() const;
     virtual UInt_t StatusMap() const { return fStatusMap; }    ///< Return Neighbouring pad status
     
     virtual void NoiseOnly(Bool_t value=kTRUE);
     virtual void Saturated(Bool_t saturated=kTRUE);
     virtual void EfficiencyApplied(Bool_t value=kTRUE);
-    
+    virtual void Converted(Bool_t value=kTRUE);
+    virtual void ChargeInFC(Bool_t value=kTRUE);
+  
     virtual void SetADC(Int_t adc)         {fADC=adc; }        ///< Set ADC value
     virtual void SetPadXY(Int_t padx, Int_t pady)        {fPadX = padx; fPadY=pady; }      ///< Set pad number along x
     virtual void SetCharge(Float_t q)        {fSignal = q;}    ///< Set charge
     virtual void SetHit(Int_t n)           {fHit = n;}         ///< Set MC hit number
+    virtual void SetTime(Float_t t) {fTime = t;}               ///< Set MC hit age
     virtual void SetStatusMap(UInt_t statusMap) { fStatusMap = statusMap; } ///< Set status map
     
     virtual void Copy(TObject& digit) const;
@@ -104,6 +111,7 @@ private:
     Int_t* fTracks;       //[fNtracks]  primary MC tracks making this digit
 
     Int_t fHit;           ///< MC hit number - temporary solution
+    Float_t fTime;        ///< MC hit age
   
     UInt_t fStatusMap; ///< Neighbouring pad status (whether ped, gains, hv were ok or not)
     
@@ -112,8 +120,10 @@ private:
     static const UInt_t fgkCalibratedMask = 0x100; ///< whether this digits has been calibrated
     static const UInt_t fgkNoiseOnlyMask = 0x1000; ///< indicate a simulated digit due to noise only
     static const UInt_t fgkEfficiencyMask = 0x2000; ///< indicate chamber efficiency has been applied to a simulated digit
-    
-    ClassDef(AliMUONDigit,9)  //Digits for MUON
+    static const UInt_t fgkConverted       = 0x4000; ///< has been converted from a real digit
+    static const UInt_t fgkChargeInFC      = 0x8000; ///< charge unit are femto coulomb
+  
+    ClassDef(AliMUONDigit,12)  //Digits for MUON
 };
 
 #endif