- }
- Int_t nn1=0;
- Int_t nn2=0;
- for (Int_t i=0; i<fNMod[1]; i++) {
- cal = (AliITSCalibration*) calSDD->At(i);
- cal->SetResponse(pSDD);
- AliITSMapSDD* m1 = (AliITSMapSDD*)mapAn->At(nn1);nn1++;
- AliITSMapSDD* m2 = (AliITSMapSDD*)mapAn->At(nn1);nn1++;
- AliITSMapSDD* m3 = (AliITSMapSDD*)mapT->At(nn2);nn2++;
- AliITSMapSDD* m4 = (AliITSMapSDD*)mapT->At(nn2);nn2++;
- cal->SetMapA(0,m1);
- cal->SetMapA(1,m2);
- cal->SetMapT(0,m3);
- cal->SetMapT(1,m4);
- Int_t iMod = i + fNMod[0];
- SetCalibrationModel(iMod, cal);
- }
- for (Int_t i=0; i<fNMod[2]; i++) {
- AliITSCalibrationSSD *calibSSD = new AliITSCalibrationSSD();
- calibSSD->SetResponse((AliITSresponse*)pSSD);
-
- AliITSNoiseSSD *noise = (AliITSNoiseSSD*) (noiseSSD->At(i));
- calibSSD->SetNoise(noise);
- AliITSGainSSD *gain = (AliITSGainSSD*) (gainSSD->At(i));
- calibSSD->SetGain(gain);
- AliITSBadChannelsSSD *bad = (AliITSBadChannelsSSD*) (badchannelsSSD->At(i));
- calibSSD->SetBadChannels(bad);
+ cal = (AliITSCalibration*) calNoisySPD->At(i);
+ SetSPDNoisyModel(i, cal);
+ }
+
+ fFOGenerator.SetEfficiency(calFoEffSPD); // this cal object is used only by the generator
+ fFOGenerator.SetNoise(calFoNoiSPD); // this cal object is used only by the generator
+
+ fDDLMapSDD->SetDDLMap(ddlsdd);
+ Bool_t oldMapFormat=kFALSE;
+ TObject* objmap=(TObject*)mapT->At(0);
+ TString cname(objmap->ClassName());
+ if(cname.CompareTo("AliITSMapSDD")==0){
+ oldMapFormat=kTRUE;
+ AliInfo("SDD Maps converted to new format");
+ }
+
+ for (Int_t i=0; i<fgkDefaultNModulesSDD; i++) {
+ Int_t iddl,icarlos;
+ Int_t iMod = i + fgkDefaultNModulesSPD;
+ fDDLMapSDD->FindInDDLMap(iMod,iddl,icarlos);
+ if(iddl<0){
+ AliITSCalibrationSDD* calsdddead=new AliITSCalibrationSDD();
+ calsdddead->SetBad();
+ AliITSDriftSpeedSDD* driftspdef = new AliITSDriftSpeedSDD();
+ AliITSDriftSpeedArraySDD* arrdrsp=new AliITSDriftSpeedArraySDD(1);
+ arrdrsp->AddDriftSpeed(driftspdef);
+ calsdddead->SetDriftSpeed(0,arrdrsp);
+ calsdddead->SetDriftSpeed(1,arrdrsp);
+ SetCalibrationModel(iMod, calsdddead);
+ AliWarning(Form("SDD module %d not present in DDL map: set it as dead",iMod));
+ }else{
+ cal = (AliITSCalibration*) calSDD->At(i);
+ Int_t i0=2*i;
+ Int_t i1=1+2*i;
+ AliITSDriftSpeedArraySDD* arr0 = (AliITSDriftSpeedArraySDD*) drSp->At(i0);
+ AliITSDriftSpeedArraySDD* arr1 = (AliITSDriftSpeedArraySDD*) drSp->At(i1);
+
+ AliITSCorrMapSDD* mt0 = 0;
+ AliITSCorrMapSDD* mt1 = 0;
+ if(oldMapFormat){
+ AliITSMapSDD* oldmap0=(AliITSMapSDD*)mapT->At(i0);
+ AliITSMapSDD* oldmap1=(AliITSMapSDD*)mapT->At(i1);
+ mt0=oldmap0->ConvertToNewFormat();
+ mt1=oldmap1->ConvertToNewFormat();
+ }else{
+ mt0=(AliITSCorrMapSDD*)mapT->At(i0);
+ mt1=(AliITSCorrMapSDD*)mapT->At(i1);
+ }
+ cal->SetDriftSpeed(0,arr0);
+ cal->SetDriftSpeed(1,arr1);
+ cal->SetMapT(0,mt0);
+ cal->SetMapT(1,mt1);
+ SetCalibrationModel(iMod, cal);
+ }
+ }
+
+ fSSDCalibration->SetNoise(noiseSSD);
+ fSSDCalibration->SetGain(gainSSD);
+ fSSDCalibration->SetBadChannels(badChannelsSSD);
+ //fSSDCalibration->FillBadChipMap();
+