Char_t filnam[200],filnamalien[200];
TGraphErrors** gvdrvstime=new TGraphErrors*[520];
TGraphErrors** gvdrvsrun=new TGraphErrors*[520];
- Int_t iPt[260];
for(Int_t iMod=0; iMod<260;iMod++){
gvdrvstime[iMod]=new TGraphErrors(0);
gvdrvstime[iMod]->SetTitle(Form("Module %d",iMod+240));
gvdrvsrun[iMod]=new TGraphErrors(0);
gvdrvsrun[iMod]->SetTitle(Form("Module %d",iMod+240));
gvdrvsrun[iMod]->SetName(Form("gspmod%dr",iMod+240));
- iPt[iMod]=0;
}
Float_t Edrift=(1800-45)/291/0.012;
Int_t nrun,nrun2,nv,ns;
if(vdrift<4. || vdrift > 8.) continue;
UInt_t timest=vdriftarr->GetTimestamp(0);
if(timest==0) continue;
- Float_t timeday;
- if(year==2009){
- timeday=float(timest-1247762992)/60./60./24.;
- } else {
- timeday=float(timest-1264531801)/60./60./24.;
- }
+ Int_t npt=gvdrvsrun[iMod]->GetN();
+ gvdrvsrun[iMod]->SetPoint(npt,(Float_t)nrun,vdrift);
+ gvdrvsrun[iMod]->SetPointError(npt,0,errSpeed[iMod]);
+
+ Float_t timeZero;
+ if(year==2009) timeZero=1247762992;
+ else timeZero=1262300400;
+ if(timest<timeZero) continue;
+ Float_t timeday=float(timest-timeZero)/60./60./24.;
Float_t mob=vdrift*1.E5/Edrift;
Float_t temper=293.15*TMath::Power((mob/1350.),-1/2.4);
if(iMod==497-240) printf("Run %s Time %d Day %f Speed=%f Temp=%f\n",filnam,timest,timeday,vdrift,temper);
- gvdrvstime[iMod]->SetPoint(iPt[iMod],timeday,vdrift);
- gvdrvstime[iMod]->SetPointError(iPt[iMod],0,errSpeed[iMod]);
- gvdrvsrun[iMod]->SetPoint(iPt[iMod],(Float_t)nrun,vdrift);
- gvdrvsrun[iMod]->SetPointError(iPt[iMod],0,errSpeed[iMod]);
- ++iPt[iMod];
+ npt=gvdrvstime[iMod]->GetN();
+ gvdrvstime[iMod]->SetPoint(npt,timeday,vdrift);
+ gvdrvstime[iMod]->SetPointError(npt,0,errSpeed[iMod]);
}
f->Close();
}
if(year==2009){
sprintf(title,"Time (days since July 16th 2009)");
}else if (year==2010){
- sprintf(title,"Time (days since January 16th 2010)");
+ sprintf(title,"Time (days since January 1st 2010)");
}
gvdrvstime[mod1]->GetXaxis()->SetTitle(title);
gvdrvstime[mod1]->GetYaxis()->SetTitle("Drift speed (#mum/ns)");
gvdrvsrun[mod3]->Draw("PSAME");
gvdrvsrun[mod4]->Draw("PSAME");
leg->Draw();
+
+
+ TH2F* hlay3=new TH2F("hlay3","Variation of the drift speed (%) Layer 3",6,-0.5,5.5,14,-0.5,13.5);
+ hlay3->GetXaxis()->SetTitle("Detector");
+ hlay3->GetYaxis()->SetTitle("Ladder");
+ hlay3->GetXaxis()->SetTickLength(0);
+ hlay3->GetYaxis()->SetTickLength(0);
+ hlay3->SetStats(0);
+
+ TH2F* hlay4=new TH2F("hlay4","Variation of the drift speed (%) Layer 4",8,-0.5,7.5,22,-0.5,21.5);
+ hlay4->GetXaxis()->SetTitle("Detector");
+ hlay4->GetYaxis()->SetTitle("Ladder");
+ hlay4->GetXaxis()->SetTickLength(0);
+ hlay4->GetYaxis()->SetTickLength(0);
+ hlay4->GetYaxis()->SetTitle("Ladder");
+ hlay4->SetStats(0);
+
+ Double_t run1,run2,vdr1,vdr2;
+ Int_t lay,lad,det;
+ for(Int_t iMod=0; iMod<260; iMod++){
+ Int_t lastPoint=gvdrvsrun[iMod]->GetN()-1;
+ gvdrvsrun[iMod]->GetPoint(lastPoint,run2,vdr2);
+ gvdrvsrun[iMod]->GetPoint(lastPoint-1,run1,vdr1);
+ Float_t diff=0.;
+ if(vdr1>0.) diff=100*(vdr2-vdr1)/vdr1;
+ AliITSgeomTGeo::GetModuleId(iMod+240,lay,lad,det);
+ if(lay==3) hlay3->SetBinContent(det,lad,diff);
+ if(lay==4) hlay4->SetBinContent(det,lad,diff);
+ }
+ TLine* lin=new TLine(0,0,0,23);
+ gStyle->SetPalette(1);
+
+ TCanvas *c0b=new TCanvas("c0b","Percent difference Last Run - Previous Run",900,600);
+ c0b->Divide(2,1);
+ c0b->cd(1);
+ hlay3->DrawCopy("colz");
+ for(Int_t i=0;i<6;i++){
+ lin->SetY1(-0.5);
+ lin->SetY2(13.5);
+ lin->SetX1(i+0.5);
+ lin->SetX2(i+0.5);
+ lin->DrawClone();
+ }
+ for(Int_t i=0;i<14;i++){
+ lin->SetX1(-0.5);
+ lin->SetX2(5.5);
+ lin->SetY1(i+0.5);
+ lin->SetY2(i+0.5);
+ lin->DrawClone();
+ }
+ c0b->cd(2);
+ hlay4->DrawCopy("colz");
+ for(Int_t i=0;i<8;i++){
+ lin->SetY1(-0.5);
+ lin->SetY2(21.5);
+ lin->SetX1(i+0.5);
+ lin->SetX2(i+0.5);
+ lin->DrawClone();
+ }
+ for(Int_t i=0;i<22;i++){
+ lin->SetX1(-0.5);
+ lin->SetX2(7.5);
+ lin->SetY1(i+0.5);
+ lin->SetY2(i+0.5);
+ lin->DrawClone();
+ }
+
}
void FillErrors(Float_t errSpeed[260]){