]> git.uio.no Git - u/mrichter/AliRoot.git/commitdiff
Fix for bug number 66155
authormasera <masera@f7af4fe6-9843-0410-8265-dc069ae4e863>
Wed, 21 Apr 2010 17:16:56 +0000 (17:16 +0000)
committermasera <masera@f7af4fe6-9843-0410-8265-dc069ae4e863>
Wed, 21 Apr 2010 17:16:56 +0000 (17:16 +0000)
ITS/AliITSCalibrationSSD.cxx
ITS/AliITSDetTypeRec.cxx
ITS/AliITSDetTypeRec.h

index 967818940eebcbcdb7443dcb56a402dd2f1cbf05..bdcc8faa56cfe81b9a807864cba4fde1e0a3f8c1 100644 (file)
@@ -84,6 +84,10 @@ AliITSCalibrationSSD::~AliITSCalibrationSSD(){
     // destructor
  
     delete [] fDetPar;
+    if(fNoise)delete fNoise;
+    if(fPedestal)delete fPedestal;
+    if(fGain)delete fGain;
+    if(fBadChannels)delete fBadChannels;
 }
 //______________________________________________________________________
 void AliITSCalibrationSSD::SetDetParam(Double_t  *par){
index c92d970a1f2fd64399d070d9228560bf337f6531..82ff297010cccd93e5f1c229e771b7aed2437b06 100644 (file)
@@ -167,7 +167,12 @@ AliITSDetTypeRec::~AliITSDetTypeRec(){
       if(fDDLMapSDD) delete fDDLMapSDD;
    }
   }
-  if(fSSDCalibration) delete fSSDCalibration;
+  if(fSSDCalibration){
+    if(!(AliCDBManager::Instance()->GetCacheFlag())) {
+      delete fSSDCalibration;
+      fSSDCalibration = NULL;
+    }
+  }
    if(fSPDDead){
     if(!(AliCDBManager::Instance()->GetCacheFlag())) {
       fSPDDead->Delete();
@@ -615,11 +620,12 @@ Bool_t AliITSDetTypeRec::GetCalibrationSSD(Bool_t cacheStatus) {
   }    
 
   TObject *emptyssd = 0; TString ssdobjectname;
-  AliITSNoiseSSDv2 *noiseSSD = new AliITSNoiseSSDv2();  
+  AliITSNoiseSSDv2 *noiseSSD = NULL; 
   emptyssd = (TObject *)entryNoiseSSD->GetObject();
   ssdobjectname = emptyssd->GetName();
   if(ssdobjectname=="TObjArray") {
     TObjArray *noiseSSDOld = (TObjArray *)entryNoiseSSD->GetObject();
+    noiseSSD = new AliITSNoiseSSDv2(); 
     ReadOldSSDNoise(noiseSSDOld, noiseSSD);
   }
   else if(ssdobjectname=="AliITSNoiseSSDv2")
@@ -627,11 +633,12 @@ Bool_t AliITSDetTypeRec::GetCalibrationSSD(Bool_t cacheStatus) {
   if(!cacheStatus)entryNoiseSSD->SetObject(NULL);
   entryNoiseSSD->SetOwner(kTRUE);
 
-  AliITSGainSSDv2 *gainSSD = new AliITSGainSSDv2();
+  AliITSGainSSDv2 *gainSSD = NULL;;
   emptyssd = (TObject *)entryGainSSD->GetObject();
   ssdobjectname = emptyssd->GetName();
   if(ssdobjectname=="Gain") {
     TObjArray *gainSSDOld = (TObjArray *)entryGainSSD->GetObject();
+    gainSSD = new AliITSGainSSDv2();
     ReadOldSSDGain(gainSSDOld, gainSSD);
   }
   else if(ssdobjectname=="AliITSGainSSDv2")
@@ -639,11 +646,12 @@ Bool_t AliITSDetTypeRec::GetCalibrationSSD(Bool_t cacheStatus) {
   if(!cacheStatus)entryGainSSD->SetObject(NULL);
   entryGainSSD->SetOwner(kTRUE);
 
-  AliITSBadChannelsSSDv2 *badChannelsSSD = new AliITSBadChannelsSSDv2();
+  AliITSBadChannelsSSDv2 *badChannelsSSD = NULL;
   emptyssd = (TObject *)entryBadChannelsSSD->GetObject();
   ssdobjectname = emptyssd->GetName();
   if(ssdobjectname=="TObjArray") {
     TObjArray *badChannelsSSDOld = (TObjArray *)entryBadChannelsSSD->GetObject();
+    badChannelsSSD = new AliITSBadChannelsSSDv2();
     ReadOldSSDBadChannels(badChannelsSSDOld, badChannelsSSD);
   }
   else if(ssdobjectname=="AliITSBadChannelsSSDv2")
index a01dcd075952bf92905c1cac4244fe05ab7efb44..40fb6b054de8420f528620d3c4663048a6530219 100644 (file)
@@ -52,9 +52,6 @@ class AliITSDetTypeRec : public TObject {
     virtual void SetSPDDeadModel(Int_t iMod, AliITSCalibration *cal);
     virtual void SetReconstructionModel(Int_t dettype, AliITSClusterFinder *rec);
     virtual Bool_t GetCalibration();
-    virtual Bool_t GetCalibrationSPD(Bool_t cacheStatus);
-    virtual Bool_t GetCalibrationSDD(Bool_t cacheStatus);
-    virtual Bool_t GetCalibrationSSD(Bool_t cacheStatus);
     virtual AliITSsegmentation* GetSegmentationModel(Int_t dettype) const;
     virtual AliITSCalibration* GetCalibrationModel(Int_t iMod) const;
     virtual AliITSCalibration* GetSPDDeadModel(Int_t iMod) const;
@@ -118,6 +115,9 @@ class AliITSDetTypeRec : public TObject {
                               AliITSBadChannelsSSDv2 *badChannelsSSD);
     void ReadOldSSDGain(const TObjArray *array, 
                        AliITSGainSSDv2 *gainSSD);
+    virtual Bool_t GetCalibrationSPD(Bool_t cacheStatus);
+    virtual Bool_t GetCalibrationSDD(Bool_t cacheStatus);
+    virtual Bool_t GetCalibrationSSD(Bool_t cacheStatus);
 
     //    virtual void SetLoader(AliITSLoader* loader) {fLoader=loader;}
     static const Int_t fgkNdettypes;          // number of det. types