]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - ITS/macrosSDD/PlotQASDD.C
fHits size reduced to previous assignment
[u/mrichter/AliRoot.git] / ITS / macrosSDD / PlotQASDD.C
index 0403d36d967ee7abc6f9d02407810cc69b0fa68e..f60a0c046c013b3cb099d6414dd98490bc997adc 100644 (file)
 #include <TCanvas.h>
 #include <TLegend.h>
 #include <TMath.h>
+#include <TString.h>
 #include "AliRecoParam.h"
 #endif
 
-enum rawexpert_t{pattern,patternnorm,layer3norm,layer4norm,layer3occ,layer4occ,rawtot};
-enum nonrawexpert_t{layer3,layer4,nonrawtot};
+enum rawexpert_t{pattern,patternnorm,layer3norm,layer4norm,layer3occ,layer4occ,rawcheck,rawtot};
+enum nonrawexpert_t{layer3,layer4,calibl3,calibl4,nonrawtot};
 
-enum rpexpert_t{rlocaldistro,rlayer3norm,rlayer4norm,rmodpattern,rmodpatternnorm,rphilayer3,rphilayer4,rrlayer3,rrlayer4,occlayer3,occlayer4,recraw2dlayer3,recraw2dlayer4,recrawlayer3,recrawlayer4,dedxlayer3,dedxlayer4,rtot};
-enum rnonexpert_t{rphizlayer3,rphizlayer4,rglobalrz,rglobalxy,rchargelayer3,rchargelayer4,rtimelayer3,rtimelayer4,rlayer3,rlayer4,nrtot};
+enum rpexpert_t{rlocaldistro,rlayer3norm,rlayer4norm,rmodpattern,rmodpatternnorm,rphilayer3,rphilayer4,rrlayer3,rrlayer4,occlayer3,occlayer4,recraw2dlayer3,recraw2dlayer4,recrawlayer3,recrawlayer4,dedxlayer3,dedxlayer4,rlayer3,rlayer4,recpointcheck,rtot};
+enum rnonexpert_t{rphizlayer3,rphizlayer4,rglobalrz,rglobalxy,rchargelayer3,rchargelayer4,rtimelayer3,rtimelayer4,nrtot};
 
-enum canvsname_t{canvname0,canvname1,canvname2,canvname3,canvname4,canvname5,canvname6,canvname7,canvname8,canvname9,canvname10,canvname11,canvname12,canvname13,canvname14,canvname15,canvname16,canvname17,canvname18,canvname19,canvname20,canvname21,canvname22,canvname23};//
+enum canvsname_t{canvname0,canvname1,canvname2,canvname3,canvname4,canvname5,canvname6,canvname7,canvname8,canvname9,canvname10,canvname11,canvname12,canvname13,canvname14,canvname15,canvname16,canvname17,canvname18,canvname19,canvname20,canvname21,canvname22,canvname23,canvasname24,canvasname25,canvasname26};//27
 
 
 
