ROOT logo
//////////////////////////////////////////////////
//
//  This macro was written by Domenico Colella (domenico.colella@cern.ch).
//   -- first version    [12 November 2013]
//   -- modified version [3 November 2013]: added inv. mass distr. without PID info
//
//   ------------------------
//   ------ Arguments -------
//   ------------------------
//   --  icasType          =  0) Xi- 1) Xi+ 2) Omega- 3) Omega+
//   --  collidingsystem   =  0) PbPb  1) pp  2) pPb
//   --  isMC              =  kTRUE if running on MC production 
//   --  fileDir           =  "Input file directory"
//   --  filein            =  "Input file name"
//
//
//   -------------------------------------
//   ------ QATask output content --------
//   -------------------------------------
//   The output produced by the QATask is a CFContainer with 4 steps and 21 variables.
//   The meaning of each variable within the container are listed here:
//   --  0   = Max DCA Cascade Daughters                 pp: 2.0     PbPb: 0.3     pPb: 2.0
//   --  1   = Min DCA Bach To PV                        pp: 0.01    PbPb: 0.03    pPb: 0.03
//   --  2   = Min Cascade Cosine Of PA                  pp: 0.98    PbPb: 0.999   pPb: 0.95
//   --  3   = Min Cascade Radius Fid. Vol.              pp: 0.2     PbPb: 0.9     pPb: 0.4
//   --  4   = Window Invariant Mass Lambda              pp: 0.008   PbPb: 0.0008  pPb: 0.010
//   --  5   = Max DCA V0 Daughters                      pp: 1.5     PbPb: 1.0     pPb: 2.0
//   --  6   = Min V0 Cosine Of PA To PV                 pp: pT dep. PbPb: 0.98    pPb: 0.95
//   --  7   = Min V0 Radius Fid. Vol.                   pp: 0.2     PbPb: 0.9     pPb: 1.0
//   --  8   = Min DCA V0 To PV                          pp: 0.01    PbPb: 0.05    pPb: 0.05
//   --  9   = Min DCA Pos To PV                         pp: 0.05    PbPb: 0.1     pPb: 0.02
//   --  10  = Min DCA Neg To PV                         pp: 0.05    PbPb: 0.1     pPb: 0.02
//   --  11  = Invariant Mass distribution for Xi
//   --  12  = Invariant Mass distribution for Omega
//   --  13  = Transverse Momentum distribution
//   --  14  = Rapidity distribution for Xi
//   --  15  = Rapidity distribution for Omega
//   --  16  = Proper length distribution for the cascade
//   --  17  = Proper length distribution for the V0
//   --  18  = Min V0 Cosine Of PA To Xi Vertex         pp: pT dep. PbPb: pT dep.
//   --  19  = Centrality
//   --  20  = ESD track multiplicity
//   The last two variables are empty in the case proton-proton collisions.
//   In case of MC production one more CFContainer is produced, containing infos on the 
//   generated particles. As the previous container, this one is composed by 4 steps, one
//   for each cascade and 7 variables:
//    -- 0   = Total momentum
//    -- 1   = Transverse momentum
//    -- 2   = Rapidity
//    -- 3   = Pseudo-rapidity
//    -- 4   = Theta angle
//    -- 5   = Phi angle
//    -- 6   = Centrality
//    The previous container is still produced with the informations from the reconstructed
//    particles.
//
//
//   -----------------------------------
//   ------ Present Macro Checks -------
//   -----------------------------------
//   Using this macro many checks on the cascade topological reconstruction procedure
//   can be performed. In particular, the shape and the limit for the topological 
//   variable distributions as well as other kinematical variable distributions. The
//   reconstruction of the cascades are performed using two classes AliCascadeVertexer.cxx 
//   and AliV0vertexer.cxx contained in /STEER/ESD/ folder in Aliroot.
//   In the following are listed the contents of each page of the produced pdf:
//   
//   -- [Page 1] Distributions for the variables: 
//                DCA cascade daughters,  Bachelor IP to PV, 
//                Cascade cosine of PA,   Cascade radius of fiducial volume, 
//                Invariant mass Lambda,  DCA V0 daughters.
//   -- [Page 2] Distributions for the variables:
//                V0 cosine of PA to PV,  Min V0 Radius fiducial volume, 
//                Min DCA V0 To PV,       Min DCA positive To PV, 
//                Min DCA negative To PV, V0 cosine of PA to XiV
//   -- [Page 3] Distributions for the variables;
//                InvMass,                Transverse momentum,
//                Rapidity,               Cascade proper length, 
//                V0 proper length.
//   -- [Page 4] Check on the invariant mass distribution fit.
//   -- [Page 5] Check on the invariant mass distribution, without the PID info, fit. 
//   -- [Page 6] Only in case of PbPb or pPb collisions, the event centrality
//               distribution.
//   -- [Page 7] Only in case of MC production, distributions for the MC generated
//               particles, of the variables:
//                Total momentum,         Transverse momentum,
//                Rapidity,               Pseudo-rapidity,
//                Theta angle,            Phi angle,
//
//
//////////////////////////////////////////////////////




class AliCFContainer;

