ROOT logo
/*
  //Make default Aliases for guiTime:
  // 1. Run the guiTime
  //  guiTime
  // 2. Define aliases
  .L $ALICE_ROOT/TPC/CalibMacros/guiAlias.C
  guiAlias();
  // 3. Use aliases inside the guiTime
  //    You can use them as custom cuts
  //
  // browse special streamers
  gSystem->AddIncludePath("-I$ALICE_ROOT/TPC/macros");
  gROOT->LoadMacro("$ALICE_ROOT/TPC/macros/AliXRDPROOFtoolkit.cxx+")
  AliXRDPROOFtoolkit tool;
  TChain * chainDCS = tool.MakeChainRandom("time.txt","dcs",0,10000);
  TChain * chainCTP = tool.MakeChainRandom("time.txt","ctp",0,10000);
  TChain * chainAlign = tool.MakeChainRandom("time.txt","align",0,10000);

*/

TObjArray *picArray = new TObjArray;  

TTree * guiTree =  guiTime->GetChain();
void SetStyle();
void guiAlias(){
  guiTree =  guiTime->GetChain();
  MakeAliasCE(4);
  MakeAliasLT(4);
  MakeAliasCosmic(4);   
  SetGoofieAlias();
  SetStyle();
}

void SetStyle(){ 
  Float_t mx0=0.15, mx1=0.05, my0=0.15, my1=0.1;
  guiTime->GetCanvas()->SetTicks(1,1);
  guiTime->GetCanvas()->SetMargin(mx0,mx1,my0,my1);
  gStyle->SetTitleYSize(0.03);
  gStyle->SetTitleXSize(0.03);
  gStyle->SetTitleXOffset(2);
  gStyle->SetTitleYOffset(6);
}

void MakeAliasCE(Double_t deltaT){
  //
  // Aliases cuts for CE
  //
  guiTree->SetAlias("ceCut0", "tdriftCE.fElements[72]>100 && tdriftCE.fElements[73]>100");
  guiTree->SetAlias("dceCutTime", Form("sqrt(dcea^2+dcec^2)<%f",deltaT*3600));
  guiTree->SetAlias("ceCut","dceCutTime&&ceCut0");
};

void MakeAliasLT(Double_t deltaT){
  guiTree->SetAlias("ltCut", Form("sqrt(dla^2+dlc^2)<%f", deltaT*3600)); 
}

void MakeAliasCosmic(Double_t deltaT){
  guiTree->SetAlias("cosmicCut", Form("abs(dcosmic)<%f", deltaT*3600));
  guiTree->SetAlias("itsCut", Form("((dits!=0)&&abs(dits)<%f)", deltaT*3600));
}


void SetGoofieAlias(){
  //
  // goofie aliases
  //
  guiTree->SetAlias("ptrelG","(goofie.fElements[17]/0.3426-1)");
  guiTree->SetAlias("vdriftGN","goofie.fElements[3]/(1+ptrelG)");
  guiTree->SetAlias("goCut","goofie.fElements[3]>0");
  //
}
//
// Make default plots
//


void DrawLaserDrift(){
  //
  // laser calibration default picture
  // Data are filtered 

  //
  // draw laser residuals A side -C side - when it is defined
  //
  TH1 * his=0;
  guiTree->Draw("CEgrDriftA-CEgrDriftC","CEgrDriftA>0&&CEgrDriftC>0");
  his=(TH1*)htemp->Clone();
  his->SetDirectory(0);
  his->SetTitle("#Delta CE time");
  his->SetName("#Delta CE time");
  his->GetXaxis()->SetTitle("#Delta T (time bin)");
  his->Draw();
  picArray->AddLast(his);
  //
  // laser drift CE correction
  //
  guiTree->Draw("100*(vdriftCEA-vdriftCEC)","CEgrDriftA>0&&CEgrDriftC>0");
  his=(TH1*)htemp->Clone();
  his->SetDirectory(0);
  his->SetTitle("#Delta CE drift");
  his->SetName("#Delta CE drift");
  his->GetXaxis()->SetTitle("#Delta v_{drift} (%) (laser A side - C side)");
  his->Draw();
  picArray->AddLast(his);
  //
  // laser track drift correction
  //
  guiTree->Draw("100*(vdriftLTA-vdriftLTC)","abs(dlaserA)<500&&abs(dlaserC)<500&&vdriftLTA!=0&&vdriftLTC!=0");
  his=(TH1*)htemp->Clone();
  his->SetDirectory(0);
  his->SetTitle("#Delta LaserTracks drift");
  his->SetName("#Delta LaserTracks drift");
  his->GetXaxis()->SetTitle("#Delta v_{drift} (%) (laser A side - C side)");
  his->Draw();
  picArray->AddLast(his);
  //
  // laser track drift correction: time
  //
  guiTree->Draw("100*(vdriftLTA-vdriftLTC):time","abs(dlaserA)<500&&abs(dlaserC)<500&&vdriftLTA!=0&&vdriftLTC!=0","colz");
  his=(TH1*)htemp->Clone();  
  his->SetDirectory(0);
  his->Draw();
  his->SetTitle("#Delta LaserTracks drift");
  his->SetName("#Delta LaserTracks drift");
  his->GetYaxis()->SetTitle("#Delta v_{drift} (%) (laser A side - C side)");
  his->GetXaxis()->SetTitle("time");
  his->GetXaxis()->SetTimeDisplay(kTRUE);
  his->Draw();
  picArray->AddLast(his);
  //
  //
  //
  guiTree->Draw("250*(vlaserA0-vlaserC0)","abs(dlaserA)<500&&abs(dlaserC)<500&&vdriftLTA!=0&&vdriftLTC!=0");
  his=(TH1*)htemp->Clone();
  his->SetDirectory(0);
  his->SetTitle("#Delta LaserTracks offset");
  his->SetName("#Delta LaserTracks offset");
  his->GetXaxis()->SetTitle("#Delta z0 (cm) (laser A side - C side)");
  his->Draw();
  picArray->AddLast(his);
}


