Code from DongJo and Jan Rak
authorjgrosseo <jgrosseo@f7af4fe6-9843-0410-8265-dc069ae4e863>
Fri, 30 Mar 2012 22:51:30 +0000 (22:51 +0000)
committerjgrosseo <jgrosseo@f7af4fe6-9843-0410-8265-dc069ae4e863>
Fri, 30 Mar 2012 22:51:30 +0000 (22:51 +0000)
24 files changed:
PWGCF/CMakelibPWGCFCorrelationsJCORRAN.pkg [new file with mode: 0644]
PWGCF/Correlations/JCORRAN/AliFlowBayesianPID.cxx [new file with mode: 0755]
PWGCF/Correlations/JCORRAN/AliFlowBayesianPID.h [new file with mode: 0755]
PWGCF/Correlations/JCORRAN/AliJBaseEventHeader.cxx [new file with mode: 0755]
PWGCF/Correlations/JCORRAN/AliJBaseEventHeader.h [new file with mode: 0755]
PWGCF/Correlations/JCORRAN/AliJBaseTrack.cxx [new file with mode: 0755]
PWGCF/Correlations/JCORRAN/AliJBaseTrack.h [new file with mode: 0755]
PWGCF/Correlations/JCORRAN/AliJCORRANTask.cxx [new file with mode: 0755]
PWGCF/Correlations/JCORRAN/AliJCORRANTask.h [new file with mode: 0755]
PWGCF/Correlations/JCORRAN/AliJConst.h [new file with mode: 0755]
PWGCF/Correlations/JCORRAN/AliJEventHeader.cxx [new file with mode: 0755]
PWGCF/Correlations/JCORRAN/AliJEventHeader.h [new file with mode: 0755]
PWGCF/Correlations/JCORRAN/AliJMCTrack.cxx [new file with mode: 0755]
PWGCF/Correlations/JCORRAN/AliJMCTrack.h [new file with mode: 0755]
PWGCF/Correlations/JCORRAN/AliJPhoton.cxx [new file with mode: 0644]
PWGCF/Correlations/JCORRAN/AliJPhoton.h [new file with mode: 0644]
PWGCF/Correlations/JCORRAN/AliJRunHeader.cxx [new file with mode: 0755]
PWGCF/Correlations/JCORRAN/AliJRunHeader.h [new file with mode: 0755]
PWGCF/Correlations/JCORRAN/AliJTrack.cxx [new file with mode: 0755]
PWGCF/Correlations/JCORRAN/AliJTrack.h [new file with mode: 0755]
PWGCF/Correlations/macros/jcorran/AddESDFilter.C [new file with mode: 0755]
PWGCF/Correlations/macros/jcorran/CreateAlienHandler.C [new file with mode: 0755]
PWGCF/Correlations/macros/jcorran/runGrid.C [new file with mode: 0755]
PWGCF/PWGCFCorrelationsJCORRANLinkDef.h [new file with mode: 0644]

diff --git a/PWGCF/CMakelibPWGCFCorrelationsJCORRAN.pkg b/PWGCF/CMakelibPWGCFCorrelationsJCORRAN.pkg
new file mode 100644 (file)
index 0000000..cf480f2
--- /dev/null
@@ -0,0 +1,50 @@
+# -*- mode: CMake -*-
+#--------------------------------------------------------------------------------#
+# Package File for PWG4Correlations/JCORRAN                                              #
+# Author : Johny Jose (johny.jose@cern.ch)                                       #
+# Variables Defined :                                                            #
+#                                                                                #
+# SRCS - C++ source files                                                        #
+# HDRS - C++ header files                                                        #
+# DHDR - ROOT Dictionary Linkdef header file                                     #
+# CSRCS - C source files                                                         #
+# CHDRS - C header files                                                         #
+# EINCLUDE - Include directories                                                 #
+# EDEFINE - Compiler definitions                                                 #
+# ELIBS - Extra libraries to link                                                #
+# ELIBSDIR - Extra library directories                                           #
+# PACKFFLAGS - Fortran compiler flags for package                                #
+# PACKCXXFLAGS - C++ compiler flags for package                                  #
+# PACKCFLAGS - C compiler flags for package                                      #
+# PACKSOFLAGS - Shared library linking flags                                     #
+# PACKLDFLAGS - Module linker flags                                              #
+# PACKBLIBS - Libraries to link (Executables only)                               #
+# EXPORT - Header files to be exported                                           #
+# CINTHDRS - Dictionary header files                                             #
+# CINTAUTOLINK - Set automatic dictionary generation                             #
+# ARLIBS - Archive Libraries and objects for linking (Executables only)          #
+# SHLIBS - Shared Libraries and objects for linking (Executables only)           #
+#--------------------------------------------------------------------------------#
+
+set ( SRCS  
+   Correlations/JCORRAN/AliJBaseTrack.cxx 
+        Correlations/JCORRAN/AliJPhoton.cxx 
+        Correlations/JCORRAN/AliJTrack.cxx 
+        Correlations/JCORRAN/AliJMCTrack.cxx 
+        Correlations/JCORRAN/AliJBaseEventHeader.cxx 
+        Correlations/JCORRAN/AliJEventHeader.cxx 
+        Correlations/JCORRAN/AliJRunHeader.cxx 
+       Correlations/JCORRAN/AliJCORRANTask.cxx
+    )
+
+
+string ( REPLACE ".cxx" ".h" HDRS "${SRCS} Correlations/JCORRAN/AliJConst.h" )
+
+set ( DHDR  PWGCFCorrelationsJCORRANLinkDef.h)
+
+string ( REPLACE ".cxx" ".h" EXPORT "${SRCS}" )
+
+set ( EINCLUDE ANALYSIS CORRFW PWGCF/Correlations/JCORRAN PWG/Tools STEER/AOD STEER/ESD STEER/STEERBase)
+
+
+
diff --git a/PWGCF/Correlations/JCORRAN/AliFlowBayesianPID.cxx b/PWGCF/Correlations/JCORRAN/AliFlowBayesianPID.cxx
new file mode 100755 (executable)
index 0000000..418a288
--- /dev/null
@@ -0,0 +1,6464 @@
+#include "AliFlowBayesianPID.h"
+
+#include "TDatabasePDG.h"
+#include "AliESDEvent.h"
+#include "AliESDtrack.h"
+#include "TH2D.h"
+#include "TSpline.h"
+#include "TF1.h"
+#include "AliTOFGeometry.h"
+#include "AliTOFT0maker.h"
+
+ClassImp(AliFlowBayesianPID)
+  
+TH2D* AliFlowBayesianPID::hPriors[fNspecies] = {NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL}; // histo with priors (hardcoded)
+TSpline3* AliFlowBayesianPID::fMism = NULL; // function for mismatch
+AliTOFGeometry* AliFlowBayesianPID::fTofGeo = NULL; // TOF geometry needed to reproduce mismatch shape
+
+//________________________________________________________________________
+AliFlowBayesianPID::AliFlowBayesianPID(AliESDpid *esdpid) 
+  :      AliPIDResponse(), fPIDesd(NULL), fDB(TDatabasePDG::Instance()), fNewTrackParam(0), fIsMC(0), fTOFres(84.0), fTOFResponse(NULL), fTPCResponse(NULL), fTOFmaker(NULL),fWTofMism(0.0), fProbTofMism(0.0), fZ(0) ,fMassTOF(0), fBBdata(NULL)
+{
+  // Constructor
+  Bool_t redopriors = kFALSE;
+  if(! hPriors[0]){
+    hPriors[0] = new TH2D("hPriorsEl","Priors as a function of Centrality [e];centrality;p_{t} (GeV/c)",12,-10,110,80,0,20);
+    redopriors = kTRUE;
+  }
+  if(! hPriors[1]){
+    hPriors[1] = new TH2D("hPriorsMu","Priors as a function of Centrality [#mu];centrality;p_{t} (GeV/c)",12,-10,110,80,0,20);
+    redopriors = kTRUE;
+  }
+  if(! hPriors[2]){
+    hPriors[2] = new TH2D("hPriorsPi","Priors as a function of Centrality [#pi];centrality;p_{t} (GeV/c)",12,-10,110,80,0,20);
+    redopriors = kTRUE;
+  }
+  if(! hPriors[3]){
+       hPriors[3] = new TH2D("hPriorsKa","Priors as a function of Centrality [K];centrality;p_{t} (GeV/c)",12,-10,110,80,0,20);
+       redopriors = kTRUE;
+  }
+  if(! hPriors[4]){
+    hPriors[4] = new TH2D("hPriorsPr","Priors as a function of Centrality [p];centrality;p_{t} (GeV/c)",12,-10,110,80,0,20);
+    redopriors = kTRUE;
+  }
+  if(! hPriors[5]){
+    hPriors[5] = new TH2D("hPriorsDe","Priors as a function of Centrality [p];centrality;p_{t} (GeV/c)",12,-10,110,80,0,20);
+    redopriors = kTRUE;
+  }
+  if(! hPriors[6]){
+    hPriors[6] = new TH2D("hPriorsTr","Priors as a function of Centrality [p];centrality;p_{t} (GeV/c)",12,-10,110,80,0,20);
+    redopriors = kTRUE;
+  }
+  if(! hPriors[7]){
+    hPriors[7] = new TH2D("hPriorsHe","Priors as a function of Centrality [p];centrality;p_{t} (GeV/c)",12,-10,110,80,0,20);
+    redopriors = kTRUE;
+  }
+
+  if(redopriors) SetPriors();
+
+  if(!fMism) fMism = GetMismatch();
+  if(! fTofGeo) fTofGeo = new AliTOFGeometry();
+
+  if(! esdpid)
+    fPIDesd = new AliESDpid();
+  else
+    fPIDesd = esdpid;
+
+  fTOFmaker = new AliTOFT0maker(fPIDesd);
+  fProb[0]=0.0;
+  fProb[1]=0.0;
+  fProb[2]=0.0;
+  fProb[3]=0.0;
+  fProb[4]=0.0;
+  fProb[5]=0.0;
+  fProb[6]=0.0;
+  fProb[7]=0.0;
+
+  fMass[0] = fDB->GetParticle(11)->Mass(); // e mass
+  fMass[1] = fDB->GetParticle(13)->Mass(); // mu mass
+  fMass[2] = fDB->GetParticle(211)->Mass(); // pi mass
+  fMass[3] = fDB->GetParticle(321)->Mass(); // K mass
+  fMass[4] = fDB->GetParticle(2212)->Mass(); // p mass
+  fMass[5] = fDB->GetParticle(2212)->Mass()+fDB->GetParticle(2112)->Mass(); // p mass
+  fMass[6] = fDB->GetParticle(2212)->Mass()+fDB->GetParticle(2112)->Mass()*2; // p mass
+  fMass[7] = (fDB->GetParticle(2212)->Mass()+fDB->GetParticle(2112)->Mass()*2)*0.5; // p mass
+  
+  // TOF response
+  fTOFResponse = new TF1("fTOFprob","[0]*TMath::Exp(-(x-[1])*(x-[1])/2/[2]/[2])* (x < [1]+[3]*[2]) + (x > [1]+[3]*[2])*[0]*TMath::Exp(-(x-[1]-[3]*[2]*0.5)*[3]/[2])",-7,7);
+  fTOFResponse->SetParameter(0,1);
+  fTOFResponse->SetParameter(1,-0.1);
+  fTOFResponse->SetParameter(2,1);
+  fTOFResponse->SetParameter(3,1.1);
+  fTOFResponse->SetParameter(0,1./fTOFResponse->Integral(-7,7));
+  fTOFResponse->SetLineColor(2);
+
+  // TPC response
+  fTPCResponse = new TF1("fTPCprob","[0]*TMath::Exp(-(x-[1])*(x-[1])/2/[2]/[2])* (x < [1]+[3]*[2]) + (x > [1]+[3]*[2])*[0]*TMath::Exp(-(x-[1]-[3]*[2]*0.5)*[3]/[2])",-7,7);
+  fTPCResponse->SetParameter(0,1);
+  fTPCResponse->SetParameter(1,0);
+  fTPCResponse->SetParameter(2,1);
+  fTPCResponse->SetParameter(3,1.8);
+  fTPCResponse->SetParameter(0,1./fTPCResponse->Integral(-7,7));
+  fTPCResponse->SetLineColor(4);
+
+  fBBdata = new TF1("fBBdata", "[0] * AliExternalTrackParam::BetheBlochAleph(x, [1], [2], [3], [4], [5])",0.1, 4000.);
+
+  // initialize the mask
+  for(Int_t i=0;i < fNdetectors;i++){
+    fMaskAND[i] = 0; // no dets required
+    fMaskOR[i] = 1; // all dets if available
+    fMaskCurrent[i] = 0; // current mask
+  }
+}
+//________________________________________________________________________
+AliFlowBayesianPID::~AliFlowBayesianPID(){
+  if(fTOFResponse) delete fTOFResponse; 
+  if(fTPCResponse) delete fTPCResponse;
+  if(fTOFmaker) delete fTOFmaker;
+  if(fBBdata) delete fBBdata;
+}
+//________________________________________________________________________
+void AliFlowBayesianPID::SetDetResponse(AliESDEvent *esd,Float_t centrality,EStartTimeType_t flagStart,Bool_t recomputeT0TOF){
+  if(!esd){
+    printf("AliFlowBayesianPID::SetDetResponse -> Error -> No valid esd event");
+    return;
+  }
+
+  // retune BB
+  Double_t AlephParameters[5];
+  Float_t mip = 51;
+  
+  if(centrality < 0){
+    AlephParameters[0] = 5.36613e-02;
+    AlephParameters[1] = 1.44343e+01;
+    AlephParameters[2] = 6.93875e-07;
+    AlephParameters[3] = 2.17858e+00;
+    AlephParameters[4] = 2.57153e+00;
+  }
+  else if(centrality < 10){
+    mip = 53.549869;
+    AlephParameters[0] = 0.073740;
+    AlephParameters[1] = 10.205724;
+    AlephParameters[2] = 0.000009;
+    AlephParameters[3] = 2.292470;
+    AlephParameters[4] = 2.029191;
+  }
+  else if(centrality < 20){
+    mip = 53.549979;
+    AlephParameters[0] = 0.074808;
+    AlephParameters[1] = 10.002850;
+    AlephParameters[2] = 0.000009;
+    AlephParameters[3] = 2.353473;
+    AlephParameters[4] = 2.070397;
+  }
+  else if(centrality < 30){
+    mip = 53.550000;
+    AlephParameters[0] = 0.076092;
+    AlephParameters[1] = 9.911953;
+    AlephParameters[2] = 0.000009;
+    AlephParameters[3] = 2.316073;
+    AlephParameters[4] = 2.026312;
+  }
+  else if(centrality < 40){
+    mip = 53.549172;
+    AlephParameters[0] = 0.082482;
+    AlephParameters[1] = 9.027005;
+    AlephParameters[2] = 0.000013;
+    AlephParameters[3] = 2.420034;
+    AlephParameters[4] = 1.963044;
+  }
+  else if(centrality < 50){
+    mip = 53.549823;
+    AlephParameters[0] = 0.082570;
+    AlephParameters[1] = 9.003131;
+    AlephParameters[2] = 0.000013;
+    AlephParameters[3] = 2.442916;
+    AlephParameters[4] = 1.976435;
+  }
+  else if(centrality < 60){
+    mip = 53.521724;
+    AlephParameters[0] = 0.082672;
+    AlephParameters[1] = 8.974422;
+    AlephParameters[2] = 0.000013;
+    AlephParameters[3] = 2.462914;
+    AlephParameters[4] = 1.986885;
+  }
+  else if(centrality < 70){
+    AlephParameters[0] = 8.29615e-02;
+    AlephParameters[1] = 9.41909e+00;
+    AlephParameters[2] = 1.40230e-05;
+    AlephParameters[3] = 2.44894e+00;
+    AlephParameters[4] = 2.06676e+00;
+  }
+  else if(centrality < 80){
+    AlephParameters[0] = 8.31397e-02;
+    AlephParameters[1] = 9.41126e+00;
+    AlephParameters[2] = 1.40230e-05;
+    AlephParameters[3] = 2.44848e+00;
+    AlephParameters[4] = 2.06326e+00;
+  }
+  else{
+    AlephParameters[0] = 8.38910e-02;
+    AlephParameters[1] = 9.30736e+00;
+    AlephParameters[2] = 1.40230e-05;
+    AlephParameters[3] = 2.45844e+00;
+    AlephParameters[4] = 2.07334e+00;
+  }
+  
+  fPIDesd->GetTPCResponse().SetBetheBlochParameters(AlephParameters[0],AlephParameters[1],AlephParameters[2],AlephParameters[3],AlephParameters[4]);
+  fPIDesd->GetTPCResponse().SetMip(mip);
+  
+  fBBdata->SetParameter(0, mip);
+  fBBdata->SetParameter(1, AlephParameters[0]);
+  fBBdata->SetParameter(2, AlephParameters[1]);
+  fBBdata->SetParameter(3, AlephParameters[2]);
+  fBBdata->SetParameter(4, AlephParameters[3]);
+  fBBdata->SetParameter(5, AlephParameters[4]);
+
+  if(recomputeT0TOF){
+    fTOFmaker->SetTimeResolution(fTOFres);     
+    fTOFmaker->ComputeT0TOF(esd);
+    fTOFmaker->WriteInESD(esd);
+  }
+
+  fPIDesd->SetTOFResponse(esd,flagStart);
+
+  if(fNewTrackParam){
+    fPIDesd->GetTOFResponse().SetTrackParameter(0, 0.008);
+    fPIDesd->GetTOFResponse().SetTrackParameter(1,0.008);
+    fPIDesd->GetTOFResponse().SetTrackParameter(2,0.002);
+    fPIDesd->GetTOFResponse().SetTrackParameter(3,40);
+  }
+
+  fPIDesd->MakePID(esd,kFALSE);
+}
+//________________________________________________________________________
+void AliFlowBayesianPID::ComputeWeights(const AliESDtrack *t,Float_t centr){
+  Float_t pt = t->Pt();
+  Float_t p = t->P();
+  Double_t ptpc[3];
+  t->GetInnerPxPyPz(ptpc);
+  Float_t momtpc=TMath::Sqrt(ptpc[0]*ptpc[0] + ptpc[1]*ptpc[1] + ptpc[2]*ptpc[2]);
+     
+  // TPC
+  Float_t dedx = t->GetTPCsignal();
+  if(t->GetStatus() & AliESDtrack::kTPCout && dedx > 40 && fMaskOR[0]){ // if TPC PID available    
+    for(Int_t iS=0;iS<fNspecies;iS++){
+      Float_t dedxExp=0;
+      if(iS==0) dedxExp = fPIDesd->GetTPCResponse().GetExpectedSignal(momtpc,AliPID::kElectron);
+      else if(iS==1) dedxExp = fPIDesd->GetTPCResponse().GetExpectedSignal(momtpc,AliPID::kMuon);
+      else if(iS==2) dedxExp = fPIDesd->GetTPCResponse().GetExpectedSignal(momtpc,AliPID::kPion);
+      else if(iS==3) dedxExp = fPIDesd->GetTPCResponse().GetExpectedSignal(momtpc,AliPID::kKaon);
+      else if(iS==4) dedxExp = fPIDesd->GetTPCResponse().GetExpectedSignal(momtpc,AliPID::kProton);
+      else if(iS==5) dedxExp = fPIDesd->GetTPCResponse().GetExpectedSignal(momtpc,AliPID::kDeuteron);
+      else if(iS==6) dedxExp = fPIDesd->GetTPCResponse().GetExpectedSignal(momtpc,AliPID::kTriton);
+      else if(iS==7) dedxExp = fPIDesd->GetTPCResponse().Bethe(momtpc/fMass[7])*5;
+      
+      Float_t resolutionTPC = 1;
+      if(iS==0) resolutionTPC =  fPIDesd->GetTPCResponse().GetExpectedSigma(momtpc,t->GetTPCsignalN(),AliPID::kElectron); 
+      else if(iS==1) resolutionTPC =  fPIDesd->GetTPCResponse().GetExpectedSigma(momtpc,t->GetTPCsignalN(),AliPID::kMuon);
+      else if(iS==2) resolutionTPC =  fPIDesd->GetTPCResponse().GetExpectedSigma(momtpc,t->GetTPCsignalN(),AliPID::kPion);
+      else if(iS==3) resolutionTPC =  fPIDesd->GetTPCResponse().GetExpectedSigma(momtpc,t->GetTPCsignalN(),AliPID::kKaon);
+      else if(iS==4) resolutionTPC =  fPIDesd->GetTPCResponse().GetExpectedSigma(momtpc,t->GetTPCsignalN(),AliPID::kProton);
+      else if(iS==5) resolutionTPC =  fPIDesd->GetTPCResponse().GetExpectedSigma(momtpc,t->GetTPCsignalN(),AliPID::kDeuteron);
+      else if(iS==6) resolutionTPC =  fPIDesd->GetTPCResponse().GetExpectedSigma(momtpc,t->GetTPCsignalN(),AliPID::kTriton);
+      else if(iS==7) resolutionTPC =  fPIDesd->GetTPCResponse().Bethe(momtpc/fMass[7])*5*0.07;
+
+      if(centr < 10) resolutionTPC *= 1.07;
+      else if(centr < 20) resolutionTPC *= 1.03;
+
+      fWeights[0][iS] = fTPCResponse->Eval((dedx - dedxExp)/resolutionTPC)/resolutionTPC;
+    }
+    fMaskCurrent[0] = kTRUE;
+  }
+  else{
+    for(Int_t iS=0;iS<fNspecies;iS++) fWeights[0][iS] = 1;
+    fMaskCurrent[0] = kFALSE;
+  }
+
+  // TOF
+  fWTofMism = 0;
+  if((t->GetStatus() & AliESDtrack::kTOFout) &&  (t->GetStatus() & AliESDtrack::kTIME) && t->GetIntegratedLength() > 365. && fMaskOR[1]){ // if TOF PID available
+    Float_t invCentr = 0;
+    if(centr >= 0) invCentr = 1 - centr/100;
+    Float_t mismfrac = 0.005 + 0.05*invCentr*invCentr*invCentr;
+
+    Float_t timeTOF = t->GetTOFsignal() - fPIDesd->GetTOFResponse().GetStartTime(p);
+
+    // TOF mismatch weight
+    Int_t det[5];
+    Float_t length, timeextra, pos[3];
+    /* compute length and expected time */
+    fTofGeo->GetVolumeIndices(t->GetTOFCalChannel(), det);
+    fTofGeo->GetPosPar(det, pos);
+    length = 0.;
+    for (Int_t i = 0; i < 3; i++) length += pos[i] * pos[i];
+    length = TMath::Sqrt(length);
+    timeextra = length * 33.3564095198152043;
+    Float_t dz =t->GetTOFsignalDz();
+    Float_t dx =t->GetTOFsignalDx();
+    Float_t mismweight = TMath::Max(fMism->Eval(timeTOF - timeextra),0.0000001) * ((0.5 + 0.05/pt/pt/pt)*(0.75 + 0.23 * (1.3*dx*dx + 0.7*dz*dz))); // mismatch probabilities
+    fWTofMism = mismfrac*mismweight;
+
+    Double_t inttimes[8];
+    t->GetIntegratedTimes(inttimes);
+    inttimes[5] = inttimes[0] / p * fMass[5] * TMath::Sqrt(1+p*p/fMass[5]/fMass[5]);
+    inttimes[6] = inttimes[0] / p * fMass[6] * TMath::Sqrt(1+p*p/fMass[6]/fMass[6]);
+    inttimes[7] = inttimes[0] / p * fMass[7] * TMath::Sqrt(1+p*p/fMass[7]/fMass[7]);
+
+    for(Int_t iS=0;iS<fNspecies;iS++){
+      Float_t expsigma = fPIDesd->GetTOFResponse().GetExpectedSigma(p, inttimes[iS], fMass[iS]);
+      Float_t delta = timeTOF - inttimes[iS];
+      if (TMath::Abs(delta) > 5*expsigma) {
+       fWeights[1][iS] = mismfrac*mismweight;
+      } else
+       fWeights[1][iS] = fTOFResponse->Eval(delta/expsigma)/expsigma + mismfrac*mismweight;
+    }
+    fMaskCurrent[1] = kTRUE;
+  }
+  else{
+    for(Int_t iS=0;iS<fNspecies;iS++) fWeights[1][iS] = 1;    
+    fMaskCurrent[1] = kFALSE;
+  }
+
+  for(Int_t j=0;j < 2;j++){
+    Float_t rcc = 0;
+    for(Int_t iS=0;iS<fNspecies;iS++) rcc += fWeights[j][iS];
+    if(rcc <=0 ) rcc = 1;
+    for(Int_t iS=0;iS<fNspecies;iS++) fWeights[j][iS] /= rcc;
+
+    if(j==1) fWTofMism /= rcc;
+  }  
+}
+//________________________________________________________________________
+void AliFlowBayesianPID::ComputeProb(const AliESDtrack *t,Float_t centr){
+  ComputeWeights(t,centr);
+  Float_t priors[fNspecies];
+  fProbTofMism = 0;
+
+  for(Int_t iS=0;iS<fNspecies;iS++) priors[iS] = hPriors[iS]->GetBinContent(hPriors[iS]->GetXaxis()->FindBin(centr),hPriors[iS]->GetYaxis()->FindBin(t->Pt()));
+
+
+  if((!fMaskAND[0] || fMaskCurrent[0]) && (!fMaskAND[1] || fMaskCurrent[1])){
+    Float_t rcc = 0;
+    for(Int_t iS=0;iS<fNspecies;iS++){
+      rcc += fWeights[0][iS]*fWeights[1][iS]*priors[iS];
+      fProbTofMism += fWeights[0][iS]*fWTofMism*priors[iS]; 
+    }
+    if(rcc > 0){
+      for(Int_t iS=0;iS<fNspecies;iS++){
+       fProb[iS] = fWeights[0][iS]*fWeights[1][iS]*priors[iS]/rcc;
+      }
+      fProbTofMism /=rcc;
+    }
+    else{
+      for(Int_t iS=0;iS<fNspecies;iS++) fProb[iS] = 0;
+      fProbTofMism = 0;
+    }
+  }
+  else{
+    for(Int_t iS=0;iS<fNspecies;iS++) fProb[iS] = 0;
+    fProbTofMism = 0;   
+  }
+  
+  if(t->P() > 0.2 && t->GetTPCsignal() > 40 && (t->GetStatus() & AliESDtrack::kTOFout) && (t->GetStatus() & AliESDtrack::kTIME) && (t->GetIntegratedLength() > 365.)&& t->GetTOFsignal()> 12000){
+    Double_t ptpc[3];
+    t->GetInnerPxPyPz(ptpc);
+    Float_t momtpc=TMath::Sqrt(ptpc[0]*ptpc[0] + ptpc[1]*ptpc[1] + ptpc[2]*ptpc[2]);
+
+    Int_t signMass = 1;
+
+    Float_t beta = t->GetIntegratedLength() / (t->GetTOFsignal() - fPIDesd->GetTOFResponse().GetStartTime(t->P()))  * 33.3564095198152043;
+    Float_t gamma = 1;
+    if(beta<1){
+      gamma = 1./TMath::Sqrt(1-beta*beta);
+    }
+    else if(beta>1){
+      gamma = 1./TMath::Sqrt(beta*beta-1);
+      signMass=-1;
+    }
+    fMassTOF = t->P()/beta/gamma;
+    
+    Float_t bb = fBBdata->Eval(momtpc/fMassTOF);
+    fZ = TMath::Power(t->GetTPCsignal()/bb,0.431)*t->GetSign();
+
+    fMassTOF *= signMass;
+  }
+  else{
+    fZ=0;
+    fMassTOF=0;
+  }
+  
+}
+
+//________________________________________________________________________
+void AliFlowBayesianPID::SetPriors(){
+  Float_t fBinLimitPID[18];
+  fBinLimitPID[0] = 0.300000;
+  fBinLimitPID[1] = 0.400000;
+  fBinLimitPID[2] = 0.500000;
+  fBinLimitPID[3] = 0.600000;
+  fBinLimitPID[4] = 0.700000;
+  fBinLimitPID[5] = 0.800000;
+  fBinLimitPID[6] = 0.900000;
+  fBinLimitPID[7] = 1.000000;
+  fBinLimitPID[8] = 1.200000;
+  fBinLimitPID[9] = 1.400000;
+  fBinLimitPID[10] = 1.600000;
+  fBinLimitPID[11] = 1.800000;
+  fBinLimitPID[12] = 2.000000;
+  fBinLimitPID[13] = 2.200000;
+  fBinLimitPID[14] = 2.400000;
+  fBinLimitPID[15] = 2.600000;
+  fBinLimitPID[16] = 2.800000;
+  fBinLimitPID[17] = 3.000000;
+
+  Float_t fC[9][18][5];
+  Int_t i=0;
+  // 0-10%
+  {
+    i=0;
+    fC[i][0][0] = 0.005;
+    fC[i][0][1] = 0.005;
+    fC[i][0][2] = 1.0000;
+    fC[i][0][3] = 0.010;
+    fC[i][0][4] = 0.010;
+    
+    fC[i][1][0] = 0.005;
+    fC[i][1][1] = 0.005;
+    fC[i][1][2] = 1.0000;
+    fC[i][1][3] = 0.0168;
+    fC[i][1][4] = 0.01;
+    
+    fC[i][2][0] = 0.005;
+    fC[i][2][1] = 0.005;
+    fC[i][2][2] = 1.0000;
+    fC[i][2][3] = 0.0272;
+    fC[i][2][4] = 0.01;
+    
+    fC[i][3][0] = 0.005;
+    fC[i][3][1] = 0.005;
+    fC[i][3][2] = 1.0000;
+    fC[i][3][3] = 0.0562;
+    fC[i][3][4] = 0.0258;
+    
+    fC[i][4][0] = 0.005;
+    fC[i][4][1] = 0.005;
+    fC[i][4][2] = 1.0000;
+    fC[i][4][3] = 0.0861;
+    fC[i][4][4] = 0.0496;
+    
+    fC[i][5][0] = 0.005;
+    fC[i][5][1] = 0.005;
+    fC[i][5][2] = 1.0000;
+    fC[i][5][3] = 0.1168;
+    fC[i][5][4] = 0.0740;
+    
+    fC[i][6][0] = 0.005;
+    fC[i][6][1] = 0.005;
+    fC[i][6][2] = 1.0000;
+    fC[i][6][3] = 0.1476;
+    fC[i][6][4] = 0.0998;
+    
+    fC[i][7][0] = 0.005;
+    fC[i][7][1] = 0.005;
+    fC[i][7][2] = 1.0000;
+    fC[i][7][3] = 0.1810;
+    fC[i][7][4] = 0.1296;
+    
+    fC[i][8][0] = 0.005;
+    fC[i][8][1] = 0.005;
+    fC[i][8][2] = 1.0000;
+    fC[i][8][3] = 0.2240;
+    fC[i][8][4] = 0.1827;
+    
+    fC[i][9][0] = 0.005;
+    fC[i][9][1] = 0.005;
+    fC[i][9][2] = 1.0000;
+    fC[i][9][3] = 0.2812;
+    fC[i][9][4] = 0.2699;
+    
+    fC[i][10][0] = 0.005;
+    fC[i][10][1] = 0.005;
+    fC[i][10][2] = 1.0000;
+    fC[i][10][3] = 0.3328;
+    fC[i][10][4] = 0.3714;
+    
+    fC[i][11][0] = 0.005;
+    fC[i][11][1] = 0.005;
+    fC[i][11][2] = 1.0000;
+    fC[i][11][3] = 0.3780;
+    fC[i][11][4] = 0.4810;
+    
+    fC[i][12][0] = 0.005;
+    fC[i][12][1] = 0.005;
+    fC[i][12][2] = 1.0000;
+    fC[i][12][3] = 0.4125;
+    fC[i][12][4] = 0.5771;
+    
+    fC[i][13][0] = 0.005;
+    fC[i][13][1] = 0.005;
+    fC[i][13][2] = 1.0000;
+    fC[i][13][3] = 0.4486;
+    fC[i][13][4] = 0.6799;
+    
+    fC[i][14][0] = 0.005;
+    fC[i][14][1] = 0.005;
+    fC[i][14][2] = 1.0000;
+    fC[i][14][3] = 0.4840;
+    fC[i][14][4] = 0.7668;
+    
+    fC[i][15][0] = 0.005;
+    fC[i][15][1] = 0.005;
+    fC[i][15][2] = 1.0000;
+    fC[i][15][3] = 0.4971;
+    fC[i][15][4] = 0.8288;
+    
+    fC[i][16][0] = 0.005;
+    fC[i][16][1] = 0.005;
+    fC[i][16][2] = 1.0000;
+    fC[i][16][3] = 0.4956;
+    fC[i][16][4] = 0.8653;
+    
+    fC[i][17][0] = 0.005;
+    fC[i][17][1] = 0.005;
+    fC[i][17][2] = 1.0000;
+    fC[i][17][3] = 0.5173;
+    fC[i][17][4] = 0.9059;   
+  }
+  // 10-20%
+  {
+    i=1;
+    fC[i][0][0] = 0.005;
+    fC[i][0][1] = 0.005;
+    fC[i][0][2] = 1.0000;
+    fC[i][0][3] = 0.010;
+    fC[i][0][4] = 0.010;
+    
+    fC[i][1][0] = 0.005;
+    fC[i][1][1] = 0.005;
+    fC[i][1][2] = 1.0000;
+    fC[i][1][3] = 0.0132;
+    fC[i][1][4] = 0.01;
+    
+    fC[i][2][0] = 0.005;
+    fC[i][2][1] = 0.005;
+    fC[i][2][2] = 1.0000;
+    fC[i][2][3] = 0.0283;
+    fC[i][2][4] = 0.01;
+    
+    fC[i][3][0] = 0.005;
+    fC[i][3][1] = 0.005;
+    fC[i][3][2] = 1.0000;
+    fC[i][3][3] = 0.0577;
+    fC[i][3][4] = 0.0279;
+    
+    fC[i][4][0] = 0.005;
+    fC[i][4][1] = 0.005;
+    fC[i][4][2] = 1.0000;
+    fC[i][4][3] = 0.0884;
+    fC[i][4][4] = 0.0534;
+    
+    fC[i][5][0] = 0.005;
+    fC[i][5][1] = 0.005;
+    fC[i][5][2] = 1.0000;
+    fC[i][5][3] = 0.1179;
+    fC[i][5][4] = 0.0794;
+    
+    fC[i][6][0] = 0.005;
+    fC[i][6][1] = 0.005;
+    fC[i][6][2] = 1.0000;
+    fC[i][6][3] = 0.1480;
+    fC[i][6][4] = 0.1058;
+    
+    fC[i][7][0] = 0.005;
+    fC[i][7][1] = 0.005;
+    fC[i][7][2] = 1.0000;
+    fC[i][7][3] = 0.1807;
+    fC[i][7][4] = 0.1366;
+    
+    fC[i][8][0] = 0.005;
+    fC[i][8][1] = 0.005;
+    fC[i][8][2] = 1.0000;
+    fC[i][8][3] = 0.2219;
+    fC[i][8][4] = 0.1891;
+    
+    fC[i][9][0] = 0.005;
+    fC[i][9][1] = 0.005;
+    fC[i][9][2] = 1.0000;
+    fC[i][9][3] = 0.2804;
+    fC[i][9][4] = 0.2730;
+    
+    fC[i][10][0] = 0.005;
+    fC[i][10][1] = 0.005;
+    fC[i][10][2] = 1.0000;
+    fC[i][10][3] = 0.3283;
+    fC[i][10][4] = 0.3660;
+    
+    fC[i][11][0] = 0.005;
+    fC[i][11][1] = 0.005;
+    fC[i][11][2] = 1.0000;
+    fC[i][11][3] = 0.3710;
+    fC[i][11][4] = 0.4647;
+    
+    fC[i][12][0] = 0.005;
+    fC[i][12][1] = 0.005;
+    fC[i][12][2] = 1.0000;
+    fC[i][12][3] = 0.4093;
+    fC[i][12][4] = 0.5566;
+    
+    fC[i][13][0] = 0.005;
+    fC[i][13][1] = 0.005;
+    fC[i][13][2] = 1.0000;
+    fC[i][13][3] = 0.4302;
+    fC[i][13][4] = 0.6410;
+    
+    fC[i][14][0] = 0.005;
+    fC[i][14][1] = 0.005;
+    fC[i][14][2] = 1.0000;
+    fC[i][14][3] = 0.4649;
+    fC[i][14][4] = 0.7055;
+    
+    fC[i][15][0] = 0.005;
+    fC[i][15][1] = 0.005;
+    fC[i][15][2] = 1.0000;
+    fC[i][15][3] = 0.4523;
+    fC[i][15][4] = 0.7440;
+    
+    fC[i][16][0] = 0.005;
+    fC[i][16][1] = 0.005;
+    fC[i][16][2] = 1.0000;
+    fC[i][16][3] = 0.4591;
+    fC[i][16][4] = 0.7799;
+    
+    fC[i][17][0] = 0.005;
+    fC[i][17][1] = 0.005;
+    fC[i][17][2] = 1.0000;
+    fC[i][17][3] = 0.4804;
+    fC[i][17][4] = 0.8218;
+  }
+  // 20-30%
+  {
+    i=2;
+    fC[i][0][0] = 0.005;
+    fC[i][0][1] = 0.005;
+    fC[i][0][2] = 1.0000;
+    fC[i][0][3] = 0.010;
+    fC[i][0][4] = 0.010;
+    
+    fC[i][1][0] = 0.005;
+    fC[i][1][1] = 0.005;
+    fC[i][1][2] = 1.0000;
+    fC[i][1][3] = 0.0102;
+    fC[i][1][4] = 0.01;
+    
+    fC[i][2][0] = 0.005;
+    fC[i][2][1] = 0.005;
+    fC[i][2][2] = 1.0000;
+    fC[i][2][3] = 0.0292;
+    fC[i][2][4] = 0.01;
+    
+    fC[i][3][0] = 0.005;
+    fC[i][3][1] = 0.005;
+    fC[i][3][2] = 1.0000;
+    fC[i][3][3] = 0.0597;
+    fC[i][3][4] = 0.0296;
+    
+    fC[i][4][0] = 0.005;
+    fC[i][4][1] = 0.005;
+    fC[i][4][2] = 1.0000;
+    fC[i][4][3] = 0.0900;
+    fC[i][4][4] = 0.0589;
+    
+    fC[i][5][0] = 0.005;
+    fC[i][5][1] = 0.005;
+    fC[i][5][2] = 1.0000;
+    fC[i][5][3] = 0.1199;
+    fC[i][5][4] = 0.0859;
+    
+    fC[i][6][0] = 0.005;
+    fC[i][6][1] = 0.005;
+    fC[i][6][2] = 1.0000;
+    fC[i][6][3] = 0.1505;
+    fC[i][6][4] = 0.1141;
+    
+    fC[i][7][0] = 0.005;
+    fC[i][7][1] = 0.005;
+    fC[i][7][2] = 1.0000;
+    fC[i][7][3] = 0.1805;
+    fC[i][7][4] = 0.1454;
+    
+    fC[i][8][0] = 0.005;
+    fC[i][8][1] = 0.005;
+    fC[i][8][2] = 1.0000;
+    fC[i][8][3] = 0.2221;
+    fC[i][8][4] = 0.2004;
+    
+    fC[i][9][0] = 0.005;
+    fC[i][9][1] = 0.005;
+    fC[i][9][2] = 1.0000;
+    fC[i][9][3] = 0.2796;
+    fC[i][9][4] = 0.2838;
+    
+    fC[i][10][0] = 0.005;
+    fC[i][10][1] = 0.005;
+    fC[i][10][2] = 1.0000;
+    fC[i][10][3] = 0.3271;
+    fC[i][10][4] = 0.3682;
+    
+    fC[i][11][0] = 0.005;
+    fC[i][11][1] = 0.005;
+    fC[i][11][2] = 1.0000;
+    fC[i][11][3] = 0.3648;
+    fC[i][11][4] = 0.4509;
+    
+    fC[i][12][0] = 0.005;
+    fC[i][12][1] = 0.005;
+    fC[i][12][2] = 1.0000;
+    fC[i][12][3] = 0.3988;
+    fC[i][12][4] = 0.5339;
+    
+    fC[i][13][0] = 0.005;
+    fC[i][13][1] = 0.005;
+    fC[i][13][2] = 1.0000;
+    fC[i][13][3] = 0.4315;
+    fC[i][13][4] = 0.5995;
+    
+    fC[i][14][0] = 0.005;
+    fC[i][14][1] = 0.005;
+    fC[i][14][2] = 1.0000;
+    fC[i][14][3] = 0.4548;
+    fC[i][14][4] = 0.6612;
+    
+    fC[i][15][0] = 0.005;
+    fC[i][15][1] = 0.005;
+    fC[i][15][2] = 1.0000;
+    fC[i][15][3] = 0.4744;
+    fC[i][15][4] = 0.7060;
+    
+    fC[i][16][0] = 0.005;
+    fC[i][16][1] = 0.005;
+    fC[i][16][2] = 1.0000;
+    fC[i][16][3] = 0.4899;
+    fC[i][16][4] = 0.7388;
+    
+    fC[i][17][0] = 0.005;
+    fC[i][17][1] = 0.005;
+    fC[i][17][2] = 1.0000;
+    fC[i][17][3] = 0.4411;
+    fC[i][17][4] = 0.7293;
+  }
+  // 30-40%
+  {
+    i=3;
+    fC[i][0][0] = 0.005;
+    fC[i][0][1] = 0.005;
+    fC[i][0][2] = 1.0000;
+    fC[i][0][3] = 0.010;
+    fC[i][0][4] = 0.010;
+    
+    fC[i][1][0] = 0.005;
+    fC[i][1][1] = 0.005;
+    fC[i][1][2] = 1.0000;
+    fC[i][1][3] = 0.01;
+    fC[i][1][4] = 0.01;
+    
+    fC[i][2][0] = 0.005;
+    fC[i][2][1] = 0.005;
+    fC[i][2][2] = 1.0000;
+    fC[i][2][3] = 0.0306;
+    fC[i][2][4] = 0.01;
+    
+    fC[i][3][0] = 0.005;
+    fC[i][3][1] = 0.005;
+    fC[i][3][2] = 1.0000;
+    fC[i][3][3] = 0.0617;
+    fC[i][3][4] = 0.0338;
+    
+    fC[i][4][0] = 0.005;
+    fC[i][4][1] = 0.005;
+    fC[i][4][2] = 1.0000;
+    fC[i][4][3] = 0.0920;
+    fC[i][4][4] = 0.0652;
+    
+    fC[i][5][0] = 0.005;
+    fC[i][5][1] = 0.005;
+    fC[i][5][2] = 1.0000;
+    fC[i][5][3] = 0.1211;
+    fC[i][5][4] = 0.0955;
+    
+    fC[i][6][0] = 0.005;
+    fC[i][6][1] = 0.005;
+    fC[i][6][2] = 1.0000;
+    fC[i][6][3] = 0.1496;
+    fC[i][6][4] = 0.1242;
+    
+    fC[i][7][0] = 0.005;
+    fC[i][7][1] = 0.005;
+    fC[i][7][2] = 1.0000;
+    fC[i][7][3] = 0.1807;
+    fC[i][7][4] = 0.1576;
+    
+    fC[i][8][0] = 0.005;
+    fC[i][8][1] = 0.005;
+    fC[i][8][2] = 1.0000;
+    fC[i][8][3] = 0.2195;
+    fC[i][8][4] = 0.2097;
+    
+    fC[i][9][0] = 0.005;
+    fC[i][9][1] = 0.005;
+    fC[i][9][2] = 1.0000;
+    fC[i][9][3] = 0.2732;
+    fC[i][9][4] = 0.2884;
+    
+    fC[i][10][0] = 0.005;
+    fC[i][10][1] = 0.005;
+    fC[i][10][2] = 1.0000;
+    fC[i][10][3] = 0.3204;
+    fC[i][10][4] = 0.3679;
+    
+    fC[i][11][0] = 0.005;
+    fC[i][11][1] = 0.005;
+    fC[i][11][2] = 1.0000;
+    fC[i][11][3] = 0.3564;
+    fC[i][11][4] = 0.4449;
+    
+    fC[i][12][0] = 0.005;
+    fC[i][12][1] = 0.005;
+    fC[i][12][2] = 1.0000;
+    fC[i][12][3] = 0.3791;
+    fC[i][12][4] = 0.5052;
+    
+    fC[i][13][0] = 0.005;
+    fC[i][13][1] = 0.005;
+    fC[i][13][2] = 1.0000;
+    fC[i][13][3] = 0.4062;
+    fC[i][13][4] = 0.5647;
+    
+    fC[i][14][0] = 0.005;
+    fC[i][14][1] = 0.005;
+    fC[i][14][2] = 1.0000;
+    fC[i][14][3] = 0.4234;
+    fC[i][14][4] = 0.6203;
+    
+    fC[i][15][0] = 0.005;
+    fC[i][15][1] = 0.005;
+    fC[i][15][2] = 1.0000;
+    fC[i][15][3] = 0.4441;
+    fC[i][15][4] = 0.6381;
+    
+    fC[i][16][0] = 0.005;
+    fC[i][16][1] = 0.005;
+    fC[i][16][2] = 1.0000;
+    fC[i][16][3] = 0.4629;
+    fC[i][16][4] = 0.6496;
+    
+    fC[i][17][0] = 0.005;
+    fC[i][17][1] = 0.005;
+    fC[i][17][2] = 1.0000;
+    fC[i][17][3] = 0.4293;
+    fC[i][17][4] = 0.6491;
+  }
+  // 40-50%
+  {
+    i=4;
+    fC[i][0][0] = 0.005;
+    fC[i][0][1] = 0.005;
+    fC[i][0][2] = 1.0000;
+    fC[i][0][3] = 0.010;
+    fC[i][0][4] = 0.010;
+    
+    fC[i][1][0] = 0.005;
+    fC[i][1][1] = 0.005;
+    fC[i][1][2] = 1.0000;
+    fC[i][1][3] = 0.01;
+    fC[i][1][4] = 0.01;
+    
+    fC[i][2][0] = 0.005;
+    fC[i][2][1] = 0.005;
+    fC[i][2][2] = 1.0000;
+    fC[i][2][3] = 0.0319;
+    fC[i][2][4] = 0.01;
+    
+    fC[i][3][0] = 0.005;
+    fC[i][3][1] = 0.005;
+    fC[i][3][2] = 1.0000;
+    fC[i][3][3] = 0.0639;
+    fC[i][3][4] = 0.0371;
+    
+    fC[i][4][0] = 0.005;
+    fC[i][4][1] = 0.005;
+    fC[i][4][2] = 1.0000;
+    fC[i][4][3] = 0.0939;
+    fC[i][4][4] = 0.0725;
+    
+    fC[i][5][0] = 0.005;
+    fC[i][5][1] = 0.005;
+    fC[i][5][2] = 1.0000;
+    fC[i][5][3] = 0.1224;
+    fC[i][5][4] = 0.1045;
+    
+    fC[i][6][0] = 0.005;
+    fC[i][6][1] = 0.005;
+    fC[i][6][2] = 1.0000;
+    fC[i][6][3] = 0.1520;
+    fC[i][6][4] = 0.1387;
+    
+    fC[i][7][0] = 0.005;
+    fC[i][7][1] = 0.005;
+    fC[i][7][2] = 1.0000;
+    fC[i][7][3] = 0.1783;
+    fC[i][7][4] = 0.1711;
+    
+    fC[i][8][0] = 0.005;
+    fC[i][8][1] = 0.005;
+    fC[i][8][2] = 1.0000;
+    fC[i][8][3] = 0.2202;
+    fC[i][8][4] = 0.2269;
+    
+    fC[i][9][0] = 0.005;
+    fC[i][9][1] = 0.005;
+    fC[i][9][2] = 1.0000;
+    fC[i][9][3] = 0.2672;
+    fC[i][9][4] = 0.2955;
+    
+    fC[i][10][0] = 0.005;
+    fC[i][10][1] = 0.005;
+    fC[i][10][2] = 1.0000;
+    fC[i][10][3] = 0.3191;
+    fC[i][10][4] = 0.3676;
+    
+    fC[i][11][0] = 0.005;
+    fC[i][11][1] = 0.005;
+    fC[i][11][2] = 1.0000;
+    fC[i][11][3] = 0.3434;
+    fC[i][11][4] = 0.4321;
+    
+    fC[i][12][0] = 0.005;
+    fC[i][12][1] = 0.005;
+    fC[i][12][2] = 1.0000;
+    fC[i][12][3] = 0.3692;
+    fC[i][12][4] = 0.4879;
+    
+    fC[i][13][0] = 0.005;
+    fC[i][13][1] = 0.005;
+    fC[i][13][2] = 1.0000;
+    fC[i][13][3] = 0.3993;
+    fC[i][13][4] = 0.5377;
+    
+    fC[i][14][0] = 0.005;
+    fC[i][14][1] = 0.005;
+    fC[i][14][2] = 1.0000;
+    fC[i][14][3] = 0.3818;
+    fC[i][14][4] = 0.5547;
+    
+    fC[i][15][0] = 0.005;
+    fC[i][15][1] = 0.005;
+    fC[i][15][2] = 1.0000;
+    fC[i][15][3] = 0.4003;
+    fC[i][15][4] = 0.5484;
+    
+    fC[i][16][0] = 0.005;
+    fC[i][16][1] = 0.005;
+    fC[i][16][2] = 1.0000;
+    fC[i][16][3] = 0.4281;
+    fC[i][16][4] = 0.5383;
+    
+    fC[i][17][0] = 0.005;
+    fC[i][17][1] = 0.005;
+    fC[i][17][2] = 1.0000;
+    fC[i][17][3] = 0.3960;
+    fC[i][17][4] = 0.5374;
+  }
+  // 50-60%
+  {
+    i=5;
+    fC[i][0][0] = 0.005;
+    fC[i][0][1] = 0.005;
+    fC[i][0][2] = 1.0000;
+    fC[i][0][3] = 0.010;
+    fC[i][0][4] = 0.010;
+    
+    fC[i][1][0] = 0.005;
+    fC[i][1][1] = 0.005;
+    fC[i][1][2] = 1.0000;
+    fC[i][1][3] = 0.01;
+    fC[i][1][4] = 0.01;
+    
+    fC[i][2][0] = 0.005;
+    fC[i][2][1] = 0.005;
+    fC[i][2][2] = 1.0000;
+    fC[i][2][3] = 0.0329;
+    fC[i][2][4] = 0.01;
+    
+    fC[i][3][0] = 0.005;
+    fC[i][3][1] = 0.005;
+    fC[i][3][2] = 1.0000;
+    fC[i][3][3] = 0.0653;
+    fC[i][3][4] = 0.0423;
+    
+    fC[i][4][0] = 0.005;
+    fC[i][4][1] = 0.005;
+    fC[i][4][2] = 1.0000;
+    fC[i][4][3] = 0.0923;
+    fC[i][4][4] = 0.0813;
+    
+    fC[i][5][0] = 0.005;
+    fC[i][5][1] = 0.005;
+    fC[i][5][2] = 1.0000;
+    fC[i][5][3] = 0.1219;
+    fC[i][5][4] = 0.1161;
+    
+    fC[i][6][0] = 0.005;
+    fC[i][6][1] = 0.005;
+    fC[i][6][2] = 1.0000;
+    fC[i][6][3] = 0.1519;
+    fC[i][6][4] = 0.1520;
+    
+    fC[i][7][0] = 0.005;
+    fC[i][7][1] = 0.005;
+    fC[i][7][2] = 1.0000;
+    fC[i][7][3] = 0.1763;
+    fC[i][7][4] = 0.1858;
+    
+    fC[i][8][0] = 0.005;
+    fC[i][8][1] = 0.005;
+    fC[i][8][2] = 1.0000;
+    fC[i][8][3] = 0.2178;
+    fC[i][8][4] = 0.2385;
+    
+    fC[i][9][0] = 0.005;
+    fC[i][9][1] = 0.005;
+    fC[i][9][2] = 1.0000;
+    fC[i][9][3] = 0.2618;
+    fC[i][9][4] = 0.3070;
+    
+    fC[i][10][0] = 0.005;
+    fC[i][10][1] = 0.005;
+    fC[i][10][2] = 1.0000;
+    fC[i][10][3] = 0.3067;
+    fC[i][10][4] = 0.3625;
+    
+    fC[i][11][0] = 0.005;
+    fC[i][11][1] = 0.005;
+    fC[i][11][2] = 1.0000;
+    fC[i][11][3] = 0.3336;
+    fC[i][11][4] = 0.4188;
+    
+    fC[i][12][0] = 0.005;
+    fC[i][12][1] = 0.005;
+    fC[i][12][2] = 1.0000;
+    fC[i][12][3] = 0.3706;
+    fC[i][12][4] = 0.4511;
+    
+    fC[i][13][0] = 0.005;
+    fC[i][13][1] = 0.005;
+    fC[i][13][2] = 1.0000;
+    fC[i][13][3] = 0.3765;
+    fC[i][13][4] = 0.4729;
+    
+    fC[i][14][0] = 0.005;
+    fC[i][14][1] = 0.005;
+    fC[i][14][2] = 1.0000;
+    fC[i][14][3] = 0.3942;
+    fC[i][14][4] = 0.4855;
+    
+    fC[i][15][0] = 0.005;
+    fC[i][15][1] = 0.005;
+    fC[i][15][2] = 1.0000;
+    fC[i][15][3] = 0.4051;
+    fC[i][15][4] = 0.4762;
+    
+    fC[i][16][0] = 0.005;
+    fC[i][16][1] = 0.005;
+    fC[i][16][2] = 1.0000;
+    fC[i][16][3] = 0.3843;
+    fC[i][16][4] = 0.4763;
+    
+    fC[i][17][0] = 0.005;
+    fC[i][17][1] = 0.005;
+    fC[i][17][2] = 1.0000;
+    fC[i][17][3] = 0.4237;
+    fC[i][17][4] = 0.4773;
+  }
+  // 60-70%
+  {
+    i=6;
+    fC[i][0][0] = 0.005;
+    fC[i][0][1] = 0.005;
+    fC[i][0][2] = 1.0000;
+    fC[i][0][3] = 0.0010;
+    fC[i][0][4] = 0.0010;
+    
+    fC[i][1][0] = 0.005;
+    fC[i][1][1] = 0.005;
+    fC[i][1][2] = 1.0000;
+    fC[i][1][3] = 0.0071;
+    fC[i][1][4] = 0.0012;
+    
+    fC[i][2][0] = 0.005;
+    fC[i][2][1] = 0.005;
+    fC[i][2][2] = 1.0000;
+    fC[i][2][3] = 0.0336;
+    fC[i][2][4] = 0.01;
+    
+    fC[i][3][0] = 0.005;
+    fC[i][3][1] = 0.005;
+    fC[i][3][2] = 1.0000;
+    fC[i][3][3] = 0.0662;
+    fC[i][3][4] = 0.0460;
+    
+    fC[i][4][0] = 0.005;
+    fC[i][4][1] = 0.005;
+    fC[i][4][2] = 1.0000;
+    fC[i][4][3] = 0.0954;
+    fC[i][4][4] = 0.0902;
+    
+    fC[i][5][0] = 0.005;
+    fC[i][5][1] = 0.005;
+    fC[i][5][2] = 1.0000;
+    fC[i][5][3] = 0.1181;
+    fC[i][5][4] = 0.1306;
+    
+    fC[i][6][0] = 0.005;
+    fC[i][6][1] = 0.005;
+    fC[i][6][2] = 1.0000;
+    fC[i][6][3] = 0.1481;
+    fC[i][6][4] = 0.1662;
+    
+    fC[i][7][0] = 0.005;
+    fC[i][7][1] = 0.005;
+    fC[i][7][2] = 1.0000;
+    fC[i][7][3] = 0.1765;
+    fC[i][7][4] = 0.1963;
+    
+    fC[i][8][0] = 0.005;
+    fC[i][8][1] = 0.005;
+    fC[i][8][2] = 1.0000;
+    fC[i][8][3] = 0.2155;
+    fC[i][8][4] = 0.2433;
+    
+    fC[i][9][0] = 0.005;
+    fC[i][9][1] = 0.005;
+    fC[i][9][2] = 1.0000;
+    fC[i][9][3] = 0.2580;
+    fC[i][9][4] = 0.3022;
+    
+    fC[i][10][0] = 0.005;
+    fC[i][10][1] = 0.005;
+    fC[i][10][2] = 1.0000;
+    fC[i][10][3] = 0.2872;
+    fC[i][10][4] = 0.3481;
+    
+    fC[i][11][0] = 0.005;
+    fC[i][11][1] = 0.005;
+    fC[i][11][2] = 1.0000;
+    fC[i][11][3] = 0.3170;
+    fC[i][11][4] = 0.3847;
+    
+    fC[i][12][0] = 0.005;
+    fC[i][12][1] = 0.005;
+    fC[i][12][2] = 1.0000;
+    fC[i][12][3] = 0.3454;
+    fC[i][12][4] = 0.4258;
+    
+    fC[i][13][0] = 0.005;
+    fC[i][13][1] = 0.005;
+    fC[i][13][2] = 1.0000;
+    fC[i][13][3] = 0.3580;
+    fC[i][13][4] = 0.4299;
+    
+    fC[i][14][0] = 0.005;
+    fC[i][14][1] = 0.005;
+    fC[i][14][2] = 1.0000;
+    fC[i][14][3] = 0.3903;
+    fC[i][14][4] = 0.4326;
+
+    fC[i][15][0] = 0.005;
+    fC[i][15][1] = 0.005;
+    fC[i][15][2] = 1.0000;
+    fC[i][15][3] = 0.3690;
+    fC[i][15][4] = 0.4491;
+    
+    fC[i][16][0] = 0.005;
+    fC[i][16][1] = 0.005;
+    fC[i][16][2] = 1.0000;
+    fC[i][16][3] = 0.4716;
+    fC[i][16][4] = 0.4298;
+    
+    fC[i][17][0] = 0.005;
+    fC[i][17][1] = 0.005;
+    fC[i][17][2] = 1.0000;
+    fC[i][17][3] = 0.3875;
+    fC[i][17][4] = 0.4083;
+  }
+  // 70-80%
+  {
+    i=7;
+    fC[i][0][0] = 0.005;
+    fC[i][0][1] = 0.005;
+    fC[i][0][2] = 1.0000;
+    fC[i][0][3] = 0.010;
+    fC[i][0][4] = 0.010;
+    
+    fC[i][1][0] = 0.005;
+    fC[i][1][1] = 0.005;
+    fC[i][1][2] = 1.0000;
+    fC[i][1][3] = 0.01;
+    fC[i][1][4] = 0.01;
+    
+    fC[i][2][0] = 0.005;
+    fC[i][2][1] = 0.005;
+    fC[i][2][2] = 1.0000;
+    fC[i][2][3] = 0.0313;
+    fC[i][2][4] = 0.0124;
+    
+    fC[i][3][0] = 0.005;
+    fC[i][3][1] = 0.005;
+    fC[i][3][2] = 1.0000;
+    fC[i][3][3] = 0.0640;
+    fC[i][3][4] = 0.0539;
+    
+    fC[i][4][0] = 0.005;
+    fC[i][4][1] = 0.005;
+    fC[i][4][2] = 1.0000;
+    fC[i][4][3] = 0.0923;
+    fC[i][4][4] = 0.0992;
+    
+    fC[i][5][0] = 0.005;
+    fC[i][5][1] = 0.005;
+    fC[i][5][2] = 1.0000;
+    fC[i][5][3] = 0.1202;
+    fC[i][5][4] = 0.1417;
+    
+    fC[i][6][0] = 0.005;
+    fC[i][6][1] = 0.005;
+    fC[i][6][2] = 1.0000;
+    fC[i][6][3] = 0.1413;
+    fC[i][6][4] = 0.1729;
+    
+    fC[i][7][0] = 0.005;
+    fC[i][7][1] = 0.005;
+    fC[i][7][2] = 1.0000;
+    fC[i][7][3] = 0.1705;
+    fC[i][7][4] = 0.1999;
+    
+    fC[i][8][0] = 0.005;
+    fC[i][8][1] = 0.005;
+    fC[i][8][2] = 1.0000;
+    fC[i][8][3] = 0.2103;
+    fC[i][8][4] = 0.2472;
+    
+    fC[i][9][0] = 0.005;
+    fC[i][9][1] = 0.005;
+    fC[i][9][2] = 1.0000;
+    fC[i][9][3] = 0.2373;
+    fC[i][9][4] = 0.2916;
+    
+    fC[i][10][0] = 0.005;
+    fC[i][10][1] = 0.005;
+    fC[i][10][2] = 1.0000;
+    fC[i][10][3] = 0.2824;
+    fC[i][10][4] = 0.3323;
+    
+    fC[i][11][0] = 0.005;
+    fC[i][11][1] = 0.005;
+    fC[i][11][2] = 1.0000;
+    fC[i][11][3] = 0.3046;
+    fC[i][11][4] = 0.3576;
+    
+    fC[i][12][0] = 0.005;
+    fC[i][12][1] = 0.005;
+    fC[i][12][2] = 1.0000;
+    fC[i][12][3] = 0.3585;
+    fC[i][12][4] = 0.4003;
+    
+    fC[i][13][0] = 0.005;
+    fC[i][13][1] = 0.005;
+    fC[i][13][2] = 1.0000;
+    fC[i][13][3] = 0.3461;
+    fC[i][13][4] = 0.3982;
+    
+    fC[i][14][0] = 0.005;
+    fC[i][14][1] = 0.005;
+    fC[i][14][2] = 1.0000;
+    fC[i][14][3] = 0.3362;
+    fC[i][14][4] = 0.3776;
+    
+    fC[i][15][0] = 0.005;
+    fC[i][15][1] = 0.005;
+    fC[i][15][2] = 1.0000;
+    fC[i][15][3] = 0.3071;
+    fC[i][15][4] = 0.3500;
+    
+    fC[i][16][0] = 0.005;
+    fC[i][16][1] = 0.005;
+    fC[i][16][2] = 1.0000;
+    fC[i][16][3] = 0.2914;
+    fC[i][16][4] = 0.3937;
+    
+    fC[i][17][0] = 0.005;
+    fC[i][17][1] = 0.005;
+    fC[i][17][2] = 1.0000;
+    fC[i][17][3] = 0.3727;
+    fC[i][17][4] = 0.3877;
+  }
+  // 80-100%
+  {
+    i=8;
+    fC[i][0][0] = 0.005;
+    fC[i][0][1] = 0.005;
+    fC[i][0][2] = 1.0000;
+    fC[i][0][3] = 0.010;
+    fC[i][0][4] = 0.010;
+    
+    fC[i][1][0] = 0.005;
+    fC[i][1][1] = 0.005;
+    fC[i][1][2] = 1.0000;
+    fC[i][1][3] = 0.010;
+    fC[i][1][4] = 0.010;
+    
+    fC[i][2][0] = 0.005;
+    fC[i][2][1] = 0.005;
+    fC[i][2][2] = 1.0000;
+    fC[i][2][3] = 0.0323;
+    fC[i][2][4] = 0.0113;
+    
+    fC[i][3][0] = 0.005;
+    fC[i][3][1] = 0.005;
+    fC[i][3][2] = 1.0000;
+    fC[i][3][3] = 0.0609;
+    fC[i][3][4] = 0.0653;
+    
+    fC[i][4][0] = 0.005;
+    fC[i][4][1] = 0.005;
+    fC[i][4][2] = 1.0000;
+    fC[i][4][3] = 0.0922;
+    fC[i][4][4] = 0.1076;
+    
+    fC[i][5][0] = 0.005;
+    fC[i][5][1] = 0.005;
+    fC[i][5][2] = 1.0000;
+    fC[i][5][3] = 0.1096;
+    fC[i][5][4] = 0.1328;
+    
+    fC[i][6][0] = 0.005;
+    fC[i][6][1] = 0.005;
+    fC[i][6][2] = 1.0000;
+    fC[i][6][3] = 0.1495;
+    fC[i][6][4] = 0.1779;
+    
+    fC[i][7][0] = 0.005;
+    fC[i][7][1] = 0.005;
+    fC[i][7][2] = 1.0000;
+    fC[i][7][3] = 0.1519;
+    fC[i][7][4] = 0.1989;
+    
+    fC[i][8][0] = 0.005;
+    fC[i][8][1] = 0.005;
+    fC[i][8][2] = 1.0000;
+    fC[i][8][3] = 0.1817;
+    fC[i][8][4] = 0.2472;
+    
+    fC[i][9][0] = 0.005;
+    fC[i][9][1] = 0.005;
+    fC[i][9][2] = 1.0000;
+    fC[i][9][3] = 0.2429;
+    fC[i][9][4] = 0.2684;
+    
+    fC[i][10][0] = 0.005;
+    fC[i][10][1] = 0.005;
+    fC[i][10][2] = 1.0000;
+    fC[i][10][3] = 0.2760;
+    fC[i][10][4] = 0.3098;
+    
+    fC[i][11][0] = 0.005;
+    fC[i][11][1] = 0.005;
+    fC[i][11][2] = 1.0000;
+    fC[i][11][3] = 0.2673;
+    fC[i][11][4] = 0.3198;
+    
+    fC[i][12][0] = 0.005;
+    fC[i][12][1] = 0.005;
+    fC[i][12][2] = 1.0000;
+    fC[i][12][3] = 0.3165;
+    fC[i][12][4] = 0.3564;
+    
+    fC[i][13][0] = 0.005;
+    fC[i][13][1] = 0.005;
+    fC[i][13][2] = 1.0000;
+    fC[i][13][3] = 0.3526;
+    fC[i][13][4] = 0.3011;
+    
+    fC[i][14][0] = 0.005;
+    fC[i][14][1] = 0.005;
+    fC[i][14][2] = 1.0000;
+    fC[i][14][3] = 0.3788;
+    fC[i][14][4] = 0.3011;
+    
+    fC[i][15][0] = 0.005;
+    fC[i][15][1] = 0.005;
+    fC[i][15][2] = 1.0000;
+    fC[i][15][3] = 0.3788;
+    fC[i][15][4] = 0.3011;
+    
+    fC[i][16][0] = 0.005;
+    fC[i][16][1] = 0.005;
+    fC[i][16][2] = 1.0000;
+    fC[i][16][3] = 0.3788;
+    fC[i][16][4] = 0.3011;
+    
+    fC[i][17][0] = 0.005;
+    fC[i][17][1] = 0.005;
+    fC[i][17][2] = 1.0000;
+    fC[i][17][3] = 0.3788;
+    fC[i][17][4] = 0.3011;
+  }
+   
+  for(Int_t k1=1;k1 <=hPriors[0]->GetNbinsX();k1++){ // loop on centrality bins
+    for(Int_t k2=1;k2 <=hPriors[0]->GetNbinsY();k2++){ // loop on pt
+      Float_t y = 0.125 + (k2-1)*0.25;
+      
+      Int_t ipt = 0;
+      while(y > fBinLimitPID[ipt]) ipt++;
+      ipt--;
+
+      if(ipt < 0) ipt = 0;
+      if(ipt > 17) ipt = 17;
+
+      Int_t icentr = k1-2;
+
+      if(icentr < 0 || icentr > 8) icentr = 8;
+
+      for(Int_t j=0;j<5;j++){ // loop over species
+       if(j==4 && y > 3){
+         Float_t weight = sqrt((y-3)/7);
+         if(weight > 1) weight = 1;
+         hPriors[j]->SetBinContent(k1,k2,fC[icentr][ipt][j]*(1-weight) + 0.3*weight);    
+       }
+       else
+         hPriors[j]->SetBinContent(k1,k2,fC[icentr][ipt][j]);    
+      } // end loop over species
+      hPriors[5]->SetBinContent(k1,k2,0.001);
+      hPriors[6]->SetBinContent(k1,k2,0.0001);
+      hPriors[7]->SetBinContent(k1,k2,0.00001);      
+    } // end loop on pt
+  } // end loop on centrality bins
+  
+}
+//________________________________________________________________________
+TSpline3 *AliFlowBayesianPID::GetMismatch(){
+  if(fMism) return fMism;
+
+  Double_t x[5000],y[5000];
+  // values for spline
+  x[0]=-11746.200000; y[0]=1.578112e-07;
+  x[1]=-11721.800000; y[1]=1.411995e-07;
+  x[2]=-11697.400000; y[2]=2.284110e-07;
+  x[3]=-11673.000000; y[3]=2.034934e-07;
+  x[4]=-11648.600000; y[4]=1.993405e-07;
+  x[5]=-11624.200000; y[5]=1.702700e-07;
+  x[6]=-11599.800000; y[6]=2.367168e-07;
+  x[7]=-11575.400000; y[7]=1.910346e-07;
+  x[8]=-11551.000000; y[8]=2.242580e-07;
+  x[9]=-11526.600000; y[9]=1.453524e-07;
+  x[10]=-11502.200000; y[10]=2.284110e-07;
+  x[11]=-11477.800000; y[11]=2.242580e-07;
+  x[12]=-11453.400000; y[12]=2.201051e-07;
+  x[13]=-11429.000000; y[13]=1.993405e-07;
+  x[14]=-11404.600000; y[14]=2.242580e-07;
+  x[15]=-11380.200000; y[15]=2.242580e-07;
+  x[16]=-11355.800000; y[16]=2.450227e-07;
+  x[17]=-11331.400000; y[17]=1.702700e-07;
+  x[18]=-11307.000000; y[18]=2.076463e-07;
+  x[19]=-11282.600000; y[19]=1.702700e-07;
+  x[20]=-11258.200000; y[20]=2.657873e-07;
+  x[21]=-11233.800000; y[21]=3.073166e-07;
+  x[22]=-11209.400000; y[22]=2.325639e-07;
+  x[23]=-11185.000000; y[23]=2.325639e-07;
+  x[24]=-11160.600000; y[24]=2.533285e-07;
+  x[25]=-11136.200000; y[25]=2.284110e-07;
+  x[26]=-11111.800000; y[26]=2.533285e-07;
+  x[27]=-11087.400000; y[27]=1.910346e-07;
+  x[28]=-11063.000000; y[28]=2.076463e-07;
+  x[29]=-11038.600000; y[29]=1.495054e-07;
+  x[30]=-11014.200000; y[30]=2.242580e-07;
+  x[31]=-10989.800000; y[31]=1.785758e-07;
+  x[32]=-10965.400000; y[32]=1.910346e-07;
+  x[33]=-10941.000000; y[33]=2.076463e-07;
+  x[34]=-10916.600000; y[34]=1.411995e-07;
+  x[35]=-10892.200000; y[35]=2.367168e-07;
+  x[36]=-10867.800000; y[36]=1.536583e-07;
+  x[37]=-10843.400000; y[37]=1.619641e-07;
+  x[38]=-10819.000000; y[38]=1.328936e-07;
+  x[39]=-10794.600000; y[39]=2.491756e-07;
+  x[40]=-10770.200000; y[40]=1.868817e-07;
+  x[41]=-10745.800000; y[41]=1.287407e-07;
+  x[42]=-10721.400000; y[42]=2.117993e-07;
+  x[43]=-10697.000000; y[43]=2.201051e-07;
+  x[44]=-10672.600000; y[44]=1.827288e-07;
+  x[45]=-10648.200000; y[45]=2.574814e-07;
+  x[46]=-10623.800000; y[46]=2.159522e-07;
+  x[47]=-10599.400000; y[47]=2.657873e-07;
+  x[48]=-10575.000000; y[48]=2.076463e-07;
+  x[49]=-10550.600000; y[49]=2.533285e-07;
+  x[50]=-10526.200000; y[50]=2.159522e-07;
+  x[51]=-10501.800000; y[51]=2.034934e-07;
+  x[52]=-10477.400000; y[52]=2.076463e-07;
+  x[53]=-10453.000000; y[53]=2.325639e-07;
+  x[54]=-10428.600000; y[54]=2.491756e-07;
+  x[55]=-10404.200000; y[55]=2.491756e-07;
+  x[56]=-10379.800000; y[56]=2.034934e-07;
+  x[57]=-10355.400000; y[57]=2.159522e-07;
+  x[58]=-10331.000000; y[58]=2.284110e-07;
+  x[59]=-10306.600000; y[59]=2.408698e-07;
+  x[60]=-10282.200000; y[60]=1.868817e-07;
+  x[61]=-10257.800000; y[61]=1.868817e-07;
+  x[62]=-10233.400000; y[62]=2.616344e-07;
+  x[63]=-10209.000000; y[63]=2.367168e-07;
+  x[64]=-10184.600000; y[64]=2.242580e-07;
+  x[65]=-10160.200000; y[65]=2.117993e-07;
+  x[66]=-10135.800000; y[66]=2.117993e-07;
+  x[67]=-10111.400000; y[67]=2.325639e-07;
+  x[68]=-10087.000000; y[68]=2.159522e-07;
+  x[69]=-10062.600000; y[69]=2.616344e-07;
+  x[70]=-10038.200000; y[70]=2.076463e-07;
+  x[71]=-10013.800000; y[71]=2.325639e-07;
+  x[72]=-9989.400000; y[72]=1.910346e-07;
+  x[73]=-9965.000000; y[73]=2.657873e-07;
+  x[74]=-9940.600000; y[74]=2.159522e-07;
+  x[75]=-9916.200000; y[75]=2.657873e-07;
+  x[76]=-9891.800000; y[76]=2.284110e-07;
+  x[77]=-9867.400000; y[77]=2.657873e-07;
+  x[78]=-9843.000000; y[78]=3.031637e-07;
+  x[79]=-9818.600000; y[79]=2.325639e-07;
+  x[80]=-9794.200000; y[80]=2.159522e-07;
+  x[81]=-9769.800000; y[81]=2.034934e-07;
+  x[82]=-9745.400000; y[82]=2.491756e-07;
+  x[83]=-9721.000000; y[83]=1.702700e-07;
+  x[84]=-9696.600000; y[84]=2.201051e-07;
+  x[85]=-9672.200000; y[85]=2.699402e-07;
+  x[86]=-9647.800000; y[86]=1.993405e-07;
+  x[87]=-9623.400000; y[87]=2.491756e-07;
+  x[88]=-9599.000000; y[88]=2.574814e-07;
+  x[89]=-9574.600000; y[89]=2.242580e-07;
+  x[90]=-9550.200000; y[90]=2.450227e-07;
+  x[91]=-9525.800000; y[91]=2.201051e-07;
+  x[92]=-9501.400000; y[92]=2.367168e-07;
+  x[93]=-9477.000000; y[93]=2.491756e-07;
+  x[94]=-9452.600000; y[94]=2.491756e-07;
+  x[95]=-9428.200000; y[95]=2.159522e-07;
+  x[96]=-9403.800000; y[96]=2.076463e-07;
+  x[97]=-9379.400000; y[97]=2.408698e-07;
+  x[98]=-9355.000000; y[98]=2.367168e-07;
+  x[99]=-9330.600000; y[99]=2.159522e-07;
+  x[100]=-9306.200000; y[100]=2.284110e-07;
+  x[101]=-9281.800000; y[101]=2.616344e-07;
+  x[102]=-9257.400000; y[102]=3.031637e-07;
+  x[103]=-9233.000000; y[103]=2.201051e-07;
+  x[104]=-9208.600000; y[104]=2.740932e-07;
+  x[105]=-9184.200000; y[105]=2.907049e-07;
+  x[106]=-9159.800000; y[106]=2.948578e-07;
+  x[107]=-9135.400000; y[107]=2.491756e-07;
+  x[108]=-9111.000000; y[108]=2.325639e-07;
+  x[109]=-9086.600000; y[109]=2.865519e-07;
+  x[110]=-9062.200000; y[110]=2.491756e-07;
+  x[111]=-9037.800000; y[111]=1.951876e-07;
+  x[112]=-9013.400000; y[112]=2.699402e-07;
+  x[113]=-8989.000000; y[113]=2.491756e-07;
+  x[114]=-8964.600000; y[114]=2.117993e-07;
+  x[115]=-8940.200000; y[115]=3.073166e-07;
+  x[116]=-8915.800000; y[116]=3.031637e-07;
+  x[117]=-8891.400000; y[117]=2.782461e-07;
+  x[118]=-8867.000000; y[118]=3.031637e-07;
+  x[119]=-8842.600000; y[119]=2.117993e-07;
+  x[120]=-8818.200000; y[120]=2.990107e-07;
+  x[121]=-8793.800000; y[121]=2.491756e-07;
+  x[122]=-8769.400000; y[122]=2.616344e-07;
+  x[123]=-8745.000000; y[123]=2.740932e-07;
+  x[124]=-8720.600000; y[124]=2.907049e-07;
+  x[125]=-8696.200000; y[125]=2.865519e-07;
+  x[126]=-8671.800000; y[126]=2.699402e-07;
+  x[127]=-8647.400000; y[127]=2.325639e-07;
+  x[128]=-8623.000000; y[128]=2.450227e-07;
+x[129]=-8598.600000; y[129]=2.450227e-07;
+x[130]=-8574.200000; y[130]=2.034934e-07;
+x[131]=-8549.800000; y[131]=2.782461e-07;
+x[132]=-8525.400000; y[132]=2.408698e-07;
+x[133]=-8501.000000; y[133]=2.657873e-07;
+x[134]=-8476.600000; y[134]=2.616344e-07;
+x[135]=-8452.200000; y[135]=3.031637e-07;
+x[136]=-8427.800000; y[136]=2.782461e-07;
+x[137]=-8403.400000; y[137]=2.408698e-07;
+x[138]=-8379.000000; y[138]=2.699402e-07;
+x[139]=-8354.600000; y[139]=2.657873e-07;
+x[140]=-8330.200000; y[140]=2.491756e-07;
+x[141]=-8305.800000; y[141]=3.114695e-07;
+x[142]=-8281.400000; y[142]=2.034934e-07;
+x[143]=-8257.000000; y[143]=2.823990e-07;
+x[144]=-8232.600000; y[144]=2.865519e-07;
+x[145]=-8208.200000; y[145]=2.823990e-07;
+x[146]=-8183.800000; y[146]=3.073166e-07;
+x[147]=-8159.400000; y[147]=2.242580e-07;
+x[148]=-8135.000000; y[148]=2.408698e-07;
+x[149]=-8110.600000; y[149]=3.031637e-07;
+x[150]=-8086.200000; y[150]=3.031637e-07;
+x[151]=-8061.800000; y[151]=3.239283e-07;
+x[152]=-8037.400000; y[152]=3.114695e-07;
+x[153]=-8013.000000; y[153]=3.114695e-07;
+x[154]=-7988.600000; y[154]=3.073166e-07;
+x[155]=-7964.200000; y[155]=2.823990e-07;
+x[156]=-7939.800000; y[156]=2.948578e-07;
+x[157]=-7915.400000; y[157]=3.529988e-07;
+x[158]=-7891.000000; y[158]=3.239283e-07;
+x[159]=-7866.600000; y[159]=3.114695e-07;
+x[160]=-7842.200000; y[160]=3.446929e-07;
+x[161]=-7817.800000; y[161]=2.948578e-07;
+x[162]=-7793.400000; y[162]=2.907049e-07;
+x[163]=-7769.000000; y[163]=2.948578e-07;
+x[164]=-7744.600000; y[164]=2.990107e-07;
+x[165]=-7720.200000; y[165]=3.613046e-07;
+x[166]=-7695.800000; y[166]=3.903751e-07;
+x[167]=-7671.400000; y[167]=3.737634e-07;
+x[168]=-7647.000000; y[168]=3.986810e-07;
+x[169]=-7622.600000; y[169]=2.907049e-07;
+x[170]=-7598.200000; y[170]=3.405400e-07;
+x[171]=-7573.800000; y[171]=3.405400e-07;
+x[172]=-7549.400000; y[172]=3.613046e-07;
+x[173]=-7525.000000; y[173]=3.737634e-07;
+x[174]=-7500.600000; y[174]=3.986810e-07;
+x[175]=-7476.200000; y[175]=3.114695e-07;
+x[176]=-7451.800000; y[176]=4.028339e-07;
+x[177]=-7427.400000; y[177]=3.696105e-07;
+x[178]=-7403.000000; y[178]=3.073166e-07;
+x[179]=-7378.600000; y[179]=3.363870e-07;
+x[180]=-7354.200000; y[180]=3.280812e-07;
+x[181]=-7329.800000; y[181]=3.156224e-07;
+x[182]=-7305.400000; y[182]=3.613046e-07;
+x[183]=-7281.000000; y[183]=3.446929e-07;
+x[184]=-7256.600000; y[184]=3.322341e-07;
+x[185]=-7232.200000; y[185]=4.069868e-07;
+x[186]=-7207.800000; y[186]=4.609749e-07;
+x[187]=-7183.400000; y[187]=3.571517e-07;
+x[188]=-7159.000000; y[188]=3.779163e-07;
+x[189]=-7134.600000; y[189]=3.862222e-07;
+x[190]=-7110.200000; y[190]=4.069868e-07;
+x[191]=-7085.800000; y[191]=2.782461e-07;
+x[192]=-7061.400000; y[192]=4.235985e-07;
+x[193]=-7037.000000; y[193]=3.986810e-07;
+x[194]=-7012.600000; y[194]=4.028339e-07;
+x[195]=-6988.200000; y[195]=3.363870e-07;
+x[196]=-6963.800000; y[196]=4.360573e-07;
+x[197]=-6939.400000; y[197]=3.945280e-07;
+x[198]=-6915.000000; y[198]=4.277514e-07;
+x[199]=-6890.600000; y[199]=3.613046e-07;
+x[200]=-6866.200000; y[200]=4.651278e-07;
+x[201]=-6841.800000; y[201]=3.945280e-07;
+x[202]=-6817.400000; y[202]=4.235985e-07;
+x[203]=-6793.000000; y[203]=3.613046e-07;
+x[204]=-6768.600000; y[204]=3.696105e-07;
+x[205]=-6744.200000; y[205]=3.737634e-07;
+x[206]=-6719.800000; y[206]=3.945280e-07;
+x[207]=-6695.400000; y[207]=4.028339e-07;
+x[208]=-6671.000000; y[208]=4.360573e-07;
+x[209]=-6646.600000; y[209]=3.737634e-07;
+x[210]=-6622.200000; y[210]=4.526690e-07;
+x[211]=-6597.800000; y[211]=4.983512e-07;
+x[212]=-6573.400000; y[212]=4.568219e-07;
+x[213]=-6549.000000; y[213]=3.945280e-07;
+x[214]=-6524.600000; y[214]=4.194456e-07;
+x[215]=-6500.200000; y[215]=4.235985e-07;
+x[216]=-6475.800000; y[216]=5.025041e-07;
+x[217]=-6451.400000; y[217]=3.737634e-07;
+x[218]=-6427.000000; y[218]=4.817395e-07;
+x[219]=-6402.600000; y[219]=4.277514e-07;
+x[220]=-6378.200000; y[220]=5.025041e-07;
+x[221]=-6353.800000; y[221]=4.526690e-07;
+x[222]=-6329.400000; y[222]=5.564922e-07;
+x[223]=-6305.000000; y[223]=4.485161e-07;
+x[224]=-6280.600000; y[224]=5.357276e-07;
+x[225]=-6256.200000; y[225]=4.734336e-07;
+x[226]=-6231.800000; y[226]=5.066570e-07;
+x[227]=-6207.400000; y[227]=4.568219e-07;
+x[228]=-6183.000000; y[228]=5.149629e-07;
+x[229]=-6158.600000; y[229]=5.066570e-07;
+x[230]=-6134.200000; y[230]=4.277514e-07;
+x[231]=-6109.800000; y[231]=4.692807e-07;
+x[232]=-6085.400000; y[232]=4.360573e-07;
+x[233]=-6061.000000; y[233]=4.692807e-07;
+x[234]=-6036.600000; y[234]=5.274217e-07;
+x[235]=-6012.200000; y[235]=4.360573e-07;
+x[236]=-5987.800000; y[236]=5.066570e-07;
+x[237]=-5963.400000; y[237]=4.941983e-07;
+x[238]=-5939.000000; y[238]=4.734336e-07;
+x[239]=-5914.600000; y[239]=4.900454e-07;
+x[240]=-5890.200000; y[240]=4.858924e-07;
+x[241]=-5865.800000; y[241]=5.440334e-07;
+x[242]=-5841.400000; y[242]=4.443632e-07;
+x[243]=-5817.000000; y[243]=5.647980e-07;
+x[244]=-5792.600000; y[244]=5.606451e-07;
+x[245]=-5768.200000; y[245]=4.485161e-07;
+x[246]=-5743.800000; y[246]=5.274217e-07;
+x[247]=-5719.400000; y[247]=5.606451e-07;
+x[248]=-5695.000000; y[248]=5.772568e-07;
+x[249]=-5670.600000; y[249]=4.817395e-07;
+x[250]=-5646.200000; y[250]=5.232687e-07;
+x[251]=-5621.800000; y[251]=5.647980e-07;
+x[252]=-5597.400000; y[252]=5.564922e-07;
+x[253]=-5573.000000; y[253]=5.855626e-07;
+x[254]=-5548.600000; y[254]=5.481863e-07;
+x[255]=-5524.200000; y[255]=5.855626e-07;
+x[256]=-5499.800000; y[256]=5.564922e-07;
+x[257]=-5475.400000; y[257]=5.440334e-07;
+x[258]=-5451.000000; y[258]=5.232687e-07;
+x[259]=-5426.600000; y[259]=6.852329e-07;
+x[260]=-5402.200000; y[260]=4.817395e-07;
+x[261]=-5377.800000; y[261]=5.232687e-07;
+x[262]=-5353.400000; y[262]=6.686212e-07;
+x[263]=-5329.000000; y[263]=5.025041e-07;
+x[264]=-5304.600000; y[264]=6.021743e-07;
+x[265]=-5280.200000; y[265]=7.101505e-07;
+x[266]=-5255.800000; y[266]=5.606451e-07;
+x[267]=-5231.400000; y[267]=6.104802e-07;
+x[268]=-5207.000000; y[268]=5.938685e-07;
+x[269]=-5182.600000; y[269]=4.941983e-07;
+x[270]=-5158.200000; y[270]=6.353978e-07;
+x[271]=-5133.800000; y[271]=6.437036e-07;
+x[272]=-5109.400000; y[272]=6.187861e-07;
+x[273]=-5085.000000; y[273]=5.731039e-07;
+x[274]=-5060.600000; y[274]=6.270919e-07;
+x[275]=-5036.200000; y[275]=5.564922e-07;
+x[276]=-5011.800000; y[276]=5.481863e-07;
+x[277]=-4987.400000; y[277]=6.769271e-07;
+x[278]=-4963.000000; y[278]=6.395507e-07;
+x[279]=-4938.600000; y[279]=6.603153e-07;
+x[280]=-4914.200000; y[280]=6.644682e-07;
+x[281]=-4889.800000; y[281]=6.229390e-07;
+x[282]=-4865.400000; y[282]=6.021743e-07;
+x[283]=-4841.000000; y[283]=6.810800e-07;
+x[284]=-4816.600000; y[284]=6.229390e-07;
+x[285]=-4792.200000; y[285]=6.603153e-07;
+x[286]=-4767.800000; y[286]=6.520095e-07;
+x[287]=-4743.400000; y[287]=5.980214e-07;
+x[288]=-4719.000000; y[288]=6.561624e-07;
+x[289]=-4694.600000; y[289]=6.852329e-07;
+x[290]=-4670.200000; y[290]=5.938685e-07;
+x[291]=-4645.800000; y[291]=6.063273e-07;
+x[292]=-4621.400000; y[292]=6.852329e-07;
+x[293]=-4597.000000; y[293]=7.184563e-07;
+x[294]=-4572.600000; y[294]=7.143034e-07;
+x[295]=-4548.200000; y[295]=6.229390e-07;
+x[296]=-4523.800000; y[296]=7.184563e-07;
+x[297]=-4499.400000; y[297]=8.015148e-07;
+x[298]=-4475.000000; y[298]=6.603153e-07;
+x[299]=-4450.600000; y[299]=6.146332e-07;
+x[300]=-4426.200000; y[300]=7.849031e-07;
+x[301]=-4401.800000; y[301]=6.686212e-07;
+x[302]=-4377.400000; y[302]=6.395507e-07;
+x[303]=-4353.000000; y[303]=6.935388e-07;
+x[304]=-4328.600000; y[304]=7.018446e-07;
+x[305]=-4304.200000; y[305]=7.475268e-07;
+x[306]=-4279.800000; y[306]=6.893858e-07;
+x[307]=-4255.400000; y[307]=7.226092e-07;
+x[308]=-4231.000000; y[308]=6.893858e-07;
+x[309]=-4206.600000; y[309]=7.849031e-07;
+x[310]=-4182.200000; y[310]=8.471970e-07;
+x[311]=-4157.800000; y[311]=7.682914e-07;
+x[312]=-4133.400000; y[312]=8.347383e-07;
+x[313]=-4109.000000; y[313]=7.059975e-07;
+x[314]=-4084.600000; y[314]=7.226092e-07;
+x[315]=-4060.200000; y[315]=8.555029e-07;
+x[316]=-4035.800000; y[316]=7.267622e-07;
+x[317]=-4011.400000; y[317]=7.018446e-07;
+x[318]=-3987.000000; y[318]=7.267622e-07;
+x[319]=-3962.600000; y[319]=7.433738e-07;
+x[320]=-3938.200000; y[320]=7.807502e-07;
+x[321]=-3913.800000; y[321]=6.935388e-07;
+x[322]=-3889.400000; y[322]=7.475268e-07;
+x[323]=-3865.000000; y[323]=6.976917e-07;
+x[324]=-3840.600000; y[324]=8.845734e-07;
+x[325]=-3816.200000; y[325]=7.807502e-07;
+x[326]=-3791.800000; y[326]=7.143034e-07;
+x[327]=-3767.400000; y[327]=8.305853e-07;
+x[328]=-3743.000000; y[328]=8.181266e-07;
+x[329]=-3718.600000; y[329]=7.807502e-07;
+x[330]=-3694.200000; y[330]=8.513500e-07;
+x[331]=-3669.800000; y[331]=8.970322e-07;
+x[332]=-3645.400000; y[332]=9.136439e-07;
+x[333]=-3621.000000; y[333]=8.264324e-07;
+x[334]=-3596.600000; y[334]=8.222795e-07;
+x[335]=-3572.200000; y[335]=8.222795e-07;
+x[336]=-3547.800000; y[336]=8.638087e-07;
+x[337]=-3523.400000; y[337]=7.392209e-07;
+x[338]=-3499.000000; y[338]=8.139736e-07;
+x[339]=-3474.600000; y[339]=8.181266e-07;
+x[340]=-3450.200000; y[340]=7.599856e-07;
+x[341]=-3425.800000; y[341]=7.932090e-07;
+x[342]=-3401.400000; y[342]=8.305853e-07;
+x[343]=-3377.000000; y[343]=7.682914e-07;
+x[344]=-3352.600000; y[344]=7.018446e-07;
+x[345]=-3328.200000; y[345]=8.887263e-07;
+x[346]=-3303.800000; y[346]=7.890561e-07;
+x[347]=-3279.400000; y[347]=7.143034e-07;
+x[348]=-3255.000000; y[348]=8.430441e-07;
+x[349]=-3230.600000; y[349]=7.599856e-07;
+x[350]=-3206.200000; y[350]=7.516797e-07;
+x[351]=-3181.800000; y[351]=8.264324e-07;
+x[352]=-3157.400000; y[352]=7.641385e-07;
+x[353]=-3133.000000; y[353]=8.264324e-07;
+x[354]=-3108.600000; y[354]=8.347383e-07;
+x[355]=-3084.200000; y[355]=7.433738e-07;
+x[356]=-3059.800000; y[356]=6.893858e-07;
+x[357]=-3035.400000; y[357]=7.849031e-07;
+x[358]=-3011.000000; y[358]=7.350680e-07;
+x[359]=-2986.600000; y[359]=7.433738e-07;
+x[360]=-2962.200000; y[360]=8.222795e-07;
+x[361]=-2937.800000; y[361]=8.430441e-07;
+x[362]=-2913.400000; y[362]=7.641385e-07;
+x[363]=-2889.000000; y[363]=7.226092e-07;
+x[364]=-2864.600000; y[364]=8.181266e-07;
+x[365]=-2840.200000; y[365]=7.433738e-07;
+x[366]=-2815.800000; y[366]=6.893858e-07;
+x[367]=-2791.400000; y[367]=8.347383e-07;
+x[368]=-2767.000000; y[368]=7.765973e-07;
+x[369]=-2742.600000; y[369]=7.765973e-07;
+x[370]=-2718.200000; y[370]=6.769271e-07;
+x[371]=-2693.800000; y[371]=7.641385e-07;
+x[372]=-2669.400000; y[372]=7.973619e-07;
+x[373]=-2645.000000; y[373]=7.558327e-07;
+x[374]=-2620.600000; y[374]=7.599856e-07;
+x[375]=-2596.200000; y[375]=8.555029e-07;
+x[376]=-2571.800000; y[376]=7.849031e-07;
+x[377]=-2547.400000; y[377]=7.849031e-07;
+x[378]=-2523.000000; y[378]=7.765973e-07;
+x[379]=-2498.600000; y[379]=6.852329e-07;
+x[380]=-2474.200000; y[380]=7.765973e-07;
+x[381]=-2449.800000; y[381]=7.350680e-07;
+x[382]=-2425.400000; y[382]=7.849031e-07;
+x[383]=-2401.000000; y[383]=7.765973e-07;
+x[384]=-2376.600000; y[384]=7.932090e-07;
+x[385]=-2352.200000; y[385]=6.270919e-07;
+x[386]=-2327.800000; y[386]=7.018446e-07;
+x[387]=-2303.400000; y[387]=6.852329e-07;
+x[388]=-2279.000000; y[388]=7.184563e-07;
+x[389]=-2254.600000; y[389]=6.810800e-07;
+x[390]=-2230.200000; y[390]=7.143034e-07;
+x[391]=-2205.800000; y[391]=6.769271e-07;
+x[392]=-2181.400000; y[392]=6.727741e-07;
+x[393]=-2157.000000; y[393]=7.018446e-07;
+x[394]=-2132.600000; y[394]=6.561624e-07;
+x[395]=-2108.200000; y[395]=7.018446e-07;
+x[396]=-2083.800000; y[396]=7.641385e-07;
+x[397]=-2059.400000; y[397]=7.765973e-07;
+x[398]=-2035.000000; y[398]=6.727741e-07;
+x[399]=-2010.600000; y[399]=7.101505e-07;
+x[400]=-1986.200000; y[400]=6.561624e-07;
+x[401]=-1961.800000; y[401]=6.395507e-07;
+x[402]=-1937.400000; y[402]=7.475268e-07;
+x[403]=-1913.000000; y[403]=7.682914e-07;
+x[404]=-1888.600000; y[404]=6.395507e-07;
+x[405]=-1864.200000; y[405]=6.353978e-07;
+x[406]=-1839.800000; y[406]=6.935388e-07;
+x[407]=-1815.400000; y[407]=7.849031e-07;
+x[408]=-1791.000000; y[408]=7.143034e-07;
+x[409]=-1766.600000; y[409]=7.018446e-07;
+x[410]=-1742.200000; y[410]=7.932090e-07;
+x[411]=-1717.800000; y[411]=6.437036e-07;
+x[412]=-1693.400000; y[412]=7.018446e-07;
+x[413]=-1669.000000; y[413]=7.682914e-07;
+x[414]=-1644.600000; y[414]=7.309151e-07;
+x[415]=-1620.200000; y[415]=7.226092e-07;
+x[416]=-1595.800000; y[416]=7.184563e-07;
+x[417]=-1571.400000; y[417]=6.644682e-07;
+x[418]=-1547.000000; y[418]=7.101505e-07;
+x[419]=-1522.600000; y[419]=7.143034e-07;
+x[420]=-1498.200000; y[420]=8.139736e-07;
+x[421]=-1473.800000; y[421]=7.101505e-07;
+x[422]=-1449.400000; y[422]=7.973619e-07;
+x[423]=-1425.000000; y[423]=7.765973e-07;
+x[424]=-1400.600000; y[424]=7.682914e-07;
+x[425]=-1376.200000; y[425]=8.679617e-07;
+x[426]=-1351.800000; y[426]=8.430441e-07;
+x[427]=-1327.400000; y[427]=7.807502e-07;
+x[428]=-1303.000000; y[428]=8.139736e-07;
+x[429]=-1278.600000; y[429]=7.309151e-07;
+x[430]=-1254.200000; y[430]=9.011851e-07;
+x[431]=-1229.800000; y[431]=7.890561e-07;
+x[432]=-1205.400000; y[432]=8.181266e-07;
+x[433]=-1181.000000; y[433]=8.887263e-07;
+x[434]=-1156.600000; y[434]=8.555029e-07;
+x[435]=-1132.200000; y[435]=9.510202e-07;
+x[436]=-1107.800000; y[436]=8.388912e-07;
+x[437]=-1083.400000; y[437]=1.029926e-06;
+x[438]=-1059.000000; y[438]=9.842436e-07;
+x[439]=-1034.600000; y[439]=1.009161e-06;
+x[440]=-1010.200000; y[440]=1.029926e-06;
+x[441]=-985.800000; y[441]=1.137902e-06;
+x[442]=-961.400000; y[442]=1.208502e-06;
+x[443]=-937.000000; y[443]=1.171125e-06;
+x[444]=-912.600000; y[444]=1.204349e-06;
+x[445]=-888.200000; y[445]=1.345548e-06;
+x[446]=-863.800000; y[446]=1.549042e-06;
+x[447]=-839.400000; y[447]=1.744229e-06;
+x[448]=-815.000000; y[448]=2.010016e-06;
+x[449]=-790.600000; y[449]=2.201051e-06;
+x[450]=-766.200000; y[450]=2.699402e-06;
+x[451]=-741.800000; y[451]=3.073166e-06;
+x[452]=-717.400000; y[452]=3.770857e-06;
+x[453]=-693.000000; y[453]=4.485161e-06;
+x[454]=-668.600000; y[454]=5.830709e-06;
+x[455]=-644.200000; y[455]=6.661294e-06;
+x[456]=-619.800000; y[456]=8.621476e-06;
+x[457]=-595.400000; y[457]=1.036155e-05;
+x[458]=-571.000000; y[458]=1.278271e-05;
+x[459]=-546.600000; y[459]=1.510419e-05;
+x[460]=-522.200000; y[460]=1.805277e-05;
+x[461]=-497.800000; y[461]=2.186931e-05;
+x[462]=-473.400000; y[462]=2.549897e-05;
+x[463]=-449.000000; y[463]=2.999244e-05;
+x[464]=-424.600000; y[464]=3.507562e-05;
+x[465]=-400.200000; y[465]=4.045366e-05;
+x[466]=-375.800000; y[466]=4.591476e-05;
+x[467]=-351.400000; y[467]=5.242655e-05;
+x[468]=-327.000000; y[468]=5.923319e-05;
+x[469]=-302.600000; y[469]=6.657557e-05;
+x[470]=-278.200000; y[470]=7.502677e-05;
+x[471]=-253.800000; y[471]=8.424627e-05;
+x[472]=-229.400000; y[472]=9.202470e-05;
+x[473]=-205.000000; y[473]=1.005880e-04;
+x[474]=-180.600000; y[474]=1.093341e-04;
+x[475]=-156.200000; y[475]=1.190187e-04;
+x[476]=-131.800000; y[476]=1.298786e-04;
+x[477]=-107.400000; y[477]=1.387784e-04;
+x[478]=-83.000000; y[478]=1.463035e-04;
+x[479]=-58.600000; y[479]=1.533593e-04;
+x[480]=-34.200000; y[480]=1.610256e-04;
+x[481]=-9.800000; y[481]=1.681478e-04;
+x[482]=14.600000; y[482]=1.743855e-04;
+x[483]=39.000000; y[483]=1.789455e-04;
+x[484]=63.400000; y[484]=1.838874e-04;
+x[485]=87.800000; y[485]=1.868360e-04;
+x[486]=112.200000; y[486]=1.911800e-04;
+x[487]=136.600000; y[487]=1.922556e-04;
+x[488]=161.000000; y[488]=1.925463e-04;
+x[489]=185.400000; y[489]=1.934309e-04;
+x[490]=209.800000; y[490]=1.929242e-04;
+x[491]=234.200000; y[491]=1.913170e-04;
+x[492]=258.600000; y[492]=1.924757e-04;
+x[493]=283.000000; y[493]=1.916908e-04;
+x[494]=307.400000; y[494]=1.888543e-04;
+x[495]=331.800000; y[495]=1.876251e-04;
+x[496]=356.200000; y[496]=1.837836e-04;
+x[497]=380.600000; y[497]=1.831441e-04;
+x[498]=405.000000; y[498]=1.795352e-04;
+x[499]=429.400000; y[499]=1.783391e-04;
+x[500]=453.800000; y[500]=1.757228e-04;
+x[501]=478.200000; y[501]=1.708306e-04;
+x[502]=502.600000; y[502]=1.683472e-04;
+x[503]=527.000000; y[503]=1.672093e-04;
+x[504]=551.400000; y[504]=1.615613e-04;
+x[505]=575.800000; y[505]=1.597880e-04;
+x[506]=600.200000; y[506]=1.566858e-04;
+x[507]=624.600000; y[507]=1.521632e-04;
+x[508]=649.000000; y[508]=1.517521e-04;
+x[509]=673.400000; y[509]=1.492437e-04;
+x[510]=697.800000; y[510]=1.452361e-04;
+x[511]=722.200000; y[511]=1.441356e-04;
+x[512]=746.600000; y[512]=1.402568e-04;
+x[513]=771.000000; y[513]=1.379228e-04;
+x[514]=795.400000; y[514]=1.376446e-04;
+x[515]=819.800000; y[515]=1.344095e-04;
+x[516]=844.200000; y[516]=1.313488e-04;
+x[517]=868.600000; y[517]=1.288736e-04;
+x[518]=893.000000; y[518]=1.273163e-04;
+x[519]=917.400000; y[519]=1.260496e-04;
+x[520]=941.800000; y[520]=1.251194e-04;
+x[521]=966.200000; y[521]=1.236451e-04;
+x[522]=990.600000; y[522]=1.224449e-04;
+x[523]=1015.000000; y[523]=1.191392e-04;
+x[524]=1039.400000; y[524]=1.160120e-04;
+x[525]=1063.800000; y[525]=1.151440e-04;
+x[526]=1088.200000; y[526]=1.136822e-04;
+x[527]=1112.600000; y[527]=1.116514e-04;
+x[528]=1137.000000; y[528]=1.115227e-04;
+x[529]=1161.400000; y[529]=1.096580e-04;
+x[530]=1185.800000; y[530]=1.082709e-04;
+x[531]=1210.200000; y[531]=1.065267e-04;
+x[532]=1234.600000; y[532]=1.038896e-04;
+x[533]=1259.000000; y[533]=1.027808e-04;
+x[534]=1283.400000; y[534]=1.018173e-04;
+x[535]=1307.800000; y[535]=1.017384e-04;
+x[536]=1332.200000; y[536]=1.001935e-04;
+x[537]=1356.600000; y[537]=9.944598e-05;
+x[538]=1381.000000; y[538]=9.612364e-05;
+x[539]=1405.400000; y[539]=9.749826e-05;
+x[540]=1429.800000; y[540]=9.415930e-05;
+x[541]=1454.200000; y[541]=9.309615e-05;
+x[542]=1478.600000; y[542]=9.329550e-05;
+x[543]=1503.000000; y[543]=9.189596e-05;
+x[544]=1527.400000; y[544]=8.973644e-05;
+x[545]=1551.800000; y[545]=8.927546e-05;
+x[546]=1576.200000; y[546]=8.895985e-05;
+x[547]=1600.600000; y[547]=8.813341e-05;
+x[548]=1625.000000; y[548]=8.699966e-05;
+x[549]=1649.400000; y[549]=8.647224e-05;
+x[550]=1673.800000; y[550]=8.604034e-05;
+x[551]=1698.200000; y[551]=8.514745e-05;
+x[552]=1722.600000; y[552]=8.296717e-05;
+x[553]=1747.000000; y[553]=8.399710e-05;
+x[554]=1771.400000; y[554]=8.238991e-05;
+x[555]=1795.800000; y[555]=8.121048e-05;
+x[556]=1820.200000; y[556]=8.092393e-05;
+x[557]=1844.600000; y[557]=8.060000e-05;
+x[558]=1869.000000; y[558]=7.871872e-05;
+x[559]=1893.400000; y[559]=7.857337e-05;
+x[560]=1917.800000; y[560]=7.806256e-05;
+x[561]=1942.200000; y[561]=7.699111e-05;
+x[562]=1966.600000; y[562]=7.572446e-05;
+x[563]=1991.000000; y[563]=7.481082e-05;
+x[564]=2015.400000; y[564]=7.564141e-05;
+x[565]=2039.800000; y[565]=7.442460e-05;
+x[566]=2064.200000; y[566]=7.322856e-05;
+x[567]=2088.600000; y[567]=7.244365e-05;
+x[568]=2113.000000; y[568]=7.293370e-05;
+x[569]=2137.400000; y[569]=7.145526e-05;
+x[570]=2161.800000; y[570]=7.145110e-05;
+x[571]=2186.200000; y[571]=6.994359e-05;
+x[572]=2210.600000; y[572]=7.097767e-05;
+x[573]=2235.000000; y[573]=6.954076e-05;
+x[574]=2259.400000; y[574]=6.822843e-05;
+x[575]=2283.800000; y[575]=6.825750e-05;
+x[576]=2308.200000; y[576]=6.778407e-05;
+x[577]=2332.600000; y[577]=6.742692e-05;
+x[578]=2357.000000; y[578]=6.692441e-05;
+x[579]=2381.400000; y[579]=6.659218e-05;
+x[580]=2405.800000; y[580]=6.693687e-05;
+x[581]=2430.200000; y[581]=6.513450e-05;
+x[582]=2454.600000; y[582]=6.497254e-05;
+x[583]=2479.000000; y[583]=6.459462e-05;
+x[584]=2503.400000; y[584]=6.437452e-05;
+x[585]=2527.800000; y[585]=6.400075e-05;
+x[586]=2552.200000; y[586]=6.452402e-05;
+x[587]=2576.600000; y[587]=6.325322e-05;
+x[588]=2601.000000; y[588]=6.232297e-05;
+x[589]=2625.400000; y[589]=6.224822e-05;
+x[590]=2649.800000; y[590]=6.206549e-05;
+x[591]=2674.200000; y[591]=6.077393e-05;
+x[592]=2698.600000; y[592]=6.116430e-05;
+x[593]=2723.000000; y[593]=6.042093e-05;
+x[594]=2747.400000; y[594]=6.070748e-05;
+x[595]=2771.800000; y[595]=5.984367e-05;
+x[596]=2796.200000; y[596]=5.971078e-05;
+x[597]=2820.600000; y[597]=5.938270e-05;
+x[598]=2845.000000; y[598]=5.920412e-05;
+x[599]=2869.400000; y[599]=5.818250e-05;
+x[600]=2893.800000; y[600]=5.765093e-05;
+x[601]=2918.200000; y[601]=5.753049e-05;
+x[602]=2942.600000; y[602]=5.772153e-05;
+x[603]=2967.000000; y[603]=5.754295e-05;
+x[604]=2991.400000; y[604]=5.699477e-05;
+x[605]=3015.800000; y[605]=5.699061e-05;
+x[606]=3040.200000; y[606]=5.584856e-05;
+x[607]=3064.600000; y[607]=5.634691e-05;
+x[608]=3089.000000; y[608]=5.478956e-05;
+x[609]=3113.400000; y[609]=5.501382e-05;
+x[610]=3137.800000; y[610]=5.475218e-05;
+x[611]=3162.200000; y[611]=5.460683e-05;
+x[612]=3186.600000; y[612]=5.413755e-05;
+x[613]=3211.000000; y[613]=5.427460e-05;
+x[614]=3235.400000; y[614]=5.391329e-05;
+x[615]=3259.800000; y[615]=5.349800e-05;
+x[616]=3284.200000; y[616]=5.322806e-05;
+x[617]=3308.600000; y[617]=5.314500e-05;
+x[618]=3333.000000; y[618]=5.335265e-05;
+x[619]=3357.400000; y[619]=5.228535e-05;
+x[620]=3381.800000; y[620]=5.212338e-05;
+x[621]=3406.200000; y[621]=5.219813e-05;
+x[622]=3430.600000; y[622]=5.140077e-05;
+x[623]=3455.000000; y[623]=5.147137e-05;
+x[624]=3479.400000; y[624]=5.100625e-05;
+x[625]=3503.800000; y[625]=5.145061e-05;
+x[626]=3528.200000; y[626]=5.072385e-05;
+x[627]=3552.600000; y[627]=5.068647e-05;
+x[628]=3577.000000; y[628]=5.048713e-05;
+x[629]=3601.400000; y[629]=5.052450e-05;
+x[630]=3625.800000; y[630]=5.084013e-05;
+x[631]=3650.200000; y[631]=4.960256e-05;
+x[632]=3674.600000; y[632]=4.949458e-05;
+x[633]=3699.000000; y[633]=5.035839e-05;
+x[634]=3723.400000; y[634]=4.957349e-05;
+x[635]=3747.800000; y[635]=4.999708e-05;
+x[636]=3772.200000; y[636]=4.873875e-05;
+x[637]=3796.600000; y[637]=4.908759e-05;
+x[638]=3821.000000; y[638]=4.838575e-05;
+x[639]=3845.400000; y[639]=4.828608e-05;
+x[640]=3869.800000; y[640]=4.823624e-05;
+x[641]=3894.200000; y[641]=4.811996e-05;
+x[642]=3918.600000; y[642]=4.829438e-05;
+x[643]=3943.000000; y[643]=4.937415e-05;
+x[644]=3967.400000; y[644]=4.765898e-05;
+x[645]=3991.800000; y[645]=4.770882e-05;
+x[646]=4016.200000; y[646]=4.757178e-05;
+x[647]=4040.600000; y[647]=4.750118e-05;
+x[648]=4065.000000; y[648]=4.752194e-05;
+x[649]=4089.400000; y[649]=4.709419e-05;
+x[650]=4113.800000; y[650]=4.716064e-05;
+x[651]=4138.200000; y[651]=4.779188e-05;
+x[652]=4162.600000; y[652]=4.600612e-05;
+x[653]=4187.000000; y[653]=4.652108e-05;
+x[654]=4211.400000; y[654]=4.667474e-05;
+x[655]=4235.800000; y[655]=4.591891e-05;
+x[656]=4260.200000; y[656]=4.618054e-05;
+x[657]=4284.600000; y[657]=4.549947e-05;
+x[658]=4309.000000; y[658]=4.537903e-05;
+x[659]=4333.400000; y[659]=4.538734e-05;
+x[660]=4357.800000; y[660]=4.616393e-05;
+x[661]=4382.200000; y[661]=4.471456e-05;
+x[662]=4406.600000; y[662]=4.614317e-05;
+x[663]=4431.000000; y[663]=4.455675e-05;
+x[664]=4455.400000; y[664]=4.601858e-05;
+x[665]=4479.800000; y[665]=4.467718e-05;
+x[666]=4504.200000; y[666]=4.458998e-05;
+x[667]=4528.600000; y[667]=4.408332e-05;
+x[668]=4553.000000; y[668]=4.410408e-05;
+x[669]=4577.400000; y[669]=4.410408e-05;
+x[670]=4601.800000; y[670]=4.416638e-05;
+x[671]=4626.200000; y[671]=4.380092e-05;
+x[672]=4650.600000; y[672]=4.314476e-05;
+x[673]=4675.000000; y[673]=4.332748e-05;
+x[674]=4699.400000; y[674]=4.350191e-05;
+x[675]=4723.800000; y[675]=4.410408e-05;
+x[676]=4748.200000; y[676]=4.335655e-05;
+x[677]=4772.600000; y[677]=4.351852e-05;
+x[678]=4797.000000; y[678]=4.264640e-05;
+x[679]=4821.400000; y[679]=4.239308e-05;
+x[680]=4845.800000; y[680]=4.257580e-05;
+x[681]=4870.200000; y[681]=4.225603e-05;
+x[682]=4894.600000; y[682]=4.183243e-05;
+x[683]=4919.000000; y[683]=4.218958e-05;
+x[684]=4943.400000; y[684]=4.147112e-05;
+x[685]=4967.800000; y[685]=4.179505e-05;
+x[686]=4992.200000; y[686]=4.147528e-05;
+x[687]=5016.600000; y[687]=4.060732e-05;
+x[688]=5041.000000; y[688]=4.117627e-05;
+x[689]=5065.400000; y[689]=4.102261e-05;
+x[690]=5089.800000; y[690]=4.131747e-05;
+x[691]=5114.200000; y[691]=4.029170e-05;
+x[692]=5138.600000; y[692]=4.095201e-05;
+x[693]=5163.000000; y[693]=4.044950e-05;
+x[694]=5187.400000; y[694]=4.071114e-05;
+x[695]=5211.800000; y[695]=4.027508e-05;
+x[696]=5236.200000; y[696]=4.029585e-05;
+x[697]=5260.600000; y[697]=3.988471e-05;
+x[698]=5285.000000; y[698]=3.980995e-05;
+x[699]=5309.400000; y[699]=3.855577e-05;
+x[700]=5333.800000; y[700]=3.965630e-05;
+x[701]=5358.200000; y[701]=3.916210e-05;
+x[702]=5382.600000; y[702]=3.925346e-05;
+x[703]=5407.000000; y[703]=3.874265e-05;
+x[704]=5431.400000; y[704]=3.865544e-05;
+x[705]=5455.800000; y[705]=3.787884e-05;
+x[706]=5480.200000; y[706]=3.777087e-05;
+x[707]=5504.600000; y[707]=3.764628e-05;
+x[708]=5529.000000; y[708]=3.719777e-05;
+x[709]=5553.400000; y[709]=3.734727e-05;
+x[710]=5577.800000; y[710]=3.697766e-05;
+x[711]=5602.200000; y[711]=3.713132e-05;
+x[712]=5626.600000; y[712]=3.713962e-05;
+x[713]=5651.000000; y[713]=3.697766e-05;
+x[714]=5675.400000; y[714]=3.609724e-05;
+x[715]=5699.800000; y[715]=3.645439e-05;
+x[716]=5724.200000; y[716]=3.647515e-05;
+x[717]=5748.600000; y[717]=3.597680e-05;
+x[718]=5773.000000; y[718]=3.573593e-05;
+x[719]=5797.400000; y[719]=3.622598e-05;
+x[720]=5821.800000; y[720]=3.627166e-05;
+x[721]=5846.200000; y[721]=3.463126e-05;
+x[722]=5870.600000; y[722]=3.461049e-05;
+x[723]=5895.000000; y[723]=3.577746e-05;
+x[724]=5919.400000; y[724]=3.515037e-05;
+x[725]=5943.800000; y[725]=3.444022e-05;
+x[726]=5968.200000; y[726]=3.412875e-05;
+x[727]=5992.600000; y[727]=3.430733e-05;
+x[728]=6017.000000; y[728]=3.400001e-05;
+x[729]=6041.400000; y[729]=3.395017e-05;
+x[730]=6065.800000; y[730]=3.439869e-05;
+x[731]=6090.200000; y[731]=3.345182e-05;
+x[732]=6114.600000; y[732]=3.288703e-05;
+x[733]=6139.000000; y[733]=3.330647e-05;
+x[734]=6163.400000; y[734]=3.274167e-05;
+x[735]=6187.800000; y[735]=3.273337e-05;
+x[736]=6212.200000; y[736]=3.259632e-05;
+x[737]=6236.600000; y[737]=3.255479e-05;
+x[738]=6261.000000; y[738]=3.226824e-05;
+x[739]=6285.400000; y[739]=3.181557e-05;
+x[740]=6309.800000; y[740]=3.201906e-05;
+x[741]=6334.200000; y[741]=3.201076e-05;
+x[742]=6358.600000; y[742]=3.241359e-05;
+x[743]=6383.000000; y[743]=3.133799e-05;
+x[744]=6407.400000; y[744]=3.155809e-05;
+x[745]=6431.800000; y[745]=3.118017e-05;
+x[746]=6456.200000; y[746]=3.109296e-05;
+x[747]=6480.600000; y[747]=3.105974e-05;
+x[748]=6505.000000; y[748]=3.035789e-05;
+x[749]=6529.400000; y[749]=3.066521e-05;
+x[750]=6553.800000; y[750]=3.077319e-05;
+x[751]=6578.200000; y[751]=3.077319e-05;
+x[752]=6602.600000; y[752]=3.036205e-05;
+x[753]=6627.000000; y[753]=2.971419e-05;
+x[754]=6651.400000; y[754]=2.980971e-05;
+x[755]=6675.800000; y[755]=2.916600e-05;
+x[756]=6700.200000; y[756]=2.927813e-05;
+x[757]=6724.600000; y[757]=2.922830e-05;
+x[758]=6749.000000; y[758]=2.931966e-05;
+x[759]=6773.400000; y[759]=2.850984e-05;
+x[760]=6797.800000; y[760]=2.926568e-05;
+x[761]=6822.200000; y[761]=2.892513e-05;
+x[762]=6846.600000; y[762]=2.863028e-05;
+x[763]=6871.000000; y[763]=2.870918e-05;
+x[764]=6895.400000; y[764]=2.851399e-05;
+x[765]=6919.800000; y[765]=2.868426e-05;
+x[766]=6944.200000; y[766]=2.860536e-05;
+x[767]=6968.600000; y[767]=2.847246e-05;
+x[768]=6993.000000; y[768]=2.826482e-05;
+x[769]=7017.400000; y[769]=2.850984e-05;
+x[770]=7041.800000; y[770]=2.790351e-05;
+x[771]=7066.200000; y[771]=2.761696e-05;
+x[772]=7090.600000; y[772]=2.820252e-05;
+x[773]=7115.000000; y[773]=2.642507e-05;
+x[774]=7139.400000; y[774]=2.788690e-05;
+x[775]=7163.800000; y[775]=2.777477e-05;
+x[776]=7188.200000; y[776]=2.760035e-05;
+x[777]=7212.600000; y[777]=2.713522e-05;
+x[778]=7237.000000; y[778]=2.674069e-05;
+x[779]=7261.400000; y[779]=2.654966e-05;
+x[780]=7285.800000; y[780]=2.703140e-05;
+x[781]=7310.200000; y[781]=2.669086e-05;
+x[782]=7334.600000; y[782]=2.642507e-05;
+x[783]=7359.000000; y[783]=2.645414e-05;
+x[784]=7383.400000; y[784]=2.657873e-05;
+x[785]=7407.800000; y[785]=2.600563e-05;
+x[786]=7432.200000; y[786]=2.567755e-05;
+x[787]=7456.600000; y[787]=2.608868e-05;
+x[788]=7481.000000; y[788]=2.617590e-05;
+x[789]=7505.400000; y[789]=2.555296e-05;
+x[790]=7529.800000; y[790]=2.557372e-05;
+x[791]=7554.200000; y[791]=2.519996e-05;
+x[792]=7578.600000; y[792]=2.570246e-05;
+x[793]=7603.000000; y[793]=2.531624e-05;
+x[794]=7627.400000; y[794]=2.541591e-05;
+x[795]=7651.800000; y[795]=2.510859e-05;
+x[796]=7676.200000; y[796]=2.488018e-05;
+x[797]=7700.600000; y[797]=2.510444e-05;
+x[798]=7725.000000; y[798]=2.476805e-05;
+x[799]=7749.400000; y[799]=2.436107e-05;
+x[800]=7773.800000; y[800]=2.502969e-05;
+x[801]=7798.200000; y[801]=2.489264e-05;
+x[802]=7822.600000; y[802]=2.465592e-05;
+x[803]=7847.000000; y[803]=2.465592e-05;
+x[804]=7871.400000; y[804]=2.470161e-05;
+x[805]=7895.800000; y[805]=2.431123e-05;
+x[806]=7920.200000; y[806]=2.430708e-05;
+x[807]=7944.600000; y[807]=2.442336e-05;
+x[808]=7969.000000; y[808]=2.425724e-05;
+x[809]=7993.400000; y[809]=2.399561e-05;
+x[810]=8017.800000; y[810]=2.394577e-05;
+x[811]=8042.200000; y[811]=2.416173e-05;
+x[812]=8066.600000; y[812]=2.470991e-05;
+x[813]=8091.000000; y[813]=2.425309e-05;
+x[814]=8115.400000; y[814]=2.371321e-05;
+x[815]=8139.800000; y[815]=2.419495e-05;
+x[816]=8164.200000; y[816]=2.365922e-05;
+x[817]=8188.600000; y[817]=2.319410e-05;
+x[818]=8213.000000; y[818]=2.351387e-05;
+x[819]=8237.400000; y[819]=2.330207e-05;
+x[820]=8261.800000; y[820]=2.348895e-05;
+x[821]=8286.200000; y[821]=2.394577e-05;
+x[822]=8310.600000; y[822]=2.383780e-05;
+x[823]=8335.000000; y[823]=2.363015e-05;
+x[824]=8359.400000; y[824]=2.314011e-05;
+x[825]=8383.800000; y[825]=2.337682e-05;
+x[826]=8408.200000; y[826]=2.282864e-05;
+x[827]=8432.600000; y[827]=2.295738e-05;
+x[828]=8457.000000; y[828]=2.341005e-05;
+x[829]=8481.400000; y[829]=2.317748e-05;
+x[830]=8505.800000; y[830]=2.330207e-05;
+x[831]=8530.200000; y[831]=2.363015e-05;
+x[832]=8554.600000; y[832]=2.284110e-05;
+x[833]=8579.000000; y[833]=2.325639e-05;
+x[834]=8603.400000; y[834]=2.339759e-05;
+x[835]=8627.800000; y[835]=2.243826e-05;
+x[836]=8652.200000; y[836]=2.350141e-05;
+x[837]=8676.600000; y[837]=2.273312e-05;
+x[838]=8701.000000; y[838]=2.335606e-05;
+x[839]=8725.400000; y[839]=2.295323e-05;
+x[840]=8749.800000; y[840]=2.295323e-05;
+x[841]=8774.200000; y[841]=2.226384e-05;
+x[842]=8798.600000; y[842]=2.233029e-05;
+x[843]=8823.000000; y[843]=2.234275e-05;
+x[844]=8847.400000; y[844]=2.240919e-05;
+x[845]=8871.800000; y[845]=2.287847e-05;
+x[846]=8896.200000; y[846]=2.304459e-05;
+x[847]=8920.600000; y[847]=2.258777e-05;
+x[848]=8945.000000; y[848]=2.252547e-05;
+x[849]=8969.400000; y[849]=2.208942e-05;
+x[850]=8993.800000; y[850]=2.277880e-05;
+x[851]=9018.200000; y[851]=2.282448e-05;
+x[852]=9042.600000; y[852]=2.241750e-05;
+x[853]=9067.000000; y[853]=2.242580e-05;
+x[854]=9091.400000; y[854]=2.296569e-05;
+x[855]=9115.800000; y[855]=2.251302e-05;
+x[856]=9140.200000; y[856]=2.212679e-05;
+x[857]=9164.600000; y[857]=2.288678e-05;
+x[858]=9189.000000; y[858]=2.198975e-05;
+x[859]=9213.400000; y[859]=2.257531e-05;
+x[860]=9237.800000; y[860]=2.247149e-05;
+x[861]=9262.200000; y[861]=2.252963e-05;
+x[862]=9286.600000; y[862]=2.230952e-05;
+x[863]=9311.000000; y[863]=2.277050e-05;
+x[864]=9335.400000; y[864]=2.241335e-05;
+x[865]=9359.800000; y[865]=2.250471e-05;
+x[866]=9384.200000; y[866]=2.247979e-05;
+x[867]=9408.600000; y[867]=2.251717e-05;
+x[868]=9433.000000; y[868]=2.234690e-05;
+x[869]=9457.400000; y[869]=2.257946e-05;
+x[870]=9481.800000; y[870]=2.202712e-05;
+x[871]=9506.200000; y[871]=2.219324e-05;
+x[872]=9530.600000; y[872]=2.243411e-05;
+x[873]=9555.000000; y[873]=2.200636e-05;
+x[874]=9579.400000; y[874]=2.172811e-05;
+x[875]=9603.800000; y[875]=2.316918e-05;
+x[876]=9628.200000; y[876]=2.240504e-05;
+x[877]=9652.600000; y[877]=2.190254e-05;
+x[878]=9677.000000; y[878]=2.301137e-05;
+x[879]=9701.400000; y[879]=2.277050e-05;
+x[880]=9725.800000; y[880]=2.226799e-05;
+x[881]=9750.200000; y[881]=2.279957e-05;
+x[882]=9774.600000; y[882]=2.221816e-05;
+x[883]=9799.000000; y[883]=2.263345e-05;
+x[884]=9823.400000; y[884]=2.191084e-05;
+x[885]=9847.800000; y[885]=2.277465e-05;
+x[886]=9872.200000; y[886]=2.254624e-05;
+x[887]=9896.600000; y[887]=2.230537e-05;
+x[888]=9921.000000; y[888]=2.243826e-05;
+x[889]=9945.400000; y[889]=2.259192e-05;
+x[890]=9969.800000; y[890]=2.288263e-05;
+x[891]=9994.200000; y[891]=2.203543e-05;
+x[892]=10018.600000; y[892]=2.272066e-05;
+x[893]=10043.000000; y[893]=2.270405e-05;
+x[894]=10067.400000; y[894]=2.237597e-05;
+x[895]=10091.800000; y[895]=2.203958e-05;
+x[896]=10116.200000; y[896]=2.233859e-05;
+x[897]=10140.600000; y[897]=2.206035e-05;
+x[898]=10165.000000; y[898]=2.205204e-05;
+x[899]=10189.400000; y[899]=2.261268e-05;
+x[900]=10213.800000; y[900]=2.195652e-05;
+x[901]=10238.200000; y[901]=2.233859e-05;
+x[902]=10262.600000; y[902]=2.249640e-05;
+x[903]=10287.000000; y[903]=2.192745e-05;
+x[904]=10311.400000; y[904]=2.251717e-05;
+x[905]=10335.800000; y[905]=2.252963e-05;
+x[906]=10360.200000; y[906]=2.158276e-05;
+x[907]=10384.600000; y[907]=2.193991e-05;
+x[908]=10409.000000; y[908]=2.213510e-05;
+x[909]=10433.400000; y[909]=2.152462e-05;
+x[910]=10457.800000; y[910]=2.179871e-05;
+x[911]=10482.200000; y[911]=2.139588e-05;
+x[912]=10506.600000; y[912]=2.125468e-05;
+x[913]=10531.000000; y[913]=2.151631e-05;
+x[914]=10555.400000; y[914]=2.187346e-05;
+x[915]=10579.800000; y[915]=2.204373e-05;
+x[916]=10604.200000; y[916]=2.193576e-05;
+x[917]=10628.600000; y[917]=2.131282e-05;
+x[918]=10653.000000; y[918]=2.132113e-05;
+x[919]=10677.400000; y[919]=2.175303e-05;
+x[920]=10701.800000; y[920]=2.095982e-05;
+x[921]=10726.200000; y[921]=2.219324e-05;
+x[922]=10750.600000; y[922]=2.193576e-05;
+x[923]=10775.000000; y[923]=2.181117e-05;
+x[924]=10799.400000; y[924]=2.170735e-05;
+x[925]=10823.800000; y[925]=2.104703e-05;
+x[926]=10848.200000; y[926]=2.057360e-05;
+x[927]=10872.600000; y[927]=2.103873e-05;
+x[928]=10897.000000; y[928]=2.113009e-05;
+x[929]=10921.400000; y[929]=2.136266e-05;
+x[930]=10945.800000; y[930]=2.081862e-05;
+x[931]=10970.200000; y[931]=2.070234e-05;
+x[932]=10994.600000; y[932]=2.105949e-05;
+x[933]=11019.000000; y[933]=2.083523e-05;
+x[934]=11043.400000; y[934]=2.068988e-05;
+x[935]=11067.800000; y[935]=2.138342e-05;
+x[936]=11092.200000; y[936]=2.125468e-05;
+x[937]=11116.600000; y[937]=2.086430e-05;
+x[938]=11141.000000; y[938]=2.088507e-05;
+x[939]=11165.400000; y[939]=2.090999e-05;
+x[940]=11189.800000; y[940]=2.124222e-05;
+x[941]=11214.200000; y[941]=2.071895e-05;
+x[942]=11238.600000; y[942]=2.055283e-05;
+x[943]=11263.000000; y[943]=2.056114e-05;
+x[944]=11287.400000; y[944]=2.049054e-05;
+x[945]=11311.800000; y[945]=2.092660e-05;
+x[946]=11336.200000; y[946]=2.098474e-05;
+x[947]=11360.600000; y[947]=2.088507e-05;
+x[948]=11385.000000; y[948]=2.078955e-05;
+x[949]=11409.400000; y[949]=2.076879e-05;
+x[950]=11433.800000; y[950]=2.056945e-05;
+x[951]=11458.200000; y[951]=2.105118e-05;
+x[952]=11482.600000; y[952]=2.077294e-05;
+x[953]=11507.000000; y[953]=2.043655e-05;
+x[954]=11531.400000; y[954]=2.092245e-05;
+x[955]=11555.800000; y[955]=2.076048e-05;
+x[956]=11580.200000; y[956]=2.081862e-05;
+x[957]=11604.600000; y[957]=2.047393e-05;
+x[958]=11629.000000; y[958]=2.030366e-05;
+x[959]=11653.400000; y[959]=2.039087e-05;
+x[960]=11677.800000; y[960]=2.078955e-05;
+x[961]=11702.200000; y[961]=2.061097e-05;
+x[962]=11726.600000; y[962]=2.025382e-05;
+x[963]=11751.000000; y[963]=2.000049e-05;
+x[964]=11775.400000; y[964]=2.019984e-05;
+x[965]=11799.800000; y[965]=2.043655e-05;
+x[966]=11824.200000; y[966]=2.029120e-05;
+x[967]=11848.600000; y[967]=2.056945e-05;
+x[968]=11873.000000; y[968]=1.990498e-05;
+x[969]=11897.400000; y[969]=2.023721e-05;
+x[970]=11921.800000; y[970]=2.030781e-05;
+x[971]=11946.200000; y[971]=2.100966e-05;
+x[972]=11970.600000; y[972]=2.000880e-05;
+x[973]=11995.000000; y[973]=2.045732e-05;
+x[974]=12019.400000; y[974]=2.013339e-05;
+x[975]=12043.800000; y[975]=1.999634e-05;
+x[976]=12068.200000; y[976]=1.987175e-05;
+x[977]=12092.600000; y[977]=1.986345e-05;
+x[978]=12117.000000; y[978]=1.984268e-05;
+x[979]=12141.400000; y[979]=1.983438e-05;
+x[980]=12165.800000; y[980]=1.963919e-05;
+x[981]=12190.200000; y[981]=2.002126e-05;
+x[982]=12214.600000; y[982]=2.012093e-05;
+x[983]=12239.000000; y[983]=1.968072e-05;
+x[984]=12263.400000; y[984]=1.966826e-05;
+x[985]=12287.800000; y[985]=1.966826e-05;
+x[986]=12312.200000; y[986]=1.971810e-05;
+x[987]=12336.600000; y[987]=2.015000e-05;
+x[988]=12361.000000; y[988]=1.952291e-05;
+x[989]=12385.400000; y[989]=1.927373e-05;
+x[990]=12409.800000; y[990]=1.971810e-05;
+x[991]=12434.200000; y[991]=1.931111e-05;
+x[992]=12458.600000; y[992]=1.912838e-05;
+x[993]=12483.000000; y[993]=1.953121e-05;
+x[994]=12507.400000; y[994]=1.926543e-05;
+x[995]=12531.800000; y[995]=1.956028e-05;
+x[996]=12556.200000; y[996]=1.983853e-05;
+x[997]=12580.600000; y[997]=1.973886e-05;
+x[998]=12605.000000; y[998]=1.911177e-05;
+x[999]=12629.400000; y[999]=1.892489e-05;
+x[1000]=12653.800000; y[1000]=1.858850e-05;
+x[1001]=12678.200000; y[1001]=1.888751e-05;
+x[1002]=12702.600000; y[1002]=1.953121e-05;
+x[1003]=12727.000000; y[1003]=1.887505e-05;
+x[1004]=12751.400000; y[1004]=1.940247e-05;
+x[1005]=12775.800000; y[1005]=1.897888e-05;
+x[1006]=12800.200000; y[1006]=1.830610e-05;
+x[1007]=12824.600000; y[1007]=1.872970e-05;
+x[1008]=12849.000000; y[1008]=1.853867e-05;
+x[1009]=12873.400000; y[1009]=1.839746e-05;
+x[1010]=12897.800000; y[1010]=1.867156e-05;
+x[1011]=12922.200000; y[1011]=1.838085e-05;
+x[1012]=12946.600000; y[1012]=1.922390e-05;
+x[1013]=12971.000000; y[1013]=1.893319e-05;
+x[1014]=12995.400000; y[1014]=1.822719e-05;
+x[1015]=13019.800000; y[1015]=1.833517e-05;
+x[1016]=13044.200000; y[1016]=1.818567e-05;
+x[1017]=13068.600000; y[1017]=1.831441e-05;
+x[1018]=13093.000000; y[1018]=1.816075e-05;
+x[1019]=13117.400000; y[1019]=1.873385e-05;
+x[1020]=13141.800000; y[1020]=1.809430e-05;
+x[1021]=13166.200000; y[1021]=1.823550e-05;
+x[1022]=13190.600000; y[1022]=1.761671e-05;
+x[1023]=13215.000000; y[1023]=1.835594e-05;
+x[1024]=13239.400000; y[1024]=1.811922e-05;
+x[1025]=13263.800000; y[1025]=1.796556e-05;
+x[1026]=13288.200000; y[1026]=1.787835e-05;
+x[1027]=13312.600000; y[1027]=1.791988e-05;
+x[1028]=13337.000000; y[1028]=1.771223e-05;
+x[1029]=13361.400000; y[1029]=1.767070e-05;
+x[1030]=13385.800000; y[1030]=1.759595e-05;
+x[1031]=13410.200000; y[1031]=1.769147e-05;
+x[1032]=13434.600000; y[1032]=1.760426e-05;
+x[1033]=13459.000000; y[1033]=1.796971e-05;
+x[1034]=13483.400000; y[1034]=1.768731e-05;
+x[1035]=13507.800000; y[1035]=1.750874e-05;
+x[1036]=13532.200000; y[1036]=1.707683e-05;
+x[1037]=13556.600000; y[1037]=1.784513e-05;
+x[1038]=13581.000000; y[1038]=1.733847e-05;
+x[1039]=13605.400000; y[1039]=1.739246e-05;
+x[1040]=13629.800000; y[1040]=1.754612e-05;
+x[1041]=13654.200000; y[1041]=1.732601e-05;
+x[1042]=13678.600000; y[1042]=1.741737e-05;
+x[1043]=13703.000000; y[1043]=1.714328e-05;
+x[1044]=13727.400000; y[1044]=1.706853e-05;
+x[1045]=13751.800000; y[1045]=1.709345e-05;
+x[1046]=13776.200000; y[1046]=1.777868e-05;
+x[1047]=13800.600000; y[1047]=1.751704e-05;
+x[1048]=13825.000000; y[1048]=1.714743e-05;
+x[1049]=13849.400000; y[1049]=1.684427e-05;
+x[1050]=13873.800000; y[1050]=1.762087e-05;
+x[1051]=13898.200000; y[1051]=1.705607e-05;
+x[1052]=13922.600000; y[1052]=1.677782e-05;
+x[1053]=13947.000000; y[1053]=1.659094e-05;
+x[1054]=13971.400000; y[1054]=1.736754e-05;
+x[1055]=13995.800000; y[1055]=1.703531e-05;
+x[1056]=14020.200000; y[1056]=1.705192e-05;
+x[1057]=14044.600000; y[1057]=1.627947e-05;
+x[1058]=14069.000000; y[1058]=1.646220e-05;
+x[1059]=14093.400000; y[1059]=1.712252e-05;
+x[1060]=14117.800000; y[1060]=1.695225e-05;
+x[1061]=14142.200000; y[1061]=1.684012e-05;
+x[1062]=14166.600000; y[1062]=1.657433e-05;
+x[1063]=14191.000000; y[1063]=1.685673e-05;
+x[1064]=14215.400000; y[1064]=1.659094e-05;
+x[1065]=14239.800000; y[1065]=1.645390e-05;
+x[1066]=14264.200000; y[1066]=1.668646e-05;
+x[1067]=14288.600000; y[1067]=1.576866e-05;
+x[1068]=14313.000000; y[1068]=1.622964e-05;
+x[1069]=14337.400000; y[1069]=1.593478e-05;
+x[1070]=14361.800000; y[1070]=1.708099e-05;
+x[1071]=14386.200000; y[1071]=1.644144e-05;
+x[1072]=14410.600000; y[1072]=1.596385e-05;
+x[1073]=14435.000000; y[1073]=1.640406e-05;
+x[1074]=14459.400000; y[1074]=1.652449e-05;
+x[1075]=14483.800000; y[1075]=1.605106e-05;
+x[1076]=14508.200000; y[1076]=1.574374e-05;
+x[1077]=14532.600000; y[1077]=1.639160e-05;
+x[1078]=14557.000000; y[1078]=1.600538e-05;
+x[1079]=14581.400000; y[1079]=1.637914e-05;
+x[1080]=14605.800000; y[1080]=1.654526e-05;
+x[1081]=14630.200000; y[1081]=1.580189e-05;
+x[1082]=14654.600000; y[1082]=1.626286e-05;
+x[1083]=14679.000000; y[1083]=1.584757e-05;
+x[1084]=14703.400000; y[1084]=1.608013e-05;
+x[1085]=14727.800000; y[1085]=1.570222e-05;
+x[1086]=14752.200000; y[1086]=1.626701e-05;
+x[1087]=14776.600000; y[1087]=1.550703e-05;
+x[1088]=14801.000000; y[1088]=1.570222e-05;
+x[1089]=14825.400000; y[1089]=1.589740e-05;
+x[1090]=14849.800000; y[1090]=1.584342e-05;
+x[1091]=14874.200000; y[1091]=1.576451e-05;
+x[1092]=14898.600000; y[1092]=1.615073e-05;
+x[1093]=14923.000000; y[1093]=1.595139e-05;
+x[1094]=14947.400000; y[1094]=1.561916e-05;
+x[1095]=14971.800000; y[1095]=1.571468e-05;
+x[1096]=14996.200000; y[1096]=1.544473e-05;
+x[1097]=15020.600000; y[1097]=1.582265e-05;
+x[1098]=15045.000000; y[1098]=1.524539e-05;
+x[1099]=15069.400000; y[1099]=1.510004e-05;
+x[1100]=15093.800000; y[1100]=1.599292e-05;
+x[1101]=15118.200000; y[1101]=1.600538e-05;
+x[1102]=15142.600000; y[1102]=1.619641e-05;
+x[1103]=15167.000000; y[1103]=1.538244e-05;
+x[1104]=15191.400000; y[1104]=1.571052e-05;
+x[1105]=15215.800000; y[1105]=1.510004e-05;
+x[1106]=15240.200000; y[1106]=1.492562e-05;
+x[1107]=15264.600000; y[1107]=1.561085e-05;
+x[1108]=15289.000000; y[1108]=1.492977e-05;
+x[1109]=15313.400000; y[1109]=1.534506e-05;
+x[1110]=15337.800000; y[1110]=1.514572e-05;
+x[1111]=15362.200000; y[1111]=1.486748e-05;
+x[1112]=15386.600000; y[1112]=1.533261e-05;
+x[1113]=15411.000000; y[1113]=1.553194e-05;
+x[1114]=15435.400000; y[1114]=1.511665e-05;
+x[1115]=15459.800000; y[1115]=1.490901e-05;
+x[1116]=15484.200000; y[1116]=1.480103e-05;
+x[1117]=15508.600000; y[1117]=1.485917e-05;
+x[1118]=15533.000000; y[1118]=1.488409e-05;
+x[1119]=15557.400000; y[1119]=1.512496e-05;
+x[1120]=15581.800000; y[1120]=1.493808e-05;
+x[1121]=15606.200000; y[1121]=1.518725e-05;
+x[1122]=15630.600000; y[1122]=1.480518e-05;
+x[1123]=15655.000000; y[1123]=1.448126e-05;
+x[1124]=15679.400000; y[1124]=1.427776e-05;
+x[1125]=15703.800000; y[1125]=1.446464e-05;
+x[1126]=15728.200000; y[1126]=1.429853e-05;
+x[1127]=15752.600000; y[1127]=1.468890e-05;
+x[1128]=15777.000000; y[1128]=1.467229e-05;
+x[1129]=15801.400000; y[1129]=1.469305e-05;
+x[1130]=15825.800000; y[1130]=1.456431e-05;
+x[1131]=15850.200000; y[1131]=1.424039e-05;
+x[1132]=15874.600000; y[1132]=1.443973e-05;
+x[1133]=15899.000000; y[1133]=1.439404e-05;
+x[1134]=15923.400000; y[1134]=1.441896e-05;
+x[1135]=15947.800000; y[1135]=1.489655e-05;
+x[1136]=15972.200000; y[1136]=1.426530e-05;
+x[1137]=15996.600000; y[1137]=1.459338e-05;
+x[1138]=16021.000000; y[1138]=1.421962e-05;
+x[1139]=16045.400000; y[1139]=1.448541e-05;
+x[1140]=16069.800000; y[1140]=1.384170e-05;
+x[1141]=16094.200000; y[1141]=1.436082e-05;
+x[1142]=16118.600000; y[1142]=1.403274e-05;
+x[1143]=16143.000000; y[1143]=1.386662e-05;
+x[1144]=16167.400000; y[1144]=1.385832e-05;
+x[1145]=16191.800000; y[1145]=1.427361e-05;
+x[1146]=16216.200000; y[1146]=1.409919e-05;
+x[1147]=16240.600000; y[1147]=1.403274e-05;
+x[1148]=16265.000000; y[1148]=1.409088e-05;
+x[1149]=16289.400000; y[1149]=1.380433e-05;
+x[1150]=16313.800000; y[1150]=1.336412e-05;
+x[1151]=16338.200000; y[1151]=1.367559e-05;
+x[1152]=16362.600000; y[1152]=1.346379e-05;
+x[1153]=16387.000000; y[1153]=1.389985e-05;
+x[1154]=16411.400000; y[1154]=1.394138e-05;
+x[1155]=16435.800000; y[1155]=1.386662e-05;
+x[1156]=16460.200000; y[1156]=1.407842e-05;
+x[1157]=16484.600000; y[1157]=1.390400e-05;
+x[1158]=16509.000000; y[1158]=1.333505e-05;
+x[1159]=16533.400000; y[1159]=1.387493e-05;
+x[1160]=16557.800000; y[1160]=1.403689e-05;
+x[1161]=16582.200000; y[1161]=1.411580e-05;
+x[1162]=16606.600000; y[1162]=1.355100e-05;
+x[1163]=16631.000000; y[1163]=1.367559e-05;
+x[1164]=16655.400000; y[1164]=1.351778e-05;
+x[1165]=16679.800000; y[1165]=1.369220e-05;
+x[1166]=16704.200000; y[1166]=1.338073e-05;
+x[1167]=16728.600000; y[1167]=1.353854e-05;
+x[1168]=16753.000000; y[1168]=1.346379e-05;
+x[1169]=16777.400000; y[1169]=1.360083e-05;
+x[1170]=16801.800000; y[1170]=1.371296e-05;
+x[1171]=16826.200000; y[1171]=1.326029e-05;
+x[1172]=16850.600000; y[1172]=1.347625e-05;
+x[1173]=16875.000000; y[1173]=1.367559e-05;
+x[1174]=16899.400000; y[1174]=1.347625e-05;
+x[1175]=16923.800000; y[1175]=1.346794e-05;
+x[1176]=16948.200000; y[1176]=1.359253e-05;
+x[1177]=16972.600000; y[1177]=1.345964e-05;
+x[1178]=16997.000000; y[1178]=1.345964e-05;
+x[1179]=17021.400000; y[1179]=1.315647e-05;
+x[1180]=17045.800000; y[1180]=1.322707e-05;
+x[1181]=17070.200000; y[1181]=1.349701e-05;
+x[1182]=17094.600000; y[1182]=1.299866e-05;
+x[1183]=17119.000000; y[1183]=1.326860e-05;
+x[1184]=17143.400000; y[1184]=1.296544e-05;
+x[1185]=17167.800000; y[1185]=1.299035e-05;
+x[1186]=17192.200000; y[1186]=1.324368e-05;
+x[1187]=17216.600000; y[1187]=1.304434e-05;
+x[1188]=17241.000000; y[1188]=1.307341e-05;
+x[1189]=17265.400000; y[1189]=1.272457e-05;
+x[1190]=17289.800000; y[1190]=1.244217e-05;
+x[1191]=17314.200000; y[1191]=1.291976e-05;
+x[1192]=17338.600000; y[1192]=1.281178e-05;
+x[1193]=17363.000000; y[1193]=1.249616e-05;
+x[1194]=17387.400000; y[1194]=1.246709e-05;
+x[1195]=17411.800000; y[1195]=1.323538e-05;
+x[1196]=17436.200000; y[1196]=1.247954e-05;
+x[1197]=17460.600000; y[1197]=1.232589e-05;
+x[1198]=17485.000000; y[1198]=1.227190e-05;
+x[1199]=17509.400000; y[1199]=1.255014e-05;
+x[1200]=17533.800000; y[1200]=1.325199e-05;
+x[1201]=17558.200000; y[1201]=1.272457e-05;
+x[1202]=17582.600000; y[1202]=1.286161e-05;
+x[1203]=17607.000000; y[1203]=1.241310e-05;
+x[1204]=17631.400000; y[1204]=1.267889e-05;
+x[1205]=17655.800000; y[1205]=1.268304e-05;
+x[1206]=17680.200000; y[1206]=1.251692e-05;
+x[1207]=17704.600000; y[1207]=1.223452e-05;
+x[1208]=17729.000000; y[1208]=1.213070e-05;
+x[1209]=17753.400000; y[1209]=1.244632e-05;
+x[1210]=17777.800000; y[1210]=1.254599e-05;
+x[1211]=17802.200000; y[1211]=1.262074e-05;
+x[1212]=17826.600000; y[1212]=1.228851e-05;
+x[1213]=17851.000000; y[1213]=1.228851e-05;
+x[1214]=17875.400000; y[1214]=1.249616e-05;
+x[1215]=17899.800000; y[1215]=1.246293e-05;
+x[1216]=17924.200000; y[1216]=1.213485e-05;
+x[1217]=17948.600000; y[1217]=1.246293e-05;
+x[1218]=17973.000000; y[1218]=1.214731e-05;
+x[1219]=17997.400000; y[1219]=1.241725e-05;
+x[1220]=18021.800000; y[1220]=1.233419e-05;
+x[1221]=18046.200000; y[1221]=1.237157e-05;
+x[1222]=18070.600000; y[1222]=1.205179e-05;
+x[1223]=18095.000000; y[1223]=1.215977e-05;
+x[1224]=18119.400000; y[1224]=1.223452e-05;
+x[1225]=18143.800000; y[1225]=1.214731e-05;
+x[1226]=18168.200000; y[1226]=1.223452e-05;
+x[1227]=18192.600000; y[1227]=1.207256e-05;
+x[1228]=18217.000000; y[1228]=1.162819e-05;
+x[1229]=18241.400000; y[1229]=1.166972e-05;
+x[1230]=18265.800000; y[1230]=1.185245e-05;
+x[1231]=18290.200000; y[1231]=1.175694e-05;
+x[1232]=18314.600000; y[1232]=1.168634e-05;
+x[1233]=18339.000000; y[1233]=1.179431e-05;
+x[1234]=18363.400000; y[1234]=1.156590e-05;
+x[1235]=18387.800000; y[1235]=1.201026e-05;
+x[1236]=18412.200000; y[1236]=1.180677e-05;
+x[1237]=18436.600000; y[1237]=1.140809e-05;
+x[1238]=18461.000000; y[1238]=1.169049e-05;
+x[1239]=18485.400000; y[1239]=1.169049e-05;
+x[1240]=18509.800000; y[1240]=1.192305e-05;
+x[1241]=18534.200000; y[1241]=1.150361e-05;
+x[1242]=18558.600000; y[1242]=1.144131e-05;
+x[1243]=18583.000000; y[1243]=1.138317e-05;
+x[1244]=18607.400000; y[1244]=1.169464e-05;
+x[1245]=18631.800000; y[1245]=1.169464e-05;
+x[1246]=18656.200000; y[1246]=1.173202e-05;
+x[1247]=18680.600000; y[1247]=1.177770e-05;
+x[1248]=18705.000000; y[1248]=1.125443e-05;
+x[1249]=18729.400000; y[1249]=1.159497e-05;
+x[1250]=18753.800000; y[1250]=1.137902e-05;
+x[1251]=18778.200000; y[1251]=1.135410e-05;
+x[1252]=18802.600000; y[1252]=1.146208e-05;
+x[1253]=18827.000000; y[1253]=1.165311e-05;
+x[1254]=18851.400000; y[1254]=1.196873e-05;
+x[1255]=18875.800000; y[1255]=1.143301e-05;
+x[1256]=18900.200000; y[1256]=1.130427e-05;
+x[1257]=18924.600000; y[1257]=1.133749e-05;
+x[1258]=18949.000000; y[1258]=1.127935e-05;
+x[1259]=18973.400000; y[1259]=1.114230e-05;
+x[1260]=18997.800000; y[1260]=1.159082e-05;
+x[1261]=19022.200000; y[1261]=1.149945e-05;
+x[1262]=19046.600000; y[1262]=1.156175e-05;
+x[1263]=19071.000000; y[1263]=1.149530e-05;
+x[1264]=19095.400000; y[1264]=1.109247e-05;
+x[1265]=19119.800000; y[1265]=1.128350e-05;
+x[1266]=19144.200000; y[1266]=1.139978e-05;
+x[1267]=19168.600000; y[1267]=1.104263e-05;
+x[1268]=19193.000000; y[1268]=1.109247e-05;
+x[1269]=19217.400000; y[1269]=1.109662e-05;
+x[1270]=19241.800000; y[1270]=1.117553e-05;
+x[1271]=19266.200000; y[1271]=1.130011e-05;
+x[1272]=19290.600000; y[1272]=1.109662e-05;
+x[1273]=19315.000000; y[1273]=1.094296e-05;
+x[1274]=19339.400000; y[1274]=1.119629e-05;
+x[1275]=19363.800000; y[1275]=1.111738e-05;
+x[1276]=19388.200000; y[1276]=1.066472e-05;
+x[1277]=19412.600000; y[1277]=1.057750e-05;
+x[1278]=19437.000000; y[1278]=1.063565e-05;
+x[1279]=19461.400000; y[1279]=1.135825e-05;
+x[1280]=19485.800000; y[1280]=1.106755e-05;
+x[1281]=19510.200000; y[1281]=1.091389e-05;
+x[1282]=19534.600000; y[1282]=1.089728e-05;
+x[1283]=19559.000000; y[1283]=1.121705e-05;
+x[1284]=19583.400000; y[1284]=1.078930e-05;
+x[1285]=19607.800000; y[1285]=1.113815e-05;
+x[1286]=19632.200000; y[1286]=1.134164e-05;
+x[1287]=19656.600000; y[1287]=1.071870e-05;
+x[1288]=19681.000000; y[1288]=1.078515e-05;
+x[1289]=19705.400000; y[1289]=1.067302e-05;
+x[1290]=19729.800000; y[1290]=1.084744e-05;
+x[1291]=19754.200000; y[1291]=1.046122e-05;
+x[1292]=19778.600000; y[1292]=1.069794e-05;
+x[1293]=19803.000000; y[1293]=1.101356e-05;
+x[1294]=19827.400000; y[1294]=1.081007e-05;
+x[1295]=19851.800000; y[1295]=1.058166e-05;
+x[1296]=19876.200000; y[1296]=1.087652e-05;
+x[1297]=19900.600000; y[1297]=1.061488e-05;
+x[1298]=19925.000000; y[1298]=1.079346e-05;
+x[1299]=19949.400000; y[1299]=1.078515e-05;
+x[1300]=19973.800000; y[1300]=1.047368e-05;
+x[1301]=19998.200000; y[1301]=1.060657e-05;
+x[1302]=20022.600000; y[1302]=1.061903e-05;
+x[1303]=20047.000000; y[1303]=1.039893e-05;
+x[1304]=20071.400000; y[1304]=1.038647e-05;
+x[1305]=20095.800000; y[1305]=1.060242e-05;
+x[1306]=20120.200000; y[1306]=1.049029e-05;
+x[1307]=20144.600000; y[1307]=1.081837e-05;
+x[1308]=20169.000000; y[1308]=1.068133e-05;
+x[1309]=20193.400000; y[1309]=1.068133e-05;
+x[1310]=20217.800000; y[1310]=1.085575e-05;
+x[1311]=20242.200000; y[1311]=1.078515e-05;
+x[1312]=20266.600000; y[1312]=1.024942e-05;
+x[1313]=20291.000000; y[1313]=1.061073e-05;
+x[1314]=20315.400000; y[1314]=1.049445e-05;
+x[1315]=20339.800000; y[1315]=1.048614e-05;
+x[1316]=20364.200000; y[1316]=1.066056e-05;
+x[1317]=20388.600000; y[1317]=1.076439e-05;
+x[1318]=20413.000000; y[1318]=1.049029e-05;
+x[1319]=20437.400000; y[1319]=1.034909e-05;
+x[1320]=20461.800000; y[1320]=9.863201e-06;
+x[1321]=20486.200000; y[1321]=1.041969e-05;
+x[1322]=20510.600000; y[1322]=1.034079e-05;
+x[1323]=20535.000000; y[1323]=9.821671e-06;
+x[1324]=20559.400000; y[1324]=1.039062e-05;
+x[1325]=20583.800000; y[1325]=1.027434e-05;
+x[1326]=20608.200000; y[1326]=1.018713e-05;
+x[1327]=20632.600000; y[1327]=1.045292e-05;
+x[1328]=20657.000000; y[1328]=1.026604e-05;
+x[1329]=20681.400000; y[1329]=9.975330e-06;
+x[1330]=20705.800000; y[1330]=1.017052e-05;
+x[1331]=20730.200000; y[1331]=1.020374e-05;
+x[1332]=20754.600000; y[1332]=1.025773e-05;
+x[1333]=20779.000000; y[1333]=1.022035e-05;
+x[1334]=20803.400000; y[1334]=1.017467e-05;
+x[1335]=20827.800000; y[1335]=1.021205e-05;
+x[1336]=20852.200000; y[1336]=1.002101e-05;
+x[1337]=20876.600000; y[1337]=1.046953e-05;
+x[1338]=20901.000000; y[1338]=1.004593e-05;
+x[1339]=20925.400000; y[1339]=1.026188e-05;
+x[1340]=20949.800000; y[1340]=9.746919e-06;
+x[1341]=20974.200000; y[1341]=9.875660e-06;
+x[1342]=20998.600000; y[1342]=9.987789e-06;
+x[1343]=21023.000000; y[1343]=1.018713e-05;
+x[1344]=21047.400000; y[1344]=1.000440e-05;
+x[1345]=21071.800000; y[1345]=9.850742e-06;
+x[1346]=21096.200000; y[1346]=9.996094e-06;
+x[1347]=21120.600000; y[1347]=1.033663e-05;
+x[1348]=21145.000000; y[1348]=1.021620e-05;
+x[1349]=21169.400000; y[1349]=9.859048e-06;
+x[1350]=21193.800000; y[1350]=1.005424e-05;
+x[1351]=21218.200000; y[1351]=9.987789e-06;
+x[1352]=21242.600000; y[1352]=1.004593e-05;
+x[1353]=21267.000000; y[1353]=9.755225e-06;
+x[1354]=21291.400000; y[1354]=1.006669e-05;
+x[1355]=21315.800000; y[1355]=1.007915e-05;
+x[1356]=21340.200000; y[1356]=9.838283e-06;
+x[1357]=21364.600000; y[1357]=1.002932e-05;
+x[1358]=21389.000000; y[1358]=1.002101e-05;
+x[1359]=21413.400000; y[1359]=9.788449e-06;
+x[1360]=21437.800000; y[1360]=1.010822e-05;
+x[1361]=21462.200000; y[1361]=9.605719e-06;
+x[1362]=21486.600000; y[1362]=9.730307e-06;
+x[1363]=21511.000000; y[1363]=9.722001e-06;
+x[1364]=21535.400000; y[1364]=1.009992e-05;
+x[1365]=21559.800000; y[1365]=9.871506e-06;
+x[1366]=21584.200000; y[1366]=9.705390e-06;
+x[1367]=21608.600000; y[1367]=1.030341e-05;
+x[1368]=21633.000000; y[1368]=9.609872e-06;
+x[1369]=21657.400000; y[1369]=9.626484e-06;
+x[1370]=21681.800000; y[1370]=9.900577e-06;
+x[1371]=21706.200000; y[1371]=9.560037e-06;
+x[1372]=21730.600000; y[1372]=9.792601e-06;
+x[1373]=21755.000000; y[1373]=9.605719e-06;
+x[1374]=21779.400000; y[1374]=9.788449e-06;
+x[1375]=21803.800000; y[1375]=9.643096e-06;
+x[1376]=21828.200000; y[1376]=9.576649e-06;
+x[1377]=21852.600000; y[1377]=9.518508e-06;
+x[1378]=21877.000000; y[1378]=9.763530e-06;
+x[1379]=21901.400000; y[1379]=9.439602e-06;
+x[1380]=21925.800000; y[1380]=9.692931e-06;
+x[1381]=21950.200000; y[1381]=9.692931e-06;
+x[1382]=21974.600000; y[1382]=9.722001e-06;
+x[1383]=21999.000000; y[1383]=9.161357e-06;
+x[1384]=22023.400000; y[1384]=9.634789e-06;
+x[1385]=22047.800000; y[1385]=9.568343e-06;
+x[1386]=22072.200000; y[1386]=9.572496e-06;
+x[1387]=22096.600000; y[1387]=9.443756e-06;
+x[1388]=22121.000000; y[1388]=9.236109e-06;
+x[1389]=22145.400000; y[1389]=9.497743e-06;
+x[1390]=22169.800000; y[1390]=9.410532e-06;
+x[1391]=22194.200000; y[1391]=9.190427e-06;
+x[1392]=22218.600000; y[1392]=9.514355e-06;
+x[1393]=22243.000000; y[1393]=9.331627e-06;
+x[1394]=22267.400000; y[1394]=9.036768e-06;
+x[1395]=22291.800000; y[1395]=8.795899e-06;
+x[1396]=22316.200000; y[1396]=9.182121e-06;
+x[1397]=22340.600000; y[1397]=9.435449e-06;
+x[1398]=22365.000000; y[1398]=9.497743e-06;
+x[1399]=22389.400000; y[1399]=9.348238e-06;
+x[1400]=22413.800000; y[1400]=9.248568e-06;
+x[1401]=22438.200000; y[1401]=9.078298e-06;
+x[1402]=22462.600000; y[1402]=9.036768e-06;
+x[1403]=22487.000000; y[1403]=8.829122e-06;
+x[1404]=22511.400000; y[1404]=9.165509e-06;
+x[1405]=22535.800000; y[1405]=9.219497e-06;
+x[1406]=22560.200000; y[1406]=9.078298e-06;
+x[1407]=22584.600000; y[1407]=8.995239e-06;
+x[1408]=22609.000000; y[1408]=8.575794e-06;
+x[1409]=22633.400000; y[1409]=8.858193e-06;
+x[1410]=22657.800000; y[1410]=9.315015e-06;
+x[1411]=22682.200000; y[1411]=9.016004e-06;
+x[1412]=22706.600000; y[1412]=8.820816e-06;
+x[1413]=22731.000000; y[1413]=8.563335e-06;
+x[1414]=22755.400000; y[1414]=8.908028e-06;
+x[1415]=22779.800000; y[1415]=9.016004e-06;
+x[1416]=22804.200000; y[1416]=8.679617e-06;
+x[1417]=22828.600000; y[1417]=8.978627e-06;
+x[1418]=22853.000000; y[1418]=9.061686e-06;
+x[1419]=22877.400000; y[1419]=8.588252e-06;
+x[1420]=22901.800000; y[1420]=8.700381e-06;
+x[1421]=22926.200000; y[1421]=8.455359e-06;
+x[1422]=22950.600000; y[1422]=8.559182e-06;
+x[1423]=22975.000000; y[1423]=8.525958e-06;
+x[1424]=22999.400000; y[1424]=8.667158e-06;
+x[1425]=23023.800000; y[1425]=8.596558e-06;
+x[1426]=23048.200000; y[1426]=8.480276e-06;
+x[1427]=23072.600000; y[1427]=8.471970e-06;
+x[1428]=23097.000000; y[1428]=8.197877e-06;
+x[1429]=23121.400000; y[1429]=8.567487e-06;
+x[1430]=23145.800000; y[1430]=8.509347e-06;
+x[1431]=23170.200000; y[1431]=8.708687e-06;
+x[1432]=23194.600000; y[1432]=8.426288e-06;
+x[1433]=23219.000000; y[1433]=8.696228e-06;
+x[1434]=23243.400000; y[1434]=8.343230e-06;
+x[1435]=23267.800000; y[1435]=8.305853e-06;
+x[1436]=23292.200000; y[1436]=8.027607e-06;
+x[1437]=23316.600000; y[1437]=8.189571e-06;
+x[1438]=23341.000000; y[1438]=8.077443e-06;
+x[1439]=23365.400000; y[1439]=8.380606e-06;
+x[1440]=23389.800000; y[1440]=8.152195e-06;
+x[1441]=23414.200000; y[1441]=8.148042e-06;
+x[1442]=23438.600000; y[1442]=8.135583e-06;
+x[1443]=23463.000000; y[1443]=8.052525e-06;
+x[1444]=23487.400000; y[1444]=8.542570e-06;
+x[1445]=23511.800000; y[1445]=8.222794e-06;
+x[1446]=23536.200000; y[1446]=8.123125e-06;
+x[1447]=23560.600000; y[1447]=8.409676e-06;
+x[1448]=23585.000000; y[1448]=8.156348e-06;
+x[1449]=23609.400000; y[1449]=8.430441e-06;
+x[1450]=23633.800000; y[1450]=8.355689e-06;
+x[1451]=23658.200000; y[1451]=8.330770e-06;
+x[1452]=23682.600000; y[1452]=8.708687e-06;
+x[1453]=23707.000000; y[1453]=8.027607e-06;
+x[1454]=23731.400000; y[1454]=8.368147e-06;
+x[1455]=23755.800000; y[1455]=7.973619e-06;
+x[1456]=23780.200000; y[1456]=8.143889e-06;
+x[1457]=23804.600000; y[1457]=8.197877e-06;
+x[1458]=23829.000000; y[1458]=8.031760e-06;
+x[1459]=23853.400000; y[1459]=8.322465e-06;
+x[1460]=23877.800000; y[1460]=7.932090e-06;
+x[1461]=23902.200000; y[1461]=8.081595e-06;
+x[1462]=23926.600000; y[1462]=8.579947e-06;
+x[1463]=23951.000000; y[1463]=8.318312e-06;
+x[1464]=23975.400000; y[1464]=7.894713e-06;
+x[1465]=23999.800000; y[1465]=7.807502e-06;
+x[1466]=24024.200000; y[1466]=7.952855e-06;
+x[1467]=24048.600000; y[1467]=7.840726e-06;
+x[1468]=24073.000000; y[1468]=7.770126e-06;
+x[1469]=24097.400000; y[1469]=7.824114e-06;
+x[1470]=24121.800000; y[1470]=7.973619e-06;
+x[1471]=24146.200000; y[1471]=8.085748e-06;
+x[1472]=24170.600000; y[1472]=7.504339e-06;
+x[1473]=24195.000000; y[1473]=7.682915e-06;
+x[1474]=24219.400000; y[1474]=7.662150e-06;
+x[1475]=24243.800000; y[1475]=7.516797e-06;
+x[1476]=24268.200000; y[1476]=7.795044e-06;
+x[1477]=24292.600000; y[1477]=7.969466e-06;
+x[1478]=24317.000000; y[1478]=7.811655e-06;
+x[1479]=24341.400000; y[1479]=7.645538e-06;
+x[1480]=24365.800000; y[1480]=7.628926e-06;
+x[1481]=24390.200000; y[1481]=7.728597e-06;
+x[1482]=24414.600000; y[1482]=7.570785e-06;
+x[1483]=24439.000000; y[1483]=7.757667e-06;
+x[1484]=24463.400000; y[1484]=7.691220e-06;
+x[1485]=24487.800000; y[1485]=7.466962e-06;
+x[1486]=24512.200000; y[1486]=7.753514e-06;
+x[1487]=24536.600000; y[1487]=7.354833e-06;
+x[1488]=24561.000000; y[1488]=7.504339e-06;
+x[1489]=24585.400000; y[1489]=7.437892e-06;
+x[1490]=24609.800000; y[1490]=7.641385e-06;
+x[1491]=24634.200000; y[1491]=7.558327e-06;
+x[1492]=24658.600000; y[1492]=7.388056e-06;
+x[1493]=24683.000000; y[1493]=7.458656e-06;
+x[1494]=24707.400000; y[1494]=7.325762e-06;
+x[1495]=24731.800000; y[1495]=7.263469e-06;
+x[1496]=24756.200000; y[1496]=7.574938e-06;
+x[1497]=24780.600000; y[1497]=7.450350e-06;
+x[1498]=24805.000000; y[1498]=7.259316e-06;
+x[1499]=24829.400000; y[1499]=7.138881e-06;
+x[1500]=24853.800000; y[1500]=7.358986e-06;
+x[1501]=24878.200000; y[1501]=7.055823e-06;
+x[1502]=24902.600000; y[1502]=7.383904e-06;
+x[1503]=24927.000000; y[1503]=7.358986e-06;
+x[1504]=24951.400000; y[1504]=7.446197e-06;
+x[1505]=24975.800000; y[1505]=7.383904e-06;
+x[1506]=25000.200000; y[1506]=7.018446e-06;
+x[1507]=25024.600000; y[1507]=7.354833e-06;
+x[1508]=25049.000000; y[1508]=7.246857e-06;
+x[1509]=25073.400000; y[1509]=7.525103e-06;
+x[1510]=25097.800000; y[1510]=7.263469e-06;
+x[1511]=25122.200000; y[1511]=7.159646e-06;
+x[1512]=25146.600000; y[1512]=7.371445e-06;
+x[1513]=25171.000000; y[1513]=7.309151e-06;
+x[1514]=25195.400000; y[1514]=6.989375e-06;
+x[1515]=25219.800000; y[1515]=7.275928e-06;
+x[1516]=25244.200000; y[1516]=7.134728e-06;
+x[1517]=25268.600000; y[1517]=7.367292e-06;
+x[1518]=25293.000000; y[1518]=7.097351e-06;
+x[1519]=25317.400000; y[1519]=7.151340e-06;
+x[1520]=25341.800000; y[1520]=7.375598e-06;
+x[1521]=25366.200000; y[1521]=7.134728e-06;
+x[1522]=25390.600000; y[1522]=6.927082e-06;
+x[1523]=25415.000000; y[1523]=6.964458e-06;
+x[1524]=25439.400000; y[1524]=7.014293e-06;
+x[1525]=25463.800000; y[1525]=7.068281e-06;
+x[1526]=25488.200000; y[1526]=6.972764e-06;
+x[1527]=25512.600000; y[1527]=6.736047e-06;
+x[1528]=25537.000000; y[1528]=7.039211e-06;
+x[1529]=25561.400000; y[1529]=7.018446e-06;
+x[1530]=25585.800000; y[1530]=7.018446e-06;
+x[1531]=25610.200000; y[1531]=6.719436e-06;
+x[1532]=25634.600000; y[1532]=7.014293e-06;
+x[1533]=25659.000000; y[1533]=6.823258e-06;
+x[1534]=25683.400000; y[1534]=7.226092e-06;
+x[1535]=25707.800000; y[1535]=6.760964e-06;
+x[1536]=25732.200000; y[1536]=7.035058e-06;
+x[1537]=25756.600000; y[1537]=6.918776e-06;
+x[1538]=25781.000000; y[1538]=7.059975e-06;
+x[1539]=25805.400000; y[1539]=7.221940e-06;
+x[1540]=25829.800000; y[1540]=6.553318e-06;
+x[1541]=25854.200000; y[1541]=6.918776e-06;
+x[1542]=25878.600000; y[1542]=6.823258e-06;
+x[1543]=25903.000000; y[1543]=6.677906e-06;
+x[1544]=25927.400000; y[1544]=6.773424e-06;
+x[1545]=25951.800000; y[1545]=6.765118e-06;
+x[1546]=25976.200000; y[1546]=6.831564e-06;
+x[1547]=26000.600000; y[1547]=6.868941e-06;
+x[1548]=26025.000000; y[1548]=6.677906e-06;
+x[1549]=26049.400000; y[1549]=6.652988e-06;
+x[1550]=26073.800000; y[1550]=6.819106e-06;
+x[1551]=26098.200000; y[1551]=6.574083e-06;
+x[1552]=26122.600000; y[1552]=6.810800e-06;
+x[1553]=26147.000000; y[1553]=6.623918e-06;
+x[1554]=26171.400000; y[1554]=6.790035e-06;
+x[1555]=26195.800000; y[1555]=6.711130e-06;
+x[1556]=26220.200000; y[1556]=6.956152e-06;
+x[1557]=26244.600000; y[1557]=6.599000e-06;
+x[1558]=26269.000000; y[1558]=6.540859e-06;
+x[1559]=26293.400000; y[1559]=6.868941e-06;
+x[1560]=26317.800000; y[1560]=6.640530e-06;
+x[1561]=26342.200000; y[1561]=6.540859e-06;
+x[1562]=26366.600000; y[1562]=6.337366e-06;
+x[1563]=26391.000000; y[1563]=6.951999e-06;
+x[1564]=26415.400000; y[1564]=6.935387e-06;
+x[1565]=26439.800000; y[1565]=7.022599e-06;
+x[1566]=26464.200000; y[1566]=6.532553e-06;
+x[1567]=26488.600000; y[1567]=6.540859e-06;
+x[1568]=26513.000000; y[1568]=7.022599e-06;
+x[1569]=26537.400000; y[1569]=6.790035e-06;
+x[1570]=26561.800000; y[1570]=6.711130e-06;
+x[1571]=26586.200000; y[1571]=6.416272e-06;
+x[1572]=26610.600000; y[1572]=6.515942e-06;
+x[1573]=26635.000000; y[1573]=6.723588e-06;
+x[1574]=26659.400000; y[1574]=6.254308e-06;
+x[1575]=26683.800000; y[1575]=6.320754e-06;
+x[1576]=26708.200000; y[1576]=6.603153e-06;
+x[1577]=26732.600000; y[1577]=6.574083e-06;
+x[1578]=26757.000000; y[1578]=6.353978e-06;
+x[1579]=26781.400000; y[1579]=6.532553e-06;
+x[1580]=26805.800000; y[1580]=6.520095e-06;
+x[1581]=26830.200000; y[1581]=6.478565e-06;
+x[1582]=26854.600000; y[1582]=6.553318e-06;
+x[1583]=26879.000000; y[1583]=6.478565e-06;
+x[1584]=26903.400000; y[1584]=6.486871e-06;
+x[1585]=26927.800000; y[1585]=6.457801e-06;
+x[1586]=26952.200000; y[1586]=6.279225e-06;
+x[1587]=26976.600000; y[1587]=6.437037e-06;
+x[1588]=27001.000000; y[1588]=6.358131e-06;
+x[1589]=27025.400000; y[1589]=6.171249e-06;
+x[1590]=27049.800000; y[1590]=6.337366e-06;
+x[1591]=27074.200000; y[1591]=6.200320e-06;
+x[1592]=27098.600000; y[1592]=6.549165e-06;
+x[1593]=27123.000000; y[1593]=5.880544e-06;
+x[1594]=27147.400000; y[1594]=6.167096e-06;
+x[1595]=27171.800000; y[1595]=6.545013e-06;
+x[1596]=27196.200000; y[1596]=6.507636e-06;
+x[1597]=27220.600000; y[1597]=6.246002e-06;
+x[1598]=27245.000000; y[1598]=6.154638e-06;
+x[1599]=27269.400000; y[1599]=6.241849e-06;
+x[1600]=27293.800000; y[1600]=5.996826e-06;
+x[1601]=27318.200000; y[1601]=6.295837e-06;
+x[1602]=27342.600000; y[1602]=5.996826e-06;
+x[1603]=27367.000000; y[1603]=6.291684e-06;
+x[1604]=27391.400000; y[1604]=6.420425e-06;
+x[1605]=27415.800000; y[1605]=6.250154e-06;
+x[1606]=27440.200000; y[1606]=6.200320e-06;
+x[1607]=27464.600000; y[1607]=6.254308e-06;
+x[1608]=27489.000000; y[1608]=6.212778e-06;
+x[1609]=27513.400000; y[1609]=6.358131e-06;
+x[1610]=27537.800000; y[1610]=6.412119e-06;
+x[1611]=27562.200000; y[1611]=6.250154e-06;
+x[1612]=27586.600000; y[1612]=6.241849e-06;
+x[1613]=27611.000000; y[1613]=6.025897e-06;
+x[1614]=27635.400000; y[1614]=6.333213e-06;
+x[1615]=27659.800000; y[1615]=5.980215e-06;
+x[1616]=27684.200000; y[1616]=6.171249e-06;
+x[1617]=27708.600000; y[1617]=6.370589e-06;
+x[1618]=27733.000000; y[1618]=6.237696e-06;
+x[1619]=27757.400000; y[1619]=6.175402e-06;
+x[1620]=27781.800000; y[1620]=6.142178e-06;
+x[1621]=27806.200000; y[1621]=6.038355e-06;
+x[1622]=27830.600000; y[1622]=6.117261e-06;
+x[1623]=27855.000000; y[1623]=6.046661e-06;
+x[1624]=27879.400000; y[1624]=6.216931e-06;
+x[1625]=27903.800000; y[1625]=6.179555e-06;
+x[1626]=27928.200000; y[1626]=5.839015e-06;
+x[1627]=27952.600000; y[1627]=6.162943e-06;
+x[1628]=27977.000000; y[1628]=6.000979e-06;
+x[1629]=28001.400000; y[1629]=6.046661e-06;
+x[1630]=28025.800000; y[1630]=6.212778e-06;
+x[1631]=28050.200000; y[1631]=6.246002e-06;
+x[1632]=28074.600000; y[1632]=6.000979e-06;
+x[1633]=28099.000000; y[1633]=6.117261e-06;
+x[1634]=28123.400000; y[1634]=6.013438e-06;
+x[1635]=28147.800000; y[1635]=6.320754e-06;
+x[1636]=28172.200000; y[1636]=6.096496e-06;
+x[1637]=28196.600000; y[1637]=5.934532e-06;
+x[1638]=28221.000000; y[1638]=5.772568e-06;
+x[1639]=28245.400000; y[1639]=5.868085e-06;
+x[1640]=28269.800000; y[1640]=6.133873e-06;
+x[1641]=28294.200000; y[1641]=6.154638e-06;
+x[1642]=28318.600000; y[1642]=6.000979e-06;
+x[1643]=28343.000000; y[1643]=5.942838e-06;
+x[1644]=28367.400000; y[1644]=5.814097e-06;
+x[1645]=28391.800000; y[1645]=5.685356e-06;
+x[1646]=28416.200000; y[1646]=6.046661e-06;
+x[1647]=28440.600000; y[1647]=5.814097e-06;
+x[1648]=28465.000000; y[1648]=5.843168e-06;
+x[1649]=28489.400000; y[1649]=5.976061e-06;
+x[1650]=28513.800000; y[1650]=5.726886e-06;
+x[1651]=28538.200000; y[1651]=6.212778e-06;
+x[1652]=28562.600000; y[1652]=5.731039e-06;
+x[1653]=28587.000000; y[1653]=5.913767e-06;
+x[1654]=28611.400000; y[1654]=5.789180e-06;
+x[1655]=28635.800000; y[1655]=5.843168e-06;
+x[1656]=28660.200000; y[1656]=5.768415e-06;
+x[1657]=28684.600000; y[1657]=5.685356e-06;
+x[1658]=28709.000000; y[1658]=5.822403e-06;
+x[1659]=28733.400000; y[1659]=6.067426e-06;
+x[1660]=28757.800000; y[1660]=6.000979e-06;
+x[1661]=28782.200000; y[1661]=5.963603e-06;
+x[1662]=28806.600000; y[1662]=5.793333e-06;
+x[1663]=28831.000000; y[1663]=5.930379e-06;
+x[1664]=28855.400000; y[1664]=5.585686e-06;
+x[1665]=28879.800000; y[1665]=6.050814e-06;
+x[1666]=28904.200000; y[1666]=5.901309e-06;
+x[1667]=28928.600000; y[1667]=5.689510e-06;
+x[1668]=28953.000000; y[1668]=5.726886e-06;
+x[1669]=28977.400000; y[1669]=5.963603e-06;
+x[1670]=29001.800000; y[1670]=5.652133e-06;
+x[1671]=29026.200000; y[1671]=5.531698e-06;
+x[1672]=29050.600000; y[1672]=5.681204e-06;
+x[1673]=29075.000000; y[1673]=5.681204e-06;
+x[1674]=29099.400000; y[1674]=5.548310e-06;
+x[1675]=29123.800000; y[1675]=5.490169e-06;
+x[1676]=29148.200000; y[1676]=5.556616e-06;
+x[1677]=29172.600000; y[1677]=5.780874e-06;
+x[1678]=29197.000000; y[1678]=5.639674e-06;
+x[1679]=29221.400000; y[1679]=5.548310e-06;
+x[1680]=29245.800000; y[1680]=5.444487e-06;
+x[1681]=29270.200000; y[1681]=5.564922e-06;
+x[1682]=29294.600000; y[1682]=5.324052e-06;
+x[1683]=29319.000000; y[1683]=5.627216e-06;
+x[1684]=29343.400000; y[1684]=5.531698e-06;
+x[1685]=29367.800000; y[1685]=5.523392e-06;
+x[1686]=29392.200000; y[1686]=5.556616e-06;
+x[1687]=29416.600000; y[1687]=5.415417e-06;
+x[1688]=29441.000000; y[1688]=5.353123e-06;
+x[1689]=29465.400000; y[1689]=5.357275e-06;
+x[1690]=29489.800000; y[1690]=5.540004e-06;
+x[1691]=29514.200000; y[1691]=5.452793e-06;
+x[1692]=29538.600000; y[1692]=5.780874e-06;
+x[1693]=29563.000000; y[1693]=5.548310e-06;
+x[1694]=29587.400000; y[1694]=5.203617e-06;
+x[1695]=29611.800000; y[1695]=5.614757e-06;
+x[1696]=29636.200000; y[1696]=5.490169e-06;
+x[1697]=29660.600000; y[1697]=5.203617e-06;
+x[1698]=29685.000000; y[1698]=5.336511e-06;
+x[1699]=29709.400000; y[1699]=5.664592e-06;
+x[1700]=29733.800000; y[1700]=5.315746e-06;
+x[1701]=29758.200000; y[1701]=5.456945e-06;
+x[1702]=29782.600000; y[1702]=5.145476e-06;
+x[1703]=29807.000000; y[1703]=5.502628e-06;
+x[1704]=29831.400000; y[1704]=5.490169e-06;
+x[1705]=29855.800000; y[1705]=5.490169e-06;
+x[1706]=29880.200000; y[1706]=5.656286e-06;
+x[1707]=29904.600000; y[1707]=5.369734e-06;
+x[1708]=29929.000000; y[1708]=5.257605e-06;
+x[1709]=29953.400000; y[1709]=5.290829e-06;
+x[1710]=29977.800000; y[1710]=5.278370e-06;
+x[1711]=30002.200000; y[1711]=5.153782e-06;
+x[1712]=30026.600000; y[1712]=5.324052e-06;
+x[1713]=30051.000000; y[1713]=5.411263e-06;
+x[1714]=30075.400000; y[1714]=5.265911e-06;
+x[1715]=30099.800000; y[1715]=5.390499e-06;
+x[1716]=30124.200000; y[1716]=5.108100e-06;
+x[1717]=30148.600000; y[1717]=5.270064e-06;
+x[1718]=30173.000000; y[1718]=5.332358e-06;
+x[1719]=30197.400000; y[1719]=5.344817e-06;
+x[1720]=30221.800000; y[1720]=5.290829e-06;
+x[1721]=30246.200000; y[1721]=5.045806e-06;
+x[1722]=30270.600000; y[1722]=5.120558e-06;
+x[1723]=30295.000000; y[1723]=5.128864e-06;
+x[1724]=30319.400000; y[1724]=5.311593e-06;
+x[1725]=30343.800000; y[1725]=5.249299e-06;
+x[1726]=30368.200000; y[1726]=5.340664e-06;
+x[1727]=30392.600000; y[1727]=5.216076e-06;
+x[1728]=30417.000000; y[1728]=5.133018e-06;
+x[1729]=30441.400000; y[1729]=5.195311e-06;
+x[1730]=30465.800000; y[1730]=5.274217e-06;
+x[1731]=30490.200000; y[1731]=5.128864e-06;
+x[1732]=30514.600000; y[1732]=5.037500e-06;
+x[1733]=30539.000000; y[1733]=5.224382e-06;
+x[1734]=30563.400000; y[1734]=5.037500e-06;
+x[1735]=30587.800000; y[1735]=5.145476e-06;
+x[1736]=30612.200000; y[1736]=5.045806e-06;
+x[1737]=30636.600000; y[1737]=4.921218e-06;
+x[1738]=30661.000000; y[1738]=4.975206e-06;
+x[1739]=30685.400000; y[1739]=4.975206e-06;
+x[1740]=30709.800000; y[1740]=4.941983e-06;
+x[1741]=30734.200000; y[1741]=5.116406e-06;
+x[1742]=30758.600000; y[1742]=5.249299e-06;
+x[1743]=30783.000000; y[1743]=5.265911e-06;
+x[1744]=30807.400000; y[1744]=5.228535e-06;
+x[1745]=30831.800000; y[1745]=4.917065e-06;
+x[1746]=30856.200000; y[1746]=5.087335e-06;
+x[1747]=30880.600000; y[1747]=4.933677e-06;
+x[1748]=30905.000000; y[1748]=5.162088e-06;
+x[1749]=30929.400000; y[1749]=4.804936e-06;
+x[1750]=30953.800000; y[1750]=5.054112e-06;
+x[1751]=30978.200000; y[1751]=5.079030e-06;
+x[1752]=31002.600000; y[1752]=5.415417e-06;
+x[1753]=31027.000000; y[1753]=5.199464e-06;
+x[1754]=31051.400000; y[1754]=5.091488e-06;
+x[1755]=31075.800000; y[1755]=5.112253e-06;
+x[1756]=31100.200000; y[1756]=4.788325e-06;
+x[1757]=31124.600000; y[1757]=4.954441e-06;
+x[1758]=31149.000000; y[1758]=4.780019e-06;
+x[1759]=31173.400000; y[1759]=5.041653e-06;
+x[1760]=31197.800000; y[1760]=4.609748e-06;
+x[1761]=31222.200000; y[1761]=5.029194e-06;
+x[1762]=31246.600000; y[1762]=4.825701e-06;
+x[1763]=31271.000000; y[1763]=5.112253e-06;
+x[1764]=31295.400000; y[1764]=4.892147e-06;
+x[1765]=31319.800000; y[1765]=5.083182e-06;
+x[1766]=31344.200000; y[1766]=4.709419e-06;
+x[1767]=31368.600000; y[1767]=4.929524e-06;
+x[1768]=31393.000000; y[1768]=4.971053e-06;
+x[1769]=31417.400000; y[1769]=4.780019e-06;
+x[1770]=31441.800000; y[1770]=5.103947e-06;
+x[1771]=31466.200000; y[1771]=4.933677e-06;
+x[1772]=31490.600000; y[1772]=4.925371e-06;
+x[1773]=31515.000000; y[1773]=4.946136e-06;
+x[1774]=31539.400000; y[1774]=4.800783e-06;
+x[1775]=31563.800000; y[1775]=4.626360e-06;
+x[1776]=31588.200000; y[1776]=4.846465e-06;
+x[1777]=31612.600000; y[1777]=4.626360e-06;
+x[1778]=31637.000000; y[1778]=4.792477e-06;
+x[1779]=31661.400000; y[1779]=4.983512e-06;
+x[1780]=31685.800000; y[1780]=4.692807e-06;
+x[1781]=31710.200000; y[1781]=4.638819e-06;
+x[1782]=31734.600000; y[1782]=4.688654e-06;
+x[1783]=31759.000000; y[1783]=4.929524e-06;
+x[1784]=31783.400000; y[1784]=4.667890e-06;
+x[1785]=31807.800000; y[1785]=4.680348e-06;
+x[1786]=31832.200000; y[1786]=4.734336e-06;
+x[1787]=31856.600000; y[1787]=4.908759e-06;
+x[1788]=31881.000000; y[1788]=4.526690e-06;
+x[1789]=31905.400000; y[1789]=4.929524e-06;
+x[1790]=31929.800000; y[1790]=4.501772e-06;
+x[1791]=31954.200000; y[1791]=4.863077e-06;
+x[1792]=31978.600000; y[1792]=5.012582e-06;
+x[1793]=32003.000000; y[1793]=4.618054e-06;
+x[1794]=32027.400000; y[1794]=4.692807e-06;
+x[1795]=32051.800000; y[1795]=4.892147e-06;
+x[1796]=32076.200000; y[1796]=4.659584e-06;
+x[1797]=32100.600000; y[1797]=4.622208e-06;
+x[1798]=32125.000000; y[1798]=4.539149e-06;
+x[1799]=32149.400000; y[1799]=4.518384e-06;
+x[1800]=32173.800000; y[1800]=4.219373e-06;
+x[1801]=32198.200000; y[1801]=4.539149e-06;
+x[1802]=32222.600000; y[1802]=4.389643e-06;
+x[1803]=32247.000000; y[1803]=4.314891e-06;
+x[1804]=32271.400000; y[1804]=4.534996e-06;
+x[1805]=32295.800000; y[1805]=4.813242e-06;
+x[1806]=32320.200000; y[1806]=4.485161e-06;
+x[1807]=32344.600000; y[1807]=4.385491e-06;
+x[1808]=32369.000000; y[1808]=4.634666e-06;
+x[1809]=32393.400000; y[1809]=4.588984e-06;
+x[1810]=32417.800000; y[1810]=4.638819e-06;
+x[1811]=32442.200000; y[1811]=4.559914e-06;
+x[1812]=32466.600000; y[1812]=4.647125e-06;
+x[1813]=32491.000000; y[1813]=4.659584e-06;
+x[1814]=32515.400000; y[1814]=4.422867e-06;
+x[1815]=32539.800000; y[1815]=4.393796e-06;
+x[1816]=32564.200000; y[1816]=4.584831e-06;
+x[1817]=32588.600000; y[1817]=4.460243e-06;
+x[1818]=32613.000000; y[1818]=4.655431e-06;
+x[1819]=32637.400000; y[1819]=4.265056e-06;
+x[1820]=32661.800000; y[1820]=4.742642e-06;
+x[1821]=32686.200000; y[1821]=4.734336e-06;
+x[1822]=32710.600000; y[1822]=4.431173e-06;
+x[1823]=32735.000000; y[1823]=4.493467e-06;
+x[1824]=32759.400000; y[1824]=4.422867e-06;
+x[1825]=32783.800000; y[1825]=4.435326e-06;
+x[1826]=32808.200000; y[1826]=4.626360e-06;
+x[1827]=32832.600000; y[1827]=4.626360e-06;
+x[1828]=32857.000000; y[1828]=4.505926e-06;
+x[1829]=32881.400000; y[1829]=4.559914e-06;
+x[1830]=32905.800000; y[1830]=4.352267e-06;
+x[1831]=32930.200000; y[1831]=4.522537e-06;
+x[1832]=32954.600000; y[1832]=4.721878e-06;
+x[1833]=32979.000000; y[1833]=4.659584e-06;
+x[1834]=33003.400000; y[1834]=4.310738e-06;
+x[1835]=33027.800000; y[1835]=4.613902e-06;
+x[1836]=33052.200000; y[1836]=4.726031e-06;
+x[1837]=33076.600000; y[1837]=4.514231e-06;
+x[1838]=33101.000000; y[1838]=4.427020e-06;
+x[1839]=33125.400000; y[1839]=4.526690e-06;
+x[1840]=33149.800000; y[1840]=4.385491e-06;
+x[1841]=33174.200000; y[1841]=4.356420e-06;
+x[1842]=33198.600000; y[1842]=4.759254e-06;
+x[1843]=33223.000000; y[1843]=4.231832e-06;
+x[1844]=33247.400000; y[1844]=4.273361e-06;
+x[1845]=33271.800000; y[1845]=4.177844e-06;
+x[1846]=33296.200000; y[1846]=4.418714e-06;
+x[1847]=33320.600000; y[1847]=4.435326e-06;
+x[1848]=33345.000000; y[1848]=4.667890e-06;
+x[1849]=33369.400000; y[1849]=4.543302e-06;
+x[1850]=33393.800000; y[1850]=4.514231e-06;
+x[1851]=33418.200000; y[1851]=4.447784e-06;
+x[1852]=33442.600000; y[1852]=4.352267e-06;
+x[1853]=33467.000000; y[1853]=4.497620e-06;
+x[1854]=33491.400000; y[1854]=4.265056e-06;
+x[1855]=33515.800000; y[1855]=4.389643e-06;
+x[1856]=33540.200000; y[1856]=4.215221e-06;
+x[1857]=33564.600000; y[1857]=4.244291e-06;
+x[1858]=33589.000000; y[1858]=4.377185e-06;
+x[1859]=33613.400000; y[1859]=4.352267e-06;
+x[1860]=33637.800000; y[1860]=4.406255e-06;
+x[1861]=33662.200000; y[1861]=4.393796e-06;
+x[1862]=33686.600000; y[1862]=4.422867e-06;
+x[1863]=33711.000000; y[1863]=4.215221e-06;
+x[1864]=33735.400000; y[1864]=4.281667e-06;
+x[1865]=33759.800000; y[1865]=4.327349e-06;
+x[1866]=33784.200000; y[1866]=4.044950e-06;
+x[1867]=33808.600000; y[1867]=4.397949e-06;
+x[1868]=33833.000000; y[1868]=4.356420e-06;
+x[1869]=33857.400000; y[1869]=4.451937e-06;
+x[1870]=33881.800000; y[1870]=4.235985e-06;
+x[1871]=33906.200000; y[1871]=4.348114e-06;
+x[1872]=33930.600000; y[1872]=4.181997e-06;
+x[1873]=33955.000000; y[1873]=4.422867e-06;
+x[1874]=33979.400000; y[1874]=4.281667e-06;
+x[1875]=34003.800000; y[1875]=4.343961e-06;
+x[1876]=34028.200000; y[1876]=4.501772e-06;
+x[1877]=34052.600000; y[1877]=4.368879e-06;
+x[1878]=34077.000000; y[1878]=4.269209e-06;
+x[1879]=34101.400000; y[1879]=4.169538e-06;
+x[1880]=34125.800000; y[1880]=4.235985e-06;
+x[1881]=34150.200000; y[1881]=4.169538e-06;
+x[1882]=34174.600000; y[1882]=4.015880e-06;
+x[1883]=34199.000000; y[1883]=4.431173e-06;
+x[1884]=34223.400000; y[1884]=3.903751e-06;
+x[1885]=34247.800000; y[1885]=4.298279e-06;
+x[1886]=34272.200000; y[1886]=4.211068e-06;
+x[1887]=34296.600000; y[1887]=4.003422e-06;
+x[1888]=34321.000000; y[1888]=4.181997e-06;
+x[1889]=34345.400000; y[1889]=4.206915e-06;
+x[1890]=34369.800000; y[1890]=4.215221e-06;
+x[1891]=34394.200000; y[1891]=4.244291e-06;
+x[1892]=34418.600000; y[1892]=4.020033e-06;
+x[1893]=34443.000000; y[1893]=4.248444e-06;
+x[1894]=34467.400000; y[1894]=3.990962e-06;
+x[1895]=34491.800000; y[1895]=4.003422e-06;
+x[1896]=34516.200000; y[1896]=4.319044e-06;
+x[1897]=34540.600000; y[1897]=4.119703e-06;
+x[1898]=34565.000000; y[1898]=4.240138e-06;
+x[1899]=34589.400000; y[1899]=4.040798e-06;
+x[1900]=34613.800000; y[1900]=4.115550e-06;
+x[1901]=34638.200000; y[1901]=4.020033e-06;
+x[1902]=34662.600000; y[1902]=4.323197e-06;
+x[1903]=34687.000000; y[1903]=4.119703e-06;
+x[1904]=34711.400000; y[1904]=4.107244e-06;
+x[1905]=34735.800000; y[1905]=4.132162e-06;
+x[1906]=34760.200000; y[1906]=4.078174e-06;
+x[1907]=34784.600000; y[1907]=4.235985e-06;
+x[1908]=34809.000000; y[1908]=3.990962e-06;
+x[1909]=34833.400000; y[1909]=3.941127e-06;
+x[1910]=34857.800000; y[1910]=3.970198e-06;
+x[1911]=34882.200000; y[1911]=4.103092e-06;
+x[1912]=34906.600000; y[1912]=4.040798e-06;
+x[1913]=34931.000000; y[1913]=3.953586e-06;
+x[1914]=34955.400000; y[1914]=4.181997e-06;
+x[1915]=34979.800000; y[1915]=4.148774e-06;
+x[1916]=35004.200000; y[1916]=3.903751e-06;
+x[1917]=35028.600000; y[1917]=4.098938e-06;
+x[1918]=35053.000000; y[1918]=3.874681e-06;
+x[1919]=35077.400000; y[1919]=4.086480e-06;
+x[1920]=35101.800000; y[1920]=4.198609e-06;
+x[1921]=35126.200000; y[1921]=4.053256e-06;
+x[1922]=35150.600000; y[1922]=3.953586e-06;
+x[1923]=35175.000000; y[1923]=4.053256e-06;
+x[1924]=35199.400000; y[1924]=4.128009e-06;
+x[1925]=35223.800000; y[1925]=3.924516e-06;
+x[1926]=35248.200000; y[1926]=3.891292e-06;
+x[1927]=35272.600000; y[1927]=3.907904e-06;
+x[1928]=35297.000000; y[1928]=4.177844e-06;
+x[1929]=35321.400000; y[1929]=3.936974e-06;
+x[1930]=35345.800000; y[1930]=3.750093e-06;
+x[1931]=35370.200000; y[1931]=3.895445e-06;
+x[1932]=35394.600000; y[1932]=3.741787e-06;
+x[1933]=35419.000000; y[1933]=3.787469e-06;
+x[1934]=35443.400000; y[1934]=3.841457e-06;
+x[1935]=35467.800000; y[1935]=3.704411e-06;
+x[1936]=35492.200000; y[1936]=3.961892e-06;
+x[1937]=35516.600000; y[1937]=3.812387e-06;
+x[1938]=35541.000000; y[1938]=3.853916e-06;
+x[1939]=35565.400000; y[1939]=3.828998e-06;
+x[1940]=35589.800000; y[1940]=3.945280e-06;
+x[1941]=35614.200000; y[1941]=3.924516e-06;
+x[1942]=35638.600000; y[1942]=3.704411e-06;
+x[1943]=35663.000000; y[1943]=3.853916e-06;
+x[1944]=35687.400000; y[1944]=3.845610e-06;
+x[1945]=35711.800000; y[1945]=4.024186e-06;
+x[1946]=35736.200000; y[1946]=3.970198e-06;
+x[1947]=35760.600000; y[1947]=4.148774e-06;
+x[1948]=35785.000000; y[1948]=3.953586e-06;
+x[1949]=35809.400000; y[1949]=4.032492e-06;
+x[1950]=35833.800000; y[1950]=3.953586e-06;
+x[1951]=35858.200000; y[1951]=3.882986e-06;
+x[1952]=35882.600000; y[1952]=4.177844e-06;
+x[1953]=35907.000000; y[1953]=3.712717e-06;
+x[1954]=35931.400000; y[1954]=3.849763e-06;
+x[1955]=35955.800000; y[1955]=3.783316e-06;
+x[1956]=35980.200000; y[1956]=4.032492e-06;
+x[1957]=36004.600000; y[1957]=3.849763e-06;
+x[1958]=36029.000000; y[1958]=3.920363e-06;
+x[1959]=36053.400000; y[1959]=3.625505e-06;
+x[1960]=36077.800000; y[1960]=3.828998e-06;
+x[1961]=36102.200000; y[1961]=3.841457e-06;
+x[1962]=36126.600000; y[1962]=3.849763e-06;
+x[1963]=36151.000000; y[1963]=3.820693e-06;
+x[1964]=36175.400000; y[1964]=3.995116e-06;
+x[1965]=36199.800000; y[1965]=3.920363e-06;
+x[1966]=36224.200000; y[1966]=3.833151e-06;
+x[1967]=36248.600000; y[1967]=3.567364e-06;
+x[1968]=36273.000000; y[1968]=3.745940e-06;
+x[1969]=36297.400000; y[1969]=3.775010e-06;
+x[1970]=36321.800000; y[1970]=3.617199e-06;
+x[1971]=36346.200000; y[1971]=3.563211e-06;
+x[1972]=36370.600000; y[1972]=3.741787e-06;
+x[1973]=36395.000000; y[1973]=3.716869e-06;
+x[1974]=36419.400000; y[1974]=3.613046e-06;
+x[1975]=36443.800000; y[1975]=4.028339e-06;
+x[1976]=36468.200000; y[1976]=3.953586e-06;
+x[1977]=36492.600000; y[1977]=3.658728e-06;
+x[1978]=36517.000000; y[1978]=3.712717e-06;
+x[1979]=36541.400000; y[1979]=3.949433e-06;
+x[1980]=36565.800000; y[1980]=3.712717e-06;
+x[1981]=36590.200000; y[1981]=3.912057e-06;
+x[1982]=36614.600000; y[1982]=3.712717e-06;
+x[1983]=36639.000000; y[1983]=3.887139e-06;
+x[1984]=36663.400000; y[1984]=3.783316e-06;
+x[1985]=36687.800000; y[1985]=3.766705e-06;
+x[1986]=36712.200000; y[1986]=3.745940e-06;
+x[1987]=36736.600000; y[1987]=3.496764e-06;
+x[1988]=36761.000000; y[1988]=3.650423e-06;
+x[1989]=36785.400000; y[1989]=3.791622e-06;
+x[1990]=36809.800000; y[1990]=3.737634e-06;
+x[1991]=36834.200000; y[1991]=3.770857e-06;
+x[1992]=36858.600000; y[1992]=3.679493e-06;
+x[1993]=36883.000000; y[1993]=3.750093e-06;
+x[1994]=36907.400000; y[1994]=3.812387e-06;
+x[1995]=36931.800000; y[1995]=3.804081e-06;
+x[1996]=36956.200000; y[1996]=3.941127e-06;
+x[1997]=36980.600000; y[1997]=3.525835e-06;
+x[1998]=37005.000000; y[1998]=3.637964e-06;
+x[1999]=37029.400000; y[1999]=3.700258e-06;
+x[2000]=37053.800000; y[2000]=3.748848e-06;
+x[2001]=37078.200000; y[2001]=3.745105e-06;
+x[2002]=37102.600000; y[2002]=3.741369e-06;
+x[2003]=37127.000000; y[2003]=3.737641e-06;
+x[2004]=37151.400000; y[2004]=3.733920e-06;
+x[2005]=37175.800000; y[2005]=3.730206e-06;
+x[2006]=37200.200000; y[2006]=3.726500e-06;
+x[2007]=37224.600000; y[2007]=3.722801e-06;
+x[2008]=37249.000000; y[2008]=3.719110e-06;
+x[2009]=37273.400000; y[2009]=3.715426e-06;
+x[2010]=37297.800000; y[2010]=3.711749e-06;
+x[2011]=37322.200000; y[2011]=3.708080e-06;
+x[2012]=37346.600000; y[2012]=3.704417e-06;
+x[2013]=37371.000000; y[2013]=3.700762e-06;
+x[2014]=37395.400000; y[2014]=3.697114e-06;
+x[2015]=37419.800000; y[2015]=3.693474e-06;
+x[2016]=37444.200000; y[2016]=3.689840e-06;
+x[2017]=37468.600000; y[2017]=3.686214e-06;
+x[2018]=37493.000000; y[2018]=3.682595e-06;
+x[2019]=37517.400000; y[2019]=3.678982e-06;
+x[2020]=37541.800000; y[2020]=3.675377e-06;
+x[2021]=37566.200000; y[2021]=3.671779e-06;
+x[2022]=37590.600000; y[2022]=3.668188e-06;
+x[2023]=37615.000000; y[2023]=3.664604e-06;
+x[2024]=37639.400000; y[2024]=3.661027e-06;
+x[2025]=37663.800000; y[2025]=3.657457e-06;
+x[2026]=37688.200000; y[2026]=3.653894e-06;
+x[2027]=37712.600000; y[2027]=3.650338e-06;
+x[2028]=37737.000000; y[2028]=3.646789e-06;
+x[2029]=37761.400000; y[2029]=3.643247e-06;
+x[2030]=37785.800000; y[2030]=3.639711e-06;
+x[2031]=37810.200000; y[2031]=3.636183e-06;
+x[2032]=37834.600000; y[2032]=3.632661e-06;
+x[2033]=37859.000000; y[2033]=3.629146e-06;
+x[2034]=37883.400000; y[2034]=3.625638e-06;
+x[2035]=37907.800000; y[2035]=3.622137e-06;
+x[2036]=37932.200000; y[2036]=3.618642e-06;
+x[2037]=37956.600000; y[2037]=3.615154e-06;
+x[2038]=37981.000000; y[2038]=3.611673e-06;
+x[2039]=38005.400000; y[2039]=3.608199e-06;
+x[2040]=38029.800000; y[2040]=3.604731e-06;
+x[2041]=38054.200000; y[2041]=3.601270e-06;
+x[2042]=38078.600000; y[2042]=3.597816e-06;
+x[2043]=38103.000000; y[2043]=3.594368e-06;
+x[2044]=38127.400000; y[2044]=3.590926e-06;
+x[2045]=38151.800000; y[2045]=3.587492e-06;
+x[2046]=38176.200000; y[2046]=3.584064e-06;
+x[2047]=38200.600000; y[2047]=3.580642e-06;
+x[2048]=38225.000000; y[2048]=3.577227e-06;
+x[2049]=38249.400000; y[2049]=3.573819e-06;
+x[2050]=38273.800000; y[2050]=3.570417e-06;
+x[2051]=38298.200000; y[2051]=3.567021e-06;
+x[2052]=38322.600000; y[2052]=3.563632e-06;
+x[2053]=38347.000000; y[2053]=3.560249e-06;
+x[2054]=38371.400000; y[2054]=3.556873e-06;
+x[2055]=38395.800000; y[2055]=3.553503e-06;
+x[2056]=38420.200000; y[2056]=3.550140e-06;
+x[2057]=38444.600000; y[2057]=3.546783e-06;
+x[2058]=38469.000000; y[2058]=3.543432e-06;
+x[2059]=38493.400000; y[2059]=3.540087e-06;
+x[2060]=38517.800000; y[2060]=3.536749e-06;
+x[2061]=38542.200000; y[2061]=3.533417e-06;
+x[2062]=38566.600000; y[2062]=3.530092e-06;
+x[2063]=38591.000000; y[2063]=3.526773e-06;
+x[2064]=38615.400000; y[2064]=3.523459e-06;
+x[2065]=38639.800000; y[2065]=3.520153e-06;
+x[2066]=38664.200000; y[2066]=3.516852e-06;
+x[2067]=38688.600000; y[2067]=3.513557e-06;
+x[2068]=38713.000000; y[2068]=3.510269e-06;
+x[2069]=38737.400000; y[2069]=3.506987e-06;
+x[2070]=38761.800000; y[2070]=3.503711e-06;
+x[2071]=38786.200000; y[2071]=3.500441e-06;
+x[2072]=38810.600000; y[2072]=3.497177e-06;
+x[2073]=38835.000000; y[2073]=3.493919e-06;
+x[2074]=38859.400000; y[2074]=3.490668e-06;
+x[2075]=38883.800000; y[2075]=3.487422e-06;
+x[2076]=38908.200000; y[2076]=3.484183e-06;
+x[2077]=38932.600000; y[2077]=3.480949e-06;
+x[2078]=38957.000000; y[2078]=3.477722e-06;
+x[2079]=38981.400000; y[2079]=3.474500e-06;
+x[2080]=39005.800000; y[2080]=3.471284e-06;
+x[2081]=39030.200000; y[2081]=3.468075e-06;
+x[2082]=39054.600000; y[2082]=3.464871e-06;
+x[2083]=39079.000000; y[2083]=3.461673e-06;
+x[2084]=39103.400000; y[2084]=3.458481e-06;
+x[2085]=39127.800000; y[2085]=3.455295e-06;
+x[2086]=39152.200000; y[2086]=3.452115e-06;
+x[2087]=39176.600000; y[2087]=3.448940e-06;
+x[2088]=39201.000000; y[2088]=3.445772e-06;
+x[2089]=39225.400000; y[2089]=3.442609e-06;
+x[2090]=39249.800000; y[2090]=3.439452e-06;
+x[2091]=39274.200000; y[2091]=3.436301e-06;
+x[2092]=39298.600000; y[2092]=3.433156e-06;
+x[2093]=39323.000000; y[2093]=3.430016e-06;
+x[2094]=39347.400000; y[2094]=3.426882e-06;
+x[2095]=39371.800000; y[2095]=3.423754e-06;
+x[2096]=39396.200000; y[2096]=3.420632e-06;
+x[2097]=39420.600000; y[2097]=3.417515e-06;
+x[2098]=39445.000000; y[2098]=3.414404e-06;
+x[2099]=39469.400000; y[2099]=3.411298e-06;
+x[2100]=39493.800000; y[2100]=3.408198e-06;
+x[2101]=39518.200000; y[2101]=3.405104e-06;
+x[2102]=39542.600000; y[2102]=3.402016e-06;
+x[2103]=39567.000000; y[2103]=3.398933e-06;
+x[2104]=39591.400000; y[2104]=3.395856e-06;
+x[2105]=39615.800000; y[2105]=3.392784e-06;
+x[2106]=39640.200000; y[2106]=3.389718e-06;
+x[2107]=39664.600000; y[2107]=3.386657e-06;
+x[2108]=39689.000000; y[2108]=3.383602e-06;
+x[2109]=39713.400000; y[2109]=3.380552e-06;
+x[2110]=39737.800000; y[2110]=3.377508e-06;
+x[2111]=39762.200000; y[2111]=3.374469e-06;
+x[2112]=39786.600000; y[2112]=3.371436e-06;
+x[2113]=39811.000000; y[2113]=3.368408e-06;
+x[2114]=39835.400000; y[2114]=3.365386e-06;
+x[2115]=39859.800000; y[2115]=3.362369e-06;
+x[2116]=39884.200000; y[2116]=3.359357e-06;
+x[2117]=39908.600000; y[2117]=3.356351e-06;
+x[2118]=39933.000000; y[2118]=3.353350e-06;
+x[2119]=39957.400000; y[2119]=3.350355e-06;
+x[2120]=39981.800000; y[2120]=3.347365e-06;
+x[2121]=40006.200000; y[2121]=3.344381e-06;
+x[2122]=40030.600000; y[2122]=3.341401e-06;
+x[2123]=40055.000000; y[2123]=3.338427e-06;
+x[2124]=40079.400000; y[2124]=3.335458e-06;
+x[2125]=40103.800000; y[2125]=3.332495e-06;
+x[2126]=40128.200000; y[2126]=3.329536e-06;
+x[2127]=40152.600000; y[2127]=3.326583e-06;
+x[2128]=40177.000000; y[2128]=3.323635e-06;
+x[2129]=40201.400000; y[2129]=3.320693e-06;
+x[2130]=40225.800000; y[2130]=3.317755e-06;
+x[2131]=40250.200000; y[2131]=3.314823e-06;
+x[2132]=40274.600000; y[2132]=3.311896e-06;
+x[2133]=40299.000000; y[2133]=3.308974e-06;
+x[2134]=40323.400000; y[2134]=3.306058e-06;
+x[2135]=40347.800000; y[2135]=3.303146e-06;
+x[2136]=40372.200000; y[2136]=3.300240e-06;
+x[2137]=40396.600000; y[2137]=3.297339e-06;
+x[2138]=40421.000000; y[2138]=3.294442e-06;
+x[2139]=40445.400000; y[2139]=3.291551e-06;
+x[2140]=40469.800000; y[2140]=3.288665e-06;
+x[2141]=40494.200000; y[2141]=3.285784e-06;
+x[2142]=40518.600000; y[2142]=3.282908e-06;
+x[2143]=40543.000000; y[2143]=3.280037e-06;
+x[2144]=40567.400000; y[2144]=3.277171e-06;
+x[2145]=40591.800000; y[2145]=3.274311e-06;
+x[2146]=40616.200000; y[2146]=3.271454e-06;
+x[2147]=40640.600000; y[2147]=3.268603e-06;
+x[2148]=40665.000000; y[2148]=3.265757e-06;
+x[2149]=40689.400000; y[2149]=3.262917e-06;
+x[2150]=40713.800000; y[2150]=3.260080e-06;
+x[2151]=40738.200000; y[2151]=3.257249e-06;
+x[2152]=40762.600000; y[2152]=3.254423e-06;
+x[2153]=40787.000000; y[2153]=3.251602e-06;
+x[2154]=40811.400000; y[2154]=3.248785e-06;
+x[2155]=40835.800000; y[2155]=3.245973e-06;
+x[2156]=40860.200000; y[2156]=3.243167e-06;
+x[2157]=40884.600000; y[2157]=3.240365e-06;
+x[2158]=40909.000000; y[2158]=3.237568e-06;
+x[2159]=40933.400000; y[2159]=3.234776e-06;
+x[2160]=40957.800000; y[2160]=3.231988e-06;
+x[2161]=40982.200000; y[2161]=3.229206e-06;
+x[2162]=41006.600000; y[2162]=3.226428e-06;
+x[2163]=41031.000000; y[2163]=3.223655e-06;
+x[2164]=41055.400000; y[2164]=3.220887e-06;
+x[2165]=41079.800000; y[2165]=3.218123e-06;
+x[2166]=41104.200000; y[2166]=3.215364e-06;
+x[2167]=41128.600000; y[2167]=3.212610e-06;
+x[2168]=41153.000000; y[2168]=3.209861e-06;
+x[2169]=41177.400000; y[2169]=3.207116e-06;
+x[2170]=41201.800000; y[2170]=3.204376e-06;
+x[2171]=41226.200000; y[2171]=3.201641e-06;
+x[2172]=41250.600000; y[2172]=3.198910e-06;
+x[2173]=41275.000000; y[2173]=3.196184e-06;
+x[2174]=41299.400000; y[2174]=3.193463e-06;
+x[2175]=41323.800000; y[2175]=3.190746e-06;
+x[2176]=41348.200000; y[2176]=3.188034e-06;
+x[2177]=41372.600000; y[2177]=3.185327e-06;
+x[2178]=41397.000000; y[2178]=3.182624e-06;
+x[2179]=41421.400000; y[2179]=3.179926e-06;
+x[2180]=41445.800000; y[2180]=3.177232e-06;
+x[2181]=41470.200000; y[2181]=3.174543e-06;
+x[2182]=41494.600000; y[2182]=3.171858e-06;
+x[2183]=41519.000000; y[2183]=3.169178e-06;
+x[2184]=41543.400000; y[2184]=3.166503e-06;
+x[2185]=41567.800000; y[2185]=3.163832e-06;
+x[2186]=41592.200000; y[2186]=3.161165e-06;
+x[2187]=41616.600000; y[2187]=3.158503e-06;
+x[2188]=41641.000000; y[2188]=3.155846e-06;
+x[2189]=41665.400000; y[2189]=3.153192e-06;
+x[2190]=41689.800000; y[2190]=3.150544e-06;
+x[2191]=41714.200000; y[2191]=3.147900e-06;
+x[2192]=41738.600000; y[2192]=3.145260e-06;
+x[2193]=41763.000000; y[2193]=3.142625e-06;
+x[2194]=41787.400000; y[2194]=3.139994e-06;
+x[2195]=41811.800000; y[2195]=3.137367e-06;
+x[2196]=41836.200000; y[2196]=3.134745e-06;
+x[2197]=41860.600000; y[2197]=3.132127e-06;
+x[2198]=41885.000000; y[2198]=3.129514e-06;
+x[2199]=41909.400000; y[2199]=3.126905e-06;
+x[2200]=41933.800000; y[2200]=3.124301e-06;
+x[2201]=41958.200000; y[2201]=3.121700e-06;
+x[2202]=41982.600000; y[2202]=3.119104e-06;
+x[2203]=42007.000000; y[2203]=3.116512e-06;
+x[2204]=42031.400000; y[2204]=3.113925e-06;
+x[2205]=42055.800000; y[2205]=3.111342e-06;
+x[2206]=42080.200000; y[2206]=3.108763e-06;
+x[2207]=42104.600000; y[2207]=3.106188e-06;
+x[2208]=42129.000000; y[2208]=3.103618e-06;
+x[2209]=42153.400000; y[2209]=3.101052e-06;
+x[2210]=42177.800000; y[2210]=3.098490e-06;
+x[2211]=42202.200000; y[2211]=3.095933e-06;
+x[2212]=42226.600000; y[2212]=3.093379e-06;
+x[2213]=42251.000000; y[2213]=3.090830e-06;
+x[2214]=42275.400000; y[2214]=3.088285e-06;
+x[2215]=42299.800000; y[2215]=3.085745e-06;
+x[2216]=42324.200000; y[2216]=3.083208e-06;
+x[2217]=42348.600000; y[2217]=3.080676e-06;
+x[2218]=42373.000000; y[2218]=3.078147e-06;
+x[2219]=42397.400000; y[2219]=3.075623e-06;
+x[2220]=42421.800000; y[2220]=3.073103e-06;
+x[2221]=42446.200000; y[2221]=3.070587e-06;
+x[2222]=42470.600000; y[2222]=3.068076e-06;
+x[2223]=42495.000000; y[2223]=3.065568e-06;
+x[2224]=42519.400000; y[2224]=3.063064e-06;
+x[2225]=42543.800000; y[2225]=3.060565e-06;
+x[2226]=42568.200000; y[2226]=3.058070e-06;
+x[2227]=42592.600000; y[2227]=3.055578e-06;
+x[2228]=42617.000000; y[2228]=3.053091e-06;
+x[2229]=42641.400000; y[2229]=3.050608e-06;
+x[2230]=42665.800000; y[2230]=3.048129e-06;
+x[2231]=42690.200000; y[2231]=3.045654e-06;
+x[2232]=42714.600000; y[2232]=3.043182e-06;
+x[2233]=42739.000000; y[2233]=3.040715e-06;
+x[2234]=42763.400000; y[2234]=3.038252e-06;
+x[2235]=42787.800000; y[2235]=3.035793e-06;
+x[2236]=42812.200000; y[2236]=3.033338e-06;
+x[2237]=42836.600000; y[2237]=3.030887e-06;
+x[2238]=42861.000000; y[2238]=3.028440e-06;
+x[2239]=42885.400000; y[2239]=3.025996e-06;
+x[2240]=42909.800000; y[2240]=3.023557e-06;
+x[2241]=42934.200000; y[2241]=3.021122e-06;
+x[2242]=42958.600000; y[2242]=3.018690e-06;
+x[2243]=42983.000000; y[2243]=3.016263e-06;
+x[2244]=43007.400000; y[2244]=3.013839e-06;
+x[2245]=43031.800000; y[2245]=3.011419e-06;
+x[2246]=43056.200000; y[2246]=3.009003e-06;
+x[2247]=43080.600000; y[2247]=3.006591e-06;
+x[2248]=43105.000000; y[2248]=3.004183e-06;
+x[2249]=43129.400000; y[2249]=3.001779e-06;
+x[2250]=43153.800000; y[2250]=2.999378e-06;
+x[2251]=43178.200000; y[2251]=2.996982e-06;
+x[2252]=43202.600000; y[2252]=2.994589e-06;
+x[2253]=43227.000000; y[2253]=2.992200e-06;
+x[2254]=43251.400000; y[2254]=2.989815e-06;
+x[2255]=43275.800000; y[2255]=2.987433e-06;
+x[2256]=43300.200000; y[2256]=2.985056e-06;
+x[2257]=43324.600000; y[2257]=2.982682e-06;
+x[2258]=43349.000000; y[2258]=2.980312e-06;
+x[2259]=43373.400000; y[2259]=2.977946e-06;
+x[2260]=43397.800000; y[2260]=2.975583e-06;
+x[2261]=43422.200000; y[2261]=2.973224e-06;
+x[2262]=43446.600000; y[2262]=2.970869e-06;
+x[2263]=43471.000000; y[2263]=2.968518e-06;
+x[2264]=43495.400000; y[2264]=2.966170e-06;
+x[2265]=43519.800000; y[2265]=2.963827e-06;
+x[2266]=43544.200000; y[2266]=2.961486e-06;
+x[2267]=43568.600000; y[2267]=2.959150e-06;
+x[2268]=43593.000000; y[2268]=2.956817e-06;
+x[2269]=43617.400000; y[2269]=2.954488e-06;
+x[2270]=43641.800000; y[2270]=2.952163e-06;
+x[2271]=43666.200000; y[2271]=2.949841e-06;
+x[2272]=43690.600000; y[2272]=2.947523e-06;
+x[2273]=43715.000000; y[2273]=2.945208e-06;
+x[2274]=43739.400000; y[2274]=2.942897e-06;
+x[2275]=43763.800000; y[2275]=2.940590e-06;
+x[2276]=43788.200000; y[2276]=2.938286e-06;
+x[2277]=43812.600000; y[2277]=2.935986e-06;
+x[2278]=43837.000000; y[2278]=2.933690e-06;
+x[2279]=43861.400000; y[2279]=2.931397e-06;
+x[2280]=43885.800000; y[2280]=2.929108e-06;
+x[2281]=43910.200000; y[2281]=2.926822e-06;
+x[2282]=43934.600000; y[2282]=2.924540e-06;
+x[2283]=43959.000000; y[2283]=2.922262e-06;
+x[2284]=43983.400000; y[2284]=2.919986e-06;
+x[2285]=44007.800000; y[2285]=2.917715e-06;
+x[2286]=44032.200000; y[2286]=2.915447e-06;
+x[2287]=44056.600000; y[2287]=2.913182e-06;
+x[2288]=44081.000000; y[2288]=2.910922e-06;
+x[2289]=44105.400000; y[2289]=2.908664e-06;
+x[2290]=44129.800000; y[2290]=2.906410e-06;
+x[2291]=44154.200000; y[2291]=2.904160e-06;
+x[2292]=44178.600000; y[2292]=2.901913e-06;
+x[2293]=44203.000000; y[2293]=2.899669e-06;
+x[2294]=44227.400000; y[2294]=2.897430e-06;
+x[2295]=44251.800000; y[2295]=2.895193e-06;
+x[2296]=44276.200000; y[2296]=2.892960e-06;
+x[2297]=44300.600000; y[2297]=2.890730e-06;
+x[2298]=44325.000000; y[2298]=2.888504e-06;
+x[2299]=44349.400000; y[2299]=2.886281e-06;
+x[2300]=44373.800000; y[2300]=2.884062e-06;
+x[2301]=44398.200000; y[2301]=2.881846e-06;
+x[2302]=44422.600000; y[2302]=2.879633e-06;
+x[2303]=44447.000000; y[2303]=2.877424e-06;
+x[2304]=44471.400000; y[2304]=2.875219e-06;
+x[2305]=44495.800000; y[2305]=2.873016e-06;
+x[2306]=44520.200000; y[2306]=2.870817e-06;
+x[2307]=44544.600000; y[2307]=2.868621e-06;
+x[2308]=44569.000000; y[2308]=2.866429e-06;
+x[2309]=44593.400000; y[2309]=2.864240e-06;
+x[2310]=44617.800000; y[2310]=2.862055e-06;
+x[2311]=44642.200000; y[2311]=2.859872e-06;
+x[2312]=44666.600000; y[2312]=2.857693e-06;
+x[2313]=44691.000000; y[2313]=2.855518e-06;
+x[2314]=44715.400000; y[2314]=2.853345e-06;
+x[2315]=44739.800000; y[2315]=2.851176e-06;
+x[2316]=44764.200000; y[2316]=2.849011e-06;
+x[2317]=44788.600000; y[2317]=2.846848e-06;
+x[2318]=44813.000000; y[2318]=2.844689e-06;
+x[2319]=44837.400000; y[2319]=2.842533e-06;
+x[2320]=44861.800000; y[2320]=2.840381e-06;
+x[2321]=44886.200000; y[2321]=2.838231e-06;
+x[2322]=44910.600000; y[2322]=2.836085e-06;
+x[2323]=44935.000000; y[2323]=2.833942e-06;
+x[2324]=44959.400000; y[2324]=2.831802e-06;
+x[2325]=44983.800000; y[2325]=2.829666e-06;
+x[2326]=45008.200000; y[2326]=2.827533e-06;
+x[2327]=45032.600000; y[2327]=2.825403e-06;
+x[2328]=45057.000000; y[2328]=2.823276e-06;
+x[2329]=45081.400000; y[2329]=2.821153e-06;
+x[2330]=45105.800000; y[2330]=2.819032e-06;
+x[2331]=45130.200000; y[2331]=2.816915e-06;
+x[2332]=45154.600000; y[2332]=2.814801e-06;
+x[2333]=45179.000000; y[2333]=2.812690e-06;
+x[2334]=45203.400000; y[2334]=2.810583e-06;
+x[2335]=45227.800000; y[2335]=2.808478e-06;
+x[2336]=45252.200000; y[2336]=2.806377e-06;
+x[2337]=45276.600000; y[2337]=2.804278e-06;
+x[2338]=45301.000000; y[2338]=2.802183e-06;
+x[2339]=45325.400000; y[2339]=2.800092e-06;
+x[2340]=45349.800000; y[2340]=2.798003e-06;
+x[2341]=45374.200000; y[2341]=2.795917e-06;
+x[2342]=45398.600000; y[2342]=2.793834e-06;
+x[2343]=45423.000000; y[2343]=2.791755e-06;
+x[2344]=45447.400000; y[2344]=2.789678e-06;
+x[2345]=45471.800000; y[2345]=2.787605e-06;
+x[2346]=45496.200000; y[2346]=2.785535e-06;
+x[2347]=45520.600000; y[2347]=2.783468e-06;
+x[2348]=45545.000000; y[2348]=2.781403e-06;
+x[2349]=45569.400000; y[2349]=2.779342e-06;
+x[2350]=45593.800000; y[2350]=2.777284e-06;
+x[2351]=45618.200000; y[2351]=2.775229e-06;
+x[2352]=45642.600000; y[2352]=2.773177e-06;
+x[2353]=45667.000000; y[2353]=2.771128e-06;
+x[2354]=45691.400000; y[2354]=2.769083e-06;
+x[2355]=45715.800000; y[2355]=2.767040e-06;
+x[2356]=45740.200000; y[2356]=2.765000e-06;
+x[2357]=45764.600000; y[2357]=2.762963e-06;
+x[2358]=45789.000000; y[2358]=2.760929e-06;
+x[2359]=45813.400000; y[2359]=2.758899e-06;
+x[2360]=45837.800000; y[2360]=2.756871e-06;
+x[2361]=45862.200000; y[2361]=2.754846e-06;
+x[2362]=45886.600000; y[2362]=2.752824e-06;
+x[2363]=45911.000000; y[2363]=2.750805e-06;
+x[2364]=45935.400000; y[2364]=2.748789e-06;
+x[2365]=45959.800000; y[2365]=2.746776e-06;
+x[2366]=45984.200000; y[2366]=2.744766e-06;
+x[2367]=46008.600000; y[2367]=2.742759e-06;
+x[2368]=46033.000000; y[2368]=2.740754e-06;
+x[2369]=46057.400000; y[2369]=2.738753e-06;
+x[2370]=46081.800000; y[2370]=2.736755e-06;
+x[2371]=46106.200000; y[2371]=2.734759e-06;
+x[2372]=46130.600000; y[2372]=2.732767e-06;
+x[2373]=46155.000000; y[2373]=2.730777e-06;
+x[2374]=46179.400000; y[2374]=2.728790e-06;
+x[2375]=46203.800000; y[2375]=2.726807e-06;
+x[2376]=46228.200000; y[2376]=2.724826e-06;
+x[2377]=46252.600000; y[2377]=2.722848e-06;
+x[2378]=46277.000000; y[2378]=2.720872e-06;
+x[2379]=46301.400000; y[2379]=2.718900e-06;
+x[2380]=46325.800000; y[2380]=2.716931e-06;
+x[2381]=46350.200000; y[2381]=2.714964e-06;
+x[2382]=46374.600000; y[2382]=2.713000e-06;
+x[2383]=46399.000000; y[2383]=2.711039e-06;
+x[2384]=46423.400000; y[2384]=2.709081e-06;
+x[2385]=46447.800000; y[2385]=2.707126e-06;
+x[2386]=46472.200000; y[2386]=2.705173e-06;
+x[2387]=46496.600000; y[2387]=2.703223e-06;
+x[2388]=46521.000000; y[2388]=2.701277e-06;
+x[2389]=46545.400000; y[2389]=2.699333e-06;
+x[2390]=46569.800000; y[2390]=2.697391e-06;
+x[2391]=46594.200000; y[2391]=2.695453e-06;
+x[2392]=46618.600000; y[2392]=2.693517e-06;
+x[2393]=46643.000000; y[2393]=2.691584e-06;
+x[2394]=46667.400000; y[2394]=2.689654e-06;
+x[2395]=46691.800000; y[2395]=2.687726e-06;
+x[2396]=46716.200000; y[2396]=2.685802e-06;
+x[2397]=46740.600000; y[2397]=2.683880e-06;
+x[2398]=46765.000000; y[2398]=2.681961e-06;
+x[2399]=46789.400000; y[2399]=2.680045e-06;
+x[2400]=46813.800000; y[2400]=2.678131e-06;
+x[2401]=46838.200000; y[2401]=2.676220e-06;
+x[2402]=46862.600000; y[2402]=2.674312e-06;
+x[2403]=46887.000000; y[2403]=2.672406e-06;
+x[2404]=46911.400000; y[2404]=2.670504e-06;
+x[2405]=46935.800000; y[2405]=2.668604e-06;
+x[2406]=46960.200000; y[2406]=2.666706e-06;
+x[2407]=46984.600000; y[2407]=2.664812e-06;
+x[2408]=47009.000000; y[2408]=2.662920e-06;
+x[2409]=47033.400000; y[2409]=2.661031e-06;
+x[2410]=47057.800000; y[2410]=2.659144e-06;
+x[2411]=47082.200000; y[2411]=2.657260e-06;
+x[2412]=47106.600000; y[2412]=2.655379e-06;
+x[2413]=47131.000000; y[2413]=2.653500e-06;
+x[2414]=47155.400000; y[2414]=2.651624e-06;
+x[2415]=47179.800000; y[2415]=2.649751e-06;
+x[2416]=47204.200000; y[2416]=2.647880e-06;
+x[2417]=47228.600000; y[2417]=2.646012e-06;
+x[2418]=47253.000000; y[2418]=2.644147e-06;
+x[2419]=47277.400000; y[2419]=2.642284e-06;
+x[2420]=47301.800000; y[2420]=2.640424e-06;
+x[2421]=47326.200000; y[2421]=2.638567e-06;
+x[2422]=47350.600000; y[2422]=2.636712e-06;
+x[2423]=47375.000000; y[2423]=2.634860e-06;
+x[2424]=47399.400000; y[2424]=2.633010e-06;
+x[2425]=47423.800000; y[2425]=2.631163e-06;
+x[2426]=47448.200000; y[2426]=2.629318e-06;
+x[2427]=47472.600000; y[2427]=2.627476e-06;
+x[2428]=47497.000000; y[2428]=2.625637e-06;
+x[2429]=47521.400000; y[2429]=2.623800e-06;
+x[2430]=47545.800000; y[2430]=2.621966e-06;
+x[2431]=47570.200000; y[2431]=2.620134e-06;
+x[2432]=47594.600000; y[2432]=2.618305e-06;
+x[2433]=47619.000000; y[2433]=2.616479e-06;
+x[2434]=47643.400000; y[2434]=2.614655e-06;
+x[2435]=47667.800000; y[2435]=2.612833e-06;
+x[2436]=47692.200000; y[2436]=2.611015e-06;
+x[2437]=47716.600000; y[2437]=2.609198e-06;
+x[2438]=47741.000000; y[2438]=2.607384e-06;
+x[2439]=47765.400000; y[2439]=2.605573e-06;
+x[2440]=47789.800000; y[2440]=2.603764e-06;
+x[2441]=47814.200000; y[2441]=2.601958e-06;
+x[2442]=47838.600000; y[2442]=2.600154e-06;
+x[2443]=47863.000000; y[2443]=2.598353e-06;
+x[2444]=47887.400000; y[2444]=2.596554e-06;
+x[2445]=47911.800000; y[2445]=2.594758e-06;
+x[2446]=47936.200000; y[2446]=2.592964e-06;
+x[2447]=47960.600000; y[2447]=2.591173e-06;
+x[2448]=47985.000000; y[2448]=2.589384e-06;
+x[2449]=48009.400000; y[2449]=2.587597e-06;
+x[2450]=48033.800000; y[2450]=2.585813e-06;
+x[2451]=48058.200000; y[2451]=2.584032e-06;
+x[2452]=48082.600000; y[2452]=2.582253e-06;
+x[2453]=48107.000000; y[2453]=2.580476e-06;
+x[2454]=48131.400000; y[2454]=2.578702e-06;
+x[2455]=48155.800000; y[2455]=2.576930e-06;
+x[2456]=48180.200000; y[2456]=2.575161e-06;
+x[2457]=48204.600000; y[2457]=2.573395e-06;
+x[2458]=48229.000000; y[2458]=2.571630e-06;
+x[2459]=48253.400000; y[2459]=2.569868e-06;
+x[2460]=48277.800000; y[2460]=2.568109e-06;
+x[2461]=48302.200000; y[2461]=2.566351e-06;
+x[2462]=48326.600000; y[2462]=2.564597e-06;
+x[2463]=48351.000000; y[2463]=2.562844e-06;
+x[2464]=48375.400000; y[2464]=2.561094e-06;
+x[2465]=48399.800000; y[2465]=2.559347e-06;
+x[2466]=48424.200000; y[2466]=2.557601e-06;
+x[2467]=48448.600000; y[2467]=2.555859e-06;
+x[2468]=48473.000000; y[2468]=2.554118e-06;
+x[2469]=48497.400000; y[2469]=2.552380e-06;
+x[2470]=48521.800000; y[2470]=2.550644e-06;
+x[2471]=48546.200000; y[2471]=2.548911e-06;
+x[2472]=48570.600000; y[2472]=2.547180e-06;
+x[2473]=48595.000000; y[2473]=2.545451e-06;
+x[2474]=48619.400000; y[2474]=2.543725e-06;
+x[2475]=48643.800000; y[2475]=2.542001e-06;
+x[2476]=48668.200000; y[2476]=2.540279e-06;
+x[2477]=48692.600000; y[2477]=2.538560e-06;
+x[2478]=48717.000000; y[2478]=2.536843e-06;
+x[2479]=48741.400000; y[2479]=2.535128e-06;
+x[2480]=48765.800000; y[2480]=2.533416e-06;
+x[2481]=48790.200000; y[2481]=2.531706e-06;
+x[2482]=48814.600000; y[2482]=2.529998e-06;
+x[2483]=48839.000000; y[2483]=2.528293e-06;
+x[2484]=48863.400000; y[2484]=2.526590e-06;
+x[2485]=48887.800000; y[2485]=2.524889e-06;
+x[2486]=48912.200000; y[2486]=2.523190e-06;
+x[2487]=48936.600000; y[2487]=2.521494e-06;
+x[2488]=48961.000000; y[2488]=2.519800e-06;
+x[2489]=48985.400000; y[2489]=2.518108e-06;
+x[2490]=49009.800000; y[2490]=2.516419e-06;
+x[2491]=49034.200000; y[2491]=2.514732e-06;
+x[2492]=49058.600000; y[2492]=2.513047e-06;
+x[2493]=49083.000000; y[2493]=2.511364e-06;
+x[2494]=49107.400000; y[2494]=2.509684e-06;
+x[2495]=49131.800000; y[2495]=2.508006e-06;
+x[2496]=49156.200000; y[2496]=2.506330e-06;
+x[2497]=49180.600000; y[2497]=2.504656e-06;
+x[2498]=49205.000000; y[2498]=2.502985e-06;
+x[2499]=49229.400000; y[2499]=2.501316e-06;
+x[2500]=49253.800000; y[2500]=2.499648e-06;
+x[2501]=49278.200000; y[2501]=2.497984e-06;
+x[2502]=49302.600000; y[2502]=2.496321e-06;
+x[2503]=49327.000000; y[2503]=2.494661e-06;
+x[2504]=49351.400000; y[2504]=2.493003e-06;
+x[2505]=49375.800000; y[2505]=2.491347e-06;
+x[2506]=49400.200000; y[2506]=2.489693e-06;
+x[2507]=49424.600000; y[2507]=2.488042e-06;
+x[2508]=49449.000000; y[2508]=2.486392e-06;
+x[2509]=49473.400000; y[2509]=2.484745e-06;
+x[2510]=49497.800000; y[2510]=2.483100e-06;
+x[2511]=49522.200000; y[2511]=2.481457e-06;
+x[2512]=49546.600000; y[2512]=2.479817e-06;
+x[2513]=49571.000000; y[2513]=2.478178e-06;
+x[2514]=49595.400000; y[2514]=2.476542e-06;
+x[2515]=49619.800000; y[2515]=2.474907e-06;
+x[2516]=49644.200000; y[2516]=2.473276e-06;
+x[2517]=49668.600000; y[2517]=2.471646e-06;
+x[2518]=49693.000000; y[2518]=2.470018e-06;
+x[2519]=49717.400000; y[2519]=2.468392e-06;
+x[2520]=49741.800000; y[2520]=2.466769e-06;
+x[2521]=49766.200000; y[2521]=2.465148e-06;
+x[2522]=49790.600000; y[2522]=2.463529e-06;
+x[2523]=49815.000000; y[2523]=2.461912e-06;
+x[2524]=49839.400000; y[2524]=2.460297e-06;
+x[2525]=49863.800000; y[2525]=2.458684e-06;
+x[2526]=49888.200000; y[2526]=2.457073e-06;
+x[2527]=49912.600000; y[2527]=2.455465e-06;
+x[2528]=49937.000000; y[2528]=2.453858e-06;
+x[2529]=49961.400000; y[2529]=2.452254e-06;
+x[2530]=49985.800000; y[2530]=2.450652e-06;
+x[2531]=50010.200000; y[2531]=2.449052e-06;
+x[2532]=50034.600000; y[2532]=2.447453e-06;
+x[2533]=50059.000000; y[2533]=2.445857e-06;
+x[2534]=50083.400000; y[2534]=2.444264e-06;
+x[2535]=50107.800000; y[2535]=2.442672e-06;
+x[2536]=50132.200000; y[2536]=2.441082e-06;
+x[2537]=50156.600000; y[2537]=2.439494e-06;
+x[2538]=50181.000000; y[2538]=2.437909e-06;
+x[2539]=50205.400000; y[2539]=2.436325e-06;
+x[2540]=50229.800000; y[2540]=2.434743e-06;
+x[2541]=50254.200000; y[2541]=2.433164e-06;
+x[2542]=50278.600000; y[2542]=2.431587e-06;
+x[2543]=50303.000000; y[2543]=2.430011e-06;
+x[2544]=50327.400000; y[2544]=2.428438e-06;
+x[2545]=50351.800000; y[2545]=2.426867e-06;
+x[2546]=50376.200000; y[2546]=2.425297e-06;
+x[2547]=50400.600000; y[2547]=2.423730e-06;
+x[2548]=50425.000000; y[2548]=2.422165e-06;
+x[2549]=50449.400000; y[2549]=2.420602e-06;
+x[2550]=50473.800000; y[2550]=2.419041e-06;
+x[2551]=50498.200000; y[2551]=2.417481e-06;
+x[2552]=50522.600000; y[2552]=2.415924e-06;
+x[2553]=50547.000000; y[2553]=2.414369e-06;
+x[2554]=50571.400000; y[2554]=2.412816e-06;
+x[2555]=50595.800000; y[2555]=2.411265e-06;
+x[2556]=50620.200000; y[2556]=2.409716e-06;
+x[2557]=50644.600000; y[2557]=2.408168e-06;
+x[2558]=50669.000000; y[2558]=2.406623e-06;
+x[2559]=50693.400000; y[2559]=2.405080e-06;
+x[2560]=50717.800000; y[2560]=2.403539e-06;
+x[2561]=50742.200000; y[2561]=2.402000e-06;
+x[2562]=50766.600000; y[2562]=2.400462e-06;
+x[2563]=50791.000000; y[2563]=2.398927e-06;
+x[2564]=50815.400000; y[2564]=2.397394e-06;
+x[2565]=50839.800000; y[2565]=2.395862e-06;
+x[2566]=50864.200000; y[2566]=2.394333e-06;
+x[2567]=50888.600000; y[2567]=2.392805e-06;
+x[2568]=50913.000000; y[2568]=2.391280e-06;
+x[2569]=50937.400000; y[2569]=2.389756e-06;
+x[2570]=50961.800000; y[2570]=2.388235e-06;
+x[2571]=50986.200000; y[2571]=2.386715e-06;
+x[2572]=51010.600000; y[2572]=2.385197e-06;
+x[2573]=51035.000000; y[2573]=2.383681e-06;
+x[2574]=51059.400000; y[2574]=2.382167e-06;
+x[2575]=51083.800000; y[2575]=2.380655e-06;
+x[2576]=51108.200000; y[2576]=2.379145e-06;
+x[2577]=51132.600000; y[2577]=2.377637e-06;
+x[2578]=51157.000000; y[2578]=2.376131e-06;
+x[2579]=51181.400000; y[2579]=2.374626e-06;
+x[2580]=51205.800000; y[2580]=2.373124e-06;
+x[2581]=51230.200000; y[2581]=2.371624e-06;
+x[2582]=51254.600000; y[2582]=2.370125e-06;
+x[2583]=51279.000000; y[2583]=2.368628e-06;
+x[2584]=51303.400000; y[2584]=2.367133e-06;
+x[2585]=51327.800000; y[2585]=2.365640e-06;
+x[2586]=51352.200000; y[2586]=2.364149e-06;
+x[2587]=51376.600000; y[2587]=2.362660e-06;
+x[2588]=51401.000000; y[2588]=2.361173e-06;
+x[2589]=51425.400000; y[2589]=2.359687e-06;
+x[2590]=51449.800000; y[2590]=2.358203e-06;
+x[2591]=51474.200000; y[2591]=2.356722e-06;
+x[2592]=51498.600000; y[2592]=2.355242e-06;
+x[2593]=51523.000000; y[2593]=2.353764e-06;
+x[2594]=51547.400000; y[2594]=2.352288e-06;
+x[2595]=51571.800000; y[2595]=2.350813e-06;
+x[2596]=51596.200000; y[2596]=2.349341e-06;
+x[2597]=51620.600000; y[2597]=2.347870e-06;
+x[2598]=51645.000000; y[2598]=2.346401e-06;
+x[2599]=51669.400000; y[2599]=2.344935e-06;
+x[2600]=51693.800000; y[2600]=2.343469e-06;
+x[2601]=51718.200000; y[2601]=2.342006e-06;
+x[2602]=51742.600000; y[2602]=2.340545e-06;
+x[2603]=51767.000000; y[2603]=2.339085e-06;
+x[2604]=51791.400000; y[2604]=2.337627e-06;
+x[2605]=51815.800000; y[2605]=2.336171e-06;
+x[2606]=51840.200000; y[2606]=2.334717e-06;
+x[2607]=51864.600000; y[2607]=2.333265e-06;
+x[2608]=51889.000000; y[2608]=2.331814e-06;
+x[2609]=51913.400000; y[2609]=2.330365e-06;
+x[2610]=51937.800000; y[2610]=2.328918e-06;
+x[2611]=51962.200000; y[2611]=2.327473e-06;
+x[2612]=51986.600000; y[2612]=2.326030e-06;
+x[2613]=52011.000000; y[2613]=2.324588e-06;
+x[2614]=52035.400000; y[2614]=2.323148e-06;
+x[2615]=52059.800000; y[2615]=2.321710e-06;
+x[2616]=52084.200000; y[2616]=2.320274e-06;
+x[2617]=52108.600000; y[2617]=2.318839e-06;
+x[2618]=52133.000000; y[2618]=2.317407e-06;
+x[2619]=52157.400000; y[2619]=2.315976e-06;
+x[2620]=52181.800000; y[2620]=2.314546e-06;
+x[2621]=52206.200000; y[2621]=2.313119e-06;
+x[2622]=52230.600000; y[2622]=2.311693e-06;
+x[2623]=52255.000000; y[2623]=2.310270e-06;
+x[2624]=52279.400000; y[2624]=2.308847e-06;
+x[2625]=52303.800000; y[2625]=2.307427e-06;
+x[2626]=52328.200000; y[2626]=2.306008e-06;
+x[2627]=52352.600000; y[2627]=2.304591e-06;
+x[2628]=52377.000000; y[2628]=2.303176e-06;
+x[2629]=52401.400000; y[2629]=2.301763e-06;
+x[2630]=52425.800000; y[2630]=2.300351e-06;
+x[2631]=52450.200000; y[2631]=2.298941e-06;
+x[2632]=52474.600000; y[2632]=2.297533e-06;
+x[2633]=52499.000000; y[2633]=2.296126e-06;
+x[2634]=52523.400000; y[2634]=2.294722e-06;
+x[2635]=52547.800000; y[2635]=2.293319e-06;
+x[2636]=52572.200000; y[2636]=2.291917e-06;
+x[2637]=52596.600000; y[2637]=2.290517e-06;
+x[2638]=52621.000000; y[2638]=2.289119e-06;
+x[2639]=52645.400000; y[2639]=2.287723e-06;
+x[2640]=52669.800000; y[2640]=2.286329e-06;
+x[2641]=52694.200000; y[2641]=2.284936e-06;
+x[2642]=52718.600000; y[2642]=2.283545e-06;
+x[2643]=52743.000000; y[2643]=2.282155e-06;
+x[2644]=52767.400000; y[2644]=2.280768e-06;
+x[2645]=52791.800000; y[2645]=2.279382e-06;
+x[2646]=52816.200000; y[2646]=2.277997e-06;
+x[2647]=52840.600000; y[2647]=2.276615e-06;
+x[2648]=52865.000000; y[2648]=2.275234e-06;
+x[2649]=52889.400000; y[2649]=2.273854e-06;
+x[2650]=52913.800000; y[2650]=2.272476e-06;
+x[2651]=52938.200000; y[2651]=2.271101e-06;
+x[2652]=52962.600000; y[2652]=2.269726e-06;
+x[2653]=52987.000000; y[2653]=2.268353e-06;
+x[2654]=53011.400000; y[2654]=2.266982e-06;
+x[2655]=53035.800000; y[2655]=2.265613e-06;
+x[2656]=53060.200000; y[2656]=2.264245e-06;
+x[2657]=53084.600000; y[2657]=2.262879e-06;
+x[2658]=53109.000000; y[2658]=2.261515e-06;
+x[2659]=53133.400000; y[2659]=2.260152e-06;
+x[2660]=53157.800000; y[2660]=2.258791e-06;
+x[2661]=53182.200000; y[2661]=2.257432e-06;
+x[2662]=53206.600000; y[2662]=2.256074e-06;
+x[2663]=53231.000000; y[2663]=2.254718e-06;
+x[2664]=53255.400000; y[2664]=2.253363e-06;
+x[2665]=53279.800000; y[2665]=2.252010e-06;
+x[2666]=53304.200000; y[2666]=2.250659e-06;
+x[2667]=53328.600000; y[2667]=2.249309e-06;
+x[2668]=53353.000000; y[2668]=2.247961e-06;
+x[2669]=53377.400000; y[2669]=2.246614e-06;
+x[2670]=53401.800000; y[2670]=2.245270e-06;
+x[2671]=53426.200000; y[2671]=2.243926e-06;
+x[2672]=53450.600000; y[2672]=2.242585e-06;
+x[2673]=53475.000000; y[2673]=2.241244e-06;
+x[2674]=53499.400000; y[2674]=2.239906e-06;
+x[2675]=53523.800000; y[2675]=2.238569e-06;
+x[2676]=53548.200000; y[2676]=2.237234e-06;
+x[2677]=53572.600000; y[2677]=2.235900e-06;
+x[2678]=53597.000000; y[2678]=2.234568e-06;
+x[2679]=53621.400000; y[2679]=2.233238e-06;
+x[2680]=53645.800000; y[2680]=2.231909e-06;
+x[2681]=53670.200000; y[2681]=2.230581e-06;
+x[2682]=53694.600000; y[2682]=2.229255e-06;
+x[2683]=53719.000000; y[2683]=2.227931e-06;
+x[2684]=53743.400000; y[2684]=2.226609e-06;
+x[2685]=53767.800000; y[2685]=2.225288e-06;
+x[2686]=53792.200000; y[2686]=2.223968e-06;
+x[2687]=53816.600000; y[2687]=2.222650e-06;
+x[2688]=53841.000000; y[2688]=2.221334e-06;
+x[2689]=53865.400000; y[2689]=2.220019e-06;
+x[2690]=53889.800000; y[2690]=2.218706e-06;
+x[2691]=53914.200000; y[2691]=2.217394e-06;
+x[2692]=53938.600000; y[2692]=2.216084e-06;
+x[2693]=53963.000000; y[2693]=2.214776e-06;
+x[2694]=53987.400000; y[2694]=2.213469e-06;
+x[2695]=54011.800000; y[2695]=2.212163e-06;
+x[2696]=54036.200000; y[2696]=2.210859e-06;
+x[2697]=54060.600000; y[2697]=2.209557e-06;
+x[2698]=54085.000000; y[2698]=2.208256e-06;
+x[2699]=54109.400000; y[2699]=2.206957e-06;
+x[2700]=54133.800000; y[2700]=2.205659e-06;
+x[2701]=54158.200000; y[2701]=2.204362e-06;
+x[2702]=54182.600000; y[2702]=2.203067e-06;
+x[2703]=54207.000000; y[2703]=2.201774e-06;
+x[2704]=54231.400000; y[2704]=2.200483e-06;
+x[2705]=54255.800000; y[2705]=2.199192e-06;
+x[2706]=54280.200000; y[2706]=2.197904e-06;
+x[2707]=54304.600000; y[2707]=2.196616e-06;
+x[2708]=54329.000000; y[2708]=2.195331e-06;
+x[2709]=54353.400000; y[2709]=2.194047e-06;
+x[2710]=54377.800000; y[2710]=2.192764e-06;
+x[2711]=54402.200000; y[2711]=2.191483e-06;
+x[2712]=54426.600000; y[2712]=2.190203e-06;
+x[2713]=54451.000000; y[2713]=2.188925e-06;
+x[2714]=54475.400000; y[2714]=2.187648e-06;
+x[2715]=54499.800000; y[2715]=2.186373e-06;
+x[2716]=54524.200000; y[2716]=2.185099e-06;
+x[2717]=54548.600000; y[2717]=2.183827e-06;
+x[2718]=54573.000000; y[2718]=2.182556e-06;
+x[2719]=54597.400000; y[2719]=2.181287e-06;
+x[2720]=54621.800000; y[2720]=2.180019e-06;
+x[2721]=54646.200000; y[2721]=2.178753e-06;
+x[2722]=54670.600000; y[2722]=2.177488e-06;
+x[2723]=54695.000000; y[2723]=2.176224e-06;
+x[2724]=54719.400000; y[2724]=2.174962e-06;
+x[2725]=54743.800000; y[2725]=2.173702e-06;
+x[2726]=54768.200000; y[2726]=2.172443e-06;
+x[2727]=54792.600000; y[2727]=2.171185e-06;
+x[2728]=54817.000000; y[2728]=2.169929e-06;
+x[2729]=54841.400000; y[2729]=2.168675e-06;
+x[2730]=54865.800000; y[2730]=2.167421e-06;
+x[2731]=54890.200000; y[2731]=2.166169e-06;
+x[2732]=54914.600000; y[2732]=2.164919e-06;
+x[2733]=54939.000000; y[2733]=2.163670e-06;
+x[2734]=54963.400000; y[2734]=2.162423e-06;
+x[2735]=54987.800000; y[2735]=2.161177e-06;
+x[2736]=55012.200000; y[2736]=2.159932e-06;
+x[2737]=55036.600000; y[2737]=2.158689e-06;
+x[2738]=55061.000000; y[2738]=2.157447e-06;
+x[2739]=55085.400000; y[2739]=2.156207e-06;
+x[2740]=55109.800000; y[2740]=2.154968e-06;
+x[2741]=55134.200000; y[2741]=2.153731e-06;
+x[2742]=55158.600000; y[2742]=2.152495e-06;
+x[2743]=55183.000000; y[2743]=2.151260e-06;
+x[2744]=55207.400000; y[2744]=2.150027e-06;
+x[2745]=55231.800000; y[2745]=2.148796e-06;
+x[2746]=55256.200000; y[2746]=2.147565e-06;
+x[2747]=55280.600000; y[2747]=2.146336e-06;
+x[2748]=55305.000000; y[2748]=2.145109e-06;
+x[2749]=55329.400000; y[2749]=2.143883e-06;
+x[2750]=55353.800000; y[2750]=2.142658e-06;
+x[2751]=55378.200000; y[2751]=2.141434e-06;
+x[2752]=55402.600000; y[2752]=2.140213e-06;
+x[2753]=55427.000000; y[2753]=2.138992e-06;
+x[2754]=55451.400000; y[2754]=2.137773e-06;
+x[2755]=55475.800000; y[2755]=2.136555e-06;
+x[2756]=55500.200000; y[2756]=2.135339e-06;
+x[2757]=55524.600000; y[2757]=2.134124e-06;
+x[2758]=55549.000000; y[2758]=2.132910e-06;
+x[2759]=55573.400000; y[2759]=2.131698e-06;
+x[2760]=55597.800000; y[2760]=2.130487e-06;
+x[2761]=55622.200000; y[2761]=2.129278e-06;
+x[2762]=55646.600000; y[2762]=2.128070e-06;
+x[2763]=55671.000000; y[2763]=2.126863e-06;
+x[2764]=55695.400000; y[2764]=2.125657e-06;
+x[2765]=55719.800000; y[2765]=2.124453e-06;
+x[2766]=55744.200000; y[2766]=2.123251e-06;
+x[2767]=55768.600000; y[2767]=2.122049e-06;
+x[2768]=55793.000000; y[2768]=2.120850e-06;
+x[2769]=55817.400000; y[2769]=2.119651e-06;
+x[2770]=55841.800000; y[2770]=2.118454e-06;
+x[2771]=55866.200000; y[2771]=2.117258e-06;
+x[2772]=55890.600000; y[2772]=2.116064e-06;
+x[2773]=55915.000000; y[2773]=2.114870e-06;
+x[2774]=55939.400000; y[2774]=2.113678e-06;
+x[2775]=55963.800000; y[2775]=2.112488e-06;
+x[2776]=55988.200000; y[2776]=2.111299e-06;
+x[2777]=56012.600000; y[2777]=2.110111e-06;
+x[2778]=56037.000000; y[2778]=2.108925e-06;
+x[2779]=56061.400000; y[2779]=2.107740e-06;
+x[2780]=56085.800000; y[2780]=2.106556e-06;
+x[2781]=56110.200000; y[2781]=2.105373e-06;
+x[2782]=56134.600000; y[2782]=2.104192e-06;
+x[2783]=56159.000000; y[2783]=2.103012e-06;
+x[2784]=56183.400000; y[2784]=2.101834e-06;
+x[2785]=56207.800000; y[2785]=2.100657e-06;
+x[2786]=56232.200000; y[2786]=2.099481e-06;
+x[2787]=56256.600000; y[2787]=2.098306e-06;
+x[2788]=56281.000000; y[2788]=2.097133e-06;
+x[2789]=56305.400000; y[2789]=2.095961e-06;
+x[2790]=56329.800000; y[2790]=2.094790e-06;
+x[2791]=56354.200000; y[2791]=2.093621e-06;
+x[2792]=56378.600000; y[2792]=2.092453e-06;
+x[2793]=56403.000000; y[2793]=2.091287e-06;
+x[2794]=56427.400000; y[2794]=2.090121e-06;
+x[2795]=56451.800000; y[2795]=2.088957e-06;
+x[2796]=56476.200000; y[2796]=2.087794e-06;
+x[2797]=56500.600000; y[2797]=2.086633e-06;
+x[2798]=56525.000000; y[2798]=2.085472e-06;
+x[2799]=56549.400000; y[2799]=2.084314e-06;
+x[2800]=56573.800000; y[2800]=2.083156e-06;
+x[2801]=56598.200000; y[2801]=2.082000e-06;
+x[2802]=56622.600000; y[2802]=2.080845e-06;
+x[2803]=56647.000000; y[2803]=2.079691e-06;
+x[2804]=56671.400000; y[2804]=2.078539e-06;
+x[2805]=56695.800000; y[2805]=2.077387e-06;
+x[2806]=56720.200000; y[2806]=2.076237e-06;
+x[2807]=56744.600000; y[2807]=2.075089e-06;
+x[2808]=56769.000000; y[2808]=2.073941e-06;
+x[2809]=56793.400000; y[2809]=2.072795e-06;
+x[2810]=56817.800000; y[2810]=2.071650e-06;
+x[2811]=56842.200000; y[2811]=2.070507e-06;
+x[2812]=56866.600000; y[2812]=2.069364e-06;
+x[2813]=56891.000000; y[2813]=2.068223e-06;
+x[2814]=56915.400000; y[2814]=2.067083e-06;
+x[2815]=56939.800000; y[2815]=2.065945e-06;
+x[2816]=56964.200000; y[2816]=2.064807e-06;
+x[2817]=56988.600000; y[2817]=2.063671e-06;
+x[2818]=57013.000000; y[2818]=2.062536e-06;
+x[2819]=57037.400000; y[2819]=2.061403e-06;
+x[2820]=57061.800000; y[2820]=2.060270e-06;
+x[2821]=57086.200000; y[2821]=2.059139e-06;
+x[2822]=57110.600000; y[2822]=2.058010e-06;
+x[2823]=57135.000000; y[2823]=2.056881e-06;
+x[2824]=57159.400000; y[2824]=2.055754e-06;
+x[2825]=57183.800000; y[2825]=2.054627e-06;
+x[2826]=57208.200000; y[2826]=2.053503e-06;
+x[2827]=57232.600000; y[2827]=2.052379e-06;
+x[2828]=57257.000000; y[2828]=2.051257e-06;
+x[2829]=57281.400000; y[2829]=2.050135e-06;
+x[2830]=57305.800000; y[2830]=2.049015e-06;
+x[2831]=57330.200000; y[2831]=2.047896e-06;
+x[2832]=57354.600000; y[2832]=2.046779e-06;
+x[2833]=57379.000000; y[2833]=2.045663e-06;
+x[2834]=57403.400000; y[2834]=2.044548e-06;
+x[2835]=57427.800000; y[2835]=2.043434e-06;
+x[2836]=57452.200000; y[2836]=2.042321e-06;
+x[2837]=57476.600000; y[2837]=2.041210e-06;
+x[2838]=57501.000000; y[2838]=2.040099e-06;
+x[2839]=57525.400000; y[2839]=2.038990e-06;
+x[2840]=57549.800000; y[2840]=2.037882e-06;
+x[2841]=57574.200000; y[2841]=2.036776e-06;
+x[2842]=57598.600000; y[2842]=2.035670e-06;
+x[2843]=57623.000000; y[2843]=2.034566e-06;
+x[2844]=57647.400000; y[2844]=2.033463e-06;
+x[2845]=57671.800000; y[2845]=2.032361e-06;
+x[2846]=57696.200000; y[2846]=2.031260e-06;
+x[2847]=57720.600000; y[2847]=2.030161e-06;
+x[2848]=57745.000000; y[2848]=2.029063e-06;
+x[2849]=57769.400000; y[2849]=2.027966e-06;
+x[2850]=57793.800000; y[2850]=2.026870e-06;
+x[2851]=57818.200000; y[2851]=2.025775e-06;
+x[2852]=57842.600000; y[2852]=2.024682e-06;
+x[2853]=57867.000000; y[2853]=2.023589e-06;
+x[2854]=57891.400000; y[2854]=2.022498e-06;
+x[2855]=57915.800000; y[2855]=2.021408e-06;
+x[2856]=57940.200000; y[2856]=2.020319e-06;
+x[2857]=57964.600000; y[2857]=2.019231e-06;
+x[2858]=57989.000000; y[2858]=2.018145e-06;
+x[2859]=58013.400000; y[2859]=2.017060e-06;
+x[2860]=58037.800000; y[2860]=2.015975e-06;
+x[2861]=58062.200000; y[2861]=2.014893e-06;
+x[2862]=58086.600000; y[2862]=2.013811e-06;
+x[2863]=58111.000000; y[2863]=2.012730e-06;
+x[2864]=58135.400000; y[2864]=2.011651e-06;
+x[2865]=58159.800000; y[2865]=2.010572e-06;
+x[2866]=58184.200000; y[2866]=2.009495e-06;
+x[2867]=58208.600000; y[2867]=2.008419e-06;
+x[2868]=58233.000000; y[2868]=2.007344e-06;
+x[2869]=58257.400000; y[2869]=2.006271e-06;
+x[2870]=58281.800000; y[2870]=2.005198e-06;
+x[2871]=58306.200000; y[2871]=2.004126e-06;
+x[2872]=58330.600000; y[2872]=2.003056e-06;
+x[2873]=58355.000000; y[2873]=2.001987e-06;
+x[2874]=58379.400000; y[2874]=2.000919e-06;
+x[2875]=58403.800000; y[2875]=1.999852e-06;
+x[2876]=58428.200000; y[2876]=1.998786e-06;
+x[2877]=58452.600000; y[2877]=1.997722e-06;
+x[2878]=58477.000000; y[2878]=1.996658e-06;
+x[2879]=58501.400000; y[2879]=1.995596e-06;
+x[2880]=58525.800000; y[2880]=1.994535e-06;
+x[2881]=58550.200000; y[2881]=1.993475e-06;
+x[2882]=58574.600000; y[2882]=1.992416e-06;
+x[2883]=58599.000000; y[2883]=1.991358e-06;
+x[2884]=58623.400000; y[2884]=1.990301e-06;
+x[2885]=58647.800000; y[2885]=1.989245e-06;
+x[2886]=58672.200000; y[2886]=1.988191e-06;
+x[2887]=58696.600000; y[2887]=1.987138e-06;
+x[2888]=58721.000000; y[2888]=1.986085e-06;
+x[2889]=58745.400000; y[2889]=1.985034e-06;
+x[2890]=58769.800000; y[2890]=1.983984e-06;
+x[2891]=58794.200000; y[2891]=1.982936e-06;
+x[2892]=58818.600000; y[2892]=1.981888e-06;
+x[2893]=58843.000000; y[2893]=1.980841e-06;
+x[2894]=58867.400000; y[2894]=1.979796e-06;
+x[2895]=58891.800000; y[2895]=1.978751e-06;
+x[2896]=58916.200000; y[2896]=1.977708e-06;
+x[2897]=58940.600000; y[2897]=1.976665e-06;
+x[2898]=58965.000000; y[2898]=1.975624e-06;
+x[2899]=58989.400000; y[2899]=1.974584e-06;
+x[2900]=59013.800000; y[2900]=1.973545e-06;
+x[2901]=59038.200000; y[2901]=1.972507e-06;
+x[2902]=59062.600000; y[2902]=1.971471e-06;
+x[2903]=59087.000000; y[2903]=1.970435e-06;
+x[2904]=59111.400000; y[2904]=1.969400e-06;
+x[2905]=59135.800000; y[2905]=1.968367e-06;
+x[2906]=59160.200000; y[2906]=1.967334e-06;
+x[2907]=59184.600000; y[2907]=1.966303e-06;
+x[2908]=59209.000000; y[2908]=1.965273e-06;
+x[2909]=59233.400000; y[2909]=1.964243e-06;
+x[2910]=59257.800000; y[2910]=1.963215e-06;
+x[2911]=59282.200000; y[2911]=1.962188e-06;
+x[2912]=59306.600000; y[2912]=1.961162e-06;
+x[2913]=59331.000000; y[2913]=1.960137e-06;
+x[2914]=59355.400000; y[2914]=1.959113e-06;
+x[2915]=59379.800000; y[2915]=1.958091e-06;
+x[2916]=59404.200000; y[2916]=1.957069e-06;
+x[2917]=59428.600000; y[2917]=1.956048e-06;
+x[2918]=59453.000000; y[2918]=1.955029e-06;
+x[2919]=59477.400000; y[2919]=1.954010e-06;
+x[2920]=59501.800000; y[2920]=1.952993e-06;
+x[2921]=59526.200000; y[2921]=1.951976e-06;
+x[2922]=59550.600000; y[2922]=1.950961e-06;
+x[2923]=59575.000000; y[2923]=1.949947e-06;
+x[2924]=59599.400000; y[2924]=1.948933e-06;
+x[2925]=59623.800000; y[2925]=1.947921e-06;
+x[2926]=59648.200000; y[2926]=1.946910e-06;
+x[2927]=59672.600000; y[2927]=1.945900e-06;
+x[2928]=59697.000000; y[2928]=1.944891e-06;
+x[2929]=59721.400000; y[2929]=1.943883e-06;
+x[2930]=59745.800000; y[2930]=1.942876e-06;
+x[2931]=59770.200000; y[2931]=1.941870e-06;
+x[2932]=59794.600000; y[2932]=1.940866e-06;
+x[2933]=59819.000000; y[2933]=1.939862e-06;
+x[2934]=59843.400000; y[2934]=1.938859e-06;
+x[2935]=59867.800000; y[2935]=1.937857e-06;
+x[2936]=59892.200000; y[2936]=1.936857e-06;
+x[2937]=59916.600000; y[2937]=1.935857e-06;
+x[2938]=59941.000000; y[2938]=1.934858e-06;
+x[2939]=59965.400000; y[2939]=1.933861e-06;
+x[2940]=59989.800000; y[2940]=1.932864e-06;
+x[2941]=60014.200000; y[2941]=1.931868e-06;
+x[2942]=60038.600000; y[2942]=1.930874e-06;
+x[2943]=60063.000000; y[2943]=1.929880e-06;
+x[2944]=60087.400000; y[2944]=1.928888e-06;
+x[2945]=60111.800000; y[2945]=1.927896e-06;
+x[2946]=60136.200000; y[2946]=1.926906e-06;
+x[2947]=60160.600000; y[2947]=1.925917e-06;
+x[2948]=60185.000000; y[2948]=1.924928e-06;
+x[2949]=60209.400000; y[2949]=1.923941e-06;
+x[2950]=60233.800000; y[2950]=1.922954e-06;
+x[2951]=60258.200000; y[2951]=1.921969e-06;
+x[2952]=60282.600000; y[2952]=1.920985e-06;
+x[2953]=60307.000000; y[2953]=1.920001e-06;
+x[2954]=60331.400000; y[2954]=1.919019e-06;
+x[2955]=60355.800000; y[2955]=1.918037e-06;
+x[2956]=60380.200000; y[2956]=1.917057e-06;
+x[2957]=60404.600000; y[2957]=1.916078e-06;
+x[2958]=60429.000000; y[2958]=1.915100e-06;
+x[2959]=60453.400000; y[2959]=1.914122e-06;
+x[2960]=60477.800000; y[2960]=1.913146e-06;
+x[2961]=60502.200000; y[2961]=1.912171e-06;
+x[2962]=60526.600000; y[2962]=1.911196e-06;
+x[2963]=60551.000000; y[2963]=1.910223e-06;
+x[2964]=60575.400000; y[2964]=1.909250e-06;
+x[2965]=60599.800000; y[2965]=1.908279e-06;
+x[2966]=60624.200000; y[2966]=1.907309e-06;
+x[2967]=60648.600000; y[2967]=1.906339e-06;
+x[2968]=60673.000000; y[2968]=1.905371e-06;
+x[2969]=60697.400000; y[2969]=1.904403e-06;
+x[2970]=60721.800000; y[2970]=1.903437e-06;
+x[2971]=60746.200000; y[2971]=1.902471e-06;
+x[2972]=60770.600000; y[2972]=1.901507e-06;
+x[2973]=60795.000000; y[2973]=1.900544e-06;
+x[2974]=60819.400000; y[2974]=1.899581e-06;
+x[2975]=60843.800000; y[2975]=1.898619e-06;
+x[2976]=60868.200000; y[2976]=1.897659e-06;
+x[2977]=60892.600000; y[2977]=1.896699e-06;
+x[2978]=60917.000000; y[2978]=1.895740e-06;
+x[2979]=60941.400000; y[2979]=1.894783e-06;
+x[2980]=60965.800000; y[2980]=1.893826e-06;
+x[2981]=60990.200000; y[2981]=1.892870e-06;
+x[2982]=61014.600000; y[2982]=1.891916e-06;
+x[2983]=61039.000000; y[2983]=1.890962e-06;
+x[2984]=61063.400000; y[2984]=1.890009e-06;
+x[2985]=61087.800000; y[2985]=1.889057e-06;
+x[2986]=61112.200000; y[2986]=1.888106e-06;
+x[2987]=61136.600000; y[2987]=1.887156e-06;
+x[2988]=61161.000000; y[2988]=1.886207e-06;
+x[2989]=61185.400000; y[2989]=1.885259e-06;
+x[2990]=61209.800000; y[2990]=1.884312e-06;
+x[2991]=61234.200000; y[2991]=1.883366e-06;
+x[2992]=61258.600000; y[2992]=1.882420e-06;
+x[2993]=61283.000000; y[2993]=1.881476e-06;
+x[2994]=61307.400000; y[2994]=1.880533e-06;
+x[2995]=61331.800000; y[2995]=1.879590e-06;
+x[2996]=61356.200000; y[2996]=1.878649e-06;
+x[2997]=61380.600000; y[2997]=1.877708e-06;
+x[2998]=61405.000000; y[2998]=1.876769e-06;
+x[2999]=61429.400000; y[2999]=1.875830e-06;
+x[3000]=61453.800000; y[3000]=1.874892e-06;
+x[3001]=61478.199999; y[3001]=1.873954e-06;
+x[3002]=61502.599999; y[3002]=1.873017e-06;
+x[3003]=61526.999998; y[3003]=1.872080e-06;
+x[3004]=61551.399998; y[3004]=1.871143e-06;
+x[3005]=61575.799998; y[3005]=1.870207e-06;
+x[3006]=61600.199997; y[3006]=1.869272e-06;
+x[3007]=61624.599997; y[3007]=1.868337e-06;
+x[3008]=61648.999997; y[3008]=1.867402e-06;
+x[3009]=61673.399996; y[3009]=1.866468e-06;
+x[3010]=61697.799996; y[3010]=1.865535e-06;
+x[3011]=61722.199995; y[3011]=1.864602e-06;
+x[3012]=61746.599995; y[3012]=1.863669e-06;
+x[3013]=61770.999995; y[3013]=1.862737e-06;
+x[3014]=61795.399994; y[3014]=1.861805e-06;
+x[3015]=61819.799994; y[3015]=1.860874e-06;
+x[3016]=61844.199994; y[3016]=1.859943e-06;
+x[3017]=61868.599993; y[3017]=1.859013e-06;
+x[3018]=61892.999993; y[3018]=1.858083e-06;
+x[3019]=61917.399992; y[3019]=1.857153e-06;
+x[3020]=61941.799992; y[3020]=1.856224e-06;
+x[3021]=61966.199992; y[3021]=1.855296e-06;
+x[3022]=61990.599991; y[3022]=1.854368e-06;
+x[3023]=62014.999991; y[3023]=1.853440e-06;
+x[3024]=62039.399990; y[3024]=1.852513e-06;
+x[3025]=62063.799990; y[3025]=1.851586e-06;
+x[3026]=62088.199990; y[3026]=1.850660e-06;
+x[3027]=62112.599989; y[3027]=1.849735e-06;
+x[3028]=62136.999989; y[3028]=1.848809e-06;
+x[3029]=62161.399989; y[3029]=1.847885e-06;
+x[3030]=62185.799988; y[3030]=1.846960e-06;
+x[3031]=62210.199988; y[3031]=1.846036e-06;
+x[3032]=62234.599987; y[3032]=1.845113e-06;
+x[3033]=62258.999987; y[3033]=1.844190e-06;
+x[3034]=62283.399987; y[3034]=1.843268e-06;
+x[3035]=62307.799986; y[3035]=1.842346e-06;
+x[3036]=62332.199986; y[3036]=1.841424e-06;
+x[3037]=62356.599986; y[3037]=1.840503e-06;
+x[3038]=62380.999985; y[3038]=1.839582e-06;
+x[3039]=62405.399985; y[3039]=1.838662e-06;
+x[3040]=62429.799984; y[3040]=1.837743e-06;
+x[3041]=62454.199984; y[3041]=1.836823e-06;
+x[3042]=62478.599984; y[3042]=1.835904e-06;
+x[3043]=62502.999983; y[3043]=1.834986e-06;
+x[3044]=62527.399983; y[3044]=1.834068e-06;
+x[3045]=62551.799982; y[3045]=1.833151e-06;
+x[3046]=62576.199982; y[3046]=1.832234e-06;
+x[3047]=62600.599982; y[3047]=1.831317e-06;
+x[3048]=62624.999981; y[3048]=1.830401e-06;
+x[3049]=62649.399981; y[3049]=1.829486e-06;
+x[3050]=62673.799981; y[3050]=1.828571e-06;
+x[3051]=62698.199980; y[3051]=1.827656e-06;
+x[3052]=62722.599980; y[3052]=1.826742e-06;
+x[3053]=62746.999979; y[3053]=1.825828e-06;
+x[3054]=62771.399979; y[3054]=1.824915e-06;
+x[3055]=62795.799979; y[3055]=1.824002e-06;
+x[3056]=62820.199978; y[3056]=1.823090e-06;
+x[3057]=62844.599978; y[3057]=1.822178e-06;
+x[3058]=62868.999977; y[3058]=1.821266e-06;
+x[3059]=62893.399977; y[3059]=1.820355e-06;
+x[3060]=62917.799977; y[3060]=1.819445e-06;
+x[3061]=62942.199976; y[3061]=1.818535e-06;
+x[3062]=62966.599976; y[3062]=1.817625e-06;
+x[3063]=62990.999976; y[3063]=1.816716e-06;
+x[3064]=63015.399975; y[3064]=1.815807e-06;
+x[3065]=63039.799975; y[3065]=1.814899e-06;
+x[3066]=63064.199974; y[3066]=1.813991e-06;
+x[3067]=63088.599974; y[3067]=1.813084e-06;
+x[3068]=63112.999974; y[3068]=1.812177e-06;
+x[3069]=63137.399973; y[3069]=1.811270e-06;
+x[3070]=63161.799973; y[3070]=1.810364e-06;
+x[3071]=63186.199973; y[3071]=1.809459e-06;
+x[3072]=63210.599972; y[3072]=1.808554e-06;
+x[3073]=63234.999972; y[3073]=1.807649e-06;
+x[3074]=63259.399971; y[3074]=1.806745e-06;
+x[3075]=63283.799971; y[3075]=1.805841e-06;
+x[3076]=63308.199971; y[3076]=1.804938e-06;
+x[3077]=63332.599970; y[3077]=1.804035e-06;
+x[3078]=63356.999970; y[3078]=1.803133e-06;
+x[3079]=63381.399969; y[3079]=1.802231e-06;
+x[3080]=63405.799969; y[3080]=1.801329e-06;
+x[3081]=63430.199969; y[3081]=1.800428e-06;
+x[3082]=63454.599968; y[3082]=1.799528e-06;
+x[3083]=63478.999968; y[3083]=1.798627e-06;
+x[3084]=63503.399968; y[3084]=1.797728e-06;
+x[3085]=63527.799967; y[3085]=1.796829e-06;
+x[3086]=63552.199967; y[3086]=1.795930e-06;
+x[3087]=63576.599966; y[3087]=1.795031e-06;
+x[3088]=63600.999966; y[3088]=1.794134e-06;
+x[3089]=63625.399966; y[3089]=1.793236e-06;
+x[3090]=63649.799965; y[3090]=1.792339e-06;
+x[3091]=63674.199965; y[3091]=1.791443e-06;
+x[3092]=63698.599965; y[3092]=1.790547e-06;
+x[3093]=63722.999964; y[3093]=1.789651e-06;
+x[3094]=63747.399964; y[3094]=1.788756e-06;
+x[3095]=63771.799963; y[3095]=1.787861e-06;
+x[3096]=63796.199963; y[3096]=1.786967e-06;
+x[3097]=63820.599963; y[3097]=1.786073e-06;
+x[3098]=63844.999962; y[3098]=1.785179e-06;
+x[3099]=63869.399962; y[3099]=1.784286e-06;
+x[3100]=63893.799961; y[3100]=1.783394e-06;
+x[3101]=63918.199961; y[3101]=1.782502e-06;
+x[3102]=63942.599961; y[3102]=1.781610e-06;
+x[3103]=63966.999960; y[3103]=1.780719e-06;
+x[3104]=63991.399960; y[3104]=1.779828e-06;
+x[3105]=64015.799960; y[3105]=1.778938e-06;
+x[3106]=64040.199959; y[3106]=1.778048e-06;
+x[3107]=64064.599959; y[3107]=1.777159e-06;
+x[3108]=64088.999958; y[3108]=1.776270e-06;
+x[3109]=64113.399958; y[3109]=1.775382e-06;
+x[3110]=64137.799958; y[3110]=1.774493e-06;
+x[3111]=64162.199957; y[3111]=1.773606e-06;
+x[3112]=64186.599957; y[3112]=1.772719e-06;
+x[3113]=64210.999957; y[3113]=1.771832e-06;
+x[3114]=64235.399956; y[3114]=1.770946e-06;
+x[3115]=64259.799956; y[3115]=1.770060e-06;
+x[3116]=64284.199955; y[3116]=1.769174e-06;
+x[3117]=64308.599955; y[3117]=1.768290e-06;
+x[3118]=64332.999955; y[3118]=1.767405e-06;
+x[3119]=64357.399954; y[3119]=1.766521e-06;
+x[3120]=64381.799954; y[3120]=1.765637e-06;
+x[3121]=64406.199953; y[3121]=1.764754e-06;
+x[3122]=64430.599953; y[3122]=1.763871e-06;
+x[3123]=64454.999953; y[3123]=1.762989e-06;
+x[3124]=64479.399952; y[3124]=1.762107e-06;
+x[3125]=64503.799952; y[3125]=1.761226e-06;
+x[3126]=64528.199952; y[3126]=1.760345e-06;
+x[3127]=64552.599951; y[3127]=1.759464e-06;
+x[3128]=64576.999951; y[3128]=1.758584e-06;
+x[3129]=64601.399950; y[3129]=1.757705e-06;
+x[3130]=64625.799950; y[3130]=1.756825e-06;
+x[3131]=64650.199950; y[3131]=1.755947e-06;
+x[3132]=64674.599949; y[3132]=1.755068e-06;
+x[3133]=64698.999949; y[3133]=1.754190e-06;
+x[3134]=64723.399949; y[3134]=1.753313e-06;
+x[3135]=64747.799948; y[3135]=1.752436e-06;
+x[3136]=64772.199948; y[3136]=1.751559e-06;
+x[3137]=64796.599947; y[3137]=1.750683e-06;
+x[3138]=64820.999947; y[3138]=1.749808e-06;
+x[3139]=64845.399947; y[3139]=1.748932e-06;
+x[3140]=64869.799946; y[3140]=1.748058e-06;
+x[3141]=64894.199946; y[3141]=1.747183e-06;
+x[3142]=64918.599945; y[3142]=1.746309e-06;
+x[3143]=64942.999945; y[3143]=1.745436e-06;
+x[3144]=64967.399945; y[3144]=1.744563e-06;
+x[3145]=64991.799944; y[3145]=1.743690e-06;
+x[3146]=65016.199944; y[3146]=1.742818e-06;
+x[3147]=65040.599944; y[3147]=1.741946e-06;
+x[3148]=65064.999943; y[3148]=1.741075e-06;
+x[3149]=65089.399943; y[3149]=1.740204e-06;
+x[3150]=65113.799942; y[3150]=1.739333e-06;
+x[3151]=65138.199942; y[3151]=1.738463e-06;
+x[3152]=65162.599942; y[3152]=1.737594e-06;
+x[3153]=65186.999941; y[3153]=1.736725e-06;
+x[3154]=65211.399941; y[3154]=1.735856e-06;
+x[3155]=65235.799940; y[3155]=1.734988e-06;
+x[3156]=65260.199940; y[3156]=1.734120e-06;
+x[3157]=65284.599940; y[3157]=1.733252e-06;
+x[3158]=65308.999939; y[3158]=1.732385e-06;
+x[3159]=65333.399939; y[3159]=1.731519e-06;
+x[3160]=65357.799939; y[3160]=1.730653e-06;
+x[3161]=65382.199938; y[3161]=1.729787e-06;
+x[3162]=65406.599938; y[3162]=1.728922e-06;
+x[3163]=65430.999937; y[3163]=1.728057e-06;
+x[3164]=65455.399937; y[3164]=1.727193e-06;
+x[3165]=65479.799937; y[3165]=1.726329e-06;
+x[3166]=65504.199936; y[3166]=1.725465e-06;
+x[3167]=65528.599936; y[3167]=1.724602e-06;
+x[3168]=65552.999936; y[3168]=1.723739e-06;
+x[3169]=65577.399935; y[3169]=1.722877e-06;
+x[3170]=65601.799935; y[3170]=1.722015e-06;
+x[3171]=65626.199934; y[3171]=1.721154e-06;
+x[3172]=65650.599934; y[3172]=1.720293e-06;
+x[3173]=65674.999934; y[3173]=1.719433e-06;
+x[3174]=65699.399933; y[3174]=1.718573e-06;
+x[3175]=65723.799933; y[3175]=1.717713e-06;
+x[3176]=65748.199932; y[3176]=1.716854e-06;
+x[3177]=65772.599932; y[3177]=1.715995e-06;
+x[3178]=65796.999932; y[3178]=1.715137e-06;
+x[3179]=65821.399931; y[3179]=1.714279e-06;
+x[3180]=65845.799931; y[3180]=1.713421e-06;
+x[3181]=65870.199931; y[3181]=1.712564e-06;
+x[3182]=65894.599930; y[3182]=1.711708e-06;
+x[3183]=65918.999930; y[3183]=1.710851e-06;
+x[3184]=65943.399929; y[3184]=1.709996e-06;
+x[3185]=65967.799929; y[3185]=1.709140e-06;
+x[3186]=65992.199929; y[3186]=1.708285e-06;
+x[3187]=66016.599928; y[3187]=1.707431e-06;
+x[3188]=66040.999928; y[3188]=1.706577e-06;
+x[3189]=66065.399928; y[3189]=1.705723e-06;
+x[3190]=66089.799927; y[3190]=1.704870e-06;
+x[3191]=66114.199927; y[3191]=1.704017e-06;
+x[3192]=66138.599926; y[3192]=1.703165e-06;
+x[3193]=66162.999926; y[3193]=1.702313e-06;
+x[3194]=66187.399926; y[3194]=1.701461e-06;
+x[3195]=66211.799925; y[3195]=1.700610e-06;
+x[3196]=66236.199925; y[3196]=1.699760e-06;
+x[3197]=66260.599924; y[3197]=1.698909e-06;
+x[3198]=66284.999924; y[3198]=1.698060e-06;
+x[3199]=66309.399924; y[3199]=1.697210e-06;
+x[3200]=66333.799923; y[3200]=1.696361e-06;
+x[3201]=66358.199923; y[3201]=1.695513e-06;
+x[3202]=66382.599923; y[3202]=1.694665e-06;
+x[3203]=66406.999922; y[3203]=1.693817e-06;
+x[3204]=66431.399922; y[3204]=1.692970e-06;
+x[3205]=66455.799921; y[3205]=1.692123e-06;
+x[3206]=66480.199921; y[3206]=1.691277e-06;
+x[3207]=66504.599921; y[3207]=1.690431e-06;
+x[3208]=66528.999920; y[3208]=1.689585e-06;
+x[3209]=66553.399920; y[3209]=1.688740e-06;
+x[3210]=66577.799920; y[3210]=1.687895e-06;
+x[3211]=66602.199919; y[3211]=1.687051e-06;
+x[3212]=66626.599919; y[3212]=1.686207e-06;
+x[3213]=66650.999918; y[3213]=1.685364e-06;
+x[3214]=66675.399918; y[3214]=1.684521e-06;
+x[3215]=66699.799918; y[3215]=1.683678e-06;
+x[3216]=66724.199917; y[3216]=1.682836e-06;
+x[3217]=66748.599917; y[3217]=1.681994e-06;
+x[3218]=66772.999916; y[3218]=1.681153e-06;
+x[3219]=66797.399916; y[3219]=1.680312e-06;
+x[3220]=66821.799916; y[3220]=1.679471e-06;
+x[3221]=66846.199915; y[3221]=1.678631e-06;
+x[3222]=66870.599915; y[3222]=1.677792e-06;
+x[3223]=66894.999915; y[3223]=1.676952e-06;
+x[3224]=66919.399914; y[3224]=1.676113e-06;
+x[3225]=66943.799914; y[3225]=1.675275e-06;
+x[3226]=66968.199913; y[3226]=1.674437e-06;
+x[3227]=66992.599913; y[3227]=1.673600e-06;
+x[3228]=67016.999913; y[3228]=1.672762e-06;
+x[3229]=67041.399912; y[3229]=1.671926e-06;
+x[3230]=67065.799912; y[3230]=1.671089e-06;
+x[3231]=67090.199911; y[3231]=1.670253e-06;
+x[3232]=67114.599911; y[3232]=1.669418e-06;
+x[3233]=67138.999911; y[3233]=1.668583e-06;
+x[3234]=67163.399910; y[3234]=1.667748e-06;
+x[3235]=67187.799910; y[3235]=1.666914e-06;
+x[3236]=67212.199910; y[3236]=1.666080e-06;
+x[3237]=67236.599909; y[3237]=1.665247e-06;
+x[3238]=67260.999909; y[3238]=1.664414e-06;
+x[3239]=67285.399908; y[3239]=1.663581e-06;
+x[3240]=67309.799908; y[3240]=1.662749e-06;
+x[3241]=67334.199908; y[3241]=1.661918e-06;
+x[3242]=67358.599907; y[3242]=1.661086e-06;
+x[3243]=67382.999907; y[3243]=1.660255e-06;
+x[3244]=67407.399907; y[3244]=1.659425e-06;
+x[3245]=67431.799906; y[3245]=1.658595e-06;
+x[3246]=67456.199906; y[3246]=1.657765e-06;
+x[3247]=67480.599905; y[3247]=1.656936e-06;
+x[3248]=67504.999905; y[3248]=1.656107e-06;
+x[3249]=67529.399905; y[3249]=1.655279e-06;
+x[3250]=67553.799904; y[3250]=1.654451e-06;
+x[3251]=67578.199904; y[3251]=1.653623e-06;
+x[3252]=67602.599903; y[3252]=1.652796e-06;
+x[3253]=67626.999903; y[3253]=1.651969e-06;
+x[3254]=67651.399903; y[3254]=1.651143e-06;
+x[3255]=67675.799902; y[3255]=1.650317e-06;
+x[3256]=67700.199902; y[3256]=1.649492e-06;
+x[3257]=67724.599902; y[3257]=1.648667e-06;
+x[3258]=67748.999901; y[3258]=1.647842e-06;
+x[3259]=67773.399901; y[3259]=1.647018e-06;
+x[3260]=67797.799900; y[3260]=1.646194e-06;
+x[3261]=67822.199900; y[3261]=1.645370e-06;
+x[3262]=67846.599900; y[3262]=1.644547e-06;
+x[3263]=67870.999899; y[3263]=1.643725e-06;
+x[3264]=67895.399899; y[3264]=1.642903e-06;
+x[3265]=67919.799899; y[3265]=1.642081e-06;
+x[3266]=67944.199898; y[3266]=1.641260e-06;
+x[3267]=67968.599898; y[3267]=1.640439e-06;
+x[3268]=67992.999897; y[3268]=1.639618e-06;
+x[3269]=68017.399897; y[3269]=1.638798e-06;
+x[3270]=68041.799897; y[3270]=1.637978e-06;
+x[3271]=68066.199896; y[3271]=1.637159e-06;
+x[3272]=68090.599896; y[3272]=1.636340e-06;
+x[3273]=68114.999895; y[3273]=1.635521e-06;
+x[3274]=68139.399895; y[3274]=1.634703e-06;
+x[3275]=68163.799895; y[3275]=1.633886e-06;
+x[3276]=68188.199894; y[3276]=1.633068e-06;
+x[3277]=68212.599894; y[3277]=1.632251e-06;
+x[3278]=68236.999894; y[3278]=1.631435e-06;
+x[3279]=68261.399893; y[3279]=1.630619e-06;
+x[3280]=68285.799893; y[3280]=1.629803e-06;
+x[3281]=68310.199892; y[3281]=1.628988e-06;
+x[3282]=68334.599892; y[3282]=1.628173e-06;
+x[3283]=68358.999892; y[3283]=1.627359e-06;
+x[3284]=68383.399891; y[3284]=1.626545e-06;
+x[3285]=68407.799891; y[3285]=1.625731e-06;
+x[3286]=68432.199891; y[3286]=1.624918e-06;
+x[3287]=68456.599890; y[3287]=1.624105e-06;
+x[3288]=68480.999890; y[3288]=1.623293e-06;
+x[3289]=68505.399889; y[3289]=1.622481e-06;
+x[3290]=68529.799889; y[3290]=1.621669e-06;
+x[3291]=68554.199889; y[3291]=1.620858e-06;
+x[3292]=68578.599888; y[3292]=1.620047e-06;
+x[3293]=68602.999888; y[3293]=1.619237e-06;
+x[3294]=68627.399887; y[3294]=1.618427e-06;
+x[3295]=68651.799887; y[3295]=1.617618e-06;
+x[3296]=68676.199887; y[3296]=1.616808e-06;
+x[3297]=68700.599886; y[3297]=1.616000e-06;
+x[3298]=68724.999886; y[3298]=1.615191e-06;
+x[3299]=68749.399886; y[3299]=1.614383e-06;
+x[3300]=68773.799885; y[3300]=1.613576e-06;
+x[3301]=68798.199885; y[3301]=1.612769e-06;
+x[3302]=68822.599884; y[3302]=1.611962e-06;
+x[3303]=68846.999884; y[3303]=1.611156e-06;
+x[3304]=68871.399884; y[3304]=1.610350e-06;
+x[3305]=68895.799883; y[3305]=1.609544e-06;
+x[3306]=68920.199883; y[3306]=1.608739e-06;
+x[3307]=68944.599883; y[3307]=1.607935e-06;
+x[3308]=68968.999882; y[3308]=1.607130e-06;
+x[3309]=68993.399882; y[3309]=1.606326e-06;
+x[3310]=69017.799881; y[3310]=1.605523e-06;
+x[3311]=69042.199881; y[3311]=1.604720e-06;
+x[3312]=69066.599881; y[3312]=1.603917e-06;
+x[3313]=69090.999880; y[3313]=1.603115e-06;
+x[3314]=69115.399880; y[3314]=1.602313e-06;
+x[3315]=69139.799879; y[3315]=1.601512e-06;
+x[3316]=69164.199879; y[3316]=1.600710e-06;
+x[3317]=69188.599879; y[3317]=1.599910e-06;
+x[3318]=69212.999878; y[3318]=1.599110e-06;
+x[3319]=69237.399878; y[3319]=1.598310e-06;
+x[3320]=69261.799878; y[3320]=1.597510e-06;
+x[3321]=69286.199877; y[3321]=1.596711e-06;
+x[3322]=69310.599877; y[3322]=1.595912e-06;
+x[3323]=69334.999876; y[3323]=1.595114e-06;
+x[3324]=69359.399876; y[3324]=1.594316e-06;
+x[3325]=69383.799876; y[3325]=1.593519e-06;
+x[3326]=69408.199875; y[3326]=1.592722e-06;
+x[3327]=69432.599875; y[3327]=1.591925e-06;
+x[3328]=69456.999874; y[3328]=1.591129e-06;
+x[3329]=69481.399874; y[3329]=1.590333e-06;
+x[3330]=69505.799874; y[3330]=1.589537e-06;
+x[3331]=69530.199873; y[3331]=1.588742e-06;
+x[3332]=69554.599873; y[3332]=1.587948e-06;
+x[3333]=69578.999873; y[3333]=1.587153e-06;
+x[3334]=69603.399872; y[3334]=1.586359e-06;
+x[3335]=69627.799872; y[3335]=1.585566e-06;
+x[3336]=69652.199871; y[3336]=1.584773e-06;
+x[3337]=69676.599871; y[3337]=1.583980e-06;
+x[3338]=69700.999871; y[3338]=1.583188e-06;
+x[3339]=69725.399870; y[3339]=1.582396e-06;
+x[3340]=69749.799870; y[3340]=1.581604e-06;
+x[3341]=69774.199870; y[3341]=1.580813e-06;
+x[3342]=69798.599869; y[3342]=1.580022e-06;
+x[3343]=69822.999869; y[3343]=1.579232e-06;
+x[3344]=69847.399868; y[3344]=1.578442e-06;
+x[3345]=69871.799868; y[3345]=1.577653e-06;
+x[3346]=69896.199868; y[3346]=1.576864e-06;
+x[3347]=69920.599867; y[3347]=1.576075e-06;
+x[3348]=69944.999867; y[3348]=1.575286e-06;
+x[3349]=69969.399866; y[3349]=1.574498e-06;
+x[3350]=69993.799866; y[3350]=1.573711e-06;
+x[3351]=70018.199866; y[3351]=1.572924e-06;
+x[3352]=70042.599865; y[3352]=1.572137e-06;
+x[3353]=70066.999865; y[3353]=1.571351e-06;
+x[3354]=70091.399865; y[3354]=1.570565e-06;
+x[3355]=70115.799864; y[3355]=1.569779e-06;
+x[3356]=70140.199864; y[3356]=1.568994e-06;
+x[3357]=70164.599863; y[3357]=1.568209e-06;
+x[3358]=70188.999863; y[3358]=1.567425e-06;
+x[3359]=70213.399863; y[3359]=1.566640e-06;
+x[3360]=70237.799862; y[3360]=1.565857e-06;
+x[3361]=70262.199862; y[3361]=1.565074e-06;
+x[3362]=70286.599862; y[3362]=1.564291e-06;
+x[3363]=70310.999861; y[3363]=1.563508e-06;
+x[3364]=70335.399861; y[3364]=1.562726e-06;
+x[3365]=70359.799860; y[3365]=1.561945e-06;
+x[3366]=70384.199860; y[3366]=1.561163e-06;
+x[3367]=70408.599860; y[3367]=1.560382e-06;
+x[3368]=70432.999859; y[3368]=1.559602e-06;
+x[3369]=70457.399859; y[3369]=1.558822e-06;
+x[3370]=70481.799858; y[3370]=1.558042e-06;
+x[3371]=70506.199858; y[3371]=1.557263e-06;
+x[3372]=70530.599858; y[3372]=1.556484e-06;
+x[3373]=70554.999857; y[3373]=1.555705e-06;
+x[3374]=70579.399857; y[3374]=1.554927e-06;
+x[3375]=70603.799857; y[3375]=1.554149e-06;
+x[3376]=70628.199856; y[3376]=1.553372e-06;
+x[3377]=70652.599856; y[3377]=1.552595e-06;
+x[3378]=70676.999855; y[3378]=1.551818e-06;
+x[3379]=70701.399855; y[3379]=1.551042e-06;
+x[3380]=70725.799855; y[3380]=1.550266e-06;
+x[3381]=70750.199854; y[3381]=1.549491e-06;
+x[3382]=70774.599854; y[3382]=1.548716e-06;
+x[3383]=70798.999854; y[3383]=1.547941e-06;
+x[3384]=70823.399853; y[3384]=1.547167e-06;
+x[3385]=70847.799853; y[3385]=1.546393e-06;
+x[3386]=70872.199852; y[3386]=1.545619e-06;
+x[3387]=70896.599852; y[3387]=1.544846e-06;
+x[3388]=70920.999852; y[3388]=1.544073e-06;
+x[3389]=70945.399851; y[3389]=1.543301e-06;
+x[3390]=70969.799851; y[3390]=1.542529e-06;
+x[3391]=70994.199850; y[3391]=1.541758e-06;
+x[3392]=71018.599850; y[3392]=1.540986e-06;
+x[3393]=71042.999850; y[3393]=1.540216e-06;
+x[3394]=71067.399849; y[3394]=1.539445e-06;
+x[3395]=71091.799849; y[3395]=1.538675e-06;
+x[3396]=71116.199849; y[3396]=1.537905e-06;
+x[3397]=71140.599848; y[3397]=1.537136e-06;
+x[3398]=71164.999848; y[3398]=1.536367e-06;
+x[3399]=71189.399847; y[3399]=1.535599e-06;
+x[3400]=71213.799847; y[3400]=1.534831e-06;
+x[3401]=71238.199847; y[3401]=1.534063e-06;
+x[3402]=71262.599846; y[3402]=1.533296e-06;
+x[3403]=71286.999846; y[3403]=1.532529e-06;
+x[3404]=71311.399846; y[3404]=1.531762e-06;
+x[3405]=71335.799845; y[3405]=1.530996e-06;
+x[3406]=71360.199845; y[3406]=1.530230e-06;
+x[3407]=71384.599844; y[3407]=1.529465e-06;
+x[3408]=71408.999844; y[3408]=1.528700e-06;
+x[3409]=71433.399844; y[3409]=1.527935e-06;
+x[3410]=71457.799843; y[3410]=1.527171e-06;
+x[3411]=71482.199843; y[3411]=1.526407e-06;
+x[3412]=71506.599842; y[3412]=1.525643e-06;
+x[3413]=71530.999842; y[3413]=1.524880e-06;
+x[3414]=71555.399842; y[3414]=1.524117e-06;
+x[3415]=71579.799841; y[3415]=1.523355e-06;
+x[3416]=71604.199841; y[3416]=1.522593e-06;
+x[3417]=71628.599841; y[3417]=1.521831e-06;
+x[3418]=71652.999840; y[3418]=1.521070e-06;
+x[3419]=71677.399840; y[3419]=1.520309e-06;
+x[3420]=71701.799839; y[3420]=1.519549e-06;
+x[3421]=71726.199839; y[3421]=1.518789e-06;
+x[3422]=71750.599839; y[3422]=1.518029e-06;
+x[3423]=71774.999838; y[3423]=1.517270e-06;
+x[3424]=71799.399838; y[3424]=1.516511e-06;
+x[3425]=71823.799837; y[3425]=1.515752e-06;
+x[3426]=71848.199837; y[3426]=1.514994e-06;
+x[3427]=71872.599837; y[3427]=1.514236e-06;
+x[3428]=71896.999836; y[3428]=1.513479e-06;
+x[3429]=71921.399836; y[3429]=1.512722e-06;
+x[3430]=71945.799836; y[3430]=1.511965e-06;
+x[3431]=71970.199835; y[3431]=1.511209e-06;
+x[3432]=71994.599835; y[3432]=1.510453e-06;
+x[3433]=72018.999834; y[3433]=1.509697e-06;
+x[3434]=72043.399834; y[3434]=1.508942e-06;
+x[3435]=72067.799834; y[3435]=1.508188e-06;
+x[3436]=72092.199833; y[3436]=1.507433e-06;
+x[3437]=72116.599833; y[3437]=1.506679e-06;
+x[3438]=72140.999833; y[3438]=1.505925e-06;
+x[3439]=72165.399832; y[3439]=1.505172e-06;
+x[3440]=72189.799832; y[3440]=1.504419e-06;
+x[3441]=72214.199831; y[3441]=1.503667e-06;
+x[3442]=72238.599831; y[3442]=1.502915e-06;
+x[3443]=72262.999831; y[3443]=1.502163e-06;
+x[3444]=72287.399830; y[3444]=1.501412e-06;
+x[3445]=72311.799830; y[3445]=1.500661e-06;
+x[3446]=72336.199829; y[3446]=1.499910e-06;
+x[3447]=72360.599829; y[3447]=1.499160e-06;
+x[3448]=72384.999829; y[3448]=1.498410e-06;
+x[3449]=72409.399828; y[3449]=1.497660e-06;
+x[3450]=72433.799828; y[3450]=1.496911e-06;
+x[3451]=72458.199828; y[3451]=1.496162e-06;
+x[3452]=72482.599827; y[3452]=1.495414e-06;
+x[3453]=72506.999827; y[3453]=1.494666e-06;
+x[3454]=72531.399826; y[3454]=1.493918e-06;
+x[3455]=72555.799826; y[3455]=1.493171e-06;
+x[3456]=72580.199826; y[3456]=1.492424e-06;
+x[3457]=72604.599825; y[3457]=1.491678e-06;
+x[3458]=72628.999825; y[3458]=1.490932e-06;
+x[3459]=72653.399825; y[3459]=1.490186e-06;
+x[3460]=72677.799824; y[3460]=1.489440e-06;
+x[3461]=72702.199824; y[3461]=1.488695e-06;
+x[3462]=72726.599823; y[3462]=1.487951e-06;
+x[3463]=72750.999823; y[3463]=1.487206e-06;
+x[3464]=72775.399823; y[3464]=1.486462e-06;
+x[3465]=72799.799822; y[3465]=1.485719e-06;
+x[3466]=72824.199822; y[3466]=1.484976e-06;
+x[3467]=72848.599821; y[3467]=1.484233e-06;
+x[3468]=72872.999821; y[3468]=1.483491e-06;
+x[3469]=72897.399821; y[3469]=1.482749e-06;
+x[3470]=72921.799820; y[3470]=1.482007e-06;
+x[3471]=72946.199820; y[3471]=1.481266e-06;
+x[3472]=72970.599820; y[3472]=1.480525e-06;
+x[3473]=72994.999819; y[3473]=1.479784e-06;
+x[3474]=73019.399819; y[3474]=1.479044e-06;
+x[3475]=73043.799818; y[3475]=1.478304e-06;
+x[3476]=73068.199818; y[3476]=1.477565e-06;
+x[3477]=73092.599818; y[3477]=1.476826e-06;
+x[3478]=73116.999817; y[3478]=1.476087e-06;
+x[3479]=73141.399817; y[3479]=1.475348e-06;
+x[3480]=73165.799817; y[3480]=1.474611e-06;
+x[3481]=73190.199816; y[3481]=1.473873e-06;
+x[3482]=73214.599816; y[3482]=1.473136e-06;
+x[3483]=73238.999815; y[3483]=1.472399e-06;
+x[3484]=73263.399815; y[3484]=1.471662e-06;
+x[3485]=73287.799815; y[3485]=1.470926e-06;
+x[3486]=73312.199814; y[3486]=1.470190e-06;
+x[3487]=73336.599814; y[3487]=1.469455e-06;
+x[3488]=73360.999813; y[3488]=1.468720e-06;
+x[3489]=73385.399813; y[3489]=1.467985e-06;
+x[3490]=73409.799813; y[3490]=1.467251e-06;
+x[3491]=73434.199812; y[3491]=1.466517e-06;
+x[3492]=73458.599812; y[3492]=1.465784e-06;
+x[3493]=73482.999812; y[3493]=1.465050e-06;
+x[3494]=73507.399811; y[3494]=1.464318e-06;
+x[3495]=73531.799811; y[3495]=1.463585e-06;
+x[3496]=73556.199810; y[3496]=1.462853e-06;
+x[3497]=73580.599810; y[3497]=1.462121e-06;
+x[3498]=73604.999810; y[3498]=1.461390e-06;
+x[3499]=73629.399809; y[3499]=1.460659e-06;
+x[3500]=73653.799809; y[3500]=1.459928e-06;
+x[3501]=73678.199809; y[3501]=1.459198e-06;
+x[3502]=73702.599808; y[3502]=1.458468e-06;
+x[3503]=73726.999808; y[3503]=1.457739e-06;
+x[3504]=73751.399807; y[3504]=1.457009e-06;
+x[3505]=73775.799807; y[3505]=1.456281e-06;
+x[3506]=73800.199807; y[3506]=1.455552e-06;
+x[3507]=73824.599806; y[3507]=1.454824e-06;
+x[3508]=73848.999806; y[3508]=1.454096e-06;
+x[3509]=73873.399805; y[3509]=1.453369e-06;
+x[3510]=73897.799805; y[3510]=1.452642e-06;
+x[3511]=73922.199805; y[3511]=1.451916e-06;
+x[3512]=73946.599804; y[3512]=1.451189e-06;
+x[3513]=73970.999804; y[3513]=1.450463e-06;
+x[3514]=73995.399804; y[3514]=1.449738e-06;
+x[3515]=74019.799803; y[3515]=1.449013e-06;
+x[3516]=74044.199803; y[3516]=1.448288e-06;
+x[3517]=74068.599802; y[3517]=1.447563e-06;
+x[3518]=74092.999802; y[3518]=1.446839e-06;
+x[3519]=74117.399802; y[3519]=1.446116e-06;
+x[3520]=74141.799801; y[3520]=1.445392e-06;
+x[3521]=74166.199801; y[3521]=1.444669e-06;
+x[3522]=74190.599800; y[3522]=1.443947e-06;
+x[3523]=74214.999800; y[3523]=1.443224e-06;
+x[3524]=74239.399800; y[3524]=1.442503e-06;
+x[3525]=74263.799799; y[3525]=1.441781e-06;
+x[3526]=74288.199799; y[3526]=1.441060e-06;
+x[3527]=74312.599799; y[3527]=1.440339e-06;
+x[3528]=74336.999798; y[3528]=1.439619e-06;
+x[3529]=74361.399798; y[3529]=1.438898e-06;
+x[3530]=74385.799797; y[3530]=1.438179e-06;
+x[3531]=74410.199797; y[3531]=1.437459e-06;
+x[3532]=74434.599797; y[3532]=1.436740e-06;
+x[3533]=74458.999796; y[3533]=1.436022e-06;
+x[3534]=74483.399796; y[3534]=1.435303e-06;
+x[3535]=74507.799796; y[3535]=1.434585e-06;
+x[3536]=74532.199795; y[3536]=1.433868e-06;
+x[3537]=74556.599795; y[3537]=1.433151e-06;
+x[3538]=74580.999794; y[3538]=1.432434e-06;
+x[3539]=74605.399794; y[3539]=1.431717e-06;
+x[3540]=74629.799794; y[3540]=1.431001e-06;
+x[3541]=74654.199793; y[3541]=1.430285e-06;
+x[3542]=74678.599793; y[3542]=1.429570e-06;
+x[3543]=74702.999792; y[3543]=1.428855e-06;
+x[3544]=74727.399792; y[3544]=1.428140e-06;
+x[3545]=74751.799792; y[3545]=1.427426e-06;
+x[3546]=74776.199791; y[3546]=1.426712e-06;
+x[3547]=74800.599791; y[3547]=1.425998e-06;
+x[3548]=74824.999791; y[3548]=1.425285e-06;
+x[3549]=74849.399790; y[3549]=1.424572e-06;
+x[3550]=74873.799790; y[3550]=1.423859e-06;
+x[3551]=74898.199789; y[3551]=1.423147e-06;
+x[3552]=74922.599789; y[3552]=1.422435e-06;
+x[3553]=74946.999789; y[3553]=1.421724e-06;
+x[3554]=74971.399788; y[3554]=1.421013e-06;
+x[3555]=74995.799788; y[3555]=1.420302e-06;
+x[3556]=75020.199788; y[3556]=1.419591e-06;
+x[3557]=75044.599787; y[3557]=1.418881e-06;
+x[3558]=75068.999787; y[3558]=1.418172e-06;
+x[3559]=75093.399786; y[3559]=1.417462e-06;
+x[3560]=75117.799786; y[3560]=1.416753e-06;
+x[3561]=75142.199786; y[3561]=1.416044e-06;
+x[3562]=75166.599785; y[3562]=1.415336e-06;
+x[3563]=75190.999785; y[3563]=1.414628e-06;
+x[3564]=75215.399784; y[3564]=1.413921e-06;
+x[3565]=75239.799784; y[3565]=1.413213e-06;
+x[3566]=75264.199784; y[3566]=1.412506e-06;
+x[3567]=75288.599783; y[3567]=1.411800e-06;
+x[3568]=75312.999783; y[3568]=1.411094e-06;
+x[3569]=75337.399783; y[3569]=1.410388e-06;
+x[3570]=75361.799782; y[3570]=1.409682e-06;
+x[3571]=75386.199782; y[3571]=1.408977e-06;
+x[3572]=75410.599781; y[3572]=1.408273e-06;
+x[3573]=75434.999781; y[3573]=1.407568e-06;
+x[3574]=75459.399781; y[3574]=1.406864e-06;
+x[3575]=75483.799780; y[3575]=1.406160e-06;
+x[3576]=75508.199780; y[3576]=1.405457e-06;
+x[3577]=75532.599780; y[3577]=1.404754e-06;
+x[3578]=75556.999779; y[3578]=1.404051e-06;
+x[3579]=75581.399779; y[3579]=1.403349e-06;
+x[3580]=75605.799778; y[3580]=1.402647e-06;
+x[3581]=75630.199778; y[3581]=1.401945e-06;
+x[3582]=75654.599778; y[3582]=1.401244e-06;
+x[3583]=75678.999777; y[3583]=1.400543e-06;
+x[3584]=75703.399777; y[3584]=1.399843e-06;
+x[3585]=75727.799776; y[3585]=1.399142e-06;
+x[3586]=75752.199776; y[3586]=1.398443e-06;
+x[3587]=75776.599776; y[3587]=1.397743e-06;
+x[3588]=75800.999775; y[3588]=1.397044e-06;
+x[3589]=75825.399775; y[3589]=1.396345e-06;
+x[3590]=75849.799775; y[3590]=1.395647e-06;
+x[3591]=75874.199774; y[3591]=1.394949e-06;
+x[3592]=75898.599774; y[3592]=1.394251e-06;
+x[3593]=75922.999773; y[3593]=1.393553e-06;
+x[3594]=75947.399773; y[3594]=1.392856e-06;
+x[3595]=75971.799773; y[3595]=1.392160e-06;
+x[3596]=75996.199772; y[3596]=1.391463e-06;
+x[3597]=76020.599772; y[3597]=1.390767e-06;
+x[3598]=76044.999771; y[3598]=1.390072e-06;
+x[3599]=76069.399771; y[3599]=1.389376e-06;
+x[3600]=76093.799771; y[3600]=1.388681e-06;
+x[3601]=76118.199770; y[3601]=1.387987e-06;
+x[3602]=76142.599770; y[3602]=1.387292e-06;
+x[3603]=76166.999770; y[3603]=1.386599e-06;
+x[3604]=76191.399769; y[3604]=1.385905e-06;
+x[3605]=76215.799769; y[3605]=1.385212e-06;
+x[3606]=76240.199768; y[3606]=1.384519e-06;
+x[3607]=76264.599768; y[3607]=1.383826e-06;
+x[3608]=76288.999768; y[3608]=1.383134e-06;
+x[3609]=76313.399767; y[3609]=1.382442e-06;
+x[3610]=76337.799767; y[3610]=1.381751e-06;
+x[3611]=76362.199767; y[3611]=1.381060e-06;
+x[3612]=76386.599766; y[3612]=1.380369e-06;
+x[3613]=76410.999766; y[3613]=1.379678e-06;
+x[3614]=76435.399765; y[3614]=1.378988e-06;
+x[3615]=76459.799765; y[3615]=1.378298e-06;
+x[3616]=76484.199765; y[3616]=1.377609e-06;
+x[3617]=76508.599764; y[3617]=1.376920e-06;
+x[3618]=76532.999764; y[3618]=1.376231e-06;
+x[3619]=76557.399763; y[3619]=1.375543e-06;
+x[3620]=76581.799763; y[3620]=1.374855e-06;
+x[3621]=76606.199763; y[3621]=1.374167e-06;
+x[3622]=76630.599762; y[3622]=1.373480e-06;
+x[3623]=76654.999762; y[3623]=1.372793e-06;
+x[3624]=76679.399762; y[3624]=1.372106e-06;
+x[3625]=76703.799761; y[3625]=1.371420e-06;
+x[3626]=76728.199761; y[3626]=1.370734e-06;
+x[3627]=76752.599760; y[3627]=1.370048e-06;
+x[3628]=76776.999760; y[3628]=1.369363e-06;
+x[3629]=76801.399760; y[3629]=1.368678e-06;
+x[3630]=76825.799759; y[3630]=1.367993e-06;
+x[3631]=76850.199759; y[3631]=1.367309e-06;
+x[3632]=76874.599759; y[3632]=1.366625e-06;
+x[3633]=76898.999758; y[3633]=1.365941e-06;
+x[3634]=76923.399758; y[3634]=1.365258e-06;
+x[3635]=76947.799757; y[3635]=1.364575e-06;
+x[3636]=76972.199757; y[3636]=1.363893e-06;
+x[3637]=76996.599757; y[3637]=1.363210e-06;
+x[3638]=77020.999756; y[3638]=1.362529e-06;
+x[3639]=77045.399756; y[3639]=1.361847e-06;
+x[3640]=77069.799755; y[3640]=1.361166e-06;
+x[3641]=77094.199755; y[3641]=1.360485e-06;
+x[3642]=77118.599755; y[3642]=1.359804e-06;
+x[3643]=77142.999754; y[3643]=1.359124e-06;
+x[3644]=77167.399754; y[3644]=1.358444e-06;
+x[3645]=77191.799754; y[3645]=1.357765e-06;
+x[3646]=77216.199753; y[3646]=1.357086e-06;
+x[3647]=77240.599753; y[3647]=1.356407e-06;
+x[3648]=77264.999752; y[3648]=1.355728e-06;
+x[3649]=77289.399752; y[3649]=1.355050e-06;
+x[3650]=77313.799752; y[3650]=1.354373e-06;
+x[3651]=77338.199751; y[3651]=1.353695e-06;
+x[3652]=77362.599751; y[3652]=1.353018e-06;
+x[3653]=77386.999751; y[3653]=1.352341e-06;
+x[3654]=77411.399750; y[3654]=1.351665e-06;
+x[3655]=77435.799750; y[3655]=1.350989e-06;
+x[3656]=77460.199749; y[3656]=1.350313e-06;
+x[3657]=77484.599749; y[3657]=1.349637e-06;
+x[3658]=77508.999749; y[3658]=1.348962e-06;
+x[3659]=77533.399748; y[3659]=1.348288e-06;
+x[3660]=77557.799748; y[3660]=1.347613e-06;
+x[3661]=77582.199747; y[3661]=1.346939e-06;
+x[3662]=77606.599747; y[3662]=1.346265e-06;
+x[3663]=77630.999747; y[3663]=1.345592e-06;
+x[3664]=77655.399746; y[3664]=1.344919e-06;
+x[3665]=77679.799746; y[3665]=1.344246e-06;
+x[3666]=77704.199746; y[3666]=1.343574e-06;
+x[3667]=77728.599745; y[3667]=1.342902e-06;
+x[3668]=77752.999745; y[3668]=1.342230e-06;
+x[3669]=77777.399744; y[3669]=1.341559e-06;
+x[3670]=77801.799744; y[3670]=1.340887e-06;
+x[3671]=77826.199744; y[3671]=1.340217e-06;
+x[3672]=77850.599743; y[3672]=1.339546e-06;
+x[3673]=77874.999743; y[3673]=1.338876e-06;
+x[3674]=77899.399743; y[3674]=1.338207e-06;
+x[3675]=77923.799742; y[3675]=1.337537e-06;
+x[3676]=77948.199742; y[3676]=1.336868e-06;
+x[3677]=77972.599741; y[3677]=1.336200e-06;
+x[3678]=77996.999741; y[3678]=1.335531e-06;
+x[3679]=78021.399741; y[3679]=1.334863e-06;
+x[3680]=78045.799740; y[3680]=1.334195e-06;
+x[3681]=78070.199740; y[3681]=1.333528e-06;
+x[3682]=78094.599739; y[3682]=1.332861e-06;
+x[3683]=78118.999739; y[3683]=1.332194e-06;
+x[3684]=78143.399739; y[3684]=1.331528e-06;
+x[3685]=78167.799738; y[3685]=1.330862e-06;
+x[3686]=78192.199738; y[3686]=1.330196e-06;
+x[3687]=78216.599738; y[3687]=1.329531e-06;
+x[3688]=78240.999737; y[3688]=1.328866e-06;
+x[3689]=78265.399737; y[3689]=1.328201e-06;
+x[3690]=78289.799736; y[3690]=1.327537e-06;
+x[3691]=78314.199736; y[3691]=1.326873e-06;
+x[3692]=78338.599736; y[3692]=1.326209e-06;
+x[3693]=78362.999735; y[3693]=1.325546e-06;
+x[3694]=78387.399735; y[3694]=1.324883e-06;
+x[3695]=78411.799734; y[3695]=1.324220e-06;
+x[3696]=78436.199734; y[3696]=1.323558e-06;
+x[3697]=78460.599734; y[3697]=1.322895e-06;
+x[3698]=78484.999733; y[3698]=1.322234e-06;
+x[3699]=78509.399733; y[3699]=1.321572e-06;
+x[3700]=78533.799733; y[3700]=1.320911e-06;
+x[3701]=78558.199732; y[3701]=1.320251e-06;
+x[3702]=78582.599732; y[3702]=1.319590e-06;
+x[3703]=78606.999731; y[3703]=1.318930e-06;
+x[3704]=78631.399731; y[3704]=1.318270e-06;
+x[3705]=78655.799731; y[3705]=1.317611e-06;
+x[3706]=78680.199730; y[3706]=1.316952e-06;
+x[3707]=78704.599730; y[3707]=1.316293e-06;
+x[3708]=78728.999730; y[3708]=1.315635e-06;
+x[3709]=78753.399729; y[3709]=1.314977e-06;
+x[3710]=78777.799729; y[3710]=1.314319e-06;
+x[3711]=78802.199728; y[3711]=1.313662e-06;
+x[3712]=78826.599728; y[3712]=1.313004e-06;
+x[3713]=78850.999728; y[3713]=1.312348e-06;
+x[3714]=78875.399727; y[3714]=1.311691e-06;
+x[3715]=78899.799727; y[3715]=1.311035e-06;
+x[3716]=78924.199726; y[3716]=1.310379e-06;
+x[3717]=78948.599726; y[3717]=1.309724e-06;
+x[3718]=78972.999726; y[3718]=1.309069e-06;
+x[3719]=78997.399725; y[3719]=1.308414e-06;
+x[3720]=79021.799725; y[3720]=1.307759e-06;
+x[3721]=79046.199725; y[3721]=1.307105e-06;
+x[3722]=79070.599724; y[3722]=1.306452e-06;
+x[3723]=79094.999724; y[3723]=1.305798e-06;
+x[3724]=79119.399723; y[3724]=1.305145e-06;
+x[3725]=79143.799723; y[3725]=1.304492e-06;
+x[3726]=79168.199723; y[3726]=1.303840e-06;
+x[3727]=79192.599722; y[3727]=1.303187e-06;
+x[3728]=79216.999722; y[3728]=1.302535e-06;
+x[3729]=79241.399722; y[3729]=1.301884e-06;
+x[3730]=79265.799721; y[3730]=1.301233e-06;
+x[3731]=79290.199721; y[3731]=1.300582e-06;
+x[3732]=79314.599720; y[3732]=1.299931e-06;
+x[3733]=79338.999720; y[3733]=1.299281e-06;
+x[3734]=79363.399720; y[3734]=1.298631e-06;
+x[3735]=79387.799719; y[3735]=1.297982e-06;
+x[3736]=79412.199719; y[3736]=1.297332e-06;
+x[3737]=79436.599718; y[3737]=1.296683e-06;
+x[3738]=79460.999718; y[3738]=1.296035e-06;
+x[3739]=79485.399718; y[3739]=1.295387e-06;
+x[3740]=79509.799717; y[3740]=1.294739e-06;
+x[3741]=79534.199717; y[3741]=1.294091e-06;
+x[3742]=79558.599717; y[3742]=1.293444e-06;
+x[3743]=79582.999716; y[3743]=1.292797e-06;
+x[3744]=79607.399716; y[3744]=1.292150e-06;
+x[3745]=79631.799715; y[3745]=1.291504e-06;
+x[3746]=79656.199715; y[3746]=1.290858e-06;
+x[3747]=79680.599715; y[3747]=1.290212e-06;
+x[3748]=79704.999714; y[3748]=1.289567e-06;
+x[3749]=79729.399714; y[3749]=1.288922e-06;
+x[3750]=79753.799714; y[3750]=1.288277e-06;
+x[3751]=79778.199713; y[3751]=1.287632e-06;
+x[3752]=79802.599713; y[3752]=1.286988e-06;
+x[3753]=79826.999712; y[3753]=1.286345e-06;
+x[3754]=79851.399712; y[3754]=1.285701e-06;
+x[3755]=79875.799712; y[3755]=1.285058e-06;
+x[3756]=79900.199711; y[3756]=1.284415e-06;
+x[3757]=79924.599711; y[3757]=1.283773e-06;
+x[3758]=79948.999710; y[3758]=1.283131e-06;
+x[3759]=79973.399710; y[3759]=1.282489e-06;
+x[3760]=79997.799710; y[3760]=1.281847e-06;
+x[3761]=80022.199709; y[3761]=1.281206e-06;
+x[3762]=80046.599709; y[3762]=1.280565e-06;
+x[3763]=80070.999709; y[3763]=1.279925e-06;
+x[3764]=80095.399708; y[3764]=1.279285e-06;
+x[3765]=80119.799708; y[3765]=1.278645e-06;
+x[3766]=80144.199707; y[3766]=1.278005e-06;
+x[3767]=80168.599707; y[3767]=1.277366e-06;
+x[3768]=80192.999707; y[3768]=1.276727e-06;
+x[3769]=80217.399706; y[3769]=1.276088e-06;
+x[3770]=80241.799706; y[3770]=1.275450e-06;
+x[3771]=80266.199706; y[3771]=1.274812e-06;
+x[3772]=80290.599705; y[3772]=1.274174e-06;
+x[3773]=80314.999705; y[3773]=1.273537e-06;
+x[3774]=80339.399704; y[3774]=1.272900e-06;
+x[3775]=80363.799704; y[3775]=1.272263e-06;
+x[3776]=80388.199704; y[3776]=1.271627e-06;
+x[3777]=80412.599703; y[3777]=1.270991e-06;
+x[3778]=80436.999703; y[3778]=1.270355e-06;
+x[3779]=80461.399702; y[3779]=1.269720e-06;
+x[3780]=80485.799702; y[3780]=1.269084e-06;
+x[3781]=80510.199702; y[3781]=1.268450e-06;
+x[3782]=80534.599701; y[3782]=1.267815e-06;
+x[3783]=80558.999701; y[3783]=1.267181e-06;
+x[3784]=80583.399701; y[3784]=1.266547e-06;
+x[3785]=80607.799700; y[3785]=1.265914e-06;
+x[3786]=80632.199700; y[3786]=1.265280e-06;
+x[3787]=80656.599699; y[3787]=1.264647e-06;
+x[3788]=80680.999699; y[3788]=1.264015e-06;
+x[3789]=80705.399699; y[3789]=1.263383e-06;
+x[3790]=80729.799698; y[3790]=1.262751e-06;
+x[3791]=80754.199698; y[3791]=1.262119e-06;
+x[3792]=80778.599697; y[3792]=1.261488e-06;
+x[3793]=80802.999697; y[3793]=1.260857e-06;
+x[3794]=80827.399697; y[3794]=1.260226e-06;
+x[3795]=80851.799696; y[3795]=1.259596e-06;
+x[3796]=80876.199696; y[3796]=1.258966e-06;
+x[3797]=80900.599696; y[3797]=1.258336e-06;
+x[3798]=80924.999695; y[3798]=1.257706e-06;
+x[3799]=80949.399695; y[3799]=1.257077e-06;
+x[3800]=80973.799694; y[3800]=1.256449e-06;
+x[3801]=80998.199694; y[3801]=1.255820e-06;
+x[3802]=81022.599694; y[3802]=1.255192e-06;
+x[3803]=81046.999693; y[3803]=1.254564e-06;
+x[3804]=81071.399693; y[3804]=1.253937e-06;
+x[3805]=81095.799693; y[3805]=1.253309e-06;
+x[3806]=81120.199692; y[3806]=1.252682e-06;
+x[3807]=81144.599692; y[3807]=1.252056e-06;
+x[3808]=81168.999691; y[3808]=1.251430e-06;
+x[3809]=81193.399691; y[3809]=1.250804e-06;
+x[3810]=81217.799691; y[3810]=1.250178e-06;
+x[3811]=81242.199690; y[3811]=1.249553e-06;
+x[3812]=81266.599690; y[3812]=1.248928e-06;
+x[3813]=81290.999689; y[3813]=1.248303e-06;
+x[3814]=81315.399689; y[3814]=1.247678e-06;
+x[3815]=81339.799689; y[3815]=1.247054e-06;
+x[3816]=81364.199688; y[3816]=1.246431e-06;
+x[3817]=81388.599688; y[3817]=1.245807e-06;
+x[3818]=81412.999688; y[3818]=1.245184e-06;
+x[3819]=81437.399687; y[3819]=1.244561e-06;
+x[3820]=81461.799687; y[3820]=1.243939e-06;
+x[3821]=81486.199686; y[3821]=1.243316e-06;
+x[3822]=81510.599686; y[3822]=1.242694e-06;
+x[3823]=81534.999686; y[3823]=1.242073e-06;
+x[3824]=81559.399685; y[3824]=1.241452e-06;
+x[3825]=81583.799685; y[3825]=1.240831e-06;
+x[3826]=81608.199685; y[3826]=1.240210e-06;
+x[3827]=81632.599684; y[3827]=1.239590e-06;
+x[3828]=81656.999684; y[3828]=1.238970e-06;
+x[3829]=81681.399683; y[3829]=1.238350e-06;
+x[3830]=81705.799683; y[3830]=1.237730e-06;
+x[3831]=81730.199683; y[3831]=1.237111e-06;
+x[3832]=81754.599682; y[3832]=1.236492e-06;
+x[3833]=81778.999682; y[3833]=1.235874e-06;
+x[3834]=81803.399681; y[3834]=1.235256e-06;
+x[3835]=81827.799681; y[3835]=1.234638e-06;
+x[3836]=81852.199681; y[3836]=1.234020e-06;
+x[3837]=81876.599680; y[3837]=1.233403e-06;
+x[3838]=81900.999680; y[3838]=1.232786e-06;
+x[3839]=81925.399680; y[3839]=1.232169e-06;
+x[3840]=81949.799679; y[3840]=1.231553e-06;
+x[3841]=81974.199679; y[3841]=1.230937e-06;
+x[3842]=81998.599678; y[3842]=1.230321e-06;
+x[3843]=82022.999678; y[3843]=1.229706e-06;
+x[3844]=82047.399678; y[3844]=1.229091e-06;
+x[3845]=82071.799677; y[3845]=1.228476e-06;
+x[3846]=82096.199677; y[3846]=1.227862e-06;
+x[3847]=82120.599677; y[3847]=1.227247e-06;
+x[3848]=82144.999676; y[3848]=1.226634e-06;
+x[3849]=82169.399676; y[3849]=1.226020e-06;
+x[3850]=82193.799675; y[3850]=1.225407e-06;
+x[3851]=82218.199675; y[3851]=1.224794e-06;
+x[3852]=82242.599675; y[3852]=1.224181e-06;
+x[3853]=82266.999674; y[3853]=1.223569e-06;
+x[3854]=82291.399674; y[3854]=1.222957e-06;
+x[3855]=82315.799673; y[3855]=1.222345e-06;
+x[3856]=82340.199673; y[3856]=1.221734e-06;
+x[3857]=82364.599673; y[3857]=1.221122e-06;
+x[3858]=82388.999672; y[3858]=1.220512e-06;
+x[3859]=82413.399672; y[3859]=1.219901e-06;
+x[3860]=82437.799672; y[3860]=1.219291e-06;
+x[3861]=82462.199671; y[3861]=1.218681e-06;
+x[3862]=82486.599671; y[3862]=1.218071e-06;
+x[3863]=82510.999670; y[3863]=1.217462e-06;
+x[3864]=82535.399670; y[3864]=1.216853e-06;
+x[3865]=82559.799670; y[3865]=1.216245e-06;
+x[3866]=82584.199669; y[3866]=1.215636e-06;
+x[3867]=82608.599669; y[3867]=1.215028e-06;
+x[3868]=82632.999669; y[3868]=1.214420e-06;
+x[3869]=82657.399668; y[3869]=1.213813e-06;
+x[3870]=82681.799668; y[3870]=1.213206e-06;
+x[3871]=82706.199667; y[3871]=1.212599e-06;
+x[3872]=82730.599667; y[3872]=1.211992e-06;
+x[3873]=82754.999667; y[3873]=1.211386e-06;
+x[3874]=82779.399666; y[3874]=1.210780e-06;
+x[3875]=82803.799666; y[3875]=1.210175e-06;
+x[3876]=82828.199665; y[3876]=1.209569e-06;
+x[3877]=82852.599665; y[3877]=1.208964e-06;
+x[3878]=82876.999665; y[3878]=1.208359e-06;
+x[3879]=82901.399664; y[3879]=1.207755e-06;
+x[3880]=82925.799664; y[3880]=1.207151e-06;
+x[3881]=82950.199664; y[3881]=1.206547e-06;
+x[3882]=82974.599663; y[3882]=1.205944e-06;
+x[3883]=82998.999663; y[3883]=1.205340e-06;
+x[3884]=83023.399662; y[3884]=1.204737e-06;
+x[3885]=83047.799662; y[3885]=1.204135e-06;
+x[3886]=83072.199662; y[3886]=1.203533e-06;
+x[3887]=83096.599661; y[3887]=1.202931e-06;
+x[3888]=83120.999661; y[3888]=1.202329e-06;
+x[3889]=83145.399660; y[3889]=1.201727e-06;
+x[3890]=83169.799660; y[3890]=1.201126e-06;
+x[3891]=83194.199660; y[3891]=1.200525e-06;
+x[3892]=83218.599659; y[3892]=1.199925e-06;
+x[3893]=83242.999659; y[3893]=1.199325e-06;
+x[3894]=83267.399659; y[3894]=1.198725e-06;
+x[3895]=83291.799658; y[3895]=1.198125e-06;
+x[3896]=83316.199658; y[3896]=1.197526e-06;
+x[3897]=83340.599657; y[3897]=1.196927e-06;
+x[3898]=83364.999657; y[3898]=1.196328e-06;
+x[3899]=83389.399657; y[3899]=1.195730e-06;
+x[3900]=83413.799656; y[3900]=1.195132e-06;
+x[3901]=83438.199656; y[3901]=1.194534e-06;
+x[3902]=83462.599656; y[3902]=1.193936e-06;
+x[3903]=83486.999655; y[3903]=1.193339e-06;
+x[3904]=83511.399655; y[3904]=1.192742e-06;
+x[3905]=83535.799654; y[3905]=1.192146e-06;
+x[3906]=83560.199654; y[3906]=1.191549e-06;
+x[3907]=83584.599654; y[3907]=1.190953e-06;
+x[3908]=83608.999653; y[3908]=1.190358e-06;
+x[3909]=83633.399653; y[3909]=1.189762e-06;
+x[3910]=83657.799652; y[3910]=1.189167e-06;
+x[3911]=83682.199652; y[3911]=1.188572e-06;
+x[3912]=83706.599652; y[3912]=1.187978e-06;
+x[3913]=83730.999651; y[3913]=1.187384e-06;
+x[3914]=83755.399651; y[3914]=1.186790e-06;
+x[3915]=83779.799651; y[3915]=1.186196e-06;
+x[3916]=83804.199650; y[3916]=1.185603e-06;
+x[3917]=83828.599650; y[3917]=1.185010e-06;
+x[3918]=83852.999649; y[3918]=1.184417e-06;
+x[3919]=83877.399649; y[3919]=1.183824e-06;
+x[3920]=83901.799649; y[3920]=1.183232e-06;
+x[3921]=83926.199648; y[3921]=1.182640e-06;
+x[3922]=83950.599648; y[3922]=1.182049e-06;
+x[3923]=83974.999648; y[3923]=1.181458e-06;
+x[3924]=83999.399647; y[3924]=1.180867e-06;
+x[3925]=84023.799647; y[3925]=1.180276e-06;
+x[3926]=84048.199646; y[3926]=1.179686e-06;
+x[3927]=84072.599646; y[3927]=1.179095e-06;
+x[3928]=84096.999646; y[3928]=1.178506e-06;
+x[3929]=84121.399645; y[3929]=1.177916e-06;
+x[3930]=84145.799645; y[3930]=1.177327e-06;
+x[3931]=84170.199644; y[3931]=1.176738e-06;
+x[3932]=84194.599644; y[3932]=1.176149e-06;
+x[3933]=84218.999644; y[3933]=1.175561e-06;
+x[3934]=84243.399643; y[3934]=1.174973e-06;
+x[3935]=84267.799643; y[3935]=1.174385e-06;
+x[3936]=84292.199643; y[3936]=1.173798e-06;
+x[3937]=84316.599642; y[3937]=1.173211e-06;
+x[3938]=84340.999642; y[3938]=1.172624e-06;
+x[3939]=84365.399641; y[3939]=1.172037e-06;
+x[3940]=84389.799641; y[3940]=1.171451e-06;
+x[3941]=84414.199641; y[3941]=1.170865e-06;
+x[3942]=84438.599640; y[3942]=1.170280e-06;
+x[3943]=84462.999640; y[3943]=1.169694e-06;
+x[3944]=84487.399640; y[3944]=1.169109e-06;
+x[3945]=84511.799639; y[3945]=1.168524e-06;
+x[3946]=84536.199639; y[3946]=1.167940e-06;
+x[3947]=84560.599638; y[3947]=1.167356e-06;
+x[3948]=84584.999638; y[3948]=1.166772e-06;
+x[3949]=84609.399638; y[3949]=1.166188e-06;
+x[3950]=84633.799637; y[3950]=1.165605e-06;
+x[3951]=84658.199637; y[3951]=1.165022e-06;
+x[3952]=84682.599636; y[3952]=1.164439e-06;
+x[3953]=84706.999636; y[3953]=1.163857e-06;
+x[3954]=84731.399636; y[3954]=1.163274e-06;
+x[3955]=84755.799635; y[3955]=1.162692e-06;
+x[3956]=84780.199635; y[3956]=1.162111e-06;
+x[3957]=84804.599635; y[3957]=1.161530e-06;
+x[3958]=84828.999634; y[3958]=1.160949e-06;
+x[3959]=84853.399634; y[3959]=1.160368e-06;
+x[3960]=84877.799633; y[3960]=1.159787e-06;
+x[3961]=84902.199633; y[3961]=1.159207e-06;
+x[3962]=84926.599633; y[3962]=1.158628e-06;
+x[3963]=84950.999632; y[3963]=1.158048e-06;
+x[3964]=84975.399632; y[3964]=1.157469e-06;
+x[3965]=84999.799632; y[3965]=1.156890e-06;
+x[3966]=85024.199631; y[3966]=1.156311e-06;
+x[3967]=85048.599631; y[3967]=1.155733e-06;
+x[3968]=85072.999630; y[3968]=1.155155e-06;
+x[3969]=85097.399630; y[3969]=1.154577e-06;
+x[3970]=85121.799630; y[3970]=1.153999e-06;
+x[3971]=85146.199629; y[3971]=1.153422e-06;
+x[3972]=85170.599629; y[3972]=1.152845e-06;
+x[3973]=85194.999628; y[3973]=1.152268e-06;
+x[3974]=85219.399628; y[3974]=1.151692e-06;
+x[3975]=85243.799628; y[3975]=1.151116e-06;
+x[3976]=85268.199627; y[3976]=1.150540e-06;
+x[3977]=85292.599627; y[3977]=1.149965e-06;
+x[3978]=85316.999627; y[3978]=1.149389e-06;
+x[3979]=85341.399626; y[3979]=1.148815e-06;
+x[3980]=85365.799626; y[3980]=1.148240e-06;
+x[3981]=85390.199625; y[3981]=1.147666e-06;
+x[3982]=85414.599625; y[3982]=1.147091e-06;
+x[3983]=85438.999625; y[3983]=1.146518e-06;
+x[3984]=85463.399624; y[3984]=1.145944e-06;
+x[3985]=85487.799624; y[3985]=1.145371e-06;
+x[3986]=85512.199623; y[3986]=1.144798e-06;
+x[3987]=85536.599623; y[3987]=1.144225e-06;
+x[3988]=85560.999623; y[3988]=1.143653e-06;
+x[3989]=85585.399622; y[3989]=1.143081e-06;
+x[3990]=85609.799622; y[3990]=1.142509e-06;
+x[3991]=85634.199622; y[3991]=1.141938e-06;
+x[3992]=85658.599621; y[3992]=1.141367e-06;
+x[3993]=85682.999621; y[3993]=1.140796e-06;
+x[3994]=85707.399620; y[3994]=1.140225e-06;
+x[3995]=85731.799620; y[3995]=1.139655e-06;
+x[3996]=85756.199620; y[3996]=1.139085e-06;
+x[3997]=85780.599619; y[3997]=1.138515e-06;
+x[3998]=85804.999619; y[3998]=1.137945e-06;
+x[3999]=85829.399619; y[3999]=1.137376e-06;
+x[4000]=85853.799618; y[4000]=1.136807e-06;
+x[4001]=85878.199618; y[4001]=1.136239e-06;
+x[4002]=85902.599617; y[4002]=1.135670e-06;
+x[4003]=85926.999617; y[4003]=1.135102e-06;
+x[4004]=85951.399617; y[4004]=1.134534e-06;
+x[4005]=85975.799616; y[4005]=1.133967e-06;
+x[4006]=86000.199616; y[4006]=1.133400e-06;
+x[4007]=86024.599615; y[4007]=1.132833e-06;
+x[4008]=86048.999615; y[4008]=1.132266e-06;
+x[4009]=86073.399615; y[4009]=1.131700e-06;
+x[4010]=86097.799614; y[4010]=1.131134e-06;
+x[4011]=86122.199614; y[4011]=1.130568e-06;
+x[4012]=86146.599614; y[4012]=1.130002e-06;
+x[4013]=86170.999613; y[4013]=1.129437e-06;
+x[4014]=86195.399613; y[4014]=1.128872e-06;
+x[4015]=86219.799612; y[4015]=1.128308e-06;
+x[4016]=86244.199612; y[4016]=1.127743e-06;
+x[4017]=86268.599612; y[4017]=1.127179e-06;
+x[4018]=86292.999611; y[4018]=1.126615e-06;
+x[4019]=86317.399611; y[4019]=1.126052e-06;
+x[4020]=86341.799611; y[4020]=1.125488e-06;
+x[4021]=86366.199610; y[4021]=1.124926e-06;
+x[4022]=86390.599610; y[4022]=1.124363e-06;
+x[4023]=86414.999609; y[4023]=1.123800e-06;
+x[4024]=86439.399609; y[4024]=1.123238e-06;
+x[4025]=86463.799609; y[4025]=1.122676e-06;
+x[4026]=86488.199608; y[4026]=1.122115e-06;
+x[4027]=86512.599608; y[4027]=1.121554e-06;
+x[4028]=86536.999607; y[4028]=1.120993e-06;
+x[4029]=86561.399607; y[4029]=1.120432e-06;
+x[4030]=86585.799607; y[4030]=1.119871e-06;
+x[4031]=86610.199606; y[4031]=1.119311e-06;
+x[4032]=86634.599606; y[4032]=1.118751e-06;
+x[4033]=86658.999606; y[4033]=1.118192e-06;
+x[4034]=86683.399605; y[4034]=1.117632e-06;
+x[4035]=86707.799605; y[4035]=1.117073e-06;
+x[4036]=86732.199604; y[4036]=1.116515e-06;
+x[4037]=86756.599604; y[4037]=1.115956e-06;
+x[4038]=86780.999604; y[4038]=1.115398e-06;
+x[4039]=86805.399603; y[4039]=1.114840e-06;
+x[4040]=86829.799603; y[4040]=1.114282e-06;
+x[4041]=86854.199603; y[4041]=1.113725e-06;
+x[4042]=86878.599602; y[4042]=1.113168e-06;
+x[4043]=86902.999602; y[4043]=1.112611e-06;
+x[4044]=86927.399601; y[4044]=1.112055e-06;
+x[4045]=86951.799601; y[4045]=1.111498e-06;
+x[4046]=86976.199601; y[4046]=1.110942e-06;
+x[4047]=87000.599600; y[4047]=1.110387e-06;
+x[4048]=87024.999600; y[4048]=1.109831e-06;
+x[4049]=87049.399599; y[4049]=1.109276e-06;
+x[4050]=87073.799599; y[4050]=1.108721e-06;
+x[4051]=87098.199599; y[4051]=1.108167e-06;
+x[4052]=87122.599598; y[4052]=1.107612e-06;
+x[4053]=87146.999598; y[4053]=1.107058e-06;
+x[4054]=87171.399598; y[4054]=1.106505e-06;
+x[4055]=87195.799597; y[4055]=1.105951e-06;
+x[4056]=87220.199597; y[4056]=1.105398e-06;
+x[4057]=87244.599596; y[4057]=1.104845e-06;
+x[4058]=87268.999596; y[4058]=1.104292e-06;
+x[4059]=87293.399596; y[4059]=1.103740e-06;
+x[4060]=87317.799595; y[4060]=1.103188e-06;
+x[4061]=87342.199595; y[4061]=1.102636e-06;
+x[4062]=87366.599594; y[4062]=1.102085e-06;
+x[4063]=87390.999594; y[4063]=1.101533e-06;
+x[4064]=87415.399594; y[4064]=1.100982e-06;
+x[4065]=87439.799593; y[4065]=1.100432e-06;
+x[4066]=87464.199593; y[4066]=1.099881e-06;
+x[4067]=87488.599593; y[4067]=1.099331e-06;
+x[4068]=87512.999592; y[4068]=1.098781e-06;
+x[4069]=87537.399592; y[4069]=1.098231e-06;
+x[4070]=87561.799591; y[4070]=1.097682e-06;
+x[4071]=87586.199591; y[4071]=1.097133e-06;
+x[4072]=87610.599591; y[4072]=1.096584e-06;
+x[4073]=87634.999590; y[4073]=1.096036e-06;
+x[4074]=87659.399590; y[4074]=1.095487e-06;
+x[4075]=87683.799590; y[4075]=1.094940e-06;
+x[4076]=87708.199589; y[4076]=1.094392e-06;
+x[4077]=87732.599589; y[4077]=1.093844e-06;
+x[4078]=87756.999588; y[4078]=1.093297e-06;
+x[4079]=87781.399588; y[4079]=1.092750e-06;
+x[4080]=87805.799588; y[4080]=1.092204e-06;
+x[4081]=87830.199587; y[4081]=1.091657e-06;
+x[4082]=87854.599587; y[4082]=1.091111e-06;
+x[4083]=87878.999586; y[4083]=1.090566e-06;
+x[4084]=87903.399586; y[4084]=1.090020e-06;
+x[4085]=87927.799586; y[4085]=1.089475e-06;
+x[4086]=87952.199585; y[4086]=1.088930e-06;
+x[4087]=87976.599585; y[4087]=1.088385e-06;
+x[4088]=88000.999585; y[4088]=1.087841e-06;
+x[4089]=88025.399584; y[4089]=1.087297e-06;
+x[4090]=88049.799584; y[4090]=1.086753e-06;
+x[4091]=88074.199583; y[4091]=1.086209e-06;
+x[4092]=88098.599583; y[4092]=1.085666e-06;
+x[4093]=88122.999583; y[4093]=1.085123e-06;
+x[4094]=88147.399582; y[4094]=1.084580e-06;
+x[4095]=88171.799582; y[4095]=1.084038e-06;
+x[4096]=88196.199582; y[4096]=1.083495e-06;
+x[4097]=88220.599581; y[4097]=1.082953e-06;
+x[4098]=88244.999581; y[4098]=1.082412e-06;
+x[4099]=88269.399580; y[4099]=1.081870e-06;
+x[4100]=88293.799580; y[4100]=1.081329e-06;
+x[4101]=88318.199580; y[4101]=1.080788e-06;
+x[4102]=88342.599579; y[4102]=1.080248e-06;
+x[4103]=88366.999579; y[4103]=1.079707e-06;
+x[4104]=88391.399578; y[4104]=1.079167e-06;
+x[4105]=88415.799578; y[4105]=1.078627e-06;
+x[4106]=88440.199578; y[4106]=1.078088e-06;
+x[4107]=88464.599577; y[4107]=1.077549e-06;
+x[4108]=88488.999577; y[4108]=1.077010e-06;
+x[4109]=88513.399577; y[4109]=1.076471e-06;
+x[4110]=88537.799576; y[4110]=1.075932e-06;
+x[4111]=88562.199576; y[4111]=1.075394e-06;
+x[4112]=88586.599575; y[4112]=1.074856e-06;
+x[4113]=88610.999575; y[4113]=1.074319e-06;
+x[4114]=88635.399575; y[4114]=1.073781e-06;
+x[4115]=88659.799574; y[4115]=1.073244e-06;
+x[4116]=88684.199574; y[4116]=1.072707e-06;
+x[4117]=88708.599574; y[4117]=1.072171e-06;
+x[4118]=88732.999573; y[4118]=1.071635e-06;
+x[4119]=88757.399573; y[4119]=1.071098e-06;
+x[4120]=88781.799572; y[4120]=1.070563e-06;
+x[4121]=88806.199572; y[4121]=1.070027e-06;
+x[4122]=88830.599572; y[4122]=1.069492e-06;
+x[4123]=88854.999571; y[4123]=1.068957e-06;
+x[4124]=88879.399571; y[4124]=1.068422e-06;
+x[4125]=88903.799570; y[4125]=1.067888e-06;
+x[4126]=88928.199570; y[4126]=1.067354e-06;
+x[4127]=88952.599570; y[4127]=1.066820e-06;
+x[4128]=88976.999569; y[4128]=1.066286e-06;
+x[4129]=89001.399569; y[4129]=1.065753e-06;
+x[4130]=89025.799569; y[4130]=1.065220e-06;
+x[4131]=89050.199568; y[4131]=1.064687e-06;
+x[4132]=89074.599568; y[4132]=1.064154e-06;
+x[4133]=89098.999567; y[4133]=1.063622e-06;
+x[4134]=89123.399567; y[4134]=1.063090e-06;
+x[4135]=89147.799567; y[4135]=1.062558e-06;
+x[4136]=89172.199566; y[4136]=1.062027e-06;
+x[4137]=89196.599566; y[4137]=1.061496e-06;
+x[4138]=89220.999566; y[4138]=1.060965e-06;
+x[4139]=89245.399565; y[4139]=1.060434e-06;
+x[4140]=89269.799565; y[4140]=1.059903e-06;
+x[4141]=89294.199564; y[4141]=1.059373e-06;
+x[4142]=89318.599564; y[4142]=1.058843e-06;
+x[4143]=89342.999564; y[4143]=1.058314e-06;
+x[4144]=89367.399563; y[4144]=1.057784e-06;
+x[4145]=89391.799563; y[4145]=1.057255e-06;
+x[4146]=89416.199562; y[4146]=1.056726e-06;
+x[4147]=89440.599562; y[4147]=1.056198e-06;
+x[4148]=89464.999562; y[4148]=1.055670e-06;
+x[4149]=89489.399561; y[4149]=1.055142e-06;
+x[4150]=89513.799561; y[4150]=1.054614e-06;
+x[4151]=89538.199561; y[4151]=1.054086e-06;
+x[4152]=89562.599560; y[4152]=1.053559e-06;
+x[4153]=89586.999560; y[4153]=1.053032e-06;
+x[4154]=89611.399559; y[4154]=1.052505e-06;
+x[4155]=89635.799559; y[4155]=1.051979e-06;
+x[4156]=89660.199559; y[4156]=1.051453e-06;
+x[4157]=89684.599558; y[4157]=1.050927e-06;
+x[4158]=89708.999558; y[4158]=1.050401e-06;
+x[4159]=89733.399557; y[4159]=1.049876e-06;
+x[4160]=89757.799557; y[4160]=1.049350e-06;
+x[4161]=89782.199557; y[4161]=1.048826e-06;
+x[4162]=89806.599556; y[4162]=1.048301e-06;
+x[4163]=89830.999556; y[4163]=1.047777e-06;
+x[4164]=89855.399556; y[4164]=1.047252e-06;
+x[4165]=89879.799555; y[4165]=1.046729e-06;
+x[4166]=89904.199555; y[4166]=1.046205e-06;
+x[4167]=89928.599554; y[4167]=1.045682e-06;
+x[4168]=89952.999554; y[4168]=1.045159e-06;
+x[4169]=89977.399554; y[4169]=1.044636e-06;
+x[4170]=90001.799553; y[4170]=1.044113e-06;
+x[4171]=90026.199553; y[4171]=1.043591e-06;
+x[4172]=90050.599553; y[4172]=1.043069e-06;
+x[4173]=90074.999552; y[4173]=1.042547e-06;
+x[4174]=90099.399552; y[4174]=1.042026e-06;
+x[4175]=90123.799551; y[4175]=1.041505e-06;
+x[4176]=90148.199551; y[4176]=1.040984e-06;
+x[4177]=90172.599551; y[4177]=1.040463e-06;
+x[4178]=90196.999550; y[4178]=1.039943e-06;
+x[4179]=90221.399550; y[4179]=1.039422e-06;
+x[4180]=90245.799549; y[4180]=1.038902e-06;
+x[4181]=90270.199549; y[4181]=1.038383e-06;
+x[4182]=90294.599549; y[4182]=1.037863e-06;
+x[4183]=90318.999548; y[4183]=1.037344e-06;
+x[4184]=90343.399548; y[4184]=1.036825e-06;
+x[4185]=90367.799548; y[4185]=1.036307e-06;
+x[4186]=90392.199547; y[4186]=1.035788e-06;
+x[4187]=90416.599547; y[4187]=1.035270e-06;
+x[4188]=90440.999546; y[4188]=1.034752e-06;
+x[4189]=90465.399546; y[4189]=1.034235e-06;
+x[4190]=90489.799546; y[4190]=1.033717e-06;
+x[4191]=90514.199545; y[4191]=1.033200e-06;
+x[4192]=90538.599545; y[4192]=1.032684e-06;
+x[4193]=90562.999545; y[4193]=1.032167e-06;
+x[4194]=90587.399544; y[4194]=1.031651e-06;
+x[4195]=90611.799544; y[4195]=1.031135e-06;
+x[4196]=90636.199543; y[4196]=1.030619e-06;
+x[4197]=90660.599543; y[4197]=1.030103e-06;
+x[4198]=90684.999543; y[4198]=1.029588e-06;
+x[4199]=90709.399542; y[4199]=1.029073e-06;
+x[4200]=90733.799542; y[4200]=1.028558e-06;
+x[4201]=90758.199541; y[4201]=1.028044e-06;
+x[4202]=90782.599541; y[4202]=1.027530e-06;
+x[4203]=90806.999541; y[4203]=1.027016e-06;
+x[4204]=90831.399540; y[4204]=1.026502e-06;
+x[4205]=90855.799540; y[4205]=1.025989e-06;
+x[4206]=90880.199540; y[4206]=1.025475e-06;
+x[4207]=90904.599539; y[4207]=1.024962e-06;
+x[4208]=90928.999539; y[4208]=1.024450e-06;
+x[4209]=90953.399538; y[4209]=1.023937e-06;
+x[4210]=90977.799538; y[4210]=1.023425e-06;
+x[4211]=91002.199538; y[4211]=1.022913e-06;
+x[4212]=91026.599537; y[4212]=1.022402e-06;
+x[4213]=91050.999537; y[4213]=1.021890e-06;
+x[4214]=91075.399537; y[4214]=1.021379e-06;
+x[4215]=91099.799536; y[4215]=1.020868e-06;
+x[4216]=91124.199536; y[4216]=1.020357e-06;
+x[4217]=91148.599535; y[4217]=1.019847e-06;
+x[4218]=91172.999535; y[4218]=1.019337e-06;
+x[4219]=91197.399535; y[4219]=1.018827e-06;
+x[4220]=91221.799534; y[4220]=1.018317e-06;
+x[4221]=91246.199534; y[4221]=1.017808e-06;
+x[4222]=91270.599533; y[4222]=1.017299e-06;
+x[4223]=91294.999533; y[4223]=1.016790e-06;
+x[4224]=91319.399533; y[4224]=1.016281e-06;
+x[4225]=91343.799532; y[4225]=1.015773e-06;
+x[4226]=91368.199532; y[4226]=1.015265e-06;
+x[4227]=91392.599532; y[4227]=1.014757e-06;
+x[4228]=91416.999531; y[4228]=1.014250e-06;
+x[4229]=91441.399531; y[4229]=1.013742e-06;
+x[4230]=91465.799530; y[4230]=1.013235e-06;
+x[4231]=91490.199530; y[4231]=1.012728e-06;
+x[4232]=91514.599530; y[4232]=1.012222e-06;
+x[4233]=91538.999529; y[4233]=1.011716e-06;
+x[4234]=91563.399529; y[4234]=1.011209e-06;
+x[4235]=91587.799529; y[4235]=1.010704e-06;
+x[4236]=91612.199528; y[4236]=1.010198e-06;
+x[4237]=91636.599528; y[4237]=1.009693e-06;
+x[4238]=91660.999527; y[4238]=1.009188e-06;
+x[4239]=91685.399527; y[4239]=1.008683e-06;
+x[4240]=91709.799527; y[4240]=1.008178e-06;
+x[4241]=91734.199526; y[4241]=1.007674e-06;
+x[4242]=91758.599526; y[4242]=1.007170e-06;
+x[4243]=91782.999525; y[4243]=1.006666e-06;
+x[4244]=91807.399525; y[4244]=1.006163e-06;
+x[4245]=91831.799525; y[4245]=1.005659e-06;
+x[4246]=91856.199524; y[4246]=1.005156e-06;
+x[4247]=91880.599524; y[4247]=1.004654e-06;
+x[4248]=91904.999524; y[4248]=1.004151e-06;
+x[4249]=91929.399523; y[4249]=1.003649e-06;
+x[4250]=91953.799523; y[4250]=1.003147e-06;
+x[4251]=91978.199522; y[4251]=1.002645e-06;
+x[4252]=92002.599522; y[4252]=1.002143e-06;
+x[4253]=92026.999522; y[4253]=1.001642e-06;
+x[4254]=92051.399521; y[4254]=1.001141e-06;
+x[4255]=92075.799521; y[4255]=1.000640e-06;
+x[4256]=92100.199520; y[4256]=1.000140e-06;
+x[4257]=92124.599520; y[4257]=9.996396e-07;
+x[4258]=92148.999520; y[4258]=9.991396e-07;
+x[4259]=92173.399519; y[4259]=9.986398e-07;
+x[4260]=92197.799519; y[4260]=9.981403e-07;
+x[4261]=92222.199519; y[4261]=9.976410e-07;
+x[4262]=92246.599518; y[4262]=9.971420e-07;
+x[4263]=92270.999518; y[4263]=9.966433e-07;
+x[4264]=92295.399517; y[4264]=9.961447e-07;
+x[4265]=92319.799517; y[4265]=9.956465e-07;
+x[4266]=92344.199517; y[4266]=9.951484e-07;
+x[4267]=92368.599516; y[4267]=9.946507e-07;
+x[4268]=92392.999516; y[4268]=9.941531e-07;
+x[4269]=92417.399516; y[4269]=9.936558e-07;
+x[4270]=92441.799515; y[4270]=9.931588e-07;
+x[4271]=92466.199515; y[4271]=9.926620e-07;
+x[4272]=92490.599514; y[4272]=9.921655e-07;
+x[4273]=92514.999514; y[4273]=9.916692e-07;
+x[4274]=92539.399514; y[4274]=9.911732e-07;
+x[4275]=92563.799513; y[4275]=9.906774e-07;
+x[4276]=92588.199513; y[4276]=9.901819e-07;
+x[4277]=92612.599512; y[4277]=9.896866e-07;
+x[4278]=92636.999512; y[4278]=9.891915e-07;
+x[4279]=92661.399512; y[4279]=9.886967e-07;
+x[4280]=92685.799511; y[4280]=9.882022e-07;
+x[4281]=92710.199511; y[4281]=9.877079e-07;
+x[4282]=92734.599511; y[4282]=9.872138e-07;
+x[4283]=92758.999510; y[4283]=9.867200e-07;
+x[4284]=92783.399510; y[4284]=9.862265e-07;
+x[4285]=92807.799509; y[4285]=9.857332e-07;
+x[4286]=92832.199509; y[4286]=9.852401e-07;
+x[4287]=92856.599509; y[4287]=9.847473e-07;
+x[4288]=92880.999508; y[4288]=9.842547e-07;
+x[4289]=92905.399508; y[4289]=9.837624e-07;
+x[4290]=92929.799508; y[4290]=9.832703e-07;
+x[4291]=92954.199507; y[4291]=9.827785e-07;
+x[4292]=92978.599507; y[4292]=9.822869e-07;
+x[4293]=93002.999506; y[4293]=9.817955e-07;
+x[4294]=93027.399506; y[4294]=9.813044e-07;
+x[4295]=93051.799506; y[4295]=9.808136e-07;
+x[4296]=93076.199505; y[4296]=9.803230e-07;
+x[4297]=93100.599505; y[4297]=9.798326e-07;
+x[4298]=93124.999504; y[4298]=9.793425e-07;
+x[4299]=93149.399504; y[4299]=9.788526e-07;
+x[4300]=93173.799504; y[4300]=9.783630e-07;
+x[4301]=93198.199503; y[4301]=9.778736e-07;
+x[4302]=93222.599503; y[4302]=9.773845e-07;
+x[4303]=93246.999503; y[4303]=9.768956e-07;
+x[4304]=93271.399502; y[4304]=9.764070e-07;
+x[4305]=93295.799502; y[4305]=9.759186e-07;
+x[4306]=93320.199501; y[4306]=9.754304e-07;
+x[4307]=93344.599501; y[4307]=9.749425e-07;
+x[4308]=93368.999501; y[4308]=9.744548e-07;
+x[4309]=93393.399500; y[4309]=9.739674e-07;
+x[4310]=93417.799500; y[4310]=9.734802e-07;
+x[4311]=93442.199500; y[4311]=9.729933e-07;
+x[4312]=93466.599499; y[4312]=9.725066e-07;
+x[4313]=93490.999499; y[4313]=9.720201e-07;
+x[4314]=93515.399498; y[4314]=9.715339e-07;
+x[4315]=93539.799498; y[4315]=9.710480e-07;
+x[4316]=93564.199498; y[4316]=9.705622e-07;
+x[4317]=93588.599497; y[4317]=9.700768e-07;
+x[4318]=93612.999497; y[4318]=9.695915e-07;
+x[4319]=93637.399496; y[4319]=9.691065e-07;
+x[4320]=93661.799496; y[4320]=9.686218e-07;
+x[4321]=93686.199496; y[4321]=9.681373e-07;
+x[4322]=93710.599495; y[4322]=9.676530e-07;
+x[4323]=93734.999495; y[4323]=9.671690e-07;
+x[4324]=93759.399495; y[4324]=9.666852e-07;
+x[4325]=93783.799494; y[4325]=9.662017e-07;
+x[4326]=93808.199494; y[4326]=9.657184e-07;
+x[4327]=93832.599493; y[4327]=9.652353e-07;
+x[4328]=93856.999493; y[4328]=9.647525e-07;
+x[4329]=93881.399493; y[4329]=9.642699e-07;
+x[4330]=93905.799492; y[4330]=9.637876e-07;
+x[4331]=93930.199492; y[4331]=9.633055e-07;
+x[4332]=93954.599492; y[4332]=9.628237e-07;
+x[4333]=93978.999491; y[4333]=9.623421e-07;
+x[4334]=94003.399491; y[4334]=9.618607e-07;
+x[4335]=94027.799490; y[4335]=9.613796e-07;
+x[4336]=94052.199490; y[4336]=9.608987e-07;
+x[4337]=94076.599490; y[4337]=9.604181e-07;
+x[4338]=94100.999489; y[4338]=9.599376e-07;
+x[4339]=94125.399489; y[4339]=9.594575e-07;
+x[4340]=94149.799488; y[4340]=9.589776e-07;
+x[4341]=94174.199488; y[4341]=9.584979e-07;
+x[4342]=94198.599488; y[4342]=9.580184e-07;
+x[4343]=94222.999487; y[4343]=9.575392e-07;
+x[4344]=94247.399487; y[4344]=9.570603e-07;
+x[4345]=94271.799487; y[4345]=9.565815e-07;
+x[4346]=94296.199486; y[4346]=9.561031e-07;
+x[4347]=94320.599486; y[4347]=9.556248e-07;
+x[4348]=94344.999485; y[4348]=9.551468e-07;
+x[4349]=94369.399485; y[4349]=9.546690e-07;
+x[4350]=94393.799485; y[4350]=9.541915e-07;
+x[4351]=94418.199484; y[4351]=9.537142e-07;
+x[4352]=94442.599484; y[4352]=9.532372e-07;
+x[4353]=94466.999483; y[4353]=9.527604e-07;
+x[4354]=94491.399483; y[4354]=9.522838e-07;
+x[4355]=94515.799483; y[4355]=9.518075e-07;
+x[4356]=94540.199482; y[4356]=9.513314e-07;
+x[4357]=94564.599482; y[4357]=9.508555e-07;
+x[4358]=94588.999482; y[4358]=9.503799e-07;
+x[4359]=94613.399481; y[4359]=9.499045e-07;
+x[4360]=94637.799481; y[4360]=9.494294e-07;
+x[4361]=94662.199480; y[4361]=9.489545e-07;
+x[4362]=94686.599480; y[4362]=9.484798e-07;
+x[4363]=94710.999480; y[4363]=9.480054e-07;
+x[4364]=94735.399479; y[4364]=9.475312e-07;
+x[4365]=94759.799479; y[4365]=9.470572e-07;
+x[4366]=94784.199479; y[4366]=9.465835e-07;
+x[4367]=94808.599478; y[4367]=9.461100e-07;
+x[4368]=94832.999478; y[4368]=9.456368e-07;
+x[4369]=94857.399477; y[4369]=9.451637e-07;
+x[4370]=94881.799477; y[4370]=9.446910e-07;
+x[4371]=94906.199477; y[4371]=9.442184e-07;
+x[4372]=94930.599476; y[4372]=9.437461e-07;
+x[4373]=94954.999476; y[4373]=9.432741e-07;
+x[4374]=94979.399475; y[4374]=9.428022e-07;
+x[4375]=95003.799475; y[4375]=9.423307e-07;
+x[4376]=95028.199475; y[4376]=9.418593e-07;
+x[4377]=95052.599474; y[4377]=9.413882e-07;
+x[4378]=95076.999474; y[4378]=9.409173e-07;
+x[4379]=95101.399474; y[4379]=9.404466e-07;
+x[4380]=95125.799473; y[4380]=9.399762e-07;
+x[4381]=95150.199473; y[4381]=9.395061e-07;
+x[4382]=95174.599472; y[4382]=9.390361e-07;
+x[4383]=95198.999472; y[4383]=9.385664e-07;
+x[4384]=95223.399472; y[4384]=9.380969e-07;
+x[4385]=95247.799471; y[4385]=9.376277e-07;
+x[4386]=95272.199471; y[4386]=9.371587e-07;
+x[4387]=95296.599471; y[4387]=9.366899e-07;
+x[4388]=95320.999470; y[4388]=9.362214e-07;
+x[4389]=95345.399470; y[4389]=9.357531e-07;
+x[4390]=95369.799469; y[4390]=9.352850e-07;
+x[4391]=95394.199469; y[4391]=9.348172e-07;
+x[4392]=95418.599469; y[4392]=9.343496e-07;
+x[4393]=95442.999468; y[4393]=9.338822e-07;
+x[4394]=95467.399468; y[4394]=9.334151e-07;
+x[4395]=95491.799467; y[4395]=9.329482e-07;
+x[4396]=95516.199467; y[4396]=9.324815e-07;
+x[4397]=95540.599467; y[4397]=9.320151e-07;
+x[4398]=95564.999466; y[4398]=9.315489e-07;
+x[4399]=95589.399466; y[4399]=9.310829e-07;
+x[4400]=95613.799466; y[4400]=9.306172e-07;
+x[4401]=95638.199465; y[4401]=9.301517e-07;
+x[4402]=95662.599465; y[4402]=9.296865e-07;
+x[4403]=95686.999464; y[4403]=9.292214e-07;
+x[4404]=95711.399464; y[4404]=9.287566e-07;
+x[4405]=95735.799464; y[4405]=9.282921e-07;
+x[4406]=95760.199463; y[4406]=9.278277e-07;
+x[4407]=95784.599463; y[4407]=9.273636e-07;
+x[4408]=95808.999463; y[4408]=9.268998e-07;
+x[4409]=95833.399462; y[4409]=9.264361e-07;
+x[4410]=95857.799462; y[4410]=9.259727e-07;
+x[4411]=95882.199461; y[4411]=9.255095e-07;
+x[4412]=95906.599461; y[4412]=9.250466e-07;
+x[4413]=95930.999461; y[4413]=9.245839e-07;
+x[4414]=95955.399460; y[4414]=9.241214e-07;
+x[4415]=95979.799460; y[4415]=9.236592e-07;
+x[4416]=96004.199459; y[4416]=9.231971e-07;
+x[4417]=96028.599459; y[4417]=9.227354e-07;
+x[4418]=96052.999459; y[4418]=9.222738e-07;
+x[4419]=96077.399458; y[4419]=9.218125e-07;
+x[4420]=96101.799458; y[4420]=9.213514e-07;
+x[4421]=96126.199458; y[4421]=9.208905e-07;
+x[4422]=96150.599457; y[4422]=9.204299e-07;
+x[4423]=96174.999457; y[4423]=9.199695e-07;
+x[4424]=96199.399456; y[4424]=9.195093e-07;
+x[4425]=96223.799456; y[4425]=9.190494e-07;
+x[4426]=96248.199456; y[4426]=9.185897e-07;
+x[4427]=96272.599455; y[4427]=9.181302e-07;
+x[4428]=96296.999455; y[4428]=9.176709e-07;
+x[4429]=96321.399454; y[4429]=9.172119e-07;
+x[4430]=96345.799454; y[4430]=9.167531e-07;
+x[4431]=96370.199454; y[4431]=9.162946e-07;
+x[4432]=96394.599453; y[4432]=9.158362e-07;
+x[4433]=96418.999453; y[4433]=9.153781e-07;
+x[4434]=96443.399453; y[4434]=9.149203e-07;
+x[4435]=96467.799452; y[4435]=9.144626e-07;
+x[4436]=96492.199452; y[4436]=9.140052e-07;
+x[4437]=96516.599451; y[4437]=9.135480e-07;
+x[4438]=96540.999451; y[4438]=9.130910e-07;
+x[4439]=96565.399451; y[4439]=9.126343e-07;
+x[4440]=96589.799450; y[4440]=9.121778e-07;
+x[4441]=96614.199450; y[4441]=9.117215e-07;
+x[4442]=96638.599450; y[4442]=9.112655e-07;
+x[4443]=96662.999449; y[4443]=9.108097e-07;
+x[4444]=96687.399449; y[4444]=9.103541e-07;
+x[4445]=96711.799448; y[4445]=9.098987e-07;
+x[4446]=96736.199448; y[4446]=9.094436e-07;
+x[4447]=96760.599448; y[4447]=9.089887e-07;
+x[4448]=96784.999447; y[4448]=9.085340e-07;
+x[4449]=96809.399447; y[4449]=9.080796e-07;
+x[4450]=96833.799446; y[4450]=9.076253e-07;
+x[4451]=96858.199446; y[4451]=9.071713e-07;
+x[4452]=96882.599446; y[4452]=9.067176e-07;
+x[4453]=96906.999445; y[4453]=9.062640e-07;
+x[4454]=96931.399445; y[4454]=9.058107e-07;
+x[4455]=96955.799445; y[4455]=9.053576e-07;
+x[4456]=96980.199444; y[4456]=9.049048e-07;
+x[4457]=97004.599444; y[4457]=9.044521e-07;
+x[4458]=97028.999443; y[4458]=9.039997e-07;
+x[4459]=97053.399443; y[4459]=9.035475e-07;
+x[4460]=97077.799443; y[4460]=9.030956e-07;
+x[4461]=97102.199442; y[4461]=9.026439e-07;
+x[4462]=97126.599442; y[4462]=9.021924e-07;
+x[4463]=97150.999442; y[4463]=9.017411e-07;
+x[4464]=97175.399441; y[4464]=9.012900e-07;
+x[4465]=97199.799441; y[4465]=9.008392e-07;
+x[4466]=97224.199440; y[4466]=9.003886e-07;
+x[4467]=97248.599440; y[4467]=8.999382e-07;
+x[4468]=97272.999440; y[4468]=8.994881e-07;
+x[4469]=97297.399439; y[4469]=8.990381e-07;
+x[4470]=97321.799439; y[4470]=8.985884e-07;
+x[4471]=97346.199438; y[4471]=8.981390e-07;
+x[4472]=97370.599438; y[4472]=8.976897e-07;
+x[4473]=97394.999438; y[4473]=8.972407e-07;
+x[4474]=97419.399437; y[4474]=8.967919e-07;
+x[4475]=97443.799437; y[4475]=8.963433e-07;
+x[4476]=97468.199437; y[4476]=8.958950e-07;
+x[4477]=97492.599436; y[4477]=8.954468e-07;
+x[4478]=97516.999436; y[4478]=8.949989e-07;
+x[4479]=97541.399435; y[4479]=8.945512e-07;
+x[4480]=97565.799435; y[4480]=8.941038e-07;
+x[4481]=97590.199435; y[4481]=8.936565e-07;
+x[4482]=97614.599434; y[4482]=8.932095e-07;
+x[4483]=97638.999434; y[4483]=8.927628e-07;
+x[4484]=97663.399434; y[4484]=8.923162e-07;
+x[4485]=97687.799433; y[4485]=8.918699e-07;
+x[4486]=97712.199433; y[4486]=8.914237e-07;
+x[4487]=97736.599432; y[4487]=8.909778e-07;
+x[4488]=97760.999432; y[4488]=8.905322e-07;
+x[4489]=97785.399432; y[4489]=8.900867e-07;
+x[4490]=97809.799431; y[4490]=8.896415e-07;
+x[4491]=97834.199431; y[4491]=8.891965e-07;
+x[4492]=97858.599430; y[4492]=8.887517e-07;
+x[4493]=97882.999430; y[4493]=8.883072e-07;
+x[4494]=97907.399430; y[4494]=8.878628e-07;
+x[4495]=97931.799429; y[4495]=8.874187e-07;
+x[4496]=97956.199429; y[4496]=8.869748e-07;
+x[4497]=97980.599429; y[4497]=8.865312e-07;
+x[4498]=98004.999428; y[4498]=8.860877e-07;
+x[4499]=98029.399428; y[4499]=8.856445e-07;
+x[4500]=98053.799427; y[4500]=8.852015e-07;
+x[4501]=98078.199427; y[4501]=8.847587e-07;
+x[4502]=98102.599427; y[4502]=8.843162e-07;
+x[4503]=98126.999426; y[4503]=8.838738e-07;
+x[4504]=98151.399426; y[4504]=8.834317e-07;
+x[4505]=98175.799426; y[4505]=8.829898e-07;
+x[4506]=98200.199425; y[4506]=8.825481e-07;
+x[4507]=98224.599425; y[4507]=8.821067e-07;
+x[4508]=98248.999424; y[4508]=8.816655e-07;
+x[4509]=98273.399424; y[4509]=8.812245e-07;
+x[4510]=98297.799424; y[4510]=8.807837e-07;
+x[4511]=98322.199423; y[4511]=8.803431e-07;
+x[4512]=98346.599423; y[4512]=8.799027e-07;
+x[4513]=98370.999422; y[4513]=8.794626e-07;
+x[4514]=98395.399422; y[4514]=8.790227e-07;
+x[4515]=98419.799422; y[4515]=8.785830e-07;
+x[4516]=98444.199421; y[4516]=8.781435e-07;
+x[4517]=98468.599421; y[4517]=8.777043e-07;
+x[4518]=98492.999421; y[4518]=8.772653e-07;
+x[4519]=98517.399420; y[4519]=8.768265e-07;
+x[4520]=98541.799420; y[4520]=8.763879e-07;
+x[4521]=98566.199419; y[4521]=8.759495e-07;
+x[4522]=98590.599419; y[4522]=8.755113e-07;
+x[4523]=98614.999419; y[4523]=8.750734e-07;
+x[4524]=98639.399418; y[4524]=8.746357e-07;
+x[4525]=98663.799418; y[4525]=8.741982e-07;
+x[4526]=98688.199417; y[4526]=8.737609e-07;
+x[4527]=98712.599417; y[4527]=8.733239e-07;
+x[4528]=98736.999417; y[4528]=8.728870e-07;
+x[4529]=98761.399416; y[4529]=8.724504e-07;
+x[4530]=98785.799416; y[4530]=8.720140e-07;
+x[4531]=98810.199416; y[4531]=8.715778e-07;
+x[4532]=98834.599415; y[4532]=8.711419e-07;
+x[4533]=98858.999415; y[4533]=8.707061e-07;
+x[4534]=98883.399414; y[4534]=8.702706e-07;
+x[4535]=98907.799414; y[4535]=8.698353e-07;
+x[4536]=98932.199414; y[4536]=8.694002e-07;
+x[4537]=98956.599413; y[4537]=8.689653e-07;
+x[4538]=98980.999413; y[4538]=8.685306e-07;
+x[4539]=99005.399413; y[4539]=8.680962e-07;
+x[4540]=99029.799412; y[4540]=8.676620e-07;
+x[4541]=99054.199412; y[4541]=8.672280e-07;
+x[4542]=99078.599411; y[4542]=8.667942e-07;
+x[4543]=99102.999411; y[4543]=8.663606e-07;
+x[4544]=99127.399411; y[4544]=8.659273e-07;
+x[4545]=99151.799410; y[4545]=8.654941e-07;
+x[4546]=99176.199410; y[4546]=8.650612e-07;
+x[4547]=99200.599409; y[4547]=8.646285e-07;
+x[4548]=99224.999409; y[4548]=8.641960e-07;
+x[4549]=99249.399409; y[4549]=8.637637e-07;
+x[4550]=99273.799408; y[4550]=8.633317e-07;
+x[4551]=99298.199408; y[4551]=8.628998e-07;
+x[4552]=99322.599408; y[4552]=8.624682e-07;
+x[4553]=99346.999407; y[4553]=8.620368e-07;
+x[4554]=99371.399407; y[4554]=8.616056e-07;
+x[4555]=99395.799406; y[4555]=8.611746e-07;
+x[4556]=99420.199406; y[4556]=8.607439e-07;
+x[4557]=99444.599406; y[4557]=8.603133e-07;
+x[4558]=99468.999405; y[4558]=8.598830e-07;
+x[4559]=99493.399405; y[4559]=8.594529e-07;
+x[4560]=99517.799405; y[4560]=8.590230e-07;
+x[4561]=99542.199404; y[4561]=8.585933e-07;
+x[4562]=99566.599404; y[4562]=8.581638e-07;
+x[4563]=99590.999403; y[4563]=8.577346e-07;
+x[4564]=99615.399403; y[4564]=8.573055e-07;
+x[4565]=99639.799403; y[4565]=8.568767e-07;
+x[4566]=99664.199402; y[4566]=8.564481e-07;
+x[4567]=99688.599402; y[4567]=8.560197e-07;
+x[4568]=99712.999401; y[4568]=8.555915e-07;
+x[4569]=99737.399401; y[4569]=8.551635e-07;
+x[4570]=99761.799401; y[4570]=8.547358e-07;
+x[4571]=99786.199400; y[4571]=8.543082e-07;
+x[4572]=99810.599400; y[4572]=8.538809e-07;
+x[4573]=99834.999400; y[4573]=8.534538e-07;
+x[4574]=99859.399399; y[4574]=8.530269e-07;
+x[4575]=99883.799399; y[4575]=8.526002e-07;
+x[4576]=99908.199398; y[4576]=8.521737e-07;
+x[4577]=99932.599398; y[4577]=8.517475e-07;
+x[4578]=99956.999398; y[4578]=8.513214e-07;
+x[4579]=99981.399397; y[4579]=8.508956e-07;
+x[4580]=100005.799397; y[4580]=8.504700e-07;
+x[4581]=100030.199397; y[4581]=8.500446e-07;
+x[4582]=100054.599396; y[4582]=8.496194e-07;
+x[4583]=100078.999396; y[4583]=8.491944e-07;
+x[4584]=100103.399395; y[4584]=8.487696e-07;
+x[4585]=100127.799395; y[4585]=8.483451e-07;
+x[4586]=100152.199395; y[4586]=8.479207e-07;
+x[4587]=100176.599394; y[4587]=8.474966e-07;
+x[4588]=100200.999394; y[4588]=8.470727e-07;
+x[4589]=100225.399393; y[4589]=8.466490e-07;
+x[4590]=100249.799393; y[4590]=8.462255e-07;
+x[4591]=100274.199393; y[4591]=8.458022e-07;
+x[4592]=100298.599392; y[4592]=8.453791e-07;
+x[4593]=100322.999392; y[4593]=8.449563e-07;
+x[4594]=100347.399392; y[4594]=8.445336e-07;
+x[4595]=100371.799391; y[4595]=8.441112e-07;
+x[4596]=100396.199391; y[4596]=8.436890e-07;
+x[4597]=100420.599390; y[4597]=8.432669e-07;
+x[4598]=100444.999390; y[4598]=8.428451e-07;
+x[4599]=100469.399390; y[4599]=8.424235e-07;
+x[4600]=100493.799389; y[4600]=8.420022e-07;
+x[4601]=100518.199389; y[4601]=8.415810e-07;
+x[4602]=100542.599389; y[4602]=8.411600e-07;
+x[4603]=100566.999388; y[4603]=8.407393e-07;
+x[4604]=100591.399388; y[4604]=8.403187e-07;
+x[4605]=100615.799387; y[4605]=8.398984e-07;
+x[4606]=100640.199387; y[4606]=8.394783e-07;
+x[4607]=100664.599387; y[4607]=8.390584e-07;
+x[4608]=100688.999386; y[4608]=8.386387e-07;
+x[4609]=100713.399386; y[4609]=8.382192e-07;
+x[4610]=100737.799385; y[4610]=8.377999e-07;
+x[4611]=100762.199385; y[4611]=8.373808e-07;
+x[4612]=100786.599385; y[4612]=8.369620e-07;
+x[4613]=100810.999384; y[4613]=8.365433e-07;
+x[4614]=100835.399384; y[4614]=8.361249e-07;
+x[4615]=100859.799384; y[4615]=8.357067e-07;
+x[4616]=100884.199383; y[4616]=8.352886e-07;
+x[4617]=100908.599383; y[4617]=8.348708e-07;
+x[4618]=100932.999382; y[4618]=8.344532e-07;
+x[4619]=100957.399382; y[4619]=8.340358e-07;
+x[4620]=100981.799382; y[4620]=8.336186e-07;
+x[4621]=101006.199381; y[4621]=8.332017e-07;
+x[4622]=101030.599381; y[4622]=8.327849e-07;
+x[4623]=101054.999380; y[4623]=8.323683e-07;
+x[4624]=101079.399380; y[4624]=8.319520e-07;
+x[4625]=101103.799380; y[4625]=8.315358e-07;
+x[4626]=101128.199379; y[4626]=8.311199e-07;
+x[4627]=101152.599379; y[4627]=8.307042e-07;
+x[4628]=101176.999379; y[4628]=8.302886e-07;
+x[4629]=101201.399378; y[4629]=8.298733e-07;
+x[4630]=101225.799378; y[4630]=8.294582e-07;
+x[4631]=101250.199377; y[4631]=8.290433e-07;
+x[4632]=101274.599377; y[4632]=8.286286e-07;
+x[4633]=101298.999377; y[4633]=8.282142e-07;
+x[4634]=101323.399376; y[4634]=8.277999e-07;
+x[4635]=101347.799376; y[4635]=8.273858e-07;
+x[4636]=101372.199376; y[4636]=8.269720e-07;
+x[4637]=101396.599375; y[4637]=8.265583e-07;
+x[4638]=101420.999375; y[4638]=8.261449e-07;
+x[4639]=101445.399374; y[4639]=8.257316e-07;
+x[4640]=101469.799374; y[4640]=8.253186e-07;
+x[4641]=101494.199374; y[4641]=8.249058e-07;
+x[4642]=101518.599373; y[4642]=8.244931e-07;
+x[4643]=101542.999373; y[4643]=8.240807e-07;
+x[4644]=101567.399372; y[4644]=8.236685e-07;
+x[4645]=101591.799372; y[4645]=8.232565e-07;
+x[4646]=101616.199372; y[4646]=8.228447e-07;
+x[4647]=101640.599371; y[4647]=8.224331e-07;
+x[4648]=101664.999371; y[4648]=8.220218e-07;
+x[4649]=101689.399371; y[4649]=8.216106e-07;
+x[4650]=101713.799370; y[4650]=8.211996e-07;
+x[4651]=101738.199370; y[4651]=8.207888e-07;
+x[4652]=101762.599369; y[4652]=8.203783e-07;
+x[4653]=101786.999369; y[4653]=8.199679e-07;
+x[4654]=101811.399369; y[4654]=8.195578e-07;
+x[4655]=101835.799368; y[4655]=8.191478e-07;
+x[4656]=101860.199368; y[4656]=8.187381e-07;
+x[4657]=101884.599368; y[4657]=8.183286e-07;
+x[4658]=101908.999367; y[4658]=8.179192e-07;
+x[4659]=101933.399367; y[4659]=8.175101e-07;
+x[4660]=101957.799366; y[4660]=8.171012e-07;
+x[4661]=101982.199366; y[4661]=8.166925e-07;
+x[4662]=102006.599366; y[4662]=8.162840e-07;
+x[4663]=102030.999365; y[4663]=8.158757e-07;
+x[4664]=102055.399365; y[4664]=8.154675e-07;
+x[4665]=102079.799364; y[4665]=8.150596e-07;
+x[4666]=102104.199364; y[4666]=8.146520e-07;
+x[4667]=102128.599364; y[4667]=8.142445e-07;
+x[4668]=102152.999363; y[4668]=8.138372e-07;
+x[4669]=102177.399363; y[4669]=8.134301e-07;
+x[4670]=102201.799363; y[4670]=8.130232e-07;
+x[4671]=102226.199362; y[4671]=8.126165e-07;
+x[4672]=102250.599362; y[4672]=8.122101e-07;
+x[4673]=102274.999361; y[4673]=8.118038e-07;
+x[4674]=102299.399361; y[4674]=8.113977e-07;
+x[4675]=102323.799361; y[4675]=8.109919e-07;
+x[4676]=102348.199360; y[4676]=8.105862e-07;
+x[4677]=102372.599360; y[4677]=8.101808e-07;
+x[4678]=102396.999360; y[4678]=8.097755e-07;
+x[4679]=102421.399359; y[4679]=8.093704e-07;
+x[4680]=102445.799359; y[4680]=8.089656e-07;
+x[4681]=102470.199358; y[4681]=8.085609e-07;
+x[4682]=102494.599358; y[4682]=8.081565e-07;
+x[4683]=102518.999358; y[4683]=8.077523e-07;
+x[4684]=102543.399357; y[4684]=8.073482e-07;
+x[4685]=102567.799357; y[4685]=8.069444e-07;
+x[4686]=102592.199356; y[4686]=8.065408e-07;
+x[4687]=102616.599356; y[4687]=8.061373e-07;
+x[4688]=102640.999356; y[4688]=8.057341e-07;
+x[4689]=102665.399355; y[4689]=8.053311e-07;
+x[4690]=102689.799355; y[4690]=8.049282e-07;
+x[4691]=102714.199355; y[4691]=8.045256e-07;
+x[4692]=102738.599354; y[4692]=8.041232e-07;
+x[4693]=102762.999354; y[4693]=8.037210e-07;
+x[4694]=102787.399353; y[4694]=8.033189e-07;
+x[4695]=102811.799353; y[4695]=8.029171e-07;
+x[4696]=102836.199353; y[4696]=8.025155e-07;
+x[4697]=102860.599352; y[4697]=8.021141e-07;
+x[4698]=102884.999352; y[4698]=8.017128e-07;
+x[4699]=102909.399352; y[4699]=8.013118e-07;
+x[4700]=102933.799351; y[4700]=8.009110e-07;
+x[4701]=102958.199351; y[4701]=8.005104e-07;
+x[4702]=102982.599350; y[4702]=8.001100e-07;
+x[4703]=103006.999350; y[4703]=7.997098e-07;
+x[4704]=103031.399350; y[4704]=7.993097e-07;
+x[4705]=103055.799349; y[4705]=7.989099e-07;
+x[4706]=103080.199349; y[4706]=7.985103e-07;
+x[4707]=103104.599348; y[4707]=7.981109e-07;
+x[4708]=103128.999348; y[4708]=7.977117e-07;
+x[4709]=103153.399348; y[4709]=7.973127e-07;
+x[4710]=103177.799347; y[4710]=7.969138e-07;
+x[4711]=103202.199347; y[4711]=7.965152e-07;
+x[4712]=103226.599347; y[4712]=7.961168e-07;
+x[4713]=103250.999346; y[4713]=7.957186e-07;
+x[4714]=103275.399346; y[4714]=7.953206e-07;
+x[4715]=103299.799345; y[4715]=7.949227e-07;
+x[4716]=103324.199345; y[4716]=7.945251e-07;
+x[4717]=103348.599345; y[4717]=7.941277e-07;
+x[4718]=103372.999344; y[4718]=7.937305e-07;
+x[4719]=103397.399344; y[4719]=7.933334e-07;
+x[4720]=103421.799343; y[4720]=7.929366e-07;
+x[4721]=103446.199343; y[4721]=7.925400e-07;
+x[4722]=103470.599343; y[4722]=7.921436e-07;
+x[4723]=103494.999342; y[4723]=7.917473e-07;
+x[4724]=103519.399342; y[4724]=7.913513e-07;
+x[4725]=103543.799342; y[4725]=7.909555e-07;
+x[4726]=103568.199341; y[4726]=7.905598e-07;
+x[4727]=103592.599341; y[4727]=7.901644e-07;
+x[4728]=103616.999340; y[4728]=7.897691e-07;
+x[4729]=103641.399340; y[4729]=7.893741e-07;
+x[4730]=103665.799340; y[4730]=7.889793e-07;
+x[4731]=103690.199339; y[4731]=7.885846e-07;
+x[4732]=103714.599339; y[4732]=7.881902e-07;
+x[4733]=103738.999339; y[4733]=7.877959e-07;
+x[4734]=103763.399338; y[4734]=7.874018e-07;
+x[4735]=103787.799338; y[4735]=7.870080e-07;
+x[4736]=103812.199337; y[4736]=7.866143e-07;
+x[4737]=103836.599337; y[4737]=7.862208e-07;
+x[4738]=103860.999337; y[4738]=7.858276e-07;
+x[4739]=103885.399336; y[4739]=7.854345e-07;
+x[4740]=103909.799336; y[4740]=7.850416e-07;
+x[4741]=103934.199335; y[4741]=7.846490e-07;
+x[4742]=103958.599335; y[4742]=7.842565e-07;
+x[4743]=103982.999335; y[4743]=7.838642e-07;
+x[4744]=104007.399334; y[4744]=7.834721e-07;
+x[4745]=104031.799334; y[4745]=7.830802e-07;
+x[4746]=104056.199334; y[4746]=7.826885e-07;
+x[4747]=104080.599333; y[4747]=7.822970e-07;
+x[4748]=104104.999333; y[4748]=7.819057e-07;
+x[4749]=104129.399332; y[4749]=7.815146e-07;
+x[4750]=104153.799332; y[4750]=7.811237e-07;
+x[4751]=104178.199332; y[4751]=7.807329e-07;
+x[4752]=104202.599331; y[4752]=7.803424e-07;
+x[4753]=104226.999331; y[4753]=7.799521e-07;
+x[4754]=104251.399331; y[4754]=7.795620e-07;
+x[4755]=104275.799330; y[4755]=7.791720e-07;
+x[4756]=104300.199330; y[4756]=7.787823e-07;
+x[4757]=104324.599329; y[4757]=7.783927e-07;
+x[4758]=104348.999329; y[4758]=7.780034e-07;
+x[4759]=104373.399329; y[4759]=7.776142e-07;
+x[4760]=104397.799328; y[4760]=7.772252e-07;
+x[4761]=104422.199328; y[4761]=7.768365e-07;
+x[4762]=104446.599327; y[4762]=7.764479e-07;
+x[4763]=104470.999327; y[4763]=7.760595e-07;
+x[4764]=104495.399327; y[4764]=7.756713e-07;
+x[4765]=104519.799326; y[4765]=7.752833e-07;
+x[4766]=104544.199326; y[4766]=7.748955e-07;
+x[4767]=104568.599326; y[4767]=7.745079e-07;
+x[4768]=104592.999325; y[4768]=7.741205e-07;
+x[4769]=104617.399325; y[4769]=7.737333e-07;
+x[4770]=104641.799324; y[4770]=7.733463e-07;
+x[4771]=104666.199324; y[4771]=7.729595e-07;
+x[4772]=104690.599324; y[4772]=7.725728e-07;
+x[4773]=104714.999323; y[4773]=7.721864e-07;
+x[4774]=104739.399323; y[4774]=7.718001e-07;
+x[4775]=104763.799323; y[4775]=7.714141e-07;
+x[4776]=104788.199322; y[4776]=7.710282e-07;
+x[4777]=104812.599322; y[4777]=7.706425e-07;
+x[4778]=104836.999321; y[4778]=7.702571e-07;
+x[4779]=104861.399321; y[4779]=7.698718e-07;
+x[4780]=104885.799321; y[4780]=7.694867e-07;
+x[4781]=104910.199320; y[4781]=7.691018e-07;
+x[4782]=104934.599320; y[4782]=7.687171e-07;
+x[4783]=104958.999319; y[4783]=7.683326e-07;
+x[4784]=104983.399319; y[4784]=7.679483e-07;
+x[4785]=105007.799319; y[4785]=7.675641e-07;
+x[4786]=105032.199318; y[4786]=7.671802e-07;
+x[4787]=105056.599318; y[4787]=7.667964e-07;
+x[4788]=105080.999318; y[4788]=7.664129e-07;
+x[4789]=105105.399317; y[4789]=7.660295e-07;
+x[4790]=105129.799317; y[4790]=7.656464e-07;
+x[4791]=105154.199316; y[4791]=7.652634e-07;
+x[4792]=105178.599316; y[4792]=7.648806e-07;
+x[4793]=105202.999316; y[4793]=7.644980e-07;
+x[4794]=105227.399315; y[4794]=7.641156e-07;
+x[4795]=105251.799315; y[4795]=7.637334e-07;
+x[4796]=105276.199314; y[4796]=7.633514e-07;
+x[4797]=105300.599314; y[4797]=7.629695e-07;
+x[4798]=105324.999314; y[4798]=7.625879e-07;
+x[4799]=105349.399313; y[4799]=7.622064e-07;
+x[4800]=105373.799313; y[4800]=7.618252e-07;
+x[4801]=105398.199313; y[4801]=7.614441e-07;
+x[4802]=105422.599312; y[4802]=7.610632e-07;
+x[4803]=105446.999312; y[4803]=7.606826e-07;
+x[4804]=105471.399311; y[4804]=7.603021e-07;
+x[4805]=105495.799311; y[4805]=7.599218e-07;
+x[4806]=105520.199311; y[4806]=7.595416e-07;
+x[4807]=105544.599310; y[4807]=7.591617e-07;
+x[4808]=105568.999310; y[4808]=7.587820e-07;
+x[4809]=105593.399310; y[4809]=7.584024e-07;
+x[4810]=105617.799309; y[4810]=7.580231e-07;
+x[4811]=105642.199309; y[4811]=7.576439e-07;
+x[4812]=105666.599308; y[4812]=7.572649e-07;
+x[4813]=105690.999308; y[4813]=7.568862e-07;
+x[4814]=105715.399308; y[4814]=7.565076e-07;
+x[4815]=105739.799307; y[4815]=7.561292e-07;
+x[4816]=105764.199307; y[4816]=7.557509e-07;
+x[4817]=105788.599306; y[4817]=7.553729e-07;
+x[4818]=105812.999306; y[4818]=7.549951e-07;
+x[4819]=105837.399306; y[4819]=7.546174e-07;
+x[4820]=105861.799305; y[4820]=7.542400e-07;
+x[4821]=105886.199305; y[4821]=7.538627e-07;
+x[4822]=105910.599305; y[4822]=7.534856e-07;
+x[4823]=105934.999304; y[4823]=7.531087e-07;
+x[4824]=105959.399304; y[4824]=7.527320e-07;
+x[4825]=105983.799303; y[4825]=7.523555e-07;
+x[4826]=106008.199303; y[4826]=7.519792e-07;
+x[4827]=106032.599303; y[4827]=7.516030e-07;
+x[4828]=106056.999302; y[4828]=7.512271e-07;
+x[4829]=106081.399302; y[4829]=7.508513e-07;
+x[4830]=106105.799302; y[4830]=7.504757e-07;
+x[4831]=106130.199301; y[4831]=7.501003e-07;
+x[4832]=106154.599301; y[4832]=7.497251e-07;
+x[4833]=106178.999300; y[4833]=7.493501e-07;
+x[4834]=106203.399300; y[4834]=7.489753e-07;
+x[4835]=106227.799300; y[4835]=7.486006e-07;
+x[4836]=106252.199299; y[4836]=7.482262e-07;
+x[4837]=106276.599299; y[4837]=7.478519e-07;
+x[4838]=106300.999298; y[4838]=7.474779e-07;
+x[4839]=106325.399298; y[4839]=7.471040e-07;
+x[4840]=106349.799298; y[4840]=7.467303e-07;
+x[4841]=106374.199297; y[4841]=7.463567e-07;
+x[4842]=106398.599297; y[4842]=7.459834e-07;
+x[4843]=106422.999297; y[4843]=7.456103e-07;
+x[4844]=106447.399296; y[4844]=7.452373e-07;
+x[4845]=106471.799296; y[4845]=7.448645e-07;
+x[4846]=106496.199295; y[4846]=7.444920e-07;
+x[4847]=106520.599295; y[4847]=7.441196e-07;
+x[4848]=106544.999295; y[4848]=7.437474e-07;
+x[4849]=106569.399294; y[4849]=7.433753e-07;
+x[4850]=106593.799294; y[4850]=7.430035e-07;
+x[4851]=106618.199294; y[4851]=7.426318e-07;
+x[4852]=106642.599293; y[4852]=7.422604e-07;
+x[4853]=106666.999293; y[4853]=7.418891e-07;
+x[4854]=106691.399292; y[4854]=7.415180e-07;
+x[4855]=106715.799292; y[4855]=7.411471e-07;
+x[4856]=106740.199292; y[4856]=7.407764e-07;
+x[4857]=106764.599291; y[4857]=7.404058e-07;
+x[4858]=106788.999291; y[4858]=7.400355e-07;
+x[4859]=106813.399290; y[4859]=7.396653e-07;
+x[4860]=106837.799290; y[4860]=7.392953e-07;
+x[4861]=106862.199290; y[4861]=7.389255e-07;
+x[4862]=106886.599289; y[4862]=7.385559e-07;
+x[4863]=106910.999289; y[4863]=7.381865e-07;
+x[4864]=106935.399289; y[4864]=7.378172e-07;
+x[4865]=106959.799288; y[4865]=7.374482e-07;
+x[4866]=106984.199288; y[4866]=7.370793e-07;
+x[4867]=107008.599287; y[4867]=7.367106e-07;
+x[4868]=107032.999287; y[4868]=7.363421e-07;
+x[4869]=107057.399287; y[4869]=7.359738e-07;
+x[4870]=107081.799286; y[4870]=7.356057e-07;
+x[4871]=107106.199286; y[4871]=7.352377e-07;
+x[4872]=107130.599286; y[4872]=7.348699e-07;
+x[4873]=107154.999285; y[4873]=7.345024e-07;
+x[4874]=107179.399285; y[4874]=7.341350e-07;
+x[4875]=107203.799284; y[4875]=7.337678e-07;
+x[4876]=107228.199284; y[4876]=7.334007e-07;
+x[4877]=107252.599284; y[4877]=7.330339e-07;
+x[4878]=107276.999283; y[4878]=7.326672e-07;
+x[4879]=107301.399283; y[4879]=7.323007e-07;
+x[4880]=107325.799282; y[4880]=7.319344e-07;
+x[4881]=107350.199282; y[4881]=7.315683e-07;
+x[4882]=107374.599282; y[4882]=7.312024e-07;
+x[4883]=107398.999281; y[4883]=7.308366e-07;
+x[4884]=107423.399281; y[4884]=7.304711e-07;
+x[4885]=107447.799281; y[4885]=7.301057e-07;
+x[4886]=107472.199280; y[4886]=7.297405e-07;
+x[4887]=107496.599280; y[4887]=7.293755e-07;
+x[4888]=107520.999279; y[4888]=7.290106e-07;
+x[4889]=107545.399279; y[4889]=7.286460e-07;
+x[4890]=107569.799279; y[4890]=7.282815e-07;
+x[4891]=107594.199278; y[4891]=7.279172e-07;
+x[4892]=107618.599278; y[4892]=7.275531e-07;
+x[4893]=107642.999277; y[4893]=7.271892e-07;
+x[4894]=107667.399277; y[4894]=7.268254e-07;
+x[4895]=107691.799277; y[4895]=7.264619e-07;
+x[4896]=107716.199276; y[4896]=7.260985e-07;
+x[4897]=107740.599276; y[4897]=7.257353e-07;
+x[4898]=107764.999276; y[4898]=7.253723e-07;
+x[4899]=107789.399275; y[4899]=7.250095e-07;
+x[4900]=107813.799275; y[4900]=7.246468e-07;
+x[4901]=107838.199274; y[4901]=7.242843e-07;
+x[4902]=107862.599274; y[4902]=7.239221e-07;
+x[4903]=107886.999274; y[4903]=7.235599e-07;
+x[4904]=107911.399273; y[4904]=7.231980e-07;
+x[4905]=107935.799273; y[4905]=7.228363e-07;
+x[4906]=107960.199273; y[4906]=7.224747e-07;
+x[4907]=107984.599272; y[4907]=7.221133e-07;
+x[4908]=108008.999272; y[4908]=7.217521e-07;
+x[4909]=108033.399271; y[4909]=7.213911e-07;
+x[4910]=108057.799271; y[4910]=7.210303e-07;
+x[4911]=108082.199271; y[4911]=7.206696e-07;
+x[4912]=108106.599270; y[4912]=7.203091e-07;
+x[4913]=108130.999270; y[4913]=7.199488e-07;
+x[4914]=108155.399269; y[4914]=7.195887e-07;
+x[4915]=108179.799269; y[4915]=7.192288e-07;
+x[4916]=108204.199269; y[4916]=7.188690e-07;
+x[4917]=108228.599268; y[4917]=7.185094e-07;
+x[4918]=108252.999268; y[4918]=7.181500e-07;
+x[4919]=108277.399268; y[4919]=7.177908e-07;
+x[4920]=108301.799267; y[4920]=7.174318e-07;
+x[4921]=108326.199267; y[4921]=7.170729e-07;
+x[4922]=108350.599266; y[4922]=7.167142e-07;
+x[4923]=108374.999266; y[4923]=7.163557e-07;
+x[4924]=108399.399266; y[4924]=7.159974e-07;
+x[4925]=108423.799265; y[4925]=7.156392e-07;
+x[4926]=108448.199265; y[4926]=7.152813e-07;
+x[4927]=108472.599265; y[4927]=7.149235e-07;
+x[4928]=108496.999264; y[4928]=7.145659e-07;
+x[4929]=108521.399264; y[4929]=7.142085e-07;
+x[4930]=108545.799263; y[4930]=7.138512e-07;
+x[4931]=108570.199263; y[4931]=7.134941e-07;
+x[4932]=108594.599263; y[4932]=7.131373e-07;
+x[4933]=108618.999262; y[4933]=7.127805e-07;
+x[4934]=108643.399262; y[4934]=7.124240e-07;
+x[4935]=108667.799261; y[4935]=7.120677e-07;
+x[4936]=108692.199261; y[4936]=7.117115e-07;
+x[4937]=108716.599261; y[4937]=7.113555e-07;
+x[4938]=108740.999260; y[4938]=7.109997e-07;
+x[4939]=108765.399260; y[4939]=7.106440e-07;
+x[4940]=108789.799260; y[4940]=7.102885e-07;
+x[4941]=108814.199259; y[4941]=7.099333e-07;
+x[4942]=108838.599259; y[4942]=7.095781e-07;
+x[4943]=108862.999258; y[4943]=7.092232e-07;
+x[4944]=108887.399258; y[4944]=7.088685e-07;
+x[4945]=108911.799258; y[4945]=7.085139e-07;
+x[4946]=108936.199257; y[4946]=7.081595e-07;
+x[4947]=108960.599257; y[4947]=7.078053e-07;
+x[4948]=108984.999257; y[4948]=7.074512e-07;
+x[4949]=109009.399256; y[4949]=7.070973e-07;
+x[4950]=109033.799256; y[4950]=7.067437e-07;
+x[4951]=109058.199255; y[4951]=7.063901e-07;
+x[4952]=109082.599255; y[4952]=7.060368e-07;
+x[4953]=109106.999255; y[4953]=7.056836e-07;
+x[4954]=109131.399254; y[4954]=7.053307e-07;
+x[4955]=109155.799254; y[4955]=7.049778e-07;
+x[4956]=109180.199253; y[4956]=7.046252e-07;
+x[4957]=109204.599253; y[4957]=7.042728e-07;
+x[4958]=109228.999253; y[4958]=7.039205e-07;
+x[4959]=109253.399252; y[4959]=7.035684e-07;
+x[4960]=109277.799252; y[4960]=7.032165e-07;
+x[4961]=109302.199252; y[4961]=7.028647e-07;
+x[4962]=109326.599251; y[4962]=7.025131e-07;
+x[4963]=109350.999251; y[4963]=7.021617e-07;
+x[4964]=109375.399250; y[4964]=7.018105e-07;
+x[4965]=109399.799250; y[4965]=7.014595e-07;
+x[4966]=109424.199250; y[4966]=7.011086e-07;
+x[4967]=109448.599249; y[4967]=7.007579e-07;
+x[4968]=109472.999249; y[4968]=7.004074e-07;
+x[4969]=109497.399249; y[4969]=7.000570e-07;
+x[4970]=109521.799248; y[4970]=6.997069e-07;
+x[4971]=109546.199248; y[4971]=6.993569e-07;
+x[4972]=109570.599247; y[4972]=6.990070e-07;
+x[4973]=109594.999247; y[4973]=6.986574e-07;
+x[4974]=109619.399247; y[4974]=6.983079e-07;
+x[4975]=109643.799246; y[4975]=6.979586e-07;
+x[4976]=109668.199246; y[4976]=6.976095e-07;
+x[4977]=109692.599245; y[4977]=6.972606e-07;
+x[4978]=109716.999245; y[4978]=6.969118e-07;
+x[4979]=109741.399245; y[4979]=6.965632e-07;
+x[4980]=109765.799244; y[4980]=6.962148e-07;
+x[4981]=109790.199244; y[4981]=6.958665e-07;
+x[4982]=109814.599244; y[4982]=6.955184e-07;
+x[4983]=109838.999243; y[4983]=6.951706e-07;
+x[4984]=109863.399243; y[4984]=6.948228e-07;
+x[4985]=109887.799242; y[4985]=6.944753e-07;
+x[4986]=109912.199242; y[4986]=6.941279e-07;
+x[4987]=109936.599242; y[4987]=6.937807e-07;
+x[4988]=109960.999241; y[4988]=6.934337e-07;
+x[4989]=109985.399241; y[4989]=6.930868e-07;
+x[4990]=110009.799240; y[4990]=6.927401e-07;
+x[4991]=110034.199240; y[4991]=6.923936e-07;
+x[4992]=110058.599240; y[4992]=6.920473e-07;
+x[4993]=110082.999239; y[4993]=6.917011e-07;
+x[4994]=110107.399239; y[4994]=6.913551e-07;
+x[4995]=110131.799239; y[4995]=6.910093e-07;
+x[4996]=110156.199238; y[4996]=6.906637e-07;
+x[4997]=110180.599238; y[4997]=6.903182e-07;
+x[4998]=110204.999237; y[4998]=6.899729e-07;
+x[4999]=110229.399237; y[4999]=6.896278e-07;
+
+ TSpline3 *sp = new TSpline3("mismatch",x,y,5000);
+ sp->SetNpx(5000);
+
+
+  return sp;
+}
+
+
diff --git a/PWGCF/Correlations/JCORRAN/AliFlowBayesianPID.h b/PWGCF/Correlations/JCORRAN/AliFlowBayesianPID.h
new file mode 100755 (executable)
index 0000000..69cad10
--- /dev/null
@@ -0,0 +1,137 @@
+#ifndef AliFlowBayesianPID_h
+#define AliFlowBayesianPID_h
+
+#include "TObject.h"
+#include "AliESDpid.h"
+#include "AliPIDResponse.h"
+
+class TDatabasePDG;
+class AliESDEvent;
+class AliESDtrack;
+class TH2D;
+class TSpline3;
+class TF1;
+class AliTOFGeometry;
+class AliTOFT0maker;
+
+/*
+HOW TO
+
+1) in your main program:
+
+  AliFlowBayesianPID *mypid = new AliFlowBayesianPID();
+
+or (if you want a global AliESDpid object)
+
+  AliESDpid *PIDesd = new AliESDpid();
+  ....
+  gROOT->LoadMacro("AliFlowBayesianPID.cxx++g");
+  AliFlowBayesianPID *mypid = new AliFlowBayesianPID(PIDesd);
+
+for data starting from the PbPb pass2 reconstruction
+
+  mypid->SetNewTrackParam();
+
+
+2) pass the pointer to your task
+
+3) In your Task Exec:
+     mypid->SetDetResponse(esdEvent, centrality,AliESDpid::kTOF_T0,kFALSE); // centrality = PbPb centrality class (0-100%) or -1 for pp collisions
+     for(...){ // track loop
+     mypid->ComputeProb(track,centrality);
+     Float_t *prob = mypid->GetProb(); // Bayesian Probability (from 0 to 4) (Combined TPC || TOF) including a tuning of priors and TOF mismatch parameterization
+
+     // for the single detector weights (no priors)
+     Float_t *tpcWeight = mypid->GetWeights(0); // TPC weights (equal weights in case of no kTPCpid)
+     Float_t *tofWeight = mypid->GetWeights(1); // TOF weights (equal weights in case of no kTOFpid)
+
+     // more tools
+     TSpline3 *mismatchShape = mypid->GetMismatch(); // time distribution of mismatched tracks - L/c (L is the distance of the pad from the PV)
+     TF1 *tpcprob = mypid->GetTPCprob(); // normalized TPC response function (in Nsigmas)  
+     TF1 *tofprob = mypid->GetTOFprob(); // normalized TOF response function (in Nsigmas)  
+
+     TH2D *hPr = mypid->GetHistoPriors(isp); // 2D (centrality - pT) histo for the priors of specie-isp (centrality < 0 means pp collisions)
+                                             // all the priors are normalized to the pion ones
+
+  }
+
+*/
+
+class AliFlowBayesianPID : public AliPIDResponse {
+ public:
+  AliFlowBayesianPID(AliESDpid *esdpid=NULL); 
+  virtual ~AliFlowBayesianPID();
+  
+  // virtual method of AliPIDResponse
+  virtual Float_t NumberOfSigmasTOF(const AliVParticle *vtrack, AliPID::EParticleType type) const {if(vtrack) printf("Don't call AliFlowBayesianPID::NumberOfSigmasTOF method (%i)\n",type); return 0.0;} // do not use it
+
+  // setter
+  void SetMC(Bool_t flag = kTRUE){fIsMC=flag;} // actually do nothing
+  void SetDetResponse(AliESDEvent *esd,Float_t centrality=-1.0,EStartTimeType_t flagStart=AliESDpid::kTOF_T0,Bool_t recomputeT0TOF=kFALSE);
+  void SetNewTrackParam(Bool_t flag=kTRUE){fNewTrackParam=flag;};
+  void SetDetAND(Int_t idet){if(idet < fNdetectors && idet >= 0) fMaskAND[idet] = kTRUE;};
+  void SetDetOR(Int_t idet){if(idet < fNdetectors && idet >= 0) fMaskOR[idet] = kTRUE;};
+  void ResetDetAND(Int_t idet){if(idet < fNdetectors && idet >= 0) fMaskAND[idet] = kFALSE;};
+  void ResetDetOR(Int_t idet){if(idet < fNdetectors && idet >= 0) fMaskOR[idet] = kFALSE;};
+
+  // getter
+  AliESDpid* GetESDpid(){return fPIDesd;};
+  TH2D *GetHistoPriors(Int_t specie){if(specie >=0 && specie < 5) return hPriors[specie]; else return NULL;};
+  TSpline3 *GetMismatch();  
+  TF1 *GetTOFprob(){return fTOFResponse;};
+  TF1 *GetTPCprob(){return fTPCResponse;};
+  Float_t *GetWeights(Int_t det){if(det < fNdetectors && det >= 0){return fWeights[det];} else{return NULL;}};
+  Float_t *GetProb(){return fProb;};
+  Float_t GetTOFMismWeight(){return fWTofMism;};
+  Float_t GetTOFMismProb(){return fProbTofMism;};
+  Float_t GetMassOverZ(){return fMassTOF;};
+  Float_t GetZ(){return fZ;};
+  Bool_t GetDetANDstatus(Int_t idet){if(idet < fNdetectors && idet >= 0){return fMaskAND[idet];} else{return kFALSE;} };
+  Bool_t GetDetORstatus(Int_t idet){if(idet < fNdetectors && idet >= 0){return fMaskOR[idet];} else{return kFALSE;} };
+  Bool_t GetCurrentMask(Int_t idet){if(idet < fNdetectors && idet >= 0){return fMaskCurrent[idet];} else{return kFALSE;} };
+
+  // methods for Bayesina Combined PID
+  void ComputeWeights(const AliESDtrack *t,Float_t centr=-1.0);
+  void ComputeProb(const AliESDtrack *t,Float_t centr=-1.0);
+
+  void SetTOFres(Float_t res){fTOFres=res;};
+
+ private: 
+  void SetPriors();
+
+  static const Int_t fNdetectors = 2;
+  static const Int_t fNspecies = 8;// 0=el, 1=mu, 2=pi, 3=ka, 4=pr, 5=deuteron, 6=triton, 7=He3 
+  static TH2D* hPriors[fNspecies]; // histo with priors (hardcoded)
+  static TSpline3 *fMism; // function for mismatch
+  static AliTOFGeometry *fTofGeo; // TOF geometry needed to reproduce mismatch shape
+
+  AliESDpid *fPIDesd;//ESDpid object
+  TDatabasePDG *fDB; // Database pdg
+  Double_t fMass[fNspecies]; // mass for el(0),mu(1),pi(2),K(3),p(4)
+
+  Bool_t fNewTrackParam; // switch for new tracking resolution TOF parameterization
+  Bool_t fIsMC; // switch if MC data
+  Float_t fTOFres; // TOF res needed only if T0-TOF should be recomputed
+
+  AliFlowBayesianPID(const AliFlowBayesianPID&); // not implemented
+  AliFlowBayesianPID& operator=(const AliFlowBayesianPID&); // not implemented 
+
+  TF1 *fTOFResponse; // TOF Gaussian+tail response function (tail at 1.1 sigma)
+  TF1 *fTPCResponse; // TPC Gaussian+tail response function (tail at 1.8 sigma)
+
+  AliTOFT0maker *fTOFmaker; //TOF-T0 maker object
+
+  Float_t fWeights[fNdetectors][fNspecies]; // weights: 0=tpc,1=tof
+  Float_t fProb[fNspecies],fWTofMism,fProbTofMism; // Bayesian Combined PID + mismatch weights and probability 
+
+  Float_t fZ,fMassTOF; //measured charge(Z) and mass/Z
+  TF1 *fBBdata; // Bethe Bloch function (needed to compute the charge of the particle)
+
+  Bool_t fMaskAND[fNdetectors],fMaskOR[fNdetectors],fMaskCurrent[fNdetectors]; // mask detector should be used
+
+  ClassDef(AliFlowBayesianPID, 4); // example of analysis
+};
+
+#endif
+
+
diff --git a/PWGCF/Correlations/JCORRAN/AliJBaseEventHeader.cxx b/PWGCF/Correlations/JCORRAN/AliJBaseEventHeader.cxx
new file mode 100755 (executable)
index 0000000..fb1f775
--- /dev/null
@@ -0,0 +1,87 @@
+/**************************************************************************
+* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
+*                                                                        *
+* Author: The ALICE Off-line Project.                                    *
+* Contributors are mentioned in the code where appropriate.              *
+*                                                                        *
+* Permission to use, copy, modify and distribute this software and its   *
+* documentation strictly for non-commercial purposes is hereby granted   *
+* without fee, provided that the above copyright notice appears in all   *
+* copies and that both the copyright notice and this permission notifce   *
+* appear in the supporting documentation. The authors make no claims     *
+* about the suitability of this software for any purpose. It is          *
+* provided "as is" without express or implied warranty.                  *
+**************************************************************************/
+
+// $Id: AliJBaseEventHeader.cxx,v 1.4 2008/05/08 13:44:45 djkim Exp $
+
+////////////////////////////////////////////////////
+//
+//     \file AliJBaseEventHeader.cc
+//     \brief
+//     \author J. Rak, D.J.Kim, R.Diaz, M.Bondila, Chang Yeong (University of Jyvaskyla) email: djkim@cc.jyu.fi
+//     \version $Revision: 1.4 $
+//     \date $Date: 2008/05/08 13:44:45 $
+//
+// Base class for event headers
+////////////////////////////////////////////////////
+
+#include <TNamed.h>
+#include "AliJBaseEventHeader.h"
+
+ClassImp(AliJBaseEventHeader)
+
+//______________________________________________________________________________
+AliJBaseEventHeader::AliJBaseEventHeader(): 
+  TNamed("AliJBaseEventHeader", ""), 
+  fEventID(-999),              
+  fCentrality(-999),
+  fVtxX(-999),
+  fVtxY(-999),
+  fVtxZ(-999),
+  fVtxZErr(-999)
+{
+  // default constructor
+}
+
+//______________________________________________________________________________
+AliJBaseEventHeader::AliJBaseEventHeader(int eventid, float cent, float vtxz): 
+  TNamed("AliJBaseEventHeader", ""), 
+  fEventID(eventid),              
+  fCentrality(cent),
+  fVtxX(-999),
+  fVtxY(-999),
+  fVtxZ(vtxz),
+  fVtxZErr(-999)
+{
+  //constructor
+}
+//______________________________________________________________________________
+AliJBaseEventHeader::AliJBaseEventHeader(const AliJBaseEventHeader& a):
+  TNamed(a),
+  fEventID(a.fEventID),
+  fCentrality(a.fCentrality),
+  fVtxX(a.fVtxX),
+  fVtxY(a.fVtxY),
+  fVtxZ(a.fVtxZ),
+  fVtxZErr(a.fVtxZErr)
+{
+  //copy constructor
+}
+
+//______________________________________________________________________________
+AliJBaseEventHeader&  AliJBaseEventHeader::operator=(const AliJBaseEventHeader& header){
+  //operator=  
+  if(this != &header){
+    TNamed::operator=(header);
+    fEventID    = header.fEventID;
+    fCentrality = header.fCentrality;
+    fVtxX       = header.fVtxX;
+    fVtxY       = header.fVtxY;
+    fVtxZ       = header.fVtxZ;
+    fVtxZErr   = header.fVtxZErr;
+  }
+
+  return *this;
+}
+
diff --git a/PWGCF/Correlations/JCORRAN/AliJBaseEventHeader.h b/PWGCF/Correlations/JCORRAN/AliJBaseEventHeader.h
new file mode 100755 (executable)
index 0000000..578ccd8
--- /dev/null
@@ -0,0 +1,62 @@
+// $Id: AliJBaseEventHeader.h,v 1.5 2008/05/08 13:44:45 djkim Exp $
+
+////////////////////////////////////////////////////
+/*!
+  \file AliJBaseEventHeader.h
+  \brief
+  \author J. Rak, D.J.Kim, R.Diaz (University of Jyvaskyla)
+  \email: djkim@jyu.fi
+  \version $Revision: 1.5 $
+  \date $Date: 2008/05/08 13:44:45 $
+  */
+////////////////////////////////////////////////////
+
+#ifndef ALIJBASEEVENTHEADER_H
+#define ALIJBASEEVENTHEADER_H
+
+#ifndef ROOT_TObject
+#include <TObject.h>
+#endif
+#include <TNamed.h>
+
+class AliJBaseEventHeader : public TNamed {
+
+ public:
+  AliJBaseEventHeader();                                    // default constructor
+  AliJBaseEventHeader(int eventid, float cent, float vtxz); // constructor
+  AliJBaseEventHeader(const AliJBaseEventHeader& a);                    // copy constructor
+  virtual ~AliJBaseEventHeader(){;}                         // destructor
+
+  //getter
+  int    GetEventID() const {return fEventID;} 
+  float  GetCentrality() const {return fCentrality;}
+  float  GetXVertex() const {return fVtxX;}
+  float  GetYVertex() const {return fVtxY;}
+  float  GetZVertex() const {return fVtxZ;}
+  float  GetZVertexErr() const {return fVtxZErr;}
+
+  //setter
+  void SetEventID(int evid) {fEventID=evid;}
+  void SetCentrality(float  cent) {fCentrality=cent;}
+  void SetXVertex(float vt) {fVtxX=vt;}
+  void SetYVertex(float vt) {fVtxY=vt;}
+  void SetZVertex(float vt) {fVtxZ=vt;}
+  void SetZVertexErr(float vt) {fVtxZErr=vt;}
+  void SetVertex(float x, float y, float z, float err){ fVtxX=x;fVtxY=y;fVtxZ=z;fVtxZErr=err; }
+
+  AliJBaseEventHeader& operator=(const AliJBaseEventHeader& header);
+
+ private:
+
+  Int_t   fEventID;         //event id
+  Double32_t fCentrality;   //centrality
+  Double32_t fVtxX;         //vertex X
+  Double32_t fVtxY;         //vertex Y
+  Double32_t fVtxZ;         //vertex Z
+  Double32_t fVtxZErr;      //vertex error
+
+  ClassDef(AliJBaseEventHeader,1)
+
+};
+
+#endif
diff --git a/PWGCF/Correlations/JCORRAN/AliJBaseTrack.cxx b/PWGCF/Correlations/JCORRAN/AliJBaseTrack.cxx
new file mode 100755 (executable)
index 0000000..148f542
--- /dev/null
@@ -0,0 +1,91 @@
+// $Id: AliJBaseTrack.cxx,v 1.5 2008/05/08 15:19:52 djkim Exp $\r
+////////////////////////////////////////////////////\r
+/*!\r
+  \file AliJBaseTrack.cxx\r
+  \brief\r
+  \author J. Rak, D.J.Kim, R.Diaz (University of Jyvaskyla)\r
+  \email: djkim@jyu.fi\r
+  \version $Revision: 1.5 $\r
+  \date $Date: 2008/05/08 15:19:52 $\r
+  */\r
+////////////////////////////////////////////////////\r
+\r
+#include <iostream>\r
+#include <TLorentzVector.h>\r
+#include "AliJBaseTrack.h"\r
+\r
+//______________________________________________________________________________\r
+AliJBaseTrack::AliJBaseTrack():\r
+    fID(-1),\r
+    fLabel(-1), \r
+    fParticleType(-1), \r
+    fCharge(0), \r
+    fStatus(0), \r
+    fFlags(0)\r
+{\r
+  // constructor\r
+}\r
+\r
+//_____________________________________________________________\r
+AliJBaseTrack::AliJBaseTrack(float px,float py, float pz, float e, Int_t id, Short_t ptype, Char_t charge):\r
+    TLorentzVector( px, py, pz, e ), \r
+    fID(id),\r
+    fLabel(-1), \r
+    fParticleType(ptype), \r
+    fCharge(charge), \r
+    fStatus(0), \r
+    fFlags(0)\r
+{\r
+  // constructor\r
+}\r
+\r
+//_____________________________________________________________\r
+AliJBaseTrack::AliJBaseTrack(const AliJBaseTrack& a):\r
+    TLorentzVector  (a), \r
+    fID             (a.fID),\r
+    fLabel          (a.fLabel), \r
+    fParticleType   ( a.fParticleType ), \r
+    fCharge         ( a.fCharge ), \r
+    fStatus         ( a.fStatus ), \r
+    fFlags       ( a.fFlags )\r
+{\r
+  //copy constructor\r
+}\r
+\r
+//_____________________________________________________________\r
+AliJBaseTrack::AliJBaseTrack(const TLorentzVector& a):\r
+    TLorentzVector  (a),\r
+    fID             ( -1 ),\r
+    fLabel          ( -1 ), \r
+    fParticleType   ( -1 ),\r
+    fCharge         ( 0 ),\r
+    fStatus         ( 0 ),\r
+    fFlags       ( 0 )\r
+{\r
+  //copy constructor\r
+}\r
+//_____________________________________________________________\r
+AliJBaseTrack& AliJBaseTrack::operator=(const AliJBaseTrack& trk){\r
+  //operator =  \r
+  if(this != &trk){\r
+    TLorentzVector::operator=(trk);\r
+    fID           = trk.fID;\r
+    fLabel        = trk.fLabel;\r
+    fParticleType = trk.fParticleType;\r
+    fCharge       = trk.fCharge;\r
+    fStatus       = trk.fStatus;\r
+    fFlags     = trk.fFlags;\r
+  }\r
+  return *this;\r
+}\r
+\r
+//_____________________________________________________________\r
+void AliJBaseTrack::Print(Option_t* option = "" ) const{\r
+  //object print out\r
+  std::cout<<Form("(ID,Type,Charge,Flags)=(%d, %d, %d, %d)" , \r
+                  fID, fParticleType, fCharge,  fFlags );\r
+  TLorentzVector::Print(option);\r
+}\r
+\r
+ClassImp(AliJBaseTrack)\r
+\r
diff --git a/PWGCF/Correlations/JCORRAN/AliJBaseTrack.h b/PWGCF/Correlations/JCORRAN/AliJBaseTrack.h
new file mode 100755 (executable)
index 0000000..05e0c55
--- /dev/null
@@ -0,0 +1,74 @@
+// $Id: AliJBaseTrack.h,v 1.5 2008/05/08 15:19:52 djkim Exp $
+
+///////////////////////////////////////////////////
+/*
+   \file AliJBaseTrack.h
+   \brief
+   \author J. Rak, D.J.Kim, R.Diaz (University of Jyvaskyla)
+   \email: djkim@jyu.fi
+   \version $Revision: 1.5 $
+   \date $Date: 2008/05/08 15:19:52 $
+   */
+///////////////////////////////////////////////////
+
+#ifndef ALIJBASETRACK_H
+#define ALIJBASETRACK_H
+
+#ifndef ROOT_TObject
+#include <TObject.h>
+#endif
+
+#include  "AliJConst.h"
+#include  "TLorentzVector.h"
+
+class AliJBaseTrack : public TLorentzVector {
+ public:
+  enum { kIsIsolated, kNFlag };
+  AliJBaseTrack();
+  AliJBaseTrack(float px,float py, float pz, float e, Int_t id, Short_t ptype, Char_t charge); // constructor
+  AliJBaseTrack(const AliJBaseTrack& a);
+  AliJBaseTrack(const TLorentzVector & a);
+  virtual ~AliJBaseTrack(){;}          //destructor
+
+  float   GetTwoPiPhi() const {return Phi()>-kJPi/3 ? Phi() : kJTwoPi+Phi();} 
+  TLorentzVector GetLorentzVector(){ return TLorentzVector( *this);}
+
+  Int_t         GetID()           const { return fID;}
+  Int_t         GetLabel()        const { return fLabel; }
+  Short_t       GetParticleType() const { return fParticleType;}
+  ULong_t       GetStatus()       const { return fStatus; }
+  Short_t       GetCharge()       const { return fCharge; } 
+  UInt_t        GetFlags()        const { return fFlags; }
+  Bool_t        GetIsIsolated()   const { return IsTrue(kIsIsolated);}
+
+
+  void SetID      (const int id){fID=id;}
+  void SetLabel   (const Int_t label ){ fLabel=label; }
+  void SetParticleType(const Short_t ptype){ fParticleType=ptype; }
+  void SetStatus  (const ULong_t status){ fStatus=status; }
+  void SetCharge  (const Char_t charge){ fCharge=charge; }
+  void SetFlags   (const UInt_t bits ){ fFlags=bits; }
+  void SetIsIsolated(Bool_t tf){ SetFlag( kIsIsolated, tf); }
+
+  void Print(Option_t* option) const;
+
+  // Handel BitsData
+  Bool_t IsTrue(int i ) const { return TESTBIT(fFlags, i); }
+  void SetFlag(int i, Bool_t t){ if(t){SETBIT(fFlags,i);}else{CLRBIT(fFlags, i);}}
+
+  // Operators
+  AliJBaseTrack& operator=(const AliJBaseTrack& trk);
+
+ protected:
+  Int_t         fID;            // Unique track ID
+  Int_t         fLabel;         // Unique track label for MC-Data relation
+  Short_t       fParticleType;  // ParticleType 
+  Char_t        fCharge;        // track charge for real data
+  ULong_t       fStatus;        // reconstruction status flags or MC status 
+  UInt_t        fFlags;         // store series of any boolen value.
+
+  ClassDef(AliJBaseTrack,1)
+};
+
+#endif
+
diff --git a/PWGCF/Correlations/JCORRAN/AliJCORRANTask.cxx b/PWGCF/Correlations/JCORRAN/AliJCORRANTask.cxx
new file mode 100755 (executable)
index 0000000..145f6d7
--- /dev/null
@@ -0,0 +1,1003 @@
+/**************************************************************************
+ * Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
+ *                                                                        *
+ * Author: The ALICE Off-line Project.                                    *
+ * Contributors are mentioned in the code where appropriate.              *
+ *                                                                        *
+ * Permission to use, copy, modify and distribute this software and its   *
+ * documentation strictly for non-commercial purposes is hereby granted   *
+ * without fee, provided that the above copyright notice appears in all   *
+ * copies and that both the copyright notice and this permission notice   *
+ * appear in the supporting documentation. The authors make no claims     *
+ * about the suitability of this software for any purpose. It is          *
+ * provided "as is" without express or implied warranty.                  *
+ **************************************************************************/
+
+//______________________________________________________________________________
+// Analysis task for high pt particle correlations 
+// author: R.Diaz, J. Rak,  D.J. Kim
+// ALICE Group University of Jyvaskyla 
+// Finland 
+// Fill the analysis containers for ESD or AOD
+// Adapted for AliAnalysisTaskSE and AOD objects  
+//////////////////////////////////////////////////////////////////////////////
+
+
+#include <Riostream.h>
+#include <TChain.h>
+#include <TVectorT.h> 
+#include <TVector3.h> 
+#include <TFile.h>
+#include <TH1.h> 
+#include <TClonesArray.h>
+#include <TObjArray.h>
+#include <TObjString.h>
+#include <TFormula.h>
+#include <TString.h>
+#include <TRefArray.h>
+#include <TNtuple.h>
+
+#include "AliAnalysisTaskSE.h"
+#include "AliAODHandler.h"
+
+#include "AliJCORRANTask.h" 
+#include "AliAnalysisManager.h"
+#include "AliESDEvent.h" 
+#include "AliMCEvent.h" 
+#include "AliStack.h" 
+#include "AliGenEventHeader.h"
+#include "AliGenCocktailEventHeader.h"
+#include "AliGenPythiaEventHeader.h"
+#include "AliInputEventHandler.h"
+#include "AliESDCaloCluster.h" 
+#include "AliAODEvent.h"
+#include "AliAODHeader.h"
+#include "AliLog.h"
+#include "AliESDVertex.h"
+#include "AliESDtrack.h"
+#include "AliAODTrack.h"
+#include "AliAnalysisFilter.h"
+#include "AliESDtrackCuts.h"
+#include "AliAODVertex.h" 
+#include "AliAODTracklets.h" 
+#include "AliAODPid.h" 
+#include "AliESDUtils.h"
+//#include "AliESDVZERO.h" 
+#include "AliCentrality.h" 
+#include "AliAODTracklets.h"
+#include "AliMultiplicity.h"
+#include "AliJConst.h"
+#include "AliESDRun.h"
+#include "AliESDVZERO.h"
+#include "AliExternalTrackParam.h"
+//== EMCAL
+#include "AliESDCaloCluster.h"
+#include "AliEMCALGeometry.h"
+#include "AliVCluster.h"
+#include "AliVCaloCells.h"
+#include "AliEMCALRecoUtils.h"
+#include "AliEMCALPIDUtils.h"
+
+#include "AliJTrack.h"
+#include "AliJMCTrack.h"
+#include "AliJPhoton.h"
+#include "AliJEventHeader.h"
+#include "AliJRunHeader.h"
+
+//______________________________________________________________________________
+AliJCORRANTask::AliJCORRANTask() :   
+    AliAnalysisTaskSE("PWG4JCORRAN"),
+    fRunType("LHC10h"), // enable filling EP info
+    fInputFormat("ESD"),
+    fEsdTrackCuts(0x0), 
+    fESDFilter(0x0), 
+    fIsRealOrMC(), 
+    fAODName("jcorran.root"),
+    fStoreEventPlaneSource(false), 
+    fStoreTPCTrack(false), 
+    fOADBPath(),
+    fTrackList(0),
+    fMCTrackList(0x0),
+    fPhotonList(0x0),
+    fHeaderList(0x0),
+    fRunInfoList(0x0),
+    fPIDesd(0x0),
+    fPIDResponse(0x0),
+    fPIDCombined(0x0),
+    fVZEROData(0x0), 
+    fTZEROData(0x0), 
+    //fFMDData(0x0), 
+    fZDCData(0x0), 
+    fAliRunHeader(0x0),
+    fEMCALGeoUtils(0x0),    
+    fPHOSGeom(0x0)
+{
+  //Default constructor
+  for(Int_t i=0;i<kRangeTriggerTableAlice;i++)   fActiveTriggers[i]=" ";
+  for(Int_t i=0;i<kRangeTriggerTableJCorran;i++) fTriggerTableJCorran[i]=" ";
+
+  fIsRealOrMC.ResizeTo(1);
+  fIsRealOrMC[0]=0;
+
+  DefineInput (0, TChain::Class());
+  DefineInput (1, TList::Class());
+  DefineOutput (1, TList::Class());
+  //  DefineOutput (2, TList::Class());
+}
+
+//______________________________________________________________________________
+AliJCORRANTask::AliJCORRANTask(const char *name, TString inputformat):
+    AliAnalysisTaskSE(name), 
+    fRunType("LHC10h"), // enable filling EP info
+    fInputFormat(inputformat),  
+    fEsdTrackCuts(0x0), 
+    fESDFilter(0x0), 
+    fIsRealOrMC(), 
+    fAODName("jcorran.root"),
+    fStoreEventPlaneSource(false), 
+    fStoreTPCTrack(false), 
+    fOADBPath(),
+    fTrackList(0),
+    fMCTrackList(0x0),
+    fPhotonList(0x0),
+    fHeaderList(0x0),
+    fRunInfoList(0x0),
+    fPIDesd(0x0),
+    fPIDResponse(0x0),
+    fPIDCombined(0x0),
+    fVZEROData(0x0), 
+    fTZEROData(0x0), 
+    //fFMDData(0x0), 
+    fZDCData(0x0), 
+    fAliRunHeader(0x0),
+    fEMCALGeoUtils(0x0),    
+    fPHOSGeom(0x0)
+{
+  // Constructor
+  if(fDebug > 5) cout << "---- AliJCORRANTask Constructor ----"<<endl;
+
+  for(Int_t i=0;i<kRangeTriggerTableAlice;i++)   fActiveTriggers[i]=" ";
+  for(Int_t i=0;i<kRangeTriggerTableJCorran;i++) fTriggerTableJCorran[i]=" ";
+
+  fIsRealOrMC.ResizeTo(1);
+
+  fIsRealOrMC[0]=0;
+
+  DefineInput (0, TChain::Class());
+  //  DefineInput (1, TList::Class());
+  DefineOutput (1, TList::Class());
+  //  DefineOutput (2, TList::Class());
+}
+
+//____________________________________________________________________________
+AliJCORRANTask::AliJCORRANTask(const AliJCORRANTask& ap) :
+    AliAnalysisTaskSE(ap.GetName()), 
+    fRunType(ap.fRunType), 
+    fInputFormat(ap.fInputFormat),
+    fEsdTrackCuts(ap.fEsdTrackCuts), 
+    fESDFilter(ap.fESDFilter), 
+    fIsRealOrMC(ap.fIsRealOrMC), 
+    fAODName(ap.fAODName), 
+    fStoreEventPlaneSource(ap.fStoreEventPlaneSource), 
+    fStoreTPCTrack(ap.fStoreTPCTrack), 
+    fOADBPath(ap.fOADBPath),
+    fTrackList(ap.fTrackList),
+    fMCTrackList(ap.fMCTrackList),
+    fPhotonList(ap.fPhotonList),
+    fHeaderList(ap.fHeaderList),
+    fRunInfoList(ap.fRunInfoList),
+    fPIDesd(ap.fPIDesd),
+    fPIDResponse(ap.fPIDResponse),
+    fPIDCombined(ap.fPIDCombined),
+    fVZEROData(ap.fVZEROData), 
+    fTZEROData(ap.fTZEROData), 
+    //fFMDData(ap.fFMDData), 
+    fZDCData(ap.fZDCData), 
+    fAliRunHeader(ap.fAliRunHeader),
+    fEMCALGeoUtils(ap.fEMCALGeoUtils),    
+    fPHOSGeom(ap.fPHOSGeom)
+{ 
+  // cpy ctor
+  for(int k=0; k < kRangeTriggerTableAlice; k++)
+    fActiveTriggers[k] = ap.fActiveTriggers[k];
+
+  for(int j=0; j < kRangeTriggerTableJCorran; j++)
+    fTriggerTableJCorran[j] = ap.fTriggerTableJCorran[j];
+
+  fIsRealOrMC.ResizeTo(1);
+
+  fIsRealOrMC[0]                    = ap.fIsRealOrMC[0];
+
+}
+
+//_____________________________________________________________________________
+AliJCORRANTask& AliJCORRANTask::operator = (const AliJCORRANTask& ap)
+{
+  // assignment operator
+
+  this->~AliJCORRANTask();
+  new(this) AliJCORRANTask(ap);
+  return *this;
+}
+
+//______________________________________________________________________________
+AliJCORRANTask::~AliJCORRANTask()
+{
+  // destructor 
+  delete fTrackList;
+  delete fMCTrackList;
+  delete fPhotonList;
+  delete fHeaderList;
+  delete fAliRunHeader;
+  delete fRunInfoList;
+  delete fPIDesd;
+  delete fOADBPath;
+  delete fPIDResponse;
+  delete fPIDCombined;
+  delete fEMCALGeoUtils;
+  delete fPHOSGeom;
+  delete fVZEROData;
+  delete fTZEROData;
+  delete fZDCData;
+  //  delete fFMDData;
+
+
+}
+
+//________________________________________________________________________
+
+void AliJCORRANTask::UserCreateOutputObjects()
+{  
+  //=== create the jcorran outputs objects
+  if(fDebug > 1) printf("AliJCORRANTask::UserCreateOutPutData() \n");
+
+  //=== Get AnalysisManager
+  AliAnalysisManager *man = AliAnalysisManager::GetAnalysisManager();
+  if(!man->GetOutputEventHandler()) {
+    Fatal("UserCreateOutputObjects", "This task needs an AOD handler");
+    return;
+  }
+  man->RegisterExtraFile(fAODName.Data());
+
+  //=== Other Objects
+  fEMCALGeoUtils = AliEMCALGeometry::GetInstance("EMCAL_COMPLETE");
+  fPHOSGeom = new AliPHOSGeoUtils();
+
+  //=== Set Tree and TClonesArray
+  //== TRACKS
+  AddListAODBranch("AliJTrackList", "AliJTrack", &fTrackList, 1000);
+  AddListAODBranch("AliJPhotonList", "AliJPhoton", &fPhotonList, 1000);
+  if((bool)fIsRealOrMC[0]) 
+    AddListAODBranch("AliJTMCrackList", "AliJMCTrack", &fMCTrackList, 1000);
+  //== Event Header
+  AddListAODBranch("AliJEventHeaderList", "AliJEventHeader", &fHeaderList, 1000);
+  //== RUN HEADER
+  fAliRunHeader = new AliJRunHeader();
+  fRunInfoList = new TList();
+  fRunInfoList->SetName("RunInfoList");
+  fRunInfoList->SetOwner();
+  fRunInfoList->Clear();
+  fRunInfoList->Add(fAliRunHeader);
+  //== EventPlane SRC
+  if( fStoreEventPlaneSource ){
+    fVZEROData = new AliESDVZERO;
+    fTZEROData = new AliESDTZERO;
+    fZDCData   = new AliESDZDC;
+    AddAODBranch("AliESDVZERO", &fVZEROData,  fAODName.Data());
+    AddAODBranch("AliESDTZERO", &fTZEROData,  fAODName.Data());
+    AddAODBranch("AliESDZDC",   &fZDCData,    fAODName.Data());
+  }
+  //== PID
+  fPIDesd = new AliESDpid;
+  fPIDCombined = new AliPIDCombined;
+  fPIDCombined->SetDefaultTPCPriors();
+  fPIDCombined->SetDetectorMask(AliPIDResponse::kDetTPC+AliPIDResponse::kDetTOF);
+  fPIDResponse = ((AliInputEventHandler*) (man->GetInputEventHandler()))->GetPIDResponse();
+  fPIDResponse->SetOADBPath(AliAnalysisManager::GetOADBPath());
+  if (!fOADBPath.IsNull()) fPIDResponse->SetOADBPath(fOADBPath.Data());
+
+  cout << "Add(fAliRunHeader) in UserCreateObject() ======= " << endl;
+  PostData(1,fRunInfoList);
+
+}
+
+//______________________________________________________________________________
+void AliJCORRANTask::UserExec(Option_t* /*option*/) 
+{
+
+  // Processing of one event
+  if(fDebug > 5) cout << "------- AliJCORRANTask Exec-------"<<endl;
+  if(!((Entry()-1)%100))  AliInfo(Form(" Processing event # %lld",  Entry())); 
+
+  //=== Init Variables
+  fTrackList->Clear();
+  if((bool)fIsRealOrMC[0]) fMCTrackList->Clear();
+  fPhotonList->Clear();
+  fHeaderList->Clear();
+
+  //=== COMMON for ESD and AOD
+  static int runId=-1;
+  AliVEvent *event = InputEvent();
+  if(!event) return;
+  AliMCEvent* mcEvent = NULL;
+  if((bool)fIsRealOrMC[0])  mcEvent = MCEvent();
+  // RUN Header
+  if(event->GetRunNumber() != runId){ //new run has started
+    runId = event->GetRunNumber();
+    //Polarity of magnetic field in L3 solenoid
+    Short_t l3MgFieldPolarity=0; // (LHC convention: +current -> +Bz)
+    //Create internal JCorran trigger mask.  Mapping between trigger and trigger bit
+    fTriggerTableJCorran[kMinBiasTriggerBitJCorran]="Minimum Bias";//minimum bias occupies first trigger bit
+    fTriggerTableJCorran[kHighMultTriggerBitJCorran]="High Multiplicity";//high multiplicity trigger => second trigger bit
+    //=========== Fill Run header object ===============
+    fAliRunHeader->SetRunNumber(runId);
+    fAliRunHeader->SetActiveTriggersJCorran(fTriggerTableJCorran,kRangeTriggerTableJCorran);
+    SetAliceTriggerDef(fAliRunHeader);//TODO for AOD
+    SetAliceFilterMapDef(fAliRunHeader);// TODO for AOD
+    //FOR ESD
+    if(fInputFormat=="ESD"){
+      AliESDEvent* esd = dynamic_cast<AliESDEvent*>(event);
+      if(esd->GetCurrentL3() >0) l3MgFieldPolarity =  1;
+      if(esd->GetCurrentL3() <0) l3MgFieldPolarity = -1;
+      fAliRunHeader->SetL3Field(l3MgFieldPolarity, esd->GetMagneticField());
+      const AliESDRun* esdRun = esd->GetESDRun();
+      for(Int_t triggerBit=0; triggerBit<kRangeTriggerTableAlice; triggerBit++){
+        fActiveTriggers[triggerBit] = esdRun->GetTriggerClass(triggerBit);
+      }
+      fAliRunHeader->SetActiveTriggersAlice(fActiveTriggers);
+    }
+    fRunInfoList->Add(fAliRunHeader);
+    cout << "Add(fAliRunHeader) is done =============" << endl;
+  }
+
+  //=== If ESD or AOD
+  if(fInputFormat=="ESD"){   //Reading ESD  
+    if(fDebug > 5) cout << "\t------- Start ESD "<<endl;
+    AliESDEvent* esd = dynamic_cast<AliESDEvent*>(event);
+    ReadESDHeader(esd);
+    ReadESDTracks(esd);
+    //ReadESDCaloClusters(esd);
+    if((bool)fIsRealOrMC[0]) ReadMCTracks(mcEvent);
+  }else if( fInputFormat == "AOD") {
+    if(fDebug > 5) cout << "\t------- Start AOD "<<endl;
+    AliAODEvent* aod = dynamic_cast<AliAODEvent*>(event);
+    ReadAODHeader(aod);
+    ReadAODTracks(aod);
+    //ReadAODCaloClusters(aod);
+  }else{
+    cout << "Error: Not correct InputDataFormat especified " << endl;
+    return;
+  }
+
+  //=== TODO : need this?
+  AliAODHandler* outputHandler = 
+      (AliAODHandler*) ((AliAnalysisManager::GetAnalysisManager())->GetOutputEventHandler());
+  outputHandler->SetFillAOD(kTRUE);
+  outputHandler->SetFillExtension(kTRUE);
+  PostData(1,fRunInfoList);
+
+  if(fDebug > 5) cout << "\t------- End UserExec "<<endl;
+}
+
+//______________________________________________________________________________
+void AliJCORRANTask::Init()
+{
+  // Intialisation of parameters
+  AliInfo("Doing initialization") ; 
+
+  TString formula(fEsdTrackCuts->GetMaxDCAToVertexXYPtDep());
+  if(formula.Length()>0){ // momentum dep DCA cut for AOD
+    formula.ReplaceAll("pt","x");
+  }
+}
+
+//______________________________________________________________________________
+void AliJCORRANTask::Terminate(Option_t *)
+{
+  // Processing when the event loop is ended
+  cout<<"PWG4JCORRAN Analysis DONE !!"<<endl; 
+  // Printout fRunInfoList here
+  fRunInfoList = dynamic_cast<TList*> (GetOutputData(1));
+  if(fRunInfoList)
+  {
+    fAliRunHeader = dynamic_cast<AliJRunHeader*> (fRunInfoList->FindObject("AliJRunHeader"));
+    if(fAliRunHeader) {fAliRunHeader->Print();}
+  }
+  else
+  {
+    cout << "WARNING : Run Information List is empty" << endl;
+  }
+
+}
+
+//______________________________________________________________________________
+void AliJCORRANTask::ReadESDTracks(AliESDEvent * esd)
+  //void AliJCORRANTask::ReadESDTracks(const AliESDEvent * esd)
+{
+  // Read the AliESDtrack and fill the list of AliJTrack containers
+  Int_t nt = esd->GetNumberOfTracks();
+  if(fDebug > 5) cout << "ESD::NumberOfTracks = " << nt << endl;
+  Short_t ntrk = 0;
+
+  //loop over tracks
+  for(Int_t it = 0; it < nt; it++) { 
+
+    AliESDtrack *track = esd->GetTrack(it);
+    if( !track ) continue;
+    if(! fEsdTrackCuts->IsSelected(track)) continue; // apply track selection criteria
+    UInt_t filterMap = fESDFilter->IsSelected( track );
+    //------------ T P C ------------
+    Float_t tpcDca[2], tpcCov[3]; // dca_xy, dca_z, sigma_xy, sigma_xy_z, sigma_z
+    track->GetImpactParametersTPC(tpcDca,tpcCov);
+
+    Int_t nClust         = track->GetTPCclusters(0);
+    Int_t nFindableClust = track->GetTPCNclsF();
+    Float_t tpcChi2PerCluster = 0.;
+    if(nClust>0.) tpcChi2PerCluster = track->GetTPCchi2()/Float_t(nClust);
+
+    Float_t tpcClustPerFindClust = 0.;
+    if(nFindableClust>0.) tpcClustPerFindClust = Float_t(nClust)/nFindableClust;
+    //--------------------------------
+
+    //create a new AliJTrack and fill the track info
+    AliJTrack * ctrack = new( (*fTrackList)[fTrackList->GetEntriesFast()] ) AliJTrack;
+    ctrack->SetPxPyPzE(track->Px(), track->Py(), track->Pz(), 0 );
+    ctrack->SetTPCdEdx( track->GetTPCsignal()  );
+    if( fStoreTPCTrack ){
+      AliESDtrack *tpcTrack = AliESDtrackCuts::GetTPCOnlyTrack( esd,  it );
+      if( !tpcTrack ) continue;
+      ctrack->SetTPCTrack( tpcTrack->Px(),  tpcTrack->Py(),  tpcTrack->Pz());
+    }
+    ReadESDPID( track, ctrack );
+    ctrack->SetParticleType(kNone);
+    ctrack->SetCharge(track->Charge());
+    ctrack->SetFilterMap( filterMap );
+
+    if(fDebug > 5 && track->P()>1 ) cout << "P = " << track->P() << endl;
+
+    ++ntrk;
+  } // end tracks loop
+}
+
+//_________________________________________________________________________________-
+void AliJCORRANTask::ReadESDPID(AliESDtrack *track, AliJTrack *ctrack)
+{
+  // Probability calculation for PID
+  Double_t probTPC[AliPID::kSPECIES]={0.};
+  Double_t probTOF[AliPID::kSPECIES]={0.};
+  Double_t probTPCTOF[AliPID::kSPECIES]={0.};
+  //
+  fPIDCombined->SetDetectorMask(AliPIDResponse::kDetTPC);
+  UInt_t detUsed = fPIDCombined->ComputeProbabilities(track, fPIDResponse, probTPC);
+  if (detUsed != 0) {  // TPC is available
+    for (Int_t ispec=0; ispec<AliPID::kSPECIES; ++ispec) {
+      Double_t nSigmaTPC = fPIDResponse->NumberOfSigmasTPC(track,(AliPID::EParticleType)ispec);
+      ctrack->SetTPCsigma(AliJTrack::AliJTrkPID(ispec), nSigmaTPC);
+    }
+
+    // compute priors for TPC+TOF, even if we ask just TOF for PID
+    fPIDCombined->SetDetectorMask(AliPIDResponse::kDetTOF);
+    detUsed = fPIDCombined->ComputeProbabilities(track, fPIDResponse, probTOF);
+    if (detUsed != 0) {  // TOF is available
+      for (Int_t ispec=0; ispec<AliPID::kSPECIES; ++ispec) {
+        Double_t nSigmaTOF = fPIDResponse->NumberOfSigmasTOF(track,(AliPID::EParticleType)ispec);
+        ctrack->SetTOFsigma(AliJTrack::AliJTrkPID(ispec), nSigmaTOF);
+      }
+    }
+
+    fPIDCombined->SetDetectorMask(AliPIDResponse::kDetTOF|AliPIDResponse::kDetTPC);
+    detUsed = fPIDCombined->ComputeProbabilities(track, fPIDResponse, probTPCTOF);
+  }
+
+  for (int ip=0 ; ip < (AliPID::kSPECIES); ip++) {
+    ctrack->SetPID(AliJTrack::AliJTrkPID(ip), probTOF[ip], AliJTrack::kTOF);
+    ctrack->SetPID(AliJTrack::AliJTrkPID(ip), probTPC[ip], AliJTrack::kTPC);
+    ctrack->SetPID(AliJTrack::AliJTrkPID(ip), probTPCTOF[ip], AliJTrack::kTPCTOF);
+  }
+
+  // TOF beta and expected beta
+  Float_t beta = -1;  Float_t minP = 0.2; Float_t minTPCsignal = 40; Float_t minTOFLength = 365.; Float_t minTOFsignal = 12000;
+  Double_t inttimes[10];  Float_t betaTh[10]; Double_t dEdxTh[10];
+  track->GetIntegratedTimes(inttimes);
+  for(int i=0;i<10;i++) {
+    betaTh[i] = -1.; // initialize expected beta = -1
+    dEdxTh[i] = -1.; // initialize expected dEdx = -1
+  }
+  if(track->P() > minP && track->GetTPCsignal() > minTPCsignal && (track->GetStatus() & AliESDtrack::kTOFout) 
+     && (track->GetStatus() & AliESDtrack::kTIME) && (track->GetIntegratedLength() > minTOFLength)&& track->GetTOFsignal() > minTOFsignal) {
+    Double_t consCal = 33.3564095198152043; 
+    beta = track->GetIntegratedLength() / (track->GetTOFsignal() - fPIDesd->GetTOFResponse().GetStartTime(track->P())) * consCal;
+    for(int i=0; i<10; i++) {
+      betaTh[i] = track->GetIntegratedLength() / ( inttimes[i] ) * consCal;
+    }
+  }
+  ctrack->SetTOFbeta(beta);
+
+  Double_t ptpc[3];
+  track->GetInnerPxPyPz(ptpc);
+  Float_t momtpc=TMath::Sqrt(ptpc[0]*ptpc[0] + ptpc[1]*ptpc[1] + ptpc[2]*ptpc[2]);
+  for(int ip=0; ip < (AliJTrack::kNAliJTrkPID); ip++) {
+    ctrack->SetExpectedTOFbeta(AliJTrack::AliJTrkPID(ip), betaTh[ip]);
+    // expected dEdx
+    dEdxTh[ip] = fPIDesd->GetTPCResponse().GetExpectedSignal(momtpc, AliPID::EParticleType(ip));
+    ctrack->SetExpectedTPCdEdx(AliJTrack::AliJTrkPID(ip), dEdxTh[ip]);
+  }
+
+
+
+}
+
+//______________________________________________________________________________
+void AliJCORRANTask::ReadAODTracks(const AliAODEvent * aod)
+{
+  // Read the AliAODtrack and fill the list of AliJTrack containers
+  Int_t nt = aod->GetNumberOfTracks();
+  if(fDebug > 5) cout << "AOD::NumberOfTracks = " << nt << endl;
+  cout << "AOD::NumberOfTracks = " << nt << endl;
+  //Short_t ntrk = 0;
+  //loop over tracks
+  for(Int_t it = 0; it < nt; it++) { 
+
+    AliAODTrack *track = aod->GetTrack(it);
+    //if(!AcceptAODTrack(track)) continue; 
+    //if(! fEsdTrackCuts->IsSelected(track)) continue; //apply loose selection criteria
+    //FK//if(track->GetType() != AliAODTrack::kPrimary) continue; // only primaries 
+
+    AliJTrack * ctrack = new( (*fTrackList)[fTrackList->GetEntriesFast()] ) AliJTrack;
+    ctrack->SetPxPyPzE(track->Px(), track->Py(), track->Pz(), 0 );
+    //TODO if( fStoreTPCTrack )
+    ctrack->SetParticleType(kNone);
+    ctrack->SetCharge(track->Charge());
+    ctrack->SetStatus(track->GetStatus());//
+    ctrack->SetFlags( track->GetFlags() );
+    ctrack->SetLabel( track->GetLabel() );
+    //FilterMap
+    UInt_t filterMap=0;
+    for( unsigned int i=0;i<sizeof(filterMap)*8;i++ ){
+      filterMap |= track->TestFilterBit( 1UL<<i ); 
+    }
+    ctrack->SetFilterMap( filterMap );
+
+    //PID TODO
+    double const * pid = track->PID();
+    ctrack->SetPID(AliJTrack::kElectronAliJ,pid[AliAODTrack::kElectron],AliJTrack::kTOF);
+    ctrack->SetPID(AliJTrack::kMuonAliJ,    pid[AliAODTrack::kMuon],    AliJTrack::kTOF);
+    ctrack->SetPID(AliJTrack::kPionAliJ,    pid[AliAODTrack::kPion],    AliJTrack::kTOF);
+    ctrack->SetPID(AliJTrack::kKaonAliJ,    pid[AliAODTrack::kKaon],    AliJTrack::kTOF);
+    ctrack->SetPID(AliJTrack::kProtonAliJ,  pid[AliAODTrack::kProton],  AliJTrack::kTOF);
+    //TPC
+    ctrack->SetTPCnClust(track->GetTPCNcls());
+    ctrack->SetTPCdEdx( track->GetTPCsignal()  );
+
+    if((bool) fIsRealOrMC[0]){
+      //Int_t  label = track->GetLabel();
+      //ctrack->SetITSLabel(label);
+      //ctrack->SetTPCLabel(label);       
+    }
+
+
+    if(fDebug > 5 && track->P()>1 ) cout << "P = " << track->P() << endl;
+  } // end tracks loop
+}
+
+//______________________________________________________________________________
+void AliJCORRANTask::ReadESDCaloClusters(const AliESDEvent* esd)
+{
+  //AliVEvent * event = InputEvent();
+  AliVEvent * event = (AliVEvent*)esd;
+  TRefArray *caloClustersArr=new TRefArray();
+  event->GetEMCALClusters(caloClustersArr);
+  Double_t v[3];
+  event->GetPrimaryVertex()->GetXYZ(v);
+
+  AliEMCALRecoUtils * fRecoUtils = new AliEMCALRecoUtils;
+
+  //const Int_t kNumberOfEMCALClusters =caloClustersArr->GetEntries();
+  Int_t numberOfCaloClusters = caloClustersArr->GetEntries() ;
+  if(fDebug > 5) cout << "ESD::number of ESD caloclusters " << numberOfCaloClusters << endl;
+
+  AliVCaloCells *emCells =event->GetEMCALCells();
+
+  int nPhotons = 0;
+  for(Int_t icluster=0; icluster<numberOfCaloClusters; icluster++){
+    AliVCluster *c1 = (AliVCluster*) caloClustersArr->At(icluster);
+    if( !c1 ) continue;
+    //== remove bad channels
+    if(fRecoUtils->ClusterContainsBadChannel(fEMCALGeoUtils, c1->GetCellsAbsId(), c1->GetNCells())) continue;
+    //== check energy and position
+    if(fRecoUtils->IsRecalibrationOn()){
+      fRecoUtils->RecalibrateClusterEnergy(fEMCALGeoUtils, c1, emCells);
+      fRecoUtils->RecalculateClusterShowerShapeParameters(fEMCALGeoUtils, emCells, c1);
+      fRecoUtils->RecalculateClusterPID(c1);
+    }
+    //== correct non linearity
+    c1->SetE(fRecoUtils->CorrectClusterEnergyLinearity(c1));
+
+    //== corrected clusters
+    if(c1->E() < 0.8 || c1->E() > 30) continue; //TODO
+    //fRecoUtils->GetMaxEnergyCell(fEMCALGeo, emCells, c1, absID1, iSM, ieta1, iphi1, shared); 
+
+    AliJPhoton *pht = new( (*fPhotonList)[nPhotons++] ) AliJPhoton;
+    pht->SetParticleType(kNone);//kPhoton);
+    pht->SetChi2(c1->Chi2());
+    pht->SetPID(c1->GetPID());
+    Float_t pos[3];
+    TLorentzVector p1;
+    c1->GetPosition(pos);
+    c1->GetMomentum(p1, v);
+    //TODO
+    pht->SetPositionX(pos[0]);
+    pht->SetPositionY(pos[1]);
+    pht->SetPositionZ(pos[2]);
+    pht->SetPxPyPzE( p1.Px(), p1.Py(), p1.Pz(), p1.E());
+    pht->SetTrackDx( c1->GetTrackDx() );
+    pht->SetTrackDz( c1->GetTrackDz() );
+    pht->SetCharge(0);
+    if(c1->IsEMCAL()) pht->SetCaloType(AliJPhoton::kEMCALCalo);
+    if(c1->IsPHOS())  pht->SetCaloType(AliJPhoton::kPHOSCalo);
+    pht->SetDistToBadChannel(c1->GetDistanceToBadChannel());
+    pht->SetDispersion(c1->GetDispersion());
+    pht->SetM20(c1->GetM20());
+    pht->SetM02(c1->GetM02());
+    pht->SetEmcCpvDist(c1->GetEmcCpvDistance());
+    pht->SetNCells(c1->GetNCells());
+    pht->SetCellsAmplitudeFraction( c1->GetCellsAmplitudeFraction() );
+    pht->SetCellsAbsId(c1->GetCellsAbsId());
+    Int_t imoduleID = GetSuperModuleNumber(c1->IsEMCAL(), c1->GetCellAbsId(0));
+    pht->SetSuperModuleID(imoduleID);
+  }
+  delete fRecoUtils;
+  delete caloClustersArr;
+
+}
+
+//______________________________________________________________________________
+void AliJCORRANTask::ReadAODCaloClusters(const AliAODEvent* aod)
+{
+  if( !aod ) aod=0;
+  // Read the AliAODCaloClusters and fill the list of AliJPhoton containers
+}
+
+//______________________________________________________________________________
+AliJEventHeader* AliJCORRANTask::ReadCommonHeader(AliVEvent *event){
+  //Read the AliVEvent and fill the list of AliJEventHeader containers
+  //create a header and fill it
+  AliJEventHeader *hdr = new( (*fHeaderList)[fHeaderList->GetEntriesFast()] ) AliJEventHeader;
+
+  AliVVZERO *v0 = event->GetVZEROData();
+  if( v0 ) hdr->SetV0Mult(v0->GetMTotV0A() + v0->GetMTotV0C());
+  // Get Centrality as a percent from 0% to 100%
+  AliCentrality *cent = event->GetCentrality();
+  if( cent ){
+    hdr->SetCentrality( cent->GetCentralityPercentile("V0M"));
+    hdr->SetCentralityArray(AliJEventHeader::kcV0M, cent->GetCentralityPercentile("V0M"));
+    hdr->SetCentralityArray(AliJEventHeader::kcFMD, cent->GetCentralityPercentile("FMD"));
+    hdr->SetCentralityArray(AliJEventHeader::kcTRK, cent->GetCentralityPercentile("TRK"));
+    hdr->SetCentralityArray(AliJEventHeader::kcTKL, cent->GetCentralityPercentile("TKL"));
+    hdr->SetCentralityArray(AliJEventHeader::kcCL0, cent->GetCentralityPercentile("CL0"));
+    hdr->SetCentralityArray(AliJEventHeader::kcCL1, cent->GetCentralityPercentile("CL1"));
+    hdr->SetCentralityArray(AliJEventHeader::kcV0MvsFMD, cent->GetCentralityPercentile("V0MvsFMD"));
+    hdr->SetCentralityArray(AliJEventHeader::kcTKLvsV0, cent->GetCentralityPercentile("TKLvsV0"));
+    hdr->SetCentralityArray(AliJEventHeader::kcZEMvsZDC, cent->GetCentralityPercentile("ZEMvsZDC"));
+  }
+  hdr->SetTriggerMaskAlice(event->GetTriggerMask()); //ULong64_t
+  hdr->SetTriggerMaskJCorran(ConvertTriggerMask()); //UInt_t
+  hdr->SetEventType(event->GetEventType());
+  int ncontributors = 0;
+  const AliVVertex * vtxESD = event->GetPrimaryVertex();
+  if(vtxESD){
+    hdr->SetXVertex(vtxESD->GetX()); //FK// EFF
+    hdr->SetYVertex(vtxESD->GetY()); //FK// EFF
+    hdr->SetZVertex(vtxESD->GetZ());
+    //hdr->SetZVertexErr(vtxESD->GetZRes());
+    double covMat[6];
+    vtxESD->GetCovarianceMatrix(covMat);
+    hdr->SetZVertexErr(TMath::Sqrt(covMat[5])); // GetZRes := TMath::Sqrt(fCovZZ)
+    ncontributors = vtxESD->GetNContributors(); // get number of contributors to vertex 
+    hdr->SetVtxMult( vtxESD->GetNContributors() );
+  }else{
+    hdr->SetZVertex(9999);
+    hdr->SetZVertexErr(9999);
+  }
+  hdr->SetVtxMult(ncontributors); //FK// EFF contrib to vertex
+  return hdr;
+}
+//______________________________________________________________________________
+void AliJCORRANTask::ReadESDHeader(AliESDEvent *esd)
+{
+  // Read the AliESDEvent and fill the list of AliJEventHeader containers
+  AliESDUtils::RefitESDVertexTracks( esd ); // TODO only for LHC11a right?
+  AliJEventHeader *hdr = ReadCommonHeader( esd );
+  //create a header and fill it
+  AliMultiplicity *fSPDMult =(AliMultiplicity *) esd->GetMultiplicity();
+  if(fSPDMult) hdr->SetSPDTrackletMult(fSPDMult->GetNumberOfTracklets());
+
+  //TODO  Store Detector data
+  if( fStoreEventPlaneSource ){
+    *fVZEROData = *esd->GetVZEROData();
+    *fTZEROData = AliESDTZERO(*esd->GetESDTZERO());
+    *fZDCData  = *esd->GetESDZDC();
+  }
+  hdr->SetEventID( esd->GetEventNumberInFile());
+  const AliESDVertex * vtxESD = esd->GetPrimaryVertex();
+  if( vtxESD->GetStatus() == 0 ) hdr->SetVtxMult( 0 );
+  // if fNcontributes > 0 then status is always true. do we need this?
+}
+
+//______________________________________________________________________________
+void AliJCORRANTask::ReadAODHeader(AliAODEvent *aod)
+{  
+  //Read the AliAODEvent and fill the list of AliJEventHeader containers
+  AliJEventHeader *hdr = ReadCommonHeader( aod );
+
+  const AliAODTracklets *trackletsSPD = aod->GetTracklets();
+  if(trackletsSPD){
+    hdr->SetSPDTrackletMult(trackletsSPD->GetNumberOfTracklets());
+  }
+  //TODO hdr->SetEventID( esd->GetEventNumberInFile());
+}
+
+//______________________________________________________________________________
+Int_t AliJCORRANTask::GetSuperModuleNumber(bool isemcal, Int_t absId)
+{
+  //get super module number 
+  if(isemcal){
+    //    return GetEMCALGeoUtils()->GetSuperModuleNumber(absId) ;
+    return fEMCALGeoUtils->GetSuperModuleNumber(absId) ;
+
+  } else {
+    Int_t    relId[4];
+    if ( absId >= 0) {
+      fPHOSGeom->AbsToRelNumbering(absId,relId);
+      fPHOSGeom->AbsToRelNumbering(absId,relId);
+      return relId[0]-1; 
+    } else return -1;
+  }//PHOS
+
+  return -1;
+}
+
+//_____________________________________________________________________________
+
+UInt_t AliJCORRANTask::ConvertTriggerMask(){
+
+  //convert alice trigger mask to jcorran trigger mask
+  UInt_t triggerMaskJC=0;
+  if(((AliInputEventHandler*)(AliAnalysisManager::GetAnalysisManager()->GetInputEventHandler()))
+     ->IsEventSelected() & AliVEvent::kMB){
+    // minimum bias TBit 0 
+    triggerMaskJC += (1<<kMinBiasTriggerBitJCorran); 
+  }
+
+  if(((AliInputEventHandler*)(AliAnalysisManager::GetAnalysisManager()->GetInputEventHandler()))
+     ->IsEventSelected() & AliVEvent::kHighMult){
+    //high multiplicity trigger TBit 1 
+    triggerMaskJC += (1<<kHighMultTriggerBitJCorran);
+  }
+
+  return triggerMaskJC;
+}
+
+
+//______________________________________________________________________________
+
+void AliJCORRANTask::ReadMCTracks(AliMCEvent *fMC){
+  //store MC information from AliStack
+  AliStack *stack = fMC->Stack();
+  Int_t np    = fMC->GetNumberOfTracks();
+
+  //  AliGenEventHeader* genHeader = fMC->GenEventHeader();
+  //  AliGenPythiaEventHeader* pythiaGenHeader = dynamic_cast<AliGenPythiaEventHeader*>(genHeader);
+  //  Double_t ptHard = 0;
+  //  Double_t nTrials = 1; // Trials for MC trigger weigth for real data
+  //  nTrials = pythiaGenHeader->Trials();
+  //  ptHard  = pythiaGenHeader->GetPtHard();
+  //  Int_t nprim = stack->GetNtrack();
+
+  Short_t ntrack = 0;
+
+  for(Int_t iTrack = 0; iTrack < np; iTrack++){
+    AliMCParticle *track = (AliMCParticle*) fMC->GetTrack(iTrack);
+    if(!track){
+      Printf("ERROR: Could not receive track %d", iTrack);
+      continue;
+    }
+    Bool_t isPrimary = fMC->Stack()->IsPhysicalPrimary(iTrack);
+    if(isPrimary){
+      //create a new JMCTrack and fill the track info
+      AliJMCTrack *ctrack = new( (*fMCTrackList)[ntrack++] ) AliJMCTrack;;
+
+      TParticle *partStack = stack->Particle(iTrack);
+      Int_t   pdg  = partStack->GetPdgCode();
+      // BS unused : Float_t engy = partStack->Energy();
+      // BS unused : Float_t pt   = partStack->Pt();
+      // BS unused : Float_t ptot = partStack->P();
+      // BS unused : Float_t eta  = partStack->Eta();
+      // BS unused : Float_t theta  = partStack->Theta();
+      // BS unused : Float_t phi    = atan2(sin( partStack->Phi()), cos(partStack->Phi()));
+      // BS unused : Short_t ch     = (Short_t) partStack->GetPDG()->Charge();
+      Int_t label    = track->GetLabel();
+
+      ctrack->SetLabel(label);
+      ctrack->SetPdgCode(pdg);
+      ctrack->SetPxPyPzE( partStack->Px(), partStack->Py(), partStack->Pz(), partStack->Energy());
+      //ctrack->SetCharge(ch);
+      ctrack->SetFlag(AliJMCTrack::kPrimary, isPrimary);
+
+      ctrack->SetProductionVertex(partStack->Vx(),partStack->Vy(),partStack->Vz());
+      /*
+         Int_t   status  = partStack->GetStatusCode();
+         ctrack->SetStatusCode(status);
+
+      //ctrack->SetPtHard(ptHard);
+
+      //bool isInc = (status ==  1 && icode ==  22); //Inclusive
+      bool ispi0 = (status == 11 && pdg == 111); //kPizero
+      bool isDgamma = (status == 6 || status == 7) && pdg == 22; // Direct photon
+      bool inPHOS  = (ispi0||isDgamma)&&fabs(eta)<0.12; 
+      bool inEMCAL = (ispi0||isDgamma)&&fabs(eta)<0.7; 
+      bool inTPC   = fabs(eta)<0.9; 
+      ctrack->SetMother(0,partStack->GetFirstMother());
+      ctrack->SetMother(1,partStack->GetSecondMother());
+      ctrack->SetDaughter(0,partStack->GetFirstDaughter());
+      ctrack->SetDaughter(1,partStack->GetLastDaughter());
+      ctrack->SetIsInPHOS(inPHOS);
+      ctrack->SetIsInEMCAL(inEMCAL);
+      ctrack->SetIsInTPC(inTPC);
+      */
+    }// loop for al primary tracks
+  }
+}
+
+//--------------------------------------------------------------------
+bool AliJCORRANTask::AcceptAODTrack(AliAODTrack* aodTrack){
+  //This function mimics for the AliAODTracks object the AliESDtrackCut function IsSelected
+  //Cuts are taken from fEsdTrackCuts object 
+  if(fEsdTrackCuts->GetMinNClusterTPC() > aodTrack->GetTPCNcls()) return kFALSE;
+
+  //if(fEsdTrackCuts->GetMaxChi2PerClusterTPC() <    );//<-------- how to check? 
+  //      ctrack->SetChi2perNDF(track->Chi2perNDF());
+
+  //         C h e c k    r e f i t
+
+  /*
+     if(fEsdTrackCuts->GetRequireTPCRefit()  && 
+     ((aodTrack->GetStatus() & AliJTrack::kTPCrefit) == 0)) return kFALSE;
+     if(fEsdTrackCuts->GetRequireITSRefit()  && 
+     ((aodTrack->GetStatus() & AliJTrack::kITSrefit) == 0)) return kFALSE;
+     */
+
+  //            C u t s   o n    D C A
+  Float_t impactDCA[3];
+  if( aodTrack->GetPosition(impactDCA)){
+    if((fEsdTrackCuts->GetMaxDCAToVertexXY()>0) && 
+       (fEsdTrackCuts->GetMaxDCAToVertexXY() < sqrt(impactDCA[0]*impactDCA[0] + impactDCA[1]*impactDCA[1]))) return kFALSE;
+    if((fEsdTrackCuts->GetMaxDCAToVertexZ()>0) &&
+       (fEsdTrackCuts->GetMaxDCAToVertexZ() < TMath::Abs(impactDCA[2]))) return kFALSE;
+  } else return kFALSE; 
+
+
+
+  // if(fEsdTrackCuts->GetAcceptKinkDaughters()) //<--------how to check ?
+  //  esdTrackCuts->SetAcceptKinkDaughters(kFALSE);
+
+
+  return kTRUE; 
+}
+
+bool AliJCORRANTask::SetAliceTriggerDef(AliJRunHeader *RunInfo){
+  RunInfo->AddAliceTriggerDef( "kMB", AliVEvent::kMB );
+  if( fRunType == "LHC10h" )
+  {
+    RunInfo->AddAliceTriggerDef( "kINT7", AliVEvent::kINT7 );
+    RunInfo->AddAliceTriggerDef( "kMUON", AliVEvent::kMUON );
+    RunInfo->AddAliceTriggerDef( "kHighMult", AliVEvent::kHighMult );
+    RunInfo->AddAliceTriggerDef( "kEMC1", AliVEvent::kEMC1 );
+    RunInfo->AddAliceTriggerDef( "kCINT5", AliVEvent::kCINT5 );
+    RunInfo->AddAliceTriggerDef( "kCMUS5", AliVEvent::kCMUS5 );
+    RunInfo->AddAliceTriggerDef( "kMUSH7", AliVEvent::kMUSH7 );
+    RunInfo->AddAliceTriggerDef( "kMUL7", AliVEvent::kMUL7 );
+    RunInfo->AddAliceTriggerDef( "kMUU7", AliVEvent::kMUU7 );
+    RunInfo->AddAliceTriggerDef( "kEMC7", AliVEvent::kEMC7 );
+    RunInfo->AddAliceTriggerDef( "kMUS7", AliVEvent::kMUS7 );
+    RunInfo->AddAliceTriggerDef( "kPHI1", AliVEvent::kPHI1 );
+    RunInfo->AddAliceTriggerDef( "kPHI7", AliVEvent::kPHI7 );
+    RunInfo->AddAliceTriggerDef( "kUserDefined", AliVEvent::kUserDefined );
+    RunInfo->AddAliceTriggerDef( "kFastOnly", AliVEvent::kFastOnly );
+    RunInfo->AddAliceTriggerDef( "kAny", AliVEvent::kAny );
+    RunInfo->AddAliceTriggerDef( "kAnyINT", AliVEvent::kAnyINT );
+  }
+  else{
+    // Default
+    RunInfo->AddAliceTriggerDef( "kINT7", AliVEvent::kINT7 );
+    RunInfo->AddAliceTriggerDef( "kMUON", AliVEvent::kMUON );
+    RunInfo->AddAliceTriggerDef( "kHighMult", AliVEvent::kHighMult );
+    RunInfo->AddAliceTriggerDef( "kEMC1", AliVEvent::kEMC1 );
+    RunInfo->AddAliceTriggerDef( "kCINT5", AliVEvent::kCINT5 );
+    RunInfo->AddAliceTriggerDef( "kCMUS5", AliVEvent::kCMUS5 );
+    RunInfo->AddAliceTriggerDef( "kMUSH7", AliVEvent::kMUSH7 );
+    RunInfo->AddAliceTriggerDef( "kMUL7", AliVEvent::kMUL7 );
+    RunInfo->AddAliceTriggerDef( "kMUU7", AliVEvent::kMUU7 );
+    RunInfo->AddAliceTriggerDef( "kEMC7", AliVEvent::kEMC7 );
+    RunInfo->AddAliceTriggerDef( "kMUS7", AliVEvent::kMUS7 );
+    RunInfo->AddAliceTriggerDef( "kPHI1", AliVEvent::kPHI1 );
+    RunInfo->AddAliceTriggerDef( "kPHI7", AliVEvent::kPHI7 );
+    RunInfo->AddAliceTriggerDef( "kUserDefined", AliVEvent::kUserDefined );
+    RunInfo->AddAliceTriggerDef( "kFastOnly", AliVEvent::kFastOnly );
+    RunInfo->AddAliceTriggerDef( "kAny", AliVEvent::kAny );
+    RunInfo->AddAliceTriggerDef( "kAnyINT", AliVEvent::kAnyINT );
+  }
+  return true;
+}
+
+bool AliJCORRANTask::SetAliceFilterMapDef(AliJRunHeader *RunInfo) {
+  if( fRunType == "LHC10h" )
+  {
+    RunInfo->AddAliceFilterMapDef("EsdTrackCutsL",BIT(0));
+    RunInfo->AddAliceFilterMapDef("EsdTrackCutsITsa",BIT(1));
+    RunInfo->AddAliceFilterMapDef("ItsStrong",BIT(2));
+    RunInfo->AddAliceFilterMapDef("ElectronID",BIT(3));
+    RunInfo->AddAliceFilterMapDef("EsdTrackCutsH",BIT(4));
+    RunInfo->AddAliceFilterMapDef("EsdTrackCutsH2",BIT(5));
+    RunInfo->AddAliceFilterMapDef("EsdTrackCutsH3",BIT(6));
+    RunInfo->AddAliceFilterMapDef("EsdTrackCutsTPCOnly",BIT(7));
+    RunInfo->AddAliceFilterMapDef("EsdTrackCutsRaa",BIT(8));
+  }
+  else
+  {
+    // Default
+    RunInfo->AddAliceFilterMapDef("EsdTrackCutsL",BIT(0));
+    RunInfo->AddAliceFilterMapDef("EsdTrackCutsITsa",BIT(1));
+    RunInfo->AddAliceFilterMapDef("ItsStrong",BIT(2));
+    RunInfo->AddAliceFilterMapDef("ElectronID",BIT(3));
+    RunInfo->AddAliceFilterMapDef("EsdTrackCutsH",BIT(4));
+    RunInfo->AddAliceFilterMapDef("EsdTrackCutsH2",BIT(5));
+    RunInfo->AddAliceFilterMapDef("EsdTrackCutsH3",BIT(6));
+    RunInfo->AddAliceFilterMapDef("EsdTrackCutsTPCOnly",BIT(7));
+    RunInfo->AddAliceFilterMapDef("EsdTrackCutsRaa",BIT(8));
+  }
+  return true;
+}
+
+void AliJCORRANTask::PrintOut() {
+  AliJRunHeader * RunInfo = fAliRunHeader;
+  cout << "===== TriggerDef =====" << endl;
+  cout << RunInfo->GetAliceTriggerDef("kMB") << endl;
+  cout << RunInfo->GetAliceTriggerDef("kINT7") << endl;
+  cout << RunInfo->GetAliceTriggerDef("kMUON") << endl;
+  cout << RunInfo->GetAliceTriggerDef("kHighMult") << endl;
+  cout << RunInfo->GetAliceTriggerDef("kEMC1") << endl;
+  cout << RunInfo->GetAliceTriggerDef("kCINT5") << endl;
+  cout << RunInfo->GetAliceTriggerDef("kCMUS5") << endl;
+  cout << RunInfo->GetAliceTriggerDef("kMUSH7") << endl;
+  cout << RunInfo->GetAliceTriggerDef("kMUL7") << endl;
+  cout << RunInfo->GetAliceTriggerDef("kMUU7") << endl;
+  cout << RunInfo->GetAliceTriggerDef("kEMC7") << endl;
+  cout << RunInfo->GetAliceTriggerDef("kMUS7") << endl;
+  cout << RunInfo->GetAliceTriggerDef("kPHI1") << endl;
+  cout << RunInfo->GetAliceTriggerDef("kPHI7") << endl;
+  cout << RunInfo->GetAliceTriggerDef("kUserDefined") << endl;
+  cout << RunInfo->GetAliceTriggerDef("kFastOnly") << endl;
+  cout << RunInfo->GetAliceTriggerDef("kAny") << endl;
+  cout << RunInfo->GetAliceTriggerDef("kAnyINT") << endl;
+  cout << "===== FilterMapDef =====" << endl;
+  cout << RunInfo->GetAliceFilterMapDef("EsdTrackCutsL") << endl;
+  cout << RunInfo->GetAliceFilterMapDef("EsdTrackCutsITsa") << endl;
+  cout << RunInfo->GetAliceFilterMapDef("ItsStrong") << endl;
+  cout << RunInfo->GetAliceFilterMapDef("ElectronID") << endl;
+  cout << RunInfo->GetAliceFilterMapDef("EsdTrackCutsH") << endl;
+  cout << RunInfo->GetAliceFilterMapDef("EsdTrackCutsH2") << endl;
+  cout << RunInfo->GetAliceFilterMapDef("EsdTrackCutsH3") << endl;
+  cout << RunInfo->GetAliceFilterMapDef("EsdTrackCutsTPCOnly") << endl;
+  cout << RunInfo->GetAliceFilterMapDef("EsdTrackCutsRaa") << endl;
+}
+
+
+//********************************************
+//    UTILS
+//********************************************
+void AliJCORRANTask::AddListAODBranch(const char* aname, const char* cname, TClonesArray **obj, int nlist){
+  *obj = new TClonesArray(cname, nlist);
+  (*obj)->SetName(aname);
+  AddAODBranch("TClonesArray", obj, fAODName.Data() );
+}
diff --git a/PWGCF/Correlations/JCORRAN/AliJCORRANTask.h b/PWGCF/Correlations/JCORRAN/AliJCORRANTask.h
new file mode 100755 (executable)
index 0000000..82a37f0
--- /dev/null
@@ -0,0 +1,167 @@
+#ifndef ALIJCORRANTASK_H
+#define ALIJCORRANTASK_H
+
+/* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
+ * See cxx source for full Copyright notice     */
+//______________________________________________________________________________
+// Analysis task for high pt particle correlations 
+// author: R.Diaz, J. Rak,  D.J. Kim
+// ALICE Group University of Jyvaskyla 
+// Finland 
+//
+// Fill the analysis containers for ESD or AOD
+// Note: Adapted for AliAnalysisTaskSE
+//////////////////////////////////////////////////////////////////////////////
+
+#include <iostream>
+#include <fstream>
+#include <stdlib.h>
+#include <stdio.h>
+#include <iomanip>
+
+//#include <TTree.h>
+//#include <TList.h>
+#include <TVectorT.h>
+#include "AliAnalysisTaskSE.h"
+//#include "AliAnalysisFilter.h"
+//#include "AliMCEvent.h"
+#include "AliJRunHeader.h"
+#include "AliESDVZERO.h"
+#include "AliESDTZERO.h"
+//#include "AliESDFMD.h"
+#include "AliESDZDC.h"
+#include "AliJConst.h"
+#include "AliESDpid.h"
+#include "AliEMCALGeometry.h"
+#include "AliPHOSGeoUtils.h"
+#include "AliPIDResponse.h"
+#include "AliPIDCombined.h"
+
+//==============================================================
+
+using namespace std;
+
+const int kMaxDimBuffer = 300;//max length of a line read to a buffe
+
+class TH1D;
+class TH2D;
+class TNtuple;
+class TList;
+class TTree;
+class TFormula;
+
+class AliMCEvent; 
+class AliESDEvent; 
+class AliAODEvent; 
+class AliAODTrack; 
+class AliESDtrackCuts;
+class AliESDVZERO;
+class AliESDCentrality;
+
+class AliJRunHeader;
+class AliMCEvent;
+class AliAnalysisFilter;
+class AliJTrack;
+class AliJEventHeader;
+
+
+
+class AliJCORRANTask : public AliAnalysisTaskSE {
+
+ public:
+  AliJCORRANTask();
+  AliJCORRANTask(const char *name,  TString inputformat);
+  AliJCORRANTask(const AliJCORRANTask& ap);   
+  AliJCORRANTask& operator = (const AliJCORRANTask& ap);
+  virtual ~AliJCORRANTask();
+
+  // methods to fill from AliAnalysisTaskSE
+  virtual void UserCreateOutputObjects(); 
+  virtual void Init();         
+  virtual void LocalInit() { Init(); }
+  virtual void UserExec(Option_t *option);
+  virtual void Terminate(Option_t * opt = "");
+
+  TString GetRunType() const { return fRunType;}
+  void SetRunType( const TString type ){ fRunType = type; }
+  void SetESDtrackCuts(AliESDtrackCuts* esdTrackCuts){ fEsdTrackCuts = esdTrackCuts;}
+  void SetESDFilter( AliAnalysisFilter * filter ){ fESDFilter = filter; }
+  void SetRealOrMC(Bool_t realormc){fIsRealOrMC[0]=realormc;} //flags whether the input 
+  void SetStoreEventPlaneSource(bool dostore ){ fStoreEventPlaneSource = dostore; }
+  bool GetStoreEventPlaneSource(){ return fStoreEventPlaneSource; };
+  void SetStoreTPCTrack(bool dostore ){ fStoreTPCTrack = dostore; }
+  bool GetStoreTPCTrack(){ return fStoreTPCTrack; };
+  //are ESDs from real  exp or MonteCarlo 
+  void SetOutputAODName(const char* aodname){ fAODName=aodname;}
+  //  AliEMCALGeoUtils* GetEMCALGeoUtils (bool doDelete=kFALSE);
+
+ private:
+  AliJEventHeader* ReadCommonHeader(AliVEvent *event);
+  // methods to read data from ESD
+  void ReadESDTracks(AliESDEvent* esd);
+  void ReadESDCaloClusters(const AliESDEvent* esd);
+  void ReadESDHeader(AliESDEvent* esd);
+  void ReadESDPID(AliESDtrack* track, AliJTrack* ctrack);
+  // methods to read data from AOD
+  void ReadAODTracks(const AliAODEvent* aod);
+  void ReadAODCaloClusters(const AliAODEvent* aod);
+  void ReadAODHeader(AliAODEvent* aod);
+  void ReadFilter();
+  void ReadMCTracks(AliMCEvent* fMC);
+  Int_t GetSuperModuleNumber(bool isemcal, Int_t absId);
+
+  UInt_t ConvertTriggerMask();//Converts alice trigger mask to JCorran trigger mask
+  //functions used for event selction:
+  bool AcceptAODTrack(AliAODTrack* aodTrack);
+  void SetOADBPath(const char* path) {fOADBPath=path;}
+  const char* GetOADBPath() const { return fOADBPath.Data(); }
+
+  // method to fill jcorran
+  bool SetAliceTriggerDef(AliJRunHeader *runHeader);
+  bool SetAliceFilterMapDef(AliJRunHeader *runHeader); //TODO Check
+  void PrintOut();
+  
+  // UTILS
+  void AddListAODBranch(const char* aname, const char* cname, TClonesArray **obj, int nlist);
+
+  // d a t a     m e m b e r s
+  TString fRunType;   // ex) LHC10h
+  TString fInputFormat; // specify the input data format (ESD or AOD)
+  AliESDtrackCuts* fEsdTrackCuts; //track selection cuts
+  AliAnalysisFilter * fESDFilter; //filter set of track selection BS
+  TVectorT<double>  fIsRealOrMC; //flags if the input are real (0) ESDs or MonteCarlo ESDs (1)
+  TString fAODName; //output delta AOD name
+  TString fActiveTriggers[kRangeTriggerTableAlice];//alice table mapping trigger bit to trigger name
+  TString fTriggerTableJCorran[kRangeTriggerTableJCorran];//JCorran trigger table TBit 0 =MinBias
+  bool fStoreEventPlaneSource;
+  bool fStoreTPCTrack;
+  TString fOADBPath;
+
+  // jcorran output objects
+
+  TClonesArray *    fTrackList;   // list of charged track objects
+  TClonesArray *    fMCTrackList; // list of charged track objects
+  TClonesArray *    fPhotonList;  // list of photons objects
+  TClonesArray *    fHeaderList;  // event details
+  TList *          fRunInfoList; // run details
+
+  AliESDpid          *fPIDesd;
+  AliPIDResponse  *fPIDResponse; // PID response object
+  AliPIDCombined  *fPIDCombined;
+
+  AliESDVZERO*        fVZEROData;
+  AliESDTZERO*        fTZEROData;
+  //  AliESDFMD*          fFMDData;
+  AliESDZDC*          fZDCData;
+
+  AliJRunHeader*      fAliRunHeader;//  run details (mg field, trigger mask,etc...)
+  AliEMCALGeometry * fEMCALGeoUtils; // no AliEMCALGeoUtils.h in trunk aliroot (111130)
+  AliPHOSGeoUtils  * fPHOSGeom; //phos geometry matrix 
+
+
+  // TPC
+  Double32_t    fTPCTrack[3];
+
+  ClassDef(AliJCORRANTask, 1); 
+};
+#endif // AliJCORRANTask_H
diff --git a/PWGCF/Correlations/JCORRAN/AliJConst.h b/PWGCF/Correlations/JCORRAN/AliJConst.h
new file mode 100755 (executable)
index 0000000..9705402
--- /dev/null
@@ -0,0 +1,77 @@
+// $Id: JConst.h,v 1.5 2008/05/08 15:19:52 djkim Exp $
+
+////////////////////////////////////////////////////
+/*!
+  \file JConst.h
+  \brief
+  \author J. Rak, D.J.Kim, R.Diaz (University of Jyvaskyla)
+  \email: djkim@jyu.fi
+  \version $Revision: 1.5 $
+  \date $Date: 2008/05/08 15:19:52 $
+*/
+////////////////////////////////////////////////////
+
+#ifndef JCONST_H
+#define JCONST_H
+
+//
+//  Constants
+//
+// for JHisto and PhxJHisto
+#define kMaxNoCentrBin 10   // Maximum no of centrality bins defined in JCard.h
+#define kMaxTriggParticleType 35           // 
+#define kMaxJetType  32        //
+#define kPtDim 20           // 
+#define kMaxNoRuns 100      // Maximum no of runs in a nanoDST file
+
+
+const double kJPi           = 3.14159265358979; //TMath::Pi();
+const double kJTwoPi        = 2*kJPi;
+const double kJToRadian     = kJPi/180.;
+const double kJToDegree     = 180./kJPi;
+const double kElectronMass = .51099906e-3;
+const double kPionMass     = .1395675;
+
+enum expName {kPHENIX, kALICE};
+const int kNumberOfExperiments = 2; //numberOfExperiments
+
+// Centrality
+const int kNCentBin  = 5;
+const double kCentralityBins[kNCentBin+1] = { 0, 10, 20, 30, 40, 100 };
+
+//====================== particle types ============================================
+const int kNumberOfParticleTypes = 9;
+enum particleType   {kHadron, kPion, kKaon, kProton, kPhoton, kDecayphoton, kPizero, kEta, kNone};
+
+const char* const kParticleTypeStrName[kNumberOfParticleTypes] =
+                    {"hadron", "pion", "kaon", "proton", "photon", "decayphoton", "pizero", "eta", "none"};
+const char* const kParticleProtoType[kNumberOfExperiments][kNumberOfParticleTypes] =
+                    {{"PhJCgl",    "PhJCgl",    "PhJCgl",    "PhJCgl",    "PhJPhoton",  "PhJPhoton",  "AliPhJPiZero", "AliPhJPiZero", "None"},
+                     {"AliJTrack", "AliJTrack", "AliJTrack", "AliJTrack", "AliJPhoton", "AliJPhoton", "AliPhJPiZero", "AliPhJPiZero", "None"}};
+
+
+//=======================JCorran trigger table definition===========================
+//internal JCorran trigger mask  TBit=0 is MinBias, TBit=1 HighMultiplicityTrigger
+enum TriggerBitJCorran   {kMinBiasTriggerBitJCorran, kHighMultTriggerBitJCorran};  
+const int kRangeTriggerTableAlice   = 50;
+const int kRangeTriggerTableJCorran = 16;
+
+//==================================================================================
+enum fillType { kReal, kMixed, kRotated };
+enum corrType { kTriggType, kAssocType, kXeType, kCentrType, kMassType, kNoType }; 
+
+enum TriggerParticleType { kTriggParticles, kLeadingParticle, kIsolatedParticle, kJets }; // kJets for additional jet trigger counting.
+
+const char* const TriggerParticleTypeName[] =
+                        {"TriggParticles","LeadingParticle","IsolatedParticle"};
+
+// JETs =====
+const int NJetAlg = 10;
+enum JetAlg   {kkt,kantikt,ksiscone,krecomE,krecomB,kcdfmidpoint,kjade,kd0run2cone,kGF,kSimpleCone};
+char const * const kJetAlgStrName[NJetAlg] =
+                    {"kt","antikt","siscone","recomE","recomB","cdfmidpoint","jade","d0run2cone","GF","SimpleCone"};
+
+// PHENIX  constants
+enum TEMC {kPbSc, kPbGl}; 
+
+#endif
diff --git a/PWGCF/Correlations/JCORRAN/AliJEventHeader.cxx b/PWGCF/Correlations/JCORRAN/AliJEventHeader.cxx
new file mode 100755 (executable)
index 0000000..665da4b
--- /dev/null
@@ -0,0 +1,99 @@
+/**************************************************************************
+ * Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
+ *                                                                        *
+ * Author: The ALICE Off-line Project.                                    *
+ * Contributors are mentioned in the code where appropriate.              *
+ *                                                                        *
+ * Permission to use, copy, modify and distribute this software and its   *
+ * documentation strictly for non-commercial purposes is hereby granted   *
+ * without fee, provided that the above copyright notice appears in all   *
+ * copies and that both the copyright notice and this permission notifce   *
+ * appear in the supporting documentation. The authors make no claims     *
+ * about the suitability of this software for any purpose. It is          *
+ * provided "as is" without express or implied warranty.                  *
+ **************************************************************************/
+
+// $Id: AliJEventHeader.cxx,v 1.2 2008/01/21 11:56:39 djkim Exp $
+
+////////////////////////////////////////////////////
+//
+//  \file AliJEventHeader.cxx
+//  \brief
+//  \author J. Rak, D.J.Kim, R.Diaz (University of Jyvaskyla)
+//  \email: djkim@jyu.fi
+//  \version $Revision: 1.1 $
+//  \date $Date: 2008/05/02 11:56:39 $
+//
+//  Base clase for event header
+////////////////////////////////////////////////////
+
+#include "AliJBaseEventHeader.h"
+#include "AliJEventHeader.h"
+
+ClassImp(AliJEventHeader);
+
+//______________________________________________________________________________
+AliJEventHeader::AliJEventHeader():
+    AliJBaseEventHeader(),  
+    fTriggerMaskAlice(0),
+    fTriggerMaskJCorran(0),
+    fSPDTrackletMult(-999),
+    fV0Mult(-999),
+    fEventType(0),
+    fVtxMult(-9999)   //FK// EFF
+{
+  // default constructor
+  SetName("AliJEventHeader");
+  for( int i=0;i<kcNTYPE;i++ ) fCentralityArray[i] = 0;
+}
+
+//______________________________________________________________________________
+AliJEventHeader::AliJEventHeader(int eventid, float cent, float vrtz, ULong64_t triggmaskAli, 
+                                 UInt_t triggmaskJC, Int_t refmult, Float_t v0mult, 
+                                 UInt_t eventType
+                                 ):
+    AliJBaseEventHeader(eventid,cent,vrtz),
+    fTriggerMaskAlice(triggmaskAli),
+    fTriggerMaskJCorran(triggmaskJC),
+    fSPDTrackletMult(refmult),
+    fV0Mult(v0mult),
+    fEventType(eventType),
+    fVtxMult(-9999)  //FK// EFF
+{
+  //constructor
+  SetName("AliJEventHeader");
+  for( int i=0;i<kcNTYPE;i++ ) fCentralityArray[i] = 0;
+}
+//______________________________________________________________________________
+AliJEventHeader::AliJEventHeader(const AliJEventHeader& a):
+    AliJBaseEventHeader(a),
+    fTriggerMaskAlice(a.fTriggerMaskAlice),
+    fTriggerMaskJCorran(a.fTriggerMaskJCorran),
+    fSPDTrackletMult(a.fSPDTrackletMult),
+    fV0Mult(a.fV0Mult),
+    fEventType(a.fEventType),
+    fVtxMult(a.fVtxMult)  //FK// EFF
+{
+  //copy constructor
+  for( int i=0;i<kcNTYPE;i++ ) fCentralityArray[i] = a.fCentralityArray[i];
+}
+
+//______________________________________________________________________________
+AliJEventHeader&  AliJEventHeader::operator=(const AliJEventHeader& header){
+  //overloaded operator =
+  if (this != &header) {
+    AliJBaseEventHeader::operator=(header);
+    fTriggerMaskAlice = header.fTriggerMaskAlice;
+    fTriggerMaskJCorran = header.fTriggerMaskJCorran;
+    fSPDTrackletMult = header.fSPDTrackletMult;
+    fV0Mult = header.fV0Mult;
+    fEventType       = header.fEventType;
+    fVtxMult         = header.fVtxMult;  //FK// EFF
+    for( int i=0;i<kcNTYPE;i++ ) fCentralityArray[i] = header.fCentralityArray[i];
+  }
+
+  return *this;
+}
+
+
+
diff --git a/PWGCF/Correlations/JCORRAN/AliJEventHeader.h b/PWGCF/Correlations/JCORRAN/AliJEventHeader.h
new file mode 100755 (executable)
index 0000000..f520179
--- /dev/null
@@ -0,0 +1,87 @@
+// $Id: AliJEventHeader.h,v 1.1 2008/05/02 11:56:23 djkim Exp $
+////////////////////////////////////////////////////
+/*!
+  \file AliJEventHeader.h
+  \brief
+  \author J. Rak, D.J.Kim, R.Diaz (University of Jyvaskyla)
+  \email: djkim@jyu.fi
+  \version $Revision: 1.1 $
+  \date $Date: 2008/05/02 11:56:39 $
+
+*/
+////////////////////////////////////////////////////
+
+#ifndef ALIJEVENTHEADER_H
+#define ALIJEVENTHEADER_H
+
+#ifndef ROOT_TObject
+#include <TObject.h>
+#endif
+
+#include "AliJBaseEventHeader.h"
+
+class AliJEventHeader : public AliJBaseEventHeader {
+ public:
+
+  enum { kcV0M, kcFMD, kcTRK, kcTKL, kcCL0, kcCL1, kcV0MvsFMD, kcTKLvsV0, kcZEMvsZDC, kcNTYPE };
+
+  /*
+   * V0M = V0 multiplicity
+   * FMD = FMD raw multiplicity
+   * TRK = N. of tracks
+   * TKL = N. of tracklets
+   * CL0 = N. of clusters in layer 0
+   * CL1 = N. of clusters in layer 1
+   * V0MvsFMD = correlation between V0 and FMD
+   * TKLvsV0 = correlation between tracklets and V0
+   * ZEMvsZDC = correlation between ZEM and ZDC 
+   */
+  AliJEventHeader();              // default constructor
+  AliJEventHeader(int eventid,
+                  float cent,
+                  float vrtz,
+                  ULong64_t triggmaskAli,
+                  UInt_t triggmaskJC,
+                  Int_t  refmult,
+                  Float_t  v0mult,
+                  UInt_t eventType
+                 );
+
+  AliJEventHeader(const AliJEventHeader& a);                           
+
+  virtual ~AliJEventHeader(){;}     // destructor
+
+  ULong64_t  GetTriggerMaskAlice()   const {return fTriggerMaskAlice;}  
+  UInt_t     GetTriggerMaskJCorran() const {return fTriggerMaskJCorran;}  
+  Int_t      GetSPDTrackletMult()    const {return fSPDTrackletMult;}
+  UInt_t     GetEventType()          const {return fEventType;}
+  Float_t    GetV0Mult()             const {return fV0Mult;}
+  Int_t      GetVtxMult()            const { return fVtxMult; };//FK// EFF
+
+  Float_t GetCentralityArray( UInt_t it ) const { return it<kcNTYPE ? fCentralityArray[it] : -1; }
+
+  void SetTriggerMaskAlice(ULong64_t mask) {fTriggerMaskAlice = mask;}
+  void SetTriggerMaskJCorran(UInt_t mask) {fTriggerMaskJCorran = mask;}
+  void SetSPDTrackletMult(Int_t ref) { fSPDTrackletMult = ref;}
+  void SetEventType(UInt_t eventype) {fEventType = eventype;}
+  void SetV0Mult(Float_t multV0) {fV0Mult = multV0;}
+  void SetVtxMult(Int_t m){ fVtxMult = m; };//FK// EFF
+  void SetCentralityArray(UInt_t it, Float_t cen ){ if( it < kcNTYPE ) fCentralityArray[it]=cen; }
+
+  AliJEventHeader&  operator=(const AliJEventHeader& header);
+
+ private:
+
+  ULong64_t   fTriggerMaskAlice;           //Alice Trigger MASK
+  UInt_t      fTriggerMaskJCorran;         // JCorran Trigger MASK
+  Int_t       fSPDTrackletMult;             //SPD tracklet multiplicity
+  Double32_t   fV0Mult;                   // VZERO multiplicity
+  UInt_t      fEventType;                 // Type of Event
+  Int_t       fVtxMult;                   //FK// EFF number of vertex contributors 
+  Double32_t  fCentralityArray[kcNTYPE];  //?//
+
+  ClassDef(AliJEventHeader,1)
+
+};
+
+#endif
diff --git a/PWGCF/Correlations/JCORRAN/AliJMCTrack.cxx b/PWGCF/Correlations/JCORRAN/AliJMCTrack.cxx
new file mode 100755 (executable)
index 0000000..b4b96a1
--- /dev/null
@@ -0,0 +1,111 @@
+/**************************************************************************
+ * Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
+ *                                                                        *
+ * Author: The ALICE Off-line Project.                                    *
+ * Contributors are mentioned in the code where appropriate.              *
+ *                                                                        *
+ * Permission to use, copy, modify and distribute this software and its   *
+ * documentation strictly for non-commercial purposes is hereby granted   *
+ * without fee, provided that the above copyright notice appears in all   *
+ * copies and that both the copyright notice and this permission notifce   *
+ * appear in the supporting documentation. The authors make no claims     *
+ * about the suitability of this software for any purpose. It is          *
+ * provided "as is" without express or implied warranty.                  *
+ **************************************************************************/
+
+// $Id: AliJMCTrack.cxx,v 1.2 2008/05/08 13:44:45 djkim Exp $
+
+////////////////////////////////////////////////////
+//
+//  \file AliJMCTrack.cxx
+//  \brief
+//  \author J. Rak, D.J.Kim, R.Diaz (University of Jyvaskyla)
+//  \email: djkim@jyu.fi
+//  \version $Revision: 1.2 $
+//  \date $Date: 2008/05/08 13:44:45 $
+//
+//  class which encapsulates track  monte carlo information
+////////////////////////////////////////////////////
+
+#include "AliJMCTrack.h"
+#include <TMath.h>
+#include <TROOT.h>
+
+ClassImp(AliJMCTrack);
+
+//______________________________________________________________________________
+AliJMCTrack::AliJMCTrack() : 
+    AliJBaseTrack(),
+    fPdgCode(0),
+    fVx(0),
+    fVy(0),
+    fVz(0)
+{
+  // default constructor
+  fMother[0] = fMother[1] = 0;
+  fDaughter[0] = fDaughter[1] = 0;
+
+
+}
+
+//______________________________________________________________________________
+AliJMCTrack::AliJMCTrack(const AliJMCTrack& a):
+    AliJBaseTrack(a),
+    fPdgCode(a.fPdgCode),
+    fVx(a.fVx),
+    fVy(a.fVy),
+    fVz(a.fVz)
+{
+  //copy constructor
+  for(Int_t i=0;i<2;i++){
+    fMother[i] = a.fMother[i];
+    fDaughter[i] = a.fDaughter[i];
+  }
+}
+
+
+//______________________________________________________________________________
+void AliJMCTrack::SetPdgCode(Int_t icode) {
+  // Set PDG code, charge,  recalculate E
+  if( TMath::Abs(icode) > 32767 ) icode = 0; // Short_t
+  fPdgCode=icode;
+  SetVectM(Vect(), GetPDGData().Mass());
+  SetCharge( TMath::Nint(GetPDGData().Charge()) ); // is this right?
+}
+
+
+//______________________________________________________________________________
+Bool_t AliJMCTrack::IsHadron() const{
+  // Check is hadron 
+  int absID = TMath::Abs(GetPdgCode());
+  if( absID >= 211 && absID<=533 ) return true; //meson
+  if( absID >1000 && absID<6000 ) return true; // barion
+  return false;
+}
+
+//______________________________________________________________________________
+AliJMCTrack& AliJMCTrack::operator=(const AliJMCTrack& trk){
+  //operator= 
+  if(this != &trk){
+    AliJBaseTrack::operator=(trk);
+    fPdgCode   =  trk.fPdgCode;
+    fLabel     =  trk.fLabel;
+    for(Int_t i=0;i<2;i++){
+      fMother[i]   = trk.fMother[i];
+      fDaughter[i] = trk.fDaughter[i];
+    }
+    fVx  = trk.fVx;
+    fVy  = trk.fVy;
+    fVz  = trk.fVz;
+  }
+  return *this;
+}
+
+const TParticlePDG& AliJMCTrack::GetPDGData() const { 
+  return *(TDatabasePDG::Instance()->GetParticle( fPdgCode )); 
+}
+
+
+
+
+
diff --git a/PWGCF/Correlations/JCORRAN/AliJMCTrack.h b/PWGCF/Correlations/JCORRAN/AliJMCTrack.h
new file mode 100755 (executable)
index 0000000..4fc4e07
--- /dev/null
@@ -0,0 +1,78 @@
+// $Id: AliJMCTrack.h,v 1.3 2008/05/08 15:19:52 djkim Exp $
+
+////////////////////////////////////////////////////
+/*!
+  \file AliJMCTrack.h
+  \brief
+  \author J. Rak, D.J.Kim, R.Diaz (University of Jyvaskyla)
+  \email: djkim@jyu.fi
+  \version $Revision: 1.3 $
+  \date $Date: 2008/05/08 15:19:52 $
+  */
+////////////////////////////////////////////////////
+
+#ifndef ALIJMCTRACK_H
+#define ALIJMCTRACK_H
+
+// include ROOT lib
+#ifndef ROOT_TObject
+#include <TObject.h>
+#endif
+#include <TDatabasePDG.h>
+
+// include Inharitance
+#include "AliJBaseTrack.h"
+
+class AliJMCTrack : public AliJBaseTrack {
+
+ public:
+  enum { kPrimary=AliJBaseTrack::kNFlag, kPHOS, kEMCAL, kTPC, kNFlag };//For ALICE
+  enum { kFinal=AliJBaseTrack::kNFlag };// for MC
+  //usage : this->SetFlag( kPrimary, kTRUE );
+  //usage : this->IsTrue( kFinal );
+
+  AliJMCTrack();           //default constructor
+  AliJMCTrack(const AliJMCTrack& a);   //copy constructor
+
+  ~AliJMCTrack(){;}            //destructor
+
+  Int_t  GetPdgCode()    const {return fPdgCode;}
+  Int_t  GetMother  (Int_t i) const {return fMother[i];}
+  Int_t  GetDaughter(Int_t i) const {return fDaughter[i];}
+  Double32_t GetVx()    const{return fVx;}
+  Double32_t  GetVy()    const{return fVy;}
+  Double32_t  GetVz()    const{return fVz;}
+
+  const TParticlePDG& GetPDGData() const ;
+  void SetPdgCode(Int_t icode);// Set PDG and E,charge
+  void SetMother  (int m0, int m1){ fMother[0] = m0;fMother[1]=m1; }
+  void SetDaughter(int d0, int d1){ fDaughter[0]=d0;fDaughter[1]=d1; }
+  void SetProductionVertex(Double_t vx, Double_t vy, Double_t vz)
+  {fVx=vx; fVy=vy; fVz=vz;}
+
+
+  AliJMCTrack& operator=(const AliJMCTrack& trk);
+
+
+  //Extra
+  Bool_t IsFinal() const { return IsTrue( kFinal ); }
+  void  SetIsFinal(Bool_t t){ SetFlag( kFinal, t );}
+  //TODO
+  Bool_t IsHadron() const;
+  Bool_t IsCharged() const { return GetCharge(); }
+  Bool_t IsParton()  const {return ( fPdgCode < -7 && fPdgCode < 7 && fPdgCode !=0 );}
+
+ private:
+
+  Short_t         fPdgCode;              // PDG code of the particle
+  Short_t         fMother[2];            // Index of the mother particles
+  Short_t         fDaughter[2];          // Indices of the daughter particles
+
+  Double32_t      fVx;                   //[0.,0.,12] x of production vertex
+  Double32_t      fVy;                   //[0.,0.,12] y of production vertex
+  Double32_t      fVz;                   //[0.,0.,12] z of production vertex
+
+  ClassDef(AliJMCTrack,2)
+};
+
+#endif
diff --git a/PWGCF/Correlations/JCORRAN/AliJPhoton.cxx b/PWGCF/Correlations/JCORRAN/AliJPhoton.cxx
new file mode 100644 (file)
index 0000000..9303190
--- /dev/null
@@ -0,0 +1,213 @@
+// $Id: AliJPhoton.cxx,v 1.4 2008/05/08 13:44:45 djkim Exp $
+
+////////////////////////////////////////////////////
+/*!
+  \file AliJPhoton.cxx
+  \brief
+  \author J. Rak, D.J.Kim, R.Diaz (University of Jyvaskyla)
+  \email: djkim@jyu.fi
+  \version $Revision: 1.4 $
+  \date $Date: 2008/05/08 13:44:45 $
+  */
+////////////////////////////////////////////////////
+
+#include "AliJBaseTrack.h"
+#include "AliJPhoton.h"
+#include "TF1.h"
+
+ClassImp(AliJPhoton);
+//______________________________________________________________________________
+AliJPhoton::AliJPhoton() : 
+    AliJBaseTrack(),
+    fChi2(-999),              
+    fTof(-999),                   
+    fX(-999),               
+    fY(-999),                  
+    fZ(-999),
+    fProbPhot(-999), 
+    fTrackDx(-1), 
+    fTrackDz(-1), 
+  fCaloType(kUndef),
+  fDistToBadChannel(-999),
+  fDispersion(-999),
+  fM20(-999),
+  fM02(-999),
+  fEmcCpvDist(-999),
+  fNCells(0),
+  fSuperModuleId(-999),
+  fCellsAbsId(0x0),
+  fCellsAmpFraction(0x0)
+
+{
+  // default constructor
+  for(Int_t i=0;i<kUnknownAli+1;i++) fCaloPID[i]=-1;
+
+  SetPID((Double_t*)NULL);
+}
+
+//_____________________________________________________________________________
+AliJPhoton::AliJPhoton(const AliJPhoton& a) : 
+    AliJBaseTrack(a),
+    fChi2(a.fChi2),
+    fTof(a.fTof),
+    fX(a.fX),
+    fY(a.fY),
+    fZ(a.fZ),
+    fProbPhot(a.fProbPhot), 
+    fTrackDx(a.fTrackDx), 
+    fTrackDz(a.fTrackDz), 
+  fCaloType(a.fCaloType),
+  fDistToBadChannel(a.fDistToBadChannel),
+  fDispersion(a.fDispersion),
+  fM20(a.fM20),
+  fM02(a.fM02),
+  fEmcCpvDist(a.fEmcCpvDist),
+  fNCells(a.fNCells),
+  fSuperModuleId(a.fSuperModuleId),
+  fCellsAbsId(NULL),
+  fCellsAmpFraction(NULL)
+
+{
+  //copy constructor
+  for(Int_t i=0;i<kUnknownAli+1;i++) fCaloPID[i] = a.fCaloPID[i];
+  SetCellsAbsId( a.fCellsAbsId );
+  SetCellsAmplitudeFraction( a.fCellsAmpFraction );
+}
+
+//_____________________________________________________________________________
+AliJPhoton& AliJPhoton::operator=(const AliJPhoton& photon){
+  //operator=    
+  if(this != &photon){
+    AliJBaseTrack::operator=(photon);
+    fChi2 = photon.fChi2;
+    fTof  = photon.fTof;
+    fX    = photon.fX;
+    fY    = photon.fY;
+    fZ    = photon.fZ;
+    fProbPhot = photon.fProbPhot;
+    fTrackDx  = photon.fTrackDx;
+    fTrackDz  = photon.fTrackDz;
+     fCaloType = photon.fCaloType;
+    for(Int_t i=0; i<kUnknownAli+1; i++){
+      fCaloPID[i] = photon.fCaloPID[i];
+    }
+    fDistToBadChannel = photon.fDistToBadChannel;
+    fDispersion    = photon.fDispersion;
+    fM20           = photon.fM20;
+    fM02           = photon.fM02;
+    fEmcCpvDist    = photon.fEmcCpvDist;
+    fNCells        = photon.fNCells;
+    fSuperModuleId =  photon.fSuperModuleId;
+    fCellsAbsId    = photon.fCellsAbsId;
+    fCellsAmpFraction = photon.fCellsAmpFraction;
+
+  }
+
+  return *this;
+}
+//______________________________________________________________________________
+void  AliJPhoton::SetCellsAbsId(const UShort_t *array)
+{
+    //  Set the array of cell absId numbers 
+    if (fNCells) {
+        if(fCellsAbsId){ delete [] fCellsAbsId; fCellsAbsId = NULL; }
+       fCellsAbsId = new  UShort_t[fNCells];
+       for (Int_t i = 0; i < fNCells; i++) fCellsAbsId[i] = array[i];
+    }
+}
+
+//_______________________________________________________________________
+void  AliJPhoton::SetCellsAmplitudeFraction(const Double32_t *array)
+{
+    //  Set the array of cell amplitude fraction
+    if (fNCells) {
+       if(fCellsAmpFraction){ delete [] fCellsAmpFraction; fCellsAmpFraction = NULL;}
+       fCellsAmpFraction = new  Double32_t[fNCells];
+       for (Int_t i = 0; i < fNCells; i++) fCellsAmpFraction[i] = array[i];
+    }
+}
+
+//______________________________________________________________________________
+void  AliJPhoton::SetPID(const Double_t *pid) {
+   //set pid
+    if(pid){
+       for(Int_t i=0; i<kUnknownAli+1; ++i) fCaloPID[i]=pid[i];
+       SetProbPhot(fCaloPID[kPhotonAli]);
+    }else{
+      for(Int_t i=0; i<kUnknownAli+1; fCaloPID[i++]=0.){} 
+      fCaloPID[kUnknownAli]=1.;
+    }
+}
+
+
+//______________________________________________________________________________
+particleType AliJPhoton::GetParticleType() {
+
+    // return the most problable particle type
+    // Note: following the AliCaloPID implementation 
+    
+    //Init default weights 
+    Float_t wPhoton = 0.75 ;
+    Float_t wPi0 = 0.8 ;
+    Float_t wElectron = 0.5 ;
+    Float_t wCharged = 0.5 ;
+    Float_t wNeutral = 0.5 ;
+
+    Bool_t usePHOSweightFormula = kTRUE;
+    //Formula to set the PID weight threshold for photon or pizero
+    // ALICE-INT-2005-016 (2007)
+    TFormula* wPhotonPHOSFormula = 
+    new TFormula("photonWeight","0.75*(x<40)+ 0.68*(x>=100)+(x>=40 && x<100)*(0.98+x*(6e-3)-x*x*(2e-04)+x*x*x*(1.1e-06))");
+    TFormula* wPi0PHOSFormula = 
+    new TFormula("pi0Weight","0.80*(x<65)+ 0.915*(x>=100)+(x>=65 && x-x*(1.95e-3)-x*x*(4.31e-05)+x*x*x*(3.61e-07))");
+
+    if(fCaloType == kPHOSCalo && usePHOSweightFormula){
+       wPhoton  = wPhotonPHOSFormula->Eval(E()) ;
+       wPi0 = wPi0PHOSFormula->Eval(E());
+      // cout << "wPhotonF " << wPhoton << " wphoton " << fCaloPID[kPhotonAli] << " wPi0F " << wPi0 << " wpi0 " << fCaloPID[kPi0Ali] << endl;
+    }
+    
+    if(fCaloType == kEMCALCalo){
+       wPhoton   =  0.8 ;
+       wPi0      =  0.5 ;
+       wElectron =  0.8 ;
+       wCharged  =  0.5 ;
+       wNeutral  =  0.5 ;
+    }
+    
+  
+   particleType pdg = kHadron;
+
+  //Select most probable ID
+  if(fCaloType == kPHOSCalo){
+    if(fCaloPID[kPhotonAli] > wPhoton) pdg = kPhoton ;
+    else if(fCaloPID[kPi0Ali] > wPi0) pdg = kPizero ; 
+    //else if(fCaloPID[kElectronAli] > wElectron)  pdg = electron ;
+    //else if(fCaloPID[kEleConAli] >  wElectron) pdg = electronCon ;
+    //else if(chargedHadronWeight > wCharged) pdg = chargedHadron ;  
+    //else if(neutralHadronWeight > wNeutral) pdg = neutralHadron ; 
+    //else if(allChargedWeight >  allNeutralWeight)
+    // pdg = chargedUnknown ; 
+    //else 
+    //  pdg = neutralUnknown ;
+  }
+  else{//EMCAL
+    //Temporal solution, electrons and photons not differenciated
+    if(fCaloPID[kPhotonAli] + fCaloPID[kElectronAli]  > wPhoton) pdg = kPhoton ;
+    else if(fCaloPID[kPi0Ali] > wPi0) pdg = kPizero ; 
+    //else if(chargedHadronWeight + neutralHadronWeight > wCharged) pdg = chargedHadron ;  
+    //else if(neutralHadronWeight + chargedHadronWeight > wNeutral) pdg = neutralHadron ; 
+    //else pdg =  neutralUnknown ;
+
+  }
+  
+  delete wPhotonPHOSFormula;
+  delete wPi0PHOSFormula;
+  
+  //if(fCaloType == kPHOSCalo) cout << "pdg " << pdg << endl;
+  
+  return pdg ;
+
+}
+
+
diff --git a/PWGCF/Correlations/JCORRAN/AliJPhoton.h b/PWGCF/Correlations/JCORRAN/AliJPhoton.h
new file mode 100644 (file)
index 0000000..dd808d3
--- /dev/null
@@ -0,0 +1,139 @@
+// $Id: AliJPhoton.h,v 1.5 2008/05/08 15:19:52 djkim Exp $
+
+////////////////////////////////////////////////////
+/*!
+  \file AliJPhoton.h
+  \brief
+  \author J. Rak, D.J.Kim, R.Diaz (University of Jyvaskyla)
+  \email: djkim@jyu.fi
+  \version $Revision: 1.5 $
+  \date $Date: 2008/05/08 15:19:52 $
+  */
+////////////////////////////////////////////////////
+
+#ifndef ALIJPHOTON_H
+#define ALIJPHOTON_H
+
+#ifndef ROOT_TObject
+#include <TObject.h>
+#endif
+
+#include "AliJBaseTrack.h"
+
+class AliJPhoton : public AliJBaseTrack {
+
+ public:
+  enum AliJCaloType {
+         kUndef = -1, 
+                kPHOSCalo,  
+                kEMCALCalo
+  };
+  
+  enum AliJCaloPID{
+    kElectronAli = 0,
+    kMuonAli = 1,
+    kPionAli = 2,
+    kKaonAli = 3,
+    kProtonAli = 4,
+    kPhotonAli = 5,
+    kPi0Ali = 6,
+    kNeutronAli = 7,
+    kKaon0Ali = 8,
+    kEleConAli = 9,
+    kUnknownAli = 10
+  };
+
+
+
+  AliJPhoton();            //default constructor
+  AliJPhoton(const AliJPhoton& a); //copy constructor
+  virtual ~AliJPhoton(){               //destructor    
+    if(fCellsAbsId)       delete [] fCellsAbsId; 
+    if(fCellsAmpFraction) delete [] fCellsAmpFraction;
+  }
+
+  float  GetChi2() const {return fChi2;}
+  float  GetTof() const {return fTof;}                   
+  float  GetX() const {return fX;}            
+  float  GetY() const {return fY;}          
+  float  GetZ() const {return fZ;}
+  float  GetProbPhot() const {return fProbPhot;}
+
+  void  SetChi2(float chi2) {fChi2=chi2;}
+  void  SetTof(float tof) {fTof=tof;}
+  void  SetPositionX(float x) {fX=x;}
+  void  SetPositionY(float y) {fY=y;}
+  void  SetPositionZ(float z) {fZ=z;}
+  void  SetProbPhot(float prob) {fProbPhot=prob;}
+
+  AliJPhoton& operator=(const AliJPhoton& photon);
+
+  //TODO
+  Bool_t InPHOS()  const {return fCaloType==kPHOSCalo ? kTRUE:kFALSE ;}
+  Bool_t InEMCAL() const {return fCaloType==kEMCALCalo ? kTRUE:kFALSE ;}
+  // getters
+  void GetPID(Double_t *pid) const {
+    for(Int_t i=0; i<kUnknownAli+1; ++i) pid[i]=fCaloPID[i];
+  }
+  Double_t  GetDistToBadChannel() const {return fDistToBadChannel;}
+  Double_t  GetDispersion()       const {return fDispersion;}
+  Double_t  GetM20()              const {return fM20;}
+  Double_t  GetM02()              const {return fM02;}
+  Double_t  GetEmcCpvDist()       const {return fEmcCpvDist;}
+  Double_t  GetNCells() const   { return fNCells;}
+  UShort_t  *GetCellsAbsId() const {return  fCellsAbsId;}
+  Int_t     GetCellAbsId(Int_t i) const {  
+         if (fCellsAbsId && i >=0 && i < fNCells ) return fCellsAbsId[i];    
+        else return -1;}
+  Double32_t *GetCellsAmplitudeFraction() const {return  fCellsAmpFraction;}
+  Double_t    GetCellAmplitudeFraction(Int_t i) const {  
+              if (fCellsAmpFraction && i >=0 && i < fNCells ) return fCellsAmpFraction[i];    
+              else return -1;}
+  particleType GetParticleType();
+  Int_t    GetSuperModuleID() const { return fSuperModuleId; }
+  void     SetSuperModuleID(Int_t id) { fSuperModuleId = id; }
+  Double32_t  GetTrackDx() const {return fTrackDx;}
+  Double32_t  GetTrackDz() const {return fTrackDz;}
+
+  //setters
+  void  SetCaloType(AliJCaloType calo) {fCaloType = calo;}
+  void  SetDistToBadChannel(Double_t dist) {fDistToBadChannel = dist;}
+  void  SetDispersion(Double_t disp) {fDispersion = disp;}
+  void  SetM20(Double_t m20) {fM20 = m20;}
+  void  SetM02(Double_t m02) {fM02 = m02;}
+  void  SetEmcCpvDist(Double_t dist) {fEmcCpvDist = dist;} 
+  void  SetPID(const Double_t *pid);
+  void  SetNCells(Int_t n) { fNCells = n;}
+  void  SetCellsAbsId(const UShort_t *array);
+  void  SetCellsAmplitudeFraction(const Double32_t *array);
+  void  SetTrackDx(Double_t trackDx) {fTrackDx = trackDx;}
+  void  SetTrackDz(Double_t trackDz) {fTrackDz = trackDz;}
+
+ private:
+
+  Double32_t  fChi2;      //chi2             
+  Double32_t  fTof;       //time of flight                
+  Double32_t  fX, fY, fZ; // x,y,z coordinates              
+  Double32_t  fProbPhot;  //probability to be a photon
+  Double32_t  fTrackDx, fTrackDz; // Distance to closest track in phi and z
+
+ //TODO
+  AliJCaloType   fCaloType;              // PHOS or EMCAL photon
+  Double_t       fCaloPID[kUnknownAli+1];          // [0.,1.,8] pointer to PID object
+  Double_t       fDistToBadChannel;      // Distance to nearest bad channel
+  Double_t       fDispersion;            // cluster dispersion, for shape analysis
+  Double_t       fM20;                   // 2-nd moment along the main eigen axis
+  Double_t       fM02;                   // 2-nd moment along the second eigen axis
+  Double_t       fEmcCpvDist;            // the distance from PHOS EMC rec.point to the closest CPV rec.point
+  Int_t          fNCells ;                 //number of cells
+  Int_t          fSuperModuleId ;          //super module id
+  UShort_t      *fCellsAbsId;            //[fNCells] array of cell absId numbers
+  Double32_t    *fCellsAmpFraction;    //[fNCells][0.,1.,16] array with cell amplitudes fraction.
+
+  ClassDef(AliJPhoton,1)
+
+};
+
+#endif
+
diff --git a/PWGCF/Correlations/JCORRAN/AliJRunHeader.cxx b/PWGCF/Correlations/JCORRAN/AliJRunHeader.cxx
new file mode 100755 (executable)
index 0000000..073baeb
--- /dev/null
@@ -0,0 +1,153 @@
+/**************************************************************************
+ * Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
+ *                                                                        *
+ * Author: The ALICE Off-line Project.                                    *
+ * Contributors are mentioned in the code where appropriate.              *
+ *                                                                        *
+ * Permission to use, copy, modify and distribute this software and its   *
+ * documentation strictly for non-commercial purposes is hereby granted   *
+ * without fee, provided that the above copyright notice appears in all   *
+ * copies and that both the copyright notice and this permission notifce   *
+ * appear in the supporting documentation. The authors make no claims     *
+ * about the suitability of this software for any purpose. It is          *
+ * provided "as is" without express or implied warranty.                  *
+ **************************************************************************/
+
+// $Id: AliJRunHeader.cxx,v 1.1 2008/02/04 13:28:47 rak Exp $
+
+////////////////////////////////////////////////////
+//
+//     \file AliJRunHeader.cxx
+//     \brief
+//     \author J. Rak, D.J.Kim, F.Krizek(University of Jyvaskyla)
+//     \email: djkim@cc.jyu.fi
+//     \version $Revision: 1.1 $
+//     \date $Date: 2008/02/04 13:28:47 $
+//
+// Class encapsulation aliroot run header information
+////////////////////////////////////////////////////
+#include "AliJRunHeader.h"
+#include <iostream>
+#include "AliJConst.h"
+
+ClassImp(AliJRunHeader);
+
+//----------------------------
+AliJRunHeader::AliJRunHeader():
+    TNamed("AliJRunHeader", ""),
+    fRunNumber(-1),
+    fRunType(""), 
+    fESDInfo(""), 
+    fL3MagnetPolarity(0),
+    fMagneticFieldL3(0),
+    fActiveTriggersAlice(),
+    fSizeOfTableJCorran(0),
+//    fAliceTriggerDef(), 
+    fActiveTriggersJCorran(), 
+    fAliceTriggerDef(), 
+    fAliceFilterMapDef()
+{                     //constructor
+
+  for(Int_t i=0;i<kRangeTriggerTableAlice;i++){
+    fActiveTriggersAlice.Add(new TObjString("EMPTY"));
+    fActiveTriggersJCorran.Add(new TObjString("EMPTY"));
+  }
+
+  fActiveTriggersAlice.SetOwner(kTRUE);
+  fActiveTriggersJCorran.SetOwner(kTRUE);
+
+  SetName("AliRunHeader");
+  SetTitle("AliRunHeader");
+
+}
+//________________________________________________________________________
+
+AliJRunHeader::AliJRunHeader(const AliJRunHeader& ap):
+    TNamed(ap),
+    fRunNumber(ap.fRunNumber),
+    fRunType(ap.fRunType), 
+    fESDInfo(ap.fESDInfo), 
+    fL3MagnetPolarity(ap.fL3MagnetPolarity),
+    fMagneticFieldL3(ap.fMagneticFieldL3),  
+    fActiveTriggersAlice(ap.fActiveTriggersAlice),       
+    fSizeOfTableJCorran(ap.fSizeOfTableJCorran),
+//    fAliceTriggerDef(ap.fAliceTriggerDef), 
+    fActiveTriggersJCorran(ap.fActiveTriggersJCorran), 
+    fAliceTriggerDef(ap.fAliceTriggerDef), 
+    fAliceFilterMapDef(ap.fAliceFilterMapDef)
+{
+  //cpy ctor
+}
+//________________________________________________________________________
+
+void AliJRunHeader::SetActiveTriggersAlice(const TString *triggers){
+  // fill aliroot trigger table
+  for(Int_t t=0;t<kRangeTriggerTableAlice;t++){
+    ((TObjString*) (fActiveTriggersAlice.At(t)))->SetString(triggers[t].Data());
+  }
+
+  fActiveTriggersAlice.SetOwner(kTRUE);
+}
+//________________________________________________________________________
+
+void AliJRunHeader::SetActiveTriggersJCorran(const TString *triggers, Int_t range){
+  //fill jcorran trigger table
+  for(Int_t t=0;t<range;t++){
+    ((TObjString*) (fActiveTriggersJCorran.At(t)))->SetString(triggers[t].Data());
+  }
+  fActiveTriggersJCorran.SetOwner(kTRUE);
+  fSizeOfTableJCorran = range;
+}
+//________________________________________________________________________
+
+Int_t AliJRunHeader::GetActiveTriggerBitAlice(TString TriggerName){
+  //get trigger bit corresponding to trigger name
+  Int_t tbit=-1;
+  for(Int_t t=0;t<kRangeTriggerTableAlice;t++){
+    if(TriggerName.Contains(((TObjString*)(fActiveTriggersAlice.At(t)))->GetString())){
+      tbit = t;
+      break;
+    }
+  }
+  return tbit;
+}
+//________________________________________________________________________
+
+void AliJRunHeader::PrintOut(){
+  //print object
+  std::cout<<"RUN "<<fRunNumber<<std::endl;
+  std::cout<<"Alice trigger table:"<<std::endl;
+  for(Int_t i=0;i<kRangeTriggerTableAlice;i++){
+    std::cout<<i<<"   "<<GetActiveTriggerAlice(i)<<std::endl;
+  }
+  std::cout<<"============================="<<std::endl;
+  std::cout<<"JCorran trigger table:"<<std::endl;
+  for(Int_t i=0;i<fSizeOfTableJCorran;i++){
+    std::cout<<i<<"   "<<GetActiveTriggerJCorran(i)<<std::endl;
+  }
+  std::cout<<"============================="<<std::endl;
+  std::cout<<"Magnet polarity "<<fL3MagnetPolarity<<std::endl;
+  std::cout<<"B "<<fMagneticFieldL3<<std::endl;
+  std::cout<<"============================="<<std::endl;
+
+}
+//_______________________________________________________________________
+AliJRunHeader& AliJRunHeader::operator=(const  AliJRunHeader& header){
+  //operator =
+  if(this != &header) {
+    TNamed::operator=(header);
+    fRunNumber        = header.fRunNumber;
+    fRunType          = header.fRunType;
+    fESDInfo          = header.fESDInfo;
+    fL3MagnetPolarity = header.fL3MagnetPolarity;
+    fMagneticFieldL3  = header.fMagneticFieldL3;
+    fActiveTriggersAlice   = header.fActiveTriggersAlice;
+    fSizeOfTableJCorran    = header.fSizeOfTableJCorran;
+    fActiveTriggersJCorran = header.fActiveTriggersJCorran;
+    fAliceTriggerDef       = header.fAliceTriggerDef; 
+    fAliceFilterMapDef     = header.fAliceFilterMapDef;
+  }
+  return *this;
+}
+
+
diff --git a/PWGCF/Correlations/JCORRAN/AliJRunHeader.h b/PWGCF/Correlations/JCORRAN/AliJRunHeader.h
new file mode 100755 (executable)
index 0000000..6aacb8a
--- /dev/null
@@ -0,0 +1,118 @@
+// $Id: AliJRunHeader.h,v 1.1 2008/02/04 13:28:47 rak Exp $
+////////////////////////////////////////////////////
+/*!
+  \file AliJRunHeader.h
+  \brief
+  \author J. Rak, D.J.Kim, F.Krizek  (Jyvaskyla || HIP)
+  \email: djkim@cc.jyu.fi
+  \version $Revision: 1.1 $
+  \date $Date: 2008/02/04 13:28:47 $
+  */
+////////////////////////////////////////////////////
+
+#ifndef ALIJRUNHEADER_H
+#define ALIJRUNHEADER_H
+#ifndef ROOT_TObject
+#include <TObject.h>
+#endif
+
+#include <TNamed.h>
+#include <TString.h>
+#include <TObjString.h>
+#include <TObjArray.h>
+#include <vector>
+#include <map>
+
+
+class AliJRunHeader : public TNamed {
+
+//#pragma link C++ class AliJRunHeader+;
+
+ public:
+  AliJRunHeader();//constructor
+  AliJRunHeader(const AliJRunHeader& ap);
+
+  virtual ~AliJRunHeader(){;}              //destructor
+
+  virtual Int_t  GetRunNumber()     const {return fRunNumber;}
+  virtual void SetRunNumber(Int_t runN) { fRunNumber = runN;}
+
+
+  void SetRunType(const TString info ) { fRunType = info; }
+  TString GetRunType() const { return fRunType; }
+
+  void SetESDInfo(const TString info ) { fESDInfo = info; }
+  TString GetESDInfo() const { return fESDInfo; }
+
+//  void SetESDInfo(const char* info ) { fESDInfo = info; }
+//  char* GetESDInfo() const { return fESDInfo; }
+
+  //         s e t t e r s   a n d    g e t t e r s
+  void SetL3Field(Short_t polarity,Double_t MagnetFieldInL3){
+    fL3MagnetPolarity = polarity;
+    fMagneticFieldL3  = MagnetFieldInL3;
+  }
+
+  Short_t  GetL3MagnetFieldPolarity()  const { return fL3MagnetPolarity;}
+  Double_t GetL3MagnetFieldIntensity() const { return fMagneticFieldL3;}
+
+  //--- Alice event trigger definition by BS like "kMB", "kHighMulti"
+  const std::map<TString, ULong64_t>& GetAliceTriggerDef() const { return fAliceTriggerDef; }
+  ULong64_t GetAliceTriggerDef( const TString name ) const { return GetBitMaskDef( fAliceTriggerDef, name); }
+  void AddAliceTriggerDef( const TString name, const ULong64_t mask){ fAliceTriggerDef[name]=mask; }
+  void RemoveAliceTriggerDef( const TString name){ fAliceTriggerDef.erase(name); }
+
+  //--- Alice track FilterMap by BS like "kEsdTrackCutsL" 
+  const std::map<TString, ULong64_t>& GetAliceFilterMapDef() const { return fAliceFilterMapDef; }
+  ULong64_t GetAliceFilterMapDef( const TString name ) const { return GetBitMaskDef( fAliceFilterMapDef, name); }
+  void AddAliceFilterMapDef( const TString name, const ULong64_t mask){ fAliceFilterMapDef[name]=mask; }
+  void RemoveAliceFilterMapDef( const TString name){ fAliceFilterMapDef.erase(name); }
+
+  //--- Common Method to handle BitMask Definition ( map<TString, ULong64_t> )
+  ULong64_t GetBitMaskDef( std::map<TString, ULong64_t> def, const TString name ) const{
+    std::map<TString, ULong64_t>::iterator _iter = def.find(name);
+    //iter = def.find(name);
+    if( _iter ==  def.end() ){ return 0; }
+    else{ return _iter->second; }
+  }
+
+  //-- Alice trigger table -- by Filip. "Trigger Class" like "+CMBACS2-B-NOPF-ALL"
+  void SetActiveTriggersAlice( const TString *triggers);
+  Int_t GetActiveTriggerBitAlice(TString TriggerName);
+  TString GetActiveTriggerAlice(Int_t TriggerBit) const {
+    return ((TObjString*) (fActiveTriggersAlice.At(TriggerBit)))->GetString();
+  }
+
+  //-- JCorran trigger table -- by Filip
+  void SetActiveTriggersJCorran(const TString *triggers, Int_t range);
+  TString GetActiveTriggerJCorran(Int_t TriggerBit) const {
+    return ((TObjString*) (fActiveTriggersJCorran.At(TriggerBit)))->GetString();
+  }
+
+  AliJRunHeader& operator=(const  AliJRunHeader& header);
+
+  void PrintOut();
+
+ protected:
+  Int_t       fRunNumber;        //run number 
+  TString     fRunType;       // ex) LHC10h
+  TString     fESDInfo;       // information of aliroot,  root version while esd production
+//  Char_t*     fESDInfo;       // information of aliroot,  root version while esd production
+  Short_t     fL3MagnetPolarity; //Polarity of magnetic filed in L3 magnet (LHC convention: + -> +Bz)
+  Double32_t  fMagneticFieldL3;  //Solenoid Magnetic Field in kG   
+  TObjArray   fActiveTriggersAlice;   //array maping between trigger bit and trigger names
+
+  Int_t       fSizeOfTableJCorran;  //size of jcorran table
+//  std::map<TString,ULong64_t> fAliceTriggerDef;  //Alice event trigger definition by BS like "kMB", "kHighMulti"
+//  std::map<TString,ULong64_t> fAliceFilterMapDef;//Alice track FilterMap by BS like "kEsdTrackCutsL"     
+
+  TObjArray   fActiveTriggersJCorran;   //array maping between trigger bit and trigger names
+  //TBit 0 = MB 
+  std::map<TString,ULong64_t> fAliceTriggerDef;  //Alice event trigger definition by BS like "kMB", "kHighMulti"
+  std::map<TString,ULong64_t> fAliceFilterMapDef;//Alice track FilterMap by BS like "kEsdTrackCutsL"     
+  //std::map<TString, ULong64_t>::iterator iter;
+  ClassDef(AliJRunHeader,2)
+
+};
+
+#endif
diff --git a/PWGCF/Correlations/JCORRAN/AliJTrack.cxx b/PWGCF/Correlations/JCORRAN/AliJTrack.cxx
new file mode 100755 (executable)
index 0000000..b4c4c97
--- /dev/null
@@ -0,0 +1,88 @@
+/**************************************************************************
+ * Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
+ *                                                                        *
+ * Author: The ALICE Off-line Project.                                    *
+ * Contributors are mentioned in the code where appropriate.              *
+ *                                                                        *
+ * Permission to use, copy, modify and distribute this software and its   *
+ * documentation strictly for non-commercial purposes is hereby granted   *
+ * without fee, provided that the above copyright notice appears in all   *
+ * copies and that both the copyright notice and this permission notifce   *
+ * appear in the supporting documentation. The authors make no claims     *
+ * about the suitability of this software for any purpose. It is          *
+ * provided "as is" without express or implied warranty.                  *
+ **************************************************************************/
+
+// $Id: AliJTrack.cxx,v 1.2 2008/01/21 11:56:39 djkim Exp $
+
+////////////////////////////////////////////////////
+//
+//  \file AliJTrack.cxx
+//  \brief
+//  \author J. Rak, D.J.Kim, R.Diaz (University of Jyvaskyla)
+//  \email: djkim@jyu.fi
+//  \version $Revision: 1.1 $
+//  \date $Date: 2008/05/02 11:56:39 $
+//  
+// class encapsulating aliroot track information
+////////////////////////////////////////////////////
+
+#include "AliJBaseTrack.h"
+#include "AliJTrack.h"
+
+//ClassImp(AliJTrack)
+
+//______________________________________________________________________________
+AliJTrack::AliJTrack() : 
+    AliJBaseTrack(),
+    fFilterMap(0),
+    fTPCnClust(-1),
+    fTPCdEdx(-1), 
+    fTOFbeta(0)
+{
+  // default constructor
+  for( int i=0;i<kNAliJTrkPID;i++ ) SetPID( AliJTrkPID(i), 0, kTOF);
+  for( int i=0;i<kNAliJTrkPID;i++ ) SetPID( AliJTrkPID(i), 0, kTPC);
+  for( int i=0;i<kNAliJTrkPID;i++ ) SetPID( AliJTrkPID(i), 0, kTPCTOF);
+  for( int i=0;i<kNAliJTrkPID;i++) fExpTOFbeta[i]= 0;
+  for( int i=0;i<3;i++) fTPCTrack[i] = 0;
+
+}
+
+//______________________________________________________________________________
+AliJTrack::AliJTrack(const AliJTrack& a):
+    AliJBaseTrack(a),
+    fFilterMap( a.fFilterMap ),
+    fTPCnClust(a.fTPCnClust),
+    fTPCdEdx(a.fTPCdEdx), 
+    fTOFbeta( a.fTOFbeta )
+{ 
+  //copy constructor
+  for(Int_t i=0;i<kNAliJTrkPID;i++) fTrkPID[i][kTOF] = a.fTrkPID[i][kTOF];
+  for(Int_t i=0;i<kNAliJTrkPID;i++) fTrkPID[i][kTPC] = a.fTrkPID[i][kTPC];
+  for(Int_t i=0;i<kNAliJTrkPID;i++) fTrkPID[i][kTPCTOF] = a.fTrkPID[i][kTPCTOF];
+  for(Int_t i=0;i<kNAliJTrkPID;i++) fExpTOFbeta[i]= a.fExpTOFbeta[i];
+  for( int i=0;i<3;i++) fTPCTrack[i] = a.fTPCTrack[i];
+}
+
+
+//______________________________________________________________________________
+AliJTrack&  AliJTrack::operator=(const AliJTrack& trk){
+  //operator = 
+  if(this != &trk){
+    AliJBaseTrack::operator=(trk);
+    for(Int_t i=0;i<kNAliJTrkPID;i++){
+      fTrkPID[i][kTOF] = trk.fTrkPID[i][kTOF];
+      fTrkPID[i][kTPC] = trk.fTrkPID[i][kTPC];
+      fTrkPID[i][kTPCTOF] = trk.fTrkPID[i][kTPCTOF];
+      fExpTOFbeta[i]= trk.fExpTOFbeta[i];
+    }
+    for( int i=0;i<3;i++) fTPCTrack[i] = trk.fTPCTrack[i];
+    fFilterMap  = trk.fFilterMap;
+    fTPCnClust  = trk.fTPCnClust;
+    fTPCdEdx = trk.fTPCdEdx;
+    fTOFbeta = trk.fTOFbeta;
+  }
+  return *this;
+}
+
diff --git a/PWGCF/Correlations/JCORRAN/AliJTrack.h b/PWGCF/Correlations/JCORRAN/AliJTrack.h
new file mode 100755 (executable)
index 0000000..fc8b233
--- /dev/null
@@ -0,0 +1,87 @@
+// $Id: AliJTrack.h,v 1.3 2008/01/21 11:56:39 djkim Exp $
+////////////////////////////////////////////////////
+/*!
+  \file AliJTrack.h
+  \brief
+  \author J. Rak, D.J.Kim, R.Diaz (University of Jyvaskyla)
+  \email: djkim@jyu.fi
+  \version $Revision: 1.1 $
+  \date $Date: 2008/05/02 11:56:39 $
+*/
+////////////////////////////////////////////////////
+
+#ifndef ALIJTRACK_H
+#define ALIJTRACK_H
+
+#ifndef ROOT_TObject
+#include <TObject.h>
+#endif
+
+#include "AliJBaseTrack.h"
+
+class AliJTrack : public AliJBaseTrack {
+
+public:
+   enum AliJTrkPID {
+    kMostProbableAliJ = -1, 
+    kElectronAliJ, 
+    kMuonAliJ,
+    kPionAliJ, 
+    kKaonAliJ, 
+    kProtonAliJ, 
+    kNAliJTrkPID
+   };
+
+   enum AliJTrkPIDmethod {
+    kTOF=0, kTPC=1, kTPCTOF=2, kNAliJTrkPIDmethod
+   };
+
+  AliJTrack();                  // default constructor
+  AliJTrack(const AliJTrack& a); // copy constructor
+  ~AliJTrack(){;}              //destructor
+
+  Double32_t  GetPID(AliJTrkPID p, AliJTrkPIDmethod m) const { return fTrkPID[p][m]; }
+  UInt_t      GetFilterMap() const { return fFilterMap; }
+  Bool_t      IsFiltered( int i ) const { return TESTBIT( fFilterMap, i); }
+  Bool_t      IsFilteredMask( UInt_t mask ) const { return ((Bool_t)(((fFilterMap) & mask) != 0)); };
+  int         GetTPCnClust() const {return fTPCnClust;}
+  Float_t     GetTPCdEdx()  const {return fTPCdEdx; }
+  Float_t  GetTOFbeta() const {return fTOFbeta;}
+  Float_t  GetExpectedTOFbeta( AliJTrkPID p ) const {return fExpTOFbeta[p];}
+  Double_t  GetExpectedTPCdEdx( AliJTrkPID p ) const {return fExpTPCdEdx[p];}
+  Double_t  GetTPCsigma( AliJTrkPID p) const {return fTPCsigma[p];}
+  Double_t  GetTOFsigma( AliJTrkPID p) const {return fTOFsigma[p];}
+
+  void SetPID(AliJTrkPID p, double pro, AliJTrkPIDmethod m){ fTrkPID[p][m] = pro; }
+  void SetFilterMap( UInt_t map ){ fFilterMap = map; }
+  void SetFilterMap( int i, bool t ){ t?SETBIT(fFilterMap,i):CLRBIT(fFilterMap,i); } 
+  void SetTPCnClust(int ival) {fTPCnClust = ival;}
+  void SetTPCdEdx( Float_t dedx ){ fTPCdEdx = dedx; }
+  void SetTOFbeta(Float_t beta) {fTOFbeta = beta;}
+  void SetExpectedTOFbeta(AliJTrkPID p, float exbeta) {fExpTOFbeta[p] = exbeta;}
+  void SetExpectedTPCdEdx(AliJTrkPID p, Double_t exdEdx) {fExpTPCdEdx[p] = exdEdx;}
+  void SetTPCsigma(AliJTrkPID p, Double_t TPCsigma) {fTPCsigma[p] = TPCsigma;}
+  void SetTOFsigma(AliJTrkPID p, Double_t TOFsigma) {fTOFsigma[p] = TOFsigma;} // Return the expected sigma of the PID signal for the specified  particle type.
+
+  void SetTPCTrack( Float_t px,  Float_t py,  Float_t pz ){ fTPCTrack[0]=px;fTPCTrack[1]=py;fTPCTrack[2]=pz;}
+  void SetUseTPCTrack(){ SetPxPyPzE( fTPCTrack[0], fTPCTrack[1], fTPCTrack[2], 0 ); } 
+  Float_t* GetTPCTrack(){ return fTPCTrack; }
+
+  AliJTrack& operator=(const AliJTrack& trk);
+
+private:
+  Double32_t  fTrkPID[kNAliJTrkPID][kNAliJTrkPIDmethod];    //[0.,1.,8] Array for PID. 
+  UInt_t      fFilterMap;               // bit serious of cuts
+  Short_t     fTPCnClust;               // track TPC nclusters 
+  Float_t     fTPCdEdx;
+  Float_t    fTOFbeta;                    //!
+  Float_t    fExpTOFbeta[kNAliJTrkPID];   //!
+  Double_t   fExpTPCdEdx[kNAliJTrkPID];   //!
+  Double_t   fTPCsigma[kNAliJTrkPID];     //!
+  Double_t   fTOFsigma[kNAliJTrkPID];     //!
+  Float_t    fTPCTrack[3];              // px, py, pz for TPCTrack;
+
+  ClassDef(AliJTrack,1)
+};
+
+#endif
diff --git a/PWGCF/Correlations/macros/jcorran/AddESDFilter.C b/PWGCF/Correlations/macros/jcorran/AddESDFilter.C
new file mode 100755 (executable)
index 0000000..569cdd6
--- /dev/null
@@ -0,0 +1,77 @@
+AliAnalysisFilter *AddESDFilter()
+{
+  // Cuts on primary tracks
+  AliESDtrackCuts* esdTrackCutsL = AliESDtrackCuts::GetStandardTPCOnlyTrackCuts();
+
+  // ITS stand-alone tracks
+  AliESDtrackCuts* esdTrackCutsITSsa = new AliESDtrackCuts("ITS stand-alone Track Cuts", "ESD Track Cuts");
+  esdTrackCutsITSsa->SetRequireITSStandAlone(kTRUE);
+
+  // Pixel OR necessary for the electrons
+  AliESDtrackCuts *itsStrong = new AliESDtrackCuts("ITSorSPD", "pixel requirement for ITS");
+  itsStrong->SetClusterRequirementITS(AliESDtrackCuts::kSPD, AliESDtrackCuts::kAny);
+
+
+  // PID for the electrons
+  AliESDpidCuts *electronID = new AliESDpidCuts("Electrons", "Electron PID cuts");
+  electronID->SetTPCnSigmaCut(AliPID::kElectron, 3.);
+
+  // standard cuts with very loose DCA
+  AliESDtrackCuts* esdTrackCutsH = AliESDtrackCuts::GetStandardITSTPCTrackCuts2010(kFALSE); 
+  esdTrackCutsH->SetMaxDCAToVertexXY(2.4);
+  esdTrackCutsH->SetMaxDCAToVertexZ(3.2);
+  esdTrackCutsH->SetDCAToVertex2D(kTRUE);
+
+  // standard cuts with tight DCA cut
+  AliESDtrackCuts* esdTrackCutsH2 = AliESDtrackCuts::GetStandardITSTPCTrackCuts2010();
+
+  // standard cuts with tight DCA but with requiring the first SDD cluster instead of an SPD cluster
+  // tracks selected by this cut are exclusive to those selected by the previous cut
+  AliESDtrackCuts* esdTrackCutsH3 = AliESDtrackCuts::GetStandardITSTPCTrackCuts2010(); 
+  esdTrackCutsH3->SetClusterRequirementITS(AliESDtrackCuts::kSPD, AliESDtrackCuts::kNone);
+  esdTrackCutsH3->SetClusterRequirementITS(AliESDtrackCuts::kSDD, AliESDtrackCuts::kFirst);
+
+  // TPC only tracks: Optionally enable the writing of TPConly information
+  // constrained to SPD vertex in the filter below
+  AliESDtrackCuts* esdTrackCutsTPCOnly = AliESDtrackCuts::GetStandardTPCOnlyTrackCuts();
+  esdTrackCutsTPCOnly->SetMinNClustersTPC(70);
+
+  // R_AA cut with recent change in AliESDtrackCuts in trunk aliroot (111026)
+  AliESDtrackCuts* esdTrackCutsRaa = AliESDtrackCuts::GetStandardITSTPCTrackCuts2010(kTRUE,1); // 1,2,3,4,5,6,7
+  esdTrackCutsRaa->SetMinNCrossedRowsTPC(120); // 3 (70 set in above cut)
+  esdTrackCutsRaa->SetMaxChi2PerClusterITS(36.); // 8
+  esdTrackCutsRaa->SetMaxChi2TPCConstrainedGlobal(36.); // 9
+  esdTrackCutsRaa->SetMaxFractionSharedTPCClusters(0.4); // 10
+
+  // Compose the filter
+  AliAnalysisFilter* trackFilter = new AliAnalysisFilter("trackFilter");
+  // 1
+  trackFilter->AddCuts(esdTrackCutsL);
+  // 2
+  trackFilter->AddCuts(esdTrackCutsITSsa);
+  // 4
+  trackFilter->AddCuts(itsStrong);
+  itsStrong->SetFilterMask(1);        // AND with Standard track cuts 
+  // 8
+  trackFilter->AddCuts(electronID);
+  electronID->SetFilterMask(4);       // AND with Pixel Cuts
+  // 16
+  trackFilter->AddCuts(esdTrackCutsH);
+  // 32
+  trackFilter->AddCuts(esdTrackCutsH2);
+  // 64
+  trackFilter->AddCuts(esdTrackCutsH3);
+  // 128 , 1 << 7
+  trackFilter->AddCuts(esdTrackCutsTPCOnly);
+
+  //========================================
+  //
+  //        Add Additional Cuts here
+  //
+  //========================================
+
+  trackFilter->AddCuts(esdTrackCutsRaa);
+
+  return trackFilter;
+}
+
diff --git a/PWGCF/Correlations/macros/jcorran/CreateAlienHandler.C b/PWGCF/Correlations/macros/jcorran/CreateAlienHandler.C
new file mode 100755 (executable)
index 0000000..106b8dc
--- /dev/null
@@ -0,0 +1,79 @@
+AliAnalysisGrid* CreateAlienHandler()
+{
+  // Check if user has a valid token, otherwise make one. This has limitations.
+  // One can always follow the standard procedure of calling alien-token-init then
+  //   source /tmp/gclient_env_$UID in the current shell.
+  //   if (!AliAnalysisGrid::CreateToken()) return NULL;
+  AliAnalysisAlien *plugin = new AliAnalysisAlien();
+  plugin->SetOverwriteMode();
+
+  //========================================
+  // SET RUN MODE :  "full",   "est",   "offline",   "ubmit" or "terminate"
+  //========================================
+  plugin->SetRunMode("test"); 
+
+  plugin->SetNtestFiles(1); // Relevant only for run mode "test" 
+
+  //========================================
+  // Set versions of used packages
+  //========================================
+  plugin->SetAPIVersion("V1.1x");
+  plugin->SetROOTVersion("v5-30-06-1");plugin->SetAliROOTVersion("v5-03-04-AN");
+
+  //========================================
+  // Declare input data to be processed.
+  //========================================
+  // /alice/data/2010/LHC10h/000137366/ESDs/pass1/10000137366005.2140/AliESDs.root
+  plugin->SetGridDataDir("/alice/data/2011/LHC11h_2/");
+  //plugin->SetDataPattern("/pass2/11000170308079.20/*AOD.root"); // TEST MODE
+
+  plugin->SetDataPattern("*/pass2/*AOD.root");
+  //plugin->SetDataPattern("*/pass2/*AOD.root");
+  plugin->SetRunPrefix("000");   // real data
+  plugin->AddRunNumber(170308);
+
+  plugin->SetAdditionalLibs("libANALYSIS.so libANALYSISalice.so libEMCALUtils.so libPHOSUtils.so libGui.so libCDB.so libRAWDatabase.so libRAWDatarec.so libProof.so libSTEER.so libTOFbase.so libTOFrec.so libMinuit.so libRAWDatabase.so libRAWDatarec.so libAOD.so libCORRFW.so libPWGCFJCORRAN.so");
+
+//  plugin->SetAdditionalLibs("PWG4JCORRAN.par libEMCALUtils.so libPHOSUtils.so");//AliCentralityBy1D_137161_GLAU.root AliCentralitySelectionTask.cxx");
+
+  //========================================
+  // Set Ouput Information  
+  //========================================
+  plugin->SetGridWorkingDir("PWG_CF/test_120320");
+  plugin->SetGridOutputDir("output"); // In this case will be $HOME/work/output
+  plugin->SetOutputToRunNo();
+  plugin->SetDefaultOutputs(kFALSE);
+  //plugin->SetPreferedSE("ALICE::NDGF::DCACHE");
+  //plugin->SetOutputArchive("log_archive.zip:std*@disk=1 root_archive.zip:jcorran.root,AnalysisResults.root,EventStat_temp.root,*.stat@disk=2");
+  plugin->SetOutputArchive("log_archive.zip:std*@disk=1 root_archive.zip:*.root,*stat,*.xml@disk=2");
+  plugin->SetKeepLogs(kTRUE);
+  plugin->SetOutputFiles("jcorran.root");
+  plugin->SetTerminateFiles("event_stat.root");
+  // plugin->SetOutputSingleFolder("output");
+   
+  //========================================
+  // Optional
+  //========================================
+  //FK//   plugin->SetAnalysisSource("AliJCORRANTask.cxx");
+  plugin->SetAnalysisMacro("TaskJC.C");
+  plugin->SetSplitMaxInputFileNumber(20);
+  plugin->SetExecutable("TaskJC.sh");
+//  plugin->SetExecutableCommand("export MALLOC_CHECK_=0 ; root -b -q");
+  // Optionally set number of failed jobs that will trigger killing waiting sub-jobs.
+  //   plugin->SetMaxInitFailed(5);
+  // Optionally resubmit threshold.
+  plugin->SetMasterResubmitThreshold(95);
+  // Optionally set time to live (default 30000 sec)
+  plugin->SetTTL(30000);
+  // Optionally set input format (default xml-single)
+  plugin->SetInputFormat("xml-single");
+  // Optionally modify the name of the generated JDL (default analysis.jdl)
+  plugin->SetJDLName("TaskJC.jdl");
+  // Optionally modify job price (default 1)
+  plugin->SetPrice(1);      
+  // Optionally modify split mode (default 'se')    
+  plugin->SetSplitMode("se");
+
+
+  return plugin;
+}
diff --git a/PWGCF/Correlations/macros/jcorran/runGrid.C b/PWGCF/Correlations/macros/jcorran/runGrid.C
new file mode 100755 (executable)
index 0000000..cb90341
--- /dev/null
@@ -0,0 +1,216 @@
+const Bool_t kMC = kFALSE; //With real data kMC = kFALSE
+const TString kInputData = "AOD";
+const TString kJCORRANInputFormat = "AOD"; // ESD, AODout, AODin
+
+//_____________________________________________________________________
+void runGrid(){
+  // Load Custom Configuration and parameters
+  // override values with parameters
+
+  //==== Load common libraries
+  gSystem->Load("libCore.so");  
+  gSystem->Load("libTree.so");
+  gSystem->Load("libGeom.so");
+  gSystem->Load("libVMC.so");
+  gSystem->Load("libXMLIO.so");
+  gSystem->Load("libPhysics.so");
+  gSystem->Load("libSTEERBase");
+  gSystem->Load("libESD");
+  gSystem->Load("libAOD");
+  gSystem->Load("libANALYSIS"); 
+  gSystem->Load("libANALYSISalice");   
+  gSystem->Load("libEMCALUtils");
+  gSystem->Load("libPHOSUtils");
+  gSystem->Load("libPWG4PartCorrBase");
+  gSystem->Load("libPWG4PartCorrDep");
+  gSystem->Load("libPWGCFJCORRAN");
+
+  //==== Load Ours
+// SetupPar("PWG4JCORRAN"); 
+
+  // Use AliRoot includes to compile our task
+  gROOT->ProcessLine(".include $ALICE_ROOT/include");
+  gROOT->ProcessLine(".include $ALICE_ROOT/EMCAL");
+       gSystem->AddIncludePath("-I. -I$ROOTSYS/include -I$ALICE_ROOT/include -I$ALICE_ROOT/EMCAL -I$ALICE_ROOT/ANALYSIS ");
+
+  // Create and configure the alien handler plugin
+  gROOT->LoadMacro("CreateAlienHandler.C");
+  AliAnalysisGrid *alienHandler = CreateAlienHandler();  
+  if (!alienHandler) return;
+  // Create the analysis manager
+  AliAnalysisManager *mgr = new AliAnalysisManager("JCHII");
+
+  // Connect plug-in to the analysis manager
+  mgr->SetGridHandler(alienHandler);
+
+  // MC handler
+  if(kMC){
+    AliMCEventHandler* mcHandler = new AliMCEventHandler();
+    mcHandler->SetReadTR(kFALSE);//Do not search TrackRef file
+    mgr->SetMCtruthEventHandler(mcHandler);
+  }
+  if(kInputData == "ESD"){
+    // ESD handler
+    AliESDInputHandler *esdHandler = new AliESDInputHandler();
+    mgr->SetInputEventHandler(esdHandler);
+  }
+  if(kInputData == "AOD"){
+    // AOD handler
+    AliAODInputHandler *aodHandler = new AliAODInputHandler();
+    mgr->SetInputEventHandler(aodHandler);
+  }
+
+  //================================================
+  // TASKS
+  //================================================
+
+  //==== PID
+  gROOT->LoadMacro("$ALICE_ROOT/ANALYSIS/macros/AddTaskPIDResponse.C");
+  AddTaskPIDResponse(kMC);  
+  gROOT->LoadMacro("$ALICE_ROOT/ANALYSIS/macros/AddTaskPIDqa.C");
+  AddTaskPIDqa();
+  //==== Statistics
+  mgr->AddStatisticsTask();
+
+  //==== CENTRALITY
+  gROOT->LoadMacro("$ALICE_ROOT/ANALYSIS/macros/AddTaskCentrality.C");
+  AliCentralitySelectionTask *taskCentrality = AddTaskCentrality(); 
+  //taskCentrality->SetPass(2);
+
+  //==== Physics Selection
+  gROOT->ProcessLine(".L $ALICE_ROOT/ANALYSIS/macros/AddTaskPhysicsSelection.C");
+  AliPhysicsSelectionTask *physSelTask = AddTaskPhysicsSelection(kMC, kTRUE);
+  physSelTask->SelectCollisionCandidates(AliVEvent::kMB);
+
+  //============================
+  //   JCORRANTask
+  //===========================
+  //==== Basic Track Cut
+  AliESDtrackCuts* fEsdTrackCuts = AliESDtrackCuts::GetStandardTPCOnlyTrackCuts();
+  //http://aliceinfo.cern.ch/static/aliroot-new/html/roothtml/src/AliESDtrackCuts.cxx.html#DY4BnB
+
+  //==== Additional Track Filter ;
+  gROOT->ProcessLine(".L ./AddESDFilter.C");
+  AliAnalysisFilter *filter = AddESDFilter();
+
+  //==== JCORRAN TASK
+  AliJCORRANTask *jctask = new AliJCORRANTask("PWG4JCORRANTask",kJCORRANInputFormat);
+  jctask->SetESDtrackCuts(fEsdTrackCuts);
+  jctask->SetRealOrMC(kMC);
+  jctask->SetOutputAODName("jcorran.root");
+  jctask->SetDebugLevel(0);
+  jctask->SetESDFilter( filter );
+  jctask->SetRunType("LHC11h");
+  jctask->SetStoreEventPlaneSource(true);
+  jctask->SetStoreTPCTrack(true);
+
+  //==event selection
+  jctask->SelectCollisionCandidates(AliVEvent::kMB | AliVEvent::kHighMult);  //Apply offline trigger selection by AliPhysicsSelectionTask
+
+  mgr->AddTask((AliAnalysisTask*) jctask);
+
+  //==== Create containers for input/output
+  AliAnalysisDataContainer *cinput = mgr->GetCommonInputContainer();
+  AliAODHandler* aodoutHandler   = new AliAODHandler();
+  aodoutHandler->SetCreateNonStandardAOD();
+  mgr->SetOutputEventHandler(aodoutHandler);
+
+  // Connect input/output
+  AliAnalysisDataContainer *runinfoOutput = mgr->CreateContainer("RunInfo",  TList::Class(), AliAnalysisManager::kOutputContainer, "jcorran.root");
+  mgr->ConnectInput(jctask, 0, cinput);
+  mgr->ConnectOutput(jctask, 1, runinfoOutput );
+
+
+  //===============================
+  // START MANAGER
+  //===============================
+
+  // Enable debug printouts
+  mgr->SetDebugLevel(0);
+
+  if (!mgr->InitAnalysis())
+    return;
+
+  mgr->PrintStatus();
+  // Start analysis in grid.
+  printf("********** LD_LIBRARY_PATH *******\n");
+  printf("%s\n", gSystem->Getenv("LD_LIBRARY_PATH"));
+  printf("**********************************\n");
+
+
+//  printf("%s\n", gSystem->Getenv("LD_LIBRARY_PATH"));
+
+  mgr->StartAnalysis("grid");
+};
+
+
+
+
+//========================================================================
+// Setup Par Files
+//========================================================================
+void SetupPar(char* pararchivename)
+{
+  //Load par files, create analysis libraries
+  //For testing, if par file already decompressed and modified
+  //classes then do not decompress.
+
+  TString cdir(Form("%s", gSystem->WorkingDirectory() )) ;
+  TString parpar(Form("%s.par", pararchivename)) ;
+  // create par file if it not exist
+  if ( gSystem->AccessPathName(parpar.Data()) ) {
+    gSystem->ChangeDirectory(gSystem->Getenv("ALICE_ROOT")) ;
+    TString processline(Form(".! make %s", parpar.Data())) ;
+    gROOT->ProcessLine(processline.Data()) ;
+    gSystem->ChangeDirectory(cdir) ;
+    processline = Form(".! mv /tmp/%s .", parpar.Data()) ;
+    gROOT->ProcessLine(processline.Data()) ;
+  }
+  // decompres par file
+  if ( gSystem->AccessPathName(pararchivename) ) {
+    TString processline = Form(".! tar xvzf %s",parpar.Data()) ;
+    gROOT->ProcessLine(processline.Data());
+  }
+
+  TString ocwd = gSystem->WorkingDirectory();
+  gSystem->ChangeDirectory(pararchivename);
+
+  // check for BUILD.sh and execute
+  if (!gSystem->AccessPathName("PROOF-INF/BUILD.sh")) {
+    printf("*******************************\n");
+    printf("*** Building PAR archive    ***\n");
+    cout<<pararchivename<<endl;
+    printf("*******************************\n");
+
+    if (gSystem->Exec("PROOF-INF/BUILD.sh")) {
+      Error("runProcess","Cannot Build the PAR Archive! - Abort!");
+      return -1;
+    }
+  }
+  // check for SETUP.C and execute
+  if (!gSystem->AccessPathName("PROOF-INF/SETUP.C")) {
+    printf("*******************************\n");
+    printf("*** Setup PAR archive       ***\n");
+    cout<<pararchivename<<endl;
+    printf("*******************************\n");
+    gROOT->Macro("PROOF-INF/SETUP.C");
+  }
+
+  gSystem->ChangeDirectory(ocwd.Data());
+  printf("Current dir: %s\n", ocwd.Data());
+
+}
+
+
+void LoadConf( TString filename ){
+  ifstream in(filename.Data());
+  TString str;
+  str.ReadFile(in);
+  str.ReplaceAll("\n",  "");
+  cout<<str<<endl;
+
+  gROOT->ProcessLine( str.Data() );
+}
+
diff --git a/PWGCF/PWGCFCorrelationsJCORRANLinkDef.h b/PWGCF/PWGCFCorrelationsJCORRANLinkDef.h
new file mode 100644 (file)
index 0000000..0d67e0a
--- /dev/null
@@ -0,0 +1,16 @@
+#ifdef __CINT__
+#pragma link off all globals;
+#pragma link off all classes;
+#pragma link off all functions;
+
+#pragma link C++ class AliJBaseTrack+;
+#pragma link C++ class AliJPhoton+;
+#pragma link C++ class AliJTrack+;
+#pragma link C++ class AliJMCTrack+;
+#pragma link C++ class AliJBaseEventHeader+;
+#pragma link C++ class AliJEventHeader+;
+#pragma link C++ class AliJRunHeader+;
+#pragma link C++ class AliJCORRANTask+;
+
+
+#endif /* __CINT__ */