From: cvetan Date: Fri, 7 Dec 2007 18:44:08 +0000 (+0000) Subject: Additional protection (Francesco) X-Git-Url: http://git.uio.no/git/?p=u%2Fmrichter%2FAliRoot.git;a=commitdiff_plain;h=93a932885a58bbff2c46507df7d6ca65ff5ab37b Additional protection (Francesco) --- diff --git a/ITS/AliITSClusterFinderV2SDD.cxx b/ITS/AliITSClusterFinderV2SDD.cxx index 083acb1753d..7f1a3e5bb32 100644 --- a/ITS/AliITSClusterFinderV2SDD.cxx +++ b/ITS/AliITSClusterFinderV2SDD.cxx @@ -270,15 +270,22 @@ void AliITSClusterFinderV2SDD::FindClustersSDD(AliITSRawStream* input, Int_t nxBins = nTimeBins+2; const Int_t kMaxBin=nzBins*(nxBins+2); AliBin *bins[2]; - AliBin *ddlbins[24]; // 12 modules (=24 hybrids) of 1 DDL read "in parallel" - for(Int_t iHyb=0;iHyb<24;iHyb++) ddlbins[iHyb]=new AliBin[kMaxBin]; + AliBin *ddlbins[kHybridsPerDDL]; // 12 modules (=24 hybrids) of 1 DDL read "in parallel" + for(Int_t iHyb=0;iHybNext()) { Int_t iModule = input->GetModuleID(); - if(iModule<0) continue; + if(iModule<0){ + AliWarning(Form("Invalid SDD module number %d\n", iModule)); + continue; + } Int_t iCarlos =((AliITSRawStreamSDD*)input)->GetCarlosId(); Int_t iSide = ((AliITSRawStreamSDD*)input)->GetChannel(); Int_t iHybrid=iCarlos*2+iSide; + if(iHybrid<0 || iHybrid>=kHybridsPerDDL){ + AliWarning(Form("Invalid SDD hybrid number %d\n", iHybrid)); + continue; + } if (input->IsCompletedModule()) { // when all data from a module was read, search for clusters clusters[iModule] = new TClonesArray("AliITSRecPoint"); @@ -308,15 +315,21 @@ void AliITSClusterFinderV2SDD::FindClustersSDD(AliITSRawStream* input, if(gain>0) charge/=gain; if(charge>=cal->GetThresholdAnode(chan)) { Int_t q=(Int_t)(charge+0.5); - Int_t iz = input->GetCoord1()+1; - Int_t index = (input->GetCoord2()+1) * nzBins + iz; - ddlbins[iHybrid][index].SetQ(q); - ddlbins[iHybrid][index].SetMask(1); - ddlbins[iHybrid][index].SetIndex(index); + Int_t iz = input->GetCoord1(); + Int_t itb = input->GetCoord2(); + Int_t index = (itb+1) * nzBins + (iz+1); + if(index