//loop over inputs
for(i=0; i<input; i++){
- curSDigit = (AliPHOSDigit*)((TClonesArray *)sdigArray->At(i))->At(index[i]) ;
+ if(((TClonesArray *)sdigArray->At(i))->GetEntriesFast() > index[i] )
+ curSDigit = (AliPHOSDigit*)((TClonesArray *)sdigArray->At(i))->At(index[i]) ;
+ else
+ curSDigit = 0 ;
//May be several digits will contribute from the same input
while(curSDigit && curSDigit->GetId() == absID){
//Shift primary to separate primaries belonging different inputs
*digit = *digit + *curSDigit ; //add energies
index[i]++ ;
- curSDigit = (AliPHOSDigit*)((TClonesArray *)sdigArray->At(i))->At(index[i]) ;
+ if(((TClonesArray *)sdigArray->At(i))->GetEntriesFast() > index[i] )
+ curSDigit = (AliPHOSDigit*)((TClonesArray *)sdigArray->At(i))->At(index[i]) ;
+ else
+ curSDigit = 0 ;
}
}
nextSig = 200000 ;
for(i=0; i<input; i++){
sdigits = ((TClonesArray *)sdigArray->At(i)) ;
- Int_t curNext = ((AliPHOSDigit *) sdigits->At(index[i]))->GetId() ;
+ Int_t curNext = nextSig ;
+ if(sdigits->GetEntriesFast() > index[i] ){
+ curNext = ((AliPHOSDigit *) sdigits->At(index[i]))->GetId() ;
+
+ }
if(curNext < nextSig) nextSig = curNext ;
}
}
digit = (AliPHOSDigit *) digits->At(absID-1) ;
//Add SDigits from all inputs
for(i=0; i<input; i++){
- curSDigit = (AliPHOSDigit*)((TClonesArray *)sdigArray->At(i))->At(index[i]) ;
+ if(((TClonesArray *)sdigArray->At(i))->GetEntriesFast() > index[i] )
+ curSDigit = (AliPHOSDigit*)((TClonesArray *)sdigArray->At(i))->At(index[i]) ;
+ else
+ curSDigit = 0 ;
//May be several digits will contribute from the same input
while(curSDigit && curSDigit->GetId() == absID){
//Shift primary to separate primaries belonging different inputs
//add energies
*digit = *digit + *curSDigit ;
index[i]++ ;
- curSDigit = (AliPHOSDigit*)((TClonesArray *)sdigArray->At(i))->At(index[i]) ;
+ if(((TClonesArray *)sdigArray->At(i))->GetEntriesFast() > index[i] )
+ curSDigit = (AliPHOSDigit*)((TClonesArray *)sdigArray->At(i))->At(index[i]) ;
+ else
+ curSDigit = 0 ;
}
}
//Find next signal module
for(i=0; i<input; i++){
sdigits = (TClonesArray *)sdigArray->At(i) ;
- Int_t curNext = ((AliPHOSDigit *) sdigits->At(index[i]))->GetId() ;
+ Int_t curNext = nextSig ;
+ if(sdigits->GetEntriesFast() > index[i] )
+ curNext = ((AliPHOSDigit *) sdigits->At(index[i]))->GetId() ;
if(curNext < nextSig) nextSig = curNext ;
}