ROOT logo

void TestPreprocessorSDD(Char_t *optRunType="PULSER"){
  // macro to Test SDD preprocessor
  // needs:
  // - 4 tar files with simulated output of PULSER DA
  // - 4 tar files with simulated output of INJECTOR DA
  // - 1 root file with simulated output of DCS
  // all these files can be found on 
  gSystem->Load("$ALICE_ROOT/SHUTTLE/TestShuttle/libTestShuttle.so");

  // The parameters are run, startTime, endTime
  AliTestShuttle* shuttle = new AliTestShuttle(7, 0, 1);


  AliTestShuttle::SetMainCDB("local:///home/prino/alice/SDD/Calibration/preprocessor/OCDB");
  AliTestShuttle::SetMainRefStorage("local:///home/prino/alice/SDD/Calibration/preprocessor/OCDB");

  printf("Test OCDB storage Uri: %s\n", AliShuttleInterface::GetMainCDB().Data());
  printf("Test Reference storage Uri: %s\n", AliShuttleInterface::GetMainRefStorage().Data());

  // DCS input file
  TFile *fil=new TFile("DCSAliasMap_3h_SIM.root");
  TMap* dcsAliasMap =(TMap*)fil->Get("DCSAliasMap");
  shuttle->SetDCSInput(dcsAliasMap);

  // DA input files
  gSystem->Exec("rm -v OCDB/ITS/DCS/DataSDD/Run*.root");
  if(optRunType=="PULSER"){
    shuttle->AddInputFile(AliShuttleInterface::kDAQ, "SDD","SDD_Calib","LDC1","SDDbase_LDC1.tar");
    shuttle->AddInputFile(AliShuttleInterface::kDAQ, "SDD","SDD_Calib","LDC2","SDDbase_LDC2.tar");
    shuttle->AddInputFile(AliShuttleInterface::kDAQ, "SDD","SDD_Calib","LDC3","SDDbase_LDC3.tar");
    shuttle->AddInputFile(AliShuttleInterface::kDAQ, "SDD","SDD_Calib","LDC4","SDDbase_LDC4.tar");
    shuttle->AddInputFile(AliShuttleInterface::kDAQ, "SDD","SDD_Calib","LDC5","SDDbase_LDC5.tar");
    shuttle->AddInputFile(AliShuttleInterface::kDAQ, "SDD","SDD_Calib","LDC6","SDDbase_LDC6.tar");
    gSystem->Exec("rm -v OCDB/ITS/Calib/CalibSDD/Run*.root");
  }else if(optRunType=="INJECTOR"){ 
    shuttle->AddInputFile(AliShuttleInterface::kDAQ, "SDD","SDD_Injec","LDC1","SDDinj_LDC1.tar");
    shuttle->AddInputFile(AliShuttleInterface::kDAQ, "SDD","SDD_Injec","LDC2","SDDinj_LDC2.tar");
    shuttle->AddInputFile(AliShuttleInterface::kDAQ, "SDD","SDD_Injec","LDC3","SDDinj_LDC3.tar");
    shuttle->AddInputFile(AliShuttleInterface::kDAQ, "SDD","SDD_Injec","LDC4","SDDinj_LDC4.tar");
    shuttle->AddInputFile(AliShuttleInterface::kDAQ, "SDD","SDD_Injec","LDC5","SDDinj_LDC5.tar");
    shuttle->AddInputFile(AliShuttleInterface::kDAQ, "SDD","SDD_Injec","LDC6","SDDinj_LDC6.tar");
    gSystem->Exec("rm -v OCDB/ITS/Calib/DriftSpeedSDD/Run*.root");
  }

  shuttle->SetInputRunType(optRunType);

  shuttle->AddInputRunParameter("totalEvents", "30000");
  shuttle->AddInputRunParameter("NumberOfGDCs", "15");
  cout<<"Input run parameters added"<<endl;


  Bool_t hltStatus=kFALSE;
  //  shuttle->SetInputHLTStatus(hltStatus);


  // Call preprocessor
  AliPreprocessor* test = new AliITSPreprocessorSDD(shuttle);
  printf("Call SDD Preprocessor\n");
  shuttle->Process();
  printf("Preprocessor OK\n");

  // Check the file which should have been created
  Char_t theDir[100];
  Bool_t doCheck=kFALSE;
  if(optRunType=="PULSER"){
    gSystem->Exec("rm SDDbase_ddl*.data");
    gSystem->Exec("rm fee.conf");
    sprintf(theDir,"ITS/Calib/CalibSDD");
    doCheck=kTRUE;
  }else if(optRunType=="INJECTOR"){ 
    gSystem->Exec("rm SDDinj_ddl*.data");
    sprintf(theDir,"ITS/Calib/DriftSpeedSDD");
    doCheck=kTRUE;
  } 

  if(doCheck){
    AliCDBEntry* chkEntry = AliCDBManager::Instance()->GetStorage(AliShuttleInterface::GetMainCDB())->Get(theDir, 7);
    if (!chkEntry){
      printf("The Calib file is not there. Something went wrong.\n");
    }else{
      chkEntry->PrintMetaData();
      TObjArray* arr=(TObjArray*)chkEntry->GetObject();
      arr->Inspect();
    }
  }

  sprintf(theDir,"ITS/DCS/DataSDD");
  AliCDBEntry* chkEntryDCS = AliCDBManager::Instance()->GetStorage(AliShuttleInterface::GetMainCDB())
  			->Get(theDir, 7);
  if (!chkEntryDCS){
    printf("The DCS data points file is not there. Something went wrong.\n");
  }else{
    chkEntryDCS->PrintMetaData();
    TObjArray* arrdcs=(TObjArray*)chkEntryDCS->GetObject();
    arrdcs->Inspect();
  }
}


 TestPreprocessorSDD.C:1
 TestPreprocessorSDD.C:2
 TestPreprocessorSDD.C:3
 TestPreprocessorSDD.C:4
 TestPreprocessorSDD.C:5
 TestPreprocessorSDD.C:6
 TestPreprocessorSDD.C:7
 TestPreprocessorSDD.C:8
 TestPreprocessorSDD.C:9
 TestPreprocessorSDD.C:10
 TestPreprocessorSDD.C:11
 TestPreprocessorSDD.C:12
 TestPreprocessorSDD.C:13
 TestPreprocessorSDD.C:14
 TestPreprocessorSDD.C:15
 TestPreprocessorSDD.C:16
 TestPreprocessorSDD.C:17
 TestPreprocessorSDD.C:18
 TestPreprocessorSDD.C:19
 TestPreprocessorSDD.C:20
 TestPreprocessorSDD.C:21
 TestPreprocessorSDD.C:22
 TestPreprocessorSDD.C:23
 TestPreprocessorSDD.C:24
 TestPreprocessorSDD.C:25
 TestPreprocessorSDD.C:26
 TestPreprocessorSDD.C:27
 TestPreprocessorSDD.C:28
 TestPreprocessorSDD.C:29
 TestPreprocessorSDD.C:30
 TestPreprocessorSDD.C:31
 TestPreprocessorSDD.C:32
 TestPreprocessorSDD.C:33
 TestPreprocessorSDD.C:34
 TestPreprocessorSDD.C:35
 TestPreprocessorSDD.C:36
 TestPreprocessorSDD.C:37
 TestPreprocessorSDD.C:38
 TestPreprocessorSDD.C:39
 TestPreprocessorSDD.C:40
 TestPreprocessorSDD.C:41
 TestPreprocessorSDD.C:42
 TestPreprocessorSDD.C:43
 TestPreprocessorSDD.C:44
 TestPreprocessorSDD.C:45
 TestPreprocessorSDD.C:46
 TestPreprocessorSDD.C:47
 TestPreprocessorSDD.C:48
 TestPreprocessorSDD.C:49
 TestPreprocessorSDD.C:50
 TestPreprocessorSDD.C:51
 TestPreprocessorSDD.C:52
 TestPreprocessorSDD.C:53
 TestPreprocessorSDD.C:54
 TestPreprocessorSDD.C:55
 TestPreprocessorSDD.C:56
 TestPreprocessorSDD.C:57
 TestPreprocessorSDD.C:58
 TestPreprocessorSDD.C:59
 TestPreprocessorSDD.C:60
 TestPreprocessorSDD.C:61
 TestPreprocessorSDD.C:62
 TestPreprocessorSDD.C:63
 TestPreprocessorSDD.C:64
 TestPreprocessorSDD.C:65
 TestPreprocessorSDD.C:66
 TestPreprocessorSDD.C:67
 TestPreprocessorSDD.C:68
 TestPreprocessorSDD.C:69
 TestPreprocessorSDD.C:70
 TestPreprocessorSDD.C:71
 TestPreprocessorSDD.C:72
 TestPreprocessorSDD.C:73
 TestPreprocessorSDD.C:74
 TestPreprocessorSDD.C:75
 TestPreprocessorSDD.C:76
 TestPreprocessorSDD.C:77
 TestPreprocessorSDD.C:78
 TestPreprocessorSDD.C:79
 TestPreprocessorSDD.C:80
 TestPreprocessorSDD.C:81
 TestPreprocessorSDD.C:82
 TestPreprocessorSDD.C:83
 TestPreprocessorSDD.C:84
 TestPreprocessorSDD.C:85
 TestPreprocessorSDD.C:86
 TestPreprocessorSDD.C:87
 TestPreprocessorSDD.C:88
 TestPreprocessorSDD.C:89
 TestPreprocessorSDD.C:90
 TestPreprocessorSDD.C:91
 TestPreprocessorSDD.C:92
 TestPreprocessorSDD.C:93
 TestPreprocessorSDD.C:94
 TestPreprocessorSDD.C:95
 TestPreprocessorSDD.C:96
 TestPreprocessorSDD.C:97
 TestPreprocessorSDD.C:98
 TestPreprocessorSDD.C:99
 TestPreprocessorSDD.C:100
 TestPreprocessorSDD.C:101