-void PlotQASDD(Char_t fileName[100]="File.QA.111333.2010.LHC09b.pass2.root",Char_t eventspecie[25]="LowMultiplicity",Bool_t kDoEps=kFALSE)
+void PlotQASDD(Char_t fileName[100]="File.QA.111333.2010.LHC09b.pass2.root",Bool_t kDoEps=kFALSE,Char_t eventspecie[25]="LowMultiplicity")
 {
-  const TString Rawsexpertname[]={"SDDModPattern","SDDModPatternNORM","SDDphizL3","SDDphizL4","SDDL3_RelativeOccupancy","SDDL4_RelativeOccupancy"};//6
-  const TString Rawsnonexpertname[]={"SDDphizL3NORM","SDDphizL4NORM"};//2
+  const TString Rawsexpertname[]={"SDDModPattern",//0     1
+                                 "SDDModPatternNORM",//1  //1
+                                 "SDDphizL3NORM",    //2  //0
+                                 "SDDphizL4NORM",    //3  //0
+                                 "SDDL3_RelativeOccupancy", //4     4  5
+                                 "SDDL4_RelativeOccupancy",//5      4  5
+                                 "SDDRawDataCheck"//6              6
+                                  };//tot 7
+  const TString Rawsnonexpertname[]={"SDDphizL3",//0   2         
+                                    "SDDphizL4",//1    2
+                                    "SDDphizCalibL3",//2  //   3
+                                    "SDDphizCalibL4"//3     3
+                                     };//tot 4
 
-  const TString RecPointsexpertname[]={"SDDLocalCoordDistrib","SDDModPatternL3RP","SDDModPatternL4RP","SDDModPatternRP","SDDModPatternRPNORM","SDDphidistrib_Layer3","SDDphidistrib_Layer4","SDDrdistrib_Layer3","SDDrdistrib_Layer4","SDDL3_RelativeOccupancy","SDDL4_RelativeOccupancy","SDDL3_Rec2Raw_2D","SDDL4_Rec2Raw_2D","SDDL3_Rec2Raw","SDDL4_Rec2Raw","SDDL3_dedx","SDDL4_dedx"};//17
-  const TString RecPointsnonexpertname[]={"SDDGlobalCoordDistribL3PHIZ","SDDGlobalCoordDistribL4PHIZ","SDDGlobalCoordDistribRZ","SDDGlobalCoordDistribYX","SDDLay3TotCh","SDDLay4TotCh","SDDdrifttime_Layer3","SDDdrifttime_Layer4","SDDModPatternL3RPNORM","SDDModPatternL4RPNORM"};//10
+  const TString RecPointsexpertname[]={"SDDLocalCoordDistrib",//0    //11
+                                      "SDDModPatternL3RP",//1       //12
+                                      "SDDModPatternL4RP",//2       //12
+                                      "SDDModPatternL3RPNORM",//3   //13
+                                      "SDDModPatternL4RPNORM",//4   //13
+                                      "SDDModPatternRP",//5         //14
+                                      "SDDModPatternRPNORM",//6     //14
+                                      "SDDphidistrib_Layer3",//7    //15
+                                      "SDDphidistrib_Layer4",//8    //15
+                                      "SDDrdistrib_Layer3",//9      //16
+                                      "SDDrdistrib_Layer4",//10     //16
+                                      "SDDL3_RelativeOccupancy",//11 //19  20
+                                      "SDDL4_RelativeOccupancy",//12 //19  20
+                                      "SDDL3_Rec2Raw_2D",       //13 //21
+                                      "SDDL4_Rec2Raw_2D",       //14 //21
+                                      "SDDL3_Rec2Raw",          //15 //22  23 
+                                      "SDDL4_Rec2Raw",          //16 //22  23 
+                                      "SDDL3_dedx",             //17 //24  25
+                                      "SDDL4_dedx",             //18   24  25
+                                      "SDDRecPointCheck"//19           26
+                                       };//tot 20
 
-  const TString canvassavedname[]={"RawLayers","Rawpatterns","RawLayersNORM","RawLayersRelOcc","RawLayersRelOccBoth","RecPointsphiz","RecPointsGlobalDistributions","RecPointsCharge","RecPointsDriftTime","RecPointsLocalDistribution","RecPointsLayers","RecPointsLayersNORM","RecPointsLayersPatterns","RecPointsPhiDistribution","RecPointsRDistribution","RecPointsChargeBothLayers","RecPointsDriftTimeBothLayers","RecPointsRelLayersOcc","RecPointsLayersRelOccBoth","RecPointsLayersRecRaw2D","RecPointsLayersRecRaw","RecPointsLayersRecRaw","RecPointsLayersRecRawBoth","RecPointsLayersdedx","RecPointsLayersdedxBoth"};//15
+  const TString RecPointsnonexpertname[]={"SDDGlobalCoordDistribL3PHIZ",//0      7
+                                         "SDDGlobalCoordDistribL4PHIZ",//1      7
+                                         "SDDGlobalCoordDistribRZ",//2          8
+                                         "SDDGlobalCoordDistribYX",//3          8
+                                         "SDDLay3TotCh",           //4          9    17
+                                         "SDDLay4TotCh",           //5          9    17
+                                         "SDDdrifttime_Layer3",    //6          10   18
+                                         "SDDdrifttime_Layer4"//7               10   18
+                                         };//tot 8
+
+  const TString canvassavedname[]={"RawLayersNORM",                 //0
+                                  "Rawpatterns",                   //1
+                                  "RawLayers",                     //2
+                                  "CalibConfiguration",            //3
+                                  "RawLayersRelOcc",               //4
+                                  "RawLayersRelOccBoth",           //5
+                                  "CheckRawdata",                  //6
+                                  "RecPointsphiz",                 //7
+                                  "RecPointsGlobalDistributions",  //8
+                                  "RecPointsCharge",               //9
+                                  "RecPointsDriftTime",            //10
+                                  "RecPointsLocalDistribution",    //11
+                                  "RecPointsLayers",               //12
+                                  "RecPointsLayersNORM",           //13
+                                  "RecPointsLayersPatterns",       //14
+                                  "RecPointsPhiDistribution",      //15
+                                  "RecPointsRDistribution",        //16
+                                  "RecPointsChargeBothLayers",     //17
+                                  "RecPointsDriftTimeBothLayers",  //18
+                                  "RecPointsRelLayersOcc",         //19
+                                  "RecPointsLayersRelOccBoth",     //20
+                                  "RecPointsLayersRecRaw2D",       //21
+                                  "RecPointsLayersRecRaw",         //22
+                                  "RecPointsLayersRecRawBoth",     //23
+                                  "RecPointsLayersdedx",           //24
+                                  "RecPointsLayersdedxBoth",       //25
+                                  "CheckRecPoints"                 //26
+                                 };//tot 27
 
   Char_t trendfile[25]="FileQAtrend.root";
 
+  TString psfilestart=Form("SDDQAPlot.ps[");
+  TString psfile     =Form("SDDQAPlot.ps");
+  TString psfileend  =Form("SDDQAPlot.ps]");
+
 
+  gStyle->SetTitleFont(62,"");
+  gStyle->SetTitleFontSize(0.025);
   gStyle->SetPalette(1);
   //  gStyle->SetOptStat("ne");
   if(gSystem->Exec(Form("ls %s >/dev/null 2>&1", fileName))!=0)
@@ -74,8 +148,8 @@ void PlotQASDD(Char_t fileName[100]="File.QA.111333.2010.LHC09b.pass2.root",Char
   TH1F *historaw2=NULL;
   TH2F *histodraw=NULL;
   
-  TH1F *histo2save[9];
-  for(Int_t i=0;i<9;i++){histo2save[i]=NULL;}
+  //  TH1F *histo2save[9];
+  //for(Int_t i=0;i<9;i++){histo2save[i]=NULL;}
   
   TF1 *f1 = new TF1("f1","1",-100000,100000); // this is the function defined to multiply histograms
   Char_t layer[10];
@@ -84,7 +158,7 @@ void PlotQASDD(Char_t fileName[100]="File.QA.111333.2010.LHC09b.pass2.root",Char
   float fmaxmargin;
   
   Int_t cannum=0;
-  Int_t histo2savenumber[9]={4,5,6,7,7,8,3,5,1};
+  //Int_t histo2savenumber[9]={4,5,6,7,7,8,3,5,1};
   TCanvas *canvas1 = new TCanvas("canvas1","SDD QA Plot",1000,600);
   //   TLegend *legend=new TLegend(0.83,0.8,0.97,0.7);
   TLegend *legend=new TLegend(0.81,0.895,0.95,0.995);
@@ -104,7 +178,9 @@ void PlotQASDD(Char_t fileName[100]="File.QA.111333.2010.LHC09b.pass2.root",Char
   float fCNinv=1./fChnknmbr;
   //   printf("\n====================>%f\n\n", fCNinv);
   
+
   if(!mergedfile.IsOpen()){return;}else{printf("file is open\n");}
+
   for(Int_t ispecie=0;ispecie<AliRecoParam::kNSpecies;ispecie++){
     //__________________________________________________________________
     //raw data
@@ -112,12 +188,13 @@ void PlotQASDD(Char_t fileName[100]="File.QA.111333.2010.LHC09b.pass2.root",Char
     printf("%s",filepath);
     TString especie(filepath);
     if(!especie.Contains(eventspecie)){printf("...Found and Skipped\n");continue;}
-    canvas1->Print("SDDQAPlot.ps[");
+    canvas1->Print(psfilestart.Data());
     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");
+      printf("0\n");
       canvas1->Clear();
       canvas1->Divide(2,1);
       
@@ -128,8 +205,18 @@ void PlotQASDD(Char_t fileName[100]="File.QA.111333.2010.LHC09b.pass2.root",Char
        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");}
+       if(historaw){printf("...Found\n");        historaw->Multiply(f1,fCNinv);  historaw->DrawCopy("colz");}
+       else
+         {
+           sprintf(histoname,"%s/%s_%s",filepath,AliRecoParam::GetEventSpecieName(ispecie),Rawsexpertname[iraws].Data());
+           printf("...Not found\nSecond try for histo name %s ",Rawsexpertname[iraws].Data());
+           historaw=(TH2D*)mergedfile.Get(histoname);
+           if(historaw){printf("...Found\n");    historaw->Multiply(f1,fCNinv);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       
       
@@ -140,21 +227,19 @@ void PlotQASDD(Char_t fileName[100]="File.QA.111333.2010.LHC09b.pass2.root",Char
            sprintf(namecanvas,"%s.eps",canvassavedname[cannum].Data());
            canvas1->SaveAs(namecanvas);
          }
-         canvas1->Print("SDDQAPlot.ps");
+         canvas1->Print(psfile.Data());
        }
       //else{delete canvas1; canvas1=NULL;}
       for(Int_t i=0;i<2;i++){updatecanvas[i]=kTRUE;}
       canvas1->Clear();
       canvas1->Divide(1,2);
-      printf("\n");
+      printf("1\n");
       cannum++;
       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);
-       
-       
+       historaw2=(TH1F*)mergedfile.Get(histoname);     
        //        -----------------This is the part were I divide between the number of chunks to normalize the histogram----------------
        
        
@@ -168,7 +253,7 @@ void PlotQASDD(Char_t fileName[100]="File.QA.111333.2010.LHC09b.pass2.root",Char
              }
            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");}
+       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)
@@ -178,12 +263,12 @@ void PlotQASDD(Char_t fileName[100]="File.QA.111333.2010.LHC09b.pass2.root",Char
            sprintf(namecanvas,"%s.eps",canvassavedname[cannum].Data());
            canvas1->SaveAs(namecanvas);
          }
-         canvas1->Print("SDDQAPlot.ps"); 
+         canvas1->Print(psfile.Data()); 
        }
       //else{delete canvas2; canvas2=NULL;}
       
       for(Int_t i=0;i<2;i++){updatecanvas[i]=kTRUE;}
-      printf("3\n");
+      printf("2\n");
       cannum++;
       canvas1->Clear();
       canvas1->Divide(2,1);
@@ -195,11 +280,26 @@ void PlotQASDD(Char_t fileName[100]="File.QA.111333.2010.LHC09b.pass2.root",Char
        historaw=(TH2D*)mergedfile.Get(histoname);
        if(historaw){
          printf("...Found\n");
-         historaw->Multiply(f1,fCNinv);
+         //      historaw->SetTitleSize(0.02);
+
          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");} 
+         {
+           sprintf(histoname,"%s/Expert/%s_%s",filepath,AliRecoParam::GetEventSpecieName(ispecie),Rawsnonexpertname[iraws].Data());
+           printf("...Not Found.\n Second Try for histo name %s",Rawsnonexpertname[iraws].Data());
+           historaw=(TH2D*)mergedfile.Get(histoname);
+           if(historaw){
+             printf("...Found\n");
+             //              historaw->SetTitleSize(0.02);
+             historaw->Multiply(f1,fCNinv);
+             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)
@@ -209,17 +309,50 @@ void PlotQASDD(Char_t fileName[100]="File.QA.111333.2010.LHC09b.pass2.root",Char
            sprintf(namecanvas,"%s.eps",canvassavedname[cannum].Data());
            canvas1->SaveAs(namecanvas);
          }
-         canvas1->Print("SDDQAPlot.ps"); 
+         canvas1->Print(psfile.Data()); 
        }
       //else{delete canvas3; canvas3=NULL;}
       
+      for(Int_t i=0;i<2;i++){updatecanvas[i]=kTRUE;}
+      printf("3\n");
+      cannum++;
+      canvas1->Clear();
+      canvas1->Divide(2,1);
+      for(Int_t iraws=2;iraws<4;iraws++){//non expert raws
+       canvas1->cd(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->SetTitleSize(0.02);
+         //      historaw->Multiply(f1,fCNinv);
+         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();
+         if(kDoEps){
+           sprintf(namecanvas,"%s.eps",canvassavedname[cannum].Data());
+           canvas1->SaveAs(namecanvas);
+         }
+         canvas1->Print(psfile.Data()); 
+       }
+
       //--------------------- new plots
       printf("================= 4\n");
       for(Int_t i=0;i<2;i++){updatecanvas[i]=kTRUE;}
       cannum++;
       canvas1->Clear();
       canvas1->Divide(2,1);
-      for(Int_t iraws=4;iraws<rawtot;iraws++){//non expert raws
+      for(Int_t iraws=4;iraws<rawtot-1;iraws++){//non expert raws
        canvas1->cd(iraws-3);
        sprintf(histoname,"%s/Expert/%s_%s",filepath,AliRecoParam::GetEventSpecieName(ispecie),Rawsexpertname[iraws].Data());
        printf("histo name %s",Rawsexpertname[iraws].Data());
@@ -242,7 +375,7 @@ void PlotQASDD(Char_t fileName[100]="File.QA.111333.2010.LHC09b.pass2.root",Char
            sprintf(namecanvas,"%s.eps",canvassavedname[cannum].Data());
            canvas1->SaveAs(namecanvas);
          }
-         canvas1->Print("SDDQAPlot.ps"); 
+         canvas1->Print(psfile.Data()); 
        }
       //else{delete canvas3; canvas3=NULL;}
       
@@ -250,9 +383,9 @@ void PlotQASDD(Char_t fileName[100]="File.QA.111333.2010.LHC09b.pass2.root",Char
       for(Int_t i=0;i<2;i++){updatecanvas[i]=kTRUE;}
       canvas1->Clear();
       legend->Clear();
-      printf("14\n");
+      printf("5\n");
       cannum++;
-      for (Int_t i=4;i<rawtot;i++){
+      for (Int_t i=4;i<rawtot-1;i++){
        sprintf(histoname,"%s/Expert/%s_%s",filepath,AliRecoParam::GetEventSpecieName(ispecie),Rawsexpertname[i].Data());
        historaw2=(TH1F*)mergedfile.Get(histoname);
        if(historaw2){
@@ -268,7 +401,7 @@ void PlotQASDD(Char_t fileName[100]="File.QA.111333.2010.LHC09b.pass2.root",Char
        historaw2=NULL;
       }
       fmaxmargin=1.1*fmaxold;
-      for(Int_t irrpp=4;irrpp<rawtot;irrpp++){//non expert raws
+      for(Int_t irrpp=4;irrpp<rawtot-1;irrpp++){//non expert raws
        
        sprintf(histoname,"%s/Expert/%s_%s",filepath,AliRecoParam::GetEventSpecieName(ispecie),Rawsexpertname[irrpp].Data());
        printf("histo name %s",Rawsexpertname[irrpp].Data());
@@ -297,11 +430,37 @@ void PlotQASDD(Char_t fileName[100]="File.QA.111333.2010.LHC09b.pass2.root",Char
            sprintf(namecanvas,"%s.eps",canvassavedname[cannum].Data());
            canvas1->SaveAs(namecanvas);
          }
-         canvas1->Print("SDDQAPlot.ps"); 
+         canvas1->Print(psfile.Data()); 
        }
-      
+      //---------------------------- summary plot ------------------------//
+      printf("6\n");
+      canvas1->Clear();
+      for(Int_t i=0;i<2;i++){updatecanvas[i]=kTRUE;}
+      sprintf(histoname,"%s/Expert/%s_%s",filepath,AliRecoParam::GetEventSpecieName(ispecie),Rawsexpertname[rawtot-1].Data());
+      printf("histo name %s",Rawsexpertname[rawtot-1].Data());
+      cannum++;
+      historaw2=(TH1F*)mergedfile.Get(histoname);
+       if(historaw2)
+         {
+           printf("...Found\n");
+           historaw2->SetStats(0);
+           historaw2->DrawCopy();
+           canvas1->Update();
+         }
+       else{updatecanvas[0]=kFALSE;updatecanvas[1]=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();
+           if(kDoEps){
+             sprintf(namecanvas,"%s.eps",canvassavedname[cannum].Data());
+             canvas1->SaveAs(namecanvas);
+           }
+           canvas1->Print(psfile.Data()); 
+         }
+
     }//end if directory
-    
+       
     
     
     //_______________________________________________________________________________
@@ -310,10 +469,11 @@ void PlotQASDD(Char_t fileName[100]="File.QA.111333.2010.LHC09b.pass2.root",Char
     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");
+      printf("7\n");
       cannum++;
       for(Int_t irp=0;irp<2;irp++){//non expert rec point
        canvas1->cd(irp+1);
@@ -331,7 +491,7 @@ void PlotQASDD(Char_t fileName[100]="File.QA.111333.2010.LHC09b.pass2.root",Char
            sprintf(namecanvas,"%s.eps",canvassavedname[cannum].Data());
            canvas1->SaveAs(namecanvas);
          }
-         canvas1->Print("SDDQAPlot.ps"); 
+         canvas1->Print(psfile.Data()); 
        }
       //       else{delete canvas4; canvas4=NULL;}
       
@@ -339,7 +499,7 @@ void PlotQASDD(Char_t fileName[100]="File.QA.111333.2010.LHC09b.pass2.root",Char
       for(Int_t i=0;i<2;i++){updatecanvas[i]=kTRUE;}
       canvas1->Clear();
       canvas1->Divide(2,1);
-      printf("5\n");
+      printf("8\n");
       cannum++;
       for(Int_t irrp=2;irrp<4;irrp++){//non expert raws
        canvas1->cd(irrp-1);
@@ -357,7 +517,7 @@ void PlotQASDD(Char_t fileName[100]="File.QA.111333.2010.LHC09b.pass2.root",Char
            sprintf(namecanvas,"%s.eps",canvassavedname[cannum].Data());
            canvas1->SaveAs(namecanvas);
          }
-         canvas1->Print("SDDQAPlot.ps"); 
+         canvas1->Print(psfile.Data()); 
        }
       //else{delete canvas5; canvas5=NULL;}
       
@@ -365,7 +525,7 @@ void PlotQASDD(Char_t fileName[100]="File.QA.111333.2010.LHC09b.pass2.root",Char
       for(Int_t i=0;i<2;i++){updatecanvas[i]=kTRUE;}
       canvas1->Clear();
       canvas1->Divide(1,2);
-      printf("6\n");
+      printf("9\n");
       cannum++;
       for(Int_t irrpp=4;irrpp<6;irrpp++){//non expert raws
        canvas1->cd(irrpp-3);
@@ -384,14 +544,14 @@ void PlotQASDD(Char_t fileName[100]="File.QA.111333.2010.LHC09b.pass2.root",Char
            sprintf(namecanvas,"%s.eps",canvassavedname[cannum].Data());
            canvas1->SaveAs(namecanvas);
          }
-         canvas1->Print("SDDQAPlot.ps"); 
+         canvas1->Print(psfile.Data()); 
        }
       //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");
+      printf("10\n");
       cannum++;
       for(Int_t irrpp=6;irrpp<8;irrpp++){//non expert raws
        canvas1->cd(irrpp-5);
@@ -409,13 +569,13 @@ void PlotQASDD(Char_t fileName[100]="File.QA.111333.2010.LHC09b.pass2.root",Char
            sprintf(namecanvas,"%s.eps",canvassavedname[cannum].Data());
            canvas1->SaveAs(namecanvas);
          }
-         canvas1->Print("SDDQAPlot.ps"); 
+         canvas1->Print(psfile.Data()); 
        }
       //else{delete canvas7; canvas7=NULL;}
 
       for(Int_t i=0;i<2;i++){updatecanvas[i]=kTRUE;}
       canvas1->Clear();
-      printf("8\n");
+      printf("11\n");
       cannum++;
       //canvas1->Divide(2,1);
       sprintf(histoname,"%s/Expert/%s_%s",filepath,AliRecoParam::GetEventSpecieName(ispecie),RecPointsexpertname[rlocaldistro].Data());
@@ -430,14 +590,14 @@ void PlotQASDD(Char_t fileName[100]="File.QA.111333.2010.LHC09b.pass2.root",Char
          sprintf(namecanvas,"%s.eps",canvassavedname[cannum].Data());
          canvas1->SaveAs(namecanvas);
        }
-       canvas1->Print("SDDQAPlot.ps"); 
+       canvas1->Print(psfile.Data()); 
       }
       //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");
+      printf("12\n");
       cannum++;
       for(Int_t i=1;i<3;i++)
        {
@@ -457,26 +617,27 @@ void PlotQASDD(Char_t fileName[100]="File.QA.111333.2010.LHC09b.pass2.root",Char
            sprintf(namecanvas,"%s.eps",canvassavedname[cannum].Data());
            canvas1->SaveAs(namecanvas);
          }
-         canvas1->Print("SDDQAPlot.ps"); 
+         canvas1->Print(psfile.Data()); 
        }
+      
       //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");
+      printf("13\n");
       cannum++;
-      for(Int_t i=8;i<10;i++)
+      for(Int_t i=3;i<5;i++)
        {
-         canvas1->cd(i-7);
+         canvas1->cd(i-2);
 
-         sprintf(histoname,"ITS/RecPoints/%s/Expert/%s_%s",AliRecoParam::GetEventSpecieName(ispecie),AliRecoParam::GetEventSpecieName(ispecie),RecPointsnonexpertname[i].Data());
+         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",RecPointsnonexpertname[i].Data());
+         printf("histo name %s",RecPointsexpertname[i].Data());
 
          if(histodraw){
            printf("...Found\n");histodraw->Multiply(f1,fCNinv);
            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");}
+         }else{updatecanvas[i-3]=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)
@@ -486,18 +647,19 @@ void PlotQASDD(Char_t fileName[100]="File.QA.111333.2010.LHC09b.pass2.root",Char
            sprintf(namecanvas,"%s.eps",canvassavedname[cannum].Data());
            canvas1->SaveAs(namecanvas);
          }
-         canvas1->Print("SDDQAPlot.ps"); 
+         canvas1->Print(psfile.Data()); 
        }
-      //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");
+
+      printf("14\n");
       cannum++;
-      for(Int_t i=3;i<5;i++)
+      for(Int_t i=5;i<7;i++)
        {
-         canvas1->cd(i-2);
+         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());
@@ -509,7 +671,7 @@ void PlotQASDD(Char_t fileName[100]="File.QA.111333.2010.LHC09b.pass2.root",Char
              if (i==4){historaw2->Multiply(f1,fCNinv);}
              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");}
+         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)
@@ -519,24 +681,24 @@ void PlotQASDD(Char_t fileName[100]="File.QA.111333.2010.LHC09b.pass2.root",Char
            sprintf(namecanvas,"%s.eps",canvassavedname[cannum].Data());
            canvas1->SaveAs(namecanvas);
          }
-         canvas1->Print("SDDQAPlot.ps"); 
+         canvas1->Print(psfile.Data()); 
        }
-      //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");
+      printf("15\n");
       cannum++;
-      for(Int_t i=5;i<7;i++)
+      for(Int_t i=7;i<9;i++)
        {
-         canvas1->cd(i-4);
+         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-5]=kFALSE;printf("...Not Found: the histogram or this QA has been done before the histograms was added to QA\n");}
+         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)
@@ -546,23 +708,22 @@ void PlotQASDD(Char_t fileName[100]="File.QA.111333.2010.LHC09b.pass2.root",Char
            sprintf(namecanvas,"%s.eps",canvassavedname[cannum].Data());
            canvas1->SaveAs(namecanvas);
          }
-         canvas1->Print("SDDQAPlot.ps"); 
+         canvas1->Print(psfile.Data()); 
        }
-      //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");
+      printf("16\n");
       cannum++;
-      for(Int_t i=7;i<9;i++)
+      for(Int_t i=9;i<11;i++)
        {
-         canvas1->cd(i-6);
+         canvas1->cd(i-8);
          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");}
+         if(historaw2){printf("...Found\n");historaw2->DrawCopy();}else{updatecanvas[i-9]=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)
@@ -572,7 +733,7 @@ void PlotQASDD(Char_t fileName[100]="File.QA.111333.2010.LHC09b.pass2.root",Char
            sprintf(namecanvas,"%s.eps",canvassavedname[cannum].Data());
            canvas1->SaveAs(namecanvas);
          }
-         canvas1->Print("SDDQAPlot.ps"); 
+         canvas1->Print(psfile.Data()); 
        }
          
 
@@ -580,7 +741,7 @@ void PlotQASDD(Char_t fileName[100]="File.QA.111333.2010.LHC09b.pass2.root",Char
       for(Int_t i=0;i<2;i++){updatecanvas[i]=kTRUE;}
       canvas1->Clear();
       legend->Clear();
-      printf("14\n");
+      printf("17\n");
       cannum++;
       for (Int_t i=4;i<6;i++){
        sprintf(histoname,"%s/%s_%s",filepath,AliRecoParam::GetEventSpecieName(ispecie),RecPointsnonexpertname[i].Data());
@@ -628,13 +789,13 @@ void PlotQASDD(Char_t fileName[100]="File.QA.111333.2010.LHC09b.pass2.root",Char
            sprintf(namecanvas,"%s.eps",canvassavedname[cannum].Data());
            canvas1->SaveAs(namecanvas);
          }
-         canvas1->Print("SDDQAPlot.ps"); 
+         canvas1->Print(psfile.Data()); 
        }
          
       for(Int_t i=0;i<2;i++){updatecanvas[i]=kTRUE;}
       canvas1->Clear();
       legend->Clear();
-      printf("15\n");
+      printf("18\n");
       cannum++;
       for (Int_t i=6;i<8;i++){
        sprintf(histoname,"%s/%s_%s",filepath,AliRecoParam::GetEventSpecieName(ispecie),RecPointsnonexpertname[i].Data());
@@ -679,7 +840,7 @@ void PlotQASDD(Char_t fileName[100]="File.QA.111333.2010.LHC09b.pass2.root",Char
            sprintf(namecanvas,"%s.eps",canvassavedname[cannum].Data());
            canvas1->SaveAs(namecanvas);
          }
-         canvas1->Print("SDDQAPlot.ps"); 
+         canvas1->Print(psfile.Data()); 
        }
 
       //------------------------------------------- new plot
@@ -687,16 +848,16 @@ void PlotQASDD(Char_t fileName[100]="File.QA.111333.2010.LHC09b.pass2.root",Char
       for(Int_t i=0;i<2;i++){updatecanvas[i]=kTRUE;}
       canvas1->Clear();
       canvas1->Divide(2,1);
-      printf("13\n");
+      printf("19\n");
       cannum++;
-      for(Int_t i=9;i<11;i++)
+      for(Int_t i=11;i<13;i++)
        {
-         canvas1->cd(i-8);
+         canvas1->cd(i-10);
          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-9]=kFALSE;printf("...Not Found: the histogram or this QA has been done before the histograms was added to QA\n");}
+         if(historaw2){printf("...Found\n");historaw2->DrawCopy();}else{updatecanvas[i-11]=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)
@@ -706,16 +867,16 @@ void PlotQASDD(Char_t fileName[100]="File.QA.111333.2010.LHC09b.pass2.root",Char
            sprintf(namecanvas,"%s.eps",canvassavedname[cannum].Data());
            canvas1->SaveAs(namecanvas);
          }
-         canvas1->Print("SDDQAPlot.ps"); 
+         canvas1->Print(psfile.Data()); 
        }
          
       //------------------------------------
       for(Int_t i=0;i<2;i++){updatecanvas[i]=kTRUE;}
       canvas1->Clear();
       legend->Clear();
-      printf("14\n");
+      printf("20\n");
       cannum++;
-      for (Int_t i=9;i<11;i++){
+      for (Int_t i=11;i<13;i++){
        sprintf(histoname,"%s/Expert/%s_%s",filepath,AliRecoParam::GetEventSpecieName(ispecie),RecPointsexpertname[i].Data());
        historaw2=(TH1F*)mergedfile.Get(histoname);
        if(historaw2){
@@ -731,11 +892,11 @@ void PlotQASDD(Char_t fileName[100]="File.QA.111333.2010.LHC09b.pass2.root",Char
        historaw2=NULL;
       }
       fmaxmargin=1.1*fmaxold;
-      for(Int_t irrpp=9;irrpp<11;irrpp++){//non expert raws
+      for(Int_t irrpp=11;irrpp<13;irrpp++){//non expert raws
          
        sprintf(histoname,"%s/Expert/%s_%s",filepath,AliRecoParam::GetEventSpecieName(ispecie),RecPointsexpertname[irrpp].Data());
        printf("histo name %s",RecPointsexpertname[irrpp].Data());
-       sprintf(layer, "layer %d",irrpp-6);
+       sprintf(layer, "layer %d",irrpp-8);
        historaw2=(TH1F*)mergedfile.Get(histoname);
        gStyle->SetOptStat(0);
          
@@ -744,13 +905,13 @@ void PlotQASDD(Char_t fileName[100]="File.QA.111333.2010.LHC09b.pass2.root",Char
            printf("...Found\n");
            historaw2->GetYaxis()->SetRangeUser(0,fmaxmargin);
            historaw2->SetTitle("RecPoint Relative Occupancy");
-           if (irrpp==9) {historaw2->SetStats(0);historaw2->SetLineColor(2);historaw2->DrawCopy();}
-           if (irrpp!=9) {historaw2->SetStats(0);historaw2->SetLineColor(4);historaw2->DrawCopy("same");}
+           if (irrpp==11) {historaw2->SetStats(0);historaw2->SetLineColor(2);historaw2->DrawCopy();}
+           if (irrpp!=11) {historaw2->SetStats(0);historaw2->SetLineColor(4);historaw2->DrawCopy("same");}
            legend->AddEntry(historaw2,layer,"l");
            legend->Draw();
            canvas1->Update();
          }
-       else{updatecanvas[irrpp-9]=kFALSE;printf("...Not Found: the histogram or this QA has been done before the histograms was added to QA\n");}
+       else{updatecanvas[irrpp-11]=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)
@@ -760,24 +921,24 @@ void PlotQASDD(Char_t fileName[100]="File.QA.111333.2010.LHC09b.pass2.root",Char
            sprintf(namecanvas,"%s.eps",canvassavedname[cannum].Data());
            canvas1->SaveAs(namecanvas);
          }
-         canvas1->Print("SDDQAPlot.ps"); 
+         canvas1->Print(psfile.Data()); 
        }
 
 
       for(Int_t i=0;i<2;i++){updatecanvas[i]=kTRUE;}
       canvas1->Clear();
       canvas1->Divide(2,1);
-      printf("13\n");
+      printf("21\n");
       cannum++;
-      for(Int_t i=11;i<13;i++)
+      for(Int_t i=13;i<15;i++)
        {
-         canvas1->cd(i-10);
+         canvas1->cd(i-12);
          sprintf(histoname,"ITS/RecPoints/%s/Expert/%s_%s",AliRecoParam::GetEventSpecieName(ispecie),AliRecoParam::GetEventSpecieName(ispecie),RecPointsexpertname[i].Data());
          printf("histo name %s",RecPointsexpertname[i].Data());
          historaw=(TH2D*)mergedfile.Get(histoname);
 
-         if(historaw){printf("...Found\n");historaw->DrawCopy("colz");}else{updatecanvas[i-11]=kFALSE;printf("...Not Found: the histogram or this QA has been done before the histograms was added to QA\n");}
-         historaw2=NULL;
+         if(historaw){printf("...Found\n");  historaw->DrawCopy("colz");}else{updatecanvas[i-13]=kFALSE;printf("...Not Found: the histogram or this QA has been done before the histograms was added to QA\n");}
+         historaw=NULL;
        }
       if(updatecanvas[0]==kTRUE||updatecanvas[1]==kTRUE)
        {
@@ -786,7 +947,7 @@ void PlotQASDD(Char_t fileName[100]="File.QA.111333.2010.LHC09b.pass2.root",Char
            sprintf(namecanvas,"%s.eps",canvassavedname[cannum].Data());
            canvas1->SaveAs(namecanvas);
          }
-         canvas1->Print("SDDQAPlot.ps"); 
+         canvas1->Print(psfile.Data()); 
        }
          
 
@@ -795,16 +956,16 @@ void PlotQASDD(Char_t fileName[100]="File.QA.111333.2010.LHC09b.pass2.root",Char
       for(Int_t i=0;i<2;i++){updatecanvas[i]=kTRUE;}
       canvas1->Clear();
       canvas1->Divide(2,1);
-      printf("13\n");
+      printf("22\n");
       cannum++;
-      for(Int_t i=13;i<15;i++)
+      for(Int_t i=15;i<17;i++)
        {
-         canvas1->cd(i-12);
+         canvas1->cd(i-14);
          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-13]=kFALSE;printf("...Not Found: the histogram or this QA has been done before the histograms was added to QA\n");}
+         if(historaw2){printf("...Found\n");historaw2->DrawCopy();}else{updatecanvas[i-15]=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)
@@ -814,23 +975,23 @@ void PlotQASDD(Char_t fileName[100]="File.QA.111333.2010.LHC09b.pass2.root",Char
            sprintf(namecanvas,"%s.eps",canvassavedname[cannum].Data());
            canvas1->SaveAs(namecanvas);
          }
-         canvas1->Print("SDDQAPlot.ps"); 
+         canvas1->Print(psfile.Data()); 
        }
       //--------------------------------------------
 
       for(Int_t i=0;i<2;i++){updatecanvas[i]=kTRUE;}
       canvas1->Clear();
       legend->Clear();
-      printf("14\n");
+      printf("23\n");
       cannum++;
-      for (Int_t i=13;i<15;i++){
+      for (Int_t i=15;i<17;i++){
        sprintf(histoname,"%s/Expert/%s_%s",filepath,AliRecoParam::GetEventSpecieName(ispecie),RecPointsexpertname[i].Data());
        historaw2=(TH1F*)mergedfile.Get(histoname);
        if(historaw2){
          fmax=historaw2->GetMaximum();
-         if (i==13){
+         if (i==15){
            fmaxold=fmax;}
-         if (i!=13){
+         if (i!=15){
            if(fmaxold<fmax){
              fmaxold=fmax;
            }
@@ -839,11 +1000,11 @@ void PlotQASDD(Char_t fileName[100]="File.QA.111333.2010.LHC09b.pass2.root",Char
        historaw2=NULL;
       }
       fmaxmargin=1.1*fmaxold;
-      for(Int_t irrpp=13;irrpp<15;irrpp++){//non expert raws
+      for(Int_t irrpp=15;irrpp<17;irrpp++){//non expert raws
     
        sprintf(histoname,"%s/Expert/%s_%s",filepath,AliRecoParam::GetEventSpecieName(ispecie),RecPointsexpertname[irrpp].Data());
        printf("histo name %s",RecPointsexpertname[irrpp].Data());
-       sprintf(layer, "layer %d",irrpp-10);
+       sprintf(layer, "layer %d",irrpp-12);
        historaw2=(TH1F*)mergedfile.Get(histoname);
        gStyle->SetOptStat(0);
          
@@ -852,13 +1013,13 @@ void PlotQASDD(Char_t fileName[100]="File.QA.111333.2010.LHC09b.pass2.root",Char
            printf("...Found\n");
            historaw2->GetYaxis()->SetRangeUser(0,fmaxmargin);
            historaw2->SetTitle("Rec2Raw Ratio");
-           if (irrpp==13) {historaw2->SetStats(0);historaw2->SetLineColor(2);historaw2->DrawCopy();}
-           if (irrpp!=13) {historaw2->SetStats(0);historaw2->SetLineColor(4);historaw2->DrawCopy("same");}
+           if (irrpp==15) {historaw2->SetStats(0);historaw2->SetLineColor(2);historaw2->DrawCopy();}
+           if (irrpp!=15) {historaw2->SetStats(0);historaw2->SetLineColor(4);historaw2->DrawCopy("same");}
            legend->AddEntry(historaw2,layer,"l");
            legend->Draw();
            canvas1->Update();
          }
-       else{updatecanvas[irrpp-13]=kFALSE;printf("...Not Found: the histogram or this QA has been done before the histograms was added to QA\n");}
+       else{updatecanvas[irrpp-15]=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)
@@ -868,7 +1029,7 @@ void PlotQASDD(Char_t fileName[100]="File.QA.111333.2010.LHC09b.pass2.root",Char
            sprintf(namecanvas,"%s.eps",canvassavedname[cannum].Data());
            canvas1->SaveAs(namecanvas);
          }
-         canvas1->Print("SDDQAPlot.ps"); 
+         canvas1->Print(psfile.Data()); 
        }
 
          
@@ -877,16 +1038,16 @@ void PlotQASDD(Char_t fileName[100]="File.QA.111333.2010.LHC09b.pass2.root",Char
       for(Int_t i=0;i<2;i++){updatecanvas[i]=kTRUE;}
       canvas1->Clear();
       canvas1->Divide(2,1);
-      printf("13\n");
+      printf("24\n");
       cannum++;
-      for(Int_t i=15;i<17;i++)
+      for(Int_t i=17;i<19;i++)
        {
-         canvas1->cd(i-14);
+         canvas1->cd(i-16);
          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-15]=kFALSE;printf("...Not Found: the histogram or this QA has been done before the histograms was added to QA\n");}
+         if(historaw2){printf("...Found\n");historaw2->DrawCopy();}else{updatecanvas[i-17]=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)
@@ -896,7 +1057,7 @@ void PlotQASDD(Char_t fileName[100]="File.QA.111333.2010.LHC09b.pass2.root",Char
            sprintf(namecanvas,"%s.eps",canvassavedname[cannum].Data());
            canvas1->SaveAs(namecanvas);
          }
-         canvas1->Print("SDDQAPlot.ps"); 
+         canvas1->Print(psfile.Data()); 
        }
          
 
@@ -905,27 +1066,27 @@ void PlotQASDD(Char_t fileName[100]="File.QA.111333.2010.LHC09b.pass2.root",Char
       for(Int_t i=0;i<2;i++){updatecanvas[i]=kTRUE;}
       canvas1->Clear();
       legend->Clear();
-      printf("14\n");
+      printf("25\n");
       cannum++;
-      for (Int_t i=15;i<17;i++){
+      for (Int_t i=17;i<19;i++){
        sprintf(histoname,"%s/Expert/%s_%s",filepath,AliRecoParam::GetEventSpecieName(ispecie),RecPointsexpertname[i].Data());
        historaw2=(TH1F*)mergedfile.Get(histoname);
        if(historaw2){
          fmax=historaw2->GetMaximum();
-         if (i==15){
+         if (i==17){
            fmaxold=fmax;}
-         if (i!=15){
+         if (i!=17){
            if(fmaxold<fmax){fmaxold=fmax;}
          }
        }
        historaw2=NULL;
       }
       fmaxmargin=1.1*fmaxold;
-      for(Int_t irrpp=15;irrpp<17;irrpp++){//non expert raws
+      for(Int_t irrpp=17;irrpp<19;irrpp++){//non expert raws
     
        sprintf(histoname,"%s/Expert/%s_%s",filepath,AliRecoParam::GetEventSpecieName(ispecie),RecPointsexpertname[irrpp].Data());
        printf("histo name %s",RecPointsexpertname[irrpp].Data());
-       sprintf(layer, "layer %d",irrpp-12);
+       sprintf(layer, "layer %d",irrpp-14);
        historaw2=(TH1F*)mergedfile.Get(histoname);
        gStyle->SetOptStat(0);
          
@@ -934,8 +1095,8 @@ void PlotQASDD(Char_t fileName[100]="File.QA.111333.2010.LHC09b.pass2.root",Char
            printf("...Found\n");
            historaw2->GetYaxis()->SetRangeUser(0,fmaxmargin);
            historaw2->SetTitle("RecPoint dEdx");
-           if (irrpp==15) {historaw2->SetStats(0);historaw2->SetLineColor(2);historaw2->DrawCopy();}
-           if (irrpp!=15) {historaw2->SetStats(0);historaw2->SetLineColor(4);historaw2->DrawCopy("same");}
+           if (irrpp==17) {historaw2->SetStats(0);historaw2->SetLineColor(2);historaw2->DrawCopy();}
+           if (irrpp!=17) {historaw2->SetStats(0);historaw2->SetLineColor(4);historaw2->DrawCopy("same");}
            legend->AddEntry(historaw2,layer,"l");
            legend->Draw();
            canvas1->Update();
@@ -950,26 +1111,121 @@ void PlotQASDD(Char_t fileName[100]="File.QA.111333.2010.LHC09b.pass2.root",Char
            sprintf(namecanvas,"%s.eps",canvassavedname[cannum].Data());
            canvas1->SaveAs(namecanvas);
          }
-         canvas1->Print("SDDQAPlot.ps"); 
+         canvas1->Print(psfile.Data()); 
+
+      //------------------------summary plot ---------------//
+
+      for(Int_t i=0;i<2;i++){updatecanvas[i]=kTRUE;}
+      canvas1->Clear();
+
+      printf("26\n");
+      cannum++;
+
+
+         sprintf(histoname,"ITS/RecPoints/%s/Expert/%s_%s",AliRecoParam::GetEventSpecieName(ispecie),AliRecoParam::GetEventSpecieName(ispecie),RecPointsexpertname[rtot-1].Data());
+         printf("histo name %s",RecPointsexpertname[rtot-1].Data());
+         historaw2=(TH1F*)mergedfile.Get(histoname);
+
+         if(historaw2)
+           {
+             printf("...Found\n");
+       
+             historaw2->DrawCopy();
+           }
+         else{updatecanvas[0]=kFALSE;updatecanvas[1]=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();
+         if(kDoEps){
+           sprintf(namecanvas,"%s.eps",canvassavedname[cannum].Data());
+           canvas1->SaveAs(namecanvas);
+         }
+         canvas1->Print(psfile.Data()); 
        }
-      canvas1->Print("SDDQAPlot.ps]"); 
+    
 
 
-      for(Int_t isave=0;isave<9;isave++){
-       if(isave<4)sprintf(histoname,"%s/%s_%s",filepath,AliRecoParam::GetEventSpecieName(ispecie),RecPointsnonexpertname[histo2savenumber[isave]].Data());
-       if(isave>4&&isave<7)sprintf(histoname,"%s/Expert/%s_%s",filepath,AliRecoParam::GetEventSpecieName(ispecie),RecPointsexpertname[histo2savenumber[isave]].Data());
-       if(isave>7)sprintf(histoname,"ITS/Raws/%s/Expert/%s_%s",AliRecoParam::GetEventSpecieName(ispecie),AliRecoParam::GetEventSpecieName(ispecie),Rawsexpertname[histo2savenumber[isave]].Data());
-       printf("file2save name:\t %s\n",histoname);
-       histo2save[isave]=(TH1F*)mergedfile.Get(histoname);
-      }
+
+       }
+      canvas1->Print(psfileend.Data()); 
 
       TFile file2savefortrend(trendfile,"recreate");
       file2savefortrend.cd();
-      for(Int_t iss=0;iss<9;iss++){printf("Saved %d\n",iss); histo2save[iss]->Write();}
+      
+      for(Int_t isave=0;isave<nonrawtot;isave++)
+       {
+         sprintf(histoname,"ITS/Raws/%s/%s_%s",AliRecoParam::GetEventSpecieName(ispecie),AliRecoParam::GetEventSpecieName(ispecie),Rawsnonexpertname[isave].Data());
+         historaw=(TH2D*)mergedfile.Get(histoname);
+         historaw->Write();
+         printf("Saved  %s\n",histoname);
+         historaw=NULL;
+       }
+      
+      for(Int_t isave1=0;isave1<rawtot;isave1++)
+       {
+         sprintf(histoname,"ITS/Raws/%s/Expert/%s_%s",AliRecoParam::GetEventSpecieName(ispecie),AliRecoParam::GetEventSpecieName(ispecie),Rawsexpertname[isave1].Data());
+         if(isave1==2||isave1==3)
+           {
+             historaw=(TH2D*)mergedfile.Get(histoname);
+             historaw->Write();
+             historaw=NULL;
+           }
+         else
+           {
+             historaw2=(TH1F*)mergedfile.Get(histoname);
+             historaw2->Write();
+             historaw2=NULL;
+           }
+         printf("Saved %s\n",histoname);
+       }
+      
+      for(Int_t isave2=0;isave2<nrtot;isave2++)
+       {
+         sprintf(histoname,"ITS/RecPoints/%s/%s_%s",AliRecoParam::GetEventSpecieName(ispecie),AliRecoParam::GetEventSpecieName(ispecie),RecPointsnonexpertname[isave2].Data());
+         if(isave2<4||isave2==17||isave2==18)
+           {
+             historaw=(TH2D*)mergedfile.Get(histoname);
+             historaw->Write();
+             historaw=NULL;
+           }
+         else
+           {
+             historaw2=(TH1F*)mergedfile.Get(histoname);
+             historaw2->Write();
+             historaw2=NULL;
+           }
+         printf("Saved %s\n",histoname);
+       }
+      for(Int_t isave3=0;isave3<rtot;isave3++)
+       {
+         sprintf(histoname,"ITS/RecPoints/%s/Expert/%s_%s",AliRecoParam::GetEventSpecieName(ispecie),AliRecoParam::GetEventSpecieName(ispecie),RecPointsexpertname[isave3].Data());
+         //printf(histoname,"ITS/RecPoints/%s/Expert/%s_%s \n",AliRecoParam::GetEventSpecieName(ispecie),AliRecoParam::GetEventSpecieName(ispecie),RecPointsexpertname[isave3].Data());
+         if(isave3<3||isave3==11||isave3==12||isave3==17||isave3==18)
+           {
+             histodraw=(TH2F*)mergedfile.Get(histoname);
+             histodraw->Write();
+             histodraw=NULL;
+           }
+         else
+           {
+             historaw2=(TH1F*)mergedfile.Get(histoname);
+             historaw2->Write();
+             historaw2=NULL;
+           }
+         printf("Saved %s\n",histoname);
+       }
+      
+      //for(Int_t iss=0;iss<9;iss++){printf("Saved %d\n",iss); histo2save[iss]->Write();}
       file2savefortrend.Close();
        
       //else{delete canvas13; canvas13=NULL;}  
       //directory2=NULL;
+
+
+
+
     }//end directory