From 0bca1a77b1f08b5c69b691f4a5443b9509016ade Mon Sep 17 00:00:00 2001 From: masera Date: Wed, 14 Apr 2010 08:26:19 +0000 Subject: [PATCH] Macros to plot SDD QA histograms (Melinda) --- ITS/PlotQASDD.C | 403 +++++++++++++++++++++++++++++++++++++++++++++++ ITS/ReadQASDD.C | 59 +++++++ ITS/ShowSDDQA.sh | 64 ++++++++ 3 files changed, 526 insertions(+) create mode 100644 ITS/PlotQASDD.C create mode 100644 ITS/ReadQASDD.C create mode 100755 ITS/ShowSDDQA.sh diff --git a/ITS/PlotQASDD.C b/ITS/PlotQASDD.C new file mode 100644 index 00000000000..ec55e530681 --- /dev/null +++ b/ITS/PlotQASDD.C @@ -0,0 +1,403 @@ +#if !defined(__CINT__) || defined(__MAKECINT__) +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +//#include "AliRecoParam.h" +#endif + +enum rawexpert_t{pattern,patternnorm,layer3norm,layer4norm,rawtot}; +enum nonrawexpert_t{layer3,layer4,nonrawtot}; + +enum rpexpert_t{rlocaldistro,rlayer3norm,rlayer4norm,rmodpattern,rmodpatternnorm,rphilayer3,rphilayer4,rrlayer3,rrlayer4,rtot}; +enum rnonexpert_t{rphizlayer3,rphizlayer4,rglobalrz,rglobalxy,rchargelayer3,rchargelayer4,rtimelayer3,rtimelayer4,rlayer3,rlayer4,nrtot}; + +enum canvsname_t{canvname0,canvname1,canvname2,canvname3,canvname4,canvname5,canvname6,canvname7,canvname8,canvname9,canvname10,canvname11,canvname12}; + +void PlotQASDD(Char_t fileName[100]="File.QA.111333.2010.LHC09b.pass2.root",Char_t eventspecie[25]="LowMultiplicity") +{ + const TString Rawsexpertname[]={"SDDModPattern","SDDModPatternNORM","SDDphizL3NORM","SDDphizL4NORM"};//4 + const TString Rawsnonexpertname[]={"SDDphizL3","SDDphizL4"};//2 + + const TString RecPointsexpertname[]={"SDDLocalCoordDistrib","SDDModPatternL3RPNORM","SDDModPatternL4RPNORM","SDDModPatternRP","SDDModPatternRPNORM","SDDphidistrib_Layer3","SDDphidistrib_Layer4","SDDrdistrib_Layer3","SDDrdistrib_Layer4"};//9 + const TString RecPointsnonexpertname[]={"SDDGlobalCoordDistribL3PHIZ","SDDGlobalCoordDistribL4PHIZ","SDDGlobalCoordDistribRZ","SDDGlobalCoordDistribYX","SDDLay3TotCh","SDDLay4TotCh","SDDdrifttime_Layer3","SDDdrifttime_Layer4","SDDModPatternL3RP","SDDModPatternL4RP"};//1 + + const TString canvassavedname[]={"RawLayers","Rawpatterns","RawLayersNORM","RecPointsphiz","RecPointsGlobalDistributions","RecPointsCharge","RecPointsDriftTime","RecPointsLocalDistribution","RecPointsLayers","RecPointsLayersNORM","RecPointsLayersPatterns","RecPointsPhiDistribution","RecPointsRDistribution"};//13 + + gStyle->SetPalette(1); + gStyle->SetOptStat(0); + TFile mergedfile(fileName); + if(mergedfile.GetKey("ITS")==0x0){ + printf("In this run ITS QA has not been executed.\n\nExit macro \n\n"); + return; + } + Char_t filepath[100]; + Char_t namecanvas[50]; + TDirectory *directory=NULL; + TDirectory *directory2=NULL; + Char_t histoname[200]; + TH2D *historaw=NULL; + TH1F *historaw2=NULL; + TH2F *histodraw=NULL; + + TCanvas *canvas1 = new TCanvas("canvas1","SDD QA Plot",1000,600); +// canvas1->Divide(2,1); +// TCanvas *canvas3 = new TCanvas("canvas3","RawLayersNORM",1000,600); +// canvas3->Divide(2,1); +// TCanvas *canvas2 = new TCanvas("canvas2","Rawpatterns",1000,600); +// canvas2->Divide(1,2); + +// TCanvas *canvas4 = new TCanvas("canvas4","RecPointsphiz",1000,600); +// canvas4->Divide(2,1); +// TCanvas *canvas5 = new TCanvas("canvas5","RecPointsGlobalDistributions",1000,600); +// canvas5->Divide(2,1); +// TCanvas *canvas6 = new TCanvas("canvas6","RecPointsCharge",1000,600); +// canvas6->Divide(1,2); +// TCanvas *canvas7 = new TCanvas("canvas7","RecPointsDriftTime",1000,600); +// canvas7->Divide(1,2); + +// TCanvas *canvas8 = new TCanvas("canvas8","RecPointsLocalDistribution",1000,600); +// TCanvas *canvas9 = new TCanvas("canvas9","RecPointsLayers",1000,600); +// canvas9->Divide(2,1); + +// TCanvas *canvas10 = new TCanvas("canvas10","RecPointsLayersNORM",1000,600); +// canvas10->Divide(2,1); +// TCanvas *canvas11 = new TCanvas("canvas11","RecPointsLayersPatterns",1000,600); +// canvas11->Divide(1,2); +// TCanvas *canvas12 = new TCanvas("canvas12","RecPointsPhiDistribution",1000,600); +// canvas12->Divide(2,1); +// TCanvas *canvas13 = new TCanvas("canvas13","RecPointsRDistribution",1000,600); +// canvas13->Divide(2,1); + + + if(!mergedfile.IsOpen()){return;}else{printf("file is open\n");} + for(Int_t ispecie=0;ispeciePrint("SDDQAPlot.ps["); + directory=(TDirectory*)mergedfile.Get(filepath); + if(!directory){printf("...Not Found\n ");}//faccio l'istogramma + else{ + printf("...Found: The histograms of this EventSpecie will be displayed\n"); + printf("1\n"); + canvas1->Clear(); + canvas1->Divide(2,1); + Bool_t updatecanvas[2]; + for(Int_t i=0;i<2;i++){updatecanvas[i]=kTRUE;} + for(Int_t iraws=0;irawscd(iraws+1); + + sprintf(histoname,"%s/%s_%s",filepath,AliRecoParam::GetEventSpecieName(ispecie),Rawsnonexpertname[iraws].Data()); + printf("histo name %s ",Rawsnonexpertname[iraws].Data()); + historaw=(TH2D*)mergedfile.Get(histoname); + if(historaw){printf("...Found\n");historaw->DrawCopy("colz");} + else{updatecanvas[iraws]=kFALSE;printf("...Not Found: the histogram or this QA has been done before the histograms was added to QA\n");} + historaw=NULL; + }//end for + + if(updatecanvas[0]==kTRUE||updatecanvas[1]==kTRUE) + { + canvas1->Update(); + sprintf(namecanvas,"%s.eps",canvassavedname[canvname0].Data()); + canvas1->SaveAs(namecanvas); + canvas1->Print("SDDQAPlot.ps"); + } + //else{delete canvas1; canvas1=NULL;} + for(Int_t i=0;i<2;i++){updatecanvas[i]=kTRUE;} + canvas1->Clear(); + canvas1->Divide(1,2); + printf("2 \n"); + for(Int_t inraws=0;inraws<2;inraws++){//non expert raws + canvas1->cd(inraws+1); + sprintf(histoname,"%s/Expert/%s_%s",filepath,AliRecoParam::GetEventSpecieName(ispecie),Rawsexpertname[inraws].Data()); + printf("histo name %s ",Rawsexpertname[inraws].Data()); + historaw2=(TH1F*)mergedfile.Get(histoname); + if(historaw2){printf("...Found\n");historaw2->DrawCopy();}else{updatecanvas[inraws]=kFALSE;printf("...Not Found: the histogram or this QA has been done before the histograms was added to QA\n");} + historaw2=NULL; + }//end for + if(updatecanvas[0]==kTRUE||updatecanvas[1]==kTRUE) + { + canvas1->Update(); + sprintf(namecanvas,"%s.eps",canvassavedname[canvname1].Data()); + canvas1->SaveAs(namecanvas); + canvas1->Print("SDDQAPlot.ps"); + } + //else{delete canvas2; canvas2=NULL;} + + for(Int_t i=0;i<2;i++){updatecanvas[i]=kTRUE;} + printf("3\n"); + canvas1->Clear(); + canvas1->Divide(2,1); + for(Int_t iraws=2;irawscd(iraws-1); + + sprintf(histoname,"%s/Expert/%s_%s",filepath,AliRecoParam::GetEventSpecieName(ispecie),Rawsexpertname[iraws].Data()); + printf("histo name %s",Rawsexpertname[iraws].Data()); + historaw=(TH2D*)mergedfile.Get(histoname); + if(historaw){printf("...Found\n");historaw->DrawCopy("colz");}else{updatecanvas[iraws-2]=kFALSE;printf("...Not Found: the histogram or this QA has been done before the histograms was added to QA\n");} + historaw=NULL; + }//end for + if(updatecanvas[0]==kTRUE||updatecanvas[1]==kTRUE) + { + canvas1->Update(); + sprintf(namecanvas,"%s.eps",canvassavedname[canvname2].Data()); + canvas1->SaveAs(namecanvas); + canvas1->Print("SDDQAPlot.ps"); + } + //else{delete canvas3; canvas3=NULL;} + }//end if directory + + //_______________________________________________________________________________ + //rec point + sprintf(filepath,"ITS/RecPoints/%s",AliRecoParam::GetEventSpecieName(ispecie)); + printf("%s\n",filepath); + directory2=(TDirectory*)mergedfile.Get(filepath); + if(directory2){ + for(Int_t i=0;i<2;i++){updatecanvas[i]=kTRUE;} + canvas1->Clear(); + canvas1->Divide(2,1); + printf("4\n"); + for(Int_t irp=0;irp<2;irp++){//non expert rec point + canvas1->cd(irp+1); + + sprintf(histoname,"%s/%s_%s",filepath,AliRecoParam::GetEventSpecieName(ispecie),RecPointsnonexpertname[irp].Data()); + printf("histo name %s ",RecPointsnonexpertname[irp].Data()); + histodraw=(TH2F*)mergedfile.Get(histoname); + if(histodraw){printf("...Found\n");histodraw->DrawCopy("colz");}else{updatecanvas[irp]=kFALSE;printf("...Not Found: the histogram or this QA has been done before the histograms was added to QA\n");} + histodraw=NULL; + } + if(updatecanvas[0]==kTRUE||updatecanvas[1]==kTRUE) + { + canvas1->Update(); + sprintf(namecanvas,"%s.eps",canvassavedname[canvname3].Data()); + canvas1->SaveAs(namecanvas); + canvas1->Print("SDDQAPlot.ps"); + } + // else{delete canvas4; canvas4=NULL;} + + + for(Int_t i=0;i<2;i++){updatecanvas[i]=kTRUE;} + canvas1->Clear(); + canvas1->Divide(2,1); + printf("5\n"); + for(Int_t irrp=2;irrp<4;irrp++){//non expert raws + canvas1->cd(irrp-1); + + sprintf(histoname,"%s/%s_%s",filepath,AliRecoParam::GetEventSpecieName(ispecie),RecPointsnonexpertname[irrp].Data()); + printf("histo name %s",RecPointsnonexpertname[irrp].Data() ); + histodraw=(TH2F*)mergedfile.Get(histoname); + if(histodraw){printf("...Found\n");histodraw->DrawCopy("colz");}else{updatecanvas[irrp-2]=kFALSE;printf("...Not Found: the histogram or this QA has been done before the histograms was added to QA\n");} + histodraw=NULL; + } + if(updatecanvas[0]==kTRUE||updatecanvas[1]==kTRUE) + { + canvas1->Update(); + sprintf(namecanvas,"%s.eps",canvassavedname[canvname4].Data()); + canvas1->SaveAs(namecanvas); + canvas1->Print("SDDQAPlot.ps"); + } + //else{delete canvas5; canvas5=NULL;} + + + for(Int_t i=0;i<2;i++){updatecanvas[i]=kTRUE;} + canvas1->Clear(); + canvas1->Divide(1,2); + printf("6\n"); + for(Int_t irrpp=4;irrpp<6;irrpp++){//non expert raws + canvas1->cd(irrpp-3); + + sprintf(histoname,"%s/%s_%s",filepath,AliRecoParam::GetEventSpecieName(ispecie),RecPointsnonexpertname[irrpp].Data()); + printf("histo name %s",RecPointsnonexpertname[irrpp].Data()); + historaw2=(TH1F*)mergedfile.Get(histoname); + if(historaw2){printf("...Found\n");historaw2->DrawCopy();}else{updatecanvas[irrpp-4]=kFALSE;printf("...Not Found: the histogram or this QA has been done before the histograms was added to QA\n");} + historaw2=NULL; + }//end for + if(updatecanvas[0]==kTRUE||updatecanvas[1]==kTRUE) + { + canvas1->Update(); + sprintf(namecanvas,"%s.eps",canvassavedname[canvname5].Data()); + canvas1->SaveAs(namecanvas); + canvas1->Print("SDDQAPlot.ps"); + } + //else{delete canvas6; canvas6=NULL;} + + for(Int_t i=0;i<2;i++){updatecanvas[i]=kTRUE;} + canvas1->Clear(); + canvas1->Divide(1,2); + printf("7\n"); + for(Int_t irrpp=6;irrpp<8;irrpp++){//non expert raws + canvas1->cd(irrpp-5); + // printf("histo name\n"); + sprintf(histoname,"%s/%s_%s",filepath,AliRecoParam::GetEventSpecieName(ispecie),RecPointsnonexpertname[irrpp].Data()); + printf("histo name %s",RecPointsnonexpertname[irrpp].Data()); + historaw2=(TH1F*)mergedfile.Get(histoname); + if(historaw2){printf("...Found\n");historaw2->DrawCopy();}else{updatecanvas[irrpp-6]=kFALSE;printf("...Not Found: the histogram or this QA has been done before the histograms was added to QA\n");} + historaw2=NULL; + }//end for + if(updatecanvas[0]==kTRUE||updatecanvas[1]==kTRUE) + { + canvas1->Update(); + sprintf(namecanvas,"%s.eps",canvassavedname[canvname6].Data()); + canvas1->SaveAs(namecanvas); + canvas1->Print("SDDQAPlot.ps"); + } + //else{delete canvas7; canvas7=NULL;} + + for(Int_t i=0;i<2;i++){updatecanvas[i]=kTRUE;} + canvas1->Clear(); + printf("8\n"); + //canvas1->Divide(2,1); + sprintf(histoname,"%s/Expert/%s_%s",filepath,AliRecoParam::GetEventSpecieName(ispecie),RecPointsexpertname[rlocaldistro].Data()); + printf("histo name %s",RecPointsexpertname[rlocaldistro].Data()); + histodraw=(TH2F*)mergedfile.Get(histoname); + + if(histodraw){printf("...Found\n");histodraw->DrawCopy("colz");}else{updatecanvas[0]=kFALSE;printf("...Not Found: the histogram or this QA has been done before the histograms was added to QA\n");} + histodraw=NULL; + if(updatecanvas[0]==kTRUE){ + canvas1->Update(); + sprintf(namecanvas,"%s.eps",canvassavedname[canvname7].Data()); + canvas1->SaveAs(namecanvas); + canvas1->Print("SDDQAPlot.ps"); + } + //else{delete canvas8; canvas8=NULL;} + + for(Int_t i=0;i<2;i++){updatecanvas[i]=kTRUE;} + canvas1->Clear(); + canvas1->Divide(2,1); + printf("9\n"); + for(Int_t i=8;i<10;i++) + { + canvas1->cd(i-7); + + sprintf(histoname,"ITS/RecPoints/%s/%s_%s",AliRecoParam::GetEventSpecieName(ispecie),AliRecoParam::GetEventSpecieName(ispecie),RecPointsnonexpertname[i].Data()); + printf("histo name %s",RecPointsnonexpertname[i].Data()); + histodraw=(TH2F*)mergedfile.Get(histoname); + + if(histodraw){printf("...Found\n");histodraw->DrawCopy("colz");}else{updatecanvas[i-8]=kFALSE;printf("...Not Found: the histogram or this QA has been done before the histograms was added to QA\n");} + histodraw=NULL; + } + if(updatecanvas[0]==kTRUE||updatecanvas[1]==kTRUE) + { + canvas1->Update(); + sprintf(namecanvas,"%s.eps",canvassavedname[canvname8].Data()); + canvas1->SaveAs(namecanvas); + canvas1->Print("SDDQAPlot.ps"); + } + //else{delete canvas9; canvas9=NULL;} + for(Int_t i=0;i<2;i++){updatecanvas[i]=kTRUE;} + canvas1->Clear(); + canvas1->Divide(2,1); + printf("10\n"); + for(Int_t i=1;i<3;i++) + { + canvas1->cd(i); + + sprintf(histoname,"ITS/RecPoints/%s/Expert/%s_%s",AliRecoParam::GetEventSpecieName(ispecie),AliRecoParam::GetEventSpecieName(ispecie),RecPointsexpertname[i].Data()); + histodraw=(TH2F*)mergedfile.Get(histoname); + printf("histo name %s",RecPointsexpertname[i].Data()); + + if(histodraw){printf("...Found\n");histodraw->DrawCopy("colz");}else{updatecanvas[i-1]=kFALSE;printf("...Not Found: the histogram or this QA has been done before the histograms was added to QA\n");} + histodraw=NULL; + } + if(updatecanvas[0]==kTRUE||updatecanvas[1]==kTRUE) + { + canvas1->Update(); + sprintf(namecanvas,"%s.eps",canvassavedname[canvname9].Data()); + canvas1->SaveAs(namecanvas); + canvas1->Print("SDDQAPlot.ps"); + } + //else{delete canvas10; canvas10=NULL;} + + for(Int_t i=0;i<2;i++){updatecanvas[i]=kTRUE;} + canvas1->Clear(); + canvas1->Divide(1,2); + printf("11\n"); + for(Int_t i=3;i<5;i++) + { + canvas1->cd(i-2); + + sprintf(histoname,"ITS/RecPoints/%s/Expert/%s_%s",AliRecoParam::GetEventSpecieName(ispecie),AliRecoParam::GetEventSpecieName(ispecie),RecPointsexpertname[i].Data()); + printf("histo name %s",RecPointsexpertname[i].Data()); + historaw2=(TH1F*)mergedfile.Get(histoname); + + if(historaw2){printf("...Found\n");historaw2->DrawCopy();}else{updatecanvas[i-3]=kFALSE;printf("...Not Found: the histogram or this QA has been done before the histograms was added to QA\n");} + historaw2=NULL; + } + if(updatecanvas[0]==kTRUE||updatecanvas[1]==kTRUE) + { + canvas1->Update(); + sprintf(namecanvas,"%s.eps",canvassavedname[canvname10].Data()); + canvas1->SaveAs(namecanvas); + canvas1->Print("SDDQAPlot.ps"); + } + //else{delete canvas11; canvas11=NULL;} + + for(Int_t i=0;i<2;i++){updatecanvas[i]=kTRUE;} + canvas1->Clear(); + canvas1->Divide(2,1); + printf("12\n"); + for(Int_t i=5;i<7;i++) + { + canvas1->cd(i-4); + + sprintf(histoname,"ITS/RecPoints/%s/Expert/%s_%s",AliRecoParam::GetEventSpecieName(ispecie),AliRecoParam::GetEventSpecieName(ispecie),RecPointsexpertname[i].Data()); + printf("histo name %s",RecPointsexpertname[i].Data()); + historaw2=(TH1F*)mergedfile.Get(histoname); + + if(historaw2){printf("...Found\n");historaw2->DrawCopy();}else{updatecanvas[i-5]=kFALSE;printf("...Not Found: the histogram or this QA has been done before the histograms was added to QA\n");} + historaw2=NULL; + } + if(updatecanvas[0]==kTRUE||updatecanvas[1]==kTRUE) + { + canvas1->Update(); + sprintf(namecanvas,"%s.eps",canvassavedname[canvname11].Data()); + canvas1->SaveAs(namecanvas); + canvas1->Print("SDDQAPlot.ps"); + } + //else{delete canvas12; canvas12=NULL;} + + for(Int_t i=0;i<2;i++){updatecanvas[i]=kTRUE;} + canvas1->Clear(); + canvas1->Divide(2,1); + printf("13\n"); + for(Int_t i=7;i<9;i++) + { + canvas1->cd(i-6); + sprintf(histoname,"ITS/RecPoints/%s/Expert/%s_%s",AliRecoParam::GetEventSpecieName(ispecie),AliRecoParam::GetEventSpecieName(ispecie),RecPointsexpertname[i].Data()); + printf("histo name %s",RecPointsexpertname[i].Data()); + historaw2=(TH1F*)mergedfile.Get(histoname); + + if(historaw2){printf("...Found\n");historaw2->DrawCopy();}else{updatecanvas[i-7]=kFALSE;printf("...Not Found: the histogram or this QA has been done before the histograms was added to QA\n");} + historaw2=NULL; + } + if(updatecanvas[0]==kTRUE||updatecanvas[1]==kTRUE) + { + canvas1->Update(); + sprintf(namecanvas,"%s.eps",canvassavedname[canvname12].Data()); + canvas1->SaveAs(namecanvas); + canvas1->Print("SDDQAPlot.ps"); + } + canvas1->Print("SDDQAPlot.ps]"); + //else{delete canvas13; canvas13=NULL;} + directory2=NULL; + }//end directory + }//end for + + delete directory; + directory=NULL; + delete directory2; + directory2=NULL; + +}//end macro + + diff --git a/ITS/ReadQASDD.C b/ITS/ReadQASDD.C new file mode 100644 index 00000000000..b0093f22712 --- /dev/null +++ b/ITS/ReadQASDD.C @@ -0,0 +1,59 @@ +#if !defined(__CINT__) || defined(__MAKECINT__) +#include +#include +#include +//#include +#include +#include +#include +#include +#include +#include +#endif +void ReadQASDD(Int_t runNb = 101498,Int_t year=2009,Char_t period[10]="LHC09c",Char_t pass[8]="pass1",Char_t filetosearch[50]="Merged.QA.Data.root",Char_t initfileout[50]="File.QA") +{ + + //****************** Connection to alien ***************************************** + TGrid::Connect("alien://",0,0,"t"); + //TGrid *gGrid = TGrid::Connect("alien"); + if(!gGrid||!gGrid->IsConnected()) { + printf("gGrid not found! exit macro\n"); + return; + } + + TFileMerger merger; + merger.SetFastMethod(kTRUE); + Char_t fileName[100]; + Char_t directory[100]; + sprintf(fileName,"%s.%i.%s.%s.Run.%i.root",initfileout,year,period,pass,runNb); + merger.OutputFile(fileName);//metto il nome del file QA + //sprintf(directory,"local://%s",gSystem->pwd()); + Char_t path[200]; + + sprintf(path,"/alice/data/%04i/%s/%09i/ESDs/%s/%02i%09i*.*",year,period,runNb,pass,year-2000,runNb); + printf("path %s\n",path); + + TGridResult *gr = gGrid->Query(path,filetosearch); + if (gr->GetEntries() < 1) { + printf("In this run there are not QA files: Exit macro\n"); + return; + } + else{printf("================>%d files found\n", gr->GetEntries());} + + Int_t mergedFiles = 0; + Int_t nFiles = gr->GetEntries(); + for (Int_t i = 0; i GetKey(i,"turl")); + if (merger.AddFile(directory)) + mergedFiles++; + } + //printf("Add done\n"); + if(merger.Merge()==kTRUE){ + printf("merged %d files\n", mergedFiles); + printf("output written on %s\n", fileName); + printf("Merge done!\n"); + } + else{printf("no files merged\n");return;} + +} diff --git a/ITS/ShowSDDQA.sh b/ITS/ShowSDDQA.sh new file mode 100755 index 00000000000..09dee57e665 --- /dev/null +++ b/ITS/ShowSDDQA.sh @@ -0,0 +1,64 @@ +#!/bin/bash +RUN='123456' +PERIOD='LHC10a' +PASS='pass1' +YEAR='2010' +ALICE_ITS='$ALICE_ROOT/ITS' +echo "Run Number :[${RUN}]" +read +if [ "$REPLY" != "" ]; then +export RUN=$REPLY +echo "Run $RUN" +fi +echo "Period :[${PERIOD}]" +read +if [ "$REPLY" != "" ]; then +export PERIOD=$REPLY +echo "Period $PERIOD" +fi +echo "Pass : [${PASS}]" +read +if [ "$REPLY" != "" ]; then +export PASS=$REPLY +echo "Pass $PASS " +fi +echo "Year :[${YEAR}]" +read +if [ "$REPLY" != "" ]; then +export YEAR=$REPLY +echo "Year $YEAR" +fi +if [ ls -l "run$RUN" >/dev/null 2>&1 ]; then +echo "directory run$RUN exists " +else +mkdir "run$RUN" +fi +cd "run$RUN" +if [ ls -l $PASS > /dev/null 2>&1 ]; then +echo "directory $PASS exixsts" +else +mkdir $PASS +cd $PASS +fi +time aliroot >>merge.log 2>&1 <> plot.log 2>&1 </dev/null 2>&1 ]; then +echo "directory images exists" +else +mkdir images +fi +mv *.ps *.eps images/. +cd images +for i in *.ps; +do +gv $i & +sleep 2 +done +echo "Plots Done!!" + -- 2.43.5