From f564dd5a1c8891dcbf1537a0064343a362fc624a Mon Sep 17 00:00:00 2001 From: basanta Date: Fri, 5 Nov 2010 17:37:11 +0000 Subject: [PATCH] bug fixed --- PMD/AliPMDDDLRawData.cxx | 20 +++++++------------- PMD/AliPMDDDLRawData.h | 4 ++-- PMD/AliPMDDigitizer.cxx | 8 ++++++-- 3 files changed, 15 insertions(+), 17 deletions(-) diff --git a/PMD/AliPMDDDLRawData.cxx b/PMD/AliPMDDDLRawData.cxx index 18efcb2ed5b..faca049fd0d 100644 --- a/PMD/AliPMDDDLRawData.cxx +++ b/PMD/AliPMDDDLRawData.cxx @@ -225,9 +225,6 @@ void AliPMDDDLRawData::WritePMDRawData(TTree *treeD) Int_t iskip[5]; UInt_t ddlEndWord[2] = {0xDEADFACE, 0xDEADFACE}; - Int_t bknJunk = 0; - - for (Int_t iblock = 0; iblock < 2; iblock++) { // DSP Block Header @@ -321,8 +318,6 @@ void AliPMDDDLRawData::WritePMDRawData(TTree *treeD) outfile->WriteBuffer((char*)patchBusHeaderWord,4*sizeof(UInt_t)); - bknJunk += patchbusRDL; - for (Int_t iword = 0; iword < patchbusRDL; iword++) { buffer[iword] = busPatch[busno][iword]; @@ -376,11 +371,8 @@ void AliPMDDDLRawData::GetUMDigitsData(TTree *treeD, Int_t imodule, UInt_t mcmno = 0, chno = 0; UInt_t adc = 0; Int_t det = 0, smn = 0, irow = 0, icol = 0; - Int_t parity = 0; + UInt_t parity = 0; - // Int_t totPatchBus = 0, bPatchBus = 0, ePatchBus = 0; - // Int_t ibus = 0, totmcm = 0, rows = 0, cols = 0, rowe = 0, cole = 0; - // Int_t moduleno = 0; Int_t busno = 0; Int_t patchBusNo[kMaxBus], mcmperBus[kMaxBus]; Int_t startRowBus[kMaxBus], startColBus[kMaxBus]; @@ -440,7 +432,9 @@ void AliPMDDDLRawData::GetUMDigitsData(TTree *treeD, Int_t imodule, smn = pmddigit->GetSMNumber(); irow = pmddigit->GetRow(); icol = pmddigit->GetColumn(); - adc = (UInt_t) pmddigit->GetADC(); + Float_t aadc = pmddigit->GetADC(); + if (aadc < 0.) aadc = 0.; + adc = (UInt_t) aadc; TransformS2H(smn,irow,icol); @@ -791,17 +785,17 @@ void AliPMDDDLRawData::GetMCMCh(Int_t imodule, Int_t row, Int_t col, //____________________________________________________________________________ -Int_t AliPMDDDLRawData::ComputeParity(UInt_t baseword) +UInt_t AliPMDDDLRawData::ComputeParity(UInt_t baseword) { // Generate the parity bit - Int_t count = 0; + UInt_t count = 0; for(Int_t j=0; j<29; j++) { if (baseword & 0x01 ) count++; baseword >>= 1; } - Int_t parity = count%2; + UInt_t parity = count%2; return parity; } //____________________________________________________________________________ diff --git a/PMD/AliPMDDDLRawData.h b/PMD/AliPMDDDLRawData.h index 313d9cd54bf..f3003e5f1bf 100644 --- a/PMD/AliPMDDDLRawData.h +++ b/PMD/AliPMDDDLRawData.h @@ -57,11 +57,11 @@ class AliPMDDDLRawData:public TObject AliPMDddlinfoData *fDdlinfo; //! ddl info data AliPMDMappingData *fMapData; //! Mapping data - Int_t ComputeParity(UInt_t baseword); + UInt_t ComputeParity(UInt_t baseword); TClonesArray *fDigits; //! List of digits - ClassDef(AliPMDDDLRawData,10) // To make RAW Data + ClassDef(AliPMDDDLRawData,11) // To make RAW Data }; #endif diff --git a/PMD/AliPMDDigitizer.cxx b/PMD/AliPMDDigitizer.cxx index 25475dd6d55..39171b4418e 100644 --- a/PMD/AliPMDDigitizer.cxx +++ b/PMD/AliPMDDigitizer.cxx @@ -1452,9 +1452,13 @@ void AliPMDDigitizer::MeV2ADC(Float_t mev, Float_t & adc) const Float_t sigrr = 0.605016 - 0.000273*adc12bit + 6.54e-8*adc12bit*adc12bit; Float_t adcwithrr = gRandom->Gaus(adc12bit,sigrr); - if(adcwithrr < 1600.0) + if(adcwithrr < 0.) { - adc = (Float_t) adcwithrr; + adc = 0.; + } + else if(adcwithrr >= 0. && adcwithrr < 1600.0) + { + adc = adcwithrr; } else if (adcwithrr >= 1600.0) { -- 2.39.3