ROOT logo
/* 

  JLKlay 04-July-2008

  Example macro to store QA reference data from simulations into OCDB

  All EMCAL.QA.<runnumber>.*.root files are merged by the qas.Merge(runNumber)
  method, then stored into the local directory
  $ALICE_ROOT/EMCAL/Ref/Sim/Run0_999999999_v0_s0.root

*/


void makeEMCALQARef(Int_t runNumber = 0, Int_t viewHistos = 0) {

  // Save QA data generated by DataMaker into OCDB
  AliCDBManager * man = AliCDBManager::Instance();
  man->SetDefaultStorage("local://$ALICE_ROOT/OCDB");
  // where ?
  AliQA::SetQARefStorage("local://$ALICE_ROOT/OCDB");
  // what ?
  AliQA::SetQARefDataDirName("Sim") ; //Data, Pedestals, BlackEvent,.....

  AliQADataMakerSteer qas ;
  //Find all files of the type EMCAL.QA.<runNumber>.*.root and add
  //them together
  qas.Merge(runNumber);
  //Save to OCDB
  qas.Save2OCDB(runNumber) ;

  if(viewHistos) {
    TFile *f = new TFile("Merged.QA.0.root");
  
    if(f) {
      //Simulation hits
      TH1F* hHitE = (TH1F*)f->Get("EMCAL/Hits/hEmcalHits");
      hHitE->SetDirectory(0);
      TH1I* hHitM = (TH1I*)f->Get("EMCAL/Hits/hEmcalHitsMul");
      hHitM->SetDirectory(0);
      
      TCanvas *c1 = new TCanvas("c1_hits","Hits",20,20,800,400);
      c1->Divide(2,1);
      c1->cd(1);
      hHitE->Draw();
      c1->cd(2);
      hHitM->Draw();
      
      //Simulation SDigits
      TH1F* hSDigE = (TH1F*)f->Get("EMCAL/SDigits/hEmcalSDigits");
      hSDigE->SetDirectory(0);
      TH1I* hSDigM = (TH1I*)f->Get("EMCAL/SDigits/hEmcalSDigitsMul");
      hSDigM->SetDirectory(0);
      
      TCanvas *c2 = new TCanvas("c2_sdigits","SDigits",40,40,800,400);
      c2->Divide(2,1);
      c2->cd(1);
      hSDigE->Draw();
      c2->cd(2);
      hSDigM->Draw();
      
      //Simulation Digits
      TH1I* hDigA = (TH1I*)f->Get("EMCAL/Digits/hEmcalDigits");
      hDigA->SetDirectory(0);
      TH1I* hDigM = (TH1I*)f->Get("EMCAL/Digits/hEmcalDigitsMul");
      hDigM->SetDirectory(0);
      
      TCanvas *c3 = new TCanvas("c3_digits","Digits",60,60,800,400);
      c3->Divide(2,1);
      c3->cd(1);
      hDigA->Draw();
      c3->cd(2);
      hDigM->Draw();
      
      //RecPoints
      TH1F* hRpE = (TH1F*)f->Get("EMCAL/RecPoints/hEMCALRpE");
      hRpE->SetDirectory(0);
      TH1I* hRpM = (TH1I*)f->Get("EMCAL/RecPoints/hEMCALRpM");
      hRpM->SetDirectory(0);
      TH1I* hRpDigM = (TH1I*)f->Get("EMCAL/RecPoints/hEMCALRpDigM");
      hRpDigM->SetDirectory(0);
      
      TCanvas* c4 = new TCanvas("c4_recpoints","RecPoints",80,80,800,800);
      c4->Divide(2,2);
      c4->cd(1);
      hRpE->Draw();
      c4->cd(2);
      hRpM->Draw();
      c4->cd(3);
      hRpDigM->Draw();
      
      //ESDs
      TH1F* hCClusE = (TH1F*)f->Get("EMCAL/ESDs/hESDCaloClusterE");
      hCClusE->SetDirectory(0);
      TH1I* hCClusM = (TH1I*)f->Get("EMCAL/ESDs/hESDCaloClusterM");
      hCClusM->SetDirectory(0);
      TH1F* hCCellE = (TH1F*)f->Get("EMCAL/ESDs/hESDCaloCellE");
      hCCellE->SetDirectory(0);
      TH1I* hCCellM = (TH1I*)f->Get("EMCAL/ESDs/hESDCaloCellM");
      hCCellM->SetDirectory(0);
      
      TCanvas* c5 = new TCanvas("c5_esds","ESDs",100,100,800,800);
      c5->Divide(2,2);
      c5->cd(1);
      hCClusE->Draw();
      c5->cd(2);
      hCClusM->Draw();
      c5->cd(3);
      hCCellE->Draw();
      c5->cd(4);
      hCCellM->Draw();
    }
  }

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