X-Git-Url: http://git.uio.no/git/?a=blobdiff_plain;f=FMD%2FAliFMDBaseDigit.cxx;h=6f1356c252a1973faf972520468872a1668d7ac9;hb=3312b1e58e8d06cb33b41ef80890f957d396e2c5;hp=a32ea7cc08d5dd7f3340315ff7b70fb0c8c0a311;hpb=b5ee4425c93874c0ce306795eec31f8c0a87308d;p=u%2Fmrichter%2FAliRoot.git diff --git a/FMD/AliFMDBaseDigit.cxx b/FMD/AliFMDBaseDigit.cxx index a32ea7cc08d..6f1356c252a 100644 --- a/FMD/AliFMDBaseDigit.cxx +++ b/FMD/AliFMDBaseDigit.cxx @@ -64,9 +64,11 @@ ////////////////////////////////////////////////////////////////////// #include "AliFMDBaseDigit.h" // ALIFMDDIGIT_H +#include "AliFMDStripIndex.h" #include "Riostream.h" // ROOT_Riostream -#include -#include +// #include +// #include +#include "AliFMDDebug.h" // Better debug macros //==================================================================== ClassImp(AliFMDBaseDigit) @@ -88,7 +90,8 @@ AliFMDBaseDigit::AliFMDBaseDigit(UShort_t detector, Char_t ring, UShort_t sector, UShort_t strip) - : fDetector(detector), + : AliDigit(), + fDetector(detector), fRing(ring), fSector(sector), fStrip(strip), @@ -105,12 +108,37 @@ AliFMDBaseDigit::AliFMDBaseDigit(UShort_t detector, // strip Strip # (For inner/outer rings: 0-511/0-255) } +//____________________________________________________________________ +AliFMDBaseDigit::AliFMDBaseDigit(Int_t* tracks, + UShort_t detector, + Char_t ring, + UShort_t sector, + UShort_t strip) + : AliDigit(tracks), + fDetector(detector), + fRing(ring), + fSector(sector), + fStrip(strip), + fName("") +{ + // + // Creates a base data digit object + // + // Parameters + // + // tracks Array of 3 track labels + // detector Detector # (1, 2, or 3) + // ring Ring ID ('I' or 'O') + // sector Sector # (For inner/outer rings: 0-19/0-39) + // strip Strip # (For inner/outer rings: 0-511/0-255) +} + //____________________________________________________________________ void AliFMDBaseDigit::Print(Option_t* /* option*/) const { // Print digit to standard out - cout << ClassName() << ": FMD" << GetName() << flush; + cout << ClassName() << ": " << GetName() << flush; } //____________________________________________________________________ @@ -131,9 +159,13 @@ ULong_t AliFMDBaseDigit::Hash() const { // Calculate a hash value based on the detector coordinates. +#if 1 + return AliFMDStripIndex::Pack(fDetector, fRing, fSector, fStrip); +#else size_t ringi = (fRing == 'I' || fRing == 'i' ? 0 : 1); return fStrip + fMaxStrips * (fSector + fMaxSectors * (ringi + fMaxRings * (fDetector - 1))); +#endif } @@ -163,6 +195,28 @@ AliFMDBaseDigit::Compare(const TObject* o) const return 1; } +//____________________________________________________________________ +void +AliFMDBaseDigit::AddTrack(Int_t track) +{ + if (fTracks[0] == -1) fTracks[0] = track; + else if (fTracks[1] == -1) fTracks[1] = track; + else if (fTracks[2] == -1) fTracks[2] = track; + else + AliWarning(Form("While adding track label to %s for %s: " + "All 3 track labels used, can't add reference to track %d", + ClassName(), GetName(), track)); +} + +//____________________________________________________________________ +UShort_t +AliFMDBaseDigit::GetNTrack() const +{ + for (Int_t i = 3; i > 0; i--) + if (fTracks[i-1] != -1) return i; + return 0; +} + //____________________________________________________________________ //