From: prsnko Date: Thu, 4 Sep 2008 16:53:44 +0000 (+0000) Subject: Possibility to set offset in SZ runs X-Git-Url: http://git.uio.no/git/?p=u%2Fmrichter%2FAliRoot.git;a=commitdiff_plain;h=60144e5fb706cbd666d4f94d20a4f77ac1fb5756 Possibility to set offset in SZ runs --- diff --git a/PHOS/AliPHOSRawDecoder.cxx b/PHOS/AliPHOSRawDecoder.cxx index 6f376cc4dfe..60ba100b133 100644 --- a/PHOS/AliPHOSRawDecoder.cxx +++ b/PHOS/AliPHOSRawDecoder.cxx @@ -49,7 +49,7 @@ ClassImp(AliPHOSRawDecoder) //----------------------------------------------------------------------------- AliPHOSRawDecoder::AliPHOSRawDecoder(): fRawReader(0),fCaloStream(0),fPedSubtract(kFALSE),fEnergy(-111),fTime(-111),fQuality(0.),fPedestalRMS(0.), - fModule(-1),fColumn(-1),fRow(-1),fNewModule(-1),fNewColumn(-1),fNewRow(-1),fNewAmp(0),fNewTime(0), + fAmpOffset(0),fModule(-1),fColumn(-1),fRow(-1),fNewModule(-1),fNewColumn(-1),fNewRow(-1),fNewAmp(0),fNewTime(0), fLowGainFlag(kFALSE),fNewLowGainFlag(kFALSE),fOverflow(kFALSE),fSamples(0),fTimes(0) { //Default constructor. @@ -58,7 +58,7 @@ AliPHOSRawDecoder::AliPHOSRawDecoder(): //----------------------------------------------------------------------------- AliPHOSRawDecoder::AliPHOSRawDecoder(AliRawReader* rawReader, AliAltroMapping **mapping): fRawReader(0),fCaloStream(0),fPedSubtract(kFALSE),fEnergy(-111),fTime(-111),fQuality(0.),fPedestalRMS(0.), - fModule(-1),fColumn(-1),fRow(-1),fNewModule(-1),fNewColumn(-1),fNewRow(-1),fNewAmp(0),fNewTime(0), + fAmpOffset(0),fModule(-1),fColumn(-1),fRow(-1),fNewModule(-1),fNewColumn(-1),fNewRow(-1),fNewAmp(0),fNewTime(0), fLowGainFlag(kFALSE),fNewLowGainFlag(kFALSE),fOverflow(kFALSE),fSamples(0),fTimes(0) { //Construct a decoder object. @@ -86,7 +86,7 @@ AliPHOSRawDecoder::AliPHOSRawDecoder(const AliPHOSRawDecoder &phosDecoder ): fRawReader(phosDecoder.fRawReader),fCaloStream(phosDecoder.fCaloStream), fPedSubtract(phosDecoder.fPedSubtract), fEnergy(phosDecoder.fEnergy),fTime(phosDecoder.fTime),fQuality(phosDecoder.fQuality),fPedestalRMS(phosDecoder.fPedestalRMS), - fModule(phosDecoder.fModule),fColumn(phosDecoder.fColumn), + fAmpOffset(phosDecoder.fAmpOffset),fModule(phosDecoder.fModule),fColumn(phosDecoder.fColumn), fRow(phosDecoder.fRow),fNewModule(phosDecoder.fNewModule),fNewColumn(phosDecoder.fNewColumn), fNewRow(phosDecoder.fNewRow),fNewAmp(phosDecoder.fNewAmp),fNewTime(phosDecoder.fNewTime), fLowGainFlag(phosDecoder.fLowGainFlag),fNewLowGainFlag(phosDecoder.fNewLowGainFlag), @@ -110,6 +110,8 @@ AliPHOSRawDecoder& AliPHOSRawDecoder::operator = (const AliPHOSRawDecoder &phosD fEnergy = phosDecode.fEnergy; fTime = phosDecode.fTime; fQuality = phosDecode.fQuality ; + fPedestalRMS = phosDecode.fPedestalRMS ; + fAmpOffset = phosDecode.fAmpOffset ; fModule = phosDecode.fModule; fColumn = phosDecode.fColumn; fRow = phosDecode.fRow; @@ -179,7 +181,7 @@ Bool_t AliPHOSRawDecoder::NextDigit() // Time is not evaluated for the moment (12.01.2007). // Take is as a first time bin multiplied by the sample tick time - if(fPedSubtract) + if(fPedSubtract) { if (nPed > 0){ fPedestalRMS=(pedRMS-pedMean*pedMean/nPed)/nPed ; if(fPedestalRMS > 0.) @@ -188,6 +190,10 @@ Bool_t AliPHOSRawDecoder::NextDigit() } else return kFALSE; + } + else{ + fEnergy-=fAmpOffset ; + } if (fEnergy < baseLine) fEnergy = 0; return kTRUE; diff --git a/PHOS/AliPHOSRawDecoder.h b/PHOS/AliPHOSRawDecoder.h index 8bfaee6d264..e3bfff0681f 100644 --- a/PHOS/AliPHOSRawDecoder.h +++ b/PHOS/AliPHOSRawDecoder.h @@ -27,6 +27,7 @@ public: virtual Bool_t NextDigit(); void SubtractPedestals(Bool_t subtract) {fPedSubtract=subtract;} + void SetAmpOffset(Int_t extPed=5){fAmpOffset=extPed ;} const Double_t GetEnergy() const { return fEnergy; } const Double_t GetTime() const { return fTime; } @@ -51,6 +52,7 @@ protected: Double_t fTime; // "digit" time Double_t fQuality ; //Sample quality Double_t fPedestalRMS; //calciulated RMS of pedestal (non-ZS runs) + Int_t fAmpOffset ; //Pedestal offset from ALTRO chips Int_t fModule; // PHOS module number (1-5) Int_t fColumn; // column in the module Int_t fRow; // row diff --git a/PHOS/AliPHOSRawDecoderv1.cxx b/PHOS/AliPHOSRawDecoderv1.cxx index c0714303ac2..38bb48855ab 100644 --- a/PHOS/AliPHOSRawDecoderv1.cxx +++ b/PHOS/AliPHOSRawDecoderv1.cxx @@ -215,6 +215,9 @@ Bool_t AliPHOSRawDecoderv1::NextDigit() else return kFALSE; } + else{ + pedestal = fAmpOffset ; + } //calculate time and energy Int_t maxBin=0 ; @@ -224,7 +227,7 @@ Bool_t AliPHOSRawDecoderv1::NextDigit() Double_t wts=0 ; Int_t tStart = 0 ; for(Int_t i=iBin; iGetSize(); i++){ - if(fSamples->At(i)>0){ + if(fSamples->At(i)>pedestal){ Double_t de=fSamples->At(i)-pedestal ; if(de>1.){ aMean+=de*i ; @@ -293,7 +296,7 @@ Bool_t AliPHOSRawDecoderv1::NextDigit() gMinuit->SetFCN(AliPHOSRawDecoderv1::UnfoldingChiSquare) ; // To set the address of the minimization function - fToFit->Clear() ; + fToFit->Clear("nodelete") ; Double_t b,bmin,bmax ; if(fLowGainFlag){ fSampleParamsLow->AddAt(pedestal,4) ; @@ -483,7 +486,7 @@ Bool_t AliPHOSRawDecoderv1::NextDigit() pedRMS += in->GetSignal()*in->GetSignal() ; nPed++; } - fSamples->AddAt(in->GetSignal(),iBin); + fSamples->AddAt(in->GetSignal()-10,iBin); fTimes->AddAt(in->GetTime(),iBin); //Debug==============