]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - ITS/AliITSDetTypeRec.cxx
including a function to set CPV method
[u/mrichter/AliRoot.git] / ITS / AliITSDetTypeRec.cxx
index fdc2c101f6876c42988293583e19968222ac2845..228ff0ff6f178215a64321d66715bc72f40b43f2 100644 (file)
@@ -76,6 +76,7 @@ fSegmentation(0),
 fCalibration(0),
 fSSDCalibration(0),
 fSPDDead(0),
+fSPDSparseDead(0),
 fTriggerConditions(0),
 fDigits(0),
 fFOSignals(0),
@@ -105,7 +106,6 @@ fFastOrFiredMap(1200){
   fNMod[0] = fgkDefaultNModulesSPD;
   fNMod[1] = fgkDefaultNModulesSDD;
   fNMod[2] = fgkDefaultNModulesSSD;
-  fRecPoints = new TClonesArray("AliITSRecPoint",3000);
   fNRecPoints = 0;
   
   
@@ -120,6 +120,7 @@ fSegmentation(rec.fSegmentation),
 fCalibration(rec.fCalibration),
 fSSDCalibration(rec.fSSDCalibration),
 fSPDDead(rec.fSPDDead),
+fSPDSparseDead(rec.fSPDSparseDead),
 fTriggerConditions(rec.fTriggerConditions),
 fDigits(rec.fDigits),
 fFOSignals(rec.fFOSignals),
@@ -153,18 +154,15 @@ AliITSDetTypeRec::~AliITSDetTypeRec(){
   if(fReconstruction){
     fReconstruction->Delete();
     delete fReconstruction;
-    fReconstruction = 0;
   }
   if(fSegmentation){
     fSegmentation->Delete();
     delete fSegmentation;
-    fSegmentation = 0;
   }
   if(fCalibration){
     if(!(AliCDBManager::Instance()->GetCacheFlag())) {
       fCalibration->Delete();
       delete fCalibration;
-      fCalibration = 0;
       if(fRespSDD) delete fRespSDD;
       if(fDDLMapSDD) delete fDDLMapSDD;
    }
@@ -172,32 +170,33 @@ AliITSDetTypeRec::~AliITSDetTypeRec(){
   if(fSSDCalibration){
     if(!(AliCDBManager::Instance()->GetCacheFlag())) {
       delete fSSDCalibration;
-      fSSDCalibration = NULL;
     }
   }
    if(fSPDDead){
     if(!(AliCDBManager::Instance()->GetCacheFlag())) {
       fSPDDead->Delete();
       delete fSPDDead;
-      fSPDDead = 0;
+    }
+  } 
+     if(fSPDSparseDead){
+    if(!(AliCDBManager::Instance()->GetCacheFlag())) {
+      fSPDSparseDead->Delete();
+      delete fSPDSparseDead;
     }
   } 
   if(fTriggerConditions){
     if(!(AliCDBManager::Instance()->GetCacheFlag())) {
       fTriggerConditions->Delete();
       delete fTriggerConditions;
-      fTriggerConditions = 0;
     }
   } 
   if(fDigits){
     fDigits->Delete();
     delete fDigits;
-    fDigits=0;
   }
   if(fRecPoints){
     fRecPoints->Delete();
     delete fRecPoints;
-    fRecPoints=0;
   }
   delete [] fNMod;
   
@@ -277,6 +276,20 @@ void AliITSDetTypeRec::SetSPDDeadModel(Int_t iMod, AliITSCalibration *cal){
   fSPDDead->AddAt(cal,iMod);
 }
 //_______________________________________________________________________
+void AliITSDetTypeRec::SetSPDSparseDeadModel(Int_t iMod, AliITSCalibration *cal){
+
+  //Set dead pixel info for the SPD ACTIVE module iMod
+  if (fSPDSparseDead==0) {
+    fSPDSparseDead = new TObjArray(fgkDefaultNModulesSPD);
+    fSPDSparseDead->SetOwner(kTRUE);
+    fSPDSparseDead->Clear();
+  }
+
+  if (fSPDSparseDead->At(iMod) != 0)
+    delete (AliITSCalibration*) fSPDSparseDead->At(iMod);
+  fSPDSparseDead->AddAt(cal,iMod);
+}
+//_______________________________________________________________________
 AliITSCalibration* AliITSDetTypeRec::GetCalibrationModel(Int_t iMod) const {
   
   //Get calibration model for module type
@@ -307,6 +320,17 @@ AliITSCalibration* AliITSDetTypeRec::GetSPDDeadModel(Int_t iMod) const {
   return (AliITSCalibration*)fSPDDead->At(iMod);
 }
 //_______________________________________________________________________
+AliITSCalibration* AliITSDetTypeRec::GetSPDSparseDeadModel(Int_t iMod) const {
+  
+  //Get SPD dead for module iMod
+  
+  if(fSPDSparseDead==0) {
+    AliWarning("fSPDSparseDead is 0!");
+    return 0; 
+  }  
+  return (AliITSCalibration*)fSPDSparseDead->At(iMod);
+}
+//_______________________________________________________________________
 AliITSTriggerConditions* AliITSDetTypeRec::GetTriggerConditions() const {
   //Get Pixel Trigger Conditions
   if (fTriggerConditions==0) {
@@ -452,6 +476,7 @@ Bool_t AliITSDetTypeRec::GetCalibrationSPD(Bool_t cacheStatus) {
  
   AliCDBEntry *noisySPD = AliCDBManager::Instance()->Get("ITS/Calib/SPDNoisy");
   AliCDBEntry *deadSPD = AliCDBManager::Instance()->Get("ITS/Calib/SPDDead");
+  AliCDBEntry *deadSparseSPD = AliCDBManager::Instance()->Get("ITS/Calib/SPDSparseDead");
   AliCDBEntry *pitCond = AliCDBManager::Instance()->Get("TRIGGER/SPD/PITConditions");
   if(!noisySPD || !deadSPD || !pitCond ){
     AliFatal("SPD Calibration object retrieval failed! ");
@@ -466,6 +491,11 @@ Bool_t AliITSDetTypeRec::GetCalibrationSPD(Bool_t cacheStatus) {
   if (!cacheStatus) deadSPD->SetObject(NULL);
   deadSPD->SetOwner(kTRUE);
 
+  TObjArray *calSparseDeadSPD = (TObjArray*) deadSparseSPD->GetObject();
+  if (!cacheStatus) deadSparseSPD->SetObject(NULL);
+  deadSparseSPD->SetOwner(kTRUE);
+
+  
   AliITSTriggerConditions *calPitCond = (AliITSTriggerConditions*) pitCond->GetObject();
   if (!cacheStatus) pitCond->SetObject(NULL);
   pitCond->SetOwner(kTRUE);
@@ -473,9 +503,10 @@ Bool_t AliITSDetTypeRec::GetCalibrationSPD(Bool_t cacheStatus) {
   if(!cacheStatus){
     delete noisySPD;
     delete deadSPD;
+    delete deadSparseSPD;
     delete pitCond;
   }
-  if ((!calNoisySPD) || (!calDeadSPD) || (!calPitCond)){ 
+  if ((!calNoisySPD) || (!calDeadSPD) || (!calSparseDeadSPD) || (!calPitCond)){ 
     AliWarning("Can not get SPD calibration from calibration database !");
     return kFALSE;
   }
@@ -488,6 +519,8 @@ Bool_t AliITSDetTypeRec::GetCalibrationSPD(Bool_t cacheStatus) {
     SetCalibrationModel(i, cal);
     cal = (AliITSCalibration*) calDeadSPD->At(i);
     SetSPDDeadModel(i, cal);
+    cal = (AliITSCalibration*) calSparseDeadSPD->At(i);
+    SetSPDSparseDeadModel(i, cal);
   }
   fTriggerConditions = calPitCond;
 
@@ -822,7 +855,6 @@ void AliITSDetTypeRec::AddRecPoint(const AliITSRecPoint &r){
     //      none.
     // Return:
     //      none.
-
     TClonesArray &lrecp = *fRecPoints;
     new(lrecp[fNRecPoints++]) AliITSRecPoint(r);
 }
@@ -1011,7 +1043,7 @@ void AliITSDetTypeRec::ReadOldSSDNoise(const TObjArray *array,
   const Int_t fgkSSDPSIDESTRIPSPERMODULE = 768;
 
   Int_t gNMod = array->GetEntries();
-  cout<<"Converting old calibration object for noise..."<<endl;
+  AliInfo("Converting old calibration object for noise...\n");
 
   //NOISE
   Double_t noise = 0.0;
@@ -1032,7 +1064,7 @@ void AliITSDetTypeRec::ReadOldSSDBadChannels(const TObjArray *array,
                                             AliITSBadChannelsSSDv2 *badChannelsSSD) {
   //Reads the old SSD calibration object and converts it to the new format
   Int_t gNMod = array->GetEntries();
-  cout<<"Converting old calibration object for bad channels..."<<endl;
+  AliInfo("Converting old calibration object for bad channels...");
   for (Int_t iModule = 0; iModule < gNMod; iModule++) {
     //for (Int_t iModule = 0; iModule < 1; iModule++) {
     AliITSBadChannelsSSD *bad = (AliITSBadChannelsSSD*) (array->At(iModule));
@@ -1057,7 +1089,7 @@ void AliITSDetTypeRec::ReadOldSSDGain(const TObjArray *array,
   //Reads the old SSD calibration object and converts it to the new format
 
   Int_t gNMod = array->GetEntries();
-  cout<<"Converting old calibration object for gain..."<<endl;
+  AliInfo("Converting old calibration object for gain...\n");
 
   //GAIN
   for (Int_t iModule = 0; iModule < gNMod; iModule++) {