From 140e5249575db4b578360a2ad004dbeaa9ae3fb8 Mon Sep 17 00:00:00 2001 From: masera Date: Mon, 10 Mar 2008 16:53:48 +0000 Subject: [PATCH] Added protection to avoid crash with Feb 2008 data (F. Prino) --- ITS/AliITSDetTypeRec.cxx | 48 ++++++++++++++++++++++------------------ ITS/AliITSDetTypeSim.cxx | 48 ++++++++++++++++++++++------------------ 2 files changed, 54 insertions(+), 42 deletions(-) diff --git a/ITS/AliITSDetTypeRec.cxx b/ITS/AliITSDetTypeRec.cxx index 28e050aa7ec..4d957bbf9c0 100644 --- a/ITS/AliITSDetTypeRec.cxx +++ b/ITS/AliITSDetTypeRec.cxx @@ -14,7 +14,7 @@ **************************************************************************/ /* - $Id:$ + $Id$ */ //////////////////////////////////////////////////////////////////////// @@ -46,6 +46,7 @@ #include "AliITSCalibrationSDD.h" #include "AliITSMapSDD.h" #include "AliITSDriftSpeedArraySDD.h" +#include "AliITSDriftSpeedSDD.h" #include "AliITSCalibrationSSD.h" #include "AliITSNoiseSSD.h" #include "AliITSGainSSD.h" @@ -504,26 +505,31 @@ Bool_t AliITSDetTypeRec::GetCalibration() { cal->SetResponse((AliITSresponse*)pSPD); SetCalibrationModel(i, cal); } - for (Int_t i=0; iAt(i); - cal->SetResponse((AliITSresponse*)pSDD); - Int_t i0=2*i; - Int_t i1=1+2*i; - AliITSDriftSpeedArraySDD* arr0 = (AliITSDriftSpeedArraySDD*) drSp->At(i0); - AliITSMapSDD* ma0 = (AliITSMapSDD*)mapAn->At(i0); - AliITSMapSDD* mt0 = (AliITSMapSDD*)mapT->At(i0); - AliITSDriftSpeedArraySDD* arr1 = (AliITSDriftSpeedArraySDD*) drSp->At(i1); - AliITSMapSDD* ma1 = (AliITSMapSDD*)mapAn->At(i1); - AliITSMapSDD* mt1 = (AliITSMapSDD*)mapT->At(i1); - cal->SetDriftSpeed(0,arr0); - cal->SetDriftSpeed(1,arr1); - cal->SetMapA(0,ma0); - cal->SetMapA(1,ma1); - cal->SetMapT(0,mt0); - cal->SetMapT(1,mt1); - fDDLMapSDD->SetDDLMap(ddlsdd); - Int_t iMod = i + fNMod[0]; - SetCalibrationModel(iMod, cal); + + fDDLMapSDD->SetDDLMap(ddlsdd); + for(Int_t iddl=0; iddlGetModuleNumber(iddl,icar); + if(iMod==-1) continue; + Int_t i=iMod-fNMod[0]; + cal = (AliITSCalibration*) calSDD->At(i); + cal->SetResponse((AliITSresponse*)pSDD); + Int_t i0=2*i; + Int_t i1=1+2*i; + AliITSDriftSpeedArraySDD* arr0 = (AliITSDriftSpeedArraySDD*) drSp->At(i0); + AliITSMapSDD* ma0 = (AliITSMapSDD*)mapAn->At(i0); + AliITSMapSDD* mt0 = (AliITSMapSDD*)mapT->At(i0); + AliITSDriftSpeedArraySDD* arr1 = (AliITSDriftSpeedArraySDD*) drSp->At(i1); + AliITSMapSDD* ma1 = (AliITSMapSDD*)mapAn->At(i1); + AliITSMapSDD* mt1 = (AliITSMapSDD*)mapT->At(i1); + cal->SetDriftSpeed(0,arr0); + cal->SetDriftSpeed(1,arr1); + cal->SetMapA(0,ma0); + cal->SetMapA(1,ma1); + cal->SetMapT(0,mt0); + cal->SetMapT(1,mt1); + SetCalibrationModel(iMod, cal); + } } for (Int_t i=0; iSetResponse(pSPD); SetCalibrationModel(i, cal); } - for (Int_t i=0; iAt(i); - cal->SetResponse(pSDD); - Int_t i0=2*i; - Int_t i1=1+2*i; - AliITSDriftSpeedArraySDD* arr0 = (AliITSDriftSpeedArraySDD*) drSp->At(i0); - AliITSMapSDD* ma0 = (AliITSMapSDD*)mapAn->At(i0); - AliITSMapSDD* mt0 = (AliITSMapSDD*)mapT->At(i0); - AliITSDriftSpeedArraySDD* arr1 = (AliITSDriftSpeedArraySDD*) drSp->At(i1); - AliITSMapSDD* ma1 = (AliITSMapSDD*)mapAn->At(i1); - AliITSMapSDD* mt1 = (AliITSMapSDD*)mapT->At(i1); - cal->SetDriftSpeed(0,arr0); - cal->SetDriftSpeed(1,arr1); - cal->SetMapA(0,ma0); - cal->SetMapA(1,ma1); - cal->SetMapT(0,mt0); - cal->SetMapT(1,mt1); - fDDLMapSDD->SetDDLMap(ddlsdd); - Int_t iMod = i + fNMod[0]; - SetCalibrationModel(iMod, cal); - } + + fDDLMapSDD->SetDDLMap(ddlsdd); + for(Int_t iddl=0; iddlGetModuleNumber(iddl,icar); + if(iMod==-1) continue; + Int_t i=iMod-fNMod[0]; + cal = (AliITSCalibration*) calSDD->At(i); + cal->SetResponse((AliITSresponse*)pSDD); + Int_t i0=2*i; + Int_t i1=1+2*i; + AliITSDriftSpeedArraySDD* arr0 = (AliITSDriftSpeedArraySDD*) drSp->At(i0); + AliITSMapSDD* ma0 = (AliITSMapSDD*)mapAn->At(i0); + AliITSMapSDD* mt0 = (AliITSMapSDD*)mapT->At(i0); + AliITSDriftSpeedArraySDD* arr1 = (AliITSDriftSpeedArraySDD*) drSp->At(i1); + AliITSMapSDD* ma1 = (AliITSMapSDD*)mapAn->At(i1); + AliITSMapSDD* mt1 = (AliITSMapSDD*)mapT->At(i1); + cal->SetDriftSpeed(0,arr0); + cal->SetDriftSpeed(1,arr1); + cal->SetMapA(0,ma0); + cal->SetMapA(1,ma1); + cal->SetMapT(0,mt0); + cal->SetMapT(1,mt1); + SetCalibrationModel(iMod, cal); + } + } for (Int_t i=0; iSetResponse((AliITSresponse*)pSSD); -- 2.39.3