From 37dde34e0e36d10896aac5e214e401a85ae9b959 Mon Sep 17 00:00:00 2001 From: jgrosseo Date: Fri, 30 Mar 2012 22:51:30 +0000 Subject: [PATCH] Code from DongJo and Jan Rak --- PWGCF/CMakelibPWGCFCorrelationsJCORRAN.pkg | 50 + PWGCF/Correlations/JCORRAN/AliFlowBayesianPID.cxx | 6464 ++++++++++++++++++++ PWGCF/Correlations/JCORRAN/AliFlowBayesianPID.h | 137 + PWGCF/Correlations/JCORRAN/AliJBaseEventHeader.cxx | 87 + PWGCF/Correlations/JCORRAN/AliJBaseEventHeader.h | 62 + PWGCF/Correlations/JCORRAN/AliJBaseTrack.cxx | 91 + PWGCF/Correlations/JCORRAN/AliJBaseTrack.h | 74 + PWGCF/Correlations/JCORRAN/AliJCORRANTask.cxx | 1003 +++ PWGCF/Correlations/JCORRAN/AliJCORRANTask.h | 167 + PWGCF/Correlations/JCORRAN/AliJConst.h | 77 + PWGCF/Correlations/JCORRAN/AliJEventHeader.cxx | 99 + PWGCF/Correlations/JCORRAN/AliJEventHeader.h | 87 + PWGCF/Correlations/JCORRAN/AliJMCTrack.cxx | 111 + PWGCF/Correlations/JCORRAN/AliJMCTrack.h | 78 + PWGCF/Correlations/JCORRAN/AliJPhoton.cxx | 213 + PWGCF/Correlations/JCORRAN/AliJPhoton.h | 139 + PWGCF/Correlations/JCORRAN/AliJRunHeader.cxx | 153 + PWGCF/Correlations/JCORRAN/AliJRunHeader.h | 118 + PWGCF/Correlations/JCORRAN/AliJTrack.cxx | 88 + PWGCF/Correlations/JCORRAN/AliJTrack.h | 87 + PWGCF/Correlations/macros/jcorran/AddESDFilter.C | 77 + .../macros/jcorran/CreateAlienHandler.C | 79 + PWGCF/Correlations/macros/jcorran/runGrid.C | 216 + PWGCF/PWGCFCorrelationsJCORRANLinkDef.h | 16 + 24 files changed, 9773 insertions(+), 0 deletions(-) create mode 100644 PWGCF/CMakelibPWGCFCorrelationsJCORRAN.pkg create mode 100755 PWGCF/Correlations/JCORRAN/AliFlowBayesianPID.cxx create mode 100755 PWGCF/Correlations/JCORRAN/AliFlowBayesianPID.h create mode 100755 PWGCF/Correlations/JCORRAN/AliJBaseEventHeader.cxx create mode 100755 PWGCF/Correlations/JCORRAN/AliJBaseEventHeader.h create mode 100755 PWGCF/Correlations/JCORRAN/AliJBaseTrack.cxx create mode 100755 PWGCF/Correlations/JCORRAN/AliJBaseTrack.h create mode 100755 PWGCF/Correlations/JCORRAN/AliJCORRANTask.cxx create mode 100755 PWGCF/Correlations/JCORRAN/AliJCORRANTask.h create mode 100755 PWGCF/Correlations/JCORRAN/AliJConst.h create mode 100755 PWGCF/Correlations/JCORRAN/AliJEventHeader.cxx create mode 100755 PWGCF/Correlations/JCORRAN/AliJEventHeader.h create mode 100755 PWGCF/Correlations/JCORRAN/AliJMCTrack.cxx create mode 100755 PWGCF/Correlations/JCORRAN/AliJMCTrack.h create mode 100644 PWGCF/Correlations/JCORRAN/AliJPhoton.cxx create mode 100644 PWGCF/Correlations/JCORRAN/AliJPhoton.h create mode 100755 PWGCF/Correlations/JCORRAN/AliJRunHeader.cxx create mode 100755 PWGCF/Correlations/JCORRAN/AliJRunHeader.h create mode 100755 PWGCF/Correlations/JCORRAN/AliJTrack.cxx create mode 100755 PWGCF/Correlations/JCORRAN/AliJTrack.h create mode 100755 PWGCF/Correlations/macros/jcorran/AddESDFilter.C create mode 100755 PWGCF/Correlations/macros/jcorran/CreateAlienHandler.C create mode 100755 PWGCF/Correlations/macros/jcorran/runGrid.C create mode 100644 PWGCF/PWGCFCorrelationsJCORRANLinkDef.h diff --git a/PWGCF/CMakelibPWGCFCorrelationsJCORRAN.pkg b/PWGCF/CMakelibPWGCFCorrelationsJCORRAN.pkg new file mode 100644 index 0000000..cf480f2 --- /dev/null +++ b/PWGCF/CMakelibPWGCFCorrelationsJCORRAN.pkg @@ -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 index 0000000..418a288 --- /dev/null +++ b/PWGCF/Correlations/JCORRAN/AliFlowBayesianPID.cxx @@ -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;iSGetTPCResponse().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;iSGetStatus() & 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;iSGetTOFResponse().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;iSGetBinContent(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 0){ + for(Int_t iS=0;iSP() > 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 index 0000000..69cad10 --- /dev/null +++ b/PWGCF/Correlations/JCORRAN/AliFlowBayesianPID.h @@ -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 index 0000000..fb1f775 --- /dev/null +++ b/PWGCF/Correlations/JCORRAN/AliJBaseEventHeader.cxx @@ -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 +#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 index 0000000..578ccd8 --- /dev/null +++ b/PWGCF/Correlations/JCORRAN/AliJBaseEventHeader.h @@ -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 +#endif +#include + +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 index 0000000..148f542 --- /dev/null +++ b/PWGCF/Correlations/JCORRAN/AliJBaseTrack.cxx @@ -0,0 +1,91 @@ +// $Id: AliJBaseTrack.cxx,v 1.5 2008/05/08 15:19:52 djkim Exp $ +//////////////////////////////////////////////////// +/*! + \file AliJBaseTrack.cxx + \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 $ + */ +//////////////////////////////////////////////////// + +#include +#include +#include "AliJBaseTrack.h" + +//______________________________________________________________________________ +AliJBaseTrack::AliJBaseTrack(): + fID(-1), + fLabel(-1), + fParticleType(-1), + fCharge(0), + fStatus(0), + fFlags(0) +{ + // constructor +} + +//_____________________________________________________________ +AliJBaseTrack::AliJBaseTrack(float px,float py, float pz, float e, Int_t id, Short_t ptype, Char_t charge): + TLorentzVector( px, py, pz, e ), + fID(id), + fLabel(-1), + fParticleType(ptype), + fCharge(charge), + fStatus(0), + fFlags(0) +{ + // constructor +} + +//_____________________________________________________________ +AliJBaseTrack::AliJBaseTrack(const AliJBaseTrack& a): + TLorentzVector (a), + fID (a.fID), + fLabel (a.fLabel), + fParticleType ( a.fParticleType ), + fCharge ( a.fCharge ), + fStatus ( a.fStatus ), + fFlags ( a.fFlags ) +{ + //copy constructor +} + +//_____________________________________________________________ +AliJBaseTrack::AliJBaseTrack(const TLorentzVector& a): + TLorentzVector (a), + fID ( -1 ), + fLabel ( -1 ), + fParticleType ( -1 ), + fCharge ( 0 ), + fStatus ( 0 ), + fFlags ( 0 ) +{ + //copy constructor +} +//_____________________________________________________________ +AliJBaseTrack& AliJBaseTrack::operator=(const AliJBaseTrack& trk){ + //operator = + if(this != &trk){ + TLorentzVector::operator=(trk); + fID = trk.fID; + fLabel = trk.fLabel; + fParticleType = trk.fParticleType; + fCharge = trk.fCharge; + fStatus = trk.fStatus; + fFlags = trk.fFlags; + } + return *this; +} + +//_____________________________________________________________ +void AliJBaseTrack::Print(Option_t* option = "" ) const{ + //object print out + std::cout< +#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 index 0000000..145f6d7 --- /dev/null +++ b/PWGCF/Correlations/JCORRAN/AliJCORRANTask.cxx @@ -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 +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#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 5) cout << "---- AliJCORRANTask Constructor ----"<~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-------"<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(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; triggerBitGetTriggerClass(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 "<(event); + ReadESDHeader(esd); + ReadESDTracks(esd); + //ReadESDCaloClusters(esd); + if((bool)fIsRealOrMC[0]) ReadMCTracks(mcEvent); + }else if( fInputFormat == "AOD") { + if(fDebug > 5) cout << "\t------- Start AOD "<(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 "<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 !!"< (GetOutputData(1)); + if(fRunInfoList) + { + fAliRunHeader = dynamic_cast (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; ispecNumberOfSigmasTPC(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; ispecNumberOfSigmasTOF(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;iTestFilterBit( 1UL<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; iclusterAt(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<GetInputEventHandler())) + ->IsEventSelected() & AliVEvent::kHighMult){ + //high multiplicity trigger TBit 1 + triggerMaskJC += (1<Stack(); + Int_t np = fMC->GetNumberOfTracks(); + + // AliGenEventHeader* genHeader = fMC->GenEventHeader(); + // AliGenPythiaEventHeader* pythiaGenHeader = dynamic_cast(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 index 0000000..82a37f0 --- /dev/null +++ b/PWGCF/Correlations/JCORRAN/AliJCORRANTask.h @@ -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 +#include +#include +#include +#include + +//#include +//#include +#include +#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 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 index 0000000..9705402 --- /dev/null +++ b/PWGCF/Correlations/JCORRAN/AliJConst.h @@ -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 index 0000000..665da4b --- /dev/null +++ b/PWGCF/Correlations/JCORRAN/AliJEventHeader.cxx @@ -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 +#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 +#include + +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 index 0000000..4fc4e07 --- /dev/null +++ b/PWGCF/Correlations/JCORRAN/AliJMCTrack.h @@ -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 +#endif +#include + +// 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 index 0000000..9303190 --- /dev/null +++ b/PWGCF/Correlations/JCORRAN/AliJPhoton.cxx @@ -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=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 index 0000000..dd808d3 --- /dev/null +++ b/PWGCF/Correlations/JCORRAN/AliJPhoton.h @@ -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 +#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=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 index 0000000..073baeb --- /dev/null +++ b/PWGCF/Correlations/JCORRAN/AliJRunHeader.cxx @@ -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 +#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;iSetString(triggers[t].Data()); + } + + fActiveTriggersAlice.SetOwner(kTRUE); +} +//________________________________________________________________________ + +void AliJRunHeader::SetActiveTriggersJCorran(const TString *triggers, Int_t range){ + //fill jcorran trigger table + for(Int_t t=0;tSetString(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;tGetString())){ + tbit = t; + break; + } + } + return tbit; +} +//________________________________________________________________________ + +void AliJRunHeader::PrintOut(){ + //print object + std::cout<<"RUN "< +#endif + +#include +#include +#include +#include +#include +#include + + +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& 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& 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 ) + ULong64_t GetBitMaskDef( std::map def, const TString name ) const{ + std::map::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 fAliceTriggerDef; //Alice event trigger definition by BS like "kMB", "kHighMulti" +// std::map fAliceFilterMapDef;//Alice track FilterMap by BS like "kEsdTrackCutsL" + + TObjArray fActiveTriggersJCorran; //array maping between trigger bit and trigger names + //TBit 0 = MB + std::map fAliceTriggerDef; //Alice event trigger definition by BS like "kMB", "kHighMulti" + std::map fAliceFilterMapDef;//Alice track FilterMap by BS like "kEsdTrackCutsL" + //std::map::iterator iter; + ClassDef(AliJRunHeader,2) + +}; + +#endif diff --git a/PWGCF/Correlations/JCORRAN/AliJTrack.cxx b/PWGCF/Correlations/JCORRAN/AliJTrack.cxx new file mode 100755 index 0000000..b4c4c97 --- /dev/null +++ b/PWGCF/Correlations/JCORRAN/AliJTrack.cxx @@ -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 +#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 index 0000000..569cdd6 --- /dev/null +++ b/PWGCF/Correlations/macros/jcorran/AddESDFilter.C @@ -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 index 0000000..106b8dc --- /dev/null +++ b/PWGCF/Correlations/macros/jcorran/CreateAlienHandler.C @@ -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 index 0000000..cb90341 --- /dev/null +++ b/PWGCF/Correlations/macros/jcorran/runGrid.C @@ -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<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<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<ProcessLine( str.Data() ); +} + diff --git a/PWGCF/PWGCFCorrelationsJCORRANLinkDef.h b/PWGCF/PWGCFCorrelationsJCORRANLinkDef.h new file mode 100644 index 0000000..0d67e0a --- /dev/null +++ b/PWGCF/PWGCFCorrelationsJCORRANLinkDef.h @@ -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__ */ -- 1.7.1