void DrawITSVD(){
  //
  // ITS/TPC drift velocity correction
  //
  guiTree->Draw("100*(ALIGN_ITSP_TPC_DRIFTVD-ALIGN_ITSM_TPC_DRIFTVD)","abs(dits)<3000&&ALIGN_ITSM_TPC_DRIFTVD!=0");
  his=(TH1*)htemp->Clone();
  his->SetDirectory(0);
  his->SetTitle("#Delta ITS/TPC drift correction positive and negative extrapolation");
  his->SetName("#Delta ITS/TPC drift correction");
  his->GetXaxis()->SetTitle("#Delta v_{dcorr} (%)");
  his->Draw();
  picArray->AddLast(his);
  //
  // comparison with laser
  //
  guiTree->Draw("100*(vdriftLTA-vdriftITS)","abs(dlaserA)<3600&&vdriftLTA!=0&&abs(dits)<3600");
  his=(TH1*)htemp->Clone();
  his->SetDirectory(0);
  his->SetTitle("#Delta ITS/TPC drift correction - Laser track corr");
  his->SetName("#Delta ITS/TPC drift correction - laser track corr");
  his->GetXaxis()->SetTitle("#Delta v_{dcorr} (%)");
  his->Draw();
  picArray->AddLast(his);
  //
  guiTree->Draw("100*(vdriftLTA-ALIGN_ITS_TPC_DRIFTVD)","abs(dlaserA)<3600&&vdriftLTA!=0&&abs(dits)<3600");
  his=(TH1*)htemp->Clone();
  his->SetDirectory(0);
  his->SetTitle("#Delta ITS/TPC non smmoth drift correction - Laser track corr");
  his->SetName("#Delta ITS/TPC non smooth drift correction - laser track corr");
  his->GetXaxis()->SetTitle("#Delta v_{dcorr} (%)");
  his->Draw();
  picArray->AddLast(his);
  //
  guiTree->Draw("100*(vdriftLTA-vdriftP)","abs(dlaserA)<1800&&vdriftLTA!=0&&abs(dp)<1800");
  his=(TH1*)htemp->Clone();
  his->SetDirectory(0);
  his->SetTitle("#Delta TPC/TPC - Laser track corr");
  his->SetName("#Delta TPC/TPC  - Laser track corr");
  his->GetXaxis()->SetTitle("#Delta v_{dcorr} (%)");
  his->Draw();
  picArray->AddLast(his);
  
}