void PostProcessQAMultistrange(Int_t   icasType        = 0,                             // 0) Xi- 1) Xi+ 2) Omega- 3) Omega+
                               Int_t   collidingsystem = 0,                             // 0) PbPb  1) pp 2) pPb
                               Bool_t  isMC            = kFALSE,                         // kTRUE-->MC and kFALSE-->Exp.
                               Char_t *fileDir         = ".",                           // Input file directory
                               Char_t *filein          = "AnalysisResults.root"         // Input file name
                              ) {


     //___________________
     //DEFINE DRAW OPTIONS
     gStyle->SetOptStat(1110);
     gStyle->SetOptStat(kFALSE);
     gStyle->SetOptTitle(kFALSE);
     gStyle->SetFrameLineWidth(2.5);
     gStyle->SetCanvasColor(0);
     gStyle->SetPadColor(0);
     gStyle->SetHistLineWidth(2.5);
     gStyle->SetLabelSize(0.05, "x");
     gStyle->SetLabelSize(0.05, "y");
     gStyle->SetTitleSize(0.05, "x");
     gStyle->SetTitleSize(0.05, "y");
     gStyle->SetTitleOffset(1.1, "x");
     gStyle->SetPadBottomMargin(0.14);

     //_______________________
     //SOURCE USEFUL LIBRARIES
     gSystem->Load("libANALYSIS.so");
     gSystem->Load("libANALYSISalice.so");
     gSystem->Load("libCORRFW.so");

     //_________________________________
     //SOURCE THE FILE AND THE CONTAINER
     TFile *f1 = new TFile(Form("%s/%s",fileDir,filein));
     AliCFContainer *cf = (AliCFContainer*) (f1->Get("PWGLFStrangeness.outputCheckCascade/fCFContCascadeCuts"));  
     TList *hlist = (TList*) f1->Get("PWGLFStrangeness.outputCheckCascade/fListHistMultistrangeQA");
 
     //____________
     //DEEFINE TEXT
     TLatex* t1 = new TLatex(0.6,0.55,"#color[3]{OK!!}");
     t1->SetTextSize(0.1);
     t1->SetNDC();
     TLatex* t2 = new TLatex(0.6,0.55,"#color[2]{NOT OK!!}");
     t2->SetTextSize(0.1);
     t2->SetNDC();
     t2->SetTextColor(2);
     TLatex* tcasc;
     if      (icasType == 0) tcasc = new TLatex(0.8,0.7,"#color[1]{#Xi^{-}}");
     else if (icasType == 1) tcasc = new TLatex(0.8,0.7,"#color[1]{#Xi^{+}}");
     else if (icasType == 2) tcasc = new TLatex(0.8,0.7,"#color[1]{#Omega^{-}}");
     else if (icasType == 3) tcasc = new TLatex(0.8,0.7,"#color[1]{#Omega^{+}}");
     tcasc->SetTextSize(0.15);
     tcasc->SetNDC();
     tcasc->SetTextColor(2);
     TLatex* tpdgmass;
     if      (icasType == 0) tpdgmass = new TLatex(0.55,0.7,"#color[1]{PDG mass: 1.321 GeV/c^{2}}");
     else if (icasType == 1) tpdgmass = new TLatex(0.55,0.7,"#color[1]{PDG mass: 1.321 GeV/c^{2}}");
     else if (icasType == 2) tpdgmass = new TLatex(0.55,0.7,"#color[1]{PDG mass: 1.672 GeV/c^{2}}");
     else if (icasType == 3) tpdgmass = new TLatex(0.55,0.7,"#color[1]{PDG mass: 1.672 GeV/c^{2}}");
     tpdgmass->SetTextSize(0.07);
     tpdgmass->SetNDC();
     tpdgmass->SetTextColor(2);

     
     //________________________________ 
     //DEFINE 1st CANVAS AND DRAW PLOTS
     TCanvas *c1 = new TCanvas("c1","",1200,800);
     c1->Divide(2,3); 
       //Pad 1: DCA cascade daughters
       c1->cd(1);
       gPad->SetLogy();
       TH1D *hvar0 = cf->ShowProjection(0,icasType);
       hvar0->Draw("histo");
       Double_t x0;
       if      (collidingsystem == 0) x0 = 0.3;
       else if (collidingsystem == 1) x0 = 2.0;
       else if (collidingsystem == 2) x0 = 2.0;
       TLine *line0 = new TLine(x0,0.,x0,hvar0->GetBinContent(hvar0->GetMaximumBin()));
       line0->SetLineColor(kRed);
       line0->SetLineStyle(9);
       line0->SetLineWidth(2.0);
       line0->Draw("same");
          Bool_t check_0 = checkOverTheLimit(hvar0, x0);
          if (check_0) { cout<<"The cut is OK!!"<<endl; t1->Draw(); }
          else         { cout<<"The cut is NOT OK!!"<<endl; t2->Draw(); }
       tcasc->Draw();
       //Pad 2: Bachelor IP to PV
       c1->cd(2);
       gPad->SetLogy();
       TH1D *hvar1 = cf->ShowProjection(1,icasType);
       hvar1->GetXaxis()->SetRangeUser(0.,0.24);
       hvar1->Draw("histo");
       Double_t x1;
       if      (collidingsystem == 0) x1 = 0.03;
       else if (collidingsystem == 1) x1 = 0.01;
       else if (collidingsystem == 2) x1 = 0.03;
       TLine *line1 = new TLine(x1,0.,x1,hvar1->GetBinContent(hvar1->GetMaximumBin()));
       line1->SetLineColor(kRed);
       line1->SetLineStyle(9);
       line1->SetLineWidth(2.0);
       line1->Draw("same");
          Bool_t check_1 = checkUnderTheLimit(hvar1, x1);
          if (check_1) { cout<<"The cut is OK!!"<<endl; t1->Draw(); }
          else         { cout<<"The cut is NOT OK!!"<<endl; t2->Draw(); }
       //Pad 3: Cascade cosine of Pointing Angle
       c1->cd(3);
       gPad->SetLogy();
       TH1D *hvar2 = cf->ShowProjection(2,icasType);
       Double_t max2 = hvar2->GetBinContent(hvar2->GetMaximumBin());
       hvar2->GetYaxis()->SetRangeUser(0.01,max2*1.5);
       hvar2->Draw("histo");
       Double_t x2;
       if      (collidingsystem == 0) x2 = 0.999;
       else if (collidingsystem == 1) x2 = 0.98;
       else if (collidingsystem == 2) x2 = 0.95;
       TLine *line2 = new TLine(x2,0.,x2,hvar2->GetBinContent(hvar2->GetMaximumBin()));
       line2->SetLineColor(kRed);
       line2->SetLineStyle(9);
       line2->SetLineWidth(2.0);
       line2->Draw("same");
       line1->Draw("same");
          Bool_t check_2 = checkUnderTheLimit(hvar2, x2);
          if (check_2) { cout<<"The cut is OK!!"<<endl; t1->Draw(); }
          else         { cout<<"The cut is NOT OK!!"<<endl; t2->Draw(); }
       //Pad 4: Cascade radius of fiducial volume
       c1->cd(4);
       gPad->SetLogy();
       TH1D *hvar3 = cf->ShowProjection(3,icasType);
       hvar3->GetXaxis()->SetRangeUser(0.,3.8);
       hvar3->Draw("histo");
       Double_t x3;
       if      (collidingsystem == 0) x3 = 0.9;
       else if (collidingsystem == 1) x3 = 0.2;
       else if (collidingsystem == 2) x3 = 0.4;
       TLine *line3 = new TLine(x3,0.,x3,hvar3->GetBinContent(hvar3->GetMaximumBin()));
       line3->SetLineColor(kRed);
       line3->SetLineStyle(9);
       line3->SetLineWidth(2.0);
       line3->Draw("same");
          Bool_t check_3 = checkUnderTheLimit(hvar3, x3);
          if (check_3) { cout<<"The cut is OK!!"<<endl; t1->Draw(); }
          else         { cout<<"The cut is NOT OK!!"<<endl; t2->Draw(); }
       //Pad 5: Invariant mass Lambda
       c1->cd(5);
       TH1D *hvar4 = cf->ShowProjection(4,icasType);
       hvar4->Draw("histo");
       Double_t x41;
       if      (collidingsystem < 2)  x41 = 1.116 + 0.008;
       else if (collidingsystem == 2) x41 = 1.116 + 0.010;
       TLine *line41 = new TLine(x41,0.,x41,hvar4->GetBinContent(hvar4->GetMaximumBin()));
       line41->SetLineColor(kRed);
       line41->SetLineStyle(9);
       line41->SetLineWidth(2.0);
       line41->Draw("same");
       Double_t x42;
       if      (collidingsystem < 2)  x42 = 1.115 - 0.008;
       else if (collidingsystem == 2) x42 = 1.115 - 0.010;
       TLine *line42 = new TLine(x42,0.,x42,hvar4->GetBinContent(hvar4->GetMaximumBin()));
       line42->SetLineColor(kRed);
       line42->SetLineStyle(9);
       line42->SetLineWidth(2.0);
       line42->Draw("same");
          Bool_t check_4_1 = checkUnderTheLimit(hvar4, x42);
          Bool_t check_4_2 = checkOverTheLimit(hvar4, x41);
          if (check_4_1 && check_4_2) { cout<<"The cut is OK!!"<<endl; t1->Draw(); }
          else                        { cout<<"The cut is NOT OK!!"<<endl; t2->Draw(); }
       //Pad 6: DCA V0 daughters
       c1->cd(6);
       gPad->SetLogy();
       TH1D *hvar5 = cf->ShowProjection(5,icasType);
       hvar5->Draw("histo");
       Double_t x5;
       if      (collidingsystem == 0) x5 = 1.0;
       else if (collidingsystem == 1) x5 = 1.5;
       else if (collidingsystem == 2) x5 = 2.0;
       TLine *line5 = new TLine(x5,0.,x5,hvar5->GetBinContent(hvar5->GetMaximumBin()));
       line5->SetLineColor(kRed);
       line5->SetLineStyle(9);
       line5->SetLineWidth(2.0);
       line5->Draw("same");
          Bool_t check_5 = checkOverTheLimit(hvar5, x5);
          if (check_5) { cout<<"The cut is OK!!"<<endl; t1->Draw(); }
          else         { cout<<"The cut is NOT OK!!"<<endl; t2->Draw(); }
     c1->SaveAs("fig_lf_Multistrange.pdf(");
    
     //________________________________
     //DEFINE 2nd CANVAS AND DRAW PLOTS
     TCanvas *c2 = new TCanvas("c2","",1200,800);
     c2->Divide(2,3);
       //Pad 1: V0 cosine of Pointing Angle to PV
       c2->cd(1);
       gPad->SetLogy();
       TH1D *hvar6 = cf->ShowProjection(6,icasType);
       Double_t max6 = hvar6->GetBinContent(hvar6->GetMaximumBin());
       hvar6->GetYaxis()->SetRangeUser(0.01,max6*1.5);
       hvar6->Draw("histo");
       tcasc->Draw();
       //Pad 2: Min V0 Radius Fid. Vol.  
       c2->cd(2);
       gPad->SetLogy();
       TH1D *hvar7 = cf->ShowProjection(7,icasType);
       hvar7->GetXaxis()->SetRangeUser(0.,3.0);
       hvar7->Draw("histo");
       Double_t x7;
       if      (collidingsystem == 0) x7 = 0.9;
       else if (collidingsystem == 1) x7 = 0.2;
       else if (collidingsystem == 2) x7 = 0.4;
       TLine *line7 = new TLine(x7,0.,x7,hvar7->GetBinContent(hvar7->GetMaximumBin()));
       line7->SetLineColor(kRed);
       line7->SetLineStyle(9);
       line7->SetLineWidth(2.0);
       line7->Draw("same");
          Bool_t check_7 = checkUnderTheLimit(hvar7, x7);
          if (check_7) { cout<<"The cut is OK!!"<<endl; t1->Draw(); }
          else         { cout<<"The cut is NOT OK!!"<<endl; t2->Draw(); }
       //Pad3: Min DCA V0 To PV
       c2->cd(3);
       gPad->SetLogy();
       TH1D *hvar8 = cf->ShowProjection(8,icasType);
       hvar8->GetXaxis()->SetRangeUser(0.,0.3);
       hvar8->Draw("histo");
       Double_t x8;
       if      (collidingsystem == 0) x8 = 0.05;
       else if (collidingsystem == 1) x8 = 0.01;
       else if (collidingsystem == 2) x8 = 0.05;
       TLine *line8 = new TLine(x8,0.,x8,hvar8->GetBinContent(hvar8->GetMaximumBin()));
       line8->SetLineColor(kRed);
       line8->SetLineStyle(9);
       line8->SetLineWidth(2.0);
       line8->Draw("same");
          Bool_t check_8 = checkUnderTheLimit(hvar8, x8);
          if (check_8) { cout<<"The cut is OK!!"<<endl; t1->Draw(); }
          else         { cout<<"The cut is NOT OK!!"<<endl; t2->Draw(); }
       //Pad 4: Min DCA Pos To PV
       c2->cd(4);
       gPad->SetLogy();
       TH1D *hvar9 = cf->ShowProjection(9,icasType);
       hvar9->GetXaxis()->SetRangeUser(0.,0.2);
       hvar9->Draw("histo");
       Double_t x9;
       if      (collidingsystem == 0) x9 = 0.1;
       else if (collidingsystem == 1) x9 = 0.05;
       else if (collidingsystem == 2) x9 = 0.02;
       TLine *line9 = new TLine(x9,0.,x9,hvar9->GetBinContent(hvar9->GetMaximumBin()));
       line9->SetLineColor(kRed);
       line9->SetLineStyle(9);
       line9->SetLineWidth(2.0);
       line9->Draw("same");
          Bool_t check_9 = checkUnderTheLimit(hvar9, x9);
          if (check_9) { cout<<"The cut is OK!!"<<endl; t1->Draw(); }
          else         { cout<<"The cut is NOT OK!!"<<endl; t2->Draw(); }
       //Pad 5: Min DCA Neg To PV
       c2->cd(5);
       gPad->SetLogy();
       TH1D *hvar10 = cf->ShowProjection(10,icasType);
       hvar10->GetXaxis()->SetRangeUser(0.,0.2);
       hvar10->Draw("histo");
       Double_t x10;
       if      (collidingsystem == 0) x10 = 0.1;
       else if (collidingsystem == 1) x10 = 0.05;
       else if (collidingsystem == 2) x10 = 0.02;
       TLine *line10 = new TLine(x10,0.,x10,hvar10->GetBinContent(hvar10->GetMaximumBin()));
       line10->SetLineColor(kRed);
       line10->SetLineStyle(9);
       line10->SetLineWidth(2.0);
       line10->Draw("same");
          Bool_t check_10 = checkUnderTheLimit(hvar10, x10);
          if (check_10) { cout<<"The cut is OK!!"<<endl; t1->Draw(); }
          else         { cout<<"The cut is NOT OK!!"<<endl; t2->Draw(); }
       //Pad 6: V0 cosine of Pointing Angle to Xi vtx
       c2->cd(6);
       gPad->SetLogy();
       TH1D *hvar20 = cf->ShowProjection(18,icasType);
       Double_t max20 = hvar20->GetBinContent(hvar20->GetMaximumBin());
       hvar20->GetYaxis()->SetRangeUser(0.01,max20*1.5);
       hvar20->Draw("histo");
     c2->SaveAs("fig_lf_Multistrange.pdf");

     //________________________________
     //DEFINE 3rd CANVAS AND DRAW PLOTS
     TCanvas *c3 = new TCanvas("c3","",1200,800);
     c3->Divide(2,2);
       //Pad 1: Transverse momentum
       c3->cd(1);
       TH1D *hvar13 = cf->ShowProjection(13,icasType);
       hvar13->Draw("histo");
       tcasc->Draw();
       //Pad 2: Y
       c3->cd(2);
       TH1D *hvar14 = cf->ShowProjection(14+icasType/2,icasType);
       hvar14->Draw("histo");
       //Pad 3: Cascade proper length
       c3->cd(3);
       TH1D *hvar18;
       hvar18 = cf->ShowProjection(16,icasType);
       hvar18->GetXaxis()->SetRangeUser(0.,90.);
       hvar18->Draw("histo");
       //Pad 4: V0 proper length 
       c3->cd(4);
       TH1D *hvar19;
       hvar19 = cf->ShowProjection(17,icasType);
       hvar19->GetXaxis()->SetRangeUser(0.,90.);
       hvar19->Draw("histo");
       //Pad 6
       // empty 
     c3->SaveAs("fig_lf_Multistrange.pdf");

     //________________________________ 
     //DEFINE 4th CANVAS AND DRAW PLOTS
     TCanvas *c4 = new TCanvas("c4","",1200,800);
     c4->Divide(2,2);
       //Pad1: invariant mass fit
       c4->cd(1);
       TH1D *hvar23 = cf->ShowProjection(11+icasType/2,icasType);
       hvar23->Draw("histo");
       tcasc->Draw();
        // - SOME PARAMETER VALUE
        Bool_t kfitgauss = kFALSE;
        Bool_t kfitleft  = kFALSE;
        Bool_t kfitright = kFALSE;
        // - SOME DEFINITIONS
        Float_t lowlimmass;
        Float_t uplimmass;
        Float_t lowgausslim;
        Float_t upgausslim;
        if (icasType==0||icasType==1) {
            lowlimmass=1.30;
            uplimmass=1.34;
            lowgausslim=1.312;
            upgausslim=1.332;
        } else {
            lowlimmass=1.645;
            uplimmass=1.70;
            lowgausslim=1.668;
            upgausslim=1.678;
        }
        TF1*  fitinvmass = new TF1("fitinvmass","gaus(0)+pol2(3)",lowlimmass,uplimmass);
        fitinvmass->SetParName(0, "cnstntG");
        fitinvmass->SetParName(1, "meanG");
        fitinvmass->SetParName(2, "sigmaG");
        fitinvmass->SetParLimits(0,0.,500000.);
        if (icasType==0||icasType==1) {
            fitinvmass->SetParameter(1, 1.32171);
            fitinvmass->SetParLimits(1, 1.31,1.33);
            fitinvmass->SetParLimits(2,0.001,0.005);
        } else {
            fitinvmass->SetParameter(1, 1.67245);
            fitinvmass->SetParLimits(1, 1.664,1.68);
            fitinvmass->SetParLimits(2,0.0008,0.006);
        }
        hvar23->Fit("fitinvmass","rimeN");
        fitinvmass->SetLineColor(kRed);
        fitinvmass->Draw("same");
        Float_t meanGauss   = fitinvmass->GetParameter(1);
        Float_t sigmaGauss  = fitinvmass->GetParameter(2);
       cout<<"Mean: "<<meanGauss<<endl;
       cout<<"Sigma: "<<sigmaGauss<<endl;
       //Pad2: Text
       c4->cd(2);
       Float_t refwidth = 0.002;
       if (icasType > 1) refwidth = 0.0025;
       TPaveText *pave1 = new TPaveText(0.05,0.3,0.95,0.7);
       pave1->SetFillColor(0);
       pave1->SetTextSize(0.04);
       pave1->SetTextAlign(12);
       pave1->AddText("Invariant mass distribution #color[4]{WITH} PID on dauther tracks");
       if (icasType < 2) pave1->AddText("PDG mass: 1.32171 GeV/c^{2}");
       else              pave1->AddText("PDG mass: 1.67245 GeV/c^{2}");
       pave1->AddText(Form("#color[1]{Mass from Fit: %.5f #pm %.5f GeV/c^{2}}",meanGauss,sigmaGauss));
       if (sigmaGauss > refwidth - 0.0003 && sigmaGauss < refwidth + 0.0003) pave1->AddText("#color[3]{OK!! The width is compatible with standard.}");
       else                                                                  pave1->AddText("#color[2]{NOT OK!! Problem.}");
       pave1->Draw();
       cout<<"   "<<refwidth - 0.0003<<"<"<<sigmaGauss<<"<"<<refwidth + 0.0003<<endl;
       //Pad3: invariant mass fit
       c4->cd(3);
       TH1D *hvar24;
       if      (icasType == 0) hvar24 = (TH1D*) hlist->FindObject(Form("fHistMassXiMinus"));
       else if (icasType == 1) hvar24 = (TH1D*) hlist->FindObject(Form("fHistMassXiPlus"));
       else if (icasType == 2) hvar24 = (TH1D*) hlist->FindObject(Form("fHistMassOmegaMinus"));
       else if (icasType == 3) hvar24 = (TH1D*) hlist->FindObject(Form("fHistMassOmegaPlus"));
       hvar24->Draw("histo");
        TF1*  fitinvmassnoPID = new TF1("fitinvmassnoPID","gaus(0)+pol2(3)",lowlimmass,uplimmass);
        fitinvmassnoPID->SetParName(0, "cnstntG");
        fitinvmassnoPID->SetParName(1, "meanG");
        fitinvmassnoPID->SetParName(2, "sigmaG");
        fitinvmassnoPID->SetParLimits(0,0.,500000.);
        if (icasType==0||icasType==1) {
            fitinvmassnoPID->SetParameter(1, 1.32171);
            fitinvmassnoPID->SetParLimits(1, 1.31,1.33);
            fitinvmassnoPID->SetParLimits(2,0.001,0.005);
        } else {
            fitinvmassnoPID->SetParameter(1, 1.67245);
            fitinvmassnoPID->SetParLimits(1, 1.664,1.68);
            fitinvmassnoPID->SetParLimits(2,0.0008,0.006);
        }
        hvar24->Fit("fitinvmassnoPID","rimeN");
        fitinvmassnoPID->SetLineColor(kRed);
        fitinvmassnoPID->Draw("same");
        Float_t meanGaussnoPID   = fitinvmassnoPID->GetParameter(1);
        Float_t sigmaGaussnoPID  = fitinvmassnoPID->GetParameter(2);
       cout<<"Mean: "<<meanGaussnoPID<<endl;
       cout<<"Sigma: "<<sigmaGaussnoPID<<endl;
       //Pad4: Text
       c4->cd(4);
       Float_t refwidth = 0.002;
       if (icasType > 1) refwidth = 0.0025;
       TPaveText *pave2 = new TPaveText(0.05,0.3,0.95,0.7);
       pave2->SetFillColor(0);
       pave2->SetTextSize(0.04);
       pave2->SetTextAlign(12);
       pave2->AddText("Invariant mass distribution #color[4]{WITHOUT} PID on dauther tracks");
       if (icasType < 2) pave2->AddText("PDG mass: 1.32171 GeV/c^{2}");
       else              pave2->AddText("PDG mass: 1.67245 GeV/c^{2}");
       pave2->AddText(Form("#color[1]{Mass from Fit: %.5f #pm %.5f GeV/c^{2}}",meanGaussnoPID,sigmaGaussnoPID));
       if (sigmaGaussnoPID > refwidth - 0.0003 && sigmaGaussnoPID < refwidth + 0.0003) pave2->AddText("#color[3]{OK!! The width is compatible with standard.}");
       else                                                                            pave2->AddText("#color[2]{NOT OK!! Problem.}");
       pave2->Draw();
       cout<<"   "<<refwidth - 0.0003<<"<"<<sigmaGaussnoPID<<"<"<<refwidth + 0.0003<<endl;
     c4->SaveAs("fig_lf_Multistrange.pdf");


     //________________________________ 
     //DEFINE 6th CANVAS AND DRAW PLOTS
     TCanvas *c6 = new TCanvas("c6","",1200,400);//1200,270);
     c6->Divide(2,1);
       //Pad 1: Event Selection
       c6->cd(1);
       TH1D* hvar26 = hlist->FindObject(Form("fHistEventSel"));
       hvar26->Draw("histo");
       //Pad 2: Centrality/Multiplicity distribution
       c6->cd(2);
       TH1D *hvar16 = cf->ShowProjection(19,icasType);
       hvar16->Draw("histo");
     if      (!isMC) c6->SaveAs("fig_lf_Multistrange.pdf)");
     else if (isMC) c6->SaveAs("fig_lf_Multistrange.pdf");


     //_______________________________
     //CHECK ON MONTE CARLO PRODUCTION
     if (isMC) { 
           
            AliCFContainer *cfMC = (AliCFContainer*) (f1->Get("PWGLFStrangeness.outputCheckCascade/fCFContCascadeMCgen"));
            //DEFINE 6th CANVAS AND DRAW PLOTS
            TCanvas *c7 = new TCanvas("c7","",1200,800);
            c7->Divide(2,3);
            //Pad 1: Total Momentum
            c7->cd(1);
            TH1D *hvar17 = cfMC->ShowProjection(0,icasType);
            hvar17->Draw("histo");
            tcasc->Draw();
            //Pad 2: Transverse Momentum
            c7->cd(2);
            TH1D *hvar18 = cfMC->ShowProjection(1,icasType);
            hvar18->Draw("histo");
            //Pad 3: Rapidity (y)
            c7->cd(3);
            TH1D *hvar19 = cfMC->ShowProjection(2,icasType);
            hvar19->Draw("histo");
            //Pad 4: Pseudo-rapidity (eta)
            c7->cd(4);
            TH1D *hvar20 = cfMC->ShowProjection(3,icasType);
            hvar20->Draw("histo");
            //Pad 5: Theta
            c7->cd(5);
            TH1D *hvar21 = cfMC->ShowProjection(4,icasType);
            hvar21->Draw("histo");
            //Pad 6: Phi
            c7->cd(6);
            TH1D *hvar22 = cfMC->ShowProjection(5,icasType);
            hvar22->Draw("histo");
            c7->SaveAs("fig_lf_Multistrange.pdf)");
     }


}



