+ // Check status of golden modules
+ Int_t idGoldenMod=-1, idGoldenSide=-1;
+ Int_t idGoldenModList[5]={319,319,321,243,243};
+ Int_t idGoldenSideList[5]={0,1,0,0,1};
+ AliITSDriftSpeedSDD* refSpeed=0x0;
+ for(Int_t iGold=0; iGold<5; iGold++){
+ Int_t indexG=2*(idGoldenModList[iGold]-240)+idGoldenSideList[iGold];
+ if(modSet[indexG]){
+ idGoldenMod=idGoldenModList[iGold];
+ idGoldenSide=idGoldenSideList[iGold];
+ AliITSDriftSpeedArraySDD* arrRef=(AliITSDriftSpeedArraySDD*)vdrift.At(indexG);
+ refSpeed=arrRef->GetDriftSpeedObject(0);
+ break;
+ }
+ }
+ TList* correctionList=0x0;
+ if(idGoldenMod>=240 && idGoldenSide>=0){
+ // Get rescaling corrections from OCDB
+ AliCDBEntry* entry = GetFromOCDB("Calib", "RescaleDriftSpeedSDD");
+ if(!entry){
+ Log("RescaleDriftSpeedSDD file not found in OCDB.");
+ }
+ TList* fullList=(TList*)entry->GetObject();
+ if(!fullList){
+ Log("TList object not found in file.");
+ }
+ TString listName=Form("RefMod%d_Side%d",idGoldenMod,idGoldenSide);
+ correctionList=(TList*)fullList->FindObject(listName.Data());
+ if(!correctionList){
+ Log(Form("TList for requested module %d side %d not found",idGoldenMod,idGoldenSide));
+ }else{
+ Log(Form("Use module %d side %d as reference module",idGoldenMod,idGoldenSide));
+ if(refSpeed){
+ Log(Form("Drift speed params for golden module = %g %g %g %g",refSpeed->GetDriftSpeedParameter(0),refSpeed->GetDriftSpeedParameter(1),refSpeed->GetDriftSpeedParameter(2),refSpeed->GetDriftSpeedParameter(3)));
+ }else{
+ AliError("No drift speed object for golden module");
+ }
+ }
+ }
+