X-Git-Url: http://git.uio.no/git/?p=u%2Fmrichter%2FAliRoot.git;a=blobdiff_plain;f=TOF%2FAliTOFSDigit.cxx;h=88f1faad9339d44f878d70e5848ef51da7d00f28;hp=aaf2f181d2c73088da7ae35e33d47713d32c177b;hb=7d53ce61133fc240e439e7230f52510edb3463fd;hpb=7529e782256a6a4581b1cedb7b22d84a409e744f diff --git a/TOF/AliTOFSDigit.cxx b/TOF/AliTOFSDigit.cxx index aaf2f181d2c..88f1faad933 100644 --- a/TOF/AliTOFSDigit.cxx +++ b/TOF/AliTOFSDigit.cxx @@ -31,10 +31,6 @@ // -- Authors: F. Pierella, A. Seganti, D. Vicinanza // //_________________________________________________________________________// -#include "TArrayI.h" - -#include "AliLog.h" - #include "AliTOFGeometry.h" #include "AliTOFSDigit.h" @@ -93,13 +89,13 @@ AliTOFSDigit::AliTOFSDigit(Int_t tracknum, Int_t *vol,Int_t *digit): //////////////////////////////////////////////////////////////////////// AliTOFSDigit::AliTOFSDigit(const AliTOFSDigit & digit): - TObject(), - fSector(-1), - fPlate(-1), - fStrip(-1), - fPadx(-1), - fPadz(-1), - fNDigits(0), + TObject(digit), + fSector(digit.fSector), + fPlate(digit.fPlate), + fStrip(digit.fStrip), + fPadx(digit.fPadx), + fPadz(digit.fPadz), + fNDigits(digit.fNDigits), fTdc(0x0), fAdc(0x0), fTracks(0x0) @@ -107,12 +103,6 @@ AliTOFSDigit::AliTOFSDigit(const AliTOFSDigit & digit): // // copy ctor for AliTOFSDigit object // - fSector = digit.fSector; - fPlate = digit.fPlate; - fStrip = digit.fStrip; - fPadx = digit.fPadx; - fPadz = digit.fPadz; - fNDigits = digit.fNDigits; fTdc = new TArrayI(*digit.fTdc); fAdc = new TArrayI(*digit.fAdc); fTracks = new TArrayI(*digit.fTracks); @@ -124,15 +114,20 @@ AliTOFSDigit& AliTOFSDigit::operator=(const AliTOFSDigit & digit) // // copy ctor for AliTOFSDigit object // - this->fSector = digit.fSector; - this->fPlate = digit.fPlate; - this->fStrip = digit.fStrip; - this->fPadx = digit.fPadx; - this->fPadz = digit.fPadz; - this->fNDigits = digit.fNDigits; - this->fTdc = digit.fTdc; - this->fAdc = digit.fAdc; - this->fTracks = digit.fTracks; + + if (this == &digit) + return *this; + + TObject::operator=(digit); + fSector = digit.fSector; + fPlate = digit.fPlate; + fStrip = digit.fStrip; + fPadx = digit.fPadx; + fPadz = digit.fPadz; + fNDigits = digit.fNDigits; + fTdc = digit.fTdc; + fAdc = digit.fAdc; + fTracks = digit.fTracks; return *this; } @@ -187,7 +182,7 @@ void AliTOFSDigit::Update(Float_t tdcbin, Int_t tdc, Int_t adc, Int_t track) // Int_t sameTime = -1; - Float_t tdcwindow=((Float_t)AliTOFGeometry::TimeDiff())/tdcbin; + Float_t tdcwindow = AliTOFGeometry::DeadTime()/tdcbin; for (Int_t i = 0; i < fNDigits; i++) { if (TMath::Abs(tdc-fTdc->At(i)) < tdcwindow) { sameTime = i; @@ -195,22 +190,34 @@ void AliTOFSDigit::Update(Float_t tdcbin, Int_t tdc, Int_t adc, Int_t track) } } - if (sameTime >= 0) { + if (sameTime >= 0) { // another time measurement happens during the + // dead time of the hit pad => it corresponds + // to the same time measurement (*fAdc)[sameTime] += adc; - // update track - find the first -1 value and replace it by the - // track number - for (Int_t iTrack=0; iTrackSet(fNDigits); @@ -219,9 +226,9 @@ void AliTOFSDigit::Update(Float_t tdcbin, Int_t tdc, Int_t adc, Int_t track) (*fAdc)[fNDigits-1] = adc; fTracks->Set(fNDigits*kMAXDIGITS); (*fTracks)[(fNDigits-1)*kMAXDIGITS] = track; - for (Int_t i = 1; i GetNDigits(); + Float_t tdcbin = AliTOFGeometry::TdcBinWidth();// [ps] hardwired for the time being + + Int_t track = -1; + Int_t adc = -1; + Int_t tdc = -1; + // start loop on all sdig locations + Int_t nlocations = sdig->GetNDigits(); for (Int_t j = 0; j < nlocations; j++) { - Float_t tdcbin = AliTOFGeometry::TdcBinWidth();// [ps] hardwired for the time being - Int_t tdc=(Int_t)sdig->GetTdc(j); - Int_t adc=(Int_t)sdig->GetAdc(j); + tdc = (Int_t)sdig->GetTdc(j); + adc = (Int_t)sdig->GetAdc(j); + // getting here only the first track number - Int_t track=GetTrack(j,0); - - - Int_t sameTime = -1; - Float_t tdcwindow=((Float_t)AliTOFGeometry::TimeDiff())/tdcbin; - for (Int_t i = 0; i < fNDigits; i++) { - if (TMath::Abs(tdc-fTdc->At(i)) < tdcwindow) { - sameTime = i; - break; - } - } - - if (sameTime >= 0) { - (*fAdc)[sameTime] += adc; - // update track - find the first -1 value and replace it by the - // track number - for (Int_t iTrack=0; iTrackSet(fNDigits); - (*fTdc)[fNDigits-1] = tdc; - fAdc->Set(fNDigits); - (*fAdc)[fNDigits-1] = adc; - fTracks->Set(fNDigits*kMAXDIGITS); - (*fTracks)[(fNDigits-1)*kMAXDIGITS] = track; - for (Int_t i = 1; i = 0) + //Int_t track = GetTrack(j,0); + + // getting here all the track numbers + for (Int_t iTrack = 0; iTrackGetTrack(j,iTrack); + Update(tdcbin, tdc, adc, track); + } // end loop on tracks + } // end loop on sdig locations + + } //////////////////////////////////////////////////////////////////////// @@ -298,15 +280,14 @@ AliTOFSDigit::~AliTOFSDigit() //////////////////////////////////////////////////////////////////////// -Int_t AliTOFSDigit::GetTotPad(AliTOFGeometry *tofGeom) const +Int_t AliTOFSDigit::GetTotPad() const { // // Get the "total" index of the pad inside a Sector // starting from the digits data. // - Int_t pad = 2*fPadx + fPadz; - //Int_t pad = fPadx+AliTOFGeometry::NpadX()*fPadz; + Int_t pad = AliTOFGeometry::NpadZ()*fPadx + fPadz; Int_t before=0; switch(fPlate){ @@ -314,16 +295,16 @@ Int_t AliTOFSDigit::GetTotPad(AliTOFGeometry *tofGeom) const //before = 0; break; case 1: - before = tofGeom->NStripC(); + before = AliTOFGeometry::NStripC(); break; case 2: - before = AliTOFGeometry::NStripB() + tofGeom->NStripC(); + before = AliTOFGeometry::NStripB() + AliTOFGeometry::NStripC(); break; case 3: - before = AliTOFGeometry::NStripA() + AliTOFGeometry::NStripB() + tofGeom->NStripC(); + before = AliTOFGeometry::NStripA() + AliTOFGeometry::NStripB() + AliTOFGeometry::NStripC(); break; case 4: - before = AliTOFGeometry::NStripA() + 2*AliTOFGeometry::NStripB() + tofGeom->NStripC(); + before = AliTOFGeometry::NStripA() + 2*AliTOFGeometry::NStripB() + AliTOFGeometry::NStripC(); break; }