void CEdrift(){
  //
  //
  //
  guiTree->SetAlias("vdriftCE0","250/CEgrDriftA");
  guiTree->SetAlias("vdriftCE1","vdriftCE0/(1+ptrel0)");
}
 guiAlias.C:1
 guiAlias.C:2
 guiAlias.C:3
 guiAlias.C:4
 guiAlias.C:5
 guiAlias.C:6
 guiAlias.C:7
 guiAlias.C:8
 guiAlias.C:9
 guiAlias.C:10
 guiAlias.C:11
 guiAlias.C:12
 guiAlias.C:13
 guiAlias.C:14
 guiAlias.C:15
 guiAlias.C:16
 guiAlias.C:17
 guiAlias.C:18
 guiAlias.C:19
 guiAlias.C:20
 guiAlias.C:21
 guiAlias.C:22
 guiAlias.C:23
 guiAlias.C:24
 guiAlias.C:25
 guiAlias.C:26
 guiAlias.C:27
 guiAlias.C:28
 guiAlias.C:29
 guiAlias.C:30
 guiAlias.C:31
 guiAlias.C:32
 guiAlias.C:33
 guiAlias.C:34
 guiAlias.C:35
 guiAlias.C:36
 guiAlias.C:37
 guiAlias.C:38
 guiAlias.C:39
 guiAlias.C:40
 guiAlias.C:41
 guiAlias.C:42
 guiAlias.C:43
 guiAlias.C:44
 guiAlias.C:45
 guiAlias.C:46
 guiAlias.C:47
 guiAlias.C:48
 guiAlias.C:49
 guiAlias.C:50
 guiAlias.C:51
 guiAlias.C:52
 guiAlias.C:53
 guiAlias.C:54
 guiAlias.C:55
 guiAlias.C:56
 guiAlias.C:57
 guiAlias.C:58
 guiAlias.C:59
 guiAlias.C:60
 guiAlias.C:61
 guiAlias.C:62
 guiAlias.C:63
 guiAlias.C:64
 guiAlias.C:65
 guiAlias.C:66
 guiAlias.C:67
 guiAlias.C:68
 guiAlias.C:69
 guiAlias.C:70
 guiAlias.C:71
 guiAlias.C:72
 guiAlias.C:73
 guiAlias.C:74
 guiAlias.C:75
 guiAlias.C:76
 guiAlias.C:77
 guiAlias.C:78
 guiAlias.C:79
 guiAlias.C:80
 guiAlias.C:81
 guiAlias.C:82
 guiAlias.C:83
 guiAlias.C:84
 guiAlias.C:85
 guiAlias.C:86
 guiAlias.C:87
 guiAlias.C:88
 guiAlias.C:89
 guiAlias.C:90
 guiAlias.C:91
 guiAlias.C:92
 guiAlias.C:93
 guiAlias.C:94
 guiAlias.C:95
 guiAlias.C:96
 guiAlias.C:97
 guiAlias.C:98
 guiAlias.C:99
 guiAlias.C:100
 guiAlias.C:101
 guiAlias.C:102
 guiAlias.C:103
 guiAlias.C:104
 guiAlias.C:105
 guiAlias.C:106
 guiAlias.C:107
 guiAlias.C:108
 guiAlias.C:109
 guiAlias.C:110
 guiAlias.C:111
 guiAlias.C:112
 guiAlias.C:113
 guiAlias.C:114
 guiAlias.C:115
 guiAlias.C:116
 guiAlias.C:117
 guiAlias.C:118
 guiAlias.C:119
 guiAlias.C:120
 guiAlias.C:121
 guiAlias.C:122
 guiAlias.C:123
 guiAlias.C:124
 guiAlias.C:125
 guiAlias.C:126
 guiAlias.C:127
 guiAlias.C:128
 guiAlias.C:129
 guiAlias.C:130
 guiAlias.C:131
 guiAlias.C:132
 guiAlias.C:133
 guiAlias.C:134
 guiAlias.C:135
 guiAlias.C:136
 guiAlias.C:137
 guiAlias.C:138
 guiAlias.C:139
 guiAlias.C:140
 guiAlias.C:141
 guiAlias.C:142
 guiAlias.C:143
 guiAlias.C:144
 guiAlias.C:145
 guiAlias.C:146
 guiAlias.C:147
 guiAlias.C:148
 guiAlias.C:149
 guiAlias.C:150
 guiAlias.C:151
 guiAlias.C:152
 guiAlias.C:153
 guiAlias.C:154
 guiAlias.C:155
 guiAlias.C:156
 guiAlias.C:157
 guiAlias.C:158
 guiAlias.C:159
 guiAlias.C:160
 guiAlias.C:161
 guiAlias.C:162
 guiAlias.C:163
 guiAlias.C:164
 guiAlias.C:165
 guiAlias.C:166
 guiAlias.C:167
 guiAlias.C:168
 guiAlias.C:169
 guiAlias.C:170
 guiAlias.C:171
 guiAlias.C:172
 guiAlias.C:173
 guiAlias.C:174
 guiAlias.C:175
 guiAlias.C:176
 guiAlias.C:177
 guiAlias.C:178
 guiAlias.C:179
 guiAlias.C:180
 guiAlias.C:181
 guiAlias.C:182
 guiAlias.C:183
 guiAlias.C:184
 guiAlias.C:185
 guiAlias.C:186
 guiAlias.C:187
 guiAlias.C:188
 guiAlias.C:189
 guiAlias.C:190
 guiAlias.C:191
 guiAlias.C:192
 guiAlias.C:193
 guiAlias.C:194
 guiAlias.C:195
 guiAlias.C:196