X-Git-Url: http://git.uio.no/git/?a=blobdiff_plain;f=TOF%2FAliTOFSDigit.cxx;h=25a797ca32cc32955db9a689b2cd89b83fc97315;hb=6cf643869d006dcfcc68ae9fee7f686c27cc4298;hp=b848272d50544accfe82c176b0b780a57d3f368b;hpb=96f01799c58f5c73a653e33f52462dda08618e4e;p=u%2Fmrichter%2FAliRoot.git diff --git a/TOF/AliTOFSDigit.cxx b/TOF/AliTOFSDigit.cxx index b848272d505..25a797ca32c 100644 --- a/TOF/AliTOFSDigit.cxx +++ b/TOF/AliTOFSDigit.cxx @@ -31,8 +31,6 @@ // -- Authors: F. Pierella, A. Seganti, D. Vicinanza // //_________________________________________________________________________// -#include "TArrayI.h" - #include "AliLog.h" #include "AliTOFGeometry.h" @@ -58,7 +56,7 @@ AliTOFSDigit::AliTOFSDigit(): } //////////////////////////////////////////////////////////////////////// -AliTOFSDigit::AliTOFSDigit(Int_t tracknum, Int_t *vol,Int_t *digit): +AliTOFSDigit::AliTOFSDigit(Int_t tracknum, Int_t * const vol,Int_t * const digit): TObject(), fSector(-1), fPlate(-1), @@ -93,13 +91,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 +105,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 +116,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 +184,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 +192,35 @@ 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,70 +229,45 @@ 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 + + } //////////////////////////////////////////////////////////////////////// @@ -305,8 +290,7 @@ Int_t AliTOFSDigit::GetTotPad() const // 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){