#include "AliITSCalibrationSDD.h"
#include "AliITSMapSDD.h"
#include "AliITSDriftSpeedArraySDD.h"
+#include "AliITSDriftSpeedSDD.h"
#include "AliITSCalibrationSSD.h"
#include "AliITSNoiseSSD.h"
#include "AliITSGainSSD.h"
#include "AliITSBadChannelsSSD.h"
+#include "AliITSPedestalSSD.h"
#include "AliITSsegmentationSPD.h"
#include "AliITSsegmentationSDD.h"
#include "AliITSsegmentationSSD.h"
for(Int_t dettype=0;dettype<fgkNdettypes;dettype++){
if(dettype==0){
- seg = new AliITSsegmentationSPD(GetITSgeom());
+ seg = new AliITSsegmentationSPD();
SetSegmentationModel(dettype,seg);
SetDigitClassName(dettype,"AliITSdigitSPD");
SetClusterClassName(dettype,"AliITSRawClusterSPD");
}
if(dettype==1){
AliITSCalibrationSDD* res=(AliITSCalibrationSDD*) GetCalibrationModel(GetITSgeom()->GetStartSDD());
- seg = new AliITSsegmentationSDD(GetITSgeom());
+ seg = new AliITSsegmentationSDD();
SetSegmentationModel(dettype,seg);
const char *kopt = ((AliITSresponseSDD*)res->GetResponse())->ZeroSuppOption();
- if((!strstr(kopt,"2D"))&&(!strstr(kopt,"1D"))) SetDigitClassName(dettype,"AliITSdigit");
+ if(!strstr(kopt,"ZS")) SetDigitClassName(dettype,"AliITSdigit");
else SetDigitClassName(dettype,"AliITSdigitSDD");
SetClusterClassName(dettype,"AliITSRawClusterSDD");
}
if(dettype==2){
- AliITSsegmentationSSD* seg2 = new AliITSsegmentationSSD(GetITSgeom());
+ AliITSsegmentationSSD* seg2 = new AliITSsegmentationSSD();
seg2->SetAngles(0.0075,0.0275); // strip angels rad P and N side.
seg2->SetAnglesLay5(0.0075,0.0275); // strip angels rad P and N side.
seg2->SetAnglesLay6(0.0275,0.0075); // strip angels rad P and N side.
fCalibration->Clear();
}
- AliCDBEntry *entrySPD = AliCDBManager::Instance()->Get("ITS/Calib/SPDDead");
+ // dead pixel are not used for local reconstruction
+ AliCDBEntry *entrySPD = AliCDBManager::Instance()->Get("ITS/Calib/SPDNoisy");
AliCDBEntry *entrySDD = AliCDBManager::Instance()->Get("ITS/Calib/CalibSDD");
// AliCDBEntry *entrySSD = AliCDBManager::Instance()->Get("ITS/Calib/CalibSSD");
AliCDBEntry *entryNoiseSSD = AliCDBManager::Instance()->Get("ITS/Calib/NoiseSSD");
+ AliCDBEntry *entryPedestalSSD = AliCDBManager::Instance()->Get("ITS/Calib/PedestalSSD");
AliCDBEntry *entryGainSSD = AliCDBManager::Instance()->Get("ITS/Calib/GainSSD");
AliCDBEntry *entryBadChannelsSSD = AliCDBManager::Instance()->Get("ITS/Calib/BadChannelsSSD");
AliCDBEntry *mapASDD = AliCDBManager::Instance()->Get("ITS/Calib/MapsAnodeSDD");
AliCDBEntry *mapTSDD = AliCDBManager::Instance()->Get("ITS/Calib/MapsTimeSDD");
- if(!entrySPD || !entrySDD || !entryNoiseSSD || !entryGainSSD || !entryBadChannelsSSD ||
+ if(!entrySPD || !entrySDD || !entryNoiseSSD || !entryGainSSD ||
+ !entryPedestalSSD || !entryBadChannelsSSD ||
!entry2SPD || !entry2SDD || !entry2SSD || !drSpSDD || !ddlMapSDD || !mapASDD || !mapTSDD){
AliFatal("Calibration object retrieval failed! ");
return kFALSE;
if(!cacheStatus)entryNoiseSSD->SetObject(NULL);
entryNoiseSSD->SetOwner(kTRUE);
+ TObjArray *pedestalSSD = (TObjArray *)entryPedestalSSD->GetObject();
+ if(!cacheStatus)entryPedestalSSD->SetObject(NULL);
+ entryPedestalSSD->SetOwner(kTRUE);
+
TObjArray *gainSSD = (TObjArray *)entryGainSSD->GetObject();
if(!cacheStatus)entryGainSSD->SetObject(NULL);
entryGainSSD->SetOwner(kTRUE);
delete entrySPD;
delete entrySDD;
delete entryNoiseSSD;
+ delete entryPedestalSSD;
delete entryGainSSD;
delete entryBadChannelsSSD;
delete entry2SPD;
cal->SetResponse((AliITSresponse*)pSPD);
SetCalibrationModel(i, cal);
}
- for (Int_t i=0; i<fNMod[1]; i++) {
- 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);
- fDDLMapSDD->SetDDLMap(ddlsdd);
- Int_t iMod = i + fNMod[0];
- SetCalibrationModel(iMod, cal);
+
+ fDDLMapSDD->SetDDLMap(ddlsdd);
+ for(Int_t iddl=0; iddl<AliITSDDLModuleMapSDD::GetNDDLs(); iddl++){
+ for(Int_t icar=0; icar<AliITSDDLModuleMapSDD::GetNModPerDDL();icar++){
+ Int_t iMod=fDDLMapSDD->GetModuleNumber(iddl,icar);
+ if(iMod==-1) continue;
+ Int_t i=iMod - fgkDefaultNModulesSPD;
+ 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; i<fNMod[2]; i++) {
AliITSNoiseSSD *noise = (AliITSNoiseSSD*) (noiseSSD->At(i));
calibSSD->SetNoise(noise);
+ AliITSPedestalSSD *pedestal = (AliITSPedestalSSD*) (pedestalSSD->At(i));
+ calibSSD->SetPedestal(pedestal);
AliITSGainSSD *gain = (AliITSGainSSD*) (gainSSD->At(i));
calibSSD->SetGain(gain);
AliITSBadChannelsSSD *bad = (AliITSBadChannelsSSD*) (badchannelsSSD->At(i));
calibSSD->SetBadChannels(bad);
- Int_t iMod = i + fNMod[0] + fNMod[1];
+ Int_t iMod = i + fgkDefaultNModulesSPD + fgkDefaultNModulesSDD;
SetCalibrationModel(iMod, calibSSD);
}