ROOT logo
/*
  Macro to study the space charge fluctuations.
  3 functions using the ToyMC + analytical fomula to describe given MC results
 
  function to histogram space charge using the raw data ana anlyzing them
  To use given function - CPU conusming therefore batch farms used
  See  $ALICE_ROOT/TPC/Upgrade/macros/spaceChargeFluctuation.sh macro to see example to run the code
  


  .x $HOME/NimStyle.C
  .x $HOME/rootlogon.C
  .L $ALICE_ROOT/TPC/Upgrade/macros/spaceChargeFluctuation.C+ 

 
  
 */
#include "TMath.h"
#include "TRandom.h"
#include "TTreeStream.h"
#include "TVectorD.h"
#include "TCanvas.h"
#include "TStopwatch.h"
#include "AliTPCParam.h"
#include "AliTPCcalibDB.h"
#include "AliTPCAltroMapping.h"
#include "AliAltroRawStream.h"
#include "AliSysInfo.h"
#include "AliTPCRawStreamV3.h"
#include "AliCDBManager.h"
#include "TGeoGlobalMagField.h"
#include "AliMagF.h"
#include "AliRawReaderRoot.h"
#include "AliRawReader.h"
#include "TH3.h"
#include "TH2.h"
#include "AliTPCCalPad.h"
#include "AliTPCCalROC.h"
#include "TChain.h"
#include "AliXRDPROOFtoolkit.h"
#include "TLegend.h"
#include "TCut.h"
#include "TGraphErrors.h"
#include "TStatToolkit.h"

#include "AliDCSSensor.h"
#include "AliCDBEntry.h"
#include "AliDCSSensorArray.h"
#include "TStyle.h"
#include "AliTPCSpaceCharge3D.h"
#include "AliExternalTrackParam.h"
#include "AliTrackerBase.h"
#include "TDatabasePDG.h"
#include "TROOT.h"
#include "AliMathBase.h"
#include "TLatex.h"
//
// constants
//
Double_t omegaTau=0.325;
//
// Function declaration
//
//   TOY MC
void spaceChargeFluctuationToyMC(Int_t nframes, Double_t interactionRate);
void spaceChargeFluctuationToyDraw();
void spaceChargeFluctuationToyDrawSummary();

//
// RAW data analysis
//
TH1 * GenerateMapRawIons(Int_t useGain,const char *fileName="raw.root", const char *outputName="histo.root", Int_t maxEvents=25);
void DoMerge();
void AnalyzeMaps1D();  // make nice plots
void MakeFluctuationStudy3D(Int_t nhistos, Int_t nevents, Int_t niter);
TH3D *  NormalizeHistoQ(TH3D * hisInput, Bool_t normEpsilon);
//
TH3D *  PermutationHistoZ(TH3D * hisInput, Double_t deltaZ);
TH3D *  PermutationHistoPhi(TH3D * hisInput, Double_t deltaPhi);
TH3D *  PermutationHistoLocalPhi(TH3D * hisInput, Int_t deltaPhi);
void MakeSpaceChargeFluctuationScan(Double_t scale, Int_t nfiles, Int_t sign);
void DrawFluctuationdeltaZ(Int_t stat=0, Double_t norm=10000);
void DrawFluctuationSector(Int_t stat=0, Double_t norm=10000);
void MakeLocalDistortionPlotsGlobalFitPolDrift(Float_t xmin, Float_t xmax);
void MakeLocalDistortionPlots(Int_t npoints=20000, Int_t npointsZ=10000);


void spaceChargeFluctuation(Int_t mode=0, Float_t arg0=0, Float_t arg1=0, Float_t arg2=0){
  //
  // function called from the shell script
  //
  gRandom->SetSeed(0);
  if (mode==0) GenerateMapRawIons(arg0);  
  if (mode==1) DoMerge();  
  if (mode==2) spaceChargeFluctuationToyMC(arg0,arg1);
  if (mode==3) MakeFluctuationStudy3D(10000, arg0, arg1);  
  if (mode==4) MakeSpaceChargeFluctuationScan(arg0,arg1,arg2); // param: scale, nfiles, sign Bz
  if (mode==5) {
    DrawFluctuationdeltaZ(arg0,arg1);
    DrawFluctuationSector(arg0,arg1);
  }
  if (mode==6) { 
    MakeLocalDistortionPlotsGlobalFitPolDrift(arg0,arg1);
  }
  if (mode==7) { 
    MakeLocalDistortionPlots(arg0,arg1);
    
  }
}

void SetGraphTDRStyle(TGraph * graph){
  graph->GetXaxis()->SetLabelSize(0.08);
  graph->GetXaxis()->SetTitleSize(0.08);
  graph->GetYaxis()->SetLabelSize(0.08);
  graph->GetYaxis()->SetTitleSize(0.08);
  graph->GetXaxis()->SetNdivisions(505);
  graph->GetYaxis()->SetNdivisions(510);
}

Double_t RndmdNchdY(Double_t s){
  //
  // dNch/deta - last 2 points inventeted (to find it somewhere ?)
  // 
  //  http://arxiv.org/pdf/1012.1657v2.pdf - table 1.  ALICE PbPb
  //  Scaled according s^0.15
  //  http://arxiv.org/pdf/1210.3615v2.pdf
  //  This we can cite. 
  //  Usage example::
  /*
    TH1F his550("his550","his550",1000,0,3000)
    for (Int_t i=0; i<300000; i++) his550->Fill(RndmdNchdY(5.5));
    his550->Draw();    
    TF1 f1("f1","[0]*x^(-(0.00001+abs([1])))",1,2000)
    f1.SetParameters(1,-1)
    his550->Fit("f1","","",10,3000);
    TH1F his276("his276","his276",1000,0,3000)
    for (Int_t i=0; i<300000; i++) his276->Fill(RndmdNchdY(2.76));
    his276->Draw();    

  */
  static TSpline3 * spline276=0;
  const Double_t sref=2.76; // reference s

  if (!spline276){
    // Refence multiplicities for 2.76 TeV
    // multplicity from archive except of the last  point was set to 0
    //
    const Double_t mult[20]={1601,  1294,   966,  649,   426,  261,  149,  76, 35,      0.001};
    const Double_t cent[20]={2.5,   7.5,    15,   25,    35,   45,   55,   65, 75,   100.};   
    TGraphErrors * gr = new TGraphErrors(10,cent,mult);
    spline276 = new TSpline3("spline276",gr);
  }
  Double_t norm = TMath::Power((s*s)/(sref*sref),0.15);
  spline276->Eval(gRandom->Rndm()*100.);
  return  spline276->Eval(gRandom->Rndm()*100.)*norm;
}





void pileUpToyMC(Int_t nframes){
  //
  //
  //
  /*
    Int)t nframes=1000;
   */
  TTreeSRedirector *pcstream = new TTreeSRedirector("pileup.root","recreate");
  Double_t central = 2350;
  Double_t pmean=5;
  TVectorD vectorT(nframes);
  //
  for (Int_t irate=1; irate<10; irate++){
    printf("rate\t%d\n",irate);
    for (Int_t iframe=0; iframe<nframes; iframe++){
      if (iframe%100000==0)printf("iframe=%d\n",iframe);
      Int_t ntracksAll=0;
      Int_t nevents=gRandom->Poisson(irate);
      Int_t ntracks=0; // to be taken from the MB primary distribution    
      Bool_t hasCentral=0;
      for (Int_t ievent=0; ievent<nevents; ievent++){
	ntracks=RndmdNchdY(5.5);
	ntracksAll+=ntracks; 
	if (ntracks>central) hasCentral = kTRUE;
      }    
      (*pcstream)<<"pileupFrame"<<
	"rate="<<irate<<
	"nevents="<<nevents<<
	"ntracks="<<ntracks<<
	"ntracksAll="<<ntracksAll<<
	"hasCentral"<<hasCentral<<
	"\n";
      vectorT[iframe]=ntracksAll;
    }
    Double_t mean   = TMath::Mean(nframes, vectorT.GetMatrixArray());
    Double_t rms    = TMath::RMS(nframes, vectorT.GetMatrixArray());
    Double_t median = TMath::Median(nframes, vectorT.GetMatrixArray());
    Double_t ord90  = TMath::KOrdStat(nframes,vectorT.GetMatrixArray() , Int_t(nframes*0.90));
    Double_t ord95  = TMath::KOrdStat(nframes,vectorT.GetMatrixArray() , Int_t(nframes*0.95));
    Double_t ord99  = TMath::KOrdStat(nframes,vectorT.GetMatrixArray() , Int_t(nframes*0.99));
    Double_t ord999  = TMath::KOrdStat(nframes,vectorT.GetMatrixArray() , Int_t(nframes*0.999));
    Double_t ord9999  = TMath::KOrdStat(nframes,vectorT.GetMatrixArray() , Int_t(nframes*0.9999));
    (*pcstream)<<"pileup"<<
      "rate="<<irate<<
      "mean="<<mean<<
      "rms="<<rms<<
      "median="<<median<<
      "ord90="<<ord90<<
      "ord95="<<ord95<<
      "ord99="<<ord99<<
      "ord999="<<ord999<<
      "ord9999="<<ord9999<<
      "\n";
  }
  delete pcstream;  
  // Draw
  pcstream = new TTreeSRedirector("pileup.root","update");
  TTree * treeStat = (TTree*)(pcstream->GetFile()->Get("pileup"));
  TTree * treeFrame = (TTree*)(pcstream->GetFile()->Get("pileupFrame"));
  Int_t  mentries =  treeStat->Draw("ord999","1","goff");
  Double_t maximum = TMath::MaxElement(mentries, treeStat->GetV1());
  const char * names[6]={"mean","median","ord90","ord95","ord99","ord999"};  
  const char * titles[6]={"Mean","Median","90 %","95 %","99 %","99.9 %"};  
  const Int_t mcolors[6]={1,2,3,4,6,7};  
  //
  //
  TF1 * f1 = new TF1("f1","[0]*x+[1]*sqrt(x)");
  Double_t par0=0;
  //
  TCanvas * canvasMult = new TCanvas("canvasCumul","canvasCumul");
  canvasMult->SetLeftMargin(0.13);
  TLegend * legend= new TLegend(0.14,0.6,0.45,0.89, "Effective dN_{ch}/d#eta");
  TGraphErrors *graphs[6]={0};  
  for (Int_t igr=0; igr<6; igr++){
    graphs[igr] = TStatToolkit::MakeGraphErrors(treeStat,Form("%s:rate",names[igr]),"1",21+(igr%5),mcolors[igr],0);
    graphs[igr]->SetMinimum(0);
    graphs[igr]->GetYaxis()->SetTitleOffset(1.3);
    graphs[igr]->SetMaximum(maximum*1.1);
    graphs[igr]->GetXaxis()->SetTitle("<N_{ev}>");
    graphs[igr]->GetYaxis()->SetTitle("dN_{ch}/d#eta");
    TF1 * f2 = new TF1("f2","[0]*x+[1]*sqrt(x)");
    f2->SetLineColor(mcolors[igr]);
    f2->SetLineWidth(0.5);
    if (igr>0) f2->FixParameter(0,par0);
    graphs[igr]->Fit(f2,"","");
    if (igr==0) par0=f2->GetParameter(0);
    if (igr==0) graphs[igr]->Draw("ap");
    graphs[igr]->Draw("p");
    legend->AddEntry(graphs[igr], titles[igr],"p");
  }
  legend->SetBorderSize(0);
  legend->Draw();

  canvasMult->SaveAs("effectiveMult.pdf");
  canvasMult->SaveAs("effectiveMult.png");
  gStyle->SetOptStat(0);
  TH2F * hisMult = new TH2F("ntracksNevent","ntracksnevents",9,1,10,100,0,2*maximum);
  {
    treeFrame->Draw("ntracksAll:rate>>ntracksNevent","","colz");
    hisMult->GetXaxis()->SetTitle("<N_{ev}>");
    hisMult->GetYaxis()->SetTitle("dN_{ch}/d#eta");
    hisMult->GetYaxis()->SetTitleOffset(1.3);
    hisMult->Draw("colz");
  }
  canvasMult->SaveAs("effectiveMultColz.pdf");
  canvasMult->SaveAs("effectiveMultColz.png");
  //
  //
  //
  TH2F * hisMult5 = new TH2F("ntracksNevent5","ntracksnEvents5",9,1,10,100,0,maximum);
  {
    treeFrame->Draw("ntracksAll:nevents>>ntracksNevent5","abs(rate-5)<0.5","colz");
    hisMult5->GetXaxis()->SetTitle("N_{ev}");
    hisMult5->GetYaxis()->SetTitle("dN_{ch}/d#eta");
    hisMult5->GetYaxis()->SetTitleOffset(1.3);
    hisMult5->Draw("colz");
  }
  canvasMult->SaveAs("effectiveMultF5.pdf");
  canvasMult->SaveAs("effectiveMultF5.png");

  {    
    gStyle->SetOptFit(1);
    gStyle->SetOptStat(1);
    gStyle->SetOptTitle(1);
    TCanvas * canvasMultH = new TCanvas("canvasCumulH","canvasCumulH",700,700);
    canvasMultH->Divide(1,2);
    canvasMultH->cd(1);
    TH1F his550("his550","his550",1000,0,3000);
    TH1F his276("his276","his276",1000,0,3000);
    for (Int_t i=0; i<300000; i++) his550.Fill(RndmdNchdY(5.5));
    for (Int_t i=0; i<300000; i++) his276.Fill(RndmdNchdY(2.76));     
    TF1 f1("f1","[0]*x^(-(0.00001+abs([1])))",1,2000);
    f1.SetParameters(1,-1);
    his550.GetXaxis()->SetTitle("dN_{ch}/d#eta");
    his276.GetXaxis()->SetTitle("dN_{ch}/d#eta");
    his550.Fit("f1","","",10,3000);
    his276.Fit("f1","","",10,3000); 
    canvasMultH->cd(1)->SetLogx(1);
    canvasMultH->cd(1)->SetLogy(1);
    his550.Draw();    
    canvasMultH->cd(2)->SetLogx(1);
    canvasMultH->cd(2)->SetLogy(1);
    his276.Draw("");    
    canvasMultH->SaveAs("dNchdEta.pdf");
  }
  delete pcstream;
}

void spaceChargeFluctuationToyMC(Int_t nframes, Double_t interactionRate){
  //
  // Toy MC to generate space charge fluctuation, to estimate the fluctuation of the integral space charge in part of the
  // TPC
  // Parameters:
  //    nframes - number of frames to simulate 
  // 1. Make a toy simulation part for given setup
  // 2. Make a summary plots for given setups - see function spaceChargeFluctuationToyMCDraw()
  //
  TTreeSRedirector *pcstream = new TTreeSRedirector("spaceChargeFluctuation.root","recreate");
  Double_t driftTime=0.1;              
  Double_t eventMean=interactionRate*driftTime;
  Double_t trackMean=500;
  Double_t FPOT=1.0, EEND=3000;
  Double_t  EEXPO=0.8567;
  const Double_t XEXPO=-EEXPO+1, YEXPO=1/XEXPO;

  for (Int_t iframe=0; iframe<nframes; iframe++){
    printf("iframe=%d\n",iframe);
    Int_t nevents=gRandom->Poisson(interactionRate*driftTime);
    Int_t ntracksAll=0;
    TVectorD vecTracksPhi180(180);
    TVectorD vecTracksPhi36(36);
    TVectorD vecEPhi180(180);
    TVectorD vecEPhi36(36);
    Double_t dESum=0;
    for (Int_t ievent=0; ievent<nevents; ievent++){
      Int_t ntracks=gRandom->Exp(trackMean); // to be taken from the MB primary distribution      
      Float_t RAN = gRandom->Rndm();
      ntracks=TMath::Power((TMath::Power(FPOT,XEXPO)*(1-RAN)+TMath::Power(EEND,XEXPO)*RAN),YEXPO)/2.;
      ntracksAll+=ntracks; 
      for (Int_t itrack=0; itrack<ntracks; itrack++){
	Double_t phi  = gRandom->Rndm();
	vecTracksPhi180(Int_t(phi*180))+=1;
	vecTracksPhi36(Int_t(phi*36))  +=1;
	// simplified MC to get track length including loopers
	Double_t theta= gRandom->Rndm();
	Double_t pt   = gRandom->Exp(0.5)+0.05;
	Double_t crv  = TMath::Abs(5*kB2C/pt);   //GetC(b); // bz*kB2C/pt;
	Double_t deltaPhi=0;
	if (TMath::Abs(2*crv*(245-85)/2.) <1.) deltaPhi=TMath::ASin(crv*(245-85)/2.);
	else 
	  deltaPhi=TMath::Pi();
	Double_t dE=deltaPhi/crv;
	Double_t xloop=1;
	if (1./crv<250) {
	  xloop = TMath::Min(1./(TMath::Abs(theta)+0.0001),10.);
	  if (xloop<1) xloop=1;
	}
	dESum+=xloop*dE;
	if (itrack==0) (*pcstream)<<"track"<<
	  "pt="<<pt<<
	  "crv="<<crv<<
	  "theta="<<theta<<
	  "dE="<<dE<<
	  "xloop="<<xloop<<
	  "\n";
	
	vecEPhi180(Int_t(phi*180))     +=dE*xloop;
	vecEPhi36(Int_t(phi*36))       +=dE*xloop;
      }
      (*pcstream)<<"event"<<
	"ntracks="<<ntracks<<
	"nevents="<<nevents<<
	"\n";
    }
    (*pcstream)<<"ntracks"<<
      "rate="<<interactionRate<<                  // interaction rate
      "eventMean="<<eventMean<<                   // mean number of events per frame
      "trackMean="<<trackMean<<                   // assumed mean of the tracks per event
      //       
      "nevents="<<nevents<<                       // number of events withing time frame
      "ntracksAll="<<ntracksAll<<                  // number of tracks within  time frame
      "dESum="<<dESum<<                            // sum of the energy loss
      "vecTracksPhi36.="<<&vecTracksPhi36<<         // number of tracks in phi bin (36 bins)    within time frame
      "vecTracksPhi180.="<<&vecTracksPhi180<<       // number of tracks in phi bin (180 bins)   within time frame
      "vecEPhi36.="<<&vecEPhi36<<         // number of tracks in phi bin (36 bins)    within time frame
      "vecEPhi180.="<<&vecEPhi180<<       // number of tracks in phi bin (180 bins)   within time frame
      "\n";
  }
  delete pcstream;
  spaceChargeFluctuationToyDraw();
}


void spaceChargeFluctuationToyDraw(){
  //
  // Toy MC to simulate the space charge integral fluctuation
  // Draw function for given setup
  // for MC generation part see : void spaceChargeFluctuationToyMC
  TTreeSRedirector *pcstream = new TTreeSRedirector("spaceChargeFluctuation.root","update");
  TFile * f = pcstream->GetFile();
  TTree * treeStat = (TTree*)f->Get("ntracks");
  TTree * treedE = (TTree*)f->Get("track");
  TTree * treeEv = (TTree*)f->Get("event");
  
  Int_t nentries=treedE->Draw("dE*xloop","1","",1000000);

  Double_t meandE=TMath::Mean(nentries,treedE->GetV1());
  Double_t rmsdE=TMath::RMS(nentries,treedE->GetV1());
  treeStat->SetAlias("meandE",Form("(%f+0)",meandE));
  treeStat->SetAlias("rmsdE",Form("(%f+0)",rmsdE));
  nentries=treeEv->Draw("ntracks","1","",1000000);
  Double_t meanT=TMath::Mean(nentries,treeEv->GetV1());
  Double_t rmsT=TMath::RMS(nentries,treeEv->GetV1());
  treeStat->SetAlias("tracksMean",Form("(%f+0)",meanT));
  treeStat->SetAlias("tracksRMS",Form("(%f+0)",rmsT));
  nentries = treeStat->Draw("eventMean","","");
  Double_t meanEvents =TMath::Mean(nentries,treeStat->GetV1());  
  treeStat->SetMarkerStyle(21);
  treeStat->SetMarkerSize(0.4);
  //
  const Int_t kColors[6]={1,2,3,4,6,7};
  const Int_t kStyle[6]={20,21,24,25,24,25};
  const char  * htitles[6]={"Events","Tracks","Tracks #phi region (1/180)","Q #phi region (1/180)", "Tracks #phi region (1/36)","Q #phi region (1/36)"}; 
  const char  * hnames[6]={"Events","Tracks","TracksPhi180","QPhi180", "TracksPhi36","QPhi36"}; 

  TH1* hisFluc[6]={0};
  TH1* hisPull[6]={0};
  TVectorD *vecFitFluc[6]={0};
  TVectorD *vecFitFlucPull[6]={0};
  //
  // histograms
  //
  treeStat->Draw("nevents/eventMean>>hisEv(100,0.85,1.15)","");
  hisFluc[0]=(TH1*)treeStat->GetHistogram()->Clone();
  treeStat->Draw("ntracksAll/(eventMean*tracksMean)>>hisTrackAll(100,0.85,1.1)","","same");
  hisFluc[1]=(TH1*)treeStat->GetHistogram()->Clone();
  treeStat->Draw("vecTracksPhi180.fElements/(eventMean*tracksMean/180)>>hisTrackSector(100,0.85,1.1)","1/180","same");
  hisFluc[2]=(TH1*)treeStat->GetHistogram()->Clone();
  treeStat->Draw("vecEPhi180.fElements/(eventMean*tracksMean*meandE/180)>>hisdESector(100,0.85,1.1)","1/180","same");
  hisFluc[3]=(TH1*)treeStat->GetHistogram()->Clone();
  treeStat->Draw("vecTracksPhi36.fElements/(eventMean*tracksMean/36)>>hisTrackSector36(100,0.85,1.1)","1/36","same");
  hisFluc[4]=(TH1*)treeStat->GetHistogram()->Clone();
  treeStat->Draw("vecEPhi36.fElements/(eventMean*tracksMean*meandE/36)>>hisdESector36(100,0.85,1.1)","1/36","same");
  hisFluc[5]=(TH1*)treeStat->GetHistogram()->Clone();
  //
  // pulls
  //
  treeStat->Draw("((nevents/eventMean)-1)/sqrt(1/eventMean)>>pullEvent(100,-6,6)","","err");  //tracks All pull 
  hisPull[0]=(TH1*)treeStat->GetHistogram()->Clone();
  treeStat->Draw("(ntracksAll/(eventMean*tracksMean)-1)/sqrt(1/eventMean+(tracksRMS/tracksMean)**2/eventMean)>>pullTrackAll(100,-6,6)","","err");  //tracks All pull 
  hisPull[1]=(TH1*)treeStat->GetHistogram()->Clone();
  treeStat->Draw("(vecTracksPhi180.fElements/(eventMean*tracksMean/180.)-1)/sqrt(1/eventMean+(tracksRMS/tracksMean)**2/eventMean+180/(tracksMean*eventMean))>>pullTrack180(100,-6,6)","1/180","errsame");  //tracks spread
  hisPull[2]=(TH1*)treeStat->GetHistogram()->Clone();
  treeStat->Draw("(vecEPhi180.fElements/(eventMean*tracksMean*meandE/180)-1)/sqrt(1/eventMean+(tracksRMS/tracksMean)**2/eventMean+180/(tracksMean*eventMean)+180*(rmsdE/meandE)**2/(eventMean*tracksMean))>>hisPulldE180(100,-6,6)","1/180","errsame"); //dE spread
  hisPull[3]=(TH1*)treeStat->GetHistogram()->Clone();
  treeStat->Draw("(vecTracksPhi36.fElements/(eventMean*tracksMean/36.)-1)/sqrt(1/eventMean+(tracksRMS/tracksMean)**2/eventMean+36/(tracksMean*eventMean))>>pullTrack36(100,-6,6)","1/36","errsame");  //tracks spread
  hisPull[4]=(TH1*)treeStat->GetHistogram()->Clone();
  treeStat->Draw("(vecEPhi36.fElements/(eventMean*tracksMean*meandE/36)-1)/sqrt(1/eventMean+(tracksRMS/tracksMean)**2/eventMean+36/(tracksMean*eventMean)+36*(rmsdE/meandE)**2/(eventMean*tracksMean))>>hisPulldE36(100,-6,6)","1/36","errsame"); //dE spread
  hisPull[5]=(TH1*)treeStat->GetHistogram()->Clone();
  //
  
  for (Int_t ihis=0; ihis<6; ihis++) {
    vecFitFluc[ihis] = new TVectorD(3);
    vecFitFlucPull[ihis] =  new TVectorD(3);
    TF1 * fg = new TF1(Form("fg%d",ihis),"gaus");    
    fg->SetLineWidth(0.5); 
    fg->SetLineColor(kColors[ihis]); 
    hisFluc[ihis]->Fit(fg,"","");
    fg->GetParameters( vecFitFluc[ihis]->GetMatrixArray());
    hisPull[ihis]->Fit(fg,"","");
    fg->GetParameters( vecFitFlucPull[ihis]->GetMatrixArray());
    hisFluc[ihis]->SetName(Form("Fluctuation%s",hnames[ihis]));
    hisFluc[ihis]->SetTitle(Form("Fluctuation%s",htitles[ihis]));
    hisPull[ihis]->SetName(Form("Pull%s",hnames[ihis]));
    hisPull[ihis]->SetTitle(Form("Pull%s",htitles[ihis]));
  } 
  
  gStyle->SetOptStat(0);
  TCanvas * canvasQFluc= new TCanvas("SpaceChargeFluc","SpaceChargeFluc",600,700);
  canvasQFluc->Divide(1,2);
  canvasQFluc->cd(1);
  TLegend * legendFluc = new TLegend(0.11,0.55,0.45,0.89,"Relative fluctuation");
  TLegend * legendPull = new TLegend(0.11,0.55,0.45,0.89,"Fluctuation pulls");
  for (Int_t ihis=0; ihis<6; ihis++){
    hisFluc[ihis]->SetMarkerStyle(kStyle[ihis]);
    hisFluc[ihis]->SetMarkerColor(kColors[ihis]);
    hisFluc[ihis]->SetMarkerSize(0.8);
    if (ihis==0) hisFluc[ihis]->Draw("err"); 
    hisFluc[ihis]->Draw("errsame");    
    legendFluc->AddEntry(hisFluc[ihis],htitles[ihis]);
  }
  legendFluc->Draw();

  canvasQFluc->cd(2);
  for (Int_t ihis=0; ihis<6; ihis++){
    hisPull[ihis]->SetMarkerStyle(kStyle[ihis]);
    hisPull[ihis]->SetMarkerColor(kColors[ihis]);
    hisPull[ihis]->SetMarkerSize(0.8);
    if (ihis==0) hisPull[ihis]->Draw("err"); 
    hisPull[ihis]->Draw("errsame");    
    legendPull->AddEntry(hisPull[ihis],htitles[ihis]);
  }
  legendPull->Draw();
  //
  for (Int_t ihis=0; ihis<6; ihis++){
    hisFluc[ihis]->Write();
    hisPull[ihis]->Write();
  }
  (*pcstream)<<"summary"<<                             // summary information for given setup
    "meanEvents="<<meanEvents<<                        // mean number of events in the frame
    "meandE="<<meandE<<                                // mean "energy loss" of track
    "rmsdE="<<rmsdE<<                                  // rms 
    "meanT="<<meanT<<                                  // mean number of tracks per MB event
    "rmsT="<<rmsT<<                                    // rms of onumber of tracks
    //                                                 // fit of the relative fluctuation 
    "vflucE.="<<vecFitFluc[0]<<                        //         in events
    "vflucEP.="<<vecFitFlucPull[0]<<                   //         in events pull
    "vflucTr.="<<vecFitFluc[1]<<                       //         in tracks 
    "vflucTrP.="<<vecFitFlucPull[1]<<
    //
    "vflucTr180.="<<vecFitFluc[2]<<
    "vflucTr180P.="<<vecFitFlucPull[2]<<
    "vflucE180.="<<vecFitFluc[3]<<
    "vflucE180P.="<<vecFitFlucPull[3]<<
    //
    "vflucTr36.="<<vecFitFluc[4]<<
    "vflucTr36P.="<<vecFitFlucPull[4]<<
    "vflucE36.="<<vecFitFluc[5]<<
    "vflucE36P.="<<vecFitFlucPull[5]<<
    "\n"; 
  canvasQFluc->SaveAs("CanvasFluctuation.pdf");
  canvasQFluc->SaveAs("CanvasFluctuation.png");
  delete pcstream;

}

void spaceChargeFluctuationToyDrawSummary(){
  //
  // make a summary information plots using several runs with differnt mean IR setting
  // Input:
  //   space.list - list of root files produced by spaceChargeFluctuationToyDraw   
  // Output:
  //   canvas saved in current directory
  //
  TChain * chain = AliXRDPROOFtoolkit::MakeChain("space.list","summary",0,100);
  chain->SetMarkerStyle(21);
  const Int_t kColors[6]={1,2,3,4,6,7};
  const Int_t kStyle[6]={20,21,24,25,24,25};
  const char  * htitles[6]={"Events","Tracks","Tracks #phi region (1/180)","Q #phi region (1/180)", "Tracks #phi region (1/36)","Q #phi region (1/36)"}; 
  //  const char  * hnames[6]={"Events","Tracks","TracksPhi180","QPhi180", "TracksPhi36","QPhi36"}; 
  //
  Double_t meanT,rmsT=0; 
  Double_t meandE,rmsdE=0;
  Int_t entries = chain->Draw("meanT:rmsT:meandE:rmsdE","1","goff");
  meanT =TMath::Mean(entries, chain->GetV1());
  rmsT =TMath::Mean(entries, chain->GetV2());
  meandE =TMath::Mean(entries, chain->GetV3());
  rmsdE =TMath::Mean(entries, chain->GetV4());
  //
  //
  //
  TGraphErrors * graphs[6]={0};
  TF1 * functions[6]={0};

  graphs[5]=TStatToolkit::MakeGraphErrors(chain,"vflucE36.fElements[2]:meanEvents:0.025*vflucE36.fElements[2]","1",kStyle[5],kColors[5],1);
  graphs[4]=TStatToolkit::MakeGraphErrors(chain,"vflucTr36.fElements[2]:meanEvents:0.025*vflucTr36.fElements[2]","1",kStyle[4],kColors[4],1);
  graphs[3]=TStatToolkit::MakeGraphErrors(chain,"vflucE180.fElements[2]:meanEvents:0.025*vflucE180.fElements[2]","1",kStyle[3],kColors[3],1);
  graphs[2]=TStatToolkit::MakeGraphErrors(chain,"vflucTr180.fElements[2]:meanEvents:0.025*vflucTr180.fElements[2]","1",kStyle[2],kColors[2],1);
  graphs[1]=TStatToolkit::MakeGraphErrors(chain,"vflucTr.fElements[2]:meanEvents:0.025*vflucTr.fElements[2]","1",kStyle[1],kColors[1],1);
  graphs[0]=TStatToolkit::MakeGraphErrors(chain,"vflucE.fElements[2]:meanEvents:0.025*vflucE.fElements[2]","1",kStyle[0],kColors[0],1);

  functions[5]=new TF1("fe","sqrt(1+[0]**2+[1]/[2]+[1]*[3]**2/[2])/sqrt(x)",2000,200000);  
  functions[5]->SetParameters(rmsT/meanT,36.,meanT,rmsdE/meandE);
  functions[4]=new TF1("fe","sqrt(1+[0]**2+[1]/[2])/sqrt(x)",2000,200000);  
  functions[4]->SetParameters(rmsT/meanT,36.,meanT,0);
  functions[3]=new TF1("fe","sqrt(1+[0]**2+[1]/[2]+[1]*[3]**2/[2])/sqrt(x)",2000,200000);  
  functions[3]->SetParameters(rmsT/meanT,180.,meanT,rmsdE/meandE);
  functions[2]=new TF1("fe","sqrt(1+[0]**2+[1]/[2])/sqrt(x)",2000,200000);  
  functions[2]->SetParameters(rmsT/meanT,180.,meanT,0);
  functions[1]=new TF1("fe","sqrt(1+[0]**2)/sqrt(x)",2000,200000);  
  functions[1]->SetParameters(rmsT/meanT,0);
  functions[0]=new TF1("fe","sqrt(1)/sqrt(x)",2000,200000);  
  
  
  TCanvas *canvasF= new TCanvas("fluc","fluc",600,500);  
  //  TLegend *legend = new TLegend(0.5,0.65,0.89,0.89,"Relative fluctuation #sigma=#sqrt{1+#frac{#sigma_{T}^{2}}{#mu_{T}^{2}}}");
  TLegend *legendF = new TLegend(0.45,0.5,0.89,0.89,"Relative fluctuation of charge");
  for (Int_t ihis=0; ihis<4; ihis++){
    graphs[ihis]->SetMinimum(0.00);
    graphs[ihis]->SetMaximum(0.05);
    if (ihis==0) graphs[ihis]->Draw("ap");
    graphs[ihis]->GetXaxis()->SetTitle("events");
    graphs[ihis]->GetXaxis()->SetNdivisions(507);
    graphs[ihis]->GetYaxis()->SetTitle("#frac{#sigma}{#mu}");
    graphs[ihis]->Draw("p");    
    legendF->AddEntry(graphs[ihis],htitles[ihis],"p");
    if (functions[ihis]){
      functions[ihis]->SetLineColor(kColors[ihis]);
      functions[ihis]->SetLineWidth(0.5);
      functions[ihis]->Draw("same");
    }
  }
  legendF->Draw();
  canvasF->SaveAs("spaceChargeFlucScan.pdf");
  canvasF->SaveAs("spaceChargeFlucScan.png");

  TCanvas *canvasF36= new TCanvas("fluc36","fluc36",600,500);  
  //  TLegend *legend = new TLegend(0.5,0.65,0.89,0.89,"Relative fluctuation #sigma=#sqrt{1+#frac{#sigma_{T}^{2}}{#mu_{T}^{2}}}");
  TLegend *legendF36 = new TLegend(0.45,0.5,0.89,0.89,"Relative fluctuation of charge");
  for (Int_t ihis=0; ihis<6; ihis++){
    if (ihis==2 || ihis==3) continue;
    graphs[ihis]->SetMinimum(0.00);
    graphs[ihis]->SetMaximum(0.05);
    if (ihis==0) graphs[ihis]->Draw("ap");
    graphs[ihis]->GetXaxis()->SetTitle("events");
    graphs[ihis]->GetXaxis()->SetNdivisions(507);
    graphs[ihis]->GetYaxis()->SetTitle("#frac{#sigma}{#mu}");
    graphs[ihis]->Draw("p");    
    legendF36->AddEntry(graphs[ihis],htitles[ihis],"p");
    if (functions[ihis]){
      functions[ihis]->SetLineColor(kColors[ihis]);
      functions[ihis]->SetLineWidth(0.5);
      functions[ihis]->Draw("same");
    }
  }
  legendF36->Draw();
  canvasF36->SaveAs("spaceChargeFlucScan36.pdf");
  canvasF36->SaveAs("spaceChargeFlucScan36.png");


}



void FitMultiplicity(const char * fname="mult_dist_pbpb.root"){
  //
  // Fit multiplicity distribution using as a power law in limited range
  //  const char * fname="mult_dist_pbpb.root"
  TFile *fmult=TFile::Open(fname);
  TF1 f1("f1","[0]*(x+abs([2]))**(-abs([1]))",1,3000);
  TH1* his = (TH1*) fmult->Get("mult_dist_PbPb_normalizedbywidth");
  f1.SetParameters(his->GetEntries(),1,1);
  his->Fit(&f1,"","",2,3000);
  
  Double_t FPOT=1.0, EEND=3000, EEXPO= TMath::Abs(f1.GetParameter(1));
  EEXPO=0.8567;
  const Double_t XEXPO=-EEXPO+1, YEXPO=1/XEXPO;
  TH1F *hisr= new TH1F("aaa","aaa",4000,0,4000);
  for (Int_t i=0; i<400000; i++){
    Float_t RAN = gRandom->Rndm();
    hisr->Fill(TMath::Power((TMath::Power(FPOT,XEXPO)*(1-RAN)+TMath::Power(EEND,XEXPO)*RAN),YEXPO));
  }
}




TH1 * GenerateMapRawIons(Int_t useGainMap, const char *fileName, const char *outputName, Int_t maxEvents){
  //
  // Generate 3D maps of the space charge for the rad data maps
  // different threshold considered
  // Paramaters:
  //    useGainMap    - switch usage of the gain map
  //    fileName      - name of input raw file
  //    outputName    - name of output file with the space charge histograms 
  //    maxEvents     - grouping of the events
  // 
  //  
  gRandom->SetSeed(0);  //set initial seed to be independent for different jobs

  TTreeSRedirector * pcstream  = new TTreeSRedirector(outputName, "recreate");
  const char *  ocdbpath =gSystem->Getenv("OCDB_PATH") ? gSystem->Getenv("OCDB_PATH"):"local://$ALICE_ROOT/OCDB/";  
  AliCDBManager * man = AliCDBManager::Instance();
  man->SetDefaultStorage(ocdbpath);
  man->SetRun(0);
  TGeoGlobalMagField::Instance()->SetField(new AliMagF("Maps","Maps", -1., -1., AliMagF::k5kG,       AliMagF::kBeamTypepp, 2.76/2.));
  AliTPCAltroMapping** mapping =AliTPCcalibDB::Instance()->GetMapping();
  AliTPCParam * param = AliTPCcalibDB::Instance()->GetParameters();
  AliTPCCalPad * gain = AliTPCcalibDB::Instance()->GetDedxGainFactor();
  AliTPCCalPad * noise = AliTPCcalibDB::Instance()->GetPadNoise();

  TStopwatch timer;
  timer.Start();
  //   arrays of space charges - different elements corresponds to different threshold to accumulate charge
  TH1D * hisQ1D[3]={0};
  TH1D * hisQ1DROC[3]={0};
  TH2D * hisQ2DRPhi[3]={0};                
  TH2D * hisQ2DRZ[3]={0};                
  TH2D * hisQ2DRPhiROC[3]={0};
  TH2D * hisQ2DRZROC[3]={0};                
  TH3D * hisQ3D[3]={0};                // 3D maps space charge from drift volume  
  TH3D * hisQ3DROC[3]={0};             // 3D maps space charge from ROC
  
  Int_t nbinsRow=param->GetNRowLow()+param->GetNRowUp();
  Double_t *xbins = new Double_t[nbinsRow+1];
  xbins[0]=param->GetPadRowRadiiLow(0)-1;   //underflow bin
  for (Int_t ibin=0; ibin<param->GetNRowLow();ibin++) xbins[1+ibin]=param->GetPadRowRadiiLow(ibin);
  for (Int_t ibin=0; ibin<param->GetNRowUp();ibin++)  xbins[1+ibin+param->GetNRowLow()]=param->GetPadRowRadiiUp(ibin);
  //
  for (Int_t ith=0; ith<3; ith++){
    char chname[100];
    // 1D
    snprintf(chname,100,"hisQ1D_Th%d",2*ith+2);
    hisQ1D[ith] = new TH1D(chname,chname, param->GetNRow(0)+param->GetNRow(36) ,0, param->GetNRow(0)+param->GetNRow(36) );
    snprintf(chname,100,"hisQ1DROC_Th%d",2*ith+2);
    hisQ1DROC[ith] = new TH1D(chname,chname, param->GetNRow(0)+param->GetNRow(36) ,0, param->GetNRow(0)+param->GetNRow(36) );
    // 3D
    snprintf(chname,100,"hisQ3D_Th%d",2*ith+2);
    hisQ3D[ith] = new TH3D(chname, chname,360, 0,TMath::TwoPi(),param->GetNRow(0)+param->GetNRow(36) ,0, param->GetNRow(0)+param->GetNRow(36) ,125,-250,250);
    snprintf(chname,100,"hisQ3DROC_Th%d",2*ith+2);
    hisQ3DROC[ith] = new TH3D(chname, chname,360, 0,TMath::TwoPi(),param->GetNRow(0)+param->GetNRow(36) ,0, param->GetNRow(0)+param->GetNRow(36) ,125,-250,250);
    // 2D
    snprintf(chname,100,"hisQ2DRPhi_Th%d",2*ith+2);
    hisQ2DRPhi[ith] = new TH2D(chname,chname,180, 0,2*TMath::TwoPi(), param->GetNRow(0)+param->GetNRow(36) ,0, param->GetNRow(0)+param->GetNRow(36) );
    snprintf(chname,100,"hisQ2DRZ_Th%d",2*ith+2);
    hisQ2DRZ[ith] = new TH2D(chname,chname, param->GetNRow(0)+param->GetNRow(36) ,0, param->GetNRow(0)+param->GetNRow(36),  125,-250,250);
    //
    snprintf(chname,100,"hisQ2DRPhiROC_Th%d",2*ith+2);
    hisQ2DRPhiROC[ith] = new TH2D(chname,chname,180, 0,2*TMath::TwoPi(), param->GetNRow(0)+param->GetNRow(36) ,0, param->GetNRow(0)+param->GetNRow(36) );
    snprintf(chname,100,"hisQ2DRZROC_Th%d",2*ith+2);
    hisQ2DRZROC[ith] = new TH2D(chname,chname,param->GetNRow(0)+param->GetNRow(36) ,0, param->GetNRow(0)+param->GetNRow(36), 125,-250,250);
    //
    hisQ1D[ith]->GetXaxis()->Set(nbinsRow,xbins);
    hisQ1DROC[ith]->GetXaxis()->Set(nbinsRow,xbins);
    hisQ3D[ith]->GetYaxis()->Set(nbinsRow,xbins);
    hisQ3DROC[ith]->GetYaxis()->Set(nbinsRow,xbins);
    //
    hisQ2DRPhi[ith]->GetYaxis()->Set(nbinsRow,xbins);
    hisQ2DRZ[ith]->GetXaxis()->Set(nbinsRow,xbins);
    hisQ2DRPhiROC[ith]->GetYaxis()->Set(nbinsRow,xbins);
    hisQ2DRZROC[ith]->GetXaxis()->Set(nbinsRow,xbins);
    //
    hisQ1D[ith]->SetDirectory(0);
    hisQ1DROC[ith]->SetDirectory(0);
    hisQ3D[ith]->SetDirectory(0);
    hisQ3DROC[ith]->SetDirectory(0);
    //
    hisQ2DRPhi[ith]->SetDirectory(0);
    hisQ2DRZ[ith]->SetDirectory(0);
    hisQ2DRZROC[ith]->SetDirectory(0);
    hisQ2DRPhiROC[ith]->SetDirectory(0);
  }
  //
  //  
  AliRawReader *reader = new AliRawReaderRoot(fileName);
  reader->Reset();
  AliAltroRawStream* stream = new AliAltroRawStream(reader);
  stream->SelectRawData("TPC");
  Int_t evtnr=0;
  Int_t chunkNr=0;
  // 

  while (reader->NextEvent()) {
    Double_t shiftZ= gRandom->Rndm()*250.;
    //
    if(evtnr>=maxEvents) {
      chunkNr++;
      pcstream->GetFile()->mkdir(Form("Chunk%d",chunkNr));
      pcstream->GetFile()->cd(Form("Chunk%d",chunkNr));
      for (Int_t ith=0; ith<3; ith++){	
	hisQ1D[ith]->Write(Form("His1DDrift_%d",ith));
	hisQ2DRPhi[ith]->Write(Form("His2DRPhiDrift_%d",ith));
	hisQ2DRZ[ith]->Write(Form("His2DRZDrift_%d",ith));
	hisQ3D[ith]->Write(Form("His3DDrift_%d",ith));
	hisQ1DROC[ith]->Write(Form("His1DROC_%d",ith));
	hisQ2DRPhiROC[ith]->Write(Form("His2DRPhiROC_%d",ith));
	hisQ2DRZROC[ith]->Write(Form("His2DRZROC_%d",ith));
	hisQ3DROC[ith]->Write(Form("His3DROC_%d",ith));
	(*pcstream)<<"histo"<<
	  "events="<<evtnr<<
	  "useGain="<<useGainMap<<
	  Form("hist1D_%d.=",ith*2+2)<<hisQ1D[ith]<<
	  Form("hist2DRPhi_%d.=",ith*2+2)<<hisQ2DRPhi[ith]<<
	  Form("hist2DRZ_%d.=",ith*2+2)<<hisQ2DRZ[ith]<<
	  Form("hist3D_%d.=",ith*2+2)<<hisQ3D[ith]<<
	  Form("hist1DROC_%d.=",ith*2+2)<<hisQ1DROC[ith]<<
	  Form("hist2DRPhiROC_%d.=",ith*2+2)<<hisQ2DRPhiROC[ith]<<
	  Form("hist2DRZROC_%d.=",ith*2+2)<<hisQ2DRZROC[ith]<<
	  Form("hist3DROC_%d.=",ith*2+2)<<hisQ3DROC[ith];	  
      }
      (*pcstream)<<"histo"<<"\n";
      for (Int_t ith=0; ith<3; ith++){	
	hisQ1D[ith]->Reset();
	hisQ2DRPhi[ith]->Reset();
	hisQ2DRZ[ith]->Reset();
	hisQ3D[ith]->Reset();
	hisQ1DROC[ith]->Reset();
	hisQ2DRPhiROC[ith]->Reset();
	hisQ2DRZROC[ith]->Reset();
	hisQ3DROC[ith]->Reset();
      }
      evtnr=0;
    }
    cout<<"Chunk=\t"<<chunkNr<<"\tEvt=\t"<<evtnr<<endl;
    evtnr++;
    AliSysInfo::AddStamp(Form("Event%d",evtnr),evtnr);
    AliTPCRawStreamV3 input(reader,(AliAltroMapping**)mapping);
    //
    while (input.NextDDL()){
      Int_t sector = input.GetSector();  
      AliTPCCalROC * gainROC =gain->GetCalROC(sector);
      AliTPCCalROC * noiseROC =noise->GetCalROC(sector);
      while ( input.NextChannel() ) {
	Int_t    row    = input.GetRow();
	Int_t    pad    = input.GetPad();
	Int_t    nPads   = param->GetNPads(sector,row);
	Double_t localX  = param->GetPadRowRadii(sector,row); 
	Double_t localY  = (pad-nPads/2)*param->GetPadPitchWidth(sector);
	Double_t localPhi= TMath::ATan2(localY,localX);
	Double_t phi     = TMath::Pi()*((sector%18)+0.5)/9+localPhi;
	Double_t padLength=param->GetPadPitchLength(sector,row);
	Double_t gainPad = gainROC->GetValue(row,pad); 
	Double_t noisePad = noiseROC->GetValue(row,pad); 
	//
	while ( input.NextBunch() ){
	  Int_t  startTbin    = (Int_t)input.GetStartTimeBin();
	  Int_t  bunchlength  = (Int_t)input.GetBunchLength();
	  const UShort_t *sig = input.GetSignals();	  
	  Int_t aboveTh[3]={0};
	  for (Int_t i=0; i<bunchlength; i++){ 
	    if (sig[i]<4*noisePad) continue;	    
	    for (Int_t ith=0; ith<3; ith++){
	      if (sig[i]>(ith*2)+2) aboveTh[ith]++; 
	    }
	  }
	  for (Int_t ith=0; ith<3; ith++){
	    if (aboveTh[ith%3]>1){
	      for (Int_t i=0; i<bunchlength; i++){
		//
		// normalization
		//
		Double_t zIonDrift   =(param->GetZLength()-startTbin*param->GetZWidth());
		zIonDrift+=shiftZ;
		Double_t signal=sig[i];
		if (useGainMap) signal/=gainPad;
		Double_t shiftPhi = ((sector%36)<18) ? 0: TMath::TwoPi();
                if (TMath::Abs(zIonDrift)<param->GetZLength()){
		  if ((sector%36)>=18) zIonDrift*=-1;   // c side has opposite sign
		  if (sector%36<18) hisQ1D[ith]->Fill(localX, signal/padLength);
		  hisQ2DRPhi[ith]->Fill(phi+shiftPhi,localX, signal/padLength);
		  hisQ2DRZ[ith]->Fill(localX, zIonDrift, signal/padLength);
		  hisQ3D[ith]->Fill(phi,localX,zIonDrift,signal/padLength);
		}
		//
		Double_t zIonROC = ((sector%36)<18)? shiftZ: -shiftZ;  // z position of the "ion disc" -  A side C side opposite sign
		if (sector%36<18) hisQ1DROC[ith]->Fill(localX, signal/padLength);
		hisQ2DRPhiROC[ith]->Fill(phi+shiftPhi,localX, signal/padLength);
		hisQ2DRZROC[ith]->Fill(localX, zIonROC, signal/padLength);
		hisQ3DROC[ith]->Fill(phi,localX,zIonROC,signal/padLength);
	      }
	    }
	  }
	}
      }
    }
  }
  timer.Print();
  delete pcstream;
  return 0;
}


void DoMerge(){
  //
  // Merge results to the tree
  //
  TFile *  fhisto = new TFile("histo.root","recreate");
  TTree * tree = 0;
  TChain *chain = AliXRDPROOFtoolkit::MakeChainRandom("histo.list","histo",0,100,1);
  chain->SetBranchStatus("hist3DROC_6*",kFALSE);
  chain->SetBranchStatus("hist3DROC_4*",kFALSE);
  tree = chain->CopyTree("1");
  tree->Write("histo");
  delete fhisto;
}




void AnalyzeMaps1D(){
  //
  // Analyze space charge maps stored as s hitograms in trees
  //
  TFile *  fhisto = new TFile("histo.root");
  TTree * tree = (TTree*)fhisto->Get("histo");
  //
  TH1 *his1Th[3]={0,0,0};
  TF1 *fq1DStep= new TF1("fq1DStep","([0]+[1]*(x>134))/x**min(abs([2]),3)",85,245);  
  fq1DStep->SetParameters(1,-0.5,1);
  tree->Draw("hist1DROC_2.fArray:hist1D_2.fXaxis.fXbins.fArray>>his(40,85,245)","","prof");
  tree->GetHistogram()->Fit(fq1DStep);
  // normalize step between the IROC-OROC
  tree->SetAlias("normQ",Form("(1+%f*(hist1D_2.fXaxis.fXbins.fArray>136))",fq1DStep->GetParameter(1)/fq1DStep->GetParameter(0)));
  //
  {
    Int_t entries= tree->Draw("hist1DROC_2.fArray/(events*normQ)","1","goff");
    Double_t median=TMath::Median(entries,tree->GetV1());
    TCut cut10Median = Form("hist1DROC_2.fArray/(events*normQ)<%f",10*median);
    //
    tree->Draw("hist1DROC_2.fArray/(events*normQ):hist1D_2.fXaxis.fXbins.fArray>>his1Th0(40,86,245)",cut10Median+"","prof");
    his1Th[0] = tree->GetHistogram();
    tree->Draw("hist1DROC_4.fArray/(events*normQ):hist1D_2.fXaxis.fXbins.fArray>>his1Th1(40,86,245)",cut10Median+"","prof");
    his1Th[1] = tree->GetHistogram();
    tree->Draw("hist1DROC_6.fArray/(events*normQ):hist1D_2.fXaxis.fXbins.fArray>>his1Th2(40,86,245)",cut10Median+"","prof");
    his1Th[2]=tree->GetHistogram();
  }
  //
  TCanvas *canvasR = new TCanvas("canvasR","canvasR",600,500);
  canvasR->cd();
  for (Int_t i=0; i<3; i++){
    his1Th[i]->SetMarkerStyle(21);
    his1Th[i]->SetMarkerColor(i+2);
    fq1DStep->SetLineColor(i+2);
    his1Th[i]->Fit(fq1DStep,"","");
    his1Th[i]->GetXaxis()->SetTitle("r (cm)");
    his1Th[i]->GetYaxis()->SetTitle("#frac{N_{el}}{N_{ev}}(ADC/cm)");    
  }
  TLegend * legend  = new TLegend(0.11,0.11,0.7,0.39,"1D space Charge map (ROC part) (z,phi integrated)");
  for (Int_t i=0; i<3; i++){
    his1Th[i]->SetMinimum(0);fq1DStep->SetLineColor(i+2);
    his1Th[i]->Fit(fq1DStep,"qnr","qnr");
    if (i==0) his1Th[i]->Draw("");
    his1Th[i]->Draw("same");
    legend->AddEntry(his1Th[i],Form("Thr=%d Slope=%2.2f",2*i+2,fq1DStep->GetParameter(2)));
  }
  legend->Draw();
  canvasR->SaveAs("spaceCharge1d.png");
  canvasR->SaveAs("spaceCharge1d.eps");
  //
  //
  //
}
void MakeFluctuationStudy3D(Int_t nhistos, Int_t nevents, Int_t niter){
  //
  //
  // 
  // 
  // Input:
  //   nhistos - maximal number of histograms to be used for sum 
  //   nevents - number of events to make a fluctuation studies
  //   niter   - number of itterations
  // Algortihm: 
  // 1. Make a summary integral   3D/2D/1D maps
  // 2. Create several maps with niter events  - Poisson flucturation in n
  // 3. Store results 3D maps in the tree (and also as histogram)  current and mean
  //   

  TFile *  fhisto = TFile::Open("histo.root");
  TTree * tree = (TTree*)fhisto->Get("histo");
  tree->SetCacheSize(10000000000);

  TTreeSRedirector * pcstream  = new TTreeSRedirector("fluctuation.root", "update");
  

  TH1D * his1DROC=0,    * his1DROCSum=0,  * his1DROCN=0;
  TH1D * his1DDrift=0,  * his1DDriftSum=0, * his1DDriftN=0 ;
  TH2D * his2DRPhiROC=0,    * his2DRPhiROCSum=0,  * his2DRPhiROCN=0;
  TH2D * his2DRZROC=0,    * his2DRZROCSum=0,  * his2DRZROCN=0;
  TH2D * his2DRPhiDrift=0,  * his2DRPhiDriftSum=0, * his2DRPhiDriftN=0;  
  TH2D * his2DRZDrift=0,  * his2DRZDriftSum=0, * his2DRZDriftN=0;  
  TH3D * his3DROC=0,    * his3DROCSum=0,  * his3DROCN=0;
  TH3D * his3DDrift=0,  * his3DDriftSum=0, * his3DDriftN=0;
  //
  if (nhistos<0 || nhistos> tree->GetEntries()) nhistos = tree->GetEntries();
  Int_t  eventsPerChunk=0;
  tree->SetBranchAddress("hist1D_2.",&his1DDrift);
  tree->SetBranchAddress("hist1DROC_2.",&his1DROC);
  tree->SetBranchAddress("hist2DRPhi_2.",&his2DRPhiDrift);
  tree->SetBranchAddress("hist2DRZ_2.",&his2DRZDrift);
  tree->SetBranchAddress("hist2DRPhiROC_2.",&his2DRPhiROC);
  tree->SetBranchAddress("hist3D_2.",&his3DDrift);
  tree->SetBranchAddress("hist3DROC_2.",&his3DROC);
  tree->SetBranchAddress("hist2DRZROC_2.",&his2DRZROC);
  tree->SetBranchAddress("events",&eventsPerChunk);
  // 
  // 1. Make a summary integral   3D/2D/1D maps
  //
  Int_t neventsAll=0;
  for (Int_t i=0; i<nhistos; i++){
    tree->GetEntry(i);
    if (i%25==0) printf("%d\n",i);
    if (his1DROCSum==0)     his1DROCSum=new TH1D(*his1DROC);
    if (his1DDriftSum==0)   his1DDriftSum=new TH1D(*his1DDrift);
    if (his2DRPhiROCSum==0)     his2DRPhiROCSum=new TH2D(*his2DRPhiROC);
    if (his2DRZROCSum==0)     his2DRZROCSum=new TH2D(*his2DRZROC);
    if (his2DRPhiDriftSum==0)   his2DRPhiDriftSum=new TH2D(*his2DRPhiDrift);
    if (his2DRZDriftSum==0)   his2DRZDriftSum=new TH2D(*his2DRZDrift);
    if (his3DROCSum==0)     his3DROCSum=new TH3D(*his3DROC);
    if (his3DDriftSum==0)   his3DDriftSum=new TH3D(*his3DDrift);
    his1DROCSum->Add(his1DROC);
    his1DDriftSum->Add(his1DDrift);
    his2DRPhiROCSum->Add(his2DRPhiROC);
    his2DRZROCSum->Add(his2DRZROC);
    his2DRPhiDriftSum->Add(his2DRPhiDrift);
    his2DRZDriftSum->Add(his2DRZDrift);
    his3DROCSum->Add(his3DROC);
    his3DDriftSum->Add(his3DDrift);
    neventsAll+=eventsPerChunk;
  }
  //
  // 2. Create several maps with niter events  - Poisson flucturation in n
  //
  for (Int_t iter=0; iter<niter; iter++){
    printf("Itteration=\t%d\n",iter);
    Int_t nchunks=gRandom->Poisson(nevents)/eventsPerChunk;  // chunks with n typically 25 events
    for (Int_t i=0; i<nchunks; i++){
      tree->GetEntry(gRandom->Rndm()*nhistos);
      if (i%10==0) printf("%d\t%d\n",iter, i);
      if (his1DROCN==0)     his1DROCN=new TH1D(*his1DROC);
      if (his1DDriftN==0)   his1DDriftN=new TH1D(*his1DDrift);
      if (his2DRPhiROCN==0)     his2DRPhiROCN=new TH2D(*his2DRPhiROC);
      if (his2DRPhiDriftN==0)   his2DRPhiDriftN=new TH2D(*his2DRPhiDrift);
      if (his2DRZROCN==0)     his2DRZROCN=new TH2D(*his2DRZROC);
      if (his2DRZDriftN==0)   his2DRZDriftN=new TH2D(*his2DRZDrift);
      if (his3DROCN==0)     his3DROCN=new TH3D(*his3DROC);
      if (his3DDriftN==0)   his3DDriftN=new TH3D(*his3DDrift);
      his1DROCN->Add(his1DROC);
      his1DDriftN->Add(his1DDrift);
      his2DRPhiROCN->Add(his2DRPhiROC);
      his2DRZDriftN->Add(his2DRZDrift);
      his2DRZROCN->Add(his2DRZROC);
      his2DRPhiDriftN->Add(his2DRPhiDrift);
      his3DROCN->Add(his3DROC);
      his3DDriftN->Add(his3DDrift);      
    } 
    //
    // 3. Store results 3D maps in the tree (and also as histogram)  current and mea
    //    
    Int_t eventsUsed=  nchunks*eventsPerChunk;
    (*pcstream)<<"fluctuation"<<
      "neventsAll="<<neventsAll<<   // total number of event to define mean
      "nmean="<<nevents<<         // mean number of events used
      "eventsUsed="<<eventsUsed<<         // number of chunks used for one fluct. study
      //
      // 1,2,3D histogram per group and total
      "his1DROCN.="<<his1DROCN<<
      "his1DROCSum.="<<his1DROCSum<<
      "his1DDriftN.="<<his1DDriftN<<
      "his1DDriftSum.="<<his1DDriftSum<<
      "his2DRPhiROCN.="<<his2DRPhiROCN<<
      "his2DRPhiROCSum.="<<his2DRPhiROCSum<<
      "his2DRPhiDriftN.="<<his2DRPhiDriftN<<
      "his2DRPhiDriftSum.="<<his2DRPhiDriftSum<<
      "his2DRZROCN.="<<his2DRZROCN<<
      "his2DRZROCSum.="<<his2DRZROCSum<<
      "his2DRZDriftN.="<<his2DRZDriftN<<
      "his2DRZDriftSum.="<<his2DRZDriftSum<<
      "his3DROCN.="<<his3DROCN<<
      "his3DROCSum.="<<his3DROCSum<<      
      "his3DDriftN.="<<his3DDriftN<<      
      "his3DDriftSum.="<<his3DDriftSum<<      
      "\n";      
    pcstream->GetFile()->mkdir(Form("Fluc%d",iter));
    pcstream->GetFile()->cd(Form("Fluc%d",iter));
    //
    his2DRPhiROCN->Write("his2DRPhiROCN");
    his2DRZROCN->Write("his2DRZROCN");
    //
    his2DRPhiROCSum->Write("his2DRPhiROCSum");        
    his2DRZROCSum->Write("his2DRZROCSum");
    //
    his2DRPhiDriftN->Write("his2DRPhiDriftN");
    his2DRZDriftN->Write("his2DRZDriftN");
    //
    his2DRPhiDriftSum->Write("his2DRPhiDriftSum");
    his2DRZDriftSum->Write("his2DRZDriftSum");
    //
    his3DROCN->Write("his3DROCN");
    his3DROCSum->Write("his3DROCSum");
    his3DDriftN->Write("his3DDriftN");
    his3DDriftSum->Write("his3DDriftSum");

    his1DROCN->Reset();
    his1DDriftN->Reset();
    his2DRPhiROCN->Reset();
    his2DRZDriftN->Reset();
    his2DRZROCN->Reset();
    his2DRPhiDriftN->Reset();
    his3DROCN->Reset();
    his3DDriftN->Reset();    
  }

  delete pcstream;
}


void DrawDCARPhiTrendTime(){
  //
  // Macros to draw the DCA correlation with the luminosity (estimated from the occupancy)
  //
  // A side and c side  0 differnt behaviour -
  // A side - space charge effect
  // C side - space charge effect+ FC charging: 
  //   Variables  to query from the QA/calibration DB - tree: 
  //   QA.TPC.CPass1.dcar_posA_0   -dca rphi in cm - offset
  //   Calib.TPC.occQA.Sum()       - luminosity is estimated using the mean occupancy per run
  //     
  TFile *fdb = TFile::Open("outAll.root");
  if (!fdb)  fdb = TFile::Open("http://www-alice.gsi.de/TPC/CPassMonitor/outAll.root"); 
  TTree * tree = (TTree*)fdb->Get("joinAll");
  tree->SetCacheSize(100000000);
  tree->SetMarkerStyle(25);
  
  //QA.TPC.CPass1.dcar_posA_0 QA.TPC.CPass1.dcar_posA_0_Err  QA.TPC.CPass1.meanMult  Calib.TPC.occQA.  DAQ.L3_magnetCurrent 
  
  TGraphErrors * grA = TStatToolkit::MakeGraphErrors(tree,"QA.TPC.CPass1.dcar_posA_0:Calib.TPC.occQA.Sum()*sign(DAQ.L3_magnetCurrent):2*QA.TPC.CPass1.dcar_posA_0_Err","run>190000&&QA.TPC.CPass1.status==1",25,2,0.5);
  TGraphErrors * grC = TStatToolkit::MakeGraphErrors(tree,"QA.TPC.CPass1.dcar_posC_0:Calib.TPC.occQA.Sum()*sign(DAQ.L3_magnetCurrent):2*QA.TPC.CPass1.dcar_posC_0_Err","run>190000&&QA.TPC.CPass1.status==1",25,4,0.5);
  Double_t mean,rms;
  TStatToolkit::EvaluateUni(grA->GetN(),grA->GetY(), mean,rms,grA->GetN()*0.8);
  grA->SetMinimum(mean-5*rms);
  grA->SetMaximum(mean+3*rms);
    
  
  grA->GetXaxis()->SetTitle("occ*sign(bz)");
  grA->GetYaxis()->SetTitle("#Delta_{r#phi} (cm)");
  grA->Draw("ap");
  grC->Draw("p");
  TLegend* legend = new TLegend(0.11,0.11,0.5,0.3,"DCA_{rphi} as function of IR (2013)" );
  legend->AddEntry(grA,"A side","p");
  legend->AddEntry(grC,"C side","p");
  legend->Draw();
}



void DrawOpenGate(){
  //
  //  Make nice plot to demonstrate the space charge effect in run with the open gating grid
  //  For the moment the inmput is harwired - the CPass0 calibration data used
  //  Make nice drawing (with axis labels):
  //  To fix (longer term)
  //     the distortion map to be recalculated - using gaussian fit (currently we use mean)
  //     the histogram should be extended
  TFile f("/hera/alice/alien/alice/data/2013/LHC13g/000197470/cpass0/OCDB/root_archive.zip#meanITSVertex.root");
  TFile fref("/hera/alice/alien/alice/data/2013/LHC13g/000197584/cpass0/OCDB/root_archive.zip#meanITSVertex.root");
  //
  TTree * treeTOFdy=(TTree*)f.Get("TOFdy");
  TTree * treeTOFdyRef=(TTree*)fref.Get("TOFdy");
  treeTOFdy->AddFriend(treeTOFdyRef,"R");
  treeTOFdy->SetMarkerStyle(25);
  TTree * treeITSdy=(TTree*)f.Get("ITSdy");
  TTree * treeITSdyRef=(TTree*)fref.Get("ITSdy");
  treeITSdy->AddFriend(treeITSdyRef,"R");
  treeITSdy->SetMarkerStyle(25);
  TTree * treeVertexdy=(TTree*)f.Get("Vertexdy");
  TTree * treeVertexdyRef=(TTree*)fref.Get("Vertexdy");
  treeVertexdy->AddFriend(treeVertexdyRef,"R");
  treeVertexdy->SetMarkerStyle(25);

  //  treeITSdy->Draw("mean-R.mean:sector:abs(theta)","entries>50&&abs(snp)<0.1&&theta<0","colz")
  
  treeITSdy->Draw("mean-R.mean:sector:abs(theta)","entries>50&&abs(snp)<0.1&&theta>0","colz");
}


void DrawCurrent(const char * ocdb="/cvmfs/alice.gsi.de/alice/data/2013/OCDB/TPC/Calib/HighVoltage", Int_t run0=100000, Int_t run1=110000){
  //
  //
  /*
    const char * ocdb="/cvmfs/alice.gsi.de/alice/data/2013/OCDB/TPC/Calib/HighVoltage";
    Int_t run0=197460;
    Int_t run1=197480;
  */
  const Int_t knpoints=100000;
  TVectorD vecTime(knpoints);
  TVectorD vecI(knpoints);
  Int_t npoints=0;
  for (Int_t irun=run0; irun<run1; irun++){
    TFile * f = TFile::Open(Form("%s/Run%d_%d_v1_s0.root",ocdb,irun,irun));
    if (!f) continue;
    AliCDBEntry *       entry = (AliCDBEntry *)f->Get("AliCDBEntry");    
    if (!entry) continue; 
    AliDCSSensorArray * array = (AliDCSSensorArray *)entry->GetObject();
    if (!array) continue;
    AliDCSSensor * sensor = array->GetSensor("TPC_VHV_D_I_MON");
    //sensor->Draw(Form("%d",irun));     
    TGraph *graph = sensor->GetGraph();
    for (Int_t ipoint=0; ipoint<graph->GetN(); ipoint++){
      vecTime[npoints]=sensor->GetStartTime()+graph->GetX()[ipoint]*3600;
      vecI[npoints]=graph->GetY()[ipoint];
      npoints++;
    }
  }
  TGraph * graph  = new TGraph(npoints, vecTime.GetMatrixArray(), vecI.GetMatrixArray());
  graph->Draw("alp");
  

}


void MakeSpaceChargeFluctuationScan(Double_t scale, Int_t nfilesMerge, Int_t sign){
  //
  //
  // Input:
  //   scale           - scaling of the space charge (defaul 1 corrsponds to the epsilon ~ 5)
  //   nfilesMerge     - amount of chunks to merge
  //                   - =0  all chunks used
  //                     <0  subset form full statistic
  //                     >0  subset from the  limited (1000 mean) statistic
  // Output"  
  // For given SC setups the distortion on the space point and track level characterezed
  //    SpaceChargeFluc%d_%d.root        - space point distortion maps       
  //    SpaceChargeTrackFluc%d%d.root    - tracks distortion caused by  space point distortion 
  //

  // Make fluctuation scan:
  //   1.) Shift of z disk - to show which granularity in time needed
  //   2.) Shift in sector - to show influence of the gass gain and epsilon
  //   3.) Smearing in phi - to define phi granularity needed
  //   4.) Rebin z         - commented out (not delete it for the moment)
  //   5.) Rebin phi       - commented out 
  

  //
  // Some constant definition
  //
  Int_t nitteration=100;    // number of itteration in the lookup
  Int_t fullNorm  =10000;  // normalization  fro the full statistic
  gROOT->ProcessLine(".x $ALICE_ROOT/TPC/Upgrade/macros/ConfigOCDB.C\(1\)");
  //
  // Init magnetic field and OCDB
  //
  
  Double_t bsign= sign;
  if (bsign>1) bsign=-1;
  const Int_t nTracks=2000;
  const char *ocdb="local://$ALICE_ROOT/OCDB/";
  AliCDBManager::Instance()->SetDefaultStorage(ocdb);
  AliCDBManager::Instance()->SetRun(0);   
  TGeoGlobalMagField::Instance()->SetField(new AliMagF("Maps","Maps", bsign, bsign, AliMagF::k5kG));   
  //
  

  TTreeSRedirector *pcstream = new TTreeSRedirector(Form("SpaceChargeFluc%d_%d.root",nfilesMerge,sign),"recreate");
  TTreeSRedirector *pcstreamTrack = new TTreeSRedirector(Form("SpaceChargeTrackFluc%d_%d.root",nfilesMerge,sign),"recreate");
  TH1D *his1DROCN=0, *his1DROCSum=0; 
  TH2D *his2DRPhiROCN=0, *his2DRPhiROCSum=0, *his2DRZROCN=0, *his2DRZROCSum=0;
  TH3D *his3DROCN=0, *his3DROCSum=0; 
  TH1D *his1DROCNC=0, *his1DROCSumC=0; 
  TH2D *his2DRPhiROCNC=0, *his2DRPhiROCSumC=0, *his2DRZROCNC=0, *his2DRZROCSumC=0;
  TH3D *his3DROCNC=0, *his3DROCSumC=0; 
  TH1 * histos[8]={his1DROCN, his1DROCSum, his2DRPhiROCN, his2DRPhiROCSum, his2DRZROCN, his2DRZROCSum,  his3DROCN, his3DROCSum};
  Int_t neventsAll=0, neventsAllC=0;
  Int_t neventsChunk=0, neventsChunkC=0;
  const Double_t ePerADC = 500.; 
  const Double_t fgke0 = 8.854187817e-12;  
  //
  // 
  //
  const char *inputFile="fluctuation.root";  
  TObjArray * fileList = (gSystem->GetFromPipe("cat  fluctuation.list")).Tokenize("\n");
  if (fileList->GetEntries()==0) fileList->AddLast(new TObjString(inputFile));
  Int_t nfiles  = fileList->GetEntries();
  Int_t indexPer[1000];
  Double_t numbersPer[10000];
  for (Int_t i=0; i<nfiles; i++) numbersPer[i]=gRandom->Rndm();
  TMath::Sort(nfiles, numbersPer,indexPer);

  for (Int_t ifile=0; ifile<nfiles; ifile++){
    if (nfilesMerge>0 && ifile>=nfilesMerge) continue; // merge only limited amount if specified by argument
    TFile *fhistos = TFile::Open(fileList->At(indexPer[ifile])->GetName());
    if (!fhistos) continue;
    TTree * treeHis = (TTree*)fhistos->Get("fluctuation");
    if (!treeHis) { printf("file %s does not exist or tree does not exist\n",fileList->At(ifile)->GetName()); continue;}
    Int_t nchunks=treeHis->GetEntries();
    Int_t chunk=nchunks*gRandom->Rndm();
    treeHis->SetBranchAddress("his1DROCN.",&his1DROCNC);
    treeHis->SetBranchAddress("his1DROCSum.",&his1DROCSumC);
    treeHis->SetBranchAddress("his2DRPhiROCN.",&his2DRPhiROCNC);
    treeHis->SetBranchAddress("his2DRPhiROCSum.",&his2DRPhiROCSumC);
    treeHis->SetBranchAddress("his2DRZROCN.",&his2DRZROCNC);
    treeHis->SetBranchAddress("his2DRZROCSum.",&his2DRZROCSumC);
    treeHis->SetBranchAddress("his3DROCN.",&his3DROCNC);
    treeHis->SetBranchAddress("his3DROCSum.",&his3DROCSumC);
    treeHis->SetBranchAddress("neventsAll",&neventsAllC);
    treeHis->SetBranchAddress("eventsUsed",&neventsChunkC);
    treeHis->GetEntry(chunk);  
    neventsAll+=neventsAllC;
    neventsChunk+=neventsChunkC; 
    //
    TH1 * histosC[8]={ his1DROCNC, his1DROCSumC, his2DRPhiROCNC, his2DRPhiROCSumC, his2DRZROCNC, his2DRZROCSumC, his3DROCNC, his3DROCSumC};
    if (ifile==0) for (Int_t ihis=0; ihis<8; ihis++) histos[ihis] = (TH1*)(histosC[ihis]->Clone());
    if (ifile>0)  {
      for (Int_t ihis=0; ihis<8; ihis++) histos[ihis]->Add(histosC[ihis]);
    }
  }
  his1DROCN=(TH1D*)histos[0]; his1DROCSum=(TH1D*)histos[1];
  his2DRPhiROCN=(TH2D*)histos[2];  his2DRPhiROCSum=(TH2D*)histos[3];  his2DRZROCN=(TH2D*)histos[4];  his2DRZROCSum=(TH2D*)histos[5]; 
  his3DROCN=(TH3D*)histos[6];  his3DROCSum=(TH3D*)histos[7];
  //
  // Select input histogram
  //
  TH3D * hisInput= his3DROCSum;
  Int_t neventsCorr=0;                 // number of events used for the correction studies
  if (nfilesMerge>0){
    neventsCorr=neventsChunk;
    hisInput=his3DROCN;
  }else{
    neventsCorr=neventsAll;
    hisInput=his3DROCSum;
    hisInput->Scale(Double_t(fullNorm)/Double_t(neventsAll));
  }
  
  TObjArray *distortionArray = new TObjArray; 
  TObjArray *histoArray = new TObjArray; 
  //
  // Make a reference  - ideal distortion/correction
  //
  TH3D * his3DReference =  NormalizeHistoQ(hisInput,kFALSE); // q normalized to the Q/m^3
  his3DReference->Scale(scale*0.000001/fgke0); //scale back to the C/cm^3/epsilon0
  AliTPCSpaceCharge3D *spaceChargeRef = new AliTPCSpaceCharge3D;
  spaceChargeRef->SetOmegaTauT1T2(omegaTau*bsign,1,1); // Ne CO2
  spaceChargeRef->SetInputSpaceCharge(his3DReference, his2DRPhiROCSum,his2DRPhiROCSum,1);
  spaceChargeRef->InitSpaceCharge3DPoisson(129, 129, 144,nitteration);
  spaceChargeRef->AddVisualCorrection(spaceChargeRef,1);
  spaceChargeRef->SetName("DistRef");
  his3DReference->SetName("hisDistRef");
  distortionArray->AddLast(spaceChargeRef);
  histoArray->AddLast(his3DReference);
  //
  // Draw histos
  TCanvas * canvasSC = new TCanvas("canvasSCDefault","canvasSCdefault",500,400);  
  canvasSC->SetRightMargin(0.12);
  gStyle->SetTitleOffset(0.8,"z");
  canvasSC->SetRightMargin(0.13);
  spaceChargeRef->CreateHistoDRPhiinXY(10,250,250)->Draw("colz");
  canvasSC->SaveAs(Form("canvasCreateHistoDRPhiinXY_Z10_%d_%d.pdf",nfilesMerge,sign));
  spaceChargeRef->CreateHistoDRinXY(10,250,250)->Draw("colz");
  canvasSC->SaveAs(Form("canvasCreateHistoDRinXY_Z10_%d_%d.pdf",nfilesMerge,sign));
  spaceChargeRef->CreateHistoSCinZR(0.05,250,250)->Draw("colz");
  canvasSC->SaveAs(Form("canvasCreateHistoSCinZR_Phi005_%d_%d.pdf",nfilesMerge,sign));
  spaceChargeRef->CreateHistoSCinXY(10.,250,250)->Draw("colz");
  canvasSC->SaveAs(Form("canvasCreateHistoSCinRPhi_Z10_%d_%d.pdf",nfilesMerge,sign));


  //
  // Make Z scan corrections
  // 
  if (1){
  for (Int_t  ihis=1; ihis<=9; ihis+=2){ 
    TH3 *his3DZ = PermutationHistoZ(his3DReference,16*(ihis));
    AliTPCSpaceCharge3D *spaceChargeZ = new AliTPCSpaceCharge3D;
    spaceChargeZ->SetOmegaTauT1T2(omegaTau*bsign,1,1); // Ne CO2
    spaceChargeZ->SetInputSpaceCharge(his3DZ, his2DRPhiROCSum,his2DRPhiROCSum,1);
    spaceChargeZ->InitSpaceCharge3DPoisson(129, 129, 144,nitteration);
    spaceChargeZ->CreateHistoDRPhiinXY(10,250,250)->Draw("colz");
    spaceChargeZ->AddVisualCorrection(spaceChargeZ,100+ihis);    
    spaceChargeZ->SetName(Form("DistZ_%d", 16*(ihis)));
    his3DZ->SetName(Form("HisDistZ_%d", 16*(ihis)));
    distortionArray->AddLast(spaceChargeZ);
    histoArray->AddLast(his3DZ);
  }
  //
  // Make Sector scan corrections
  // 
  for (Int_t  ihis=1; ihis<=9; ihis+=2){ 
    TH3 *his3DSector = PermutationHistoPhi(his3DReference,TMath::Pi()*(ihis)/9.);
    AliTPCSpaceCharge3D *spaceChargeSector = new AliTPCSpaceCharge3D;
    spaceChargeSector->SetOmegaTauT1T2(omegaTau*bsign,1,1); // Ne CO2
    spaceChargeSector->SetInputSpaceCharge(his3DSector, his2DRPhiROCSum,his2DRPhiROCSum,1);
    spaceChargeSector->InitSpaceCharge3DPoisson(129, 129, 144,nitteration);
    spaceChargeSector->CreateHistoDRPhiinXY(10,250,250)->Draw("colz");
    spaceChargeSector->AddVisualCorrection(spaceChargeSector,200+ihis);    
    spaceChargeSector->SetName(Form("DistSector_%d", ihis));
    his3DSector->SetName(Form("DistSector_%d", ihis));
    distortionArray->AddLast(spaceChargeSector);
    histoArray->AddLast(his3DSector);
  } 
  //
  // Make Local phi scan smear  corrections
  // 
  for (Int_t  ihis=1; ihis<=8; ihis++){ 
    TH3 *his3DSector = PermutationHistoLocalPhi(his3DReference,ihis);
    AliTPCSpaceCharge3D *spaceChargeSector = new AliTPCSpaceCharge3D;
    spaceChargeSector->SetOmegaTauT1T2(omegaTau*bsign,1,1); // Ne CO2
    spaceChargeSector->SetInputSpaceCharge(his3DSector, his2DRPhiROCSum,his2DRPhiROCSum,1);
    spaceChargeSector->InitSpaceCharge3DPoisson(129, 129, 144,nitteration);
    spaceChargeSector->CreateHistoDRPhiinXY(10,250,250)->Draw("colz");
    spaceChargeSector->AddVisualCorrection(spaceChargeSector,300+ihis);    
    spaceChargeSector->SetName(Form("DistPhi_%d", ihis));
    his3DSector->SetName(Form("HisDistPhi_%d", ihis));
    distortionArray->AddLast(spaceChargeSector); 
    histoArray->AddLast(his3DSector);
  }
 //  // 
//   // Rebin Z
//   //
//   for (Int_t  ihis=2; ihis<=8;  ihis+=2){ 
//     TH3 *his3DSector = his3DReference->RebinZ(ihis,Form("RebinZ_%d",ihis));
//     AliTPCSpaceCharge3D *spaceChargeSector = new AliTPCSpaceCharge3D;
//     spaceChargeSector->SetOmegaTauT1T2(omegaTau*bsign,1,1); // Ne CO2
//     spaceChargeSector->SetInputSpaceCharge(his3DSector, his2DRPhiROCSum,his2DRPhiROCSum,1);
//     spaceChargeSector->InitSpaceCharge3DPoisson(129, 129, 144,nitteration);
//     spaceChargeSector->CreateHistoDRPhiinXY(10,250,250)->Draw("colz");
//     spaceChargeSector->AddVisualCorrection(spaceChargeSector,300+ihis);    
//     spaceChargeSector->SetName(Form("RebinZ_%d", ihis));
//     his3DSector->SetName(Form("RebinZ_%d", ihis));
//     distortionArray->AddLast(spaceChargeSector); 
//     histoArray->AddLast(his3DSector);
//   }
//   //
//   // Rebin Phi
//   //
//   for (Int_t  ihis=2; ihis<=5; ihis++){ 
//     TH3 *his3DSector = his3DReference->RebinZ(ihis,Form("RebinPhi_%d",ihis));
//     AliTPCSpaceCharge3D *spaceChargeSector = new AliTPCSpaceCharge3D;
//     spaceChargeSector->SetOmegaTauT1T2(omegaTau*bsign,1,1); // Ne CO2
//     spaceChargeSector->SetInputSpaceCharge(his3DSector, his2DRPhiROCSum,his2DRPhiROCSum,1);
//     spaceChargeSector->InitSpaceCharge3DPoisson(129, 129, 144,nitteration);
//     spaceChargeSector->CreateHistoDRPhiinXY(10,250,250)->Draw("colz");
//     spaceChargeSector->AddVisualCorrection(spaceChargeSector,300+ihis);    
//     spaceChargeSector->SetName(Form("RebinZ_%d", ihis));
//     his3DSector->SetName(Form("RebinZ_%d", ihis));
//     distortionArray->AddLast(spaceChargeSector); 
//     histoArray->AddLast(his3DSector);
//   }
  }
  //
  // Space points scan
  //
  Int_t nx = his3DROCN->GetXaxis()->GetNbins();
  Int_t ny = his3DROCN->GetYaxis()->GetNbins();
  Int_t nz = his3DROCN->GetZaxis()->GetNbins();
  Int_t nbins=nx*ny*nz;
  TVectorF  vx(nbins), vy(nbins), vz(nbins), vq(nbins), vqall(nbins);
  //
  // charge in the ROC
  // for open gate data only fraction of ions enter to drift volume
  //
  const Int_t kbins=1000;
  Double_t deltaR[kbins], deltaZ[kbins],deltaRPhi[kbins], deltaQ[kbins];
  Int_t ndist = distortionArray->GetEntries();
  for (Int_t ix=1; ix<=nx; ix+=2){    // phi bin loop
    for (Int_t iy=1; iy<=ny; iy+=2){  // r bin loop
      Double_t phi= his3DROCN->GetXaxis()->GetBinCenter(ix);
      Double_t r  = his3DROCN->GetYaxis()->GetBinCenter(iy);
      Double_t x  = r*TMath::Cos(phi); 
      Double_t y  = r*TMath::Sin(phi); 
      //
      for (Int_t iz=1; iz<=nz; iz++){ // z bin loop
	Double_t z  = his3DROCN->GetZaxis()->GetBinCenter(iz);
	Double_t qN= his3DROCN->GetBinContent(ix,iy,iz);
	Double_t qSum= his3DROCSum->GetBinContent(ix,iy,iz);
	//	Double_t dV  in cm = dphi * r * dz  	in cm**3
	Double_t dV=   (his3DROCN->GetXaxis()->GetBinWidth(ix)*r)*his3DROCN->GetZaxis()->GetBinWidth(iz);
	Double_t norm= 1e6*ePerADC*TMath::Qe()/dV;  //normalization factor to the Q/m^3 inside of the ROC;	
	(*pcstream)<<"hisDump"<<
	  "neventsAll="<<neventsAll<<         // total number of events used for the Q reference
	  "nfiles="<<nfiles<<                 // number of files to define properties
	  "nfilesMerge="<<nfilesMerge<<       // number of files to define propertiesneventsCorr
	  "neventsCorr="<<neventsCorr<<       // number of events used to define the corection
	  "fullNorm="<<fullNorm<<             // in case full statistic used this is the normalization coeficient

	  "ix="<<ix<<     
	  "iy="<<iy<<
	  "iz="<<iz<<
	  // x,y,z
	  "x="<<x<<
	  "y="<<y<<
	  "z="<<z<<
	  // phi,r,z
	  "phi="<<phi<<
	  "r="<<r<<
	  "z="<<z<<
	  "norm="<<norm<<
	  "qN="<<qN<<
	  "qSum="<<qSum;
	for (Int_t idist=0; idist<ndist; idist++){
	  AliTPCCorrection * corr  = (AliTPCCorrection *)distortionArray->At(idist);
	  TH3 * his = (TH3*)histoArray->At(idist);
	  Double_t phi0= TMath::ATan2(y,x);
	  Int_t nsector=(z>=0) ? 0:18; 
	  Float_t distPoint[3]={x,y,z};
	  corr->CorrectPoint(distPoint, nsector);
	  Double_t r0=TMath::Sqrt(x*x+y*y);
	  Double_t r1=TMath::Sqrt(distPoint[0]*distPoint[0]+distPoint[1]*distPoint[1]);
	  Double_t phi1=TMath::ATan2(distPoint[1],distPoint[0]);
	  deltaR[idist]    = r1-r0;
	  deltaRPhi[idist] = (phi1-phi0)*r0;
	  deltaZ[idist]    = distPoint[2]-z;
	  deltaQ[idist]    = his->GetBinContent(ix,iy,iz);
	  //
	  (*pcstream)<<"hisDump"<<   //correct point - input point
	    Form("%sQ=",corr->GetName())<<deltaQ[idist]<<         
	    Form("%sDR=",corr->GetName())<<deltaR[idist]<<         
	    Form("%sDRPhi=",corr->GetName())<<deltaRPhi[idist]<<         
	    Form("%sDZ=",corr->GetName())<<deltaZ[idist];
	}
	(*pcstream)<<"hisDump"<<
	  "\n";
      }
    }
  }
  pcstream->GetFile()->cd();
  for (Int_t idist=0; idist<ndist; idist++){
    AliTPCCorrection * corr  = (AliTPCCorrection *)distortionArray->At(idist);
    corr->Write(corr->GetName());
  }
  delete pcstream;
  //
  // generate track distortions
  //
  const Double_t xITSlayer[7]={2.2, 2.8 ,3.6 , 20, 22,41,43 };  // ITS layers R poition (http://arxiv.org/pdf/1304.1306v3.pdf)
  const Double_t resITSlayer[7]={0.0004, 0.0004 ,0.0004 , 0.0004, 0.0004, 0.0004, 0.0004 };  // ITS layers R poition (http://arxiv.org/pdf/1304.1306v3.pdf - pixel scenario) 
  const Double_t kMaxSnp = 0.85;   
  const Double_t kMass = TDatabasePDG::Instance()->GetParticle("pi+")->Mass();
  if (nTracks>0){
    for(Int_t nt=1; nt<=nTracks; nt++){
      gRandom->SetSeed(nt);
      TObjArray trackArray(10000);
      Double_t phi = gRandom->Uniform(0.0, 2*TMath::Pi());
      Double_t eta = gRandom->Uniform(-1, 1);
      Double_t pt = 1/(gRandom->Rndm()*5+0.00001); // momentum for f1
      Short_t psign=1;
      if(gRandom->Rndm() < 0.5){
	psign =1;
      }else{
	psign=-1;
      }      
      Double_t theta = 2*TMath::ATan(TMath::Exp(-eta))-TMath::Pi()/2.;
      Double_t pxyz[3];
      pxyz[0]=pt*TMath::Cos(phi);
      pxyz[1]=pt*TMath::Sin(phi);
      pxyz[2]=pt*TMath::Tan(theta);
      Double_t vertex[3]={0,0,0};
      Double_t cv[21]={0};
      AliExternalTrackParam *t= new AliExternalTrackParam(vertex, pxyz, cv, psign);   
      Double_t refX0=85.;
      Double_t refX1=1.;
      Int_t dir=-1;
      (*pcstreamTrack)<<"trackFit"<<
	"bsign="<<bsign<<
	"neventsAll="<<neventsAll<<         // total number of events used for the Q reference
	"nfiles="<<nfiles<<                 // number of files to define properties
	"nfilesMerge="<<nfilesMerge<<       // number of files to define propertiesneventsCorr
	"neventsCorr="<<neventsCorr<<       // number of events used to define the corection
	"fullNorm="<<fullNorm<<             // in case full statistic used this is the normalization coeficient
	"itrack="<<nt<<                     //
	"input.="<<t;                       // 
      
      Bool_t isOK0=kTRUE;
      Bool_t isOK1=kTRUE;
      Bool_t itsOK=kTRUE;
      Bool_t itsUpdateOK=kTRUE;

      for (Int_t idist=0; idist<ndist; idist++){
	AliTPCCorrection * corr   = (AliTPCCorrection *)distortionArray->At(idist);
	// 0. TPC only information at the entrance
	// 1. TPC only information close to vertex ( refX=1 cm) 
	// 2. TPC constrained information close to the primary vertex
	// 3. TPC +ITS
	AliExternalTrackParam *ot0= new AliExternalTrackParam(vertex, pxyz, cv, psign);   
	AliExternalTrackParam *ot1= new AliExternalTrackParam(vertex, pxyz, cv, psign);   
	AliExternalTrackParam *td0 =  corr->FitDistortedTrack(*ot0, refX0, dir,  0);
	AliExternalTrackParam *td1 =  corr->FitDistortedTrack(*ot1, refX1, dir,  0);
	if (td0==0) { // if fit fail use dummy values
	  ot0= new AliExternalTrackParam(vertex, pxyz, cv, psign);
	  td0= new AliExternalTrackParam(vertex, pxyz, cv, psign);
	  printf("Propagation0 failed: track\t%d\tdistortion\t%d\n",nt,idist);
	  isOK0=kFALSE;
	}
	if (td1==0) {
	  ot1= new AliExternalTrackParam(vertex, pxyz, cv, psign);
	  td1= new AliExternalTrackParam(vertex, pxyz, cv, psign);
	  printf("Propagation1 failed: track\t%d\tdistortion\t%d\n",nt,idist);
	  isOK1=kFALSE;
	}
	// 2. TPC constrained emulation
	AliExternalTrackParam *tdConstrained =  new  AliExternalTrackParam(*td1);
	tdConstrained->Rotate(ot1->GetAlpha());
	tdConstrained->PropagateTo(ot1->GetX(), AliTrackerBase::GetBz());
	Double_t pointPos[2]={ot1->GetY(),ot1->GetZ()};  // local y and local z of point
	Double_t pointCov[3]={0.0001,0,0.0001};                    // 
	tdConstrained->Update(pointPos,pointCov);
	// 3. TPC+ITS  constrained umulation
	AliExternalTrackParam *tdITS     =  new  AliExternalTrackParam(*td0); 
	AliExternalTrackParam *tdITSOrig =  new  AliExternalTrackParam(*ot0); 
	//
	if ( isOK0 && isOK1 ) {
	  for (Int_t ilayer=6; ilayer>=0; ilayer--){
	    if (!AliTrackerBase::PropagateTrackTo(tdITSOrig,xITSlayer[ilayer],kMass,5.,kTRUE,kMaxSnp)) itsOK=kFALSE;
	    if (!AliTrackerBase::PropagateTrackTo(tdITS,xITSlayer[ilayer],kMass,5.,kTRUE,kMaxSnp)) {
	      itsOK=kFALSE;
	      printf("PropagationITS failed: track\t%d\tdistortion\t%d\t%d\n",nt,idist,ilayer);
	    }
	    //
	    tdITS->Rotate(tdITSOrig->GetAlpha());
	    if (tdITS->PropagateTo(tdITSOrig->GetX(), AliTrackerBase::GetBz())){
	      Double_t itspointPos[2]={tdITSOrig->GetY(),tdITSOrig->GetZ()};  // local y and local z of point
	      Double_t itspointCov[3]={resITSlayer[ilayer]*resITSlayer[ilayer],0,resITSlayer[ilayer]*resITSlayer[ilayer]};   
	      if (!tdITS->Update(itspointPos,itspointCov)){
		itsUpdateOK=kFALSE;
	      }
	    }
	  } 
	}else{
	  itsOK=kFALSE;
	}
	//
	trackArray.AddLast(td0);
	trackArray.AddLast(td1);
	trackArray.AddLast(tdConstrained);
	trackArray.AddLast(tdITS);
	trackArray.AddLast(tdITSOrig);
	//
	trackArray.AddLast(ot0);
	trackArray.AddLast(ot1);
	char name0[100], name1[1000], nameITS[1000];
	char oname0[100], oname1[1000], onameConstrained[1000], onameITS[1000];
	snprintf(name0, 100, "T_%s_0.=",corr->GetName());
	snprintf(name1, 100, "T_%s_1.=",corr->GetName());
	snprintf(oname0, 100, "OT_%s_0.=",corr->GetName());
	snprintf(oname1, 100, "OT_%s_1.=",corr->GetName());
	snprintf(onameConstrained, 100, "OConst_%s_1.=",corr->GetName());
	//
	snprintf(nameITS, 100, "TPCITS_%s_1.=",corr->GetName());
	snprintf(onameITS, 100, "OTPCITS_%s_1.=",corr->GetName());
	(*pcstreamTrack)<<"trackFit"<<
	  name0<<td0<<                       // distorted TPC track only at the refX=85
	  name1<<td1<<                       // distorted TPC track only at the refX=1
	  onameConstrained<<tdConstrained<<  // distorted TPC constrained track only at the refX=1 
	  //
	  onameITS<<tdITSOrig<<              //  original TPC+ITS track
	  nameITS<<tdITS<<                   //  distorted TPC+ (indistrted)ITS track fit
	  //
	  oname0<<ot0<<                      // original track at the entrance refX=85
	  oname1<<ot1;                       // original track at the refX=1 cm (to be used for TPC only and also for the constrained
	
      }
      (*pcstreamTrack)<<"trackFit"<<
	"isOK0="<<isOK0<<  // propagation good at the inner field cage
	"isOK1="<<isOK1<<  // god at 1 cm (close to vertex)
	"itsOK="<<itsOK<<  // 
	"itsUpdateOK="<<itsOK<<  // 
	"\n";
    }
  }
  delete pcstreamTrack;
  return;

}


void MakePlotPoisson3D(const char *inputfile="fluctuation.root", const char *outputfile="SpaceCharge.root", Int_t event=0){
  //
  // draw "standard" plot to show radial and theta dependence of the space charge distortion
  //
  //  const char *inputfile="fluctuation.root";  const char *outputfile="SpaceCharge.root";  Int_t event=0
  //
  TFile *fhistos = TFile::Open(inputfile);
  TH2D *his2DRPhiROCN=0, *his2DRPhiROCSum=0, *his2DRZROCN=0, *his2DRZROCSum=0;
  TH1D *his1DROCN=0, *his1DROCSum=0; 
  TH3D *his3DROCN=0, *his3DROCSum=0; 
  const Double_t ePerADC = 500.; 
  const Double_t fgke0 = 8.854187817e-12;  
  TTree * treeHis = (TTree*)fhistos->Get("fluctuation");
  treeHis->SetBranchAddress("his1DROCN.",&his1DROCN);
  treeHis->SetBranchAddress("his1DROCSum.",&his1DROCSum);
  treeHis->SetBranchAddress("his2DRPhiROCN.",&his2DRPhiROCN);
  treeHis->SetBranchAddress("his2DRPhiROCSum.",&his2DRPhiROCSum);
  treeHis->SetBranchAddress("his2DRZROCN.",&his2DRZROCN);
  treeHis->SetBranchAddress("his2DRZROCSum.",&his2DRZROCSum);
  treeHis->SetBranchAddress("his3DROCN.",&his3DROCN);
  treeHis->SetBranchAddress("his3DROCSum.",&his3DROCSum);
  treeHis->GetEntry(event);
  
  his3DROCSum->Scale(ePerADC*TMath::Qe()/fgke0); 

  AliTPCSpaceCharge3D *spaceChargeOrig = new AliTPCSpaceCharge3D;
  spaceChargeOrig->SetOmegaTauT1T2(0.0,1,1); // Ne CO2
  spaceChargeOrig->SetInputSpaceCharge(his3DROCSum, his2DRPhiROCSum,his2DRPhiROCSum,10*ePerADC*TMath::Qe());
  spaceChargeOrig->InitSpaceCharge3DPoisson(129, 129, 144,100);
  spaceChargeOrig->CreateHistoDRPhiinXY(10,250,250)->Draw("colz");
  spaceChargeOrig->AddVisualCorrection(spaceChargeOrig,1);
  //
  //AliTPCSpaceCharge3D *spaceChargeRef= spaceChargeOrig;



  //
  Int_t nfuns=5;
  Double_t dmax=0.75, dmin=-0.75;
  Double_t phiRange=18;
  TCanvas *canvasDistortionP3D = new TCanvas("canvasdistortionP3D","canvasdistortionP3D",1000,700);
  canvasDistortionP3D->SetGrid(1,1);
  canvasDistortionP3D->Divide(1,2);
  canvasDistortionP3D->cd(1)->SetGrid(1,1);    
  TLegend * legendR= new TLegend(0.11,0.11,0.45,0.35,"R scan (#Theta=0.1)");
  for (Int_t ifun1=0; ifun1<=nfuns; ifun1++){    
    Double_t rfun= 85.+ifun1*(245.-85.)/nfuns;
    TF1 *pf1 = new TF1("f1",Form("AliTPCCorrection::GetCorrSector(x,%f,0.1,1,1)",rfun),0,phiRange);
    pf1->SetMinimum(dmin);
    pf1->SetMaximum(dmax);
    pf1->SetNpx(360);
    pf1->SetLineColor(1+ifun1);
    pf1->SetLineWidth(2);    
    pf1->GetXaxis()->SetTitle("sector");
    pf1->GetXaxis()->SetNdivisions(530);
    pf1->GetYaxis()->SetTitle("#Delta_{r#phi} (cm)");
    if (ifun1==0) pf1->Draw();
    pf1->Draw("same");
    legendR->AddEntry(pf1,Form("r=%1.0f",rfun));
  }
  legendR->Draw();
  //
  canvasDistortionP3D->cd(2)->SetGrid(1,1);
  TLegend * legendTheta= new TLegend(0.11,0.11,0.45,0.35,"#Theta scan (r=125 cm)");
  for (Int_t ifun1=0; ifun1<=nfuns; ifun1++){    
    Double_t tfun= 0.1+ifun1*(0.8)/nfuns;
    TF1 *pf1 = new TF1("f1",Form("AliTPCCorrection::GetCorrSector(x,125,%f,1,1)",tfun),0,phiRange);
    pf1->SetMinimum(dmin);
    pf1->SetMaximum(dmax);
    pf1->SetNpx(360);
    pf1->SetLineColor(1+ifun1);
    pf1->SetLineWidth(2);    
    pf1->GetXaxis()->SetTitle("sector");
    pf1->GetYaxis()->SetTitle("#Delta_{r#phi} (cm)");
    pf1->GetXaxis()->SetNdivisions(530);
    if (ifun1==0) pf1->Draw();
    pf1->Draw("same");
    legendTheta->AddEntry(pf1,Form("#Theta=%1.2f",tfun));
  }
  legendTheta->Draw();

}

TH3D *  NormalizeHistoQ(TH3D * hisInput, Bool_t normEpsilon){
  //
  // Renormalize the histogram to the Q/m^3
  // Input:
  //   hisInput     - input 3D histogram
  //   normEpsilon  - flag - normalize to epsilon0
  //
  const Double_t ePerADC = 500.; 
  const Double_t fgkEpsilon0 = 8.854187817e-12;  
  TH3D * hisOutput= new TH3D(*hisInput);
  Int_t nx = hisInput->GetXaxis()->GetNbins();
  Int_t ny = hisInput->GetYaxis()->GetNbins();
  Int_t nz = hisInput->GetZaxis()->GetNbins();
  for (Int_t ix=1; ix<=nx; ix++){
    for (Int_t iy=1; iy<=ny; iy++){
      for (Int_t iz=1; iz<=nz; iz++){
	//	Double_t z = hisInput->GetZaxis()->GetBinCenter(iz);
	Double_t deltaRPhi = hisInput->GetXaxis()->GetBinWidth(ix)* hisInput->GetYaxis()->GetBinCenter(iy);
	Double_t deltaR= hisInput->GetYaxis()->GetBinWidth(iy);
	Double_t deltaZ= hisInput->GetYaxis()->GetBinWidth(iz);	
	Double_t volume= (deltaRPhi*deltaR*deltaZ)/1000000.;
	Double_t q   = hisInput->GetBinContent(ix,iy,iz)* ePerADC*TMath::Qe(); // Q in coulombs
	Double_t rho = q/volume;      // rpho - density in Q/m^3
	if (normEpsilon) rho/=fgkEpsilon0;
	hisOutput->SetBinContent(ix,iy,iz,rho);
      }
    }
  }
  return hisOutput;
}



TH3D *  PermutationHistoZ(TH3D * hisInput, Double_t deltaZ){
  //
  // Used to estimate the effect of the imperfection of the lookup tables as function of update frequency
  //
  // Permute/rotate the conten of the histogram in z direction
  // Reshufle/shift content -  Keeping the integral the same
  // Parameters:
  //    hisInput - input 3D histogram (phi,r,z)
  //    deltaZ   - deltaZ -shift of the space charge
  Double_t zmax=250;
  TH3D * hisOutput= new TH3D(*hisInput);
  Int_t nx = hisInput->GetXaxis()->GetNbins();
  Int_t ny = hisInput->GetYaxis()->GetNbins();
  Int_t nz = hisInput->GetZaxis()->GetNbins();
  //
  //
  for (Int_t ix=1; ix<=nx; ix++){
    for (Int_t iy=1; iy<=ny; iy++){
      for (Int_t iz=1; iz<=nz; iz++){
	Double_t zold = hisInput->GetZaxis()->GetBinCenter(iz);
	Double_t z=zold;
	if (z>0){
	  z+=deltaZ;
	  if (z<0) z+=zmax;
	  if (z>zmax) z-=zmax;
	}else{
	  z-=deltaZ;
	  if (z>0) z-=zmax;
	  if (z<-zmax) z+=zmax;	}
	Double_t kz= hisInput->GetZaxis()->FindBin(z);
	Double_t content = hisInput->GetBinContent(ix,iy,iz);
	hisOutput->SetBinContent(ix,iy,kz,content);
      }
    }
  }
  return hisOutput;
}




TH3D *  PermutationHistoPhi(TH3D * hisInput, Double_t deltaPhi){
  //
  // Used to estimate the effect of the imperfection of the lookup tables as function of update frequency
  //
  // Permute/rotate the conten of the histogram in phi
  // Reshufle/shift content -  Keeping the integral the same
  // Parameters:
  //    hisInput - input 3D histogram (phi,r,z)
  //    deltaPhi   - deltaPhi -shift of the space charge
  TH3D * hisOutput= new TH3D(*hisInput);
  Int_t nx = hisInput->GetXaxis()->GetNbins();
  Int_t ny = hisInput->GetYaxis()->GetNbins();
  Int_t nz = hisInput->GetZaxis()->GetNbins();
  //
  //
  for (Int_t iy=1; iy<=ny; iy++){
    for (Int_t iz=1; iz<=nz; iz++){
      for (Int_t ix=1; ix<=nx; ix++){
	Double_t phiOld = hisInput->GetXaxis()->GetBinCenter(ix);
	Double_t phi=phiOld;
	phi+=deltaPhi;
	if (phi<0) phi+=TMath::TwoPi();
	if (phi>TMath::TwoPi()) phi-=TMath::TwoPi();	
	Double_t kx= hisInput->GetXaxis()->FindBin(phi);
	Double_t content = hisInput->GetBinContent(ix,iy,iz);
	hisOutput->SetBinContent(kx,iy,iz,content);
      }
    }
  }
  return hisOutput;
}


TH3D *  PermutationHistoLocalPhi(TH3D * hisInput, Int_t deltaPhi){
  //
  // Used to estimate the effect of the imperfection of the lookup tables as function of update frequency
  // Use moving average of the content  instead of the content
  //
  // Parameters:
  //    hisInput - input 3D histogram (phi,r,z)
  //    deltaPhi   - moving average width
  TH3D * hisOutput= new TH3D(*hisInput);
  Int_t nx = hisInput->GetXaxis()->GetNbins();
  Int_t ny = hisInput->GetYaxis()->GetNbins();
  Int_t nz = hisInput->GetZaxis()->GetNbins();
  Int_t binSector=nx/18;
  //
  //
  for (Int_t iy=1; iy<=ny; iy++){
    for (Int_t iz=1; iz<=nz; iz++){
      for (Int_t ix=1; ix<=nx; ix++){
	Double_t sumRo=0,sumW=0;
	for (Int_t idx=-deltaPhi; idx<=deltaPhi; idx++){
	  Int_t index=ix+idx;
	  if (index<1) index+=nx+1;  // underflow and overflow bins
	  if (index>nx) index-=nx+1;
	  Double_t content = hisInput->GetBinContent(index,iy,iz);
	  sumRo+=content;
	  sumW++;
	}
	Double_t meanCont= sumRo/sumW;
	hisOutput->SetBinContent(ix,iy,iz,meanCont);	
	//printf("%d\t%f\n",ix,hisInput->GetBinContent(ix,iy,iz)/(hisInput->GetBinContent(ix,iy,iz)+meanCont));
      }	
    }
  }
  return hisOutput;
}



void ScanIterrationPrecision(TH3 * hisInput, Int_t offset){
  //
  //
  //
  for (Int_t iter=0; iter<=7; iter++){
    Int_t niter= 50.*TMath::Power(1.5,iter);
    AliTPCSpaceCharge3D *spaceChargeOrig = new AliTPCSpaceCharge3D;
    spaceChargeOrig->SetOmegaTauT1T2(0.0,1,1); // Ne CO2
    spaceChargeOrig->SetInputSpaceCharge(hisInput,0,0,1);
    spaceChargeOrig->InitSpaceCharge3DPoisson(129, 129, 144,niter);
    spaceChargeOrig->CreateHistoDRPhiinXY(10,250,250)->Draw("colz");
    spaceChargeOrig->AddVisualCorrection(spaceChargeOrig,offset+iter+1);
  }
}


void DrawFluctuationSector(Int_t stat, Double_t norm){
  //
  // Draw correction - correction  at rotated sector  
  // The same set of events used
  // Int_t stat=0; Double_t norm=10000;
  // 
  // Notes:
  //    1. (something wrong for the setup 2 pileups  -problem with data 24.07
  //
  //
  TFile *f0= TFile::Open(Form("SpaceChargeFluc%d.root",stat));
  TTree * tree0 = (TTree*)f0->Get("hisDump");
  tree0->SetCacheSize(1000000000);
  tree0->SetMarkerStyle(25);
  TObjArray * fitArray=new TObjArray(3);
  tree0->SetAlias("scNorm",Form("%f/neventsCorr",norm));
  //
  // Sector Scan
  //
  TH2 * hisSectorScan[5]={0};
  TH1 * hisSectorScanSigma[5]={0};
  for (Int_t ihis=0; ihis<5; ihis++){
    tree0->Draw(Form("(DistRefDR-DistSector_%dDR)*scNorm:r>>hisSec%d(50,84,245,100,-1,1)",ihis*2+1,ihis*2+1),"abs(z)<90","colzgoff");
    hisSectorScan[ihis]=(TH2*)tree0->GetHistogram();
    hisSectorScan[ihis]->FitSlicesY(0,0,-1,0,"QNR",fitArray);
    hisSectorScanSigma[ihis]=(TH1*)(fitArray->At(2)->Clone());
    hisSectorScanSigma[ihis]->SetMinimum(0);
    hisSectorScanSigma[ihis]->SetMaximum(0.2);
  }
  gStyle->SetOptStat(0);
  gStyle->SetOptTitle(1);
  TCanvas * canvasFlucSectorScan=new TCanvas("canvasFlucSectorScan","canvasFlucSectorScan",750,700);
  canvasFlucSectorScan->Divide(2,2,0,0);  
  gStyle->SetPadBorderMode(0);
  for (Int_t ihis=0; ihis<4; ihis++){
    canvasFlucSectorScan->cd(ihis+1)->SetLogz(1);
    hisSectorScan[ihis]->GetXaxis()->SetTitle("r (cm)");
    hisSectorScan[ihis]->GetYaxis()->SetTitle("#Delta_{R} (cm)");
    hisSectorScan[ihis]->Draw("colz");
    TLegend * legendSec=new TLegend(0.5,0.7,0.89,0.89);
    legendSec->AddEntry(hisSectorScan[ihis],Form("Sector #Delta %d",(ihis*2+1))); 
    legendSec->Draw();
  }
  canvasFlucSectorScan->SaveAs("canvasFlucSectorScan.pdf");
  canvasFlucSectorScan->SaveAs("canvasFlucSectorScan.png");
  //
  gStyle->SetOptTitle(0);
  TCanvas * canvasFlucSectorScanFit=new TCanvas("canvasFlucSectorScanFit","canvasFlucSectorScanFit",750,550);
  TLegend * legendSector = new TLegend(0.50,0.55,0.89,0.89,"Space charge: corr(sec)-corr(sec-#Delta_{sec})");
  for (Int_t ihis=0; ihis<5; ihis++){
    hisSectorScanSigma[ihis]->GetXaxis()->SetTitle("r (cm)");
    hisSectorScanSigma[ihis]->GetYaxis()->SetTitle("#sigma(#Delta_{R}) (cm)");
    hisSectorScanSigma[ihis]->SetMarkerStyle(21+ihis%5);
    hisSectorScanSigma[ihis]->SetMarkerColor(1+ihis%4);
    if (ihis==0) hisSectorScanSigma[ihis]->Draw("");
    hisSectorScanSigma[ihis]->Draw("same");
    legendSector->AddEntry(hisSectorScanSigma[ihis],Form("#Delta %d",(ihis*2+1)));
  }
  legendSector->Draw();
  canvasFlucSectorScanFit->SaveAs("canvasFlucSectorScanFit.pdf");
  canvasFlucSectorScanFit->SaveAs("canvasFlucSectorScanFit.png");
}



void DrawFluctuationdeltaZ(Int_t stat, Double_t norm){
  //
  // Draw correction - correction  shifted z  
  // The same set of events used
  //Int_t stat=0; Double_t norm=10000;
  Int_t deltaZ=16.;
  TFile *f0= TFile::Open(Form("SpaceChargeFluc%d.root",stat));
  TTree * tree0 = 0;
  if (f0) tree0 = (TTree*)f0->Get("hisDump");
  if (!tree0){
    tree0 = AliXRDPROOFtoolkit::MakeChainRandom("space.list","hisDump",0,10);
  }
  tree0->SetCacheSize(1000000000);
  tree0->SetMarkerStyle(25);
  TObjArray * fitArray=new TObjArray(3);  
  tree0->SetAlias("scNorm",Form("%f/neventsCorr",norm));
  //
  // DeltaZ Scan
  //
  TH2 * hisDeltaZScan[6]={0};
  TH1 * hisDeltaZScanSigma[6]={0};
  for (Int_t ihis=0; ihis<6; ihis++){
    tree0->Draw(Form("(DistRefDR-DistZ_%dDR)*scNorm:r>>hisZ%d(50,84,245,100,-1,1)",(ihis+1)*deltaZ,(ihis+1)*deltaZ),"abs(z/r)<1","colzgoff");
    hisDeltaZScan[ihis]=(TH2*)tree0->GetHistogram();
    hisDeltaZScan[ihis]->FitSlicesY(0,0,-1,0,"QNR",fitArray);
    hisDeltaZScanSigma[ihis]=(TH1*)(fitArray->At(2)->Clone());
    hisDeltaZScanSigma[ihis]->SetMinimum(0);
    hisDeltaZScanSigma[ihis]->SetMaximum(0.2);
  }
  gStyle->SetOptStat(0);
  gStyle->SetOptTitle(1);
  TCanvas * canvasFlucDeltaZScan=new TCanvas("canvasFlucDeltaZScan","canvasFlucDeltaZScan",700,700);
  canvasFlucDeltaZScan->Divide(3,2,0,0);  
  gStyle->SetPadBorderMode(0);
  for (Int_t ihis=0; ihis<6; ihis++){
    canvasFlucDeltaZScan->cd(ihis+1)->SetLogz(1);
    hisDeltaZScan[ihis]->GetXaxis()->SetTitle("r (cm)");
    hisDeltaZScan[ihis]->GetYaxis()->SetTitle("#Delta_{R} (cm)");
    hisDeltaZScan[ihis]->Draw("colz");
    TLegend * legendSec=new TLegend(0.5,0.7,0.89,0.89);
    legendSec->AddEntry(hisDeltaZScan[ihis],Form("DeltaZ #Delta %d",(ihis+1)*deltaZ)); 
    legendSec->Draw();
  }
  canvasFlucDeltaZScan->SaveAs(Form("canvasFlucDeltaZScan%d.pdf",stat));
  canvasFlucDeltaZScan->SaveAs(Form("canvasFlucDeltaZScan%d.png",stat));

  //
  gStyle->SetOptTitle(0);
  TCanvas * canvasFlucDeltaZScanFit=new TCanvas("canvasFlucDeltaZScanFit","canvasFlucDeltaZScanFit");
  TLegend * legendDeltaZ = new TLegend(0.50,0.55,0.89,0.89,"Space charge: corr(z_{ref})-corr(z_{ref}-#Delta_{z})");
  for (Int_t ihis=0; ihis<5; ihis++){
    hisDeltaZScanSigma[ihis]->GetXaxis()->SetTitle("r (cm)");
    hisDeltaZScanSigma[ihis]->GetYaxis()->SetTitle("#sigma(#Delta_{R}) (cm)");
    hisDeltaZScanSigma[ihis]->SetMarkerStyle(21+ihis%5);
    hisDeltaZScanSigma[ihis]->SetMarkerColor(1+ihis%4);
    if (ihis==0) hisDeltaZScanSigma[ihis]->Draw("");
    hisDeltaZScanSigma[ihis]->Draw("same");
    legendDeltaZ->AddEntry(hisDeltaZScanSigma[ihis],Form("#Delta %d (cm)",(ihis+1)*deltaZ));
  }
  legendDeltaZ->Draw();
  canvasFlucDeltaZScanFit->SaveAs(Form("canvasFlucDeltaZScanFit%d.pdf",stat));
  canvasFlucDeltaZScanFit->SaveAs(Form("canvasFlucDeltaZScanFit%d.png",stat));

}


void DrawDefault(Int_t stat){
  //
  // Draw correction - correction  shifted z  
  // The same set of events used
  //  Int_t stat=0
  TFile *f0= TFile::Open(Form("SpaceChargeFluc%d.root",stat));
  TTree * tree0 = (TTree*)f0->Get("hisDump");
  tree0->SetCacheSize(1000000000);
  tree0->SetMarkerStyle(25);
  tree0->SetMarkerSize(0.4);
  //  TObjArray * fitArray=new TObjArray(3);
  tree0->Draw("10000*DistRefDR/neventsCorr:r:z/r","abs(z/r)<0.9&&z>0&&rndm>0.8","colz");
}




void DrawTrackFluctuation(){
  //
  // Function to make a fluctuation figures for differnt multiplicities of pileup space charge
  // it is assumed that the text files  
  //
  //
  TObjArray arrayFit(3);
  const char *inputList;
  TH2F * hisCorrRef[5]={0};
  TH2F * hisCorrNo[5]={0};
  TH1  * hisCorrRefM[5], *hisCorrRefRMS[5];
  TH1  * hisCorrNoM[5], *hisCorrNoRMS[5];
  //
  // 1. Load chains for different statistic
  //  
  TCut cutOut="abs(T_DistRef_0.fX-OT_DistRef_0.fX)<0.1&&T_DistRef_0.fX>1&&abs(OT_DistRef_0.fP[4])<4";
  TCut cutOutF="abs(R.T_DistRef_0.fX-R.OT_DistRef_0.fX)<0.1&&R.T_DistRef_0.fX>1&&abs(R.OT_DistRef_0.fP[4])<4";
  TChain * chains[5]={0};
  TChain * chainR = AliXRDPROOFtoolkit::MakeChain("track0_1.list","trackFit",0,1000);  // list of the reference data (full stat used)
  chainR->SetCacheSize(1000000000);
  for (Int_t ichain=0; ichain<5; ichain++){ // create the chain for given mulitplicity bin 
    chains[ichain] = AliXRDPROOFtoolkit::MakeChain(Form("track%d_1.list",2*(ichain+1)),"trackFit",0,1000);
    chains[ichain]->AddFriend(chainR,"R");
    chains[ichain]->SetCacheSize(1000000000);
    chains[ichain]->SetMarkerStyle(25);
    chains[ichain]->SetMarkerSize(0.5);
    chains[ichain]->SetAlias("meanNorm","(1+0.2*abs(neventsCorr/10000-1))"); // second order correction - renomalization of mean hardwired  
    // to be fitted?
  }
  //
  // 2. fill histograms if not available in file
  //    
  // 
  TFile *ftrackFluctuation = TFile::Open("trackFluctuation.root","update");
  for (Int_t ihis=0; ihis<5; ihis++){
    ftrackFluctuation->cd();
    hisCorrRef[ihis] = (TH2F*)(ftrackFluctuation->Get(Form("DeltaRPhiCorr%d",(ihis+1)*2000)));
    hisCorrNo[ihis]  = (TH2F*)(ftrackFluctuation->Get(Form("DeltaRPhi%d",(ihis+1)*2000)));
    if (hisCorrRef[ihis]==0) {
      chains[ihis]->Draw("(T_DistRef_0.fP[0]/meanNorm-neventsCorr*R.T_DistRef_0.fP[0]/10000):R.OT_DistRef_0.fP[4]>>his(10,-4,4,100,-0.25,0.25)",cutOut+cutOutF+"","colzgoff");
      hisCorrRef[ihis]=(TH2F*)(chains[ihis]->GetHistogram()->Clone());  
      hisCorrRef[ihis]->SetName(Form("DeltaRPhiCorr%d",(ihis+1)*2000));
      hisCorrRef[ihis]->SetTitle(Form("Corrected #Delta r#phi -  Pileup %d",(ihis+1)*2000));
      hisCorrRef[ihis]->GetXaxis()->SetTitle("1/p_{t} (1/GeV/c)");
      hisCorrRef[ihis]->GetYaxis()->SetTitle("#Delta_{r#phi} (cm)");
      hisCorrRef[ihis]->Write();
      //
      chains[ihis]->Draw("(T_DistRef_0.fP[0]/meanNorm):R.OT_DistRef_0.fP[4]>>hisCorNo(10,-3,3,100,-4,4)",cutOut+cutOutF+"","colzgoff");
      hisCorrNo[ihis]=(TH2F*)(chains[ihis]->GetHistogram()->Clone());  
      hisCorrNo[ihis]->SetName(Form("DeltaRPhi%d",(ihis+1)*2000));
      hisCorrNo[ihis]->SetTitle(Form("Delta r#phi  = Pileup %d",(ihis+1)*2000));
      hisCorrNo[ihis]->GetXaxis()->SetTitle("1/p_{t} (1/GeV/c)");
      hisCorrNo[ihis]->GetYaxis()->SetTitle("#Delta_{r#phi} (cm)");
      hisCorrNo[ihis]->Write();    
    }
  }
  ftrackFluctuation->Flush();
  //
  //
  //
  for (Int_t ihis=0; ihis<5; ihis++){
    hisCorrRef[ihis]->FitSlicesY(0,0,-1,0,"QNR",&arrayFit);
    hisCorrRefM[ihis] = (TH1*)arrayFit.At(1)->Clone();
    hisCorrRefRMS[ihis] = (TH1*)arrayFit.At(2)->Clone();
    hisCorrRefM[ihis]->GetXaxis()->SetTitle("1/p_{t} (1/GeV/c)");
    hisCorrRefM[ihis]->GetYaxis()->SetTitle("#Delta_{r#phi} (cm)");
    hisCorrRefM[ihis]->SetMarkerStyle(20);
    hisCorrRefRMS[ihis]->SetMarkerStyle(21);
    hisCorrRefM[ihis]->SetMarkerColor(1);
    hisCorrRefRMS[ihis]->SetMarkerColor(2);
    hisCorrNo[ihis]->FitSlicesY(0,0,-1,0,"QNR",&arrayFit);
    hisCorrNoM[ihis] = (TH1*)arrayFit.At(1)->Clone();
    hisCorrNoRMS[ihis] = (TH1*)arrayFit.At(2)->Clone();
  }

  //
  TCanvas *canvasMean = new TCanvas("canvasCorrectionMean","canvasCorrectionMean",900,1000);
  TCanvas *canvasMeanSummary = new TCanvas("canvasCorrectionMeanSummary","canvasCorrectionMeanSummary",700,600);

  canvasMean->Divide(3,5);
  gStyle->SetOptStat(0);
  for (Int_t ihis=0; ihis<5; ihis++){
    TLegend * legend = new TLegend(0.11,0.11,0.5,0.3,Form("Pile up %d",(ihis+1)*2000));
    canvasMean->cd(3*ihis+1);
    hisCorrNo[ihis]->Draw("colz"); 
    canvasMean->cd(3*ihis+2);
    hisCorrRef[ihis]->Draw("colz");    
    canvasMean->cd(3*ihis+3); 
    hisCorrRefM[ihis]->SetMaximum(0.25);
    hisCorrRefM[ihis]->SetMinimum(-0.25);
    hisCorrRefM[ihis]->Draw("");
    hisCorrRefRMS[ihis]->Draw("same");
    legend->AddEntry(hisCorrRefM[ihis],"Mean");
    legend->AddEntry(hisCorrRefRMS[ihis],"RMS");
    legend->Draw();
  }
  canvasMeanSummary->cd();
  TLegend * legendMeanSummary = new TLegend(0.5,0.6,0.89,0.89,"Space charge correction fluctuation in r#phi"); 
  for (Int_t ihis=4; ihis>=0; ihis--){    
    hisCorrRefRMS[ihis]->SetMarkerColor(1+ihis);
    hisCorrRefRMS[ihis]->SetMinimum(0);
    hisCorrRefRMS[ihis]->GetYaxis()->SetTitle("#sigma_{r#phi} (cm)");
    if (ihis==4) hisCorrRefRMS[ihis]->Draw("");
    hisCorrRefRMS[ihis]->Draw("same");
    legendMeanSummary->AddEntry(hisCorrRefRMS[ihis],Form("%d pile-up events",(ihis+1)*2000));
  }
  legendMeanSummary->Draw();

  canvasMean->SaveAs("canvasCorrectionMean.pdf"); 
  canvasMeanSummary->SaveAs("canvasCorrectionMeanSummary.pdf");
  //canvasMean->Write();
  //canvasMeanSummary->Write();
  ftrackFluctuation->Close();
}

void DrawTrackFluctuationZ(){
  //
  // Draw track fucutation dz
  //   
  const Int_t kColors[6]={1,2,3,4,6,7};
  const Int_t kStyle[6]={20,21,24,25,24,25};
  TObjArray arrayFit(3);
  TCut cutOut="abs(T_DistRef_0.fX-OT_DistRef_0.fX)<0.1&&T_DistRef_0.fX>1&&abs(OT_DistRef_0.fP[4])<4";
  TCut cutOutF="abs(R.T_DistRef_0.fX-R.OT_DistRef_0.fX)<0.1&&R.T_DistRef_0.fX>1&&abs(R.OT_DistRef_0.fP[4])<4";
  TChain * chains[5]={0};
  TChain * chainR = AliXRDPROOFtoolkit::MakeChain("track0_1.list","trackFit",0,1000);
  chainR->SetCacheSize(1000000000);
  for (Int_t ichain=0; ichain<5; ichain++){
    chains[ichain] = AliXRDPROOFtoolkit::MakeChain(Form("track%d_1.list",2*(ichain+1)),"trackFit",0,1000);
    chains[ichain]->AddFriend(chainR,"R");
    chains[ichain]->SetCacheSize(1000000000);
    chains[ichain]->SetMarkerStyle(25);
    chains[ichain]->SetMarkerSize(0.5);
  }
  //
  // 2.) Create 2D histo or read from files
  //
  TObjArray * arrayHisto = new TObjArray(25);
  TFile *ftrackFluctuationZ = TFile::Open("trackFluctuationZ.root","update");
  for (Int_t ihis=0; ihis<5; ihis++){
    ftrackFluctuationZ->cd();
    for (Int_t idz=0; idz<5; idz++){
      Int_t z= 16+idz*32;
      TH2 *his= (TH2*)ftrackFluctuationZ->Get(Form("TrackDz%d_PileUp%d",z, (ihis+1)*2000));
      if (!his){
	chains[ihis]->Draw(Form("T_DistZ_%d_0.fP[0]-T_DistRef_0.fP[0]:T_DistRef_0.fP[4]>>his(10,-4,4,100,-0.25,0.25)",z),cutOut+"","colz");
	his = (TH2*)(chains[ihis]->GetHistogram()->Clone());
	his->SetName(Form("TrackDz%d_PileUp%d",z, (ihis+1)*2000));
	his->Write();
      }
      arrayHisto->AddAtAndExpand(his,ihis*5+idz);
    }
  }
  ftrackFluctuationZ->Flush();

  //
  // 3.) Make fits 
  //
  TCanvas *canvasDz = new TCanvas("canvasDz","canvasDz",800,800);
  canvasDz->Divide(2,2,0,0);
  for (Int_t ihis=3; ihis>=0; ihis--){
    canvasDz->cd(ihis+1)->SetTicks(3);
    TLegend * legend  = new TLegend(0.31,0.51, 0.95,0.95,Form("Distortion due time/z delay (Pileup=%d)", (ihis+1)*2000)); 
    legend->SetBorderSize(0);
    for (Int_t idz=3; idz>=0; idz--){
      TH2 * his =  (TH2*)arrayHisto->At(ihis*5+idz);
      his->FitSlicesY(0,0,-1,0,"QNR",&arrayFit);
      TH1 * hisRMS = (TH1*)arrayFit.At(2)->Clone();
      hisRMS->SetMaximum(0.12);
      hisRMS->SetMinimum(0);
      hisRMS->GetXaxis()->SetTitle("1/p_{t} (GeV/c)");
      hisRMS->GetYaxis()->SetTitle("#sigma_{r#phi}(cm)");
      hisRMS->SetMarkerStyle(kStyle[idz]);
      hisRMS->SetMarkerColor(kColors[idz]);
      if (idz==3)     hisRMS->Draw();
      legend->AddEntry(hisRMS,Form("#Delta_{z}=%d (cm)",16+idz*32));
      hisRMS->Draw("same");
    }
    legend->Draw();
  }
  canvasDz->SaveAs("spaceChargeDeltaZScan.pdf");

}





void DrawTrackFluctuationFrame(){
  //
  // Function to make a fluctuation figures for differnt multiplicities of pileup space charge
  // it is assumed that the text files  
  //
  //
  TObjArray arrayFit(3);
  const char *inputList;
  TH2F * hisCorrRef[10]={0};
  TH2F * hisCorrNo[10]={0};
  TH1  * hisCorrRefM[10], *hisCorrRefRMS[10];
  TH1  * hisCorrNoM[10], *hisCorrNoRMS[10];
  //
  // 1. Load chains for different statistic
  //  
  TCut cutOut="abs(T_DistRef_0.fX-OT_DistRef_0.fX)<0.1&&T_DistRef_0.fX>1&&abs(OT_DistRef_0.fP[4])<4";
  TCut cutOutF="abs(R.T_DistRef_0.fX-R.OT_DistRef_0.fX)<0.1&&R.T_DistRef_0.fX>1&&abs(R.OT_DistRef_0.fP[4])<4";
  TCut cutFit="Entry$%4==0";  //use only subset of data for fit 

  TChain * chains[10]={0};
  TChain * chainR = AliXRDPROOFtoolkit::MakeChain("track0_1.list","trackFit",0,1000);
  chainR->SetCacheSize(1000000000);
  for (Int_t ichain=0; ichain<7; ichain++){
    chains[ichain] = AliXRDPROOFtoolkit::MakeChain(Form("track%d_1.list",2*(ichain+1)),"trackFit",0,1000);
    chains[ichain]->AddFriend(chainR,"R");
    chains[ichain]->SetCacheSize(1000000000);
    chains[ichain]->SetMarkerStyle(25);
    chains[ichain]->SetMarkerSize(0.5);
    chains[ichain]->SetAlias("meanNorm","(1+0.2*abs(neventsCorr/10000-1))"); // second order correction - renomalization of mean hardwired  
    chains[ichain]->SetAlias("dMean0","(neventsCorr*R.T_DistRef_0.fP[0]/10000)");
    chains[ichain]->SetAlias("dMeas0","T_DistRef_0.fP[0]");
    chains[ichain]->SetAlias("dMean1","(neventsCorr*R.T_DistRef_1.fP[0]/10000)");
    chains[ichain]->SetAlias("dMeas1","T_DistRef_1.fP[0]"); 
    for (Int_t ig=0; ig<10;ig++) chains[ichain]->SetAlias(Form("FR%d",ig),Form("(abs(Entry$-%d)<1000)",ig*2000+1000));
  }
  //
  // 2.  Get or Create histogram (do fit per frame)
  //   
  TStatToolkit toolkit;
  Double_t chi2=0;
  Int_t    npoints=0;
  TVectorD param;
  TMatrixD covar;  
  TString  fstringG="";              // global part
  fstringG+="dMean0++";  
  TVectorD vec0,vec1;
  TString  fstringF0="";              // global part
  for (Int_t ig=0; ig<10;ig++) fstringF0+=Form("FR%d++",ig);
  for (Int_t ig=0; ig<10;ig++) fstringF0+=Form("FR%d*dMean0++",ig);
  TString  fstringF1="";              // global part
  for (Int_t ig=0; ig<10;ig++) fstringF1+=Form("FR%d++",ig);
  for (Int_t ig=0; ig<10;ig++) fstringF1+=Form("FR%d*dMean0++",ig);
  for (Int_t ig=0; ig<10;ig++) fstringF1+=Form("FR%d*dMean0*abs(T_DistRef_0.fP[3])++",ig);
  for (Int_t ig=0; ig<10;ig++) fstringF1+=Form("FR%d*dMean0*(T_DistRef_0.fP[3]^2)++",ig);

  //
  //
  TH2F *hisA=0, *hisF0=0, *hisF1=0, *hisM=0;
  TObjArray * arrayHisto = new TObjArray(200);
  TFile *ftrackFit = TFile::Open("trackFluctuationFrame.root","update");
  for (Int_t ihis=0; ihis<7; ihis++){
    printf("\n\nProcessing frames\t%d\nnn",(ihis+1)*2000);
    hisM = (TH2F*)ftrackFit->Get(Form("hisMean_%d",(ihis+1)*2000));
    hisA = (TH2F*)ftrackFit->Get(Form("hisAll_%d",(ihis+1)*2000));
    hisF0 = (TH2F*)ftrackFit->Get(Form("hisFrame0_%d",(ihis+1)*2000));
    hisF1 = (TH2F*)ftrackFit->Get(Form("hisFrame1_%d",(ihis+1)*2000));
    if (!hisA){    
      ftrackFit->cd();
      TString * fitResultAll = TStatToolkit::FitPlane(chains[ihis],"dMeas0", fstringG.Data(),cutOut+cutOutF+cutFit, chi2,npoints,param,covar,-1,0, 40*2000, kFALSE);
      chains[ihis]->SetAlias("fitAll",fitResultAll->Data());  
      TString * fitResultF0 = TStatToolkit::FitPlane(chains[ihis],"dMeas0", fstringF0.Data(),cutOut+cutOutF+cutFit+"abs(dMeas0-fitAll)<0.3", chi2,npoints,vec0,covar,-1,0, 10*2000, kFALSE);
      chains[ihis]->SetAlias("fitF0",fitResultF0->Data());  
      TString * fitResultF1 = TStatToolkit::FitPlane(chains[ihis],"dMeas0", fstringF1.Data(),cutOut+cutOutF+cutFit+"abs(dMeas0-fitAll)<0.3", chi2,npoints,vec1,covar,-1,0, 10*2000, kFALSE);
      chains[ihis]->SetAlias("fitF1",fitResultF1->Data());  
      fitResultF0->Tokenize("++")->Print();
      chains[ihis]->Draw(Form("dMeas0-fitAll:T_DistRef_0.fP[4]>>hisAll_%d(20,-4,4,100,-0.25,0.25)",(ihis+1)*2000),cutOut+cutOutF,"colz",100000,0);   
      hisA = (TH2F*)chains[ihis]->GetHistogram();
      chains[ihis]->Draw(Form("dMeas0-fitF0:T_DistRef_0.fP[4]>>hisFrame0_%d(20,-4,4,100,-0.10,0.10)",(ihis+1)*2000),cutOut+cutOutF,"colz",20000,0);
      hisF0 = (TH2F*)chains[ihis]->GetHistogram();
      chains[ihis]->Draw(Form("dMeas0-fitF1:T_DistRef_0.fP[4]>>hisFrame1_%d(20,-4,4,100,-0.10,0.10)",(ihis+1)*2000),cutOut+cutOutF,"colz",20000,0);
      hisF1 = (TH2F*)chains[ihis]->GetHistogram();
      chains[ihis]->Draw(Form("dMeas0-dMean0:T_DistRef_0.fP[4]>>hisMean_%d(20,-4,4,100,-0.25,0.25)",(ihis+1)*2000),cutOut+cutOutF,"colz",100000,0);
      hisM = (TH2F*)chains[ihis]->GetHistogram();
      hisM->Write(); hisA->Write();hisF0->Write(); hisF1->Write();
      ftrackFit->Flush();
    }
  }
 
  for (Int_t ihis=0; ihis<7; ihis++){
    printf("\n\nProcessing frames\t%d\nnn",(ihis+1)*2000);
    hisM = (TH2F*)ftrackFit->Get(Form("hisMean_%d",(ihis+1)*2000));
    hisA = (TH2F*)ftrackFit->Get(Form("hisAll_%d",(ihis+1)*2000));
    hisF0 = (TH2F*)ftrackFit->Get(Form("hisFrame0_%d",(ihis+1)*2000));
    hisF1 = (TH2F*)ftrackFit->Get(Form("hisFrame1_%d",(ihis+1)*2000));
    arrayHisto->AddLast(hisA);
    arrayHisto->AddLast(hisF0);
    arrayHisto->AddLast(hisF1);
    arrayHisto->AddLast(hisM);
  }
  delete ftrackFit;
  //
  // 3. Draw figures
  //
  gStyle->SetOptStat(0);
  TCanvas *canvasFit   = new TCanvas("canvasFitFrame","canvasFitframe",900,700);
  canvasFit->Divide(3,2,0,0);
  for (Int_t ihis=1; ihis<7; ihis++){
    //
    canvasFit->cd(ihis);
    char hname[10000];
    snprintf(hname,1000,"hisAll_%d",(ihis+1)*2000);
    hisA = (TH2F*)arrayHisto->FindObject(hname);
    snprintf(hname,1000,"hisFrame0_%d",(ihis+1)*2000);
    hisF0 = (TH2F*)arrayHisto->FindObject(hname);
    snprintf(hname,1000,"hisFrame1_%d",(ihis+1)*2000);
    hisF1 = (TH2F*)arrayHisto->FindObject(hname);
    snprintf(hname,1000,"hisMean_%d",(ihis+1)*2000);
    hisM = (TH2F*)arrayHisto->FindObject(hname);
    //
    //
    hisM->FitSlicesY(0,0,-1,0,"QNR",&arrayFit);
    TH1 * hisRA= (TH1*)arrayFit.At(2)->Clone();
    hisF0->FitSlicesY(0,0,-1,0,"QNR",&arrayFit);
    TH1 * hisRF0= (TH1*)arrayFit.At(2)->Clone();    
    hisF1->FitSlicesY(0,0,-1,0,"QNR",&arrayFit);
    TH1 * hisRF1= (TH1*)arrayFit.At(2)->Clone();    
    //
    hisRA->SetMarkerStyle(20);
    hisRF0->SetMarkerStyle(21);
    hisRF1->SetMarkerStyle(21);
    hisRA->SetMarkerColor(1);
    hisRF0->SetMarkerColor(4);
    hisRF1->SetMarkerColor(2);
    TF1 * f1a= new TF1("f1a","pol1");
    TF1 * f1f0= new TF1("f1a0","pol1");
    TF1 * f1f1= new TF1("f1a1","pol1");
    f1a->SetLineColor(1);
    f1f0->SetLineColor(4);
    f1f1->SetLineColor(2);
    hisRA->Fit(f1a);
    hisRF0->Fit(f1f0);
    hisRF1->Fit(f1f1);
    hisRF1->SetMinimum(0);
    hisRF1->SetMaximum(0.05);
    // hisRA->Draw();
    hisRF1->GetXaxis()->SetTitle("q/p_{T} (1/GeV)");
    hisRF1->GetYaxis()->SetTitle("#sigma_{r#phi} (cm)");
    hisRF1->Draw("");   
    hisRF0->Draw("same");   
    TLegend * legend = new TLegend(0.11,0.11,0.65,0.25, Form("Track residual r#phi distortion: N_{ion}=%d",(ihis+1)*2000));
    legend->AddEntry(hisRF0,"a_{0}+a_{1}#rho");
    legend->AddEntry(hisRF1,"a_{0}+(a_{1}+a_{2}z+a_{3}z^2)#rho");
    legend->SetBorderSize(0);
    legend->Draw();
  }
  //
  canvasFit->SaveAs("canvasFrameFitRPhiVersion0.pdf");
  canvasFit->SaveAs("canvasFrameFitRPhiVersion0.png");
  //
}



void MakeLocalDistortionPlotsGlobalFitPolDrift(Float_t xmin, Float_t xmax){
  //
  // Make local distortion plots correcting using global z fits of order 0,2,4,6,8,10,12
  // Currently polynomial correction as an multiplicative factor of the mean distortion map used
  // To be done - calculate numerical derivative of distortion maps 
  //              corresponding  the local change of densities - after TDR?  
  //
  // As input:
  //    1.) distortion file with the setup 10000 pileup events used
  //    2.) mean distortion file
  // distortions are fitted rescaling (z dependent) mean distortion file
  //
  TTreeSRedirector *pcstream = new TTreeSRedirector("localFit.root","update");
  TFile *fRef = TFile::Open("SpaceChargeFluc0_1.root");
  TFile *fCurrent = TFile::Open("SpaceChargeFluc10_1.root");
  TTree * treeRef = (TTree*)fRef->Get("hisDump");  
  TTree * treeCurrent = (TTree*)fCurrent->Get("hisDump");  
  treeCurrent->AddFriend(treeRef,"R");
  treeCurrent->SetAlias("refR","(neventsCorr*R.DistRefDR/10000)");
  treeCurrent->SetAlias("refRPhi","(neventsCorr*R.DistRefDRPhi/10000)");
  treeCurrent->SetCacheSize(1000000000);
  treeCurrent->SetAlias("drift","1.-abs(z/250.)");
  TStatToolkit toolkit;
  Double_t chi2=0;
  Int_t    npoints=0;
  TVectorD param;
  TMatrixD covar;  
  //
  TCut cut="z>0";
  TString  fstringG0="refR++";              // global part - for z dependence we should use the Chebischev
  TString  fstringG1="refR++";              // global part - for z dependence we should use the Chebischev
  TString  fstringG2="refR++";              // global part - for z dependence we should use the Chebischev
  TString  fstringG3="refR++";              // global part - for z dependence we should use the Chebischev
  TString  fstringG4="refR++";              // global part - for z dependence we should use the Chebischev
  TString  fstringG5="refR++";              // global part - for z dependence we should use the Chebischev
  TString  fstringG6="refR++";              // global part - for z dependence we should use the Chebischev
  TString  fstringG7="refR++";              // global part - for z dependence we should use the Chebischev
  TString  fstringG8="refR++";              // global part - for z dependence we should use the Chebischev
  //
  for (Int_t i=1; i<=1; i++) fstringG1+=TString::Format("refR*pow(drift,%d)++",i);
  for (Int_t i=1; i<=2; i++) fstringG2+=TString::Format("refR*pow(drift,%d)++",i);
  for (Int_t i=1; i<=3; i++) fstringG3+=TString::Format("refR*pow(drift,%d)++",i);
  for (Int_t i=1; i<=4; i++) fstringG4+=TString::Format("refR*pow(drift,%d)++",i);
  for (Int_t i=1; i<=5; i++) fstringG5+=TString::Format("refR*pow(drift,%d)++",i);
  for (Int_t i=1; i<=6; i++) fstringG6+=TString::Format("refR*pow(drift,%d)++",i);
  for (Int_t i=1; i<=7; i++) fstringG7+=TString::Format("refR*pow(drift,%d)++",i);
  for (Int_t i=1; i<=8; i++) fstringG8+=TString::Format("refR*pow(drift,%d)++",i);


  TString * fitResultG0 = TStatToolkit::FitPlane(treeCurrent,"DistRefDR-refR", fstringG0.Data(),cut+"Entry$%7==0", chi2,npoints,param,covar,-1,0,180000 , kFALSE);
  TString * fitResultG1 = TStatToolkit::FitPlane(treeCurrent,"DistRefDR-refR", fstringG1.Data(),cut+"Entry$%7==0", chi2,npoints,param,covar,-1,0,180000 , kFALSE);
  TString * fitResultG2 = TStatToolkit::FitPlane(treeCurrent,"DistRefDR-refR", fstringG2.Data(),cut+"Entry$%7==0", chi2,npoints,param,covar,-1,0,180000 , kFALSE);
  TString * fitResultG3 = TStatToolkit::FitPlane(treeCurrent,"DistRefDR-refR", fstringG3.Data(),cut+"Entry$%7==0", chi2,npoints,param,covar,-1,0,180000 , kFALSE);
  TString * fitResultG4 = TStatToolkit::FitPlane(treeCurrent,"DistRefDR-refR", fstringG4.Data(),cut+"Entry$%7==0", chi2,npoints,param,covar,-1,0,180000 , kFALSE);
  TString * fitResultG5 = TStatToolkit::FitPlane(treeCurrent,"DistRefDR-refR", fstringG5.Data(),cut+"Entry$%7==0", chi2,npoints,param,covar,-1,0,180000 , kFALSE);
  TString * fitResultG6 = TStatToolkit::FitPlane(treeCurrent,"DistRefDR-refR", fstringG6.Data(),cut+"Entry$%7==0", chi2,npoints,param,covar,-1,0,180000 , kFALSE);
  TString * fitResultG7 = TStatToolkit::FitPlane(treeCurrent,"DistRefDR-refR", fstringG7.Data(),cut+"Entry$%7==0", chi2,npoints,param,covar,-1,0,180000 , kFALSE);
  TString * fitResultG8 = TStatToolkit::FitPlane(treeCurrent,"DistRefDR-refR", fstringG8.Data(),cut+"Entry$%7==0", chi2,npoints,param,covar,-1,0,180000 , kFALSE);
  //
  treeCurrent->SetAlias("fitG0",fitResultG0->Data());  
  treeCurrent->SetAlias("fitG1",fitResultG1->Data());  
  treeCurrent->SetAlias("fitG2",fitResultG2->Data());  
  treeCurrent->SetAlias("fitG3",fitResultG3->Data());  
  treeCurrent->SetAlias("fitG4",fitResultG4->Data());  
  treeCurrent->SetAlias("fitG5",fitResultG5->Data());  
  treeCurrent->SetAlias("fitG6",fitResultG6->Data());  
  treeCurrent->SetAlias("fitG7",fitResultG7->Data());  
  treeCurrent->SetAlias("fitG8",fitResultG8->Data());  
  treeCurrent->SetMarkerStyle(25);
  treeCurrent->SetMarkerSize(0.2);
  //
  gStyle->SetOptFit(1);
  gStyle->SetOptStat(0);
  gStyle->SetOptTitle(1);

  TCut cutDrawGraph="z>0&&abs(z-30)<5&&abs(r-90)<10";
  TCut cutDrawHisto="z>0&&abs(z)<125&&abs(r-90)<10";
  TH1F *hisFull=new TH1F("hisFull","hisFull",100,xmin,xmax);
  TH1F *hisG0=new TH1F("hisG0","hisG0",100,xmin,xmax);
  TH1F *hisG1=new TH1F("hisG1","hisG1",100,xmin,xmax);
  TH1F *hisG2=new TH1F("hisG2","hisG2",100,xmin,xmax);
  TH1F *hisG3=new TH1F("hisG3","hisG3",100,xmin,xmax);
  TH1F *hisG4=new TH1F("hisG4","hisG4",100,xmin,xmax);
  TH1F *hisG5=new TH1F("hisG5","hisG5",100,xmin,xmax);
  TH1F *hisG6=new TH1F("hisG6","hisG6",100,xmin,xmax);
  TH1F *hisG7=new TH1F("hisG7","hisG7",100,xmin,xmax);
  TH1F *hisG8=new TH1F("hisG8","hisG8",100,xmin,xmax);
  TH1F * hisResG[10]={hisFull, hisG0, hisG1,hisG2, hisG3,hisG4, hisG5,hisG6, hisG7,hisG8};
  treeCurrent->Draw("DistRefDR-refR>>hisFull",cutDrawHisto,"");
  for (Int_t ihis=0; ihis<9; ihis++){
    treeCurrent->Draw(TString::Format("DistRefDR-refR-fitG%d>>hisG%d",ihis,ihis),cutDrawHisto,"");        
  }
  //
  TF1 *fg = new TF1("fg","gaus");
  TVectorD vecP(10), vecRes(10), vecResE(10);
  for (Int_t ihis=0; ihis<10; ihis++){
    hisResG[ihis]->Fit(fg);
    vecP[ihis]=ihis-1;
    vecRes[ihis]=fg->GetParameter(2);
    vecResE[ihis]=fg->GetParError(2);
    hisResG[ihis]->GetXaxis()->SetTitle("#Delta_{R} (cm)");
    pcstream->GetFile()->cd();
    hisResG[ihis]->Write();
    (*pcstream)<<"residuals"<<
      TString::Format("diffHis%d.=",ihis)<<hisResG[ihis];
  }
  TGraphErrors *gr = new TGraphErrors(10,vecP.GetMatrixArray(), vecRes.GetMatrixArray(),0, vecResE.GetMatrixArray());
  gr->SetMarkerStyle(25);
  gr->Draw("alp");
  (*pcstream)<<"residuals"<<
    "graph.="<<gr<<
    "\n";

  TCanvas *canvasRes = new TCanvas("canvasRes","canvasRes",900,900);
  canvasRes->Divide(2,4);
  TH2* htemp=0;
  for (Int_t  ihis=0; ihis<4; ihis++){
    canvasRes->cd(ihis*2+1);
    if (ihis==0) {
      treeCurrent->Draw("DistRefDR-refR:phi:r",cutDrawGraph,"colz");      
    }
    if (ihis>0) {
      treeCurrent->Draw(TString::Format("DistRefDR-refR-fitG%d:phi:r",(ihis-1)*2),cutDrawGraph,"colz"); 
    }
    htemp = (TH2F*)gPad->GetPrimitive("htemp");
    htemp->GetXaxis()->SetTitle("#phi");
    htemp->GetYaxis()->SetTitle("#Delta_{R} (cm)");
    htemp->GetZaxis()->SetTitle("r (cm)");
    //    htemp->SetTitle("1/pT difference");
    //htemp->GetYaxis()->SetRangeUser(xmin,xmax);
    canvasRes->cd(ihis*2+2);
    if (ihis>0) hisResG[(ihis-1)*2+1]->Draw();
    if (ihis==0)  hisResG[0]->Draw();
  }
  delete pcstream;

  canvasRes->SaveAs("locaFluctuationR.pdf");
  canvasRes->SaveAs("locaFluctuationR.png");
}

void MakeLocalDistortionPlotsGlobalFitPolDriftSummary(Float_t xmin, Float_t xmax){
  //
  // Make local distortion plots correcting using global z fits of order 0,2,4,6,8,10,12
  // Currently polynomial correction as an multiplicative factor of the mean distortion map used
  // To be done - calculate numerical derivative of distortion maps 
  //              corresponding  the local change of densities - after TDR?  
  //
  // As input:
  //    1.) distortion file with the setup 10000 pileup events used
  //    2.) mean distortion file
  // distortions are fitted rescaling (z dependent) mean distortion file
  //
  gStyle->SetOptStat(0);
  gStyle->SetOptFit(1);
  gStyle->SetOptTitle(1);
  TTreeSRedirector *pcstream = new TTreeSRedirector("localFit.root","update");
  TH1 *hisResG[10] = {0};
  hisResG[0]=(TH1*)(pcstream->GetFile()->Get("hisFull"));
  TF1 *fg = new TF1("fg","gaus");
  TVectorD vecP(10), vecRes(10), vecResE(10);
  for (Int_t ihis=0; ihis<10; ihis++){
    hisResG[ihis+1]=(TH1*)(pcstream->GetFile()->Get(TString::Format("hisG%d",ihis)));
    hisResG[ihis]->Fit(fg);
    vecP[ihis]=ihis-1;
    vecRes[ihis]=fg->GetParameter(2);
    vecResE[ihis]=fg->GetParError(2);
  }
  //
  TCanvas *canvasRes = new TCanvas("canvasRes","canvasRes",800,800);
  canvasRes->Divide(2,3,0,0);
  for (Int_t ihis=0; ihis<6; ihis++){
    canvasRes->cd(ihis+1);
    hisResG[ihis]->GetXaxis()->SetTitle("#Delta_{R} (cm)");
    hisResG[ihis]->Draw();
  }
  canvasRes->SaveAs("fluctuationTableSummaryHist.pdf");
  canvasRes->SaveAs("fluctuationTableSummaryHist.png");

  TCanvas *canvasFluctuationGraph = new TCanvas("canvasGraph","canvasGraph",600,500);
  TGraphErrors *gr = new TGraphErrors(10,vecP.GetMatrixArray(), vecRes.GetMatrixArray(),0, vecResE.GetMatrixArray());
  gr->SetMarkerStyle(25);
  gr->SetMinimum(0);
  gr->GetXaxis()->SetTitle("#Fit parameters");
  gr->GetYaxis()->SetTitle("#sigma_{R} (cm)");
  gr->Draw("alp");
  //  
  canvasFluctuationGraph->SaveAs("canvasFluctuationGraphR.pdf");
  canvasFluctuationGraph->SaveAs("canvasFluctuationGraphR.png");

}



void MakeLocalDistortionPlots(Int_t npoints, Int_t npointsZ){
  //
  // Macro to make trees with local distortions 
  // Results are later visualized in the function DrawLocalDistortionPlots()
  //
  TTreeSRedirector *pcstream = new TTreeSRedirector("localBins.root","update");
  TFile *fCurrent = TFile::Open("SpaceChargeFluc10_1.root");
  TFile *fRef = TFile::Open("SpaceChargeFluc0_1.root");
  //
  AliTPCSpaceCharge3D* distortion = ( AliTPCSpaceCharge3D*)fCurrent->Get("DistRef"); 
  AliTPCSpaceCharge3D* distortionRef = ( AliTPCSpaceCharge3D*)fRef->Get("DistRef"); 
  distortion->AddVisualCorrection(distortion,1);
  distortionRef->AddVisualCorrection(distortionRef,2);
  //
  //
  //
  TVectorD normZR(125), normZRPhi(125), normZZ(125), normZPos(125);
  TVectorD normZRChi2(125), normZRPhiChi2(125), normZZChi2(125);
  //
  for (Int_t iz =0; iz<125; iz++){
    Double_t z0 = -250+iz*4;
    TLinearFitter fitterR(2,"pol1");
    TLinearFitter fitterRPhi(2,"pol1");
    TLinearFitter fitterZ(2,"pol1");
    Double_t xvalue[10]={0};
    //fitterR.AddPoint(xvalue,0,0.001/npointsZ);
    //fitterRPhi.AddPoint(xvalue,0,0.000001/npointsZ);
    //fitterZ.AddPoint(xvalue,0,0.001/npointsZ);    
    for (Int_t ipoint =0; ipoint<npointsZ; ipoint++){      
      Double_t r0   = 85+gRandom->Rndm()*(245-85.);
      Double_t phi0 = gRandom->Rndm()*TMath::TwoPi();
      // some problematic parts to be skipped  - investigated later
      if (TMath::Abs(distortion->GetCorrXYZ(r0*TMath::Cos(phi0), r0*TMath::Sin(phi0), z0,0,1))>50) continue;
      if (TMath::Abs(distortion->GetCorrXYZ(r0*TMath::Cos(phi0), r0*TMath::Sin(phi0), z0,0,2))>50) continue;
      if (TMath::Abs(distortion->GetCorrXYZ(r0*TMath::Cos(phi0), r0*TMath::Sin(phi0), z0,1,1))>20) continue;
      if (TMath::Abs(distortion->GetCorrXYZ(r0*TMath::Cos(phi0), r0*TMath::Sin(phi0), z0,1,2))>20) continue;
      if (TMath::Abs(distortion->GetCorrXYZ(r0*TMath::Cos(phi0), r0*TMath::Sin(phi0), z0,2,1))>50) continue;
      if (TMath::Abs(distortion->GetCorrXYZ(r0*TMath::Cos(phi0), r0*TMath::Sin(phi0), z0,2,2))>50) continue;
      //
      //
      xvalue[0]=distortion->GetCorrXYZ(r0*TMath::Cos(phi0), r0*TMath::Sin(phi0), z0,0,2);
      fitterR.AddPoint(xvalue,distortion->GetCorrXYZ(r0*TMath::Cos(phi0), r0*TMath::Sin(phi0), z0,0,1));
      xvalue[0]=distortion->GetCorrXYZ(r0*TMath::Cos(phi0), r0*TMath::Sin(phi0), z0,1,2);
      fitterRPhi.AddPoint(xvalue,distortion->GetCorrXYZ(r0*TMath::Cos(phi0), r0*TMath::Sin(phi0), z0,1,1));
      xvalue[0]=distortion->GetCorrXYZ(r0*TMath::Cos(phi0), r0*TMath::Sin(phi0), z0,2,2);
      fitterZ.AddPoint(xvalue,distortion->GetCorrXYZ(r0*TMath::Cos(phi0), r0*TMath::Sin(phi0), z0,2,1));
    }    
    fitterR.Eval();
    fitterRPhi.Eval();
    fitterZ.Eval();    
    normZR[iz]=fitterR.GetParameter(1);
    normZRPhi[iz]=fitterRPhi.GetParameter(1);
    normZZ[iz]=fitterZ.GetParameter(1);
    normZRChi2[iz]=TMath::Sqrt(fitterR.GetChisquare()/fitterR.GetNpoints());    
    normZRPhiChi2[iz]=TMath::Sqrt(fitterRPhi.GetChisquare()/fitterRPhi.GetNpoints());    
    normZZChi2[iz]=TMath::Sqrt(fitterZ.GetChisquare()/fitterZ.GetNpoints());
    
    normZPos[iz]=z0;    
  }
  
  {    
  (*pcstream)<<"meanNormZ"<<
    "normZPos.="<<&normZPos<<
    //
    "normZR.="<<&normZR<<            // mult. scaling to minimize R distortions
    "normZRPhi.="<<&normZRPhi<<      // mult. scaling 
    "normZZ.="<<&normZZ<<
    //
    "normZRChi2.="<<&normZRChi2<<            // mult. scaling to minimize R distortions
    "normZRPhiChi2.="<<&normZRPhiChi2<<      // mult. scaling 
    "normZZChi2.="<<&normZZChi2<<
    "\n";
  }
  delete pcstream;
  pcstream = new TTreeSRedirector("localBins.root","update");
  //
  TTree * treeNormZ= (TTree*)pcstream->GetFile()->Get("meanNormZ");
  TGraphErrors * grZRfit= TStatToolkit::MakeGraphErrors( treeNormZ, "normZR.fElements:normZPos.fElements","",25,2,0.5);
  TGraphErrors * grZRPhifit= TStatToolkit::MakeGraphErrors( treeNormZ, "normZRPhi.fElements:normZPos.fElements","",25,4,0.5);
  grZRfit->Draw("alp");
  grZRPhifit->Draw("lp");

  //
  for (Int_t ipoint=0; ipoint<npoints; ipoint++){
    //
    for (Int_t izNorm=0; izNorm<2; izNorm++){      
      Double_t r0   = 85+gRandom->Rndm()*(245-85.);
      Double_t z0   = gRandom->Rndm()*250;
      Double_t phi0 = gRandom->Rndm()*TMath::TwoPi();
      Double_t fSector=18.*phi0/TMath::TwoPi();
      Double_t dSector=fSector-Int_t(fSector);
      

      Int_t    iz0  =  TMath::Nint(125.*(z0+250.)/500.);
      if (iz0<0) iz0=0;
      if (iz0>=125) iz0=124;
      Double_t rNorm=1,rphiNorm=1,zNorm=1;      
      if (izNorm==1){
	rNorm=normZR[iz0];
	rphiNorm=normZRPhi[iz0];
	zNorm=normZZ[iz0];	
      }
    
      Double_t deltaR0  =distortion->GetCorrXYZ(r0*TMath::Cos(phi0), r0*TMath::Sin(phi0), z0,0,1);
      Double_t deltaRPhi0=distortion->GetCorrXYZ(r0*TMath::Cos(phi0), r0*TMath::Sin(phi0), z0,1,1);
      Double_t deltaZ0  =distortion->GetCorrXYZ(r0*TMath::Cos(phi0), r0*TMath::Sin(phi0), z0,2,1);
      //
      Double_t ddeltaR0  =distortion->GetCorrXYZ(r0*TMath::Cos(phi0), r0*TMath::Sin(phi0), z0,0,1)-rNorm*distortion->GetCorrXYZ(r0*TMath::Cos(phi0), r0*TMath::Sin(phi0), z0,0,2);
      Double_t ddeltaRPhi0=distortion->GetCorrXYZ(r0*TMath::Cos(phi0), r0*TMath::Sin(phi0), z0,1,1)-rphiNorm*distortion->GetCorrXYZ(r0*TMath::Cos(phi0), r0*TMath::Sin(phi0), z0,1,2);
      Double_t ddeltaZ0  =distortion->GetCorrXYZ(r0*TMath::Cos(phi0), r0*TMath::Sin(phi0), z0,2,1)-zNorm*distortion->GetCorrXYZ(r0*TMath::Cos(phi0), r0*TMath::Sin(phi0), z0,2,2);
      //
      //
      TVectorD vecDMeanRPhi(20), vecDMeanR(20), vecDMeanZ(20), vecDPhi(20);
      TVectorD vecDMeanRPhiBinR(20), vecDMeanRBinR(20), vecDMeanZBinR(20), vecDBinR(20);
      TVectorD vecDMeanRPhiBinZ(20), vecDMeanRBinZ(20), vecDMeanZBinZ(20), vecDBinZ(20);
      
      for (Int_t  ideltaBin=0; ideltaBin<20; ideltaBin++){
	Double_t  deltaPhi=ideltaBin*TMath::TwoPi()/360.;
	Double_t  deltaZ=ideltaBin*2;
	Double_t  deltaR=ideltaBin*2;
	//
	vecDPhi[ideltaBin]=deltaPhi;
	vecDMeanRPhi[ideltaBin]=0;
	vecDMeanR[ideltaBin]=0;
	vecDMeanZ[ideltaBin]=0;  
	//
	vecDBinR[ideltaBin]=deltaR;
	vecDMeanRPhiBinR[ideltaBin]=0;
	vecDMeanRBinR[ideltaBin]=0;
	vecDMeanZBinR[ideltaBin]=0;  
	//
	//
	vecDBinZ[ideltaBin]=deltaZ;
	vecDMeanRPhiBinZ[ideltaBin]=0;
	vecDMeanRBinZ[ideltaBin]=0;
	vecDMeanZBinZ[ideltaBin]=0;  
	//
	Double_t norm=1./9.;
	for (Int_t idelta=-4; idelta<=4; idelta++){
	  Double_t i=(idelta/4.);
	  Double_t phi1= phi0+deltaPhi*i;
	  Double_t r1= r0+deltaR*i;
	  Double_t z1= z0+deltaZ*i;
	  if (z1*z0<0) z1=z0;
	  if (z1>245) z1=245;
	  if (z1<-245) z1=-245;
	  if (r1<85) r1=85;
	  if (r1>245) r1=245;
	  //
	  //
	  vecDMeanR[ideltaBin]+=norm*(distortion->GetCorrXYZ(r0*TMath::Cos(phi1), r0*TMath::Sin(phi1), z0,0,1)-rNorm*distortion->GetCorrXYZ(r0*TMath::Cos(phi1), r0*TMath::Sin(phi1), z0,0,2));
	  vecDMeanRPhi[ideltaBin]+=norm*(distortion->GetCorrXYZ(r0*TMath::Cos(phi1), r0*TMath::Sin(phi1), z0,1,1)-rphiNorm*distortion->GetCorrXYZ(r0*TMath::Cos(phi1), r0*TMath::Sin(phi1), z0,1,2));
	  vecDMeanZ[ideltaBin]+=norm*(distortion->GetCorrXYZ(r0*TMath::Cos(phi1), r0*TMath::Sin(phi1), z0,2,1)-zNorm*distortion->GetCorrXYZ(r0*TMath::Cos(phi1), r0*TMath::Sin(phi1), z0,2,2));      
	  //
	  //
	  //
	  vecDMeanRBinR[ideltaBin]+=norm*(distortion->GetCorrXYZ(r1*TMath::Cos(phi0), r1*TMath::Sin(phi0), z0,0,1)-rNorm*distortion->GetCorrXYZ(r1*TMath::Cos(phi0), r1*TMath::Sin(phi0), z0,0,2));
	  vecDMeanRPhiBinR[ideltaBin]+=norm*(distortion->GetCorrXYZ(r1*TMath::Cos(phi0), r1*TMath::Sin(phi0), z0,1,1)-rphiNorm*distortion->GetCorrXYZ(r1*TMath::Cos(phi0), r1*TMath::Sin(phi0), z0,1,2));
	  vecDMeanZBinR[ideltaBin]+=norm*(distortion->GetCorrXYZ(r1*TMath::Cos(phi0), r1*TMath::Sin(phi0), z0,2,1)-zNorm*distortion->GetCorrXYZ(r1*TMath::Cos(phi0), r1*TMath::Sin(phi0), z0,2,2));      
	  //
	  //
	  vecDMeanRBinZ[ideltaBin]+=norm*(distortion->GetCorrXYZ(r0*TMath::Cos(phi0), r0*TMath::Sin(phi0), z1,0,1)-rNorm*distortion->GetCorrXYZ(r0*TMath::Cos(phi0), r0*TMath::Sin(phi0), z1,0,2));
	  vecDMeanRPhiBinZ[ideltaBin]+=norm*(distortion->GetCorrXYZ(r0*TMath::Cos(phi0), r0*TMath::Sin(phi0), z1,1,1)-rphiNorm*distortion->GetCorrXYZ(r0*TMath::Cos(phi0), r0*TMath::Sin(phi0), z1,1,2));
	  vecDMeanZBinZ[ideltaBin]+=norm*(distortion->GetCorrXYZ(r0*TMath::Cos(phi0), r0*TMath::Sin(phi0), z1,2,1)-zNorm*distortion->GetCorrXYZ(r0*TMath::Cos(phi0), r0*TMath::Sin(phi0), z1,2,2));      
	  
	}      
      }

      TVectorD vecDMeanRPhiRND(40), vecDMeanRRND(40), vecDMeanZRND(40), vecPhiRND(40), vecZRND(40), vecRRND(40);
      Int_t nintegral=25;
      Double_t norm=1./Double_t(nintegral);
      for (Int_t  ideltaBin=0; ideltaBin<40; ideltaBin++){
	vecDMeanRPhiRND[ideltaBin]=0;
	vecDMeanRRND[ideltaBin]=0;
	vecDMeanZRND[ideltaBin]=0; 
	vecPhiRND[ideltaBin]=gRandom->Rndm()*0.3; 
	vecZRND[ideltaBin]  =gRandom->Rndm()*30;
	vecRRND[ideltaBin]  =gRandom->Rndm()*30;
	for (Int_t ipoint=0; ipoint<nintegral; ipoint++){
	  Double_t phi1=phi0+2*(gRandom->Rndm()-0.5)*vecPhiRND[ideltaBin];
	  Double_t z1=z0+2*(gRandom->Rndm()-0.5)*vecZRND[ideltaBin];
	  Double_t r1=r0+2*(gRandom->Rndm()-0.5)*vecRRND[ideltaBin];
	  vecDMeanRRND[ideltaBin]+=norm*(distortion->GetCorrXYZ(r1*TMath::Cos(phi1), r1*TMath::Sin(phi1), z1,0,1)-rNorm*distortion->GetCorrXYZ(r1*TMath::Cos(phi1), r1*TMath::Sin(phi1), z1,0,2));
	  vecDMeanRPhiRND[ideltaBin]+=norm*(distortion->GetCorrXYZ(r1*TMath::Cos(phi1), r1*TMath::Sin(phi1), z1,1,1)-rphiNorm*distortion->GetCorrXYZ(r1*TMath::Cos(phi1), r1*TMath::Sin(phi1), z1,1,2));
	  vecDMeanZRND[ideltaBin]+=norm*(distortion->GetCorrXYZ(r1*TMath::Cos(phi1), r1*TMath::Sin(phi1), z1,2,1)-zNorm*distortion->GetCorrXYZ(r1*TMath::Cos(phi1), r1*TMath::Sin(phi1), z1,2,2));      
	}
      }




      (*pcstream)<<"meanDistortion"<<
	"npoints="<<npoints<<            // number of points genrated per file
	"npointsZ="<<npointsZ<<            // number of points generated to fit z bin
	"izNorm="<<izNorm<<              // z normalizatio flag
	"fSector="<<fSector<<            // sector position
	"dSector="<<dSector<<            // distance to the sector boundary
	//
	"r0="<<r0<<                      // r0 at center
	"z0="<<z0<<
	"phi0="<<phi0<<
	//
	"rNorm="<<rNorm<<
	"rphiNorm="<<rphiNorm<<
	"zNorm="<<zNorm<<
	//
	"deltaR0="<<deltaR0<<
	"deltaZ0="<<deltaZ0<<
	"deltaRPhi0="<<deltaRPhi0<<
	//
	"ddeltaR0="<<ddeltaR0<<
	"ddeltaZ0="<<ddeltaZ0<<
	"ddeltaRPhi0="<<ddeltaRPhi0<<
	//
	"vecDMeanRPhi.="<<&vecDMeanRPhi<<   
	"vecDMeanR.="<<&vecDMeanR<<   
	"vecDMeanZ.="<<&vecDMeanZ<<   
	"vecDPhi.="<<&vecDPhi<<
	//
	"vecDMeanRPhiBinZ.="<<&vecDMeanRPhiBinZ<<   
	"vecDMeanRBinZ.="<<&vecDMeanRBinZ<<   
	"vecDMeanZBinZ.="<<&vecDMeanZBinZ<<   
	"vecDBinZ.="<<&vecDBinZ<<
	//
	"vecDMeanRPhiBinR.="<<&vecDMeanRPhiBinR<<   
	"vecDMeanRBinR.="<<&vecDMeanRBinR<<   
	"vecDMeanZBinR.="<<&vecDMeanZBinR<<   
	"vecDBinR.="<<&vecDBinR<<
	//
	"vecDMeanRPhiRND.="<<&vecDMeanRPhiRND<<   
	"vecDMeanRRND.="<<&vecDMeanRRND<<   
	"vecDMeanZRND.="<<&vecDMeanZRND<<   
	"vecPhiRND.="<<&vecPhiRND<<
	"vecZRND.="<<&vecZRND<<
	"vecRRND.="<<&vecRRND<<
	"\n";
      //TVectorD vecDMeanRPhiRND(10), vecDMeanRRND(10), vecDMeanZRND(10), vecPhiRND(10), vecZRND(10), vecRRND(10);
    }
  }  
  delete pcstream;
  pcstream = new TTreeSRedirector("localBins.root","update");
  /*
    meanDistortion->Draw("vecDMeanR.fElements-ddeltaR0:vecDPhi.fElements","izNorm==1&&abs(phi0-pi)>0.2&&abs(ddeltaRPhi0)<10","")

   */
}


void DrawLocalDistortionPlots(){
  //
  // Draw summary residuals plots after applying z dependent q normalization.
  // Plots used for the TPC TDR and internal note
  //
  // Two input trees are used:
  //    meanNormZ        - here we store the result of the q ze dependent fits for Radial, RPhi and Z distortions
  //    meanDistortion   - phi averaged residual distortion before and after applying q(z) dependent correction
  //
  // It is assumed that the correction table for randomly selected pile-up setup
  // can be approximated rescaling the mean correction table.
  //   Rescaling coeficients are fitted separatelly in 125 z bins
  //

  TTreeSRedirector *pcstream = new TTreeSRedirector("localBins.root","update"); 
  TTree * meanNormZ  = (TTree*) pcstream->GetFile()->Get("meanNormZ");
  TTree * meanDistortion  = (TTree*) pcstream->GetFile()->Get("meanDistortion");
  meanNormZ->SetMarkerStyle(25);   meanNormZ->SetMarkerSize(0.5);  
  meanDistortion->SetMarkerStyle(25);   meanDistortion->SetMarkerSize(0.5);  
  Int_t colors[5]={1,2,3,4,6};
  Int_t markers[5]={21,20,23,24,25};
  TH2 * his2D;
  TObjArray arrFit(3);
  //
  // 1. Z dependence of the normalization is smooth function - about 10 bins to represent 
  //
  TGraphErrors *graphZRnorm[100]= {0};
  TGraphErrors *graphZRRPhinorm[100]= {0};
  TCanvas * canvasRFit = new TCanvas("canvasRFit","canvasRFit",600,500);
  TLegend * legendRFit = new TLegend(0.12,0.12,0.88,0.4,"Q normalization fit. #DeltaR=c(z)#DeltaR_{ref}"); 
  legendRFit->SetBorderSize(0);  
  for (Int_t igraph=0; igraph<5; igraph++){    
    Int_t color = colors[igraph];
    Int_t marker = markers[igraph];
    Int_t event=gRandom->Rndm()*meanNormZ->GetEntries();
    graphZRnorm[igraph] = TStatToolkit::MakeGraphErrors( meanNormZ, "normZR.fElements:normZPos.fElements",TString::Format("Entry$==%d&&abs(normZPos.fElements)<220",event),marker,color,0.7);
    graphZRnorm[igraph]->SetTitle(TString::Format("Pile-up setup=%d",igraph));   
    graphZRnorm[igraph]->SetMinimum(0.60);
    graphZRnorm[igraph]->SetMaximum(1.2);   
    graphZRnorm[igraph]->GetXaxis()->SetTitle("z (cm)");    
    graphZRnorm[igraph]->GetYaxis()->SetTitle("c(z)");    
    if (igraph==0) graphZRnorm[igraph]->Draw("alp");
    graphZRnorm[igraph]->Draw("lp");    
    legendRFit->AddEntry( graphZRnorm[igraph],TString::Format("Pile-up setup=%d",event),"p");
  }
  legendRFit->Draw(); 
  canvasRFit->SaveAs("canvasZRFit5Random.pdf");   // ~/hera/alice/miranov/SpaceCharge/Fluctuations/PbPbWithGain/dirmergeAll/dEpsilon20/canvasZRRPhiFit5Random.png
  canvasRFit->SaveAs("canvasZRFit5Random.png");  
  //
  // 2. 
  //
  TCanvas * canvasRRPhiFit = new TCanvas("canvasRRPhiFit","canvasRRPhiFit",600,500);
  TLegend * legendRRPhiFit = new TLegend(0.12,0.12,0.88,0.4,"Q normalization fit. #DeltaR=c_{R}(z)#DeltaR_{ref} #DeltaR#phi=c_{R#phi}(z)#Delta_{R#phi}_{ref}"); 
  legendRRPhiFit->SetBorderSize(0);  
  for (Int_t igraph=0; igraph<5; igraph++){    
    Int_t color = colors[igraph];
    Int_t marker = markers[igraph];
    Int_t event=gRandom->Rndm()*meanNormZ->GetEntries();
    graphZRRPhinorm[igraph] = TStatToolkit::MakeGraphErrors( meanNormZ, "normZR.fElements:normZRPhi.fElements",TString::Format("Entry$==%d&&abs(normZPos.fElements)<220",event),marker,color,0.7);
    graphZRRPhinorm[igraph]->GetXaxis()->SetLimits(0.6,1.2);    
    graphZRRPhinorm[igraph]->SetTitle(TString::Format("Pile-up setup=%d",igraph));   
    graphZRRPhinorm[igraph]->SetMinimum(0.6);
    graphZRRPhinorm[igraph]->SetMaximum(1.2);   
    graphZRRPhinorm[igraph]->GetXaxis()->SetTitle("c_{R#phi}");    
    graphZRRPhinorm[igraph]->GetYaxis()->SetTitle("c_{R}");    
    if (igraph==0) graphZRRPhinorm[igraph]->Draw("alp");
    graphZRRPhinorm[igraph]->Draw("lp");    
    legendRRPhiFit->AddEntry( graphZRRPhinorm[igraph],TString::Format("Pile-up setup=%d",event),"p");
  }
  legendRRPhiFit->Draw(); 
  canvasRRPhiFit->SaveAs("canvasZRRPhiFit5Random.pdf");   // ~/hera/alice/miranov/SpaceCharge/Fluctuations/PbPbWithGain/dirmergeAll/dEpsilon20/canvasZRRPhiFit5Random.png
  canvasRRPhiFit->SaveAs("canvasZRRPhiFit5Random.png");  
  //

  //
  // 3. Residual distortion after z dependent q distortion 
  //
  gStyle->SetOptStat(0);
  TH1D * hisRRes, *hisRRphiRes=0;
  meanDistortion->Draw("ddeltaRPhi0:r0>>hisdRPhi0(40,85,245,100,-0.25,0.25)","abs(z0)<85.&&izNorm==1","colz");
  his2D = (TH2D*)meanDistortion->GetHistogram();
  his2D->FitSlicesY(0,0,-1,0,"QNR",&arrFit);
  hisRRphiRes=(TH1D*)arrFit.At(2)->Clone();
  meanDistortion->Draw("ddeltaR0:r0>>hisdR(40,85,245,100,-0.25,0.25)","abs(z0)<85.&&izNorm==1","colz");
  his2D = (TH2D*)meanDistortion->GetHistogram();
  his2D->FitSlicesY(0,0,-1,0,"QNR",&arrFit);
  hisRRes=(TH1D*)arrFit.At(2)->Clone();
  hisRRphiRes->SetMarkerStyle(25);
  hisRRes->SetMarkerStyle(21);
  hisRRphiRes->SetMarkerColor(2);
  hisRRes->SetMarkerColor(4);  

  hisRRes->GetXaxis()->SetTitle("R (cm)");
  hisRRes->GetYaxis()->SetTitle("#sigma_{res} (cm)");  
  hisRRes->SetMinimum(0); 
  TCanvas * canvasResidualsFit = new TCanvas("canvasResidualsFit","canvasResidualsFit",600,500);
  TLegend * legendRRPhiFitSigma = new TLegend(0.2,0.6,0.88,0.88,"Distortion residuals. RMS(#Delta-c(z)#Delta_{ref}) (|z|<85)"); 
  legendRRPhiFit->SetBorderSize(0);  
  hisRRes->Draw("");
  hisRRphiRes->Draw("same");
  legendRRPhiFitSigma->AddEntry(hisRRes,"Radial");
  legendRRPhiFitSigma->AddEntry(hisRRphiRes,"R#phi");
  legendRRPhiFitSigma->Draw();
  canvasResidualsFit->SaveAs("canvasResidualsFit.pdf"); //~/hera/alice/miranov/SpaceCharge/Fluctuations/PbPbWithGain/dirmergeAll/dEpsilon20/canvasResidualsFit.png
  canvasResidualsFit->SaveAs("canvasResidualsFit.png");
  //
  //  4. Residual distortion after z dependent q distortion - local phi average 
  //
  TH1D * hisRResPhi, *hisRRphiResPhi=0;
  meanDistortion->Draw("ddeltaR0-vecDMeanR.fElements:vecDPhi.fElements>>hisRResPhi(18,0.0,0.32,100,-0.3,0.3)","abs(z0)<85.&&izNorm==1&&r0<120","colz",100000);
  his2D = (TH2D*)meanDistortion->GetHistogram()->Clone();
  his2D->FitSlicesY(0,0,-1,0,"QNR",&arrFit);
  hisRResPhi=(TH1D*)arrFit.At(2)->Clone();
  //
  meanDistortion->Draw("ddeltaRPhi0-vecDMeanRPhi.fElements:vecDPhi.fElements>>hisRRphResPhi(18,0.0,0.32,100,-0.3,0.3)","abs(z0)<85.&&izNorm==1","colz",100000);
  his2D = (TH2D*)meanDistortion->GetHistogram()->Clone();
  his2D->FitSlicesY(0,0,-1,0,"QNR",&arrFit);
  hisRRphiResPhi=(TH1D*)arrFit.At(2)->Clone();
  //
  hisRRphiResPhi->SetMarkerStyle(25);
  hisRResPhi->SetMarkerStyle(21);
  hisRRphiResPhi->SetMarkerColor(2);
  hisRResPhi->SetMarkerColor(4);  
  hisRResPhi->GetXaxis()->SetTitle("#Delta#phi bin width");
  hisRResPhi->GetYaxis()->SetTitle("#sigma_{res} (cm)");  
  hisRResPhi->SetMinimum(0); 
  hisRResPhi->SetMaximum(2.*hisRResPhi->GetMaximum()); 
  gStyle->SetOptStat(0);
  TCanvas * canvasResidualsFitPhi = new TCanvas("canvasResidualsFitPhi","canvasResidualsFitPhi",600,500);
  TLegend * legendRRPhiFitSigmaPhi = new TLegend(0.2,0.6,0.88,0.88,"Distortion residuals-mean in bin. RMS((#Delta-c(z)#Delta_{ref})) (|z|<85)"); 
  {  
    hisRResPhi->Draw("");
    hisRRphiResPhi->Draw("same");
    legendRRPhiFitSigmaPhi->AddEntry(hisRResPhi,"Radial");
    legendRRPhiFitSigmaPhi->SetBorderSize(0);  
    legendRRPhiFitSigmaPhi->AddEntry(hisRRphiResPhi,"R#phi");
    legendRRPhiFitSigmaPhi->Draw();
  }
  
  canvasResidualsFitPhi->SaveAs("canvasResidualsFitPhi.pdf"); //~/hera/alice/miranov/SpaceCharge/Fluctuations/PbPbWithGain/dirmergeAll/dEpsilon20/canvasResidualsFitPhi.png
  canvasResidualsFitPhi->SaveAs("canvasResidualsFitPhi.png");
  //
  // 5.) Draw mean residuals 
  //
  TCanvas *canvasResDist = new TCanvas("canvasResDist","canvasResDist",800,800);
  canvasResDist->Divide(2,3,0,0);
  {    
    canvasResDist->cd(1);    
    meanDistortion->Draw("vecDMeanR.fElements[2]:phi0:r0","abs(z0)<85.&&izNorm==1&&r0<120","colz",100000,0);
    canvasResDist->cd(2);    
    meanDistortion->Draw("vecDMeanR.fElements[2]:phi0:r0","abs(z0)<85.&&izNorm==1&&r0<120","colz",100000,200000);
    canvasResDist->cd(3);    
    meanDistortion->Draw("vecDMeanR.fElements[2]:phi0:r0","abs(z0)<85.&&izNorm==1&&r0<120","colz",100000,400000);
    canvasResDist->cd(4);    
    meanDistortion->Draw("vecDMeanR.fElements[2]:phi0:r0","abs(z0)<85.&&izNorm==1&&r0<120","colz",100000,600000);
    canvasResDist->cd(5);    
    meanDistortion->Draw("vecDMeanR.fElements[2]:phi0:r0","abs(z0)<85.&&izNorm==1&&r0<120","colz",100000,800000);
    canvasResDist->cd(6);    
    meanDistortion->Draw("vecDMeanR.fElements[2]:phi0:r0","abs(z0)<85.&&izNorm==1&&r0<120","colz",100000,1000000);
  }
  canvasResDist->SaveAs("canvasResidualsFitGraph.pdf");  //~/hera/alice/miranov/SpaceCharge/Fluctuations/PbPbWithGain/dirmergeAll/dEpsilon20/canvasResidualsFitGraph.png
  canvasResDist->SaveAs("canvasResidualsFitGraph.png");
}

void BinScan(Int_t npoints){

  
  TTreeSRedirector *pcstream = new TTreeSRedirector("localBins.root","update"); 
  TTree * resolScan = (TTree*)pcstream->GetFile()->Get("resolScan");
  if (!resolScan){
    TTree * meanNormZ  = (TTree*) pcstream->GetFile()->Get("meanNormZ");
    TTree * meanDistortion  = (TTree*) pcstream->GetFile()->Get("meanDistortion");
    //  meanNormZ->SetMarkerStyle(25);   meanNormZ->SetMarkerSize(0.5);  
    //   meanDistortion->SetMarkerStyle(25);   meanDistortion->SetMarkerSize(0.5);  
    //   Int_t colors[5]={1,2,3,4,6};
    //   Int_t markers[5]={21,20,23,24,25};
    //   TH2 * his2D;
    //   TObjArray arrFit(3);
    
    {
      //Int_t npoints=50000;
      TCut cutDist="abs(ddeltaR0-vecDMeanRRND.fElements)<1&&abs(ddeltaRPhi0-vecDMeanRPhiRND.fElements)<1";
      TCut cutGeom="abs(z0)<85&&r0<120.";
      //
      Int_t entries1 = meanDistortion->Draw("vecZRND.fElements:vecRRND.fElements:vecPhiRND.fElements","izNorm==1"+cutGeom+cutDist,"goff",npoints);
      TVectorD vecBR1(entries1,meanDistortion->GetV1());
      TVectorD vecBZ1(entries1,meanDistortion->GetV2());
      TVectorD vecBPhi1(entries1,meanDistortion->GetV3());
      meanDistortion->Draw("ddeltaR0-vecDMeanRRND.fElements:ddeltaRPhi0-vecDMeanRPhiRND.fElements","izNorm==1"+cutGeom+cutDist,"goff",npoints);
      TVectorD vecDR1(entries1,meanDistortion->GetV1());
      TVectorD vecDRPhi1(entries1,meanDistortion->GetV2());
      //
      Int_t entries0 = meanDistortion->Draw("vecZRND.fElements:vecRRND.fElements:vecPhiRND.fElements","izNorm==0"+cutGeom+cutDist,"goff",npoints);
      TVectorD vecBR0(entries0,meanDistortion->GetV1());
      TVectorD vecBZ0(entries0,meanDistortion->GetV2());
      TVectorD vecBPhi0(entries0,meanDistortion->GetV3());
      meanDistortion->Draw("ddeltaR0-vecDMeanRRND.fElements:ddeltaRPhi0-vecDMeanRPhiRND.fElements","izNorm==0"+cutGeom+cutDist,"goff",npoints);
      TVectorD vecDR0(entries0,meanDistortion->GetV1());
      TVectorD vecDRPhi0(entries0,meanDistortion->GetV2());
      //
      TVectorD vecSelR(TMath::Max(entries0,entries1));
      TVectorD vecSelRPhi(TMath::Max(entries0,entries1));
      //
      for (Int_t iz=1; iz<10; iz+=1){
	for (Int_t ir=1; ir<10; ir+=1){
	  for (Int_t iphi=1; iphi<10; iphi++){
	    Double_t zbin=3*iz;
	    Double_t rbin=3*ir;
	    Double_t phibin=0.025*iphi;
	    Int_t counter=0;
	    //
	    counter=0;
	    for (Int_t ipoint=0; ipoint<entries1; ipoint++){
	      Bool_t isOK=TMath::Abs(vecBZ1[ipoint]/zbin-1)<0.2;
	      isOK&=TMath::Abs(vecBR1[ipoint]/rbin-1.)<0.2;
	      isOK&=TMath::Abs(vecBPhi1[ipoint]/phibin-1.)<0.2;
	      if (isOK) {
		vecSelRPhi[counter]=vecDRPhi1[ipoint];
		vecSelR[counter]=vecDR1[ipoint];
		counter++;
	      }
	    }
	    Double_t meanR1=0,rmsR1=0;
	    Double_t meanRPhi1=0,rmsRPhi1=0;
	    if (counter>3) AliMathBase::EvaluateUni(counter,vecSelR.GetMatrixArray(),meanR1,rmsR1,0.9*counter);
	    if (counter>3) AliMathBase::EvaluateUni(counter,vecSelRPhi.GetMatrixArray(),meanRPhi1,rmsRPhi1,0.9*counter);
	    //
	    counter=0;
	    for (Int_t ipoint=0; ipoint<entries0; ipoint++){
	      Bool_t isOK=TMath::Abs(vecBZ0[ipoint]/zbin-1)<0.2;
	      isOK&=TMath::Abs(vecBR0[ipoint]/rbin-1.)<0.2;
	      isOK&=TMath::Abs(vecBPhi0[ipoint]/phibin-1.)<0.2;
	      if (isOK) {
		vecSelRPhi[counter]=vecDRPhi0[ipoint];
		vecSelR[counter]=vecDR0[ipoint];
		counter++;
	      }
	    }
	    Double_t meanR0=0, rmsR0=0;
	    Double_t meanRPhi0=0, rmsRPhi0=0;
	    if (counter>3) AliMathBase::EvaluateUni(counter,vecSelR.GetMatrixArray(),meanR0,rmsR0,0.9*counter);
	    if (counter>3) AliMathBase::EvaluateUni(counter,vecSelRPhi.GetMatrixArray(),meanRPhi0,rmsRPhi0,0.9*counter);
	    //
	    printf("%f\t%f\t%f\t%f\t%f\n",zbin,rbin,phibin,rmsR0/(rmsR1+0.0001), rmsRPhi0/(rmsRPhi1+0.00001));
	    (*pcstream)<<"resolScan"<<
	      "counter="<<counter<<
	      //
	      "iz="<<iz<<
	      "ir="<<ir<<
	      "iphi="<<iphi<<
	      //
	      "zbin="<<zbin<<
	      "rbin="<<rbin<<
	      "phibin="<<phibin<<
	      //
	      "meanR0="<<meanR0<<
	      "rmsR0="<<rmsR0<<
	      "meanRPhi0="<<meanRPhi0<<
	      "rmsRPhi0="<<rmsRPhi0<<
	      //
	      "meanR1="<<meanR1<<
	      "rmsR1="<<rmsR1<<
	      "meanRPhi1="<<meanRPhi1<<
	      "rmsRPhi1="<<rmsRPhi1<<
	      "\n";
	  } 
	}
      }
    }
    delete pcstream;
  }
  //
  pcstream = new TTreeSRedirector("localBins.root","update"); 
  resolScan = (TTree*)pcstream->GetFile()->Get("resolScan");
  resolScan->SetMarkerStyle(25);
  //
  Int_t colors[5]={1,2,3,4,6};
  Int_t markers[5]={21,20,23,24,25};
  gStyle->SetTitleFontSize(32);
  gStyle->SetTitleFontSize(35);
  //
  //
  //
  for (Int_t itype=0; itype<2; itype++){
    TCanvas * canvasRes = new TCanvas(TString::Format("canvasRes%d",itype),"canvasRes",800,800);
    canvasRes->SetRightMargin(0.05);
    canvasRes->SetLeftMargin(0.2);
    canvasRes->SetBottomMargin(0.18);
    canvasRes->Divide(2,3,0,0);
    TLatex  latexDraw;
    latexDraw.SetTextSize(0.08);
    //
    for (Int_t iz=1; iz<6; iz+=2){
      TLegend * legend0 = new TLegend(0.17,0.3,0.80,0.6,TString::Format("Residuals after mean correction"));
      TLegend * legend1 = new TLegend(0.07,0.3,0.90,0.6,TString::Format("Residual after applying #it{q(z)} correction"));
      legend0->SetBorderSize(0);
      legend1->SetBorderSize(0);
      for (Int_t ir=1; ir<8; ir+=2){
	TCut cutR(TString::Format("ir==%d",ir));
	TCut cutZ(TString::Format("iz==%d",iz));
	TGraphErrors * gr0=0, *gr1=0;
	if (itype==0){
	  gr0=TStatToolkit::MakeGraphErrors(resolScan,"10*rmsR0:phibin:10*rmsR0/sqrt(counter)",cutR+cutZ,markers[ir/2],colors[ir/2],0.75);
	  gr1=TStatToolkit::MakeGraphErrors(resolScan,"10*rmsR1:phibin:10*rmsR1/sqrt(counter)",cutR+cutZ,markers[ir/2],colors[ir/2],0.75);
	  gr0->GetYaxis()->SetTitle("#it{#sigma(#Delta_{R}-#bar{#Delta_{R}})} (mm)"); 
	}
	if (itype==1){
	  gr0=TStatToolkit::MakeGraphErrors(resolScan,"10*rmsRPhi0:phibin:10*rmsRPhi0/sqrt(counter)",cutR+cutZ,markers[ir/2],colors[ir/2],0.75);
	  gr1=TStatToolkit::MakeGraphErrors(resolScan,"10*rmsPhi1:phibin:10*rmsPhi1/sqrt(counter)",cutR+cutZ,markers[ir/2],colors[ir/2],0.75);
	  gr0->GetYaxis()->SetTitle("#it{#sigma(#Delta_{R#phi}-#bar{#Delta_{R#phi}})} (mm)"); 
	}
	gr0->GetXaxis()->SetTitle("#Delta#phi bin width");
	gr1->GetXaxis()->SetTitle("#Delta#phi bin width");
	SetGraphTDRStyle(gr0);
	SetGraphTDRStyle(gr1);
	gr0->GetXaxis()->SetLimits(0,0.25);
	gr1->GetXaxis()->SetLimits(0,0.25);
	gr0->SetMinimum(-0.5);
	gr0->SetMaximum(0.7);
	gr1->SetMinimum(-0.5);
	gr1->SetMaximum(0.7);
	canvasRes->cd(iz)->SetTicks(3,3);
	canvasRes->cd(iz)->SetGrid(0,3);
	canvasRes->cd(iz)->SetLeftMargin(0.15);
	if (ir==1) gr0->Draw("alp");
	gr0->Draw("lp");
	canvasRes->cd(iz+1)->SetTicks(3,3);
	canvasRes->cd(iz+1)->SetGrid(0,3);
	if (ir==1) gr1->Draw("alp");
	gr1->Draw("lp");
	legend0->AddEntry(gr0,TString::Format("#it{#Delta_{R}}=%1.1f (cm)",ir*3.),"p");
	legend1->AddEntry(gr1,TString::Format("#it{#Delta_{R}}=%1.1f (cm)",ir*3.),"p");
	//
	canvasRes->cd(iz);
	latexDraw.DrawLatex(0.01,-0.45,TString::Format("#Delta_{Z}=%1.0f cm, R<120 cm, |Z|<85 cm ",iz*3.));
	canvasRes->cd(iz+1);
	latexDraw.DrawLatex(0.01,-0.45,TString::Format("#Delta_{Z}=%1.0f cm, R<120 cm, |Z|<85 cm ",iz*3.));
      }
      if (iz==5){
	legend0->SetTextSize(0.06);
	legend1->SetTextSize(0.06);
	canvasRes->cd(iz);
	legend0->Draw();
	canvasRes->cd(iz+1);
	legend1->Draw();
      }
    }
    if (itype==0){
       canvasRes->SaveAs("canvasSpaceChargeBinFlucR.pdf");
       canvasRes->SaveAs("canvasSpaceChargeBinFlucR.png");
    }
    if (itype==1){
      canvasRes->SaveAs("canvasSpaceChargeBinFlucRPhi.pdf");
      canvasRes->SaveAs("canvasSpaceChargeBinFlucRPhi.png"); //~/hera/alice/miranov/SpaceCharge/Fluctuations/PbPbWithGain/dirmergeAll/dEpsilon20/canvasSpaceChargeBinFlucRPhi.pdf
    }
  }

}

  
 spaceChargeFluctuation.C:1
 spaceChargeFluctuation.C:2
 spaceChargeFluctuation.C:3
 spaceChargeFluctuation.C:4
 spaceChargeFluctuation.C:5
 spaceChargeFluctuation.C:6
 spaceChargeFluctuation.C:7
 spaceChargeFluctuation.C:8
 spaceChargeFluctuation.C:9
 spaceChargeFluctuation.C:10
 spaceChargeFluctuation.C:11
 spaceChargeFluctuation.C:12
 spaceChargeFluctuation.C:13
 spaceChargeFluctuation.C:14
 spaceChargeFluctuation.C:15
 spaceChargeFluctuation.C:16
 spaceChargeFluctuation.C:17
 spaceChargeFluctuation.C:18
 spaceChargeFluctuation.C:19
 spaceChargeFluctuation.C:20
 spaceChargeFluctuation.C:21
 spaceChargeFluctuation.C:22
 spaceChargeFluctuation.C:23
 spaceChargeFluctuation.C:24
 spaceChargeFluctuation.C:25
 spaceChargeFluctuation.C:26
 spaceChargeFluctuation.C:27
 spaceChargeFluctuation.C:28
 spaceChargeFluctuation.C:29
 spaceChargeFluctuation.C:30
 spaceChargeFluctuation.C:31
 spaceChargeFluctuation.C:32
 spaceChargeFluctuation.C:33
 spaceChargeFluctuation.C:34
 spaceChargeFluctuation.C:35
 spaceChargeFluctuation.C:36
 spaceChargeFluctuation.C:37
 spaceChargeFluctuation.C:38
 spaceChargeFluctuation.C:39
 spaceChargeFluctuation.C:40
 spaceChargeFluctuation.C:41
 spaceChargeFluctuation.C:42
 spaceChargeFluctuation.C:43
 spaceChargeFluctuation.C:44
 spaceChargeFluctuation.C:45
 spaceChargeFluctuation.C:46
 spaceChargeFluctuation.C:47
 spaceChargeFluctuation.C:48
 spaceChargeFluctuation.C:49
 spaceChargeFluctuation.C:50
 spaceChargeFluctuation.C:51
 spaceChargeFluctuation.C:52
 spaceChargeFluctuation.C:53
 spaceChargeFluctuation.C:54
 spaceChargeFluctuation.C:55
 spaceChargeFluctuation.C:56
 spaceChargeFluctuation.C:57
 spaceChargeFluctuation.C:58
 spaceChargeFluctuation.C:59
 spaceChargeFluctuation.C:60
 spaceChargeFluctuation.C:61
 spaceChargeFluctuation.C:62
 spaceChargeFluctuation.C:63
 spaceChargeFluctuation.C:64
 spaceChargeFluctuation.C:65
 spaceChargeFluctuation.C:66
 spaceChargeFluctuation.C:67
 spaceChargeFluctuation.C:68
 spaceChargeFluctuation.C:69
 spaceChargeFluctuation.C:70
 spaceChargeFluctuation.C:71
 spaceChargeFluctuation.C:72
 spaceChargeFluctuation.C:73
 spaceChargeFluctuation.C:74
 spaceChargeFluctuation.C:75
 spaceChargeFluctuation.C:76
 spaceChargeFluctuation.C:77
 spaceChargeFluctuation.C:78
 spaceChargeFluctuation.C:79
 spaceChargeFluctuation.C:80
 spaceChargeFluctuation.C:81
 spaceChargeFluctuation.C:82
 spaceChargeFluctuation.C:83
 spaceChargeFluctuation.C:84
 spaceChargeFluctuation.C:85
 spaceChargeFluctuation.C:86
 spaceChargeFluctuation.C:87
 spaceChargeFluctuation.C:88
 spaceChargeFluctuation.C:89
 spaceChargeFluctuation.C:90
 spaceChargeFluctuation.C:91
 spaceChargeFluctuation.C:92
 spaceChargeFluctuation.C:93
 spaceChargeFluctuation.C:94
 spaceChargeFluctuation.C:95
 spaceChargeFluctuation.C:96
 spaceChargeFluctuation.C:97
 spaceChargeFluctuation.C:98
 spaceChargeFluctuation.C:99
 spaceChargeFluctuation.C:100
 spaceChargeFluctuation.C:101
 spaceChargeFluctuation.C:102
 spaceChargeFluctuation.C:103
 spaceChargeFluctuation.C:104
 spaceChargeFluctuation.C:105
 spaceChargeFluctuation.C:106
 spaceChargeFluctuation.C:107
 spaceChargeFluctuation.C:108
 spaceChargeFluctuation.C:109
 spaceChargeFluctuation.C:110
 spaceChargeFluctuation.C:111
 spaceChargeFluctuation.C:112
 spaceChargeFluctuation.C:113
 spaceChargeFluctuation.C:114
 spaceChargeFluctuation.C:115
 spaceChargeFluctuation.C:116
 spaceChargeFluctuation.C:117
 spaceChargeFluctuation.C:118
 spaceChargeFluctuation.C:119
 spaceChargeFluctuation.C:120
 spaceChargeFluctuation.C:121
 spaceChargeFluctuation.C:122
 spaceChargeFluctuation.C:123
 spaceChargeFluctuation.C:124
 spaceChargeFluctuation.C:125
 spaceChargeFluctuation.C:126
 spaceChargeFluctuation.C:127
 spaceChargeFluctuation.C:128
 spaceChargeFluctuation.C:129
 spaceChargeFluctuation.C:130
 spaceChargeFluctuation.C:131
 spaceChargeFluctuation.C:132
 spaceChargeFluctuation.C:133
 spaceChargeFluctuation.C:134
 spaceChargeFluctuation.C:135
 spaceChargeFluctuation.C:136
 spaceChargeFluctuation.C:137
 spaceChargeFluctuation.C:138
 spaceChargeFluctuation.C:139
 spaceChargeFluctuation.C:140
 spaceChargeFluctuation.C:141
 spaceChargeFluctuation.C:142
 spaceChargeFluctuation.C:143
 spaceChargeFluctuation.C:144
 spaceChargeFluctuation.C:145
 spaceChargeFluctuation.C:146
 spaceChargeFluctuation.C:147
 spaceChargeFluctuation.C:148
 spaceChargeFluctuation.C:149
 spaceChargeFluctuation.C:150
 spaceChargeFluctuation.C:151
 spaceChargeFluctuation.C:152
 spaceChargeFluctuation.C:153
 spaceChargeFluctuation.C:154
 spaceChargeFluctuation.C:155
 spaceChargeFluctuation.C:156
 spaceChargeFluctuation.C:157
 spaceChargeFluctuation.C:158
 spaceChargeFluctuation.C:159
 spaceChargeFluctuation.C:160
 spaceChargeFluctuation.C:161
 spaceChargeFluctuation.C:162
 spaceChargeFluctuation.C:163
 spaceChargeFluctuation.C:164
 spaceChargeFluctuation.C:165
 spaceChargeFluctuation.C:166
 spaceChargeFluctuation.C:167
 spaceChargeFluctuation.C:168
 spaceChargeFluctuation.C:169
 spaceChargeFluctuation.C:170
 spaceChargeFluctuation.C:171
 spaceChargeFluctuation.C:172
 spaceChargeFluctuation.C:173
 spaceChargeFluctuation.C:174
 spaceChargeFluctuation.C:175
 spaceChargeFluctuation.C:176
 spaceChargeFluctuation.C:177
 spaceChargeFluctuation.C:178
 spaceChargeFluctuation.C:179
 spaceChargeFluctuation.C:180
 spaceChargeFluctuation.C:181
 spaceChargeFluctuation.C:182
 spaceChargeFluctuation.C:183
 spaceChargeFluctuation.C:184
 spaceChargeFluctuation.C:185
 spaceChargeFluctuation.C:186
 spaceChargeFluctuation.C:187
 spaceChargeFluctuation.C:188
 spaceChargeFluctuation.C:189
 spaceChargeFluctuation.C:190
 spaceChargeFluctuation.C:191
 spaceChargeFluctuation.C:192
 spaceChargeFluctuation.C:193
 spaceChargeFluctuation.C:194
 spaceChargeFluctuation.C:195
 spaceChargeFluctuation.C:196
 spaceChargeFluctuation.C:197
 spaceChargeFluctuation.C:198
 spaceChargeFluctuation.C:199
 spaceChargeFluctuation.C:200
 spaceChargeFluctuation.C:201
 spaceChargeFluctuation.C:202
 spaceChargeFluctuation.C:203
 spaceChargeFluctuation.C:204
 spaceChargeFluctuation.C:205
 spaceChargeFluctuation.C:206
 spaceChargeFluctuation.C:207
 spaceChargeFluctuation.C:208
 spaceChargeFluctuation.C:209
 spaceChargeFluctuation.C:210
 spaceChargeFluctuation.C:211
 spaceChargeFluctuation.C:212
 spaceChargeFluctuation.C:213
 spaceChargeFluctuation.C:214
 spaceChargeFluctuation.C:215
 spaceChargeFluctuation.C:216
 spaceChargeFluctuation.C:217
 spaceChargeFluctuation.C:218
 spaceChargeFluctuation.C:219
 spaceChargeFluctuation.C:220
 spaceChargeFluctuation.C:221
 spaceChargeFluctuation.C:222
 spaceChargeFluctuation.C:223
 spaceChargeFluctuation.C:224
 spaceChargeFluctuation.C:225
 spaceChargeFluctuation.C:226
 spaceChargeFluctuation.C:227
 spaceChargeFluctuation.C:228
 spaceChargeFluctuation.C:229
 spaceChargeFluctuation.C:230
 spaceChargeFluctuation.C:231
 spaceChargeFluctuation.C:232
 spaceChargeFluctuation.C:233
 spaceChargeFluctuation.C:234
 spaceChargeFluctuation.C:235
 spaceChargeFluctuation.C:236
 spaceChargeFluctuation.C:237
 spaceChargeFluctuation.C:238
 spaceChargeFluctuation.C:239
 spaceChargeFluctuation.C:240
 spaceChargeFluctuation.C:241
 spaceChargeFluctuation.C:242
 spaceChargeFluctuation.C:243
 spaceChargeFluctuation.C:244
 spaceChargeFluctuation.C:245
 spaceChargeFluctuation.C:246
 spaceChargeFluctuation.C:247
 spaceChargeFluctuation.C:248
 spaceChargeFluctuation.C:249
 spaceChargeFluctuation.C:250
 spaceChargeFluctuation.C:251
 spaceChargeFluctuation.C:252
 spaceChargeFluctuation.C:253
 spaceChargeFluctuation.C:254
 spaceChargeFluctuation.C:255
 spaceChargeFluctuation.C:256
 spaceChargeFluctuation.C:257
 spaceChargeFluctuation.C:258
 spaceChargeFluctuation.C:259
 spaceChargeFluctuation.C:260
 spaceChargeFluctuation.C:261
 spaceChargeFluctuation.C:262
 spaceChargeFluctuation.C:263
 spaceChargeFluctuation.C:264
 spaceChargeFluctuation.C:265
 spaceChargeFluctuation.C:266
 spaceChargeFluctuation.C:267
 spaceChargeFluctuation.C:268
 spaceChargeFluctuation.C:269
 spaceChargeFluctuation.C:270
 spaceChargeFluctuation.C:271
 spaceChargeFluctuation.C:272
 spaceChargeFluctuation.C:273
 spaceChargeFluctuation.C:274
 spaceChargeFluctuation.C:275
 spaceChargeFluctuation.C:276
 spaceChargeFluctuation.C:277
 spaceChargeFluctuation.C:278
 spaceChargeFluctuation.C:279
 spaceChargeFluctuation.C:280
 spaceChargeFluctuation.C:281
 spaceChargeFluctuation.C:282
 spaceChargeFluctuation.C:283
 spaceChargeFluctuation.C:284
 spaceChargeFluctuation.C:285
 spaceChargeFluctuation.C:286
 spaceChargeFluctuation.C:287
 spaceChargeFluctuation.C:288
 spaceChargeFluctuation.C:289
 spaceChargeFluctuation.C:290
 spaceChargeFluctuation.C:291
 spaceChargeFluctuation.C:292
 spaceChargeFluctuation.C:293
 spaceChargeFluctuation.C:294
 spaceChargeFluctuation.C:295
 spaceChargeFluctuation.C:296
 spaceChargeFluctuation.C:297
 spaceChargeFluctuation.C:298
 spaceChargeFluctuation.C:299
 spaceChargeFluctuation.C:300
 spaceChargeFluctuation.C:301
 spaceChargeFluctuation.C:302
 spaceChargeFluctuation.C:303
 spaceChargeFluctuation.C:304
 spaceChargeFluctuation.C:305
 spaceChargeFluctuation.C:306
 spaceChargeFluctuation.C:307
 spaceChargeFluctuation.C:308
 spaceChargeFluctuation.C:309
 spaceChargeFluctuation.C:310
 spaceChargeFluctuation.C:311
 spaceChargeFluctuation.C:312
 spaceChargeFluctuation.C:313
 spaceChargeFluctuation.C:314
 spaceChargeFluctuation.C:315
 spaceChargeFluctuation.C:316
 spaceChargeFluctuation.C:317
 spaceChargeFluctuation.C:318
 spaceChargeFluctuation.C:319
 spaceChargeFluctuation.C:320
 spaceChargeFluctuation.C:321
 spaceChargeFluctuation.C:322
 spaceChargeFluctuation.C:323
 spaceChargeFluctuation.C:324
 spaceChargeFluctuation.C:325
 spaceChargeFluctuation.C:326
 spaceChargeFluctuation.C:327
 spaceChargeFluctuation.C:328
 spaceChargeFluctuation.C:329
 spaceChargeFluctuation.C:330
 spaceChargeFluctuation.C:331
 spaceChargeFluctuation.C:332
 spaceChargeFluctuation.C:333
 spaceChargeFluctuation.C:334
 spaceChargeFluctuation.C:335
 spaceChargeFluctuation.C:336
 spaceChargeFluctuation.C:337
 spaceChargeFluctuation.C:338
 spaceChargeFluctuation.C:339
 spaceChargeFluctuation.C:340
 spaceChargeFluctuation.C:341
 spaceChargeFluctuation.C:342
 spaceChargeFluctuation.C:343
 spaceChargeFluctuation.C:344
 spaceChargeFluctuation.C:345
 spaceChargeFluctuation.C:346
 spaceChargeFluctuation.C:347
 spaceChargeFluctuation.C:348
 spaceChargeFluctuation.C:349
 spaceChargeFluctuation.C:350
 spaceChargeFluctuation.C:351
 spaceChargeFluctuation.C:352
 spaceChargeFluctuation.C:353
 spaceChargeFluctuation.C:354
 spaceChargeFluctuation.C:355
 spaceChargeFluctuation.C:356
 spaceChargeFluctuation.C:357
 spaceChargeFluctuation.C:358
 spaceChargeFluctuation.C:359
 spaceChargeFluctuation.C:360
 spaceChargeFluctuation.C:361
 spaceChargeFluctuation.C:362
 spaceChargeFluctuation.C:363
 spaceChargeFluctuation.C:364
 spaceChargeFluctuation.C:365
 spaceChargeFluctuation.C:366
 spaceChargeFluctuation.C:367
 spaceChargeFluctuation.C:368
 spaceChargeFluctuation.C:369
 spaceChargeFluctuation.C:370
 spaceChargeFluctuation.C:371
 spaceChargeFluctuation.C:372
 spaceChargeFluctuation.C:373
 spaceChargeFluctuation.C:374
 spaceChargeFluctuation.C:375
 spaceChargeFluctuation.C:376
 spaceChargeFluctuation.C:377
 spaceChargeFluctuation.C:378
 spaceChargeFluctuation.C:379
 spaceChargeFluctuation.C:380
 spaceChargeFluctuation.C:381
 spaceChargeFluctuation.C:382
 spaceChargeFluctuation.C:383
 spaceChargeFluctuation.C:384
 spaceChargeFluctuation.C:385
 spaceChargeFluctuation.C:386
 spaceChargeFluctuation.C:387
 spaceChargeFluctuation.C:388
 spaceChargeFluctuation.C:389
 spaceChargeFluctuation.C:390
 spaceChargeFluctuation.C:391
 spaceChargeFluctuation.C:392
 spaceChargeFluctuation.C:393
 spaceChargeFluctuation.C:394
 spaceChargeFluctuation.C:395
 spaceChargeFluctuation.C:396
 spaceChargeFluctuation.C:397
 spaceChargeFluctuation.C:398
 spaceChargeFluctuation.C:399
 spaceChargeFluctuation.C:400
 spaceChargeFluctuation.C:401
 spaceChargeFluctuation.C:402
 spaceChargeFluctuation.C:403
 spaceChargeFluctuation.C:404
 spaceChargeFluctuation.C:405
 spaceChargeFluctuation.C:406
 spaceChargeFluctuation.C:407
 spaceChargeFluctuation.C:408
 spaceChargeFluctuation.C:409
 spaceChargeFluctuation.C:410
 spaceChargeFluctuation.C:411
 spaceChargeFluctuation.C:412
 spaceChargeFluctuation.C:413
 spaceChargeFluctuation.C:414
 spaceChargeFluctuation.C:415
 spaceChargeFluctuation.C:416
 spaceChargeFluctuation.C:417
 spaceChargeFluctuation.C:418
 spaceChargeFluctuation.C:419
 spaceChargeFluctuation.C:420
 spaceChargeFluctuation.C:421
 spaceChargeFluctuation.C:422
 spaceChargeFluctuation.C:423
 spaceChargeFluctuation.C:424
 spaceChargeFluctuation.C:425
 spaceChargeFluctuation.C:426
 spaceChargeFluctuation.C:427
 spaceChargeFluctuation.C:428
 spaceChargeFluctuation.C:429
 spaceChargeFluctuation.C:430
 spaceChargeFluctuation.C:431
 spaceChargeFluctuation.C:432
 spaceChargeFluctuation.C:433
 spaceChargeFluctuation.C:434
 spaceChargeFluctuation.C:435
 spaceChargeFluctuation.C:436
 spaceChargeFluctuation.C:437
 spaceChargeFluctuation.C:438
 spaceChargeFluctuation.C:439
 spaceChargeFluctuation.C:440
 spaceChargeFluctuation.C:441
 spaceChargeFluctuation.C:442
 spaceChargeFluctuation.C:443
 spaceChargeFluctuation.C:444
 spaceChargeFluctuation.C:445
 spaceChargeFluctuation.C:446
 spaceChargeFluctuation.C:447
 spaceChargeFluctuation.C:448
 spaceChargeFluctuation.C:449
 spaceChargeFluctuation.C:450
 spaceChargeFluctuation.C:451
 spaceChargeFluctuation.C:452
 spaceChargeFluctuation.C:453
 spaceChargeFluctuation.C:454
 spaceChargeFluctuation.C:455
 spaceChargeFluctuation.C:456
 spaceChargeFluctuation.C:457
 spaceChargeFluctuation.C:458
 spaceChargeFluctuation.C:459
 spaceChargeFluctuation.C:460
 spaceChargeFluctuation.C:461
 spaceChargeFluctuation.C:462
 spaceChargeFluctuation.C:463
 spaceChargeFluctuation.C:464
 spaceChargeFluctuation.C:465
 spaceChargeFluctuation.C:466
 spaceChargeFluctuation.C:467
 spaceChargeFluctuation.C:468
 spaceChargeFluctuation.C:469
 spaceChargeFluctuation.C:470
 spaceChargeFluctuation.C:471
 spaceChargeFluctuation.C:472
 spaceChargeFluctuation.C:473
 spaceChargeFluctuation.C:474
 spaceChargeFluctuation.C:475
 spaceChargeFluctuation.C:476
 spaceChargeFluctuation.C:477
 spaceChargeFluctuation.C:478
 spaceChargeFluctuation.C:479
 spaceChargeFluctuation.C:480
 spaceChargeFluctuation.C:481
 spaceChargeFluctuation.C:482
 spaceChargeFluctuation.C:483
 spaceChargeFluctuation.C:484
 spaceChargeFluctuation.C:485
 spaceChargeFluctuation.C:486
 spaceChargeFluctuation.C:487
 spaceChargeFluctuation.C:488
 spaceChargeFluctuation.C:489
 spaceChargeFluctuation.C:490
 spaceChargeFluctuation.C:491
 spaceChargeFluctuation.C:492
 spaceChargeFluctuation.C:493
 spaceChargeFluctuation.C:494
 spaceChargeFluctuation.C:495
 spaceChargeFluctuation.C:496
 spaceChargeFluctuation.C:497
 spaceChargeFluctuation.C:498
 spaceChargeFluctuation.C:499
 spaceChargeFluctuation.C:500
 spaceChargeFluctuation.C:501
 spaceChargeFluctuation.C:502
 spaceChargeFluctuation.C:503
 spaceChargeFluctuation.C:504
 spaceChargeFluctuation.C:505
 spaceChargeFluctuation.C:506
 spaceChargeFluctuation.C:507
 spaceChargeFluctuation.C:508
 spaceChargeFluctuation.C:509
 spaceChargeFluctuation.C:510
 spaceChargeFluctuation.C:511
 spaceChargeFluctuation.C:512
 spaceChargeFluctuation.C:513
 spaceChargeFluctuation.C:514
 spaceChargeFluctuation.C:515
 spaceChargeFluctuation.C:516
 spaceChargeFluctuation.C:517
 spaceChargeFluctuation.C:518
 spaceChargeFluctuation.C:519
 spaceChargeFluctuation.C:520
 spaceChargeFluctuation.C:521
 spaceChargeFluctuation.C:522
 spaceChargeFluctuation.C:523
 spaceChargeFluctuation.C:524
 spaceChargeFluctuation.C:525
 spaceChargeFluctuation.C:526
 spaceChargeFluctuation.C:527
 spaceChargeFluctuation.C:528
 spaceChargeFluctuation.C:529
 spaceChargeFluctuation.C:530
 spaceChargeFluctuation.C:531
 spaceChargeFluctuation.C:532
 spaceChargeFluctuation.C:533
 spaceChargeFluctuation.C:534
 spaceChargeFluctuation.C:535
 spaceChargeFluctuation.C:536
 spaceChargeFluctuation.C:537
 spaceChargeFluctuation.C:538
 spaceChargeFluctuation.C:539
 spaceChargeFluctuation.C:540
 spaceChargeFluctuation.C:541
 spaceChargeFluctuation.C:542
 spaceChargeFluctuation.C:543
 spaceChargeFluctuation.C:544
 spaceChargeFluctuation.C:545
 spaceChargeFluctuation.C:546
 spaceChargeFluctuation.C:547
 spaceChargeFluctuation.C:548
 spaceChargeFluctuation.C:549
 spaceChargeFluctuation.C:550
 spaceChargeFluctuation.C:551
 spaceChargeFluctuation.C:552
 spaceChargeFluctuation.C:553
 spaceChargeFluctuation.C:554
 spaceChargeFluctuation.C:555
 spaceChargeFluctuation.C:556
 spaceChargeFluctuation.C:557
 spaceChargeFluctuation.C:558
 spaceChargeFluctuation.C:559
 spaceChargeFluctuation.C:560
 spaceChargeFluctuation.C:561
 spaceChargeFluctuation.C:562
 spaceChargeFluctuation.C:563
 spaceChargeFluctuation.C:564
 spaceChargeFluctuation.C:565
 spaceChargeFluctuation.C:566
 spaceChargeFluctuation.C:567
 spaceChargeFluctuation.C:568
 spaceChargeFluctuation.C:569
 spaceChargeFluctuation.C:570
 spaceChargeFluctuation.C:571
 spaceChargeFluctuation.C:572
 spaceChargeFluctuation.C:573
 spaceChargeFluctuation.C:574
 spaceChargeFluctuation.C:575
 spaceChargeFluctuation.C:576
 spaceChargeFluctuation.C:577
 spaceChargeFluctuation.C:578
 spaceChargeFluctuation.C:579
 spaceChargeFluctuation.C:580
 spaceChargeFluctuation.C:581
 spaceChargeFluctuation.C:582
 spaceChargeFluctuation.C:583
 spaceChargeFluctuation.C:584
 spaceChargeFluctuation.C:585
 spaceChargeFluctuation.C:586
 spaceChargeFluctuation.C:587
 spaceChargeFluctuation.C:588
 spaceChargeFluctuation.C:589
 spaceChargeFluctuation.C:590
 spaceChargeFluctuation.C:591
 spaceChargeFluctuation.C:592
 spaceChargeFluctuation.C:593
 spaceChargeFluctuation.C:594
 spaceChargeFluctuation.C:595
 spaceChargeFluctuation.C:596
 spaceChargeFluctuation.C:597
 spaceChargeFluctuation.C:598
 spaceChargeFluctuation.C:599
 spaceChargeFluctuation.C:600
 spaceChargeFluctuation.C:601
 spaceChargeFluctuation.C:602
 spaceChargeFluctuation.C:603
 spaceChargeFluctuation.C:604
 spaceChargeFluctuation.C:605
 spaceChargeFluctuation.C:606
 spaceChargeFluctuation.C:607
 spaceChargeFluctuation.C:608
 spaceChargeFluctuation.C:609
 spaceChargeFluctuation.C:610
 spaceChargeFluctuation.C:611
 spaceChargeFluctuation.C:612
 spaceChargeFluctuation.C:613
 spaceChargeFluctuation.C:614
 spaceChargeFluctuation.C:615
 spaceChargeFluctuation.C:616
 spaceChargeFluctuation.C:617
 spaceChargeFluctuation.C:618
 spaceChargeFluctuation.C:619
 spaceChargeFluctuation.C:620
 spaceChargeFluctuation.C:621
 spaceChargeFluctuation.C:622
 spaceChargeFluctuation.C:623
 spaceChargeFluctuation.C:624
 spaceChargeFluctuation.C:625
 spaceChargeFluctuation.C:626
 spaceChargeFluctuation.C:627
 spaceChargeFluctuation.C:628
 spaceChargeFluctuation.C:629
 spaceChargeFluctuation.C:630
 spaceChargeFluctuation.C:631
 spaceChargeFluctuation.C:632
 spaceChargeFluctuation.C:633
 spaceChargeFluctuation.C:634
 spaceChargeFluctuation.C:635
 spaceChargeFluctuation.C:636
 spaceChargeFluctuation.C:637
 spaceChargeFluctuation.C:638
 spaceChargeFluctuation.C:639
 spaceChargeFluctuation.C:640
 spaceChargeFluctuation.C:641
 spaceChargeFluctuation.C:642
 spaceChargeFluctuation.C:643
 spaceChargeFluctuation.C:644
 spaceChargeFluctuation.C:645
 spaceChargeFluctuation.C:646
 spaceChargeFluctuation.C:647
 spaceChargeFluctuation.C:648
 spaceChargeFluctuation.C:649
 spaceChargeFluctuation.C:650
 spaceChargeFluctuation.C:651
 spaceChargeFluctuation.C:652
 spaceChargeFluctuation.C:653
 spaceChargeFluctuation.C:654
 spaceChargeFluctuation.C:655
 spaceChargeFluctuation.C:656
 spaceChargeFluctuation.C:657
 spaceChargeFluctuation.C:658
 spaceChargeFluctuation.C:659
 spaceChargeFluctuation.C:660
 spaceChargeFluctuation.C:661
 spaceChargeFluctuation.C:662
 spaceChargeFluctuation.C:663
 spaceChargeFluctuation.C:664
 spaceChargeFluctuation.C:665
 spaceChargeFluctuation.C:666
 spaceChargeFluctuation.C:667
 spaceChargeFluctuation.C:668
 spaceChargeFluctuation.C:669
 spaceChargeFluctuation.C:670
 spaceChargeFluctuation.C:671
 spaceChargeFluctuation.C:672
 spaceChargeFluctuation.C:673
 spaceChargeFluctuation.C:674
 spaceChargeFluctuation.C:675
 spaceChargeFluctuation.C:676
 spaceChargeFluctuation.C:677
 spaceChargeFluctuation.C:678
 spaceChargeFluctuation.C:679
 spaceChargeFluctuation.C:680
 spaceChargeFluctuation.C:681
 spaceChargeFluctuation.C:682
 spaceChargeFluctuation.C:683
 spaceChargeFluctuation.C:684
 spaceChargeFluctuation.C:685
 spaceChargeFluctuation.C:686
 spaceChargeFluctuation.C:687
 spaceChargeFluctuation.C:688
 spaceChargeFluctuation.C:689
 spaceChargeFluctuation.C:690
 spaceChargeFluctuation.C:691
 spaceChargeFluctuation.C:692
 spaceChargeFluctuation.C:693
 spaceChargeFluctuation.C:694
 spaceChargeFluctuation.C:695
 spaceChargeFluctuation.C:696
 spaceChargeFluctuation.C:697
 spaceChargeFluctuation.C:698
 spaceChargeFluctuation.C:699
 spaceChargeFluctuation.C:700
 spaceChargeFluctuation.C:701
 spaceChargeFluctuation.C:702
 spaceChargeFluctuation.C:703
 spaceChargeFluctuation.C:704
 spaceChargeFluctuation.C:705
 spaceChargeFluctuation.C:706
 spaceChargeFluctuation.C:707
 spaceChargeFluctuation.C:708
 spaceChargeFluctuation.C:709
 spaceChargeFluctuation.C:710
 spaceChargeFluctuation.C:711
 spaceChargeFluctuation.C:712
 spaceChargeFluctuation.C:713
 spaceChargeFluctuation.C:714
 spaceChargeFluctuation.C:715
 spaceChargeFluctuation.C:716
 spaceChargeFluctuation.C:717
 spaceChargeFluctuation.C:718
 spaceChargeFluctuation.C:719
 spaceChargeFluctuation.C:720
 spaceChargeFluctuation.C:721
 spaceChargeFluctuation.C:722
 spaceChargeFluctuation.C:723
 spaceChargeFluctuation.C:724
 spaceChargeFluctuation.C:725
 spaceChargeFluctuation.C:726
 spaceChargeFluctuation.C:727
 spaceChargeFluctuation.C:728
 spaceChargeFluctuation.C:729
 spaceChargeFluctuation.C:730
 spaceChargeFluctuation.C:731
 spaceChargeFluctuation.C:732
 spaceChargeFluctuation.C:733
 spaceChargeFluctuation.C:734
 spaceChargeFluctuation.C:735
 spaceChargeFluctuation.C:736
 spaceChargeFluctuation.C:737
 spaceChargeFluctuation.C:738
 spaceChargeFluctuation.C:739
 spaceChargeFluctuation.C:740
 spaceChargeFluctuation.C:741
 spaceChargeFluctuation.C:742
 spaceChargeFluctuation.C:743
 spaceChargeFluctuation.C:744
 spaceChargeFluctuation.C:745
 spaceChargeFluctuation.C:746
 spaceChargeFluctuation.C:747
 spaceChargeFluctuation.C:748
 spaceChargeFluctuation.C:749
 spaceChargeFluctuation.C:750
 spaceChargeFluctuation.C:751
 spaceChargeFluctuation.C:752
 spaceChargeFluctuation.C:753
 spaceChargeFluctuation.C:754
 spaceChargeFluctuation.C:755
 spaceChargeFluctuation.C:756
 spaceChargeFluctuation.C:757
 spaceChargeFluctuation.C:758
 spaceChargeFluctuation.C:759
 spaceChargeFluctuation.C:760
 spaceChargeFluctuation.C:761
 spaceChargeFluctuation.C:762
 spaceChargeFluctuation.C:763
 spaceChargeFluctuation.C:764
 spaceChargeFluctuation.C:765
 spaceChargeFluctuation.C:766
 spaceChargeFluctuation.C:767
 spaceChargeFluctuation.C:768
 spaceChargeFluctuation.C:769
 spaceChargeFluctuation.C:770
 spaceChargeFluctuation.C:771
 spaceChargeFluctuation.C:772
 spaceChargeFluctuation.C:773
 spaceChargeFluctuation.C:774
 spaceChargeFluctuation.C:775
 spaceChargeFluctuation.C:776
 spaceChargeFluctuation.C:777
 spaceChargeFluctuation.C:778
 spaceChargeFluctuation.C:779
 spaceChargeFluctuation.C:780
 spaceChargeFluctuation.C:781
 spaceChargeFluctuation.C:782
 spaceChargeFluctuation.C:783
 spaceChargeFluctuation.C:784
 spaceChargeFluctuation.C:785
 spaceChargeFluctuation.C:786
 spaceChargeFluctuation.C:787
 spaceChargeFluctuation.C:788
 spaceChargeFluctuation.C:789
 spaceChargeFluctuation.C:790
 spaceChargeFluctuation.C:791
 spaceChargeFluctuation.C:792
 spaceChargeFluctuation.C:793
 spaceChargeFluctuation.C:794
 spaceChargeFluctuation.C:795
 spaceChargeFluctuation.C:796
 spaceChargeFluctuation.C:797
 spaceChargeFluctuation.C:798
 spaceChargeFluctuation.C:799
 spaceChargeFluctuation.C:800
 spaceChargeFluctuation.C:801
 spaceChargeFluctuation.C:802
 spaceChargeFluctuation.C:803
 spaceChargeFluctuation.C:804
 spaceChargeFluctuation.C:805
 spaceChargeFluctuation.C:806
 spaceChargeFluctuation.C:807
 spaceChargeFluctuation.C:808
 spaceChargeFluctuation.C:809
 spaceChargeFluctuation.C:810
 spaceChargeFluctuation.C:811
 spaceChargeFluctuation.C:812
 spaceChargeFluctuation.C:813
 spaceChargeFluctuation.C:814
 spaceChargeFluctuation.C:815
 spaceChargeFluctuation.C:816
 spaceChargeFluctuation.C:817
 spaceChargeFluctuation.C:818
 spaceChargeFluctuation.C:819
 spaceChargeFluctuation.C:820
 spaceChargeFluctuation.C:821
 spaceChargeFluctuation.C:822
 spaceChargeFluctuation.C:823
 spaceChargeFluctuation.C:824
 spaceChargeFluctuation.C:825
 spaceChargeFluctuation.C:826
 spaceChargeFluctuation.C:827
 spaceChargeFluctuation.C:828
 spaceChargeFluctuation.C:829
 spaceChargeFluctuation.C:830
 spaceChargeFluctuation.C:831
 spaceChargeFluctuation.C:832
 spaceChargeFluctuation.C:833
 spaceChargeFluctuation.C:834
 spaceChargeFluctuation.C:835
 spaceChargeFluctuation.C:836
 spaceChargeFluctuation.C:837
 spaceChargeFluctuation.C:838
 spaceChargeFluctuation.C:839
 spaceChargeFluctuation.C:840
 spaceChargeFluctuation.C:841
 spaceChargeFluctuation.C:842
 spaceChargeFluctuation.C:843
 spaceChargeFluctuation.C:844
 spaceChargeFluctuation.C:845
 spaceChargeFluctuation.C:846
 spaceChargeFluctuation.C:847
 spaceChargeFluctuation.C:848
 spaceChargeFluctuation.C:849
 spaceChargeFluctuation.C:850
 spaceChargeFluctuation.C:851
 spaceChargeFluctuation.C:852
 spaceChargeFluctuation.C:853
 spaceChargeFluctuation.C:854
 spaceChargeFluctuation.C:855
 spaceChargeFluctuation.C:856
 spaceChargeFluctuation.C:857
 spaceChargeFluctuation.C:858
 spaceChargeFluctuation.C:859
 spaceChargeFluctuation.C:860
 spaceChargeFluctuation.C:861
 spaceChargeFluctuation.C:862
 spaceChargeFluctuation.C:863
 spaceChargeFluctuation.C:864
 spaceChargeFluctuation.C:865
 spaceChargeFluctuation.C:866
 spaceChargeFluctuation.C:867
 spaceChargeFluctuation.C:868
 spaceChargeFluctuation.C:869
 spaceChargeFluctuation.C:870
 spaceChargeFluctuation.C:871
 spaceChargeFluctuation.C:872
 spaceChargeFluctuation.C:873
 spaceChargeFluctuation.C:874
 spaceChargeFluctuation.C:875
 spaceChargeFluctuation.C:876
 spaceChargeFluctuation.C:877
 spaceChargeFluctuation.C:878
 spaceChargeFluctuation.C:879
 spaceChargeFluctuation.C:880
 spaceChargeFluctuation.C:881
 spaceChargeFluctuation.C:882
 spaceChargeFluctuation.C:883
 spaceChargeFluctuation.C:884
 spaceChargeFluctuation.C:885
 spaceChargeFluctuation.C:886
 spaceChargeFluctuation.C:887
 spaceChargeFluctuation.C:888
 spaceChargeFluctuation.C:889
 spaceChargeFluctuation.C:890
 spaceChargeFluctuation.C:891
 spaceChargeFluctuation.C:892
 spaceChargeFluctuation.C:893
 spaceChargeFluctuation.C:894
 spaceChargeFluctuation.C:895
 spaceChargeFluctuation.C:896
 spaceChargeFluctuation.C:897
 spaceChargeFluctuation.C:898
 spaceChargeFluctuation.C:899
 spaceChargeFluctuation.C:900
 spaceChargeFluctuation.C:901
 spaceChargeFluctuation.C:902
 spaceChargeFluctuation.C:903
 spaceChargeFluctuation.C:904
 spaceChargeFluctuation.C:905
 spaceChargeFluctuation.C:906
 spaceChargeFluctuation.C:907
 spaceChargeFluctuation.C:908
 spaceChargeFluctuation.C:909
 spaceChargeFluctuation.C:910
 spaceChargeFluctuation.C:911
 spaceChargeFluctuation.C:912
 spaceChargeFluctuation.C:913
 spaceChargeFluctuation.C:914
 spaceChargeFluctuation.C:915
 spaceChargeFluctuation.C:916
 spaceChargeFluctuation.C:917
 spaceChargeFluctuation.C:918
 spaceChargeFluctuation.C:919
 spaceChargeFluctuation.C:920
 spaceChargeFluctuation.C:921
 spaceChargeFluctuation.C:922
 spaceChargeFluctuation.C:923
 spaceChargeFluctuation.C:924
 spaceChargeFluctuation.C:925
 spaceChargeFluctuation.C:926
 spaceChargeFluctuation.C:927
 spaceChargeFluctuation.C:928
 spaceChargeFluctuation.C:929
 spaceChargeFluctuation.C:930
 spaceChargeFluctuation.C:931
 spaceChargeFluctuation.C:932
 spaceChargeFluctuation.C:933
 spaceChargeFluctuation.C:934
 spaceChargeFluctuation.C:935
 spaceChargeFluctuation.C:936
 spaceChargeFluctuation.C:937
 spaceChargeFluctuation.C:938
 spaceChargeFluctuation.C:939
 spaceChargeFluctuation.C:940
 spaceChargeFluctuation.C:941
 spaceChargeFluctuation.C:942
 spaceChargeFluctuation.C:943
 spaceChargeFluctuation.C:944
 spaceChargeFluctuation.C:945
 spaceChargeFluctuation.C:946
 spaceChargeFluctuation.C:947
 spaceChargeFluctuation.C:948
 spaceChargeFluctuation.C:949
 spaceChargeFluctuation.C:950
 spaceChargeFluctuation.C:951
 spaceChargeFluctuation.C:952
 spaceChargeFluctuation.C:953
 spaceChargeFluctuation.C:954
 spaceChargeFluctuation.C:955
 spaceChargeFluctuation.C:956
 spaceChargeFluctuation.C:957
 spaceChargeFluctuation.C:958
 spaceChargeFluctuation.C:959
 spaceChargeFluctuation.C:960
 spaceChargeFluctuation.C:961
 spaceChargeFluctuation.C:962
 spaceChargeFluctuation.C:963
 spaceChargeFluctuation.C:964
 spaceChargeFluctuation.C:965
 spaceChargeFluctuation.C:966
 spaceChargeFluctuation.C:967
 spaceChargeFluctuation.C:968
 spaceChargeFluctuation.C:969
 spaceChargeFluctuation.C:970
 spaceChargeFluctuation.C:971
 spaceChargeFluctuation.C:972
 spaceChargeFluctuation.C:973
 spaceChargeFluctuation.C:974
 spaceChargeFluctuation.C:975
 spaceChargeFluctuation.C:976
 spaceChargeFluctuation.C:977
 spaceChargeFluctuation.C:978
 spaceChargeFluctuation.C:979
 spaceChargeFluctuation.C:980
 spaceChargeFluctuation.C:981
 spaceChargeFluctuation.C:982
 spaceChargeFluctuation.C:983
 spaceChargeFluctuation.C:984
 spaceChargeFluctuation.C:985
 spaceChargeFluctuation.C:986
 spaceChargeFluctuation.C:987
 spaceChargeFluctuation.C:988
 spaceChargeFluctuation.C:989
 spaceChargeFluctuation.C:990
 spaceChargeFluctuation.C:991
 spaceChargeFluctuation.C:992
 spaceChargeFluctuation.C:993
 spaceChargeFluctuation.C:994
 spaceChargeFluctuation.C:995
 spaceChargeFluctuation.C:996
 spaceChargeFluctuation.C:997
 spaceChargeFluctuation.C:998
 spaceChargeFluctuation.C:999
 spaceChargeFluctuation.C:1000
 spaceChargeFluctuation.C:1001
 spaceChargeFluctuation.C:1002
 spaceChargeFluctuation.C:1003
 spaceChargeFluctuation.C:1004
 spaceChargeFluctuation.C:1005
 spaceChargeFluctuation.C:1006
 spaceChargeFluctuation.C:1007
 spaceChargeFluctuation.C:1008
 spaceChargeFluctuation.C:1009
 spaceChargeFluctuation.C:1010
 spaceChargeFluctuation.C:1011
 spaceChargeFluctuation.C:1012
 spaceChargeFluctuation.C:1013
 spaceChargeFluctuation.C:1014
 spaceChargeFluctuation.C:1015
 spaceChargeFluctuation.C:1016
 spaceChargeFluctuation.C:1017
 spaceChargeFluctuation.C:1018
 spaceChargeFluctuation.C:1019
 spaceChargeFluctuation.C:1020
 spaceChargeFluctuation.C:1021
 spaceChargeFluctuation.C:1022
 spaceChargeFluctuation.C:1023
 spaceChargeFluctuation.C:1024
 spaceChargeFluctuation.C:1025
 spaceChargeFluctuation.C:1026
 spaceChargeFluctuation.C:1027
 spaceChargeFluctuation.C:1028
 spaceChargeFluctuation.C:1029
 spaceChargeFluctuation.C:1030
 spaceChargeFluctuation.C:1031
 spaceChargeFluctuation.C:1032
 spaceChargeFluctuation.C:1033
 spaceChargeFluctuation.C:1034
 spaceChargeFluctuation.C:1035
 spaceChargeFluctuation.C:1036
 spaceChargeFluctuation.C:1037
 spaceChargeFluctuation.C:1038
 spaceChargeFluctuation.C:1039
 spaceChargeFluctuation.C:1040
 spaceChargeFluctuation.C:1041
 spaceChargeFluctuation.C:1042
 spaceChargeFluctuation.C:1043
 spaceChargeFluctuation.C:1044
 spaceChargeFluctuation.C:1045
 spaceChargeFluctuation.C:1046
 spaceChargeFluctuation.C:1047
 spaceChargeFluctuation.C:1048
 spaceChargeFluctuation.C:1049
 spaceChargeFluctuation.C:1050
 spaceChargeFluctuation.C:1051
 spaceChargeFluctuation.C:1052
 spaceChargeFluctuation.C:1053
 spaceChargeFluctuation.C:1054
 spaceChargeFluctuation.C:1055
 spaceChargeFluctuation.C:1056
 spaceChargeFluctuation.C:1057
 spaceChargeFluctuation.C:1058
 spaceChargeFluctuation.C:1059
 spaceChargeFluctuation.C:1060
 spaceChargeFluctuation.C:1061
 spaceChargeFluctuation.C:1062
 spaceChargeFluctuation.C:1063
 spaceChargeFluctuation.C:1064
 spaceChargeFluctuation.C:1065
 spaceChargeFluctuation.C:1066
 spaceChargeFluctuation.C:1067
 spaceChargeFluctuation.C:1068
 spaceChargeFluctuation.C:1069
 spaceChargeFluctuation.C:1070
 spaceChargeFluctuation.C:1071
 spaceChargeFluctuation.C:1072
 spaceChargeFluctuation.C:1073
 spaceChargeFluctuation.C:1074
 spaceChargeFluctuation.C:1075
 spaceChargeFluctuation.C:1076
 spaceChargeFluctuation.C:1077
 spaceChargeFluctuation.C:1078
 spaceChargeFluctuation.C:1079
 spaceChargeFluctuation.C:1080
 spaceChargeFluctuation.C:1081
 spaceChargeFluctuation.C:1082
 spaceChargeFluctuation.C:1083
 spaceChargeFluctuation.C:1084
 spaceChargeFluctuation.C:1085
 spaceChargeFluctuation.C:1086
 spaceChargeFluctuation.C:1087
 spaceChargeFluctuation.C:1088
 spaceChargeFluctuation.C:1089
 spaceChargeFluctuation.C:1090
 spaceChargeFluctuation.C:1091
 spaceChargeFluctuation.C:1092
 spaceChargeFluctuation.C:1093
 spaceChargeFluctuation.C:1094
 spaceChargeFluctuation.C:1095
 spaceChargeFluctuation.C:1096
 spaceChargeFluctuation.C:1097
 spaceChargeFluctuation.C:1098
 spaceChargeFluctuation.C:1099
 spaceChargeFluctuation.C:1100
 spaceChargeFluctuation.C:1101
 spaceChargeFluctuation.C:1102
 spaceChargeFluctuation.C:1103
 spaceChargeFluctuation.C:1104
 spaceChargeFluctuation.C:1105
 spaceChargeFluctuation.C:1106
 spaceChargeFluctuation.C:1107
 spaceChargeFluctuation.C:1108
 spaceChargeFluctuation.C:1109
 spaceChargeFluctuation.C:1110
 spaceChargeFluctuation.C:1111
 spaceChargeFluctuation.C:1112
 spaceChargeFluctuation.C:1113
 spaceChargeFluctuation.C:1114
 spaceChargeFluctuation.C:1115
 spaceChargeFluctuation.C:1116
 spaceChargeFluctuation.C:1117
 spaceChargeFluctuation.C:1118
 spaceChargeFluctuation.C:1119
 spaceChargeFluctuation.C:1120
 spaceChargeFluctuation.C:1121
 spaceChargeFluctuation.C:1122
 spaceChargeFluctuation.C:1123
 spaceChargeFluctuation.C:1124
 spaceChargeFluctuation.C:1125
 spaceChargeFluctuation.C:1126
 spaceChargeFluctuation.C:1127
 spaceChargeFluctuation.C:1128
 spaceChargeFluctuation.C:1129
 spaceChargeFluctuation.C:1130
 spaceChargeFluctuation.C:1131
 spaceChargeFluctuation.C:1132
 spaceChargeFluctuation.C:1133
 spaceChargeFluctuation.C:1134
 spaceChargeFluctuation.C:1135
 spaceChargeFluctuation.C:1136
 spaceChargeFluctuation.C:1137
 spaceChargeFluctuation.C:1138
 spaceChargeFluctuation.C:1139
 spaceChargeFluctuation.C:1140
 spaceChargeFluctuation.C:1141
 spaceChargeFluctuation.C:1142
 spaceChargeFluctuation.C:1143
 spaceChargeFluctuation.C:1144
 spaceChargeFluctuation.C:1145
 spaceChargeFluctuation.C:1146
 spaceChargeFluctuation.C:1147
 spaceChargeFluctuation.C:1148
 spaceChargeFluctuation.C:1149
 spaceChargeFluctuation.C:1150
 spaceChargeFluctuation.C:1151
 spaceChargeFluctuation.C:1152
 spaceChargeFluctuation.C:1153
 spaceChargeFluctuation.C:1154
 spaceChargeFluctuation.C:1155
 spaceChargeFluctuation.C:1156
 spaceChargeFluctuation.C:1157
 spaceChargeFluctuation.C:1158
 spaceChargeFluctuation.C:1159
 spaceChargeFluctuation.C:1160
 spaceChargeFluctuation.C:1161
 spaceChargeFluctuation.C:1162
 spaceChargeFluctuation.C:1163
 spaceChargeFluctuation.C:1164
 spaceChargeFluctuation.C:1165
 spaceChargeFluctuation.C:1166
 spaceChargeFluctuation.C:1167
 spaceChargeFluctuation.C:1168
 spaceChargeFluctuation.C:1169
 spaceChargeFluctuation.C:1170
 spaceChargeFluctuation.C:1171
 spaceChargeFluctuation.C:1172
 spaceChargeFluctuation.C:1173
 spaceChargeFluctuation.C:1174
 spaceChargeFluctuation.C:1175
 spaceChargeFluctuation.C:1176
 spaceChargeFluctuation.C:1177
 spaceChargeFluctuation.C:1178
 spaceChargeFluctuation.C:1179
 spaceChargeFluctuation.C:1180
 spaceChargeFluctuation.C:1181
 spaceChargeFluctuation.C:1182
 spaceChargeFluctuation.C:1183
 spaceChargeFluctuation.C:1184
 spaceChargeFluctuation.C:1185
 spaceChargeFluctuation.C:1186
 spaceChargeFluctuation.C:1187
 spaceChargeFluctuation.C:1188
 spaceChargeFluctuation.C:1189
 spaceChargeFluctuation.C:1190
 spaceChargeFluctuation.C:1191
 spaceChargeFluctuation.C:1192
 spaceChargeFluctuation.C:1193
 spaceChargeFluctuation.C:1194
 spaceChargeFluctuation.C:1195
 spaceChargeFluctuation.C:1196
 spaceChargeFluctuation.C:1197
 spaceChargeFluctuation.C:1198
 spaceChargeFluctuation.C:1199
 spaceChargeFluctuation.C:1200
 spaceChargeFluctuation.C:1201
 spaceChargeFluctuation.C:1202
 spaceChargeFluctuation.C:1203
 spaceChargeFluctuation.C:1204
 spaceChargeFluctuation.C:1205
 spaceChargeFluctuation.C:1206
 spaceChargeFluctuation.C:1207
 spaceChargeFluctuation.C:1208
 spaceChargeFluctuation.C:1209
 spaceChargeFluctuation.C:1210
 spaceChargeFluctuation.C:1211
 spaceChargeFluctuation.C:1212
 spaceChargeFluctuation.C:1213
 spaceChargeFluctuation.C:1214
 spaceChargeFluctuation.C:1215
 spaceChargeFluctuation.C:1216
 spaceChargeFluctuation.C:1217
 spaceChargeFluctuation.C:1218
 spaceChargeFluctuation.C:1219
 spaceChargeFluctuation.C:1220
 spaceChargeFluctuation.C:1221
 spaceChargeFluctuation.C:1222
 spaceChargeFluctuation.C:1223
 spaceChargeFluctuation.C:1224
 spaceChargeFluctuation.C:1225
 spaceChargeFluctuation.C:1226
 spaceChargeFluctuation.C:1227
 spaceChargeFluctuation.C:1228
 spaceChargeFluctuation.C:1229
 spaceChargeFluctuation.C:1230
 spaceChargeFluctuation.C:1231
 spaceChargeFluctuation.C:1232
 spaceChargeFluctuation.C:1233
 spaceChargeFluctuation.C:1234
 spaceChargeFluctuation.C:1235
 spaceChargeFluctuation.C:1236
 spaceChargeFluctuation.C:1237
 spaceChargeFluctuation.C:1238
 spaceChargeFluctuation.C:1239
 spaceChargeFluctuation.C:1240
 spaceChargeFluctuation.C:1241
 spaceChargeFluctuation.C:1242
 spaceChargeFluctuation.C:1243
 spaceChargeFluctuation.C:1244
 spaceChargeFluctuation.C:1245
 spaceChargeFluctuation.C:1246
 spaceChargeFluctuation.C:1247
 spaceChargeFluctuation.C:1248
 spaceChargeFluctuation.C:1249
 spaceChargeFluctuation.C:1250
 spaceChargeFluctuation.C:1251
 spaceChargeFluctuation.C:1252
 spaceChargeFluctuation.C:1253
 spaceChargeFluctuation.C:1254
 spaceChargeFluctuation.C:1255
 spaceChargeFluctuation.C:1256
 spaceChargeFluctuation.C:1257
 spaceChargeFluctuation.C:1258
 spaceChargeFluctuation.C:1259
 spaceChargeFluctuation.C:1260
 spaceChargeFluctuation.C:1261
 spaceChargeFluctuation.C:1262
 spaceChargeFluctuation.C:1263
 spaceChargeFluctuation.C:1264
 spaceChargeFluctuation.C:1265
 spaceChargeFluctuation.C:1266
 spaceChargeFluctuation.C:1267
 spaceChargeFluctuation.C:1268
 spaceChargeFluctuation.C:1269
 spaceChargeFluctuation.C:1270
 spaceChargeFluctuation.C:1271
 spaceChargeFluctuation.C:1272
 spaceChargeFluctuation.C:1273
 spaceChargeFluctuation.C:1274
 spaceChargeFluctuation.C:1275
 spaceChargeFluctuation.C:1276
 spaceChargeFluctuation.C:1277
 spaceChargeFluctuation.C:1278
 spaceChargeFluctuation.C:1279
 spaceChargeFluctuation.C:1280
 spaceChargeFluctuation.C:1281
 spaceChargeFluctuation.C:1282
 spaceChargeFluctuation.C:1283
 spaceChargeFluctuation.C:1284
 spaceChargeFluctuation.C:1285
 spaceChargeFluctuation.C:1286
 spaceChargeFluctuation.C:1287
 spaceChargeFluctuation.C:1288
 spaceChargeFluctuation.C:1289
 spaceChargeFluctuation.C:1290
 spaceChargeFluctuation.C:1291
 spaceChargeFluctuation.C:1292
 spaceChargeFluctuation.C:1293
 spaceChargeFluctuation.C:1294
 spaceChargeFluctuation.C:1295
 spaceChargeFluctuation.C:1296
 spaceChargeFluctuation.C:1297
 spaceChargeFluctuation.C:1298
 spaceChargeFluctuation.C:1299
 spaceChargeFluctuation.C:1300
 spaceChargeFluctuation.C:1301
 spaceChargeFluctuation.C:1302
 spaceChargeFluctuation.C:1303
 spaceChargeFluctuation.C:1304
 spaceChargeFluctuation.C:1305
 spaceChargeFluctuation.C:1306
 spaceChargeFluctuation.C:1307
 spaceChargeFluctuation.C:1308
 spaceChargeFluctuation.C:1309
 spaceChargeFluctuation.C:1310
 spaceChargeFluctuation.C:1311
 spaceChargeFluctuation.C:1312
 spaceChargeFluctuation.C:1313
 spaceChargeFluctuation.C:1314
 spaceChargeFluctuation.C:1315
 spaceChargeFluctuation.C:1316
 spaceChargeFluctuation.C:1317
 spaceChargeFluctuation.C:1318
 spaceChargeFluctuation.C:1319
 spaceChargeFluctuation.C:1320
 spaceChargeFluctuation.C:1321
 spaceChargeFluctuation.C:1322
 spaceChargeFluctuation.C:1323
 spaceChargeFluctuation.C:1324
 spaceChargeFluctuation.C:1325
 spaceChargeFluctuation.C:1326
 spaceChargeFluctuation.C:1327
 spaceChargeFluctuation.C:1328
 spaceChargeFluctuation.C:1329
 spaceChargeFluctuation.C:1330
 spaceChargeFluctuation.C:1331
 spaceChargeFluctuation.C:1332
 spaceChargeFluctuation.C:1333
 spaceChargeFluctuation.C:1334
 spaceChargeFluctuation.C:1335
 spaceChargeFluctuation.C:1336
 spaceChargeFluctuation.C:1337
 spaceChargeFluctuation.C:1338
 spaceChargeFluctuation.C:1339
 spaceChargeFluctuation.C:1340
 spaceChargeFluctuation.C:1341
 spaceChargeFluctuation.C:1342
 spaceChargeFluctuation.C:1343
 spaceChargeFluctuation.C:1344
 spaceChargeFluctuation.C:1345
 spaceChargeFluctuation.C:1346
 spaceChargeFluctuation.C:1347
 spaceChargeFluctuation.C:1348
 spaceChargeFluctuation.C:1349
 spaceChargeFluctuation.C:1350
 spaceChargeFluctuation.C:1351
 spaceChargeFluctuation.C:1352
 spaceChargeFluctuation.C:1353
 spaceChargeFluctuation.C:1354
 spaceChargeFluctuation.C:1355
 spaceChargeFluctuation.C:1356
 spaceChargeFluctuation.C:1357
 spaceChargeFluctuation.C:1358
 spaceChargeFluctuation.C:1359
 spaceChargeFluctuation.C:1360
 spaceChargeFluctuation.C:1361
 spaceChargeFluctuation.C:1362
 spaceChargeFluctuation.C:1363
 spaceChargeFluctuation.C:1364
 spaceChargeFluctuation.C:1365
 spaceChargeFluctuation.C:1366
 spaceChargeFluctuation.C:1367
 spaceChargeFluctuation.C:1368
 spaceChargeFluctuation.C:1369
 spaceChargeFluctuation.C:1370
 spaceChargeFluctuation.C:1371
 spaceChargeFluctuation.C:1372
 spaceChargeFluctuation.C:1373
 spaceChargeFluctuation.C:1374
 spaceChargeFluctuation.C:1375
 spaceChargeFluctuation.C:1376
 spaceChargeFluctuation.C:1377
 spaceChargeFluctuation.C:1378
 spaceChargeFluctuation.C:1379
 spaceChargeFluctuation.C:1380
 spaceChargeFluctuation.C:1381
 spaceChargeFluctuation.C:1382
 spaceChargeFluctuation.C:1383
 spaceChargeFluctuation.C:1384
 spaceChargeFluctuation.C:1385
 spaceChargeFluctuation.C:1386
 spaceChargeFluctuation.C:1387
 spaceChargeFluctuation.C:1388
 spaceChargeFluctuation.C:1389
 spaceChargeFluctuation.C:1390
 spaceChargeFluctuation.C:1391
 spaceChargeFluctuation.C:1392
 spaceChargeFluctuation.C:1393
 spaceChargeFluctuation.C:1394
 spaceChargeFluctuation.C:1395
 spaceChargeFluctuation.C:1396
 spaceChargeFluctuation.C:1397
 spaceChargeFluctuation.C:1398
 spaceChargeFluctuation.C:1399
 spaceChargeFluctuation.C:1400
 spaceChargeFluctuation.C:1401
 spaceChargeFluctuation.C:1402
 spaceChargeFluctuation.C:1403
 spaceChargeFluctuation.C:1404
 spaceChargeFluctuation.C:1405
 spaceChargeFluctuation.C:1406
 spaceChargeFluctuation.C:1407
 spaceChargeFluctuation.C:1408
 spaceChargeFluctuation.C:1409
 spaceChargeFluctuation.C:1410
 spaceChargeFluctuation.C:1411
 spaceChargeFluctuation.C:1412
 spaceChargeFluctuation.C:1413
 spaceChargeFluctuation.C:1414
 spaceChargeFluctuation.C:1415
 spaceChargeFluctuation.C:1416
 spaceChargeFluctuation.C:1417
 spaceChargeFluctuation.C:1418
 spaceChargeFluctuation.C:1419
 spaceChargeFluctuation.C:1420
 spaceChargeFluctuation.C:1421
 spaceChargeFluctuation.C:1422
 spaceChargeFluctuation.C:1423
 spaceChargeFluctuation.C:1424
 spaceChargeFluctuation.C:1425
 spaceChargeFluctuation.C:1426
 spaceChargeFluctuation.C:1427
 spaceChargeFluctuation.C:1428
 spaceChargeFluctuation.C:1429
 spaceChargeFluctuation.C:1430
 spaceChargeFluctuation.C:1431
 spaceChargeFluctuation.C:1432
 spaceChargeFluctuation.C:1433
 spaceChargeFluctuation.C:1434
 spaceChargeFluctuation.C:1435
 spaceChargeFluctuation.C:1436
 spaceChargeFluctuation.C:1437
 spaceChargeFluctuation.C:1438
 spaceChargeFluctuation.C:1439
 spaceChargeFluctuation.C:1440
 spaceChargeFluctuation.C:1441
 spaceChargeFluctuation.C:1442
 spaceChargeFluctuation.C:1443
 spaceChargeFluctuation.C:1444
 spaceChargeFluctuation.C:1445
 spaceChargeFluctuation.C:1446
 spaceChargeFluctuation.C:1447
 spaceChargeFluctuation.C:1448
 spaceChargeFluctuation.C:1449
 spaceChargeFluctuation.C:1450
 spaceChargeFluctuation.C:1451
 spaceChargeFluctuation.C:1452
 spaceChargeFluctuation.C:1453
 spaceChargeFluctuation.C:1454
 spaceChargeFluctuation.C:1455
 spaceChargeFluctuation.C:1456
 spaceChargeFluctuation.C:1457
 spaceChargeFluctuation.C:1458
 spaceChargeFluctuation.C:1459
 spaceChargeFluctuation.C:1460
 spaceChargeFluctuation.C:1461
 spaceChargeFluctuation.C:1462
 spaceChargeFluctuation.C:1463
 spaceChargeFluctuation.C:1464
 spaceChargeFluctuation.C:1465
 spaceChargeFluctuation.C:1466
 spaceChargeFluctuation.C:1467
 spaceChargeFluctuation.C:1468
 spaceChargeFluctuation.C:1469
 spaceChargeFluctuation.C:1470
 spaceChargeFluctuation.C:1471
 spaceChargeFluctuation.C:1472
 spaceChargeFluctuation.C:1473
 spaceChargeFluctuation.C:1474
 spaceChargeFluctuation.C:1475
 spaceChargeFluctuation.C:1476
 spaceChargeFluctuation.C:1477
 spaceChargeFluctuation.C:1478
 spaceChargeFluctuation.C:1479
 spaceChargeFluctuation.C:1480
 spaceChargeFluctuation.C:1481
 spaceChargeFluctuation.C:1482
 spaceChargeFluctuation.C:1483
 spaceChargeFluctuation.C:1484
 spaceChargeFluctuation.C:1485
 spaceChargeFluctuation.C:1486
 spaceChargeFluctuation.C:1487
 spaceChargeFluctuation.C:1488
 spaceChargeFluctuation.C:1489
 spaceChargeFluctuation.C:1490
 spaceChargeFluctuation.C:1491
 spaceChargeFluctuation.C:1492
 spaceChargeFluctuation.C:1493
 spaceChargeFluctuation.C:1494
 spaceChargeFluctuation.C:1495
 spaceChargeFluctuation.C:1496
 spaceChargeFluctuation.C:1497
 spaceChargeFluctuation.C:1498
 spaceChargeFluctuation.C:1499
 spaceChargeFluctuation.C:1500
 spaceChargeFluctuation.C:1501
 spaceChargeFluctuation.C:1502
 spaceChargeFluctuation.C:1503
 spaceChargeFluctuation.C:1504
 spaceChargeFluctuation.C:1505
 spaceChargeFluctuation.C:1506
 spaceChargeFluctuation.C:1507
 spaceChargeFluctuation.C:1508
 spaceChargeFluctuation.C:1509
 spaceChargeFluctuation.C:1510
 spaceChargeFluctuation.C:1511
 spaceChargeFluctuation.C:1512
 spaceChargeFluctuation.C:1513
 spaceChargeFluctuation.C:1514
 spaceChargeFluctuation.C:1515
 spaceChargeFluctuation.C:1516
 spaceChargeFluctuation.C:1517
 spaceChargeFluctuation.C:1518
 spaceChargeFluctuation.C:1519
 spaceChargeFluctuation.C:1520
 spaceChargeFluctuation.C:1521
 spaceChargeFluctuation.C:1522
 spaceChargeFluctuation.C:1523
 spaceChargeFluctuation.C:1524
 spaceChargeFluctuation.C:1525
 spaceChargeFluctuation.C:1526
 spaceChargeFluctuation.C:1527
 spaceChargeFluctuation.C:1528
 spaceChargeFluctuation.C:1529
 spaceChargeFluctuation.C:1530
 spaceChargeFluctuation.C:1531
 spaceChargeFluctuation.C:1532
 spaceChargeFluctuation.C:1533
 spaceChargeFluctuation.C:1534
 spaceChargeFluctuation.C:1535
 spaceChargeFluctuation.C:1536
 spaceChargeFluctuation.C:1537
 spaceChargeFluctuation.C:1538
 spaceChargeFluctuation.C:1539
 spaceChargeFluctuation.C:1540
 spaceChargeFluctuation.C:1541
 spaceChargeFluctuation.C:1542
 spaceChargeFluctuation.C:1543
 spaceChargeFluctuation.C:1544
 spaceChargeFluctuation.C:1545
 spaceChargeFluctuation.C:1546
 spaceChargeFluctuation.C:1547
 spaceChargeFluctuation.C:1548
 spaceChargeFluctuation.C:1549
 spaceChargeFluctuation.C:1550
 spaceChargeFluctuation.C:1551
 spaceChargeFluctuation.C:1552
 spaceChargeFluctuation.C:1553
 spaceChargeFluctuation.C:1554
 spaceChargeFluctuation.C:1555
 spaceChargeFluctuation.C:1556
 spaceChargeFluctuation.C:1557
 spaceChargeFluctuation.C:1558
 spaceChargeFluctuation.C:1559
 spaceChargeFluctuation.C:1560
 spaceChargeFluctuation.C:1561
 spaceChargeFluctuation.C:1562
 spaceChargeFluctuation.C:1563
 spaceChargeFluctuation.C:1564
 spaceChargeFluctuation.C:1565
 spaceChargeFluctuation.C:1566
 spaceChargeFluctuation.C:1567
 spaceChargeFluctuation.C:1568
 spaceChargeFluctuation.C:1569
 spaceChargeFluctuation.C:1570
 spaceChargeFluctuation.C:1571
 spaceChargeFluctuation.C:1572
 spaceChargeFluctuation.C:1573
 spaceChargeFluctuation.C:1574
 spaceChargeFluctuation.C:1575
 spaceChargeFluctuation.C:1576
 spaceChargeFluctuation.C:1577
 spaceChargeFluctuation.C:1578
 spaceChargeFluctuation.C:1579
 spaceChargeFluctuation.C:1580
 spaceChargeFluctuation.C:1581
 spaceChargeFluctuation.C:1582
 spaceChargeFluctuation.C:1583
 spaceChargeFluctuation.C:1584
 spaceChargeFluctuation.C:1585
 spaceChargeFluctuation.C:1586
 spaceChargeFluctuation.C:1587
 spaceChargeFluctuation.C:1588
 spaceChargeFluctuation.C:1589
 spaceChargeFluctuation.C:1590
 spaceChargeFluctuation.C:1591
 spaceChargeFluctuation.C:1592
 spaceChargeFluctuation.C:1593
 spaceChargeFluctuation.C:1594
 spaceChargeFluctuation.C:1595
 spaceChargeFluctuation.C:1596
 spaceChargeFluctuation.C:1597
 spaceChargeFluctuation.C:1598
 spaceChargeFluctuation.C:1599
 spaceChargeFluctuation.C:1600
 spaceChargeFluctuation.C:1601
 spaceChargeFluctuation.C:1602
 spaceChargeFluctuation.C:1603
 spaceChargeFluctuation.C:1604
 spaceChargeFluctuation.C:1605
 spaceChargeFluctuation.C:1606
 spaceChargeFluctuation.C:1607
 spaceChargeFluctuation.C:1608
 spaceChargeFluctuation.C:1609
 spaceChargeFluctuation.C:1610
 spaceChargeFluctuation.C:1611
 spaceChargeFluctuation.C:1612
 spaceChargeFluctuation.C:1613
 spaceChargeFluctuation.C:1614
 spaceChargeFluctuation.C:1615
 spaceChargeFluctuation.C:1616
 spaceChargeFluctuation.C:1617
 spaceChargeFluctuation.C:1618
 spaceChargeFluctuation.C:1619
 spaceChargeFluctuation.C:1620
 spaceChargeFluctuation.C:1621
 spaceChargeFluctuation.C:1622
 spaceChargeFluctuation.C:1623
 spaceChargeFluctuation.C:1624
 spaceChargeFluctuation.C:1625
 spaceChargeFluctuation.C:1626
 spaceChargeFluctuation.C:1627
 spaceChargeFluctuation.C:1628
 spaceChargeFluctuation.C:1629
 spaceChargeFluctuation.C:1630
 spaceChargeFluctuation.C:1631
 spaceChargeFluctuation.C:1632
 spaceChargeFluctuation.C:1633
 spaceChargeFluctuation.C:1634
 spaceChargeFluctuation.C:1635
 spaceChargeFluctuation.C:1636
 spaceChargeFluctuation.C:1637
 spaceChargeFluctuation.C:1638
 spaceChargeFluctuation.C:1639
 spaceChargeFluctuation.C:1640
 spaceChargeFluctuation.C:1641
 spaceChargeFluctuation.C:1642
 spaceChargeFluctuation.C:1643
 spaceChargeFluctuation.C:1644
 spaceChargeFluctuation.C:1645
 spaceChargeFluctuation.C:1646
 spaceChargeFluctuation.C:1647
 spaceChargeFluctuation.C:1648
 spaceChargeFluctuation.C:1649
 spaceChargeFluctuation.C:1650
 spaceChargeFluctuation.C:1651
 spaceChargeFluctuation.C:1652
 spaceChargeFluctuation.C:1653
 spaceChargeFluctuation.C:1654
 spaceChargeFluctuation.C:1655
 spaceChargeFluctuation.C:1656
 spaceChargeFluctuation.C:1657
 spaceChargeFluctuation.C:1658
 spaceChargeFluctuation.C:1659
 spaceChargeFluctuation.C:1660
 spaceChargeFluctuation.C:1661
 spaceChargeFluctuation.C:1662
 spaceChargeFluctuation.C:1663
 spaceChargeFluctuation.C:1664
 spaceChargeFluctuation.C:1665
 spaceChargeFluctuation.C:1666
 spaceChargeFluctuation.C:1667
 spaceChargeFluctuation.C:1668
 spaceChargeFluctuation.C:1669
 spaceChargeFluctuation.C:1670
 spaceChargeFluctuation.C:1671
 spaceChargeFluctuation.C:1672
 spaceChargeFluctuation.C:1673
 spaceChargeFluctuation.C:1674
 spaceChargeFluctuation.C:1675
 spaceChargeFluctuation.C:1676
 spaceChargeFluctuation.C:1677
 spaceChargeFluctuation.C:1678
 spaceChargeFluctuation.C:1679
 spaceChargeFluctuation.C:1680
 spaceChargeFluctuation.C:1681
 spaceChargeFluctuation.C:1682
 spaceChargeFluctuation.C:1683
 spaceChargeFluctuation.C:1684
 spaceChargeFluctuation.C:1685
 spaceChargeFluctuation.C:1686
 spaceChargeFluctuation.C:1687
 spaceChargeFluctuation.C:1688
 spaceChargeFluctuation.C:1689
 spaceChargeFluctuation.C:1690
 spaceChargeFluctuation.C:1691
 spaceChargeFluctuation.C:1692
 spaceChargeFluctuation.C:1693
 spaceChargeFluctuation.C:1694
 spaceChargeFluctuation.C:1695
 spaceChargeFluctuation.C:1696
 spaceChargeFluctuation.C:1697
 spaceChargeFluctuation.C:1698
 spaceChargeFluctuation.C:1699
 spaceChargeFluctuation.C:1700
 spaceChargeFluctuation.C:1701
 spaceChargeFluctuation.C:1702
 spaceChargeFluctuation.C:1703
 spaceChargeFluctuation.C:1704
 spaceChargeFluctuation.C:1705
 spaceChargeFluctuation.C:1706
 spaceChargeFluctuation.C:1707
 spaceChargeFluctuation.C:1708
 spaceChargeFluctuation.C:1709
 spaceChargeFluctuation.C:1710
 spaceChargeFluctuation.C:1711
 spaceChargeFluctuation.C:1712
 spaceChargeFluctuation.C:1713
 spaceChargeFluctuation.C:1714
 spaceChargeFluctuation.C:1715
 spaceChargeFluctuation.C:1716
 spaceChargeFluctuation.C:1717
 spaceChargeFluctuation.C:1718
 spaceChargeFluctuation.C:1719
 spaceChargeFluctuation.C:1720
 spaceChargeFluctuation.C:1721
 spaceChargeFluctuation.C:1722
 spaceChargeFluctuation.C:1723
 spaceChargeFluctuation.C:1724
 spaceChargeFluctuation.C:1725
 spaceChargeFluctuation.C:1726
 spaceChargeFluctuation.C:1727
 spaceChargeFluctuation.C:1728
 spaceChargeFluctuation.C:1729
 spaceChargeFluctuation.C:1730
 spaceChargeFluctuation.C:1731
 spaceChargeFluctuation.C:1732
 spaceChargeFluctuation.C:1733
 spaceChargeFluctuation.C:1734
 spaceChargeFluctuation.C:1735
 spaceChargeFluctuation.C:1736
 spaceChargeFluctuation.C:1737
 spaceChargeFluctuation.C:1738
 spaceChargeFluctuation.C:1739
 spaceChargeFluctuation.C:1740
 spaceChargeFluctuation.C:1741
 spaceChargeFluctuation.C:1742
 spaceChargeFluctuation.C:1743
 spaceChargeFluctuation.C:1744
 spaceChargeFluctuation.C:1745
 spaceChargeFluctuation.C:1746
 spaceChargeFluctuation.C:1747
 spaceChargeFluctuation.C:1748
 spaceChargeFluctuation.C:1749
 spaceChargeFluctuation.C:1750
 spaceChargeFluctuation.C:1751
 spaceChargeFluctuation.C:1752
 spaceChargeFluctuation.C:1753
 spaceChargeFluctuation.C:1754
 spaceChargeFluctuation.C:1755
 spaceChargeFluctuation.C:1756
 spaceChargeFluctuation.C:1757
 spaceChargeFluctuation.C:1758
 spaceChargeFluctuation.C:1759
 spaceChargeFluctuation.C:1760
 spaceChargeFluctuation.C:1761
 spaceChargeFluctuation.C:1762
 spaceChargeFluctuation.C:1763
 spaceChargeFluctuation.C:1764
 spaceChargeFluctuation.C:1765
 spaceChargeFluctuation.C:1766
 spaceChargeFluctuation.C:1767
 spaceChargeFluctuation.C:1768
 spaceChargeFluctuation.C:1769
 spaceChargeFluctuation.C:1770
 spaceChargeFluctuation.C:1771
 spaceChargeFluctuation.C:1772
 spaceChargeFluctuation.C:1773
 spaceChargeFluctuation.C:1774
 spaceChargeFluctuation.C:1775
 spaceChargeFluctuation.C:1776
 spaceChargeFluctuation.C:1777
 spaceChargeFluctuation.C:1778
 spaceChargeFluctuation.C:1779
 spaceChargeFluctuation.C:1780
 spaceChargeFluctuation.C:1781
 spaceChargeFluctuation.C:1782
 spaceChargeFluctuation.C:1783
 spaceChargeFluctuation.C:1784
 spaceChargeFluctuation.C:1785
 spaceChargeFluctuation.C:1786
 spaceChargeFluctuation.C:1787
 spaceChargeFluctuation.C:1788
 spaceChargeFluctuation.C:1789
 spaceChargeFluctuation.C:1790
 spaceChargeFluctuation.C:1791
 spaceChargeFluctuation.C:1792
 spaceChargeFluctuation.C:1793
 spaceChargeFluctuation.C:1794
 spaceChargeFluctuation.C:1795
 spaceChargeFluctuation.C:1796
 spaceChargeFluctuation.C:1797
 spaceChargeFluctuation.C:1798
 spaceChargeFluctuation.C:1799
 spaceChargeFluctuation.C:1800
 spaceChargeFluctuation.C:1801
 spaceChargeFluctuation.C:1802
 spaceChargeFluctuation.C:1803
 spaceChargeFluctuation.C:1804
 spaceChargeFluctuation.C:1805
 spaceChargeFluctuation.C:1806
 spaceChargeFluctuation.C:1807
 spaceChargeFluctuation.C:1808
 spaceChargeFluctuation.C:1809
 spaceChargeFluctuation.C:1810
 spaceChargeFluctuation.C:1811
 spaceChargeFluctuation.C:1812
 spaceChargeFluctuation.C:1813
 spaceChargeFluctuation.C:1814
 spaceChargeFluctuation.C:1815
 spaceChargeFluctuation.C:1816
 spaceChargeFluctuation.C:1817
 spaceChargeFluctuation.C:1818
 spaceChargeFluctuation.C:1819
 spaceChargeFluctuation.C:1820
 spaceChargeFluctuation.C:1821
 spaceChargeFluctuation.C:1822
 spaceChargeFluctuation.C:1823
 spaceChargeFluctuation.C:1824
 spaceChargeFluctuation.C:1825
 spaceChargeFluctuation.C:1826
 spaceChargeFluctuation.C:1827
 spaceChargeFluctuation.C:1828
 spaceChargeFluctuation.C:1829
 spaceChargeFluctuation.C:1830
 spaceChargeFluctuation.C:1831
 spaceChargeFluctuation.C:1832
 spaceChargeFluctuation.C:1833
 spaceChargeFluctuation.C:1834
 spaceChargeFluctuation.C:1835
 spaceChargeFluctuation.C:1836
 spaceChargeFluctuation.C:1837
 spaceChargeFluctuation.C:1838
 spaceChargeFluctuation.C:1839
 spaceChargeFluctuation.C:1840
 spaceChargeFluctuation.C:1841
 spaceChargeFluctuation.C:1842
 spaceChargeFluctuation.C:1843
 spaceChargeFluctuation.C:1844
 spaceChargeFluctuation.C:1845
 spaceChargeFluctuation.C:1846
 spaceChargeFluctuation.C:1847
 spaceChargeFluctuation.C:1848
 spaceChargeFluctuation.C:1849
 spaceChargeFluctuation.C:1850
 spaceChargeFluctuation.C:1851
 spaceChargeFluctuation.C:1852
 spaceChargeFluctuation.C:1853
 spaceChargeFluctuation.C:1854
 spaceChargeFluctuation.C:1855
 spaceChargeFluctuation.C:1856
 spaceChargeFluctuation.C:1857
 spaceChargeFluctuation.C:1858
 spaceChargeFluctuation.C:1859
 spaceChargeFluctuation.C:1860
 spaceChargeFluctuation.C:1861
 spaceChargeFluctuation.C:1862
 spaceChargeFluctuation.C:1863
 spaceChargeFluctuation.C:1864
 spaceChargeFluctuation.C:1865
 spaceChargeFluctuation.C:1866
 spaceChargeFluctuation.C:1867
 spaceChargeFluctuation.C:1868
 spaceChargeFluctuation.C:1869
 spaceChargeFluctuation.C:1870
 spaceChargeFluctuation.C:1871
 spaceChargeFluctuation.C:1872
 spaceChargeFluctuation.C:1873
 spaceChargeFluctuation.C:1874
 spaceChargeFluctuation.C:1875
 spaceChargeFluctuation.C:1876
 spaceChargeFluctuation.C:1877
 spaceChargeFluctuation.C:1878
 spaceChargeFluctuation.C:1879
 spaceChargeFluctuation.C:1880
 spaceChargeFluctuation.C:1881
 spaceChargeFluctuation.C:1882
 spaceChargeFluctuation.C:1883
 spaceChargeFluctuation.C:1884
 spaceChargeFluctuation.C:1885
 spaceChargeFluctuation.C:1886
 spaceChargeFluctuation.C:1887
 spaceChargeFluctuation.C:1888
 spaceChargeFluctuation.C:1889
 spaceChargeFluctuation.C:1890
 spaceChargeFluctuation.C:1891
 spaceChargeFluctuation.C:1892
 spaceChargeFluctuation.C:1893
 spaceChargeFluctuation.C:1894
 spaceChargeFluctuation.C:1895
 spaceChargeFluctuation.C:1896
 spaceChargeFluctuation.C:1897
 spaceChargeFluctuation.C:1898
 spaceChargeFluctuation.C:1899
 spaceChargeFluctuation.C:1900
 spaceChargeFluctuation.C:1901
 spaceChargeFluctuation.C:1902
 spaceChargeFluctuation.C:1903
 spaceChargeFluctuation.C:1904
 spaceChargeFluctuation.C:1905
 spaceChargeFluctuation.C:1906
 spaceChargeFluctuation.C:1907
 spaceChargeFluctuation.C:1908
 spaceChargeFluctuation.C:1909
 spaceChargeFluctuation.C:1910
 spaceChargeFluctuation.C:1911
 spaceChargeFluctuation.C:1912
 spaceChargeFluctuation.C:1913
 spaceChargeFluctuation.C:1914
 spaceChargeFluctuation.C:1915
 spaceChargeFluctuation.C:1916
 spaceChargeFluctuation.C:1917
 spaceChargeFluctuation.C:1918
 spaceChargeFluctuation.C:1919
 spaceChargeFluctuation.C:1920
 spaceChargeFluctuation.C:1921
 spaceChargeFluctuation.C:1922
 spaceChargeFluctuation.C:1923
 spaceChargeFluctuation.C:1924
 spaceChargeFluctuation.C:1925
 spaceChargeFluctuation.C:1926
 spaceChargeFluctuation.C:1927
 spaceChargeFluctuation.C:1928
 spaceChargeFluctuation.C:1929
 spaceChargeFluctuation.C:1930
 spaceChargeFluctuation.C:1931
 spaceChargeFluctuation.C:1932
 spaceChargeFluctuation.C:1933
 spaceChargeFluctuation.C:1934
 spaceChargeFluctuation.C:1935
 spaceChargeFluctuation.C:1936
 spaceChargeFluctuation.C:1937
 spaceChargeFluctuation.C:1938
 spaceChargeFluctuation.C:1939
 spaceChargeFluctuation.C:1940
 spaceChargeFluctuation.C:1941
 spaceChargeFluctuation.C:1942
 spaceChargeFluctuation.C:1943
 spaceChargeFluctuation.C:1944
 spaceChargeFluctuation.C:1945
 spaceChargeFluctuation.C:1946
 spaceChargeFluctuation.C:1947
 spaceChargeFluctuation.C:1948
 spaceChargeFluctuation.C:1949
 spaceChargeFluctuation.C:1950
 spaceChargeFluctuation.C:1951
 spaceChargeFluctuation.C:1952
 spaceChargeFluctuation.C:1953
 spaceChargeFluctuation.C:1954
 spaceChargeFluctuation.C:1955
 spaceChargeFluctuation.C:1956
 spaceChargeFluctuation.C:1957
 spaceChargeFluctuation.C:1958
 spaceChargeFluctuation.C:1959
 spaceChargeFluctuation.C:1960
 spaceChargeFluctuation.C:1961
 spaceChargeFluctuation.C:1962
 spaceChargeFluctuation.C:1963
 spaceChargeFluctuation.C:1964
 spaceChargeFluctuation.C:1965
 spaceChargeFluctuation.C:1966
 spaceChargeFluctuation.C:1967
 spaceChargeFluctuation.C:1968
 spaceChargeFluctuation.C:1969
 spaceChargeFluctuation.C:1970
 spaceChargeFluctuation.C:1971
 spaceChargeFluctuation.C:1972
 spaceChargeFluctuation.C:1973
 spaceChargeFluctuation.C:1974
 spaceChargeFluctuation.C:1975
 spaceChargeFluctuation.C:1976
 spaceChargeFluctuation.C:1977
 spaceChargeFluctuation.C:1978
 spaceChargeFluctuation.C:1979
 spaceChargeFluctuation.C:1980
 spaceChargeFluctuation.C:1981
 spaceChargeFluctuation.C:1982
 spaceChargeFluctuation.C:1983
 spaceChargeFluctuation.C:1984
 spaceChargeFluctuation.C:1985
 spaceChargeFluctuation.C:1986
 spaceChargeFluctuation.C:1987
 spaceChargeFluctuation.C:1988
 spaceChargeFluctuation.C:1989
 spaceChargeFluctuation.C:1990
 spaceChargeFluctuation.C:1991
 spaceChargeFluctuation.C:1992
 spaceChargeFluctuation.C:1993
 spaceChargeFluctuation.C:1994
 spaceChargeFluctuation.C:1995
 spaceChargeFluctuation.C:1996
 spaceChargeFluctuation.C:1997
 spaceChargeFluctuation.C:1998
 spaceChargeFluctuation.C:1999
 spaceChargeFluctuation.C:2000
 spaceChargeFluctuation.C:2001
 spaceChargeFluctuation.C:2002
 spaceChargeFluctuation.C:2003
 spaceChargeFluctuation.C:2004
 spaceChargeFluctuation.C:2005
 spaceChargeFluctuation.C:2006
 spaceChargeFluctuation.C:2007
 spaceChargeFluctuation.C:2008
 spaceChargeFluctuation.C:2009
 spaceChargeFluctuation.C:2010
 spaceChargeFluctuation.C:2011
 spaceChargeFluctuation.C:2012
 spaceChargeFluctuation.C:2013
 spaceChargeFluctuation.C:2014
 spaceChargeFluctuation.C:2015
 spaceChargeFluctuation.C:2016
 spaceChargeFluctuation.C:2017
 spaceChargeFluctuation.C:2018
 spaceChargeFluctuation.C:2019
 spaceChargeFluctuation.C:2020
 spaceChargeFluctuation.C:2021
 spaceChargeFluctuation.C:2022
 spaceChargeFluctuation.C:2023
 spaceChargeFluctuation.C:2024
 spaceChargeFluctuation.C:2025
 spaceChargeFluctuation.C:2026
 spaceChargeFluctuation.C:2027
 spaceChargeFluctuation.C:2028
 spaceChargeFluctuation.C:2029
 spaceChargeFluctuation.C:2030
 spaceChargeFluctuation.C:2031
 spaceChargeFluctuation.C:2032
 spaceChargeFluctuation.C:2033
 spaceChargeFluctuation.C:2034
 spaceChargeFluctuation.C:2035
 spaceChargeFluctuation.C:2036
 spaceChargeFluctuation.C:2037
 spaceChargeFluctuation.C:2038
 spaceChargeFluctuation.C:2039
 spaceChargeFluctuation.C:2040
 spaceChargeFluctuation.C:2041
 spaceChargeFluctuation.C:2042
 spaceChargeFluctuation.C:2043
 spaceChargeFluctuation.C:2044
 spaceChargeFluctuation.C:2045
 spaceChargeFluctuation.C:2046
 spaceChargeFluctuation.C:2047
 spaceChargeFluctuation.C:2048
 spaceChargeFluctuation.C:2049
 spaceChargeFluctuation.C:2050
 spaceChargeFluctuation.C:2051
 spaceChargeFluctuation.C:2052
 spaceChargeFluctuation.C:2053
 spaceChargeFluctuation.C:2054
 spaceChargeFluctuation.C:2055
 spaceChargeFluctuation.C:2056
 spaceChargeFluctuation.C:2057
 spaceChargeFluctuation.C:2058
 spaceChargeFluctuation.C:2059
 spaceChargeFluctuation.C:2060
 spaceChargeFluctuation.C:2061
 spaceChargeFluctuation.C:2062
 spaceChargeFluctuation.C:2063
 spaceChargeFluctuation.C:2064
 spaceChargeFluctuation.C:2065
 spaceChargeFluctuation.C:2066
 spaceChargeFluctuation.C:2067
 spaceChargeFluctuation.C:2068
 spaceChargeFluctuation.C:2069
 spaceChargeFluctuation.C:2070
 spaceChargeFluctuation.C:2071
 spaceChargeFluctuation.C:2072
 spaceChargeFluctuation.C:2073
 spaceChargeFluctuation.C:2074
 spaceChargeFluctuation.C:2075
 spaceChargeFluctuation.C:2076
 spaceChargeFluctuation.C:2077
 spaceChargeFluctuation.C:2078
 spaceChargeFluctuation.C:2079
 spaceChargeFluctuation.C:2080
 spaceChargeFluctuation.C:2081
 spaceChargeFluctuation.C:2082
 spaceChargeFluctuation.C:2083
 spaceChargeFluctuation.C:2084
 spaceChargeFluctuation.C:2085
 spaceChargeFluctuation.C:2086
 spaceChargeFluctuation.C:2087
 spaceChargeFluctuation.C:2088
 spaceChargeFluctuation.C:2089
 spaceChargeFluctuation.C:2090
 spaceChargeFluctuation.C:2091
 spaceChargeFluctuation.C:2092
 spaceChargeFluctuation.C:2093
 spaceChargeFluctuation.C:2094
 spaceChargeFluctuation.C:2095
 spaceChargeFluctuation.C:2096
 spaceChargeFluctuation.C:2097
 spaceChargeFluctuation.C:2098
 spaceChargeFluctuation.C:2099
 spaceChargeFluctuation.C:2100
 spaceChargeFluctuation.C:2101
 spaceChargeFluctuation.C:2102
 spaceChargeFluctuation.C:2103
 spaceChargeFluctuation.C:2104
 spaceChargeFluctuation.C:2105
 spaceChargeFluctuation.C:2106
 spaceChargeFluctuation.C:2107
 spaceChargeFluctuation.C:2108
 spaceChargeFluctuation.C:2109
 spaceChargeFluctuation.C:2110
 spaceChargeFluctuation.C:2111
 spaceChargeFluctuation.C:2112
 spaceChargeFluctuation.C:2113
 spaceChargeFluctuation.C:2114
 spaceChargeFluctuation.C:2115
 spaceChargeFluctuation.C:2116
 spaceChargeFluctuation.C:2117
 spaceChargeFluctuation.C:2118
 spaceChargeFluctuation.C:2119
 spaceChargeFluctuation.C:2120
 spaceChargeFluctuation.C:2121
 spaceChargeFluctuation.C:2122
 spaceChargeFluctuation.C:2123
 spaceChargeFluctuation.C:2124
 spaceChargeFluctuation.C:2125
 spaceChargeFluctuation.C:2126
 spaceChargeFluctuation.C:2127
 spaceChargeFluctuation.C:2128
 spaceChargeFluctuation.C:2129
 spaceChargeFluctuation.C:2130
 spaceChargeFluctuation.C:2131
 spaceChargeFluctuation.C:2132
 spaceChargeFluctuation.C:2133
 spaceChargeFluctuation.C:2134
 spaceChargeFluctuation.C:2135
 spaceChargeFluctuation.C:2136
 spaceChargeFluctuation.C:2137
 spaceChargeFluctuation.C:2138
 spaceChargeFluctuation.C:2139
 spaceChargeFluctuation.C:2140
 spaceChargeFluctuation.C:2141
 spaceChargeFluctuation.C:2142
 spaceChargeFluctuation.C:2143
 spaceChargeFluctuation.C:2144
 spaceChargeFluctuation.C:2145
 spaceChargeFluctuation.C:2146
 spaceChargeFluctuation.C:2147
 spaceChargeFluctuation.C:2148
 spaceChargeFluctuation.C:2149
 spaceChargeFluctuation.C:2150
 spaceChargeFluctuation.C:2151
 spaceChargeFluctuation.C:2152
 spaceChargeFluctuation.C:2153
 spaceChargeFluctuation.C:2154
 spaceChargeFluctuation.C:2155
 spaceChargeFluctuation.C:2156
 spaceChargeFluctuation.C:2157
 spaceChargeFluctuation.C:2158
 spaceChargeFluctuation.C:2159
 spaceChargeFluctuation.C:2160
 spaceChargeFluctuation.C:2161
 spaceChargeFluctuation.C:2162
 spaceChargeFluctuation.C:2163
 spaceChargeFluctuation.C:2164
 spaceChargeFluctuation.C:2165
 spaceChargeFluctuation.C:2166
 spaceChargeFluctuation.C:2167
 spaceChargeFluctuation.C:2168
 spaceChargeFluctuation.C:2169
 spaceChargeFluctuation.C:2170
 spaceChargeFluctuation.C:2171
 spaceChargeFluctuation.C:2172
 spaceChargeFluctuation.C:2173
 spaceChargeFluctuation.C:2174
 spaceChargeFluctuation.C:2175
 spaceChargeFluctuation.C:2176
 spaceChargeFluctuation.C:2177
 spaceChargeFluctuation.C:2178
 spaceChargeFluctuation.C:2179
 spaceChargeFluctuation.C:2180
 spaceChargeFluctuation.C:2181
 spaceChargeFluctuation.C:2182
 spaceChargeFluctuation.C:2183
 spaceChargeFluctuation.C:2184
 spaceChargeFluctuation.C:2185
 spaceChargeFluctuation.C:2186
 spaceChargeFluctuation.C:2187
 spaceChargeFluctuation.C:2188
 spaceChargeFluctuation.C:2189
 spaceChargeFluctuation.C:2190
 spaceChargeFluctuation.C:2191
 spaceChargeFluctuation.C:2192
 spaceChargeFluctuation.C:2193
 spaceChargeFluctuation.C:2194
 spaceChargeFluctuation.C:2195
 spaceChargeFluctuation.C:2196
 spaceChargeFluctuation.C:2197
 spaceChargeFluctuation.C:2198
 spaceChargeFluctuation.C:2199
 spaceChargeFluctuation.C:2200
 spaceChargeFluctuation.C:2201
 spaceChargeFluctuation.C:2202
 spaceChargeFluctuation.C:2203
 spaceChargeFluctuation.C:2204
 spaceChargeFluctuation.C:2205
 spaceChargeFluctuation.C:2206
 spaceChargeFluctuation.C:2207
 spaceChargeFluctuation.C:2208
 spaceChargeFluctuation.C:2209
 spaceChargeFluctuation.C:2210
 spaceChargeFluctuation.C:2211
 spaceChargeFluctuation.C:2212
 spaceChargeFluctuation.C:2213
 spaceChargeFluctuation.C:2214
 spaceChargeFluctuation.C:2215
 spaceChargeFluctuation.C:2216
 spaceChargeFluctuation.C:2217
 spaceChargeFluctuation.C:2218
 spaceChargeFluctuation.C:2219
 spaceChargeFluctuation.C:2220
 spaceChargeFluctuation.C:2221
 spaceChargeFluctuation.C:2222
 spaceChargeFluctuation.C:2223
 spaceChargeFluctuation.C:2224
 spaceChargeFluctuation.C:2225
 spaceChargeFluctuation.C:2226
 spaceChargeFluctuation.C:2227
 spaceChargeFluctuation.C:2228
 spaceChargeFluctuation.C:2229
 spaceChargeFluctuation.C:2230
 spaceChargeFluctuation.C:2231
 spaceChargeFluctuation.C:2232
 spaceChargeFluctuation.C:2233
 spaceChargeFluctuation.C:2234
 spaceChargeFluctuation.C:2235
 spaceChargeFluctuation.C:2236
 spaceChargeFluctuation.C:2237
 spaceChargeFluctuation.C:2238
 spaceChargeFluctuation.C:2239
 spaceChargeFluctuation.C:2240
 spaceChargeFluctuation.C:2241
 spaceChargeFluctuation.C:2242
 spaceChargeFluctuation.C:2243
 spaceChargeFluctuation.C:2244
 spaceChargeFluctuation.C:2245
 spaceChargeFluctuation.C:2246
 spaceChargeFluctuation.C:2247
 spaceChargeFluctuation.C:2248
 spaceChargeFluctuation.C:2249
 spaceChargeFluctuation.C:2250
 spaceChargeFluctuation.C:2251
 spaceChargeFluctuation.C:2252
 spaceChargeFluctuation.C:2253
 spaceChargeFluctuation.C:2254
 spaceChargeFluctuation.C:2255
 spaceChargeFluctuation.C:2256
 spaceChargeFluctuation.C:2257
 spaceChargeFluctuation.C:2258
 spaceChargeFluctuation.C:2259
 spaceChargeFluctuation.C:2260
 spaceChargeFluctuation.C:2261
 spaceChargeFluctuation.C:2262
 spaceChargeFluctuation.C:2263
 spaceChargeFluctuation.C:2264
 spaceChargeFluctuation.C:2265
 spaceChargeFluctuation.C:2266
 spaceChargeFluctuation.C:2267
 spaceChargeFluctuation.C:2268
 spaceChargeFluctuation.C:2269
 spaceChargeFluctuation.C:2270
 spaceChargeFluctuation.C:2271
 spaceChargeFluctuation.C:2272
 spaceChargeFluctuation.C:2273
 spaceChargeFluctuation.C:2274
 spaceChargeFluctuation.C:2275
 spaceChargeFluctuation.C:2276
 spaceChargeFluctuation.C:2277
 spaceChargeFluctuation.C:2278
 spaceChargeFluctuation.C:2279
 spaceChargeFluctuation.C:2280
 spaceChargeFluctuation.C:2281
 spaceChargeFluctuation.C:2282
 spaceChargeFluctuation.C:2283
 spaceChargeFluctuation.C:2284
 spaceChargeFluctuation.C:2285
 spaceChargeFluctuation.C:2286
 spaceChargeFluctuation.C:2287
 spaceChargeFluctuation.C:2288
 spaceChargeFluctuation.C:2289
 spaceChargeFluctuation.C:2290
 spaceChargeFluctuation.C:2291
 spaceChargeFluctuation.C:2292
 spaceChargeFluctuation.C:2293
 spaceChargeFluctuation.C:2294
 spaceChargeFluctuation.C:2295
 spaceChargeFluctuation.C:2296
 spaceChargeFluctuation.C:2297
 spaceChargeFluctuation.C:2298
 spaceChargeFluctuation.C:2299
 spaceChargeFluctuation.C:2300
 spaceChargeFluctuation.C:2301
 spaceChargeFluctuation.C:2302
 spaceChargeFluctuation.C:2303
 spaceChargeFluctuation.C:2304
 spaceChargeFluctuation.C:2305
 spaceChargeFluctuation.C:2306
 spaceChargeFluctuation.C:2307
 spaceChargeFluctuation.C:2308
 spaceChargeFluctuation.C:2309
 spaceChargeFluctuation.C:2310
 spaceChargeFluctuation.C:2311
 spaceChargeFluctuation.C:2312
 spaceChargeFluctuation.C:2313
 spaceChargeFluctuation.C:2314
 spaceChargeFluctuation.C:2315
 spaceChargeFluctuation.C:2316
 spaceChargeFluctuation.C:2317
 spaceChargeFluctuation.C:2318
 spaceChargeFluctuation.C:2319
 spaceChargeFluctuation.C:2320
 spaceChargeFluctuation.C:2321
 spaceChargeFluctuation.C:2322
 spaceChargeFluctuation.C:2323
 spaceChargeFluctuation.C:2324
 spaceChargeFluctuation.C:2325
 spaceChargeFluctuation.C:2326
 spaceChargeFluctuation.C:2327
 spaceChargeFluctuation.C:2328
 spaceChargeFluctuation.C:2329
 spaceChargeFluctuation.C:2330
 spaceChargeFluctuation.C:2331
 spaceChargeFluctuation.C:2332
 spaceChargeFluctuation.C:2333
 spaceChargeFluctuation.C:2334
 spaceChargeFluctuation.C:2335
 spaceChargeFluctuation.C:2336
 spaceChargeFluctuation.C:2337
 spaceChargeFluctuation.C:2338
 spaceChargeFluctuation.C:2339
 spaceChargeFluctuation.C:2340
 spaceChargeFluctuation.C:2341
 spaceChargeFluctuation.C:2342
 spaceChargeFluctuation.C:2343
 spaceChargeFluctuation.C:2344
 spaceChargeFluctuation.C:2345
 spaceChargeFluctuation.C:2346
 spaceChargeFluctuation.C:2347
 spaceChargeFluctuation.C:2348
 spaceChargeFluctuation.C:2349
 spaceChargeFluctuation.C:2350
 spaceChargeFluctuation.C:2351
 spaceChargeFluctuation.C:2352
 spaceChargeFluctuation.C:2353
 spaceChargeFluctuation.C:2354
 spaceChargeFluctuation.C:2355
 spaceChargeFluctuation.C:2356
 spaceChargeFluctuation.C:2357
 spaceChargeFluctuation.C:2358
 spaceChargeFluctuation.C:2359
 spaceChargeFluctuation.C:2360
 spaceChargeFluctuation.C:2361
 spaceChargeFluctuation.C:2362
 spaceChargeFluctuation.C:2363
 spaceChargeFluctuation.C:2364
 spaceChargeFluctuation.C:2365
 spaceChargeFluctuation.C:2366
 spaceChargeFluctuation.C:2367
 spaceChargeFluctuation.C:2368
 spaceChargeFluctuation.C:2369
 spaceChargeFluctuation.C:2370
 spaceChargeFluctuation.C:2371
 spaceChargeFluctuation.C:2372
 spaceChargeFluctuation.C:2373
 spaceChargeFluctuation.C:2374
 spaceChargeFluctuation.C:2375
 spaceChargeFluctuation.C:2376
 spaceChargeFluctuation.C:2377
 spaceChargeFluctuation.C:2378
 spaceChargeFluctuation.C:2379
 spaceChargeFluctuation.C:2380
 spaceChargeFluctuation.C:2381
 spaceChargeFluctuation.C:2382
 spaceChargeFluctuation.C:2383
 spaceChargeFluctuation.C:2384
 spaceChargeFluctuation.C:2385
 spaceChargeFluctuation.C:2386
 spaceChargeFluctuation.C:2387
 spaceChargeFluctuation.C:2388
 spaceChargeFluctuation.C:2389
 spaceChargeFluctuation.C:2390
 spaceChargeFluctuation.C:2391
 spaceChargeFluctuation.C:2392
 spaceChargeFluctuation.C:2393
 spaceChargeFluctuation.C:2394
 spaceChargeFluctuation.C:2395
 spaceChargeFluctuation.C:2396
 spaceChargeFluctuation.C:2397
 spaceChargeFluctuation.C:2398
 spaceChargeFluctuation.C:2399
 spaceChargeFluctuation.C:2400
 spaceChargeFluctuation.C:2401
 spaceChargeFluctuation.C:2402
 spaceChargeFluctuation.C:2403
 spaceChargeFluctuation.C:2404
 spaceChargeFluctuation.C:2405
 spaceChargeFluctuation.C:2406
 spaceChargeFluctuation.C:2407
 spaceChargeFluctuation.C:2408
 spaceChargeFluctuation.C:2409
 spaceChargeFluctuation.C:2410
 spaceChargeFluctuation.C:2411
 spaceChargeFluctuation.C:2412
 spaceChargeFluctuation.C:2413
 spaceChargeFluctuation.C:2414
 spaceChargeFluctuation.C:2415
 spaceChargeFluctuation.C:2416
 spaceChargeFluctuation.C:2417
 spaceChargeFluctuation.C:2418
 spaceChargeFluctuation.C:2419
 spaceChargeFluctuation.C:2420
 spaceChargeFluctuation.C:2421
 spaceChargeFluctuation.C:2422
 spaceChargeFluctuation.C:2423
 spaceChargeFluctuation.C:2424
 spaceChargeFluctuation.C:2425
 spaceChargeFluctuation.C:2426
 spaceChargeFluctuation.C:2427
 spaceChargeFluctuation.C:2428
 spaceChargeFluctuation.C:2429
 spaceChargeFluctuation.C:2430
 spaceChargeFluctuation.C:2431
 spaceChargeFluctuation.C:2432
 spaceChargeFluctuation.C:2433
 spaceChargeFluctuation.C:2434
 spaceChargeFluctuation.C:2435
 spaceChargeFluctuation.C:2436
 spaceChargeFluctuation.C:2437
 spaceChargeFluctuation.C:2438
 spaceChargeFluctuation.C:2439
 spaceChargeFluctuation.C:2440
 spaceChargeFluctuation.C:2441
 spaceChargeFluctuation.C:2442
 spaceChargeFluctuation.C:2443
 spaceChargeFluctuation.C:2444
 spaceChargeFluctuation.C:2445
 spaceChargeFluctuation.C:2446
 spaceChargeFluctuation.C:2447
 spaceChargeFluctuation.C:2448
 spaceChargeFluctuation.C:2449
 spaceChargeFluctuation.C:2450
 spaceChargeFluctuation.C:2451
 spaceChargeFluctuation.C:2452
 spaceChargeFluctuation.C:2453
 spaceChargeFluctuation.C:2454
 spaceChargeFluctuation.C:2455
 spaceChargeFluctuation.C:2456
 spaceChargeFluctuation.C:2457
 spaceChargeFluctuation.C:2458
 spaceChargeFluctuation.C:2459
 spaceChargeFluctuation.C:2460
 spaceChargeFluctuation.C:2461
 spaceChargeFluctuation.C:2462
 spaceChargeFluctuation.C:2463
 spaceChargeFluctuation.C:2464
 spaceChargeFluctuation.C:2465
 spaceChargeFluctuation.C:2466
 spaceChargeFluctuation.C:2467
 spaceChargeFluctuation.C:2468
 spaceChargeFluctuation.C:2469
 spaceChargeFluctuation.C:2470
 spaceChargeFluctuation.C:2471
 spaceChargeFluctuation.C:2472
 spaceChargeFluctuation.C:2473
 spaceChargeFluctuation.C:2474
 spaceChargeFluctuation.C:2475
 spaceChargeFluctuation.C:2476
 spaceChargeFluctuation.C:2477
 spaceChargeFluctuation.C:2478
 spaceChargeFluctuation.C:2479
 spaceChargeFluctuation.C:2480
 spaceChargeFluctuation.C:2481
 spaceChargeFluctuation.C:2482
 spaceChargeFluctuation.C:2483
 spaceChargeFluctuation.C:2484
 spaceChargeFluctuation.C:2485
 spaceChargeFluctuation.C:2486
 spaceChargeFluctuation.C:2487
 spaceChargeFluctuation.C:2488
 spaceChargeFluctuation.C:2489
 spaceChargeFluctuation.C:2490
 spaceChargeFluctuation.C:2491
 spaceChargeFluctuation.C:2492
 spaceChargeFluctuation.C:2493
 spaceChargeFluctuation.C:2494
 spaceChargeFluctuation.C:2495
 spaceChargeFluctuation.C:2496
 spaceChargeFluctuation.C:2497
 spaceChargeFluctuation.C:2498
 spaceChargeFluctuation.C:2499
 spaceChargeFluctuation.C:2500
 spaceChargeFluctuation.C:2501
 spaceChargeFluctuation.C:2502
 spaceChargeFluctuation.C:2503
 spaceChargeFluctuation.C:2504
 spaceChargeFluctuation.C:2505
 spaceChargeFluctuation.C:2506
 spaceChargeFluctuation.C:2507
 spaceChargeFluctuation.C:2508
 spaceChargeFluctuation.C:2509
 spaceChargeFluctuation.C:2510
 spaceChargeFluctuation.C:2511
 spaceChargeFluctuation.C:2512
 spaceChargeFluctuation.C:2513
 spaceChargeFluctuation.C:2514
 spaceChargeFluctuation.C:2515
 spaceChargeFluctuation.C:2516
 spaceChargeFluctuation.C:2517
 spaceChargeFluctuation.C:2518
 spaceChargeFluctuation.C:2519
 spaceChargeFluctuation.C:2520
 spaceChargeFluctuation.C:2521
 spaceChargeFluctuation.C:2522
 spaceChargeFluctuation.C:2523
 spaceChargeFluctuation.C:2524
 spaceChargeFluctuation.C:2525
 spaceChargeFluctuation.C:2526
 spaceChargeFluctuation.C:2527
 spaceChargeFluctuation.C:2528
 spaceChargeFluctuation.C:2529
 spaceChargeFluctuation.C:2530
 spaceChargeFluctuation.C:2531
 spaceChargeFluctuation.C:2532
 spaceChargeFluctuation.C:2533
 spaceChargeFluctuation.C:2534
 spaceChargeFluctuation.C:2535
 spaceChargeFluctuation.C:2536
 spaceChargeFluctuation.C:2537
 spaceChargeFluctuation.C:2538
 spaceChargeFluctuation.C:2539
 spaceChargeFluctuation.C:2540
 spaceChargeFluctuation.C:2541
 spaceChargeFluctuation.C:2542
 spaceChargeFluctuation.C:2543
 spaceChargeFluctuation.C:2544
 spaceChargeFluctuation.C:2545
 spaceChargeFluctuation.C:2546
 spaceChargeFluctuation.C:2547
 spaceChargeFluctuation.C:2548
 spaceChargeFluctuation.C:2549
 spaceChargeFluctuation.C:2550
 spaceChargeFluctuation.C:2551
 spaceChargeFluctuation.C:2552
 spaceChargeFluctuation.C:2553
 spaceChargeFluctuation.C:2554
 spaceChargeFluctuation.C:2555
 spaceChargeFluctuation.C:2556
 spaceChargeFluctuation.C:2557
 spaceChargeFluctuation.C:2558
 spaceChargeFluctuation.C:2559
 spaceChargeFluctuation.C:2560
 spaceChargeFluctuation.C:2561
 spaceChargeFluctuation.C:2562
 spaceChargeFluctuation.C:2563
 spaceChargeFluctuation.C:2564
 spaceChargeFluctuation.C:2565
 spaceChargeFluctuation.C:2566
 spaceChargeFluctuation.C:2567
 spaceChargeFluctuation.C:2568
 spaceChargeFluctuation.C:2569
 spaceChargeFluctuation.C:2570
 spaceChargeFluctuation.C:2571
 spaceChargeFluctuation.C:2572
 spaceChargeFluctuation.C:2573
 spaceChargeFluctuation.C:2574
 spaceChargeFluctuation.C:2575
 spaceChargeFluctuation.C:2576
 spaceChargeFluctuation.C:2577
 spaceChargeFluctuation.C:2578
 spaceChargeFluctuation.C:2579
 spaceChargeFluctuation.C:2580
 spaceChargeFluctuation.C:2581
 spaceChargeFluctuation.C:2582
 spaceChargeFluctuation.C:2583
 spaceChargeFluctuation.C:2584
 spaceChargeFluctuation.C:2585
 spaceChargeFluctuation.C:2586
 spaceChargeFluctuation.C:2587
 spaceChargeFluctuation.C:2588
 spaceChargeFluctuation.C:2589
 spaceChargeFluctuation.C:2590
 spaceChargeFluctuation.C:2591
 spaceChargeFluctuation.C:2592
 spaceChargeFluctuation.C:2593
 spaceChargeFluctuation.C:2594
 spaceChargeFluctuation.C:2595
 spaceChargeFluctuation.C:2596
 spaceChargeFluctuation.C:2597
 spaceChargeFluctuation.C:2598
 spaceChargeFluctuation.C:2599
 spaceChargeFluctuation.C:2600
 spaceChargeFluctuation.C:2601
 spaceChargeFluctuation.C:2602
 spaceChargeFluctuation.C:2603
 spaceChargeFluctuation.C:2604
 spaceChargeFluctuation.C:2605
 spaceChargeFluctuation.C:2606
 spaceChargeFluctuation.C:2607
 spaceChargeFluctuation.C:2608
 spaceChargeFluctuation.C:2609
 spaceChargeFluctuation.C:2610
 spaceChargeFluctuation.C:2611
 spaceChargeFluctuation.C:2612
 spaceChargeFluctuation.C:2613
 spaceChargeFluctuation.C:2614
 spaceChargeFluctuation.C:2615
 spaceChargeFluctuation.C:2616
 spaceChargeFluctuation.C:2617
 spaceChargeFluctuation.C:2618
 spaceChargeFluctuation.C:2619
 spaceChargeFluctuation.C:2620
 spaceChargeFluctuation.C:2621
 spaceChargeFluctuation.C:2622
 spaceChargeFluctuation.C:2623
 spaceChargeFluctuation.C:2624
 spaceChargeFluctuation.C:2625
 spaceChargeFluctuation.C:2626
 spaceChargeFluctuation.C:2627
 spaceChargeFluctuation.C:2628
 spaceChargeFluctuation.C:2629
 spaceChargeFluctuation.C:2630
 spaceChargeFluctuation.C:2631
 spaceChargeFluctuation.C:2632
 spaceChargeFluctuation.C:2633
 spaceChargeFluctuation.C:2634
 spaceChargeFluctuation.C:2635
 spaceChargeFluctuation.C:2636
 spaceChargeFluctuation.C:2637
 spaceChargeFluctuation.C:2638
 spaceChargeFluctuation.C:2639
 spaceChargeFluctuation.C:2640
 spaceChargeFluctuation.C:2641
 spaceChargeFluctuation.C:2642
 spaceChargeFluctuation.C:2643
 spaceChargeFluctuation.C:2644
 spaceChargeFluctuation.C:2645
 spaceChargeFluctuation.C:2646
 spaceChargeFluctuation.C:2647
 spaceChargeFluctuation.C:2648
 spaceChargeFluctuation.C:2649
 spaceChargeFluctuation.C:2650
 spaceChargeFluctuation.C:2651
 spaceChargeFluctuation.C:2652
 spaceChargeFluctuation.C:2653
 spaceChargeFluctuation.C:2654
 spaceChargeFluctuation.C:2655
 spaceChargeFluctuation.C:2656
 spaceChargeFluctuation.C:2657
 spaceChargeFluctuation.C:2658
 spaceChargeFluctuation.C:2659
 spaceChargeFluctuation.C:2660
 spaceChargeFluctuation.C:2661
 spaceChargeFluctuation.C:2662
 spaceChargeFluctuation.C:2663
 spaceChargeFluctuation.C:2664
 spaceChargeFluctuation.C:2665
 spaceChargeFluctuation.C:2666
 spaceChargeFluctuation.C:2667
 spaceChargeFluctuation.C:2668
 spaceChargeFluctuation.C:2669
 spaceChargeFluctuation.C:2670
 spaceChargeFluctuation.C:2671
 spaceChargeFluctuation.C:2672
 spaceChargeFluctuation.C:2673
 spaceChargeFluctuation.C:2674
 spaceChargeFluctuation.C:2675
 spaceChargeFluctuation.C:2676
 spaceChargeFluctuation.C:2677
 spaceChargeFluctuation.C:2678
 spaceChargeFluctuation.C:2679
 spaceChargeFluctuation.C:2680
 spaceChargeFluctuation.C:2681
 spaceChargeFluctuation.C:2682
 spaceChargeFluctuation.C:2683
 spaceChargeFluctuation.C:2684
 spaceChargeFluctuation.C:2685
 spaceChargeFluctuation.C:2686
 spaceChargeFluctuation.C:2687
 spaceChargeFluctuation.C:2688
 spaceChargeFluctuation.C:2689
 spaceChargeFluctuation.C:2690
 spaceChargeFluctuation.C:2691
 spaceChargeFluctuation.C:2692
 spaceChargeFluctuation.C:2693
 spaceChargeFluctuation.C:2694
 spaceChargeFluctuation.C:2695
 spaceChargeFluctuation.C:2696
 spaceChargeFluctuation.C:2697
 spaceChargeFluctuation.C:2698
 spaceChargeFluctuation.C:2699
 spaceChargeFluctuation.C:2700
 spaceChargeFluctuation.C:2701
 spaceChargeFluctuation.C:2702
 spaceChargeFluctuation.C:2703
 spaceChargeFluctuation.C:2704
 spaceChargeFluctuation.C:2705
 spaceChargeFluctuation.C:2706
 spaceChargeFluctuation.C:2707
 spaceChargeFluctuation.C:2708
 spaceChargeFluctuation.C:2709
 spaceChargeFluctuation.C:2710
 spaceChargeFluctuation.C:2711
 spaceChargeFluctuation.C:2712
 spaceChargeFluctuation.C:2713
 spaceChargeFluctuation.C:2714
 spaceChargeFluctuation.C:2715
 spaceChargeFluctuation.C:2716
 spaceChargeFluctuation.C:2717
 spaceChargeFluctuation.C:2718
 spaceChargeFluctuation.C:2719
 spaceChargeFluctuation.C:2720
 spaceChargeFluctuation.C:2721
 spaceChargeFluctuation.C:2722
 spaceChargeFluctuation.C:2723
 spaceChargeFluctuation.C:2724
 spaceChargeFluctuation.C:2725
 spaceChargeFluctuation.C:2726
 spaceChargeFluctuation.C:2727
 spaceChargeFluctuation.C:2728
 spaceChargeFluctuation.C:2729
 spaceChargeFluctuation.C:2730
 spaceChargeFluctuation.C:2731
 spaceChargeFluctuation.C:2732
 spaceChargeFluctuation.C:2733
 spaceChargeFluctuation.C:2734
 spaceChargeFluctuation.C:2735
 spaceChargeFluctuation.C:2736
 spaceChargeFluctuation.C:2737
 spaceChargeFluctuation.C:2738
 spaceChargeFluctuation.C:2739
 spaceChargeFluctuation.C:2740
 spaceChargeFluctuation.C:2741
 spaceChargeFluctuation.C:2742
 spaceChargeFluctuation.C:2743
 spaceChargeFluctuation.C:2744
 spaceChargeFluctuation.C:2745
 spaceChargeFluctuation.C:2746
 spaceChargeFluctuation.C:2747
 spaceChargeFluctuation.C:2748
 spaceChargeFluctuation.C:2749
 spaceChargeFluctuation.C:2750
 spaceChargeFluctuation.C:2751
 spaceChargeFluctuation.C:2752
 spaceChargeFluctuation.C:2753
 spaceChargeFluctuation.C:2754
 spaceChargeFluctuation.C:2755
 spaceChargeFluctuation.C:2756
 spaceChargeFluctuation.C:2757
 spaceChargeFluctuation.C:2758
 spaceChargeFluctuation.C:2759
 spaceChargeFluctuation.C:2760
 spaceChargeFluctuation.C:2761
 spaceChargeFluctuation.C:2762
 spaceChargeFluctuation.C:2763
 spaceChargeFluctuation.C:2764
 spaceChargeFluctuation.C:2765
 spaceChargeFluctuation.C:2766
 spaceChargeFluctuation.C:2767
 spaceChargeFluctuation.C:2768
 spaceChargeFluctuation.C:2769
 spaceChargeFluctuation.C:2770
 spaceChargeFluctuation.C:2771
 spaceChargeFluctuation.C:2772
 spaceChargeFluctuation.C:2773
 spaceChargeFluctuation.C:2774
 spaceChargeFluctuation.C:2775
 spaceChargeFluctuation.C:2776
 spaceChargeFluctuation.C:2777
 spaceChargeFluctuation.C:2778
 spaceChargeFluctuation.C:2779
 spaceChargeFluctuation.C:2780
 spaceChargeFluctuation.C:2781
 spaceChargeFluctuation.C:2782
 spaceChargeFluctuation.C:2783
 spaceChargeFluctuation.C:2784
 spaceChargeFluctuation.C:2785
 spaceChargeFluctuation.C:2786
 spaceChargeFluctuation.C:2787
 spaceChargeFluctuation.C:2788
 spaceChargeFluctuation.C:2789
 spaceChargeFluctuation.C:2790
 spaceChargeFluctuation.C:2791
 spaceChargeFluctuation.C:2792
 spaceChargeFluctuation.C:2793
 spaceChargeFluctuation.C:2794
 spaceChargeFluctuation.C:2795
 spaceChargeFluctuation.C:2796
 spaceChargeFluctuation.C:2797
 spaceChargeFluctuation.C:2798
 spaceChargeFluctuation.C:2799
 spaceChargeFluctuation.C:2800
 spaceChargeFluctuation.C:2801
 spaceChargeFluctuation.C:2802
 spaceChargeFluctuation.C:2803
 spaceChargeFluctuation.C:2804
 spaceChargeFluctuation.C:2805
 spaceChargeFluctuation.C:2806
 spaceChargeFluctuation.C:2807
 spaceChargeFluctuation.C:2808
 spaceChargeFluctuation.C:2809
 spaceChargeFluctuation.C:2810
 spaceChargeFluctuation.C:2811
 spaceChargeFluctuation.C:2812
 spaceChargeFluctuation.C:2813
 spaceChargeFluctuation.C:2814
 spaceChargeFluctuation.C:2815
 spaceChargeFluctuation.C:2816
 spaceChargeFluctuation.C:2817
 spaceChargeFluctuation.C:2818
 spaceChargeFluctuation.C:2819
 spaceChargeFluctuation.C:2820
 spaceChargeFluctuation.C:2821
 spaceChargeFluctuation.C:2822
 spaceChargeFluctuation.C:2823
 spaceChargeFluctuation.C:2824
 spaceChargeFluctuation.C:2825
 spaceChargeFluctuation.C:2826
 spaceChargeFluctuation.C:2827
 spaceChargeFluctuation.C:2828
 spaceChargeFluctuation.C:2829
 spaceChargeFluctuation.C:2830
 spaceChargeFluctuation.C:2831
 spaceChargeFluctuation.C:2832
 spaceChargeFluctuation.C:2833
 spaceChargeFluctuation.C:2834
 spaceChargeFluctuation.C:2835
 spaceChargeFluctuation.C:2836
 spaceChargeFluctuation.C:2837
 spaceChargeFluctuation.C:2838
 spaceChargeFluctuation.C:2839
 spaceChargeFluctuation.C:2840
 spaceChargeFluctuation.C:2841
 spaceChargeFluctuation.C:2842
 spaceChargeFluctuation.C:2843
 spaceChargeFluctuation.C:2844
 spaceChargeFluctuation.C:2845
 spaceChargeFluctuation.C:2846
 spaceChargeFluctuation.C:2847
 spaceChargeFluctuation.C:2848
 spaceChargeFluctuation.C:2849
 spaceChargeFluctuation.C:2850
 spaceChargeFluctuation.C:2851
 spaceChargeFluctuation.C:2852
 spaceChargeFluctuation.C:2853
 spaceChargeFluctuation.C:2854
 spaceChargeFluctuation.C:2855
 spaceChargeFluctuation.C:2856
 spaceChargeFluctuation.C:2857
 spaceChargeFluctuation.C:2858
 spaceChargeFluctuation.C:2859
 spaceChargeFluctuation.C:2860
 spaceChargeFluctuation.C:2861
 spaceChargeFluctuation.C:2862
 spaceChargeFluctuation.C:2863
 spaceChargeFluctuation.C:2864
 spaceChargeFluctuation.C:2865
 spaceChargeFluctuation.C:2866
 spaceChargeFluctuation.C:2867
 spaceChargeFluctuation.C:2868
 spaceChargeFluctuation.C:2869
 spaceChargeFluctuation.C:2870
 spaceChargeFluctuation.C:2871
 spaceChargeFluctuation.C:2872
 spaceChargeFluctuation.C:2873
 spaceChargeFluctuation.C:2874
 spaceChargeFluctuation.C:2875
 spaceChargeFluctuation.C:2876
 spaceChargeFluctuation.C:2877
 spaceChargeFluctuation.C:2878
 spaceChargeFluctuation.C:2879
 spaceChargeFluctuation.C:2880
 spaceChargeFluctuation.C:2881
 spaceChargeFluctuation.C:2882
 spaceChargeFluctuation.C:2883
 spaceChargeFluctuation.C:2884
 spaceChargeFluctuation.C:2885
 spaceChargeFluctuation.C:2886
 spaceChargeFluctuation.C:2887
 spaceChargeFluctuation.C:2888
 spaceChargeFluctuation.C:2889
 spaceChargeFluctuation.C:2890
 spaceChargeFluctuation.C:2891
 spaceChargeFluctuation.C:2892
 spaceChargeFluctuation.C:2893
 spaceChargeFluctuation.C:2894
 spaceChargeFluctuation.C:2895
 spaceChargeFluctuation.C:2896
 spaceChargeFluctuation.C:2897
 spaceChargeFluctuation.C:2898
 spaceChargeFluctuation.C:2899
 spaceChargeFluctuation.C:2900
 spaceChargeFluctuation.C:2901
 spaceChargeFluctuation.C:2902
 spaceChargeFluctuation.C:2903
 spaceChargeFluctuation.C:2904
 spaceChargeFluctuation.C:2905
 spaceChargeFluctuation.C:2906
 spaceChargeFluctuation.C:2907
 spaceChargeFluctuation.C:2908
 spaceChargeFluctuation.C:2909
 spaceChargeFluctuation.C:2910
 spaceChargeFluctuation.C:2911
 spaceChargeFluctuation.C:2912
 spaceChargeFluctuation.C:2913
 spaceChargeFluctuation.C:2914
 spaceChargeFluctuation.C:2915
 spaceChargeFluctuation.C:2916
 spaceChargeFluctuation.C:2917
 spaceChargeFluctuation.C:2918
 spaceChargeFluctuation.C:2919
 spaceChargeFluctuation.C:2920
 spaceChargeFluctuation.C:2921
 spaceChargeFluctuation.C:2922
 spaceChargeFluctuation.C:2923
 spaceChargeFluctuation.C:2924
 spaceChargeFluctuation.C:2925
 spaceChargeFluctuation.C:2926
 spaceChargeFluctuation.C:2927
 spaceChargeFluctuation.C:2928
 spaceChargeFluctuation.C:2929
 spaceChargeFluctuation.C:2930
 spaceChargeFluctuation.C:2931
 spaceChargeFluctuation.C:2932
 spaceChargeFluctuation.C:2933
 spaceChargeFluctuation.C:2934
 spaceChargeFluctuation.C:2935
 spaceChargeFluctuation.C:2936
 spaceChargeFluctuation.C:2937
 spaceChargeFluctuation.C:2938
 spaceChargeFluctuation.C:2939
 spaceChargeFluctuation.C:2940
 spaceChargeFluctuation.C:2941
 spaceChargeFluctuation.C:2942
 spaceChargeFluctuation.C:2943
 spaceChargeFluctuation.C:2944
 spaceChargeFluctuation.C:2945
 spaceChargeFluctuation.C:2946
 spaceChargeFluctuation.C:2947
 spaceChargeFluctuation.C:2948
 spaceChargeFluctuation.C:2949
 spaceChargeFluctuation.C:2950
 spaceChargeFluctuation.C:2951
 spaceChargeFluctuation.C:2952
 spaceChargeFluctuation.C:2953
 spaceChargeFluctuation.C:2954
 spaceChargeFluctuation.C:2955
 spaceChargeFluctuation.C:2956
 spaceChargeFluctuation.C:2957
 spaceChargeFluctuation.C:2958
 spaceChargeFluctuation.C:2959
 spaceChargeFluctuation.C:2960
 spaceChargeFluctuation.C:2961
 spaceChargeFluctuation.C:2962
 spaceChargeFluctuation.C:2963
 spaceChargeFluctuation.C:2964
 spaceChargeFluctuation.C:2965
 spaceChargeFluctuation.C:2966
 spaceChargeFluctuation.C:2967
 spaceChargeFluctuation.C:2968
 spaceChargeFluctuation.C:2969
 spaceChargeFluctuation.C:2970
 spaceChargeFluctuation.C:2971
 spaceChargeFluctuation.C:2972
 spaceChargeFluctuation.C:2973
 spaceChargeFluctuation.C:2974
 spaceChargeFluctuation.C:2975
 spaceChargeFluctuation.C:2976
 spaceChargeFluctuation.C:2977
 spaceChargeFluctuation.C:2978
 spaceChargeFluctuation.C:2979
 spaceChargeFluctuation.C:2980
 spaceChargeFluctuation.C:2981
 spaceChargeFluctuation.C:2982
 spaceChargeFluctuation.C:2983
 spaceChargeFluctuation.C:2984
 spaceChargeFluctuation.C:2985
 spaceChargeFluctuation.C:2986
 spaceChargeFluctuation.C:2987
 spaceChargeFluctuation.C:2988
 spaceChargeFluctuation.C:2989
 spaceChargeFluctuation.C:2990
 spaceChargeFluctuation.C:2991
 spaceChargeFluctuation.C:2992
 spaceChargeFluctuation.C:2993
 spaceChargeFluctuation.C:2994
 spaceChargeFluctuation.C:2995
 spaceChargeFluctuation.C:2996
 spaceChargeFluctuation.C:2997
 spaceChargeFluctuation.C:2998
 spaceChargeFluctuation.C:2999
 spaceChargeFluctuation.C:3000
 spaceChargeFluctuation.C:3001
 spaceChargeFluctuation.C:3002
 spaceChargeFluctuation.C:3003
 spaceChargeFluctuation.C:3004
 spaceChargeFluctuation.C:3005
 spaceChargeFluctuation.C:3006
 spaceChargeFluctuation.C:3007
 spaceChargeFluctuation.C:3008
 spaceChargeFluctuation.C:3009
 spaceChargeFluctuation.C:3010
 spaceChargeFluctuation.C:3011
 spaceChargeFluctuation.C:3012
 spaceChargeFluctuation.C:3013
 spaceChargeFluctuation.C:3014
 spaceChargeFluctuation.C:3015
 spaceChargeFluctuation.C:3016
 spaceChargeFluctuation.C:3017
 spaceChargeFluctuation.C:3018
 spaceChargeFluctuation.C:3019
 spaceChargeFluctuation.C:3020
 spaceChargeFluctuation.C:3021
 spaceChargeFluctuation.C:3022
 spaceChargeFluctuation.C:3023
 spaceChargeFluctuation.C:3024
 spaceChargeFluctuation.C:3025
 spaceChargeFluctuation.C:3026
 spaceChargeFluctuation.C:3027
 spaceChargeFluctuation.C:3028
 spaceChargeFluctuation.C:3029
 spaceChargeFluctuation.C:3030
 spaceChargeFluctuation.C:3031
 spaceChargeFluctuation.C:3032
 spaceChargeFluctuation.C:3033
 spaceChargeFluctuation.C:3034
 spaceChargeFluctuation.C:3035
 spaceChargeFluctuation.C:3036
 spaceChargeFluctuation.C:3037
 spaceChargeFluctuation.C:3038
 spaceChargeFluctuation.C:3039
 spaceChargeFluctuation.C:3040
 spaceChargeFluctuation.C:3041
 spaceChargeFluctuation.C:3042
 spaceChargeFluctuation.C:3043
 spaceChargeFluctuation.C:3044
 spaceChargeFluctuation.C:3045
 spaceChargeFluctuation.C:3046
 spaceChargeFluctuation.C:3047
 spaceChargeFluctuation.C:3048
 spaceChargeFluctuation.C:3049
 spaceChargeFluctuation.C:3050
 spaceChargeFluctuation.C:3051
 spaceChargeFluctuation.C:3052
 spaceChargeFluctuation.C:3053
 spaceChargeFluctuation.C:3054
 spaceChargeFluctuation.C:3055
 spaceChargeFluctuation.C:3056
 spaceChargeFluctuation.C:3057
 spaceChargeFluctuation.C:3058
 spaceChargeFluctuation.C:3059
 spaceChargeFluctuation.C:3060
 spaceChargeFluctuation.C:3061
 spaceChargeFluctuation.C:3062
 spaceChargeFluctuation.C:3063
 spaceChargeFluctuation.C:3064
 spaceChargeFluctuation.C:3065
 spaceChargeFluctuation.C:3066
 spaceChargeFluctuation.C:3067
 spaceChargeFluctuation.C:3068
 spaceChargeFluctuation.C:3069
 spaceChargeFluctuation.C:3070
 spaceChargeFluctuation.C:3071
 spaceChargeFluctuation.C:3072
 spaceChargeFluctuation.C:3073
 spaceChargeFluctuation.C:3074
 spaceChargeFluctuation.C:3075
 spaceChargeFluctuation.C:3076
 spaceChargeFluctuation.C:3077
 spaceChargeFluctuation.C:3078
 spaceChargeFluctuation.C:3079
 spaceChargeFluctuation.C:3080
 spaceChargeFluctuation.C:3081
 spaceChargeFluctuation.C:3082
 spaceChargeFluctuation.C:3083
 spaceChargeFluctuation.C:3084
 spaceChargeFluctuation.C:3085
 spaceChargeFluctuation.C:3086
 spaceChargeFluctuation.C:3087
 spaceChargeFluctuation.C:3088
 spaceChargeFluctuation.C:3089
 spaceChargeFluctuation.C:3090
 spaceChargeFluctuation.C:3091
 spaceChargeFluctuation.C:3092
 spaceChargeFluctuation.C:3093
 spaceChargeFluctuation.C:3094
 spaceChargeFluctuation.C:3095
 spaceChargeFluctuation.C:3096
 spaceChargeFluctuation.C:3097
 spaceChargeFluctuation.C:3098
 spaceChargeFluctuation.C:3099
 spaceChargeFluctuation.C:3100
 spaceChargeFluctuation.C:3101
 spaceChargeFluctuation.C:3102
 spaceChargeFluctuation.C:3103
 spaceChargeFluctuation.C:3104
 spaceChargeFluctuation.C:3105
 spaceChargeFluctuation.C:3106
 spaceChargeFluctuation.C:3107
 spaceChargeFluctuation.C:3108
 spaceChargeFluctuation.C:3109
 spaceChargeFluctuation.C:3110
 spaceChargeFluctuation.C:3111
 spaceChargeFluctuation.C:3112
 spaceChargeFluctuation.C:3113
 spaceChargeFluctuation.C:3114
 spaceChargeFluctuation.C:3115
 spaceChargeFluctuation.C:3116
 spaceChargeFluctuation.C:3117
 spaceChargeFluctuation.C:3118
 spaceChargeFluctuation.C:3119
 spaceChargeFluctuation.C:3120
 spaceChargeFluctuation.C:3121
 spaceChargeFluctuation.C:3122
 spaceChargeFluctuation.C:3123
 spaceChargeFluctuation.C:3124
 spaceChargeFluctuation.C:3125
 spaceChargeFluctuation.C:3126
 spaceChargeFluctuation.C:3127
 spaceChargeFluctuation.C:3128
 spaceChargeFluctuation.C:3129
 spaceChargeFluctuation.C:3130
 spaceChargeFluctuation.C:3131
 spaceChargeFluctuation.C:3132
 spaceChargeFluctuation.C:3133
 spaceChargeFluctuation.C:3134
 spaceChargeFluctuation.C:3135
 spaceChargeFluctuation.C:3136
 spaceChargeFluctuation.C:3137
 spaceChargeFluctuation.C:3138
 spaceChargeFluctuation.C:3139
 spaceChargeFluctuation.C:3140
 spaceChargeFluctuation.C:3141
 spaceChargeFluctuation.C:3142
 spaceChargeFluctuation.C:3143
 spaceChargeFluctuation.C:3144
 spaceChargeFluctuation.C:3145
 spaceChargeFluctuation.C:3146
 spaceChargeFluctuation.C:3147
 spaceChargeFluctuation.C:3148
 spaceChargeFluctuation.C:3149
 spaceChargeFluctuation.C:3150
 spaceChargeFluctuation.C:3151
 spaceChargeFluctuation.C:3152
 spaceChargeFluctuation.C:3153
 spaceChargeFluctuation.C:3154
 spaceChargeFluctuation.C:3155
 spaceChargeFluctuation.C:3156
 spaceChargeFluctuation.C:3157
 spaceChargeFluctuation.C:3158
 spaceChargeFluctuation.C:3159
 spaceChargeFluctuation.C:3160
 spaceChargeFluctuation.C:3161
 spaceChargeFluctuation.C:3162
 spaceChargeFluctuation.C:3163
 spaceChargeFluctuation.C:3164
 spaceChargeFluctuation.C:3165
 spaceChargeFluctuation.C:3166
 spaceChargeFluctuation.C:3167
 spaceChargeFluctuation.C:3168
 spaceChargeFluctuation.C:3169
 spaceChargeFluctuation.C:3170
 spaceChargeFluctuation.C:3171
 spaceChargeFluctuation.C:3172
 spaceChargeFluctuation.C:3173
 spaceChargeFluctuation.C:3174
 spaceChargeFluctuation.C:3175
 spaceChargeFluctuation.C:3176
 spaceChargeFluctuation.C:3177
 spaceChargeFluctuation.C:3178
 spaceChargeFluctuation.C:3179
 spaceChargeFluctuation.C:3180
 spaceChargeFluctuation.C:3181
 spaceChargeFluctuation.C:3182
 spaceChargeFluctuation.C:3183
 spaceChargeFluctuation.C:3184
 spaceChargeFluctuation.C:3185
 spaceChargeFluctuation.C:3186
 spaceChargeFluctuation.C:3187
 spaceChargeFluctuation.C:3188
 spaceChargeFluctuation.C:3189