ROOT logo
#if !defined( __CINT__) || defined(__MAKECINT__)


#include <Riostream.h>
#include <TSystem.h>
#include <TProfile2D.h>
#include <TCanvas.h>
#include <TH1F.h>
#include <TH2I.h>
#include <TStyle.h>
#include <TFile.h>
#include <TGrid.h>


#include "AliCDBManager.h"
#include "AliCDBStorage.h"
#include "AliCDBEntry.h"


#include "../TRD/AliTRDarrayF.h"
#include "../TRD/AliTRDCalibPadStatus.h"
#include "../TRD/Cal/AliTRDCalPadStatus.h"
#include "../TRD/Cal/AliTRDCalDet.h"
#include "../TRD/Cal/AliTRDCalPad.h"
#include "../TRD/Cal/AliTRDCalROC.h"
#include "../TRD/AliTRDcalibDB.h"


#endif


//void PlotNoiseBaseline(Int_t run, Int_t sm, Int_t det, const char * pathdatabase="local:///d/alice12/bailhache/TestShuttle/database/", const char * pathreferencefile="local:///d/alice12/bailhache/TestShuttle/reference")
//void PlotNoiseBaseline(Int_t run=34529, Int_t sm=0, Int_t det=0, const char * pathdatabase="alien://Folder=/alice/data/2008/LHC08b/OCDB/", const char * pathreferencedatabase="alien://Folder=/alice/data/2008/LHC08b/Reference/")
//void PlotNoiseBaseline(Int_t run=1, Int_t sm=0, Int_t det=0, const char * pathdatabase="local:///d/alice12/bailhache/AliAnalysisTask/v4-13-Head/SHUTTLE/TestShuttle/TestCDB/", const char * pathreferencedatabase="local:///d/alice12/bailhache/AliAnalysisTask/v4-13-Head/SHUTTLE/TestShuttle/TestReference/")
void AliTRDplotNoiseBaseline(Int_t run=34529, Int_t sm=0, Int_t det=0, const char * pathdatabase="alien://Folder=/alice/data/2008/LHC08b/OCDB/", const char * pathreferencedatabase="alien://Folder=/alice/data/2008/LHC08b/Reference/")
{

  //TGrid::Connect("alien://",0,0,"t");

  AliCDBManager *CDB = AliCDBManager::Instance();
  CDB->SetDefaultStorage("local://$ALICE_ROOT/OCDB"); 
  CDB->SetSpecificStorage("TRD/Calib/PadNoise",pathdatabase);
  CDB->SetSpecificStorage("TRD/Calib/DetNoise",pathdatabase);
  CDB->SetSpecificStorage("TRD/Calib/PadStatus",pathdatabase);
  CDB->SetRun(run);

  AliTRDcalibDB *cal = AliTRDcalibDB::Instance();

  //const AliTRDCalDet *u = cal->GetNoiseDet();

  AliTRDCalDet *u = new AliTRDCalDet("u","u");
  for(Int_t k = 0; k < 540; k++){
    u->SetValue(k,10.0);
  }

  //Style
  //************************
  gStyle->SetPalette(1);
  gStyle->SetOptStat(1111);
  gStyle->SetPadBorderMode(0);
  gStyle->SetCanvasColor(10);
  gStyle->SetPadLeftMargin(0.13);
  gStyle->SetPadRightMargin(0.13);

  //Build the Cal Pad
  //********************************
  Int_t smi = sm*30;
  AliTRDCalPad *ki = new AliTRDCalPad("testnoise","testnoise");
  for(Int_t k = 0; k < 540; k++){
    ki->SetCalROC(k,(AliTRDCalROC *) cal->GetNoiseROC(k));   
  }

  // padstatus 2D
  Int_t smn = (Int_t) det/30;
  if((smn==0) || (smn==1) || (smn==2) || (smn==9) || (smn==10) || (smn==11)) smn = 1;
  if((smn==3) || (smn==4) || (smn==5) || (smn==12) || (smn==13) || (smn==14)) smn = 2;
  if((smn==6) || (smn==7) || (smn==8) || (smn==15) || (smn==16) || (smn==17)) smn = 3;
  TString name("TRD/DAQData/PadStatus");
  name += smn;
  //name += 3;
  AliCDBEntry *entrypadstatus = AliCDBManager::Instance()->Get("TRD/Calib/PadStatus",run);
  if(!entrypadstatus) return;
  AliTRDCalPadStatus *lo = (AliTRDCalPadStatus *)entrypadstatus->GetObject();
  AliCDBEntry *entryo = AliCDBManager::Instance()->GetStorage(pathreferencedatabase)->Get(name, run);
  if(!entryo) return;
  AliTRDCalibPadStatus *calpad = (AliTRDCalibPadStatus *) entryo->GetObject();
  if(!calpad) return;
 

  // Plot
  //***********
 
  
  // noise 2D
  TCanvas *cnoise = new TCanvas((const char*)"noise1",(const char*)"noise1",50,50,600,800);
  cnoise->Divide(3,2);
  cnoise->cd(1);
  ((TH2F *)ki->MakeHisto2DSmPl(sm,0,u,0,0.0,3.5,-1))->Draw("colz");
  cnoise->cd(2);
  ((TH2F *)ki->MakeHisto2DSmPl(sm,1,u,0,0.0,3.5,-1))->Draw("colz");
  cnoise->cd(3);
  ((TH2F *)ki->MakeHisto2DSmPl(sm,2,u,0,0.0,3.5,-1))->Draw("colz");
  cnoise->cd(4);
  ((TH2F *)ki->MakeHisto2DSmPl(sm,3,u,0,0.0,3.5,-1))->Draw("colz");
  cnoise->cd(5);
  ((TH2F *)ki->MakeHisto2DSmPl(sm,4,u,0,0.0,3.5,-1))->Draw("colz");
  cnoise->cd(6);
  ((TH2F *)ki->MakeHisto2DSmPl(sm,5,u,0,0.0,3.5,-1))->Draw("colz");
  

  // Pad Status 
  TCanvas *cpadstatus = new TCanvas((const char*)"padstatus",(const char*)"padstatus",50,50,600,800);
  cpadstatus->Divide(3,2);
  cpadstatus->cd(1);
  ((TH2F *)lo->MakeHisto2DSmPl(sm,0))->Draw("colz");
  cpadstatus->cd(2);
  ((TH2F *)lo->MakeHisto2DSmPl(sm,1))->Draw("colz");
  cpadstatus->cd(3);
  ((TH2F *)lo->MakeHisto2DSmPl(sm,2))->Draw("colz");
  cpadstatus->cd(4);
  ((TH2F *)lo->MakeHisto2DSmPl(sm,3))->Draw("colz");
  cpadstatus->cd(5);
  ((TH2F *)lo->MakeHisto2DSmPl(sm,4))->Draw("colz");
  cpadstatus->cd(6);
  ((TH2F *)lo->MakeHisto2DSmPl(sm,5))->Draw("colz");

    
 
  // reference data 

  TCanvas *cpoui = new TCanvas((const char*)"cpoui",(const char*)"cpoui",50,50,600,800);
  cpoui->cd();
  ((TH2F *)calpad->GetHisto(det))->Draw("lego");


  AliTRDCalROC *ouip = calpad->GetCalRocMean(det);
  TCanvas *cpouilo = new TCanvas((const char*)"cpouilo",(const char*)"cpouilo",50,50,600,800);
  cpouilo->Divide(2,1);
  cpouilo->cd(1);
  ((TH1F *)ouip->MakeHisto1D(8.5,10.5,-1,10.0))->Draw();
  //((TH1F *)ouip->MakeHisto1D(0.85,1.05,-1))->Draw();
  cpouilo->cd(2);
  ((TH2F *)ouip->MakeHisto2D(8.5,10.5,-1,10.0))->Draw("colz");
  //((TH2F *)ouip->MakeHisto2D(0.85,1.05,-1))->Draw("colz");

  AliTRDCalROC *ouiphy = calpad->GetCalRocRMS(det);
  TCanvas *cpouiloh = new TCanvas((const char*)"cpouiloh",(const char*)"cpouiloh",50,50,600,800);
  cpouiloh->Divide(2,1);
  cpouiloh->cd(1);
  ((TH1F *)ouiphy->MakeHisto1D(0.1,4.5,-1,10.0))->Draw();
  //((TH1F *)ouiphy->MakeHisto1D(0.01,0.45,-1))->Draw();
  cpouiloh->cd(2);
  ((TH2F *)ouiphy->MakeHisto2D(0.1,4.5,-1,10.0))->Draw("colz");
  //((TH2F *)ouiphy->MakeHisto2D(0.01,0.45,-1))->Draw("colz");
  
    

 
}
 AliTRDplotNoiseBaseline.C:1
 AliTRDplotNoiseBaseline.C:2
 AliTRDplotNoiseBaseline.C:3
 AliTRDplotNoiseBaseline.C:4
 AliTRDplotNoiseBaseline.C:5
 AliTRDplotNoiseBaseline.C:6
 AliTRDplotNoiseBaseline.C:7
 AliTRDplotNoiseBaseline.C:8
 AliTRDplotNoiseBaseline.C:9
 AliTRDplotNoiseBaseline.C:10
 AliTRDplotNoiseBaseline.C:11
 AliTRDplotNoiseBaseline.C:12
 AliTRDplotNoiseBaseline.C:13
 AliTRDplotNoiseBaseline.C:14
 AliTRDplotNoiseBaseline.C:15
 AliTRDplotNoiseBaseline.C:16
 AliTRDplotNoiseBaseline.C:17
 AliTRDplotNoiseBaseline.C:18
 AliTRDplotNoiseBaseline.C:19
 AliTRDplotNoiseBaseline.C:20
 AliTRDplotNoiseBaseline.C:21
 AliTRDplotNoiseBaseline.C:22
 AliTRDplotNoiseBaseline.C:23
 AliTRDplotNoiseBaseline.C:24
 AliTRDplotNoiseBaseline.C:25
 AliTRDplotNoiseBaseline.C:26
 AliTRDplotNoiseBaseline.C:27
 AliTRDplotNoiseBaseline.C:28
 AliTRDplotNoiseBaseline.C:29
 AliTRDplotNoiseBaseline.C:30
 AliTRDplotNoiseBaseline.C:31
 AliTRDplotNoiseBaseline.C:32
 AliTRDplotNoiseBaseline.C:33
 AliTRDplotNoiseBaseline.C:34
 AliTRDplotNoiseBaseline.C:35
 AliTRDplotNoiseBaseline.C:36
 AliTRDplotNoiseBaseline.C:37
 AliTRDplotNoiseBaseline.C:38
 AliTRDplotNoiseBaseline.C:39
 AliTRDplotNoiseBaseline.C:40
 AliTRDplotNoiseBaseline.C:41
 AliTRDplotNoiseBaseline.C:42
 AliTRDplotNoiseBaseline.C:43
 AliTRDplotNoiseBaseline.C:44
 AliTRDplotNoiseBaseline.C:45
 AliTRDplotNoiseBaseline.C:46
 AliTRDplotNoiseBaseline.C:47
 AliTRDplotNoiseBaseline.C:48
 AliTRDplotNoiseBaseline.C:49
 AliTRDplotNoiseBaseline.C:50
 AliTRDplotNoiseBaseline.C:51
 AliTRDplotNoiseBaseline.C:52
 AliTRDplotNoiseBaseline.C:53
 AliTRDplotNoiseBaseline.C:54
 AliTRDplotNoiseBaseline.C:55
 AliTRDplotNoiseBaseline.C:56
 AliTRDplotNoiseBaseline.C:57
 AliTRDplotNoiseBaseline.C:58
 AliTRDplotNoiseBaseline.C:59
 AliTRDplotNoiseBaseline.C:60
 AliTRDplotNoiseBaseline.C:61
 AliTRDplotNoiseBaseline.C:62
 AliTRDplotNoiseBaseline.C:63
 AliTRDplotNoiseBaseline.C:64
 AliTRDplotNoiseBaseline.C:65
 AliTRDplotNoiseBaseline.C:66
 AliTRDplotNoiseBaseline.C:67
 AliTRDplotNoiseBaseline.C:68
 AliTRDplotNoiseBaseline.C:69
 AliTRDplotNoiseBaseline.C:70
 AliTRDplotNoiseBaseline.C:71
 AliTRDplotNoiseBaseline.C:72
 AliTRDplotNoiseBaseline.C:73
 AliTRDplotNoiseBaseline.C:74
 AliTRDplotNoiseBaseline.C:75
 AliTRDplotNoiseBaseline.C:76
 AliTRDplotNoiseBaseline.C:77
 AliTRDplotNoiseBaseline.C:78
 AliTRDplotNoiseBaseline.C:79
 AliTRDplotNoiseBaseline.C:80
 AliTRDplotNoiseBaseline.C:81
 AliTRDplotNoiseBaseline.C:82
 AliTRDplotNoiseBaseline.C:83
 AliTRDplotNoiseBaseline.C:84
 AliTRDplotNoiseBaseline.C:85
 AliTRDplotNoiseBaseline.C:86
 AliTRDplotNoiseBaseline.C:87
 AliTRDplotNoiseBaseline.C:88
 AliTRDplotNoiseBaseline.C:89
 AliTRDplotNoiseBaseline.C:90
 AliTRDplotNoiseBaseline.C:91
 AliTRDplotNoiseBaseline.C:92
 AliTRDplotNoiseBaseline.C:93
 AliTRDplotNoiseBaseline.C:94
 AliTRDplotNoiseBaseline.C:95
 AliTRDplotNoiseBaseline.C:96
 AliTRDplotNoiseBaseline.C:97
 AliTRDplotNoiseBaseline.C:98
 AliTRDplotNoiseBaseline.C:99
 AliTRDplotNoiseBaseline.C:100
 AliTRDplotNoiseBaseline.C:101
 AliTRDplotNoiseBaseline.C:102
 AliTRDplotNoiseBaseline.C:103
 AliTRDplotNoiseBaseline.C:104
 AliTRDplotNoiseBaseline.C:105
 AliTRDplotNoiseBaseline.C:106
 AliTRDplotNoiseBaseline.C:107
 AliTRDplotNoiseBaseline.C:108
 AliTRDplotNoiseBaseline.C:109
 AliTRDplotNoiseBaseline.C:110
 AliTRDplotNoiseBaseline.C:111
 AliTRDplotNoiseBaseline.C:112
 AliTRDplotNoiseBaseline.C:113
 AliTRDplotNoiseBaseline.C:114
 AliTRDplotNoiseBaseline.C:115
 AliTRDplotNoiseBaseline.C:116
 AliTRDplotNoiseBaseline.C:117
 AliTRDplotNoiseBaseline.C:118
 AliTRDplotNoiseBaseline.C:119
 AliTRDplotNoiseBaseline.C:120
 AliTRDplotNoiseBaseline.C:121
 AliTRDplotNoiseBaseline.C:122
 AliTRDplotNoiseBaseline.C:123
 AliTRDplotNoiseBaseline.C:124
 AliTRDplotNoiseBaseline.C:125
 AliTRDplotNoiseBaseline.C:126
 AliTRDplotNoiseBaseline.C:127
 AliTRDplotNoiseBaseline.C:128
 AliTRDplotNoiseBaseline.C:129
 AliTRDplotNoiseBaseline.C:130
 AliTRDplotNoiseBaseline.C:131
 AliTRDplotNoiseBaseline.C:132
 AliTRDplotNoiseBaseline.C:133
 AliTRDplotNoiseBaseline.C:134
 AliTRDplotNoiseBaseline.C:135
 AliTRDplotNoiseBaseline.C:136
 AliTRDplotNoiseBaseline.C:137
 AliTRDplotNoiseBaseline.C:138
 AliTRDplotNoiseBaseline.C:139
 AliTRDplotNoiseBaseline.C:140
 AliTRDplotNoiseBaseline.C:141
 AliTRDplotNoiseBaseline.C:142
 AliTRDplotNoiseBaseline.C:143
 AliTRDplotNoiseBaseline.C:144
 AliTRDplotNoiseBaseline.C:145
 AliTRDplotNoiseBaseline.C:146
 AliTRDplotNoiseBaseline.C:147
 AliTRDplotNoiseBaseline.C:148
 AliTRDplotNoiseBaseline.C:149
 AliTRDplotNoiseBaseline.C:150
 AliTRDplotNoiseBaseline.C:151
 AliTRDplotNoiseBaseline.C:152
 AliTRDplotNoiseBaseline.C:153
 AliTRDplotNoiseBaseline.C:154
 AliTRDplotNoiseBaseline.C:155
 AliTRDplotNoiseBaseline.C:156
 AliTRDplotNoiseBaseline.C:157
 AliTRDplotNoiseBaseline.C:158
 AliTRDplotNoiseBaseline.C:159
 AliTRDplotNoiseBaseline.C:160