//______________________
Bool_t checkUnderTheLimit(TH1D *lHist, Double_t limit) {

      Int_t binlimit = lHist->FindBin(limit);
      Bool_t checkOk = kTRUE;
      for (Int_t i = 1; i < binlimit; i++) {
           Int_t content = 0;
           content = lHist->GetBinContent(i);
           if (content != 0) checkOk = kFALSE;
           //cout<<"Content bin "<<i<<": "<<content<<endl;
      }
      return checkOk;

}

//______________________
Bool_t checkOverTheLimit(TH1D *lHist, Double_t limit) {

      Int_t binlimit = lHist->FindBin(limit);
      Int_t lastbin  = lHist->GetNbinsX();
      Bool_t checkOk = kTRUE;
      for (Int_t i = binlimit; i < lastbin+1; i++) {
           Int_t content = 0;
           content = lHist->GetBinContent(i);
           if (content != 0) checkOk = kFALSE;
           //cout<<"Content bin "<<i<<": "<<content<<endl;
      }
      return checkOk;

}



 PostProcessQAMultistrange.C:1
 PostProcessQAMultistrange.C:2
 PostProcessQAMultistrange.C:3
 PostProcessQAMultistrange.C:4
 PostProcessQAMultistrange.C:5
 PostProcessQAMultistrange.C:6
 PostProcessQAMultistrange.C:7
 PostProcessQAMultistrange.C:8
 PostProcessQAMultistrange.C:9
 PostProcessQAMultistrange.C:10
 PostProcessQAMultistrange.C:11
 PostProcessQAMultistrange.C:12
 PostProcessQAMultistrange.C:13
 PostProcessQAMultistrange.C:14
 PostProcessQAMultistrange.C:15
 PostProcessQAMultistrange.C:16
 PostProcessQAMultistrange.C:17
 PostProcessQAMultistrange.C:18
 PostProcessQAMultistrange.C:19
 PostProcessQAMultistrange.C:20
 PostProcessQAMultistrange.C:21
 PostProcessQAMultistrange.C:22
 PostProcessQAMultistrange.C:23
 PostProcessQAMultistrange.C:24
 PostProcessQAMultistrange.C:25
 PostProcessQAMultistrange.C:26
 PostProcessQAMultistrange.C:27
 PostProcessQAMultistrange.C:28
 PostProcessQAMultistrange.C:29
 PostProcessQAMultistrange.C:30
 PostProcessQAMultistrange.C:31
 PostProcessQAMultistrange.C:32
 PostProcessQAMultistrange.C:33
 PostProcessQAMultistrange.C:34
 PostProcessQAMultistrange.C:35
 PostProcessQAMultistrange.C:36
 PostProcessQAMultistrange.C:37
 PostProcessQAMultistrange.C:38
 PostProcessQAMultistrange.C:39
 PostProcessQAMultistrange.C:40
 PostProcessQAMultistrange.C:41
 PostProcessQAMultistrange.C:42
 PostProcessQAMultistrange.C:43
 PostProcessQAMultistrange.C:44
 PostProcessQAMultistrange.C:45
 PostProcessQAMultistrange.C:46
 PostProcessQAMultistrange.C:47
 PostProcessQAMultistrange.C:48
 PostProcessQAMultistrange.C:49
 PostProcessQAMultistrange.C:50
 PostProcessQAMultistrange.C:51
 PostProcessQAMultistrange.C:52
 PostProcessQAMultistrange.C:53
 PostProcessQAMultistrange.C:54
 PostProcessQAMultistrange.C:55
 PostProcessQAMultistrange.C:56
 PostProcessQAMultistrange.C:57
 PostProcessQAMultistrange.C:58
 PostProcessQAMultistrange.C:59
 PostProcessQAMultistrange.C:60
 PostProcessQAMultistrange.C:61
 PostProcessQAMultistrange.C:62
 PostProcessQAMultistrange.C:63
 PostProcessQAMultistrange.C:64
 PostProcessQAMultistrange.C:65
 PostProcessQAMultistrange.C:66
 PostProcessQAMultistrange.C:67
 PostProcessQAMultistrange.C:68
 PostProcessQAMultistrange.C:69
 PostProcessQAMultistrange.C:70
 PostProcessQAMultistrange.C:71
 PostProcessQAMultistrange.C:72
 PostProcessQAMultistrange.C:73
 PostProcessQAMultistrange.C:74
 PostProcessQAMultistrange.C:75
 PostProcessQAMultistrange.C:76
 PostProcessQAMultistrange.C:77
 PostProcessQAMultistrange.C:78
 PostProcessQAMultistrange.C:79
 PostProcessQAMultistrange.C:80
 PostProcessQAMultistrange.C:81
 PostProcessQAMultistrange.C:82
 PostProcessQAMultistrange.C:83
 PostProcessQAMultistrange.C:84
 PostProcessQAMultistrange.C:85
 PostProcessQAMultistrange.C:86
 PostProcessQAMultistrange.C:87
 PostProcessQAMultistrange.C:88
 PostProcessQAMultistrange.C:89
 PostProcessQAMultistrange.C:90
 PostProcessQAMultistrange.C:91
 PostProcessQAMultistrange.C:92
 PostProcessQAMultistrange.C:93
 PostProcessQAMultistrange.C:94
 PostProcessQAMultistrange.C:95
 PostProcessQAMultistrange.C:96
 PostProcessQAMultistrange.C:97
 PostProcessQAMultistrange.C:98
 PostProcessQAMultistrange.C:99
 PostProcessQAMultistrange.C:100
 PostProcessQAMultistrange.C:101
 PostProcessQAMultistrange.C:102
 PostProcessQAMultistrange.C:103
 PostProcessQAMultistrange.C:104
 PostProcessQAMultistrange.C:105
 PostProcessQAMultistrange.C:106
 PostProcessQAMultistrange.C:107
 PostProcessQAMultistrange.C:108
 PostProcessQAMultistrange.C:109
 PostProcessQAMultistrange.C:110
 PostProcessQAMultistrange.C:111
 PostProcessQAMultistrange.C:112
 PostProcessQAMultistrange.C:113
 PostProcessQAMultistrange.C:114
 PostProcessQAMultistrange.C:115
 PostProcessQAMultistrange.C:116
 PostProcessQAMultistrange.C:117
 PostProcessQAMultistrange.C:118
 PostProcessQAMultistrange.C:119
 PostProcessQAMultistrange.C:120
 PostProcessQAMultistrange.C:121
 PostProcessQAMultistrange.C:122
 PostProcessQAMultistrange.C:123
 PostProcessQAMultistrange.C:124
 PostProcessQAMultistrange.C:125
 PostProcessQAMultistrange.C:126
 PostProcessQAMultistrange.C:127
 PostProcessQAMultistrange.C:128
 PostProcessQAMultistrange.C:129
 PostProcessQAMultistrange.C:130
 PostProcessQAMultistrange.C:131
 PostProcessQAMultistrange.C:132
 PostProcessQAMultistrange.C:133
 PostProcessQAMultistrange.C:134
 PostProcessQAMultistrange.C:135
 PostProcessQAMultistrange.C:136
 PostProcessQAMultistrange.C:137
 PostProcessQAMultistrange.C:138
 PostProcessQAMultistrange.C:139
 PostProcessQAMultistrange.C:140
 PostProcessQAMultistrange.C:141
 PostProcessQAMultistrange.C:142
 PostProcessQAMultistrange.C:143
 PostProcessQAMultistrange.C:144
 PostProcessQAMultistrange.C:145
 PostProcessQAMultistrange.C:146
 PostProcessQAMultistrange.C:147
 PostProcessQAMultistrange.C:148
 PostProcessQAMultistrange.C:149
 PostProcessQAMultistrange.C:150
 PostProcessQAMultistrange.C:151
 PostProcessQAMultistrange.C:152
 PostProcessQAMultistrange.C:153
 PostProcessQAMultistrange.C:154
 PostProcessQAMultistrange.C:155
 PostProcessQAMultistrange.C:156
 PostProcessQAMultistrange.C:157
 PostProcessQAMultistrange.C:158
 PostProcessQAMultistrange.C:159
 PostProcessQAMultistrange.C:160
 PostProcessQAMultistrange.C:161
 PostProcessQAMultistrange.C:162
 PostProcessQAMultistrange.C:163
 PostProcessQAMultistrange.C:164
 PostProcessQAMultistrange.C:165
 PostProcessQAMultistrange.C:166
 PostProcessQAMultistrange.C:167
 PostProcessQAMultistrange.C:168
 PostProcessQAMultistrange.C:169
 PostProcessQAMultistrange.C:170
 PostProcessQAMultistrange.C:171
 PostProcessQAMultistrange.C:172
 PostProcessQAMultistrange.C:173
 PostProcessQAMultistrange.C:174
 PostProcessQAMultistrange.C:175
 PostProcessQAMultistrange.C:176
 PostProcessQAMultistrange.C:177
 PostProcessQAMultistrange.C:178
 PostProcessQAMultistrange.C:179
 PostProcessQAMultistrange.C:180
 PostProcessQAMultistrange.C:181
 PostProcessQAMultistrange.C:182
 PostProcessQAMultistrange.C:183
 PostProcessQAMultistrange.C:184
 PostProcessQAMultistrange.C:185
 PostProcessQAMultistrange.C:186
 PostProcessQAMultistrange.C:187
 PostProcessQAMultistrange.C:188
 PostProcessQAMultistrange.C:189
 PostProcessQAMultistrange.C:190
 PostProcessQAMultistrange.C:191
 PostProcessQAMultistrange.C:192
 PostProcessQAMultistrange.C:193
 PostProcessQAMultistrange.C:194
 PostProcessQAMultistrange.C:195
 PostProcessQAMultistrange.C:196
 PostProcessQAMultistrange.C:197
 PostProcessQAMultistrange.C:198
 PostProcessQAMultistrange.C:199
 PostProcessQAMultistrange.C:200
 PostProcessQAMultistrange.C:201
 PostProcessQAMultistrange.C:202
 PostProcessQAMultistrange.C:203
 PostProcessQAMultistrange.C:204
 PostProcessQAMultistrange.C:205
 PostProcessQAMultistrange.C:206
 PostProcessQAMultistrange.C:207
 PostProcessQAMultistrange.C:208
 PostProcessQAMultistrange.C:209
 PostProcessQAMultistrange.C:210
 PostProcessQAMultistrange.C:211
 PostProcessQAMultistrange.C:212
 PostProcessQAMultistrange.C:213
 PostProcessQAMultistrange.C:214
 PostProcessQAMultistrange.C:215
 PostProcessQAMultistrange.C:216
 PostProcessQAMultistrange.C:217
 PostProcessQAMultistrange.C:218
 PostProcessQAMultistrange.C:219
 PostProcessQAMultistrange.C:220
 PostProcessQAMultistrange.C:221
 PostProcessQAMultistrange.C:222
 PostProcessQAMultistrange.C:223
 PostProcessQAMultistrange.C:224
 PostProcessQAMultistrange.C:225
 PostProcessQAMultistrange.C:226
 PostProcessQAMultistrange.C:227
 PostProcessQAMultistrange.C:228
 PostProcessQAMultistrange.C:229
 PostProcessQAMultistrange.C:230
 PostProcessQAMultistrange.C:231
 PostProcessQAMultistrange.C:232
 PostProcessQAMultistrange.C:233
 PostProcessQAMultistrange.C:234
 PostProcessQAMultistrange.C:235
 PostProcessQAMultistrange.C:236
 PostProcessQAMultistrange.C:237
 PostProcessQAMultistrange.C:238
 PostProcessQAMultistrange.C:239
 PostProcessQAMultistrange.C:240
 PostProcessQAMultistrange.C:241
 PostProcessQAMultistrange.C:242
 PostProcessQAMultistrange.C:243
 PostProcessQAMultistrange.C:244
 PostProcessQAMultistrange.C:245
 PostProcessQAMultistrange.C:246
 PostProcessQAMultistrange.C:247
 PostProcessQAMultistrange.C:248
 PostProcessQAMultistrange.C:249
 PostProcessQAMultistrange.C:250
 PostProcessQAMultistrange.C:251
 PostProcessQAMultistrange.C:252
 PostProcessQAMultistrange.C:253
 PostProcessQAMultistrange.C:254
 PostProcessQAMultistrange.C:255
 PostProcessQAMultistrange.C:256
 PostProcessQAMultistrange.C:257
 PostProcessQAMultistrange.C:258
 PostProcessQAMultistrange.C:259
 PostProcessQAMultistrange.C:260
 PostProcessQAMultistrange.C:261
 PostProcessQAMultistrange.C:262
 PostProcessQAMultistrange.C:263
 PostProcessQAMultistrange.C:264
 PostProcessQAMultistrange.C:265
 PostProcessQAMultistrange.C:266
 PostProcessQAMultistrange.C:267
 PostProcessQAMultistrange.C:268
 PostProcessQAMultistrange.C:269
 PostProcessQAMultistrange.C:270
 PostProcessQAMultistrange.C:271
 PostProcessQAMultistrange.C:272
 PostProcessQAMultistrange.C:273
 PostProcessQAMultistrange.C:274
 PostProcessQAMultistrange.C:275
 PostProcessQAMultistrange.C:276
 PostProcessQAMultistrange.C:277
 PostProcessQAMultistrange.C:278
 PostProcessQAMultistrange.C:279
 PostProcessQAMultistrange.C:280
 PostProcessQAMultistrange.C:281
 PostProcessQAMultistrange.C:282
 PostProcessQAMultistrange.C:283
 PostProcessQAMultistrange.C:284
 PostProcessQAMultistrange.C:285
 PostProcessQAMultistrange.C:286
 PostProcessQAMultistrange.C:287
 PostProcessQAMultistrange.C:288
 PostProcessQAMultistrange.C:289
 PostProcessQAMultistrange.C:290
 PostProcessQAMultistrange.C:291
 PostProcessQAMultistrange.C:292
 PostProcessQAMultistrange.C:293
 PostProcessQAMultistrange.C:294
 PostProcessQAMultistrange.C:295
 PostProcessQAMultistrange.C:296
 PostProcessQAMultistrange.C:297
 PostProcessQAMultistrange.C:298
 PostProcessQAMultistrange.C:299
 PostProcessQAMultistrange.C:300
 PostProcessQAMultistrange.C:301
 PostProcessQAMultistrange.C:302
 PostProcessQAMultistrange.C:303
 PostProcessQAMultistrange.C:304
 PostProcessQAMultistrange.C:305
 PostProcessQAMultistrange.C:306
 PostProcessQAMultistrange.C:307
 PostProcessQAMultistrange.C:308
 PostProcessQAMultistrange.C:309
 PostProcessQAMultistrange.C:310
 PostProcessQAMultistrange.C:311
 PostProcessQAMultistrange.C:312
 PostProcessQAMultistrange.C:313
 PostProcessQAMultistrange.C:314
 PostProcessQAMultistrange.C:315
 PostProcessQAMultistrange.C:316
 PostProcessQAMultistrange.C:317
 PostProcessQAMultistrange.C:318
 PostProcessQAMultistrange.C:319
 PostProcessQAMultistrange.C:320
 PostProcessQAMultistrange.C:321
 PostProcessQAMultistrange.C:322
 PostProcessQAMultistrange.C:323
 PostProcessQAMultistrange.C:324
 PostProcessQAMultistrange.C:325
 PostProcessQAMultistrange.C:326
 PostProcessQAMultistrange.C:327
 PostProcessQAMultistrange.C:328
 PostProcessQAMultistrange.C:329
 PostProcessQAMultistrange.C:330
 PostProcessQAMultistrange.C:331
 PostProcessQAMultistrange.C:332
 PostProcessQAMultistrange.C:333
 PostProcessQAMultistrange.C:334
 PostProcessQAMultistrange.C:335
 PostProcessQAMultistrange.C:336
 PostProcessQAMultistrange.C:337
 PostProcessQAMultistrange.C:338
 PostProcessQAMultistrange.C:339
 PostProcessQAMultistrange.C:340
 PostProcessQAMultistrange.C:341
 PostProcessQAMultistrange.C:342
 PostProcessQAMultistrange.C:343
 PostProcessQAMultistrange.C:344
 PostProcessQAMultistrange.C:345
 PostProcessQAMultistrange.C:346
 PostProcessQAMultistrange.C:347
 PostProcessQAMultistrange.C:348
 PostProcessQAMultistrange.C:349
 PostProcessQAMultistrange.C:350
 PostProcessQAMultistrange.C:351
 PostProcessQAMultistrange.C:352
 PostProcessQAMultistrange.C:353
 PostProcessQAMultistrange.C:354
 PostProcessQAMultistrange.C:355
 PostProcessQAMultistrange.C:356
 PostProcessQAMultistrange.C:357
 PostProcessQAMultistrange.C:358
 PostProcessQAMultistrange.C:359
 PostProcessQAMultistrange.C:360
 PostProcessQAMultistrange.C:361
 PostProcessQAMultistrange.C:362
 PostProcessQAMultistrange.C:363
 PostProcessQAMultistrange.C:364
 PostProcessQAMultistrange.C:365
 PostProcessQAMultistrange.C:366
 PostProcessQAMultistrange.C:367
 PostProcessQAMultistrange.C:368
 PostProcessQAMultistrange.C:369
 PostProcessQAMultistrange.C:370
 PostProcessQAMultistrange.C:371
 PostProcessQAMultistrange.C:372
 PostProcessQAMultistrange.C:373
 PostProcessQAMultistrange.C:374
 PostProcessQAMultistrange.C:375
 PostProcessQAMultistrange.C:376
 PostProcessQAMultistrange.C:377
 PostProcessQAMultistrange.C:378
 PostProcessQAMultistrange.C:379
 PostProcessQAMultistrange.C:380
 PostProcessQAMultistrange.C:381
 PostProcessQAMultistrange.C:382
 PostProcessQAMultistrange.C:383
 PostProcessQAMultistrange.C:384
 PostProcessQAMultistrange.C:385
 PostProcessQAMultistrange.C:386
 PostProcessQAMultistrange.C:387
 PostProcessQAMultistrange.C:388
 PostProcessQAMultistrange.C:389
 PostProcessQAMultistrange.C:390
 PostProcessQAMultistrange.C:391
 PostProcessQAMultistrange.C:392
 PostProcessQAMultistrange.C:393
 PostProcessQAMultistrange.C:394
 PostProcessQAMultistrange.C:395
 PostProcessQAMultistrange.C:396
 PostProcessQAMultistrange.C:397
 PostProcessQAMultistrange.C:398
 PostProcessQAMultistrange.C:399
 PostProcessQAMultistrange.C:400
 PostProcessQAMultistrange.C:401
 PostProcessQAMultistrange.C:402
 PostProcessQAMultistrange.C:403
 PostProcessQAMultistrange.C:404
 PostProcessQAMultistrange.C:405
 PostProcessQAMultistrange.C:406
 PostProcessQAMultistrange.C:407
 PostProcessQAMultistrange.C:408
 PostProcessQAMultistrange.C:409
 PostProcessQAMultistrange.C:410
 PostProcessQAMultistrange.C:411
 PostProcessQAMultistrange.C:412
 PostProcessQAMultistrange.C:413
 PostProcessQAMultistrange.C:414
 PostProcessQAMultistrange.C:415
 PostProcessQAMultistrange.C:416
 PostProcessQAMultistrange.C:417
 PostProcessQAMultistrange.C:418
 PostProcessQAMultistrange.C:419
 PostProcessQAMultistrange.C:420
 PostProcessQAMultistrange.C:421
 PostProcessQAMultistrange.C:422
 PostProcessQAMultistrange.C:423
 PostProcessQAMultistrange.C:424
 PostProcessQAMultistrange.C:425
 PostProcessQAMultistrange.C:426
 PostProcessQAMultistrange.C:427
 PostProcessQAMultistrange.C:428
 PostProcessQAMultistrange.C:429
 PostProcessQAMultistrange.C:430
 PostProcessQAMultistrange.C:431
 PostProcessQAMultistrange.C:432
 PostProcessQAMultistrange.C:433
 PostProcessQAMultistrange.C:434
 PostProcessQAMultistrange.C:435
 PostProcessQAMultistrange.C:436
 PostProcessQAMultistrange.C:437
 PostProcessQAMultistrange.C:438
 PostProcessQAMultistrange.C:439
 PostProcessQAMultistrange.C:440
 PostProcessQAMultistrange.C:441
 PostProcessQAMultistrange.C:442
 PostProcessQAMultistrange.C:443
 PostProcessQAMultistrange.C:444
 PostProcessQAMultistrange.C:445
 PostProcessQAMultistrange.C:446
 PostProcessQAMultistrange.C:447
 PostProcessQAMultistrange.C:448
 PostProcessQAMultistrange.C:449
 PostProcessQAMultistrange.C:450
 PostProcessQAMultistrange.C:451
 PostProcessQAMultistrange.C:452
 PostProcessQAMultistrange.C:453
 PostProcessQAMultistrange.C:454
 PostProcessQAMultistrange.C:455
 PostProcessQAMultistrange.C:456
 PostProcessQAMultistrange.C:457
 PostProcessQAMultistrange.C:458
 PostProcessQAMultistrange.C:459
 PostProcessQAMultistrange.C:460
 PostProcessQAMultistrange.C:461
 PostProcessQAMultistrange.C:462
 PostProcessQAMultistrange.C:463
 PostProcessQAMultistrange.C:464
 PostProcessQAMultistrange.C:465
 PostProcessQAMultistrange.C:466
 PostProcessQAMultistrange.C:467
 PostProcessQAMultistrange.C:468
 PostProcessQAMultistrange.C:469
 PostProcessQAMultistrange.C:470
 PostProcessQAMultistrange.C:471
 PostProcessQAMultistrange.C:472
 PostProcessQAMultistrange.C:473
 PostProcessQAMultistrange.C:474
 PostProcessQAMultistrange.C:475
 PostProcessQAMultistrange.C:476
 PostProcessQAMultistrange.C:477
 PostProcessQAMultistrange.C:478
 PostProcessQAMultistrange.C:479
 PostProcessQAMultistrange.C:480
 PostProcessQAMultistrange.C:481
 PostProcessQAMultistrange.C:482
 PostProcessQAMultistrange.C:483
 PostProcessQAMultistrange.C:484
 PostProcessQAMultistrange.C:485
 PostProcessQAMultistrange.C:486
 PostProcessQAMultistrange.C:487
 PostProcessQAMultistrange.C:488
 PostProcessQAMultistrange.C:489
 PostProcessQAMultistrange.C:490
 PostProcessQAMultistrange.C:491
 PostProcessQAMultistrange.C:492
 PostProcessQAMultistrange.C:493
 PostProcessQAMultistrange.C:494
 PostProcessQAMultistrange.C:495
 PostProcessQAMultistrange.C:496
 PostProcessQAMultistrange.C:497
 PostProcessQAMultistrange.C:498
 PostProcessQAMultistrange.C:499
 PostProcessQAMultistrange.C:500
 PostProcessQAMultistrange.C:501
 PostProcessQAMultistrange.C:502
 PostProcessQAMultistrange.C:503
 PostProcessQAMultistrange.C:504
 PostProcessQAMultistrange.C:505
 PostProcessQAMultistrange.C:506
 PostProcessQAMultistrange.C:507
 PostProcessQAMultistrange.C:508
 PostProcessQAMultistrange.C:509
 PostProcessQAMultistrange.C:510
 PostProcessQAMultistrange.C:511
 PostProcessQAMultistrange.C:512
 PostProcessQAMultistrange.C:513
 PostProcessQAMultistrange.C:514
 PostProcessQAMultistrange.C:515
 PostProcessQAMultistrange.C:516
 PostProcessQAMultistrange.C:517
 PostProcessQAMultistrange.C:518
 PostProcessQAMultistrange.C:519
 PostProcessQAMultistrange.C:520
 PostProcessQAMultistrange.C:521
 PostProcessQAMultistrange.C:522
 PostProcessQAMultistrange.C:523
 PostProcessQAMultistrange.C:524
 PostProcessQAMultistrange.C:525
 PostProcessQAMultistrange.C:526
 PostProcessQAMultistrange.C:527
 PostProcessQAMultistrange.C:528
 PostProcessQAMultistrange.C:529
 PostProcessQAMultistrange.C:530
 PostProcessQAMultistrange.C:531
 PostProcessQAMultistrange.C:532
 PostProcessQAMultistrange.C:533
 PostProcessQAMultistrange.C:534
 PostProcessQAMultistrange.C:535
 PostProcessQAMultistrange.C:536
 PostProcessQAMultistrange.C:537
 PostProcessQAMultistrange.C:538
 PostProcessQAMultistrange.C:539
 PostProcessQAMultistrange.C:540
 PostProcessQAMultistrange.C:541
 PostProcessQAMultistrange.C:542
 PostProcessQAMultistrange.C:543
 PostProcessQAMultistrange.C:544
 PostProcessQAMultistrange.C:545
 PostProcessQAMultistrange.C:546
 PostProcessQAMultistrange.C:547
 PostProcessQAMultistrange.C:548
 PostProcessQAMultistrange.C:549
 PostProcessQAMultistrange.C:550
 PostProcessQAMultistrange.C:551
 PostProcessQAMultistrange.C:552
 PostProcessQAMultistrange.C:553
 PostProcessQAMultistrange.C:554
 PostProcessQAMultistrange.C:555
 PostProcessQAMultistrange.C:556
 PostProcessQAMultistrange.C:557
 PostProcessQAMultistrange.C:558
 PostProcessQAMultistrange.C:559
 PostProcessQAMultistrange.C:560
 PostProcessQAMultistrange.C:561
 PostProcessQAMultistrange.C:562
 PostProcessQAMultistrange.C:563
 PostProcessQAMultistrange.C:564
 PostProcessQAMultistrange.C:565
 PostProcessQAMultistrange.C:566
 PostProcessQAMultistrange.C:567
 PostProcessQAMultistrange.C:568
 PostProcessQAMultistrange.C:569
 PostProcessQAMultistrange.C:570
 PostProcessQAMultistrange.C:571
 PostProcessQAMultistrange.C:572
 PostProcessQAMultistrange.C:573
 PostProcessQAMultistrange.C:574
 PostProcessQAMultistrange.C:575
 PostProcessQAMultistrange.C:576
 PostProcessQAMultistrange.C:577
 PostProcessQAMultistrange.C:578
 PostProcessQAMultistrange.C:579
 PostProcessQAMultistrange.C:580
 PostProcessQAMultistrange.C:581
 PostProcessQAMultistrange.C:582
 PostProcessQAMultistrange.C:583
 PostProcessQAMultistrange.C:584
 PostProcessQAMultistrange.C:585
 PostProcessQAMultistrange.C:586
 PostProcessQAMultistrange.C:587
 PostProcessQAMultistrange.C:588
 PostProcessQAMultistrange.C:589
 PostProcessQAMultistrange.C:590
 PostProcessQAMultistrange.C:591
 PostProcessQAMultistrange.C:592
 PostProcessQAMultistrange.C:593
 PostProcessQAMultistrange.C:594
 PostProcessQAMultistrange.C:595
 PostProcessQAMultistrange.C:596
 PostProcessQAMultistrange.C:597
 PostProcessQAMultistrange.C:598
 PostProcessQAMultistrange.C:599
 PostProcessQAMultistrange.C:600
 PostProcessQAMultistrange.C:601
 PostProcessQAMultistrange.C:602
 PostProcessQAMultistrange.C:603
 PostProcessQAMultistrange.C:604
 PostProcessQAMultistrange.C:605
 PostProcessQAMultistrange.C:606
 PostProcessQAMultistrange.C:607
 PostProcessQAMultistrange.C:608