Implements daqDA_DB_storeFile function to store file in the detector DB
authormasera <masera@f7af4fe6-9843-0410-8265-dc069ae4e863>
Wed, 27 Feb 2008 09:36:01 +0000 (09:36 +0000)
committermasera <masera@f7af4fe6-9843-0410-8265-dc069ae4e863>
Wed, 27 Feb 2008 09:36:01 +0000 (09:36 +0000)
ITS/AliITSDetTypeRec.cxx
ITS/AliITStrackerMI.cxx
ITS/ITSSSDPEDda.cxx

index 9be191d..b999146 100644 (file)
@@ -43,6 +43,7 @@
 #include "AliITSRawClusterSDD.h"
 #include "AliITSRawClusterSSD.h"
 #include "AliITSRecPoint.h"
+#include "AliITSCalibrationSPD.h"
 #include "AliITSCalibrationSDD.h"
 #include "AliITSMapSDD.h"
 #include "AliITSDriftSpeedArraySDD.h"
@@ -395,6 +396,7 @@ Bool_t AliITSDetTypeRec::GetCalibration() {
   }
 
   AliCDBEntry *entrySPD = AliCDBManager::Instance()->Get("ITS/Calib/SPDDead");
+  AliCDBEntry *entrySPDn = AliCDBManager::Instance()->Get("ITS/Calib/SPDNoisy");
   AliCDBEntry *entrySDD = AliCDBManager::Instance()->Get("ITS/Calib/CalibSDD");
  
  //  AliCDBEntry *entrySSD = AliCDBManager::Instance()->Get("ITS/Calib/CalibSSD");
