//-----------------------------------------------------------------------------
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.
//-----------------------------------------------------------------------------
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.
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),
fEnergy = phosDecode.fEnergy;
fTime = phosDecode.fTime;
fQuality = phosDecode.fQuality ;
+ fPedestalRMS = phosDecode.fPedestalRMS ;
+ fAmpOffset = phosDecode.fAmpOffset ;
fModule = phosDecode.fModule;
fColumn = phosDecode.fColumn;
fRow = phosDecode.fRow;
// 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.)
}
else
return kFALSE;
+ }
+ else{
+ fEnergy-=fAmpOffset ;
+ }
if (fEnergy < baseLine) fEnergy = 0;
return kTRUE;
else
return kFALSE;
}
+ else{
+ pedestal = fAmpOffset ;
+ }
//calculate time and energy
Int_t maxBin=0 ;
Double_t wts=0 ;
Int_t tStart = 0 ;
for(Int_t i=iBin; i<fSamples->GetSize(); i++){
- if(fSamples->At(i)>0){
+ if(fSamples->At(i)>pedestal){
Double_t de=fSamples->At(i)-pedestal ;
if(de>1.){
aMean+=de*i ;
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) ;
pedRMS += in->GetSignal()*in->GetSignal() ;
nPed++;
}
- fSamples->AddAt(in->GetSignal(),iBin);
+ fSamples->AddAt(in->GetSignal()-10,iBin);
fTimes->AddAt(in->GetTime(),iBin);
//Debug==============