From 91e6e2a097b6f3531776ef4d1cf52bb3dbb8961f Mon Sep 17 00:00:00 2001 From: basanta Date: Sat, 28 Jun 2008 11:20:52 +0000 Subject: [PATCH] fix for the corrupt data --- PMD/AliPMDClusteringV1.cxx | 26 ++++++++++++++++---------- PMD/AliPMDDDLRawData.cxx | 8 ++++++++ PMD/AliPMDRawStream.cxx | 7 +++++++ 3 files changed, 31 insertions(+), 10 deletions(-) diff --git a/PMD/AliPMDClusteringV1.cxx b/PMD/AliPMDClusteringV1.cxx index 7639487b458..c02599f2a0b 100644 --- a/PMD/AliPMDClusteringV1.cxx +++ b/PMD/AliPMDClusteringV1.cxx @@ -154,19 +154,16 @@ void AliPMDClusteringV1::DoClust(Int_t idet, Int_t ismn, i = id+(ndimYr/2-1)-(jd/2); Int_t ij = i + j*kNDIMX; - // BKN Int_t ij = i + j*ndimXr; if (ismn < 12) { - //edepcell[ij] = celladc[jd][id]; cellenergy[ij] = celladc[jd][id];//Ajay - fCellTrNo[i][j] = jd*10000+id; // for association + fCellTrNo[i][j] = jd*10000+id; // for association } else if (ismn >= 12 && ismn <= 23) { - //edepcell[ij] = celladc[id][jd]; cellenergy[ij] = celladc[id][jd];//Ajay - fCellTrNo[i][j] = id*10000+jd; // for association + fCellTrNo[i][j] = id*10000+jd; // for association } } } @@ -261,7 +258,7 @@ void AliPMDClusteringV1::DoClust(Int_t idet, Int_t ismn, pmdcont->Add(pmdcl); } - fPMDclucont->Clear(); + fPMDclucont->Delete(); } // ------------------------------------------------------------------------ // @@ -402,10 +399,12 @@ void AliPMDClusteringV1::RefClust(Int_t incr, Double_t edepcell[]) Int_t *cellCount = 0x0; Int_t **cellXY = 0x0; - const Int_t kdim = 4500; + const Int_t kdim = 4609; Int_t i12; - Int_t i, j, k, i1, i2, id, icl, itest,ihld, ig, nsupcl,clno; + Int_t i, j, k, i1, i2, id, icl, itest; +// Int_t ihld; + Int_t ig, nsupcl,clno; Int_t t[kdim]; Int_t ncl[kdim], iord[kdim], lev1[kdim], lev2[kdim]; Int_t clxy[15]; @@ -561,7 +560,8 @@ void AliPMDClusteringV1::RefClust(Int_t incr, Double_t edepcell[]) } // arranging cells within supercluster in decreasing order - + +/* for(j = 1;j <= ncl[i]; j++) { itest = 0; @@ -579,6 +579,12 @@ void AliPMDClusteringV1::RefClust(Int_t incr, Double_t edepcell[]) } } } +*/ + + Int_t imaxdim = ncl[i] + 1; + TMath::Sort(imaxdim,z,iord);// order the data + + // compute the number of Gaussians and their centers ( first // guess ) // centers must be separated by cells having smaller ener. dep. @@ -754,7 +760,7 @@ void AliPMDClusteringV1::GaussFit(Int_t ncell, Int_t nclust, Double_t &x, // Does gaussian fitting // - const Int_t kdim = 4500; + const Int_t kdim = 4609; Int_t i, j, i1, i2, novar, idd, jj; Int_t neib[kdim][50]; diff --git a/PMD/AliPMDDDLRawData.cxx b/PMD/AliPMDDDLRawData.cxx index 8f3beb8a346..8883182dddb 100644 --- a/PMD/AliPMDDDLRawData.cxx +++ b/PMD/AliPMDDDLRawData.cxx @@ -205,6 +205,9 @@ void AliPMDDDLRawData::WritePMDRawData(TTree *treeD) } } + dspBlockARDL += 50; + dspBlockBRDL += 50; + // Start writing the DDL file AliPMDBlockHeader blHeader; @@ -222,6 +225,9 @@ 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 @@ -315,6 +321,8 @@ 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]; diff --git a/PMD/AliPMDRawStream.cxx b/PMD/AliPMDRawStream.cxx index 12d2a98b512..46fd6ab2bb9 100644 --- a/PMD/AliPMDRawStream.cxx +++ b/PMD/AliPMDRawStream.cxx @@ -188,6 +188,8 @@ Int_t AliPMDRawStream::DdlData(TObjArray *pmdddlcont) Int_t dspRawDataLength = 0; Int_t iwordddl = 2; + + for (Int_t iblock = 0; iblock < 2; iblock++) { ilowLimit = iuppLimit; @@ -244,6 +246,8 @@ Int_t AliPMDRawStream::DdlData(TObjArray *pmdddlcont) Int_t rawdatalength = pbusHeader.GetRawDataLength(); Int_t pbusid = pbusHeader.GetPatchBusId(); + if (pbusid < 0 || pbusid > 50) return -1; + ilowLimit = iuppLimit; iuppLimit = ilowLimit + rawdatalength; @@ -268,6 +272,7 @@ Int_t AliPMDRawStream::DdlData(TObjArray *pmdddlcont) { AliWarning("ComputeParity:: Parity Error"); fRawReader->AddMajorErrorLog(kParityError); + return -1; } ConvertDDL2SMN(iddl, imodule, ismn, idet); @@ -315,6 +320,8 @@ Int_t AliPMDRawStream::DdlData(TObjArray *pmdddlcont) } // end of DSP + + } // end of BLOCK return iddl; -- 2.39.3