@@ -411,7 +413,7 @@ Bool_t AliITSDetTypeRec::GetCalibration() {
   AliCDBEntry *mapASDD = AliCDBManager::Instance()->Get("ITS/Calib/MapsAnodeSDD");
   AliCDBEntry *mapTSDD = AliCDBManager::Instance()->Get("ITS/Calib/MapsTimeSDD");
 
-  if(!entrySPD || !entrySDD || !entryNoiseSSD || !entryGainSSD || 
+  if(!entrySPD || !entrySPDn || !entrySDD || !entryNoiseSSD || !entryGainSSD || 
      !entryPedestalSSD || !entryBadChannelsSSD || 
      !entry2SPD || !entry2SDD || !entry2SSD || !drSpSDD || !ddlMapSDD || !mapASDD || !mapTSDD){
     AliFatal("Calibration object retrieval failed! ");
@@ -421,6 +423,10 @@ Bool_t AliITSDetTypeRec::GetCalibration() {
   TObjArray *calSPD = (TObjArray *)entrySPD->GetObject();
   if(!cacheStatus)entrySPD->SetObject(NULL);
   entrySPD->SetOwner(kTRUE);
+
+  TObjArray *calSPDn = (TObjArray *)entrySPDn->GetObject();
+  if(!cacheStatus)entrySPDn->SetObject(NULL);
+  entrySPDn->SetOwner(kTRUE);
  
   AliITSresponseSPD *pSPD = (AliITSresponseSPD*)entry2SPD->GetObject();
   if(!cacheStatus)entry2SPD->SetObject(NULL);
@@ -473,6 +479,7 @@ Bool_t AliITSDetTypeRec::GetCalibration() {
   // DB entries are deleted. In this way metadeta objects are deleted as well
   if(!cacheStatus){
     delete entrySPD;
+    delete entrySPDn;
     delete entrySDD;
     delete entryNoiseSSD;
     delete entryPedestalSSD;
@@ -487,23 +494,36 @@ Bool_t AliITSDetTypeRec::GetCalibration() {
     delete ddlMapSDD;
   }
 
-  if ((!pSPD)||(!pSDD)||(!pSSD) || (!calSPD) || (!calSDD) || (!drSp) || (!ddlsdd)
+  if ((!pSPD)||(!pSDD)||(!pSSD) || (!calSPD) || !(calSPDn) || (!calSDD) || (!drSp) || (!ddlsdd)
       || (!mapAn) || (!mapT) || (!noiseSSD)|| (!gainSSD)|| (!badchannelsSSD)) {
     AliWarning("Can not get calibration from calibration database !");
     return kFALSE;
   }
 
   fNMod[0] = calSPD->GetEntries();
+  if(fNMod[0] != calSPDn->GetEntries())AliFatal(Form("Different number of calibration objects in SPD dead (%d ) and SPD noisy (%d)\n",fNMod[0],calSPDn->GetEntries()));
   fNMod[1] = calSDD->GetEntries();
   fNMod[2] = noiseSSD->GetEntries();
   AliInfo(Form("%i SPD, %i SDD and %i SSD in calibration database",
               fNMod[0], fNMod[1], fNMod[2]));
-  AliITSCalibration* cal;
+  AliITSCalibrationSPD* calD;
+  AliITSCalibrationSPD* calN;
   for (Int_t i=0; i<fNMod[0]; i++) {
-    cal = (AliITSCalibration*) calSPD->At(i);
-    cal->SetResponse((AliITSresponse*)pSPD);
-    SetCalibrationModel(i, cal);
+    calD = (AliITSCalibrationSPD*) calSPD->At(i);
+    printf("SPD module %d - Number of dead pixels %d \n",i,calD->GetNrBad());
+    calN = (AliITSCalibrationSPD*) calSPDn->At(i);
+    printf("SPD module %d - Number of noisy pixels %d \n",i,calN->GetNrBad());
+    for(Int_t ii=0; ii<calN->GetNrBad();ii++){
+      calD->AddBad(calN->GetBadColAt(ii),calN->GetBadRowAt(ii));
+    }
+    calD->SetResponse((AliITSresponse*)pSPD);
+    SetCalibrationModel(i, calD);
+    printf("SPD module %d - Number of bad pixels %d \n",i,calD->GetNrBad());
   }
+  calSPDn->Delete();
+  delete calSPDn;
+  calSPDn = NULL;
+  AliITSCalibration* cal;
   for (Int_t i=0; i<fNMod[1]; i++) {
     cal = (AliITSCalibration*) calSDD->At(i);
     cal->SetResponse((AliITSresponse*)pSDD);
index b6cdb69..b5a2e4c 100644 (file)
@@ -4444,6 +4444,7 @@ void AliITStrackerMI::BuildMaterialLUT(TString material) {
       point2[2] = z;
       AliTracker::MeanMaterialBudget(point1,point2,mparam);
       for(Int_t j=0;j<5;j++) param[j]+=mparam[j];
+      printf("%f %f %f %f %f %f %f %f %f\n",rmin[imat],rmax[imat],phi,z,mparam[0],mparam[1],mparam[2],mparam[3],mparam[4]); 
     }
     for(Int_t j=0;j<5;j++) param[j]/=(Float_t)n;
     if(imat<=5) {
index b69e3bc..951cc08 100644 (file)
@@ -25,7 +25,7 @@ using namespace std;
 int main( int argc, char** argv )
 {
   AliITSHandleDaSSD  *ssddaldc;
-  TString             feefname, cmddbsave;
+  TString             feefname, fcdbsave;
   Int_t               status;
   Char_t             *dafname = NULL;
 
@@ -66,6 +66,7 @@ int main( int argc, char** argv )
     status = daqDA_FES_storeFile(dafname, "DASSD_DB_results");
     if (status) fprintf(stderr, "Failed to export file : %d\n", status);
   } else cerr << "Error saving DA data to the file! Probably $DA_TEST_DIR defined incorrectly!" << endl;
+
   feefname.Form("%s/ssddaldc_%i_%i.root", ".", ssddaldc->GetLdcId(), ssddaldc->GetRunId());
   cout << "Saving feessdda data in " << feefname << endl;
   TFile *fileRun = new TFile (feefname.Data(),"RECREATE");
@@ -79,15 +80,12 @@ int main( int argc, char** argv )
   fileRun->Close();
   delete fileRun;
 
-  if (getenv("DATE_DB_DIR")) {
-    cmddbsave.Form("$DATE_DB_DIR/daqDetDB_store ssddaldc_%i.root %s", ssddaldc->GetLdcId(), feefname.Data());
-    status = system(cmddbsave.Data());
-    if (status) fprintf(stderr, "Failed to export file to the detector db: %d, %s \n",status, cmddbsave.Data());
-    cmddbsave.Form("$DATE_DB_DIR/daqDetDB_store ssddaldc_%i_%i.root %s", 
-                                 ssddaldc->GetLdcId(), ssddaldc->GetRunId(), feefname.Data());
-    status = system(cmddbsave.Data());
-    if (status) fprintf(stderr, "Failed to export file to the detector db: %d, %s \n",status, cmddbsave.Data());
-  } else cerr << "Error main(): $DATE_DB_DIR is not defined!" << endl;
+  fcdbsave.Form("ssddaldc_%i.root", ssddaldc->GetLdcId());
+  status = daqDA_DB_storeFile(feefname.Data(), fcdbsave.Data());
+  if (status) fprintf(stderr, "Failed to export file %s to the detector db: %d, %s \n", feefname.Data(), status, fcdbsave.Data());
+  fcdbsave.Form("ssddaldc_%i_%i.root", ssddaldc->GetLdcId(), ssddaldc->GetRunId());
+  status = daqDA_DB_storeFile(feefname.Data(), fcdbsave.Data());
+  if (status) fprintf(stderr, "Failed to export file %s to the detector db: %d, %s \n", feefname.Data(), status, fcdbsave.Data());
 
   delete ssddaldc;
   daqDA_progressReport(100);