ROOT logo
#define ana_sgl_cxx
#include "ana_sgl.h"
#include <TH2.h>
#include <TStyle.h>
#include <TCanvas.h>
#include <TMath.h>
#include <vector>
#include <deque>
#include <cstdlib> 
#include <TRandom.h>

using namespace std;

using std::vector;

class etrk;

//Buffer for event mixing
static const int NBUF=100; //depth of buffer
static const int NMix=10; //# of events mixed (for +-)
//static const int NMix=2; //# of events mixed (for +-)


static const int NZBIN=10;
static const int NCENT=10;
int d_ibuf[NZBIN][NCENT];
vector<etrk> d_vep[NBUF][NZBIN][NCENT];
vector<etrk> d_vem[NBUF][NZBIN][NCENT];
  
static const unsigned int MAXPOOL=150;
//static const unsigned int MAXPOOL=50;
static const int MAX_TRY=3;
deque<etrk> d_poolp[NZBIN][NCENT];
deque<etrk> d_poolm[NZBIN][NCENT]; 
  
void reshuffle_buffer(vector<etrk> &ve,
		      deque<etrk> &pool){
  //If there is not enough electron in the pool, give up
  unsigned int ne = ve.size();
  unsigned int poolsize = pool.size();
  if(poolsize < ne) {
    cout <<" pool size="<<poolsize<<" ne"<<ne<<endl;
    return;
  }
  for(unsigned int ie=0; ie < ne; ie++) {
    int j = rand()%poolsize;
    ve[ie] = pool[j];
  }
} 

void ana_sgl::Loop()
{
//   In a ROOT session, you can do:
//      Root > .L ana_sgl.C
//      Root > ana_sgl t
//      Root > t.GetEntry(12); // Fill t data members with entry number 12
//      Root > t.Show();       // Show values of entry 12
//      Root > t.Show(16);     // Read and show values of entry 16
//      Root > t.Loop();       // Loop on all entries
//

//     This is the loop skeleton where:
//    jentry is the global entry number in the chain
//    ientry is the entry number in the current Tree
//  Note that the argument to GetEntry must be:
//    jentry for TChain::GetEntry
//    ientry for TTree::GetEntry and TBranch::GetEntry
//
//       To read only selected branches, Insert statements like:
// METHOD1:
//    fChain->SetBranchStatus("*",0);  // disable all branches
//    fChain->SetBranchStatus("branchname",1);  // activate branchname
// METHOD2: replace line
//    fChain->GetEntry(jentry);       //read all branches
//by  b_branchname->GetEntry(ientry); //read only this branch
   if (fChain == 0) return;

   Long64_t nentries = fChain->GetEntriesFast();

   Long64_t nbytes = 0, nb = 0;
   for (Long64_t jentry=0; jentry<nentries;jentry++) {
      Long64_t ientry = LoadTree(jentry);
      if (ientry < 0) break;
      nb = fChain->GetEntry(jentry);   nbytes += nb;
      ana_event(ientry, jentry);
      // if (Cut(ientry) < 0) continue;
   }
}

//___________________________________________
  void ana_sgl::ana_init(char *outname){
  fout  = new TFile(outname,"recreate");
  char name[100];

  hdedx_pt = new TH2D("hdedx_pt","dedx vs. pT",100,0, 10, 100, 0, 200);
  hdedx_tof_elec_pt = new TH2D("hdedx_tof_elec_pt","dedx vs. pT with tof veto",100,0, 10, 100, 0, 200);
  hdedx_tof_all_pt = new TH2D("hdedx_tof_all_pt","dedx vs. pT with tof veto",100,0, 10, 100, 0, 200);
  hdedx_tof_elec_emc_pt = new TH2D("hdedx_tof_elec_emc_pt","dedx vs. pT with tof veto and EMC",100,0, 10, 100, 0, 200);
  hdedx_tof_all_emc_pt = new TH2D("hdedx_tof_all_emc_pt","dedx vs. pT with tof veto and EMC",100,0, 10, 100, 0, 200);
  hdedx_emc_pt = new TH2D("hdedx_emc_pt","dedx vs. pT with EMC",100,0, 10, 100, 0, 200);


  hbetatof_pt = new TH2D("hbetatof_pt","beta vs. pT",100,0, 10, 100, 0, 1);
  hbetatof_tof_elec_pt = new TH2D("hbetatof_tof_elec_pt","beta vs. pT with tof cut",100,0, 10, 100, 0, 1);
  hbetatof_tof_all_pt = new TH2D("hbetatof_tof_all_pt","beta vs. pT with tof cut",100,0, 10, 100, 0, 1);
  hbetatof_tof_elec_emc_pt = new TH2D("hbetatof_tof_elec_emc_pt","beta vs. pT with tof cut",100,0, 10, 100, 0, 1);
  hbetatof_tof_all_emc_pt = new TH2D("hbetatof_tof_all_emc_pt","beta vs. pT with tof cut and emc E/p",100,0, 10, 100, 0, 1);
  hbetatof_emc_pt = new TH2D("hbetatof_emc_pt","dedx vs. pT with EMC",100,0, 10, 100, 0, 200);

  hCentrality = new TH1F("hCentrality","hCentrality",100,0,100);
  hV0AC = new TH2F("hV0AC","V0AC",5000,0,15000,5000,0,15000);
  hV0AC_Ntrk = new TH2F("hV0AC_Ntrk","V0AC vs. Ntrk",5000,0,30000,5000,0,15000);
  hV0AC_NaccTrcklts  = new TH2F("hV0AC_NaccTrcklts","V0AC vs. Ntrklets",5000,0,30000,2500,0,5000);
  


  fBinWidth = 0.05;

  nHistos = (int)(10/fBinWidth);

  for(int i=0;i<nHistos;i++){
    sprintf(name,"hdedx_p%d",i);
    hdedx[i] = new TH1D(name, name, 200,0,200);

    sprintf(name,"hdedx_tof_elec_p%d",i);
    hdedx_tof_elec[i] = new TH1D(name, name, 200,0,200);

    sprintf(name,"hdedx_tof_all_p%d",i);
    hdedx_tof_all[i] = new TH1D(name, name, 200,0,200);


    sprintf(name,"hdedx_tof_elec_emc_p%d",i);
    hdedx_tof_elec_emc[i] = new TH1D(name, name, 200,0,200);

    sprintf(name,"hdedx_tof_all_emc_p%d",i);
    hdedx_tof_all_emc[i] = new TH1D(name, name, 200,0,200);

    sprintf(name,"hdedx_emc_p%d",i);
    hdedx_emc[i] = new TH1D(name, name, 200,0,200);

  }


  int nbinx=400;
  float max_x=20;
  float min_x=0.2;
  float binw = (TMath::Log(max_x)-TMath::Log(min_x))/nbinx;
  double xbin[401];
  for(int ii=0;ii<nbinx+1;ii++){
    xbin[ii] = TMath::Exp(TMath::Log(min_x) + 0.5*binw+binw*ii);
  }


  //// my histo 
  fEventStat = new TH1D("EventStat ","EventStat ",7,0,7);
  fEvent = new TH1D("Event","Number of Events",   60,0,60);
  fdEdXvsPt = new TH2D("dEdXvsPt","dE/dX vs. PT of TPC", nbinx, xbin, 2000,0,200);
  fdEdXnSigmaElecvsPt = new TH2D("fdEdXnSigmaElecvsPt","dE/dX normalized to electron vs. pT of TPC",
                                 nbinx, xbin, 2000, -10, 10);
  fTOFbetavsPt = new TH2D("fTOFbetavsPt","TOF beta vs. p", 400, 0, 20, 1200, 0, 1.2);
  fTOFnSigmaElecvsPt = new TH2D("fTOFnSigmaElecvsPt","TOF nsigma for electron", 400, 0, 20, 2000, -10, 10);

  fdEdXvsPtWithCut = new TH2D("dEdXvsPtWithCuts","dE/dX vs. PT of TPC", nbinx, xbin, 2000,0,200);
  

  fPtElec[0] = new TH1D("hPtElec0","elctron pt",250,0,5);
  fPtElec[1] = new TH1D("hPtElec1","elctron pt",250,0,5);


  fNelc_pos = new TH2D("hNelc_pos","# of electrons and positrons",40, -0.5, 39.5, 40, -0.5, 39.5);
  fNelc_all = new TH1D("hNelc_all","# of electrons and positrons",50, -0.5, 49.5);
  fNelc_all_pT =  new TH2D("hNelc_all_pT","# of electrons and positrons in each pT bin",10, 0, 5, 50, -0.5, 49.5);  

  for(int ic=0;ic<10;ic++){
    sprintf(name,"hNelc_pos_cent%d",ic);
    fNelc_pos_cent[ic] = new TH2D(name, name, 40, -0.5, 39.5, 40, -0.5, 39.5);
    sprintf(name,"hNelc_all_cent%d",ic);
    fNelc_all_cent[ic] = new TH1D(name, name, 50, -0.5, 49.5);
  }


  //// tree branch
  d_tree = new TTree("d_tree","single tree");
  d_tree->Branch("evt", &d_evt, "evt/I");
  d_tree->Branch("cent", &d_cent, "cent/D");
  d_tree->Branch("ntrk", &d_ntrk, "ntrk/D");
  d_tree->Branch("xvprim", &d_xvprim, "xvprim/D");
  d_tree->Branch("yvprim", &d_yvprim, "yvprim/D");
  d_tree->Branch("zvprim", &d_zvprim, "zvprim/D");
  d_tree->Branch("nacctrklets", &d_nacctrklets, "nacctrklets/D");
  d_tree->Branch("xres", &d_xres, "xres/D");
  d_tree->Branch("yres", &d_yres, "yres/D");
  d_tree->Branch("zres", &d_zres, "zres/D");
  d_tree->Branch("nelc", &d_nelc, "nelc/I");
  d_tree->Branch("px", d_px, "px[nelc]/D");
  d_tree->Branch("py", d_py, "py[nelc]/D");
  d_tree->Branch("pz", d_pz, "pz[nelc]/D");
  d_tree->Branch("p", d_p, "p[nelc]/D");
  d_tree->Branch("pt", d_pt, "pt[nelc]/D");
  d_tree->Branch("xv", d_xv, "xv[nelc]/D");
  d_tree->Branch("yv", d_yv, "yv[nelc]/D");
  d_tree->Branch("zv", d_zv, "zv[nelc]/D");
  d_tree->Branch("phi", d_phi, "phi[nelc]/D");
  d_tree->Branch("theta", d_theta, "theta[nelc]/D");
  d_tree->Branch("eta", d_eta, "eta[nelc]/D");
  d_tree->Branch("c", d_c, "c[nelc]/D");
  d_tree->Branch("nclusITS", d_nclusITS, "nclusITS[nelc]/D");
  d_tree->Branch("nclusTPC", d_nclusTPC, "nclusTPC[nelc]/D");
  d_tree->Branch("nclusTPCiter", d_nclusTPCiter, "nclusTPCiter[nelc]/D");
  d_tree->Branch("nfclusTPC", d_nfclusTPC, "nfclusTPC[nelc]/D");
  d_tree->Branch("nfclusTPCr", d_nfclusTPCr, "nfclusTPCr[nelc]/D");
  d_tree->Branch("nfclusTPCrFrac", d_nfclusTPCrFrac, "nfclusTPCrFrac[nelc]/D");
  d_tree->Branch("TPCsignalN", d_TPCsignalN, "TPCsignalN[nelc]/D");
  d_tree->Branch("TPCsignalNfrac", d_TPCsignalNfrac, "TPCsignalNfrac[nelc]/D");
  d_tree->Branch("TPCchi2cl", d_TPCchi2cl, "TPCchi2cl[nelc]/D");
  d_tree->Branch("trkstat", d_trkstat, "trkstat[nelc]/D");
  d_tree->Branch("nclsTRD", d_nclsTRD, "nclsTRD[nelc]/D");
  d_tree->Branch("TRDntracklets", d_TRDntracklets, "TRDntracklets[nelc]/D");
  d_tree->Branch("TRDpidquality", d_TRDpidquality, "TRDpidquality[nelc]/D");
  d_tree->Branch("TRDprobEle", d_TRDprobEle, "TRDprobEle[nelc]/D");
  d_tree->Branch("TRDprobPio", d_TRDprobPio, "TRDprobPio[nelc]/D");
  d_tree->Branch("impactXY", d_impactXY, "impactXY[nelc]/D");
  d_tree->Branch("impactZ", d_impactZ, "impactZ[nelc]/D");
  d_tree->Branch("tracklength", d_tracklength, "tracklength[nelc]/D");
  d_tree->Branch("ITSsignal", d_ITSsignal, "ITSsignal[nelc]/D");
  d_tree->Branch("ITSnsigmaEle", d_ITSnsigmaEle, "ITSnsigmaEle[nelc]/D");
  d_tree->Branch("ITSnsigmaPio", d_ITSnsigmaPio, "ITSnsigmaPio[nelc]/D");
  d_tree->Branch("ITSnsigmaMuo", d_ITSnsigmaMuo, "ITSnsigmaMuo[nelc]/D");
  d_tree->Branch("ITSnsigmaKao", d_ITSnsigmaKao, "ITSnsigmaKao[nelc]/D");
  d_tree->Branch("ITSnsigmaPro", d_ITSnsigmaPro, "ITSnsigmaPro[nelc]/D");
  d_tree->Branch("PIn", d_PIn, "PIn[nelc]/D");
  d_tree->Branch("TPCsignal", d_TPCsignal, "TPCsignal[nelc]/D");
  d_tree->Branch("TOFsignal", d_TOFsignal, "TOFsignal[nelc]/D");
  d_tree->Branch("TOFbeta", d_TOFbeta, "TOFbeta[nelc]/D");
  d_tree->Branch("TPCnSigmaEle", d_TPCnSigmaEle, "TPCnSigmaEle[nelc]/D");
  d_tree->Branch("TPCnSigmaPio", d_TPCnSigmaPio, "TPCnSigmaPio[nelc]/D");
  d_tree->Branch("TPCnSigmaMuo", d_TPCnSigmaMuo, "TPCnSigmaMuo[nelc]/D");
  d_tree->Branch("TPCnSigmaKao", d_TPCnSigmaKao, "TPCnSigmaKao[nelc]/D");
  d_tree->Branch("TPCnSigmaPro", d_TPCnSigmaPro, "TPCnSigmaPro[nelc]/D");
  d_tree->Branch("TOFnSigmaEle", d_TOFnSigmaEle, "TOFnSigmaEle[nelc]/D");
  d_tree->Branch("TOFnSigmaPio", d_TOFnSigmaPio, "TOFnSigmaPio[nelc]/D");
  d_tree->Branch("TOFnSigmaMuo", d_TOFnSigmaMuo, "TOFnSigmaMuo[nelc]/D");
  d_tree->Branch("TOFnSigmaKao", d_TOFnSigmaKao, "TOFnSigmaKao[nelc]/D");
  d_tree->Branch("TOFnSigmaPro", d_TOFnSigmaPro, "TOFnSigmaPro[nelc]/D");
  d_tree->Branch("E", d_E, "E[nelc]/D");
  d_tree->Branch("dphi", d_phi, "dphi[nelc]/D");
  d_tree->Branch("deta", d_eta, "deta[nelc]/D");

  d_tree->Branch("chi2ndf", d_chi2ndf, "chi2ndf[nelc]/D");

  cout<<"aaaaaaaaaaa"<<endl;
  d_ntpair = new TTree("ntpair","pair");
  d_ntpair->Branch("run", &d_run, "run/D");
  d_ntpair->Branch("event", &d_event, "event/I");
  d_ntpair->Branch("centrality",&d_centrality,"centrality/D");
  d_ntpair->Branch("prim_xv",&d_prim_xv,"prim_xv/D");
  d_ntpair->Branch("prim_yv",&d_prim_yv,"prim_yv/D");
  d_ntpair->Branch("prim_zv",&d_prim_zv,"prim_zv/D");
  d_ntpair->Branch("mass",&d_mass,"mass/D");
  d_ntpair->Branch("pxpair",&d_pxpair,"pxpair/D");
  d_ntpair->Branch("pypair",&d_pypair,"pypair/D");
  d_ntpair->Branch("pzpair",&d_pzpair,"pzpair/D");
  d_ntpair->Branch("ptpair",&d_ptpair,"ptpair/D");
  d_ntpair->Branch("epair",&d_epair,"epair/D");
  d_ntpair->Branch("eta",&d_etapair,"eta/D");
  d_ntpair->Branch("phi",&d_phipair,"phi/D");
  d_ntpair->Branch("cos",&d_cos,"cos/D");
  d_ntpair->Branch("phiv",&d_phiv,"phiv/D");
  d_ntpair->Branch("psi",&d_psi,"psi/D");
  d_ntpair->Branch("pairtype",&d_pairtype,"pairtype/I");
  d_ntpair->Branch("cent1",&d_cent1,"cent1/D");
  d_ntpair->Branch("xv1",&d_xv1,"xv1/D");
  d_ntpair->Branch("yv1",&d_yv1,"yv1/D");
  d_ntpair->Branch("zv1",&d_zv1,"zv1/D");
  d_ntpair->Branch("px1",&d_px1,"px1/D");
  d_ntpair->Branch("py1",&d_py1,"py1/D");
  d_ntpair->Branch("pz1",&d_pz1,"pz1/D");
  d_ntpair->Branch("pt1",&d_pt1,"pt1/D");
  d_ntpair->Branch("eta1",&d_eta1,"eta1/D");
  d_ntpair->Branch("phi1",&d_phi1,"phi1/D");
  d_ntpair->Branch("theta1",&d_theta1,"theta1/D");
  d_ntpair->Branch("tpc1",&d_tpc1,"tpc1/D");
  d_ntpair->Branch("ntpc_ele1",&d_ntpc_ele1,"ntpc_ele1/D");
  d_ntpair->Branch("ntpc_pio1",&d_ntpc_pio1,"ntpc_pio1/D");
  d_ntpair->Branch("ntpc_kao1",&d_ntpc_kao1,"ntpc_kao1/D");
  d_ntpair->Branch("ntpc_pro1",&d_ntpc_pro1,"ntpc_pro1/D");
  d_ntpair->Branch("beta1",&d_beta1,"beta1/D");
  d_ntpair->Branch("ntof_ele1",&d_ntof_ele1,"ntof_ele1/D");
  d_ntpair->Branch("ntof_pio1",&d_ntof_pio1,"ntof_pio1/D");
  d_ntpair->Branch("ntof_kao1",&d_ntof_kao1,"ntof_kao1/D");
  d_ntpair->Branch("ntof_pro1",&d_ntof_pro1,"ntof_pro1/D");
  d_ntpair->Branch("its1",&d_its1,"its1/D");
  d_ntpair->Branch("nits1",&d_nits1,"nits1/D");
  d_ntpair->Branch("ntpc1",&d_ntpc1,"ntpc1/D");
  d_ntpair->Branch("e1",&d_e1,"e1/D");
  d_ntpair->Branch("dphi1",&d_dphi1,"dphi1/D");
  d_ntpair->Branch("deta1",&d_deta1,"deta1/D");
  d_ntpair->Branch("dcaxy1",&d_dcaxy1,"dcaxy1/D");
  d_ntpair->Branch("dcaz1",&d_dcaz1,"dcaz1/D");
  d_ntpair->Branch("conv1",&d_conv1,"conv1/I");




  d_ntpair->Branch("cent2",&d_cent2,"cent2/D");
  d_ntpair->Branch("xv2",&d_xv2,"xv2/D");
  d_ntpair->Branch("yv2",&d_yv2,"yv2/D");
  d_ntpair->Branch("zv2",&d_zv2,"zv2/D");
  d_ntpair->Branch("px2",&d_px2,"px2/D");
  d_ntpair->Branch("py2",&d_py2,"py2/D");
  d_ntpair->Branch("pz2",&d_pz2,"pz2/D");
  d_ntpair->Branch("pt2",&d_pt2,"pt2/D");
  d_ntpair->Branch("eta2",&d_eta2,"eta2/D");
  d_ntpair->Branch("phi2",&d_phi2,"phi2/D");
  d_ntpair->Branch("theta2",&d_theta2,"theta2/D");
  d_ntpair->Branch("tpc2",&d_tpc2,"tpc2/D");
  d_ntpair->Branch("ntpc_ele2",&d_ntpc_ele2,"ntpc_ele2/D");
  d_ntpair->Branch("ntpc_pio2",&d_ntpc_pio2,"ntpc_pio2/D");
  d_ntpair->Branch("ntpc_kao2",&d_ntpc_kao2,"ntpc_kao2/D");
  d_ntpair->Branch("ntpc_pro2",&d_ntpc_pro2,"ntpc_pro2/D");
  d_ntpair->Branch("beta2",&d_beta2,"beta2/D");
  d_ntpair->Branch("ntof_ele2",&d_ntof_ele2,"ntof_ele2/D");
  d_ntpair->Branch("ntof_pio2",&d_ntof_pio2,"ntof_pio2/D");
  d_ntpair->Branch("ntof_kao2",&d_ntof_kao2,"ntof_kao2/D");
  d_ntpair->Branch("ntof_pro2",&d_ntof_pro2,"ntof_pro2/D");
  d_ntpair->Branch("its2",&d_its2,"its2/D");
  d_ntpair->Branch("nits2",&d_nits2,"nits2/D");
  d_ntpair->Branch("ntpc2",&d_ntpc2,"ntpc2/D");
  d_ntpair->Branch("e2",&d_e2,"e2/D");
  d_ntpair->Branch("dphi2",&d_dphi2,"dphi2/D");
  d_ntpair->Branch("deta2",&d_deta2,"deta2/D");
  d_ntpair->Branch("dcaxy2",&d_dcaxy2,"dcaxy2/D");
  d_ntpair->Branch("dcaz2",&d_dcaz2,"dcaz2/D");
  d_ntpair->Branch("conv2",&d_conv2,"conv2/I");

  cout<<"aaaaaaaaaaa"<<endl;
  for(int i=0;i<7;i++){
    for(int j=0;j<11;j++){
      sprintf(name,"hmasspt_cent%d_pair%d",j,i);
      hmasspt[i][j] = new TH2D(name, name, 500, 0, 5, 500, 0, 5);
      sprintf(name,"hmasspt_weight_cent%d_pair%d",j,i);
      hmasspt_weight[i][j] = new TH2D(name, name, 500, 0, 5, 500, 0, 5);
    }
  }

  vep.clear();  
  vem.clear();
  vep_tmp.clear();  
  vem_tmp.clear();

  d_evt = 0;
  d_event = 0;

  simflag = false;
  d_conv_flag = false;
  
  for(int i=0;i<10;i++){
    nelec_pos[i] = 0;
  }

  magnetic_field_mm = true; 

  d_flag_tof_cut = false;
  d_flag_emc_cut =false;
  d_flag_phiv = false;
  d_tpc_dedx_low = 75;
  d_tpc_dedx_high = 90;
  d_tof_low = -3;
  d_tof_high = 3;
  d_emc_low = 0.7;
  d_emc_high = 1.3;
  d_phiv_cut = 0.6;

  d_flag_kaon_veto = false;
  d_flag_proton_veto = false;
  d_dedx_kaon_veto_low = -2;
  d_dedx_kaon_veto_high = 2;
  d_dedx_proton_veto_low = -2;
  d_dedx_proton_veto_high = 2;


  cout<<"ana_init end:"<<endl;
}

//___________________________________________
void ana_sgl::ana_end(void){

  fout->cd();
  /*
  hdedx_pt->Write();
  hdedx_tof_elec_pt->Write();
  hdedx_tof_all_pt->Write();
  hdedx_tof_elec_emc_pt->Write();
  hdedx_tof_all_emc_pt->Write();
  hdedx_emc_pt->Write();

  hbetatof_pt->Write();
  hbetatof_tof_elec_pt->Write();
  hbetatof_tof_all_pt->Write();
  hbetatof_tof_elec_emc_pt->Write();
  hbetatof_tof_all_emc_pt->Write();
  hbetatof_emc_pt->Write();

  for(int i=0;i<nHistos;i++){
    hdedx[i]->Write();
    hdedx_tof_elec[i]->Write();
    hdedx_tof_all[i]->Write();
    hdedx_tof_elec_emc[i]->Write();
    hdedx_tof_all_emc[i]->Write();
    hdedx_emc[i]->Write();
  }

  */

  if(simflag==false){
    fEventStat->Write();
    fEvent->Write();
    fdEdXvsPt->Write();
    fdEdXnSigmaElecvsPt->Write();
    fTOFbetavsPt->Write();
    fTOFnSigmaElecvsPt->Write();
    fdEdXvsPtWithCut->Write();
    fPtElec[0]->Write();
    fPtElec[1]->Write();
  }
  fNelc_pos->Write();
  fNelc_all->Write();
  for(int i=0;i<10;i++){
    fNelc_pos_cent[i]->Write();
    fNelc_all_cent[i]->Write();
  }
  fNelc_all_pT->Write();
  //d_tree->Write();
  hCentrality->Write();
  hV0AC->Write();
  hV0AC_Ntrk->Write();
  hV0AC_NaccTrcklts->Write();
  for(int j=0;j<11;j++){
    for(int i=0;i<7;i++){
      hmasspt[i][j]->Write();
      hmasspt_weight[i][j]->Write();
    }
  }

  //d_ntpair->Write();
  fout->Close();
}

//____________________________________________
void ana_sgl::loop_a_file(char *file){

  TFile *treefile = TFile::Open(file);
  TDirectory *d = (TDirectory*)treefile->Get("PWG3_dielectron");
  if(d==0){
    cout<<" PWG3_dielectron is not found "<<endl;
    return ; 
  }

  //TTree *tree = (TTree*)d->Get("t");
  TTree *tree = (TTree*)d->Get("tree_MultiDie_CENT1");
  if(tree == 0) {
    cout <<"tree is not found in "<<file<<endl;
    treefile->Close();
    return;
  }
  cout << file <<" is opened"<<endl;
  if(simflag==false){
    //add_histograms(treefile);
  }
  Init(tree);
  Loop();
  tree->Clear();
  d->Clear();
  tree->Delete();
  d->Delete();
  delete d;
  treefile->Close();
  delete treefile;



  cout <<"one file processed"<<endl;
}

//____________________________________________
void ana_sgl::ana_event(int ientry, int jentry){

  //select trigger class: 
  if(sel_trigger==2){
    if(kTriggerCent<100){
      return ;
    }
  }else if(sel_trigger==1){
    if(kTriggerCent%100<10){
      return ;
    }
  }else if(sel_trigger==0){
    if(kTriggerCent%10!=1){
      return ;
    }
  }

  //  if(fkRunNumber>138350){
  /*
  if(kMag>0){
    magnetic_field_mm = false;
  }else{
    magnetic_field_mm = true;
  }
  */
  if(fkRunNumber>169591){
    magnetic_field_mm = false;
  }else{
    magnetic_field_mm = true;
  }

  if(ientry%1000==0){
    cout<<" event processing "<<ientry<<" / "<<d_evt<<" / "<<d_event<<" : trigger "<<kTriggerCent<<endl;
  }
  
  d_nelc = 0;
  for(int i=0;i<10;i++){
    nelec_pos[i] = 0;
  }

  hCentrality->Fill(fkCentrality);
  hV0AC->Fill(fkV0C, fkV0A);
  hV0AC_Ntrk->Fill(fkNTrk, fkV0C+fkV0A);
  hV0AC_NaccTrcklts->Fill(fkNaccTrcklts, fkV0C+fkV0A);
  fill_to_tree_variables();
  
  for(int i=0;i<fkNPar;i++){

    if(simflag==false){
      
      //fdEdXvsPtWithCut->Fill(kPIn[i], kTPCsignal[i]);

      if(GlobalTrackcut(i)==false){
	continue;
      }
      fill_histograms(i);
    }

    
    fill_to_tree_track_variables(i);

    //if(PairTrackcut(i)==false){
    //continue;
    //}

    if(fkCentrality>0 && fkCentrality<10){
      int iptbin = (int)(kP[i]/0.5);
      if(iptbin>=10){
	iptbin=9;
      }
      nelec_pos[iptbin]++;
    }

    if(kCharge[i]>0){
      etrk e = etrk(
		    fkCentrality, fkXvPrim, fkYvPrim, fkZvPrim,
		    kXv[i], kYv[i], kZv[i], 
		    kPx[i], kPy[i], kPz[i], kPt[i],
		    kEta[i], kPhi[i], kTheta[i],
		    kTPCsignal[i], kTOFbeta[i], 
		    kE[i], kDeltaPhi[i], kDeltaEta[i],
		    kTPCnSigmaEle[i], kTPCnSigmaPio[i], kTPCnSigmaKao[i], kTPCnSigmaPro[i],
		    kTOFnSigmaEle[i], kTOFnSigmaPio[i], kTOFnSigmaKao[i], kTOFnSigmaPro[i],
		    kITSsignal[i], kNclsITS[i], kNclsTPC[i], kLegDistXY[i], kLegDist[i]
		  );
      vep_tmp.push_back(e);
    }else{
      etrk e = etrk(
		    fkCentrality, fkXvPrim, fkYvPrim, fkZvPrim,
		    kXv[i], kYv[i], kZv[i], 
		    kPx[i], kPy[i], kPz[i], kPt[i],
		    kEta[i], kPhi[i], kTheta[i],
		    kTPCsignal[i], kTOFbeta[i], 
		    kE[i], kDeltaPhi[i], kDeltaEta[i],
		    kTPCnSigmaEle[i], kTPCnSigmaPio[i], kTPCnSigmaKao[i], kTPCnSigmaPro[i],
		    kTOFnSigmaEle[i], kTOFnSigmaPio[i], kTOFnSigmaKao[i], kTOFnSigmaPro[i],
		    kITSsignal[i], kNclsITS[i], kNclsTPC[i], kLegDistXY[i], kLegDist[i]
		    );
      vem_tmp.push_back(e);
    }
  }
  
  //////// fill to the tree //////////////////
  //d_tree->Fill();
  


  if(d_conv_flag==true){
    check_conversion_pairs(vep_tmp, vem_tmp);
  }

  check_ghost_pairs(vep_tmp);
  check_ghost_pairs(vem_tmp);
  randomize_pool(vep_tmp, vem_tmp);
  if(d_conv_flag==false){
    check_conversion_pairs(vep, vem);
  }

  fNelc_pos->Fill(vep.size(), vem.size());
  fNelc_all->Fill(vep.size()+vem.size());

  if(fkCentrality>0 && fkCentrality<10){
    for(int i=0;i<10;i++){
      fNelc_all_pT->Fill(0.25+0.5*i, nelec_pos[i]);
    }
  }


  calc_pair(vep, vem);

  int icent = (int)(fkCentrality/10.0);
  int izbin = (int)((fkZvPrim+10)/2.0);
  if(icent<0) icent=0;
  if(icent>=NCENT) icent=NCENT-1;
  if(izbin<0) izbin=0;
  if(izbin>=NZBIN) izbin=NZBIN-1;
  
  fNelc_pos_cent[icent]->Fill(vep.size(), vem.size());
  fNelc_all_cent[icent]->Fill(vep.size()+vem.size());



  d_vep[d_ibuf[izbin][icent]][izbin][icent].clear();
  vector<etrk>::iterator iep;
  for(iep = vep.begin();iep != vep.end();++iep) {
    d_vep[d_ibuf[izbin][icent]][izbin][icent].push_back(*iep);
    d_poolp[izbin][icent].push_back(*iep);
    if(d_poolp[izbin][icent].size()>MAXPOOL) {
      d_poolp[izbin][icent].pop_front();
    }
  }
  d_vem[d_ibuf[izbin][icent]][izbin][icent].clear();
  vector<etrk>::iterator iem;
  for(iem = vem.begin();iem != vem.end();++iem) {
    d_vem[d_ibuf[izbin][icent]][izbin][icent].push_back(*iem);
    d_poolm[izbin][icent].push_back(*iem);
    if(d_poolm[izbin][icent].size()>MAXPOOL) {
      d_poolm[izbin][icent].pop_front();
    }
  }
  // Update the buffer pointer
  d_ibuf[izbin][icent]++;
  if(d_ibuf[izbin][icent]>= NBUF) d_ibuf[izbin][icent]=0; 

  ///////////////////////////////////////////
  vem.clear();
  vep.clear();
  vem_tmp.clear();
  vep_tmp.clear();
  d_evt ++;
  d_event ++;
  
}  


//____________________________________________
bool ana_sgl::kTOFcut(int itrk){

  if(kTOFsignal[itrk]!=9999 && kTOFbeta[itrk]>0.3 && 
     (kTOFnSigmaEle[itrk]<3 && kTOFnSigmaEle[itrk]>-3)
     /*
     (kTOFnSigmaKao>3 || kTOFnSigmaKao<-3) &&
     (kTOFnSigmaPro>3 || kTOFnSigmaPro<-3) 
     */

     ){

    return true;
  }else{
    return false;
  }
}

//____________________________________________
bool ana_sgl::GlobalTrackcut(int itrk){


  if((
     (d_flag_kaon_veto == true && (kTPCnSigmaKao[itrk]<d_dedx_kaon_veto_low || kTPCnSigmaKao[itrk]>d_dedx_kaon_veto_high)) ||
     (d_flag_kaon_veto == false)
     )
     && (
	 (d_flag_proton_veto == true && (kTPCnSigmaPro[itrk]<d_dedx_proton_veto_low || kTPCnSigmaPro[itrk]>d_dedx_proton_veto_high)) ||
	 (d_flag_proton_veto == false)
	 )
     ){
    fdEdXvsPtWithCut->Fill(kPIn[itrk], kTPCsignal[itrk]);
  }

  if( kNclsTPC[itrk]>120 
      && kTPCsignal[itrk]>d_tpc_dedx_low && kTPCsignal[itrk]<d_tpc_dedx_high
      && (
	  (d_flag_tof_cut==true && kTOFnSigmaEle[itrk]>d_tof_low && kTOFnSigmaEle[itrk]<d_tof_high) ||
	  (d_flag_tof_cut==false)
	  )
      && (
	  (d_flag_pt_cut == true && kPt[itrk]>d_pt_cut_low && kPt[itrk]<d_pt_cut_high) ||
	  (d_flag_pt_cut == false)
	  )
      && (
	  (d_flag_kaon_veto == true && (kTPCnSigmaKao[itrk]<d_dedx_kaon_veto_low || kTPCnSigmaKao[itrk]>d_dedx_kaon_veto_high)) ||
	  (d_flag_kaon_veto == false)
	  )
      && (
	  (d_flag_proton_veto == true && (kTPCnSigmaPro[itrk]<d_dedx_proton_veto_low || kTPCnSigmaPro[itrk]>d_dedx_proton_veto_high)) ||
	  (d_flag_proton_veto == false)
	  )
      ){
    return true;
  }else{
    return false;
  }
}

/*
//____________________________________________
bool ana_sgl::PairTrackcut(int itrk){

  if( (kTOFnSigmaEle[itrk]<3 && kTOFnSigmaEle[itrk]>-3) &&
      (kTOFnSigmaKao[itrk]>3||kTOFnSigmaKao[itrk]<-3) &&
      (kTOFnSigmaPro[itrk]>3||kTOFnSigmaPro[itrk]<-3) //&&
      //(kTPCnSigmaEle[itrk]-1.65226*exp(-kPIn[itrk]*kPIn[itrk]*1.60890)+0.838)<1 &&
      //(kTPCnSigmaEle[itrk]-1.65226*exp(-kPIn[itrk]*kPIn[itrk]*1.60890)+0.838)>-1
      ){
    return true;
  }else{
    return false;
  }


//  if(
//     !(kTPCsignal>75-210*(kPIn-0.5) && 
//       kTPCsignal<100-190*(kPIn-0.5)) &&
//     !(kTPCsignal>130-120*(kPIn-0.5) && 
//       kTPCsignal<135-80*(kPIn-0.5)) &&
//     (kTPCnSigmaEle-1.65226*exp(-kPIn*kPIn*1.60890)+0.838)<1 &&
//      (kTPCnSigmaEle-1.65226*exp(-kPIn*kPIn*1.60890)+0.838)>-1
//     ){
//    return true;
//  }else{
//   return false;
//  }


}
*/

//____________________________________________
void ana_sgl::fill_histograms(int itrk){
  /*
  hdedx_pt->Fill(kPIn[itrk], kTPCsignal[itrk]);
  hbetatof_pt->Fill(kPIn[itrk], kTOFbeta[itrk]);

  if(kTOFcut(itrk)==true){
    hdedx_tof_pt->Fill(kPIn[itrk], kTPCsignal[itrk]);
    hbetatof_tof_pt->Fill(kPIn[itrk], kTOFbeta[itrk]);
  }

  int iptbin = (int)((kPIn[itrk])/fBinWidth);
  if(iptbin>=0 && iptbin<nHistos){
    hdedx[iptbin]->Fill(kTPCsignal[itrk]);
    if(kTOFcut(itrk)==true)hdedx_tof[iptbin]->Fill(kTPCsignal[itrk]);
  }
  */

  if(kCharge[itrk]>0){
    fPtElec[1]->Fill(kPIn[itrk]);
  }else{
    fPtElec[0]->Fill(kPIn[itrk]);
  }
  
  hdedx_pt->Fill(kPIn[itrk], kTPCsignal[itrk]);
  hbetatof_pt->Fill(kPIn[itrk], kTOFbeta[itrk]);

  if(kTOFnSigmaEle[itrk]>-3 && kTOFnSigmaEle[itrk]<3){
    hdedx_tof_elec_pt->Fill(kPIn[itrk], kTPCsignal[itrk]);
    hbetatof_tof_elec_pt->Fill(kPIn[itrk], kTOFbeta[itrk]);  
  
    if(kE[itrk]/kPIn[itrk]>0.7 && kE[itrk]/kPIn[itrk]<1.3){
      hdedx_tof_elec_emc_pt->Fill(kPIn[itrk], kTPCsignal[itrk]);
      hbetatof_emc_pt->Fill(kPIn[itrk], kTOFbeta[itrk]);  
    }      

    if( (kTOFnSigmaKao[itrk]>3 || kTOFnSigmaKao[itrk]<-3) &&
	(kTOFnSigmaPro[itrk]>3 || kTOFnSigmaPro[itrk]<-3) 
	){
      hdedx_tof_all_pt->Fill(kPIn[itrk], kTPCsignal[itrk]);
      hbetatof_tof_all_pt->Fill(kPIn[itrk], kTPCsignal[itrk]);
      if(kE[itrk]/kPIn[itrk]>0.7 && kE[itrk]/kPIn[itrk]<1.3){
	hdedx_tof_all_emc_pt->Fill(kPIn[itrk], kTPCsignal[itrk]);
	hbetatof_tof_all_emc_pt->Fill(kPIn[itrk], kTPCsignal[itrk]);
      }      
    }
  }

  if(kE[itrk]/kPIn[itrk]>0.7 && kE[itrk]/kPIn[itrk]<1.3){
    hdedx_emc_pt->Fill(kPIn[itrk], kTPCsignal[itrk]);
    hbetatof_emc_pt->Fill(kPIn[itrk], kTPCsignal[itrk]);
  }

  
  

  int iptbin = (int)((kPIn[itrk])/fBinWidth);
  if(iptbin>=0 && iptbin<nHistos){
    hdedx[iptbin]->Fill(kTPCsignal[itrk]);
    //if(kTOFcut(itrk)==true)hdedx_tof[iptbin]->Fill(kTPCsignal[itrk]);

    if(kTOFnSigmaEle[itrk]>-3 && kTOFnSigmaEle[itrk]<3){
      hdedx_tof_elec[iptbin]->Fill(kTPCsignal[itrk]);

      if(kE[itrk]/kPIn[itrk]>0.7 && kE[itrk]/kPIn[itrk]<1.3){
	hdedx_tof_elec_emc[iptbin]->Fill(kTPCsignal[itrk]);
      }
      if( (kTOFnSigmaKao[itrk]>3 || kTOFnSigmaKao[itrk]<-3) &&
	  (kTOFnSigmaPro[itrk]>3 || kTOFnSigmaPro[itrk]<-3) 
	  ){
	hdedx_tof_all[iptbin]->Fill(kTPCsignal[itrk]);
	if(kE[itrk]/kPIn[itrk]>0.7 && kE[itrk]/kPIn[itrk]<1.3){
	  hdedx_tof_all_emc[iptbin]->Fill(kTPCsignal[itrk]);
	}
      }
    }
    if(kE[itrk]/kPIn[itrk]>0.7 && kE[itrk]/kPIn[itrk]<1.3){
      hdedx_emc[iptbin]->Fill(kTPCsignal[itrk]);
    }
  }

}

//____________________________________________
void ana_sgl::add_histograms(TFile *fin){

  TDirectory *d = (TDirectory*)fin->Get("PWG3_dielectron");
  if(d==0){
    cout<<" PWG3_dielectron is not found "<<endl;
    return ; 
  }
  fEventStat->Add((TH1D*)d->Get("hEventStat_MultiDie_CENT1"));
  TList *list = (TList*)d->Get("jpsi_QA_CENT1");
  TList *listQA = (TList*)list->FindObject("QAElectron");
  fEvent->Add((TH1D*)listQA->FindObject("Event"));
  fdEdXvsPt->Add((TH1D*)listQA->FindObject("dEdXvsPt"));
  fdEdXnSigmaElecvsPt->Add((TH1D*)listQA->FindObject("fdEdXnSigmaElecvsPt"));
  fTOFbetavsPt->Add((TH1D*)listQA->FindObject("fTOFbetavsPt"));
  fTOFnSigmaElecvsPt->Add((TH1D*)listQA->FindObject("fTOFnSigmaElecvsPt"));

  cout<<" ana_sgl::add_histograms "<<fin->GetName()<<" done "<<endl;

}

//_____________________________________________
void ana_sgl::fill_to_tree_variables(void){

  d_cent =  fkCentrality;
  d_ntrk= fkNTrk;
  d_xvprim= fkXvPrim;
  d_yvprim= fkYvPrim;
  d_zvprim= fkZvPrim;
  d_nacctrklets= fkNaccTrcklts;
  d_xres= fkXRes;
  d_yres= fkYRes;
  d_zres= fkZRes;

}
//_____________________________________________
void ana_sgl::fill_to_tree_track_variables(int itrk){
  

  d_px[d_nelc]= kPx[itrk];
  d_py[d_nelc]= kPy[itrk];
  d_pz[d_nelc]= kPz[itrk];
  d_p[d_nelc]= kP[itrk];
  d_pt[d_nelc]= kPt[itrk];
  d_xv[d_nelc]= kXv[itrk];
  d_yv[d_nelc]= kYv[itrk];
  d_zv[d_nelc]= kZv[itrk];
  d_phi[d_nelc]= kPhi[itrk];
  d_theta[d_nelc]= kTheta[itrk];
  d_eta[d_nelc]= kEta[itrk];
  d_c[d_nelc]= kCharge[itrk];
  d_nclusITS[d_nelc]= kNclsITS[itrk];
  d_nclusTPC[d_nelc]= kNclsTPC[itrk];
  d_nclusTPCiter[d_nelc]= kNclsTPCiter1[itrk];
  d_nfclusTPC[d_nelc]= kNFclsTPC[itrk];
  d_nfclusTPCr[d_nelc]= kNFclsTPCr[itrk];
  d_nfclusTPCrFrac[d_nelc]= kNFclsTPCrFrac[itrk];
  d_TPCsignalN[d_nelc]= kTPCsignalN[itrk];
  d_TPCsignalNfrac[d_nelc]= kTPCsignalNfrac[itrk];
  d_TPCchi2cl[d_nelc]= kTPCchi2Cl[itrk];
  d_trkstat[d_nelc]= kTrackStatus[itrk];
  d_nclsTRD[d_nelc]= kNclsTRD[itrk];
  d_TRDntracklets[d_nelc]= kTRDntracklets[itrk];
  d_TRDpidquality[d_nelc]= kTRDpidQuality[itrk];
  d_TRDprobEle[d_nelc]= kTRDprobEle[itrk];
  d_TRDprobPio[d_nelc]= kTRDprobPio[itrk];
  d_impactXY[d_nelc]= kImpactParXY[itrk];
  d_impactZ[d_nelc]= kImpactParZ[itrk];
  d_tracklength[d_nelc]= kTrackLength[itrk];
  d_ITSsignal[d_nelc]= kITSsignal[itrk];
  d_ITSnsigmaEle[d_nelc]= kITSnSigmaEle[itrk];
  d_ITSnsigmaPio[d_nelc]= kITSnSigmaPio[itrk];
  d_ITSnsigmaMuo[d_nelc]= kITSnSigmaMuo[itrk];
  d_ITSnsigmaKao[d_nelc]= kITSnSigmaKao[itrk];
  d_ITSnsigmaPro[d_nelc]= kITSnSigmaPro[itrk];
  d_PIn[d_nelc]= kPIn[itrk];
  d_TPCsignal[d_nelc]= kTPCsignal[itrk];
  d_TOFsignal[d_nelc]= kTOFsignal[itrk];
  d_TOFbeta[d_nelc]= kTOFbeta[itrk];
  d_TPCnSigmaEle[d_nelc]= kTPCnSigmaEle[itrk];
  d_TPCnSigmaPio[d_nelc]= kTPCnSigmaPio[itrk];
  d_TPCnSigmaMuo[d_nelc]= kTPCnSigmaMuo[itrk];
  d_TPCnSigmaKao[d_nelc]= kTPCnSigmaKao[itrk];
  d_TPCnSigmaPro[d_nelc]= kTPCnSigmaPro[itrk];
  d_TOFnSigmaEle[d_nelc]= kTOFnSigmaEle[itrk];
  d_TOFnSigmaPio[d_nelc]= kTOFnSigmaPio[itrk];
  d_TOFnSigmaMuo[d_nelc]= kTOFnSigmaMuo[itrk];
  d_TOFnSigmaKao[d_nelc]= kTOFnSigmaKao[itrk];
  d_TOFnSigmaPro[d_nelc]= kTOFnSigmaPro[itrk];

  d_chi2ndf[d_nelc]= kChi2NDF[itrk];
  d_E[d_nelc] = kE[itrk];
  d_dphi[d_nelc] = kDeltaPhi[itrk];
  d_deta[d_nelc] = kDeltaEta[itrk];

  d_nelc++;

}

//____________________________________________________________________
void ana_sgl::randomize_pool(vector<etrk> e1, vector<etrk> e2){
  
  int size1 = e1.size();
  int used_index[1000];
  for(int i=0;i<1000;i++){
    used_index[i] = -1;
  }
  for(int i=0;i<size1;i++){
    used_index[i] = 0;
  }

  for(unsigned int i=0;i<size1;i++){
    int j = (int)(gRandom->Uniform(0,size1));
    while(used_index[j]==1){
      j = (int)(gRandom->Uniform(0,size1));
    }
    if( (e1[j].ghost_flag==1) &&
	(
	 (d_conv_flag==true && e1[j].conv_flag==1) ||
	 (d_conv_flag==false)
	 )
	){
      vep.push_back(e1[j]);
    }
    used_index[j] = 1;
  }
  

  int size2 = e2.size();
  for(int i=0;i<1000;i++){
    used_index[i] = -1;
  }
  for(int i=0;i<size2;i++){
    used_index[i] = 0;
  }

  for(unsigned int i=0;i<size2;i++){
    int j = (int)(gRandom->Uniform(0,size2));
    while(used_index[j]==1){
      j = (int)(gRandom->Uniform(0,size2));
    }
    if( (e2[j].ghost_flag==1) &&
      (
       (d_conv_flag==true && e2[j].conv_flag==1) ||
       (d_conv_flag==false)
       )
	){
      vem.push_back(e2[j]);
    }
    used_index[j] = 1;
  }
}

//____________________________________________________________________
void ana_sgl::calc_pair(vector<etrk> vep, vector<etrk> vem){
  
  //vector<etrk>::iterator iep, iem; 

  vector<etrk>::iterator iep;
  vector<etrk>::iterator iem;
  
  //cout<<vep.size()<<" "<<vem.size()<<endl;

  ///unlike pairs
  for(iep=vep.begin(); iep!=vep.end(); ++iep){
    for(iem=vem.begin(); iem!=vem.end(); ++iem){
      if(PairTrackcut(iep, iem)==false) continue;
      fill_pair(iep, iem, 0);  
    }                                                                                                                                                      
  }                                                                                                                                                                                                    
  for(iep=vep.begin(); iep!=vep.end(); ++iep){
    vector<etrk>::iterator iep2=iep;
    ++iep2;
    for(iem=iep2; iem!=vep.end(); ++iem){
      if(PairTrackcut(iep, iem)==false) continue;
      fill_pair(iep, iem, 1);
    }
  }                                              
                                                                                                                                                         
  for(iep=vem.begin(); iep!=vem.end(); ++iep){
    vector<etrk>::iterator iep2=iep;
    ++iep2;
    for(iem=iep2; iem!=vem.end(); ++iem){
      if(PairTrackcut(iep, iem)==false) continue;
      fill_pair(iep, iem, 2);   
    }
  }

  int icent = (int)(fkCentrality/10.0);
  int izbin = (int)((fkZvPrim+10)/2.0);
  if(icent<0) icent=0;
  if(icent>=NCENT) icent=NCENT-1;
  if(izbin<0) izbin=0;
  if(izbin>=NZBIN) izbin=NZBIN-1;


  int nmixed;
  if(vep.size()>0) {
    //
    // Now mixed event for +- pairs
    //
    nmixed = 0;
    for(int ibuf=0;(nmixed<NMix);ibuf++) {
      int ntry = 0;
      while(ntry<MAX_TRY) {
	reshuffle_buffer(d_vem[ibuf][izbin][icent],d_poolm[izbin][icent]);
	ntry++;
      }
      for(iep=vep.begin(); iep!=vep.end(); ++iep){
	for(iem=d_vem[ibuf][izbin][icent].begin(); 
	    iem!=d_vem[ibuf][izbin][icent].end(); ++iem){
	  if(PairTrackcut(iep, iem)==false) continue;
	  fill_pair(iep,iem,3);
	}
      }
      ++nmixed;
    }//for(ibuf)
  }

  if(vem.size()>0) {
    //
    // Now mixed event for +- pairs
    //
    nmixed = 0;
    for(int ibuf=0;(nmixed<NMix);ibuf++) {
      int ntry = 0;
      while(ntry<MAX_TRY) {
	reshuffle_buffer(d_vep[ibuf][izbin][icent],d_poolp[izbin][icent]);
	ntry++;
      }
      for(iem=vem.begin(); iem!=vem.end(); ++iem){
	for(iep=d_vep[ibuf][izbin][icent].begin(); 
	    iep!=d_vep[ibuf][izbin][icent].end(); ++iep){
	  if(PairTrackcut(iep, iem)==false) continue;
	  fill_pair(iep,iem,4);
	}
      }
      ++nmixed;
    }//for(ibuf)
  }


  if(vep.size()>0) {
    //
    // Now mixed event for ++ pairs
    //
    nmixed = 0;
    for(int ibuf=0;(nmixed<NMix);ibuf++) {
      int ntry = 0;
      while(ntry<MAX_TRY) {
	reshuffle_buffer(d_vep[ibuf][izbin][icent],d_poolp[izbin][icent]);
	ntry++;
      }
      for(iep=vep.begin(); iep!=vep.end(); ++iep){
	for(iem=d_vep[ibuf][izbin][icent].begin(); 
	    iem!=d_vep[ibuf][izbin][icent].end(); ++iem){
	  if(PairTrackcut(iep, iem)==false) continue;
	  fill_pair(iep,iem,5);
	}
      }
      ++nmixed;
    }//for(ibuf)
  }

  if(vem.size()>0) {
    //
    // Now mixed event for +- pairs
    //
    nmixed = 0;
    for(int ibuf=0;(nmixed<NMix);ibuf++) {
      int ntry = 0;
      while(ntry<MAX_TRY) {
	reshuffle_buffer(d_vem[ibuf][izbin][icent],d_poolm[izbin][icent]);
	ntry++;
      }
      for(iem=vem.begin(); iem!=vem.end(); ++iem){
	for(iep=d_vem[ibuf][izbin][icent].begin(); 
	    iep!=d_vem[ibuf][izbin][icent].end(); ++iep){
	  if(PairTrackcut(iep, iem)==false) continue;
	  fill_pair(iep,iem,6);
	}
      }
      ++nmixed;
    }//for(ibuf)
  }
}


//___________________________________________________________________________
//void ana_sgl::fill_pair(etrk* iep, etrk* iem, int type){
//void ana_sgl::fill_pair(etrk iep, etrk iem, int type){
void ana_sgl::fill_pair(vector<etrk>::iterator iep, vector<etrk>::iterator iem, int type){


  d_pairtype = type;

  calc_vars(iep, iem, d_mass, d_phiv, d_pxpair, d_pypair, d_pzpair, 
	    d_ptpair, d_epair, d_phipair, d_etapair, d_cos, d_psi);

  if(type==0||type==1||type==2||type==3||type==5){
    d_centrality = iep->cent;
    d_prim_xv = iep->pxv;
    d_prim_yv = iep->pyv;
    d_prim_zv = iep->pzv;
  }else if(type==4 || type==6){
    d_centrality = iem->cent;
    d_prim_xv = iem->pxv;
    d_prim_yv = iem->pyv;
    d_prim_zv = iem->pzv;

  }

  
  //cout<<iep->px<<" "<<iem->px<<" "<<d_centrality<<endl;  
  
  d_cent1 = iep->cent;
  d_xv1 = iep->xv;
  d_yv1 = iep->yv;
  d_zv1 = iep->zv;
  d_px1 = iep->px;
  d_py1 = iep->py;
  d_pz1 = iep->pz;
  d_pt1 = iep->pt;
  d_eta1 = iep->eta;
  d_phi1 = iep->phi;
  d_theta1 = iep->theta;
  d_tpc1 = iep->tpc;
  d_ntpc_ele1 = iep->ntpc_ele;
  d_ntpc_pio1 = iep->ntpc_pio;
  d_ntpc_kao1 = iep->ntpc_kao;
  d_ntpc_pro1 = iep->ntpc_pro;
  d_ntof_ele1 = iep->ntof_ele;
  d_ntof_pio1 = iep->ntof_pio;
  d_ntof_kao1 = iep->ntof_kao;
  d_ntof_pro1 = iep->ntof_pro;
  d_its1 = iep->its;
  d_nits1 = iep->nits;
  d_ntpc1 = iep->ntpc;
  d_e1 = iep->e;
  d_dphi1 = iep->dphi;
  d_deta1 = iep->deta;
  d_dcaxy1 = iep->dcaxy;
  d_dcaz1 = iep->dcaz;
  d_conv1 = iep->conv_flag;

  d_cent2 = iem->cent;
  d_xv2 = iem->xv;
  d_yv2 = iem->yv;
  d_zv2 = iem->zv;
  d_px2 = iem->px;
  d_py2 = iem->py;
  d_pz2 = iem->pz;
  d_pt2 = iem->pt;
  d_eta2 = iem->eta;
  d_phi2 = iem->phi;
  d_theta2 = iem->theta;
  d_tpc2 = iem->tpc;
  d_ntpc_ele2 = iem->ntpc_ele;
  d_ntpc_pio2 = iem->ntpc_pio;
  d_ntpc_kao2 = iem->ntpc_kao;
  d_ntpc_pro2 = iem->ntpc_pro;
  d_ntof_ele2 = iem->ntof_ele;
  d_ntof_pio2 = iem->ntof_pio;
  d_ntof_kao2 = iem->ntof_kao;
  d_ntof_pro2 = iem->ntof_pro;
  d_its2 = iem->its;
  d_nits2 = iem->nits;
  d_ntpc2 = iem->ntpc;
  d_e2 = iem->e;
  d_dphi2 = iem->dphi;
  d_deta2 = iem->deta;
  d_dcaxy2 = iem->dcaxy;
  d_dcaz2 = iem->dcaz;
  d_conv2 = iem->conv_flag;
  
  d_run = fkRunNumber;
  //  d_event = d_evt;
  

  int icent = (int)(fkCentrality/10.0);
  if(icent<0) icent=0;
  if(icent>=NCENT) icent=NCENT-1;
  if(pair_cut()==true){
    hmasspt[type][icent]->Fill(d_mass, d_ptpair);
    hmasspt[type][10]->Fill(d_mass, d_ptpair);
  }

  ////////////// pt weighting for mixed event
  float weight = 1;
  float k = 10000;
  if(type==0 || type==1 || type==2){
    weight = 1;
  }else if(type==3 || type==5 || type==6){
    k = 18.7*exp(-2.4*d_pt2)+1.24;
    weight = 1+1/k;
  }else if(type==4){
    k = 18.7*exp(-2.4*d_pt1)+1.24;
    weight = 1+1/k;
  }
  if(pair_cut()==true){
    hmasspt_weight[type][icent]->Fill(d_mass, d_ptpair, weight);
    hmasspt_weight[type][10]->Fill(d_mass, d_ptpair, weight);
  }


  //d_ntpair->Fill();

}

//____________________________________________
bool ana_sgl::PairTrackcut(vector<etrk>::iterator e1, vector<etrk>::iterator e2){
  /*
  double p1 = sqrt(pow(e1.px,2)+
		   pow(e1.py,2)+
		   pow(e1.pz,2));
		   
  double p2 = sqrt(pow(e2.px,2)+
		   pow(e2.py,2)+
		   pow(e2.pz,2));
		   
  if( 
     (e1.e/p1>0.7 && e1.e/p1<1.3) ||
     (e2.e/p1>0.7 && e2.e/p2<1.3)
     ){
    return true;
  }else{
    return false;
  }
o  */
  return true;

}

//____________________________________________
void ana_sgl::check_conversion_pairs(vector<etrk> &e1, vector<etrk> &e2){
  vector<etrk>::iterator iep;
  vector<etrk>::iterator iem;
  bool reject = false;
  if(e1.size()>0 && e2.size()>0){
    for(iep = e1.begin(); iep != e1.end(); ++iep){
      reject = false;
      for(iem = e2.begin(); iem != e2.end(); ++iem){
	double mass, phiv, px, py, pz, pt, e, phi, eta, cos, psi;
	calc_vars(iep, iem, mass, phiv, px, py, pz, pt, e, phi, eta, cos, psi);
	if(magnetic_field_mm==true){ //pp
	  if(phiv<0.6 && iep->phi-iem->phi<0){ // this depends on the magntic field 
	    reject = true;
	    iem->conv_flag = 0;
	  }
	}else{
	  if(phiv>acos(-1.0)-0.6 && iep->phi-iem->phi>0){ // this depends on the magntic field 
	    reject = true;
	    iem->conv_flag = 0;
	  }
	}
      }
      if(reject==true) iep->conv_flag=0;
    }
  }
}

//____________________________________________                                                                                                                                                                                                                                                                 
void ana_sgl::check_ghost_pairs(vector<etrk> &e1){
  vector<etrk>::iterator iep;
  vector<etrk>::iterator iem;
  bool reject = false;
  if(e1.size()>1){
    for(iep = e1.begin(); iep != e1.end(); ++iep){
      reject = false;
      vector<etrk>::iterator iep2=iep;
      ++iep2;
      for(iem = iep2; iem != e1.end(); ++iem){
        double mass, phiv, px, py, pz, pt, e, phi, eta, cos, psi;
        calc_vars(iep, iem, mass, phiv, px, py, pz, pt, e, phi, eta, cos, psi);
        if(mass<0.01){
          reject = true;
          iem->ghost_flag = 0;
        }
      }
      if(reject==true) iep->ghost_flag=0;
    }
  }
}

//____________________________________________
//void ana_sgl::calc_vars(etrk iep, etrk iem, double &mass, double &phiv, double &px, double &py, double&pz,
void ana_sgl::calc_vars(vector<etrk>::iterator iep, vector<etrk>::iterator iem, double &mass, double &phiv, double &px, double &py, double&pz,
			double &pt, double &e, double &phi, double &eta, double &cos, double &psi){
  
  px = iep->px+iem->px;
  py = iep->py+iem->py;
  pz = iep->pz+iem->pz;
  pt = sqrt(px*px+py*py);
  double d_ppair = sqrt(pt*pt+pz*pz);
  static const double me=0.0005109989;
  e = sqrt(me*me+iep->px*iep->px+iep->py*iep->py+iep->pz*iep->pz)
    + sqrt(me*me+iem->px*iem->px+iem->py*iem->py+iem->pz*iem->pz);
  
  mass =  e*e-px*px-py*py-pz*pz;
  if(mass<0){
    mass = mass;
  }else{
    mass = sqrt(mass);
  }
   
  
  
  phi = atan2(py, px);
  eta = -0.5*TMath::Log((d_ppair+pz)/(d_ppair-pz));
  double p1 = sqrt(pow(iep->px,2)+pow(iep->py,2)+pow(iep->pz,2));
  double p2 = sqrt(pow(iem->px,2)+pow(iem->py,2)+pow(iem->pz,2));
  cos = acos((iep->px*iem->px+iep->py*iem->py+iep->pz*iem->pz)/(p1*p2));


  double dtheta = iep->theta-iem->theta;
  psi = asin(dtheta/cos);


  //unit vector of (pep+pem) 
  float pl = d_ppair;
  float ux = px/pl;
  float uy = py/pl;
  float uz = pz/pl;
  float ax = uy/sqrt(ux*ux+uy*uy);
  float ay = -ux/sqrt(ux*ux+uy*uy); 
  
  //momentum of e+ and e- in (ax,ay,az) axis. Note that az=0 by 
  //definition. 
  float ptep = iep->px*ax + iep->py*ay; 
  float ptem = iem->px*ax + iem->py*ay; 
  
  float pxep = iep->px;
  float pyep = iep->py;
  float pzep = iep->pz;
  float pxem = iem->px;
  float pyem = iem->py;
  float pzem = iem->pz;
  
  
  //vector product of pep X pem 
  float vpx = pyep*pzem - pzep*pyem; 
  float vpy = pzep*pxem - pxep*pzem; 
  float vpz = pxep*pyem - pyep*pxem; 
  float vp = sqrt(vpx*vpx+vpy*vpy+vpz*vpz); 
  float thev = acos(vpz/vp); 
  
  //unit vector of pep X pem 
  float vx = vpx/vp; 
  float vy = vpy/vp; 
  float vz = vpz/vp; 
  
  //The third axis defined by vector product (ux,uy,uz)X(vx,vy,vz) 
  float wx = uy*vz - uz*vy; 
  float wy = uz*vx - ux*vz; 
  float wz = ux*vy - uy*vx; 
  float wl = sqrt(wx*wx+wy*wy+wz*wz); 
  // by construction, (wx,wy,wz) must be a unit vector. 
  if(fabs(wl - 1.0) > 0.00001) cout << "Calculation error in W vector"<<endl; 
  // measure angle between (wx,wy,wz) and (ax,ay,0). The angle between them 
  // should be small if the pair is conversion 
  //
  float cosPhiV = wx*ax + wy*ay; 
  phiv = acos(cosPhiV); 
  
}

//____________________________________________
bool ana_sgl::pair_cut(void){
  bool ret = true;


  if(d_flag_phiv==true){
    if(d_run>169591 && d_phiv>acos(-1.0)-d_phiv_cut){ 
      ret = false;
    }
    if(d_run<169591 && d_phiv<d_phiv_cut){ 
      ret = false;
    }
  }


  if(d_flag_emc_cut==true){
    if( !( 
	  (d_e1/d_pt1>d_emc_low && d_e1/d_pt1<d_emc_high) ||
	  (d_e2/d_pt2>d_emc_low && d_e2/d_pt2<d_emc_high)
	  )
	){
      ret = false;
    }
  }


  if(d_flag_pt_cut==true){
    if(!(d_pt1>d_pt_cut_low && d_pt2>d_pt_cut_low && 
	 d_pt1<d_pt_cut_high && d_pt2<d_pt_cut_high)
       ){
      ret = false;
    }
  }

  return ret;

}

//____________________________________________ 
void ana_sgl::print_cuts(void){

  cout<<" ********** lists of cuts ********** "<<endl;
  cout<<d_tpc_dedx_low<<" < TPC dE/dx < "<<d_tpc_dedx_high<<endl;


  if(d_flag_kaon_veto==true){
    cout<<d_dedx_kaon_veto_low<<" < TPC veto for Kaon < "<<d_dedx_kaon_veto_high<<endl;
  }else{
    cout<<"  No TPC Kaon Veto "<<endl;
  }

  if(d_flag_proton_veto==true){
    cout<<d_dedx_proton_veto_low<<" < TPC veto for proton < "<<d_dedx_proton_veto_high<<endl;
  }else{
    cout<<" No TPC Proton Veto "<<endl;
  }

  if(d_flag_tof_cut==true){
    cout<<d_tof_low<<" < kTOFnSigmaEle < "<<d_tof_high<<endl;
  }else{
    cout<<" No TOF cuts "<<endl;
  }
  if(d_flag_emc_cut==true){
    cout<<d_emc_low<<" < EMC E/p (or for pairs) < "<<d_emc_high<<endl;
  }else{
    cout<<" No EMC cuts "<<endl;
  }
  if(d_flag_phiv==true){
    cout<<" Phiv cuts "<<d_phiv_cut<<endl;
  }else{
    cout<<" No phiv cuts "<<endl;
  }

  if(d_flag_pt_cut==true){
    cout<<d_pt_cut_low<<" < pT of electrons < "<<d_pt_cut_high<<endl;
  }else{
    cout<<" No electron pt cuts "<<endl;
  }

  if(d_conv_flag==true){
    cout<<" remove converson pairs from electron/positron lists "<<endl;
  }else{
    cout<<" conversion candidates are in the pool."<<endl;
  }
  cout<<" ********** end of lists of cuts ********** "<<endl;

  if(sel_trigger==0){
    cout<<" MB "<<endl;
  }else if(sel_trigger==1){
    cout<<" SemiCentral "<<endl;
  }else if(sel_trigger==2){
    cout<<" Central "<<endl;
  }

}
  
  
 ana_sgl.C:1
 ana_sgl.C:2
 ana_sgl.C:3
 ana_sgl.C:4
 ana_sgl.C:5
 ana_sgl.C:6
 ana_sgl.C:7
 ana_sgl.C:8
 ana_sgl.C:9
 ana_sgl.C:10
 ana_sgl.C:11
 ana_sgl.C:12
 ana_sgl.C:13
 ana_sgl.C:14
 ana_sgl.C:15
 ana_sgl.C:16
 ana_sgl.C:17
 ana_sgl.C:18
 ana_sgl.C:19
 ana_sgl.C:20
 ana_sgl.C:21
 ana_sgl.C:22
 ana_sgl.C:23
 ana_sgl.C:24
 ana_sgl.C:25
 ana_sgl.C:26
 ana_sgl.C:27
 ana_sgl.C:28
 ana_sgl.C:29
 ana_sgl.C:30
 ana_sgl.C:31
 ana_sgl.C:32
 ana_sgl.C:33
 ana_sgl.C:34
 ana_sgl.C:35
 ana_sgl.C:36
 ana_sgl.C:37
 ana_sgl.C:38
 ana_sgl.C:39
 ana_sgl.C:40
 ana_sgl.C:41
 ana_sgl.C:42
 ana_sgl.C:43
 ana_sgl.C:44
 ana_sgl.C:45
 ana_sgl.C:46
 ana_sgl.C:47
 ana_sgl.C:48
 ana_sgl.C:49
 ana_sgl.C:50
 ana_sgl.C:51
 ana_sgl.C:52
 ana_sgl.C:53
 ana_sgl.C:54
 ana_sgl.C:55
 ana_sgl.C:56
 ana_sgl.C:57
 ana_sgl.C:58
 ana_sgl.C:59
 ana_sgl.C:60
 ana_sgl.C:61
 ana_sgl.C:62
 ana_sgl.C:63
 ana_sgl.C:64
 ana_sgl.C:65
 ana_sgl.C:66
 ana_sgl.C:67
 ana_sgl.C:68
 ana_sgl.C:69
 ana_sgl.C:70
 ana_sgl.C:71
 ana_sgl.C:72
 ana_sgl.C:73
 ana_sgl.C:74
 ana_sgl.C:75
 ana_sgl.C:76
 ana_sgl.C:77
 ana_sgl.C:78
 ana_sgl.C:79
 ana_sgl.C:80
 ana_sgl.C:81
 ana_sgl.C:82
 ana_sgl.C:83
 ana_sgl.C:84
 ana_sgl.C:85
 ana_sgl.C:86
 ana_sgl.C:87
 ana_sgl.C:88
 ana_sgl.C:89
 ana_sgl.C:90
 ana_sgl.C:91
 ana_sgl.C:92
 ana_sgl.C:93
 ana_sgl.C:94
 ana_sgl.C:95
 ana_sgl.C:96
 ana_sgl.C:97
 ana_sgl.C:98
 ana_sgl.C:99
 ana_sgl.C:100
 ana_sgl.C:101
 ana_sgl.C:102
 ana_sgl.C:103
 ana_sgl.C:104
 ana_sgl.C:105
 ana_sgl.C:106
 ana_sgl.C:107
 ana_sgl.C:108
 ana_sgl.C:109
 ana_sgl.C:110
 ana_sgl.C:111
 ana_sgl.C:112
 ana_sgl.C:113
 ana_sgl.C:114
 ana_sgl.C:115
 ana_sgl.C:116
 ana_sgl.C:117
 ana_sgl.C:118
 ana_sgl.C:119
 ana_sgl.C:120
 ana_sgl.C:121
 ana_sgl.C:122
 ana_sgl.C:123
 ana_sgl.C:124
 ana_sgl.C:125
 ana_sgl.C:126
 ana_sgl.C:127
 ana_sgl.C:128
 ana_sgl.C:129
 ana_sgl.C:130
 ana_sgl.C:131
 ana_sgl.C:132
 ana_sgl.C:133
 ana_sgl.C:134
 ana_sgl.C:135
 ana_sgl.C:136
 ana_sgl.C:137
 ana_sgl.C:138
 ana_sgl.C:139
 ana_sgl.C:140
 ana_sgl.C:141
 ana_sgl.C:142
 ana_sgl.C:143
 ana_sgl.C:144
 ana_sgl.C:145
 ana_sgl.C:146
 ana_sgl.C:147
 ana_sgl.C:148
 ana_sgl.C:149
 ana_sgl.C:150
 ana_sgl.C:151
 ana_sgl.C:152
 ana_sgl.C:153
 ana_sgl.C:154
 ana_sgl.C:155
 ana_sgl.C:156
 ana_sgl.C:157
 ana_sgl.C:158
 ana_sgl.C:159
 ana_sgl.C:160
 ana_sgl.C:161
 ana_sgl.C:162
 ana_sgl.C:163
 ana_sgl.C:164
 ana_sgl.C:165
 ana_sgl.C:166
 ana_sgl.C:167
 ana_sgl.C:168
 ana_sgl.C:169
 ana_sgl.C:170
 ana_sgl.C:171
 ana_sgl.C:172
 ana_sgl.C:173
 ana_sgl.C:174
 ana_sgl.C:175
 ana_sgl.C:176
 ana_sgl.C:177
 ana_sgl.C:178
 ana_sgl.C:179
 ana_sgl.C:180
 ana_sgl.C:181
 ana_sgl.C:182
 ana_sgl.C:183
 ana_sgl.C:184
 ana_sgl.C:185
 ana_sgl.C:186
 ana_sgl.C:187
 ana_sgl.C:188
 ana_sgl.C:189
 ana_sgl.C:190
 ana_sgl.C:191
 ana_sgl.C:192
 ana_sgl.C:193
 ana_sgl.C:194
 ana_sgl.C:195
 ana_sgl.C:196
 ana_sgl.C:197
 ana_sgl.C:198
 ana_sgl.C:199
 ana_sgl.C:200
 ana_sgl.C:201
 ana_sgl.C:202
 ana_sgl.C:203
 ana_sgl.C:204
 ana_sgl.C:205
 ana_sgl.C:206
 ana_sgl.C:207
 ana_sgl.C:208
 ana_sgl.C:209
 ana_sgl.C:210
 ana_sgl.C:211
 ana_sgl.C:212
 ana_sgl.C:213
 ana_sgl.C:214
 ana_sgl.C:215
 ana_sgl.C:216
 ana_sgl.C:217
 ana_sgl.C:218
 ana_sgl.C:219
 ana_sgl.C:220
 ana_sgl.C:221
 ana_sgl.C:222
 ana_sgl.C:223
 ana_sgl.C:224
 ana_sgl.C:225
 ana_sgl.C:226
 ana_sgl.C:227
 ana_sgl.C:228
 ana_sgl.C:229
 ana_sgl.C:230
 ana_sgl.C:231
 ana_sgl.C:232
 ana_sgl.C:233
 ana_sgl.C:234
 ana_sgl.C:235
 ana_sgl.C:236
 ana_sgl.C:237
 ana_sgl.C:238
 ana_sgl.C:239
 ana_sgl.C:240
 ana_sgl.C:241
 ana_sgl.C:242
 ana_sgl.C:243
 ana_sgl.C:244
 ana_sgl.C:245
 ana_sgl.C:246
 ana_sgl.C:247
 ana_sgl.C:248
 ana_sgl.C:249
 ana_sgl.C:250
 ana_sgl.C:251
 ana_sgl.C:252
 ana_sgl.C:253
 ana_sgl.C:254
 ana_sgl.C:255
 ana_sgl.C:256
 ana_sgl.C:257
 ana_sgl.C:258
 ana_sgl.C:259
 ana_sgl.C:260
 ana_sgl.C:261
 ana_sgl.C:262
 ana_sgl.C:263
 ana_sgl.C:264
 ana_sgl.C:265
 ana_sgl.C:266
 ana_sgl.C:267
 ana_sgl.C:268
 ana_sgl.C:269
 ana_sgl.C:270
 ana_sgl.C:271
 ana_sgl.C:272
 ana_sgl.C:273
 ana_sgl.C:274
 ana_sgl.C:275
 ana_sgl.C:276
 ana_sgl.C:277
 ana_sgl.C:278
 ana_sgl.C:279
 ana_sgl.C:280
 ana_sgl.C:281
 ana_sgl.C:282
 ana_sgl.C:283
 ana_sgl.C:284
 ana_sgl.C:285
 ana_sgl.C:286
 ana_sgl.C:287
 ana_sgl.C:288
 ana_sgl.C:289
 ana_sgl.C:290
 ana_sgl.C:291
 ana_sgl.C:292
 ana_sgl.C:293
 ana_sgl.C:294
 ana_sgl.C:295
 ana_sgl.C:296
 ana_sgl.C:297
 ana_sgl.C:298
 ana_sgl.C:299
 ana_sgl.C:300
 ana_sgl.C:301
 ana_sgl.C:302
 ana_sgl.C:303
 ana_sgl.C:304
 ana_sgl.C:305
 ana_sgl.C:306
 ana_sgl.C:307
 ana_sgl.C:308
 ana_sgl.C:309
 ana_sgl.C:310
 ana_sgl.C:311
 ana_sgl.C:312
 ana_sgl.C:313
 ana_sgl.C:314
 ana_sgl.C:315
 ana_sgl.C:316
 ana_sgl.C:317
 ana_sgl.C:318
 ana_sgl.C:319
 ana_sgl.C:320
 ana_sgl.C:321
 ana_sgl.C:322
 ana_sgl.C:323
 ana_sgl.C:324
 ana_sgl.C:325
 ana_sgl.C:326
 ana_sgl.C:327
 ana_sgl.C:328
 ana_sgl.C:329
 ana_sgl.C:330
 ana_sgl.C:331
 ana_sgl.C:332
 ana_sgl.C:333
 ana_sgl.C:334
 ana_sgl.C:335
 ana_sgl.C:336
 ana_sgl.C:337
 ana_sgl.C:338
 ana_sgl.C:339
 ana_sgl.C:340
 ana_sgl.C:341
 ana_sgl.C:342
 ana_sgl.C:343
 ana_sgl.C:344
 ana_sgl.C:345
 ana_sgl.C:346
 ana_sgl.C:347
 ana_sgl.C:348
 ana_sgl.C:349
 ana_sgl.C:350
 ana_sgl.C:351
 ana_sgl.C:352
 ana_sgl.C:353
 ana_sgl.C:354
 ana_sgl.C:355
 ana_sgl.C:356
 ana_sgl.C:357
 ana_sgl.C:358
 ana_sgl.C:359
 ana_sgl.C:360
 ana_sgl.C:361
 ana_sgl.C:362
 ana_sgl.C:363
 ana_sgl.C:364
 ana_sgl.C:365
 ana_sgl.C:366
 ana_sgl.C:367
 ana_sgl.C:368
 ana_sgl.C:369
 ana_sgl.C:370
 ana_sgl.C:371
 ana_sgl.C:372
 ana_sgl.C:373
 ana_sgl.C:374
 ana_sgl.C:375
 ana_sgl.C:376
 ana_sgl.C:377
 ana_sgl.C:378
 ana_sgl.C:379
 ana_sgl.C:380
 ana_sgl.C:381
 ana_sgl.C:382
 ana_sgl.C:383
 ana_sgl.C:384
 ana_sgl.C:385
 ana_sgl.C:386
 ana_sgl.C:387
 ana_sgl.C:388
 ana_sgl.C:389
 ana_sgl.C:390
 ana_sgl.C:391
 ana_sgl.C:392
 ana_sgl.C:393
 ana_sgl.C:394
 ana_sgl.C:395
 ana_sgl.C:396
 ana_sgl.C:397
 ana_sgl.C:398
 ana_sgl.C:399
 ana_sgl.C:400
 ana_sgl.C:401
 ana_sgl.C:402
 ana_sgl.C:403
 ana_sgl.C:404
 ana_sgl.C:405
 ana_sgl.C:406
 ana_sgl.C:407
 ana_sgl.C:408
 ana_sgl.C:409
 ana_sgl.C:410
 ana_sgl.C:411
 ana_sgl.C:412
 ana_sgl.C:413
 ana_sgl.C:414
 ana_sgl.C:415
 ana_sgl.C:416
 ana_sgl.C:417
 ana_sgl.C:418
 ana_sgl.C:419
 ana_sgl.C:420
 ana_sgl.C:421
 ana_sgl.C:422
 ana_sgl.C:423
 ana_sgl.C:424
 ana_sgl.C:425
 ana_sgl.C:426
 ana_sgl.C:427
 ana_sgl.C:428
 ana_sgl.C:429
 ana_sgl.C:430
 ana_sgl.C:431
 ana_sgl.C:432
 ana_sgl.C:433
 ana_sgl.C:434
 ana_sgl.C:435
 ana_sgl.C:436
 ana_sgl.C:437
 ana_sgl.C:438
 ana_sgl.C:439
 ana_sgl.C:440
 ana_sgl.C:441
 ana_sgl.C:442
 ana_sgl.C:443
 ana_sgl.C:444
 ana_sgl.C:445
 ana_sgl.C:446
 ana_sgl.C:447
 ana_sgl.C:448
 ana_sgl.C:449
 ana_sgl.C:450
 ana_sgl.C:451
 ana_sgl.C:452
 ana_sgl.C:453
 ana_sgl.C:454
 ana_sgl.C:455
 ana_sgl.C:456
 ana_sgl.C:457
 ana_sgl.C:458
 ana_sgl.C:459
 ana_sgl.C:460
 ana_sgl.C:461
 ana_sgl.C:462
 ana_sgl.C:463
 ana_sgl.C:464
 ana_sgl.C:465
 ana_sgl.C:466
 ana_sgl.C:467
 ana_sgl.C:468
 ana_sgl.C:469
 ana_sgl.C:470
 ana_sgl.C:471
 ana_sgl.C:472
 ana_sgl.C:473
 ana_sgl.C:474
 ana_sgl.C:475
 ana_sgl.C:476
 ana_sgl.C:477
 ana_sgl.C:478
 ana_sgl.C:479
 ana_sgl.C:480
 ana_sgl.C:481
 ana_sgl.C:482
 ana_sgl.C:483
 ana_sgl.C:484
 ana_sgl.C:485
 ana_sgl.C:486
 ana_sgl.C:487
 ana_sgl.C:488
 ana_sgl.C:489
 ana_sgl.C:490
 ana_sgl.C:491
 ana_sgl.C:492
 ana_sgl.C:493
 ana_sgl.C:494
 ana_sgl.C:495
 ana_sgl.C:496
 ana_sgl.C:497
 ana_sgl.C:498
 ana_sgl.C:499
 ana_sgl.C:500
 ana_sgl.C:501
 ana_sgl.C:502
 ana_sgl.C:503
 ana_sgl.C:504
 ana_sgl.C:505
 ana_sgl.C:506
 ana_sgl.C:507
 ana_sgl.C:508
 ana_sgl.C:509
 ana_sgl.C:510
 ana_sgl.C:511
 ana_sgl.C:512
 ana_sgl.C:513
 ana_sgl.C:514
 ana_sgl.C:515
 ana_sgl.C:516
 ana_sgl.C:517
 ana_sgl.C:518
 ana_sgl.C:519
 ana_sgl.C:520
 ana_sgl.C:521
 ana_sgl.C:522
 ana_sgl.C:523
 ana_sgl.C:524
 ana_sgl.C:525
 ana_sgl.C:526
 ana_sgl.C:527
 ana_sgl.C:528
 ana_sgl.C:529
 ana_sgl.C:530
 ana_sgl.C:531
 ana_sgl.C:532
 ana_sgl.C:533
 ana_sgl.C:534
 ana_sgl.C:535
 ana_sgl.C:536
 ana_sgl.C:537
 ana_sgl.C:538
 ana_sgl.C:539
 ana_sgl.C:540
 ana_sgl.C:541
 ana_sgl.C:542
 ana_sgl.C:543
 ana_sgl.C:544
 ana_sgl.C:545
 ana_sgl.C:546
 ana_sgl.C:547
 ana_sgl.C:548
 ana_sgl.C:549
 ana_sgl.C:550
 ana_sgl.C:551
 ana_sgl.C:552
 ana_sgl.C:553
 ana_sgl.C:554
 ana_sgl.C:555
 ana_sgl.C:556
 ana_sgl.C:557
 ana_sgl.C:558
 ana_sgl.C:559
 ana_sgl.C:560
 ana_sgl.C:561
 ana_sgl.C:562
 ana_sgl.C:563
 ana_sgl.C:564
 ana_sgl.C:565
 ana_sgl.C:566
 ana_sgl.C:567
 ana_sgl.C:568
 ana_sgl.C:569
 ana_sgl.C:570
 ana_sgl.C:571
 ana_sgl.C:572
 ana_sgl.C:573
 ana_sgl.C:574
 ana_sgl.C:575
 ana_sgl.C:576
 ana_sgl.C:577
 ana_sgl.C:578
 ana_sgl.C:579
 ana_sgl.C:580
 ana_sgl.C:581
 ana_sgl.C:582
 ana_sgl.C:583
 ana_sgl.C:584
 ana_sgl.C:585
 ana_sgl.C:586
 ana_sgl.C:587
 ana_sgl.C:588
 ana_sgl.C:589
 ana_sgl.C:590
 ana_sgl.C:591
 ana_sgl.C:592
 ana_sgl.C:593
 ana_sgl.C:594
 ana_sgl.C:595
 ana_sgl.C:596
 ana_sgl.C:597
 ana_sgl.C:598
 ana_sgl.C:599
 ana_sgl.C:600
 ana_sgl.C:601
 ana_sgl.C:602
 ana_sgl.C:603
 ana_sgl.C:604
 ana_sgl.C:605
 ana_sgl.C:606
 ana_sgl.C:607
 ana_sgl.C:608
 ana_sgl.C:609
 ana_sgl.C:610
 ana_sgl.C:611
 ana_sgl.C:612
 ana_sgl.C:613
 ana_sgl.C:614
 ana_sgl.C:615
 ana_sgl.C:616
 ana_sgl.C:617
 ana_sgl.C:618
 ana_sgl.C:619
 ana_sgl.C:620
 ana_sgl.C:621
 ana_sgl.C:622
 ana_sgl.C:623
 ana_sgl.C:624
 ana_sgl.C:625
 ana_sgl.C:626
 ana_sgl.C:627
 ana_sgl.C:628
 ana_sgl.C:629
 ana_sgl.C:630
 ana_sgl.C:631
 ana_sgl.C:632
 ana_sgl.C:633
 ana_sgl.C:634
 ana_sgl.C:635
 ana_sgl.C:636
 ana_sgl.C:637
 ana_sgl.C:638
 ana_sgl.C:639
 ana_sgl.C:640
 ana_sgl.C:641
 ana_sgl.C:642
 ana_sgl.C:643
 ana_sgl.C:644
 ana_sgl.C:645
 ana_sgl.C:646
 ana_sgl.C:647
 ana_sgl.C:648
 ana_sgl.C:649
 ana_sgl.C:650
 ana_sgl.C:651
 ana_sgl.C:652
 ana_sgl.C:653
 ana_sgl.C:654
 ana_sgl.C:655
 ana_sgl.C:656
 ana_sgl.C:657
 ana_sgl.C:658
 ana_sgl.C:659
 ana_sgl.C:660
 ana_sgl.C:661
 ana_sgl.C:662
 ana_sgl.C:663
 ana_sgl.C:664
 ana_sgl.C:665
 ana_sgl.C:666
 ana_sgl.C:667
 ana_sgl.C:668
 ana_sgl.C:669
 ana_sgl.C:670
 ana_sgl.C:671
 ana_sgl.C:672
 ana_sgl.C:673
 ana_sgl.C:674
 ana_sgl.C:675
 ana_sgl.C:676
 ana_sgl.C:677
 ana_sgl.C:678
 ana_sgl.C:679
 ana_sgl.C:680
 ana_sgl.C:681
 ana_sgl.C:682
 ana_sgl.C:683
 ana_sgl.C:684
 ana_sgl.C:685
 ana_sgl.C:686
 ana_sgl.C:687
 ana_sgl.C:688
 ana_sgl.C:689
 ana_sgl.C:690
 ana_sgl.C:691
 ana_sgl.C:692
 ana_sgl.C:693
 ana_sgl.C:694
 ana_sgl.C:695
 ana_sgl.C:696
 ana_sgl.C:697
 ana_sgl.C:698
 ana_sgl.C:699
 ana_sgl.C:700
 ana_sgl.C:701
 ana_sgl.C:702
 ana_sgl.C:703
 ana_sgl.C:704
 ana_sgl.C:705
 ana_sgl.C:706
 ana_sgl.C:707
 ana_sgl.C:708
 ana_sgl.C:709
 ana_sgl.C:710
 ana_sgl.C:711
 ana_sgl.C:712
 ana_sgl.C:713
 ana_sgl.C:714
 ana_sgl.C:715
 ana_sgl.C:716
 ana_sgl.C:717
 ana_sgl.C:718
 ana_sgl.C:719
 ana_sgl.C:720
 ana_sgl.C:721
 ana_sgl.C:722
 ana_sgl.C:723
 ana_sgl.C:724
 ana_sgl.C:725
 ana_sgl.C:726
 ana_sgl.C:727
 ana_sgl.C:728
 ana_sgl.C:729
 ana_sgl.C:730
 ana_sgl.C:731
 ana_sgl.C:732
 ana_sgl.C:733
 ana_sgl.C:734
 ana_sgl.C:735
 ana_sgl.C:736
 ana_sgl.C:737
 ana_sgl.C:738
 ana_sgl.C:739
 ana_sgl.C:740
 ana_sgl.C:741
 ana_sgl.C:742
 ana_sgl.C:743
 ana_sgl.C:744
 ana_sgl.C:745
 ana_sgl.C:746
 ana_sgl.C:747
 ana_sgl.C:748
 ana_sgl.C:749
 ana_sgl.C:750
 ana_sgl.C:751
 ana_sgl.C:752
 ana_sgl.C:753
 ana_sgl.C:754
 ana_sgl.C:755
 ana_sgl.C:756
 ana_sgl.C:757
 ana_sgl.C:758
 ana_sgl.C:759
 ana_sgl.C:760
 ana_sgl.C:761
 ana_sgl.C:762
 ana_sgl.C:763
 ana_sgl.C:764
 ana_sgl.C:765
 ana_sgl.C:766
 ana_sgl.C:767
 ana_sgl.C:768
 ana_sgl.C:769
 ana_sgl.C:770
 ana_sgl.C:771
 ana_sgl.C:772
 ana_sgl.C:773
 ana_sgl.C:774
 ana_sgl.C:775
 ana_sgl.C:776
 ana_sgl.C:777
 ana_sgl.C:778
 ana_sgl.C:779
 ana_sgl.C:780
 ana_sgl.C:781
 ana_sgl.C:782
 ana_sgl.C:783
 ana_sgl.C:784
 ana_sgl.C:785
 ana_sgl.C:786
 ana_sgl.C:787
 ana_sgl.C:788
 ana_sgl.C:789
 ana_sgl.C:790
 ana_sgl.C:791
 ana_sgl.C:792
 ana_sgl.C:793
 ana_sgl.C:794
 ana_sgl.C:795
 ana_sgl.C:796
 ana_sgl.C:797
 ana_sgl.C:798
 ana_sgl.C:799
 ana_sgl.C:800
 ana_sgl.C:801
 ana_sgl.C:802
 ana_sgl.C:803
 ana_sgl.C:804
 ana_sgl.C:805
 ana_sgl.C:806
 ana_sgl.C:807
 ana_sgl.C:808
 ana_sgl.C:809
 ana_sgl.C:810
 ana_sgl.C:811
 ana_sgl.C:812
 ana_sgl.C:813
 ana_sgl.C:814
 ana_sgl.C:815
 ana_sgl.C:816
 ana_sgl.C:817
 ana_sgl.C:818
 ana_sgl.C:819
 ana_sgl.C:820
 ana_sgl.C:821
 ana_sgl.C:822
 ana_sgl.C:823
 ana_sgl.C:824
 ana_sgl.C:825
 ana_sgl.C:826
 ana_sgl.C:827
 ana_sgl.C:828
 ana_sgl.C:829
 ana_sgl.C:830
 ana_sgl.C:831
 ana_sgl.C:832
 ana_sgl.C:833
 ana_sgl.C:834
 ana_sgl.C:835
 ana_sgl.C:836
 ana_sgl.C:837
 ana_sgl.C:838
 ana_sgl.C:839
 ana_sgl.C:840
 ana_sgl.C:841
 ana_sgl.C:842
 ana_sgl.C:843
 ana_sgl.C:844
 ana_sgl.C:845
 ana_sgl.C:846
 ana_sgl.C:847
 ana_sgl.C:848
 ana_sgl.C:849
 ana_sgl.C:850
 ana_sgl.C:851
 ana_sgl.C:852
 ana_sgl.C:853
 ana_sgl.C:854
 ana_sgl.C:855
 ana_sgl.C:856
 ana_sgl.C:857
 ana_sgl.C:858
 ana_sgl.C:859
 ana_sgl.C:860
 ana_sgl.C:861
 ana_sgl.C:862
 ana_sgl.C:863
 ana_sgl.C:864
 ana_sgl.C:865
 ana_sgl.C:866
 ana_sgl.C:867
 ana_sgl.C:868
 ana_sgl.C:869
 ana_sgl.C:870
 ana_sgl.C:871
 ana_sgl.C:872
 ana_sgl.C:873
 ana_sgl.C:874
 ana_sgl.C:875
 ana_sgl.C:876
 ana_sgl.C:877
 ana_sgl.C:878
 ana_sgl.C:879
 ana_sgl.C:880
 ana_sgl.C:881
 ana_sgl.C:882
 ana_sgl.C:883
 ana_sgl.C:884
 ana_sgl.C:885
 ana_sgl.C:886
 ana_sgl.C:887
 ana_sgl.C:888
 ana_sgl.C:889
 ana_sgl.C:890
 ana_sgl.C:891
 ana_sgl.C:892
 ana_sgl.C:893
 ana_sgl.C:894
 ana_sgl.C:895
 ana_sgl.C:896
 ana_sgl.C:897
 ana_sgl.C:898
 ana_sgl.C:899
 ana_sgl.C:900
 ana_sgl.C:901
 ana_sgl.C:902
 ana_sgl.C:903
 ana_sgl.C:904
 ana_sgl.C:905
 ana_sgl.C:906
 ana_sgl.C:907
 ana_sgl.C:908
 ana_sgl.C:909
 ana_sgl.C:910
 ana_sgl.C:911
 ana_sgl.C:912
 ana_sgl.C:913
 ana_sgl.C:914
 ana_sgl.C:915
 ana_sgl.C:916
 ana_sgl.C:917
 ana_sgl.C:918
 ana_sgl.C:919
 ana_sgl.C:920
 ana_sgl.C:921
 ana_sgl.C:922
 ana_sgl.C:923
 ana_sgl.C:924
 ana_sgl.C:925
 ana_sgl.C:926
 ana_sgl.C:927
 ana_sgl.C:928
 ana_sgl.C:929
 ana_sgl.C:930
 ana_sgl.C:931
 ana_sgl.C:932
 ana_sgl.C:933
 ana_sgl.C:934
 ana_sgl.C:935
 ana_sgl.C:936
 ana_sgl.C:937
 ana_sgl.C:938
 ana_sgl.C:939
 ana_sgl.C:940
 ana_sgl.C:941
 ana_sgl.C:942
 ana_sgl.C:943
 ana_sgl.C:944
 ana_sgl.C:945
 ana_sgl.C:946
 ana_sgl.C:947
 ana_sgl.C:948
 ana_sgl.C:949
 ana_sgl.C:950
 ana_sgl.C:951
 ana_sgl.C:952
 ana_sgl.C:953
 ana_sgl.C:954
 ana_sgl.C:955
 ana_sgl.C:956
 ana_sgl.C:957
 ana_sgl.C:958
 ana_sgl.C:959
 ana_sgl.C:960
 ana_sgl.C:961
 ana_sgl.C:962
 ana_sgl.C:963
 ana_sgl.C:964
 ana_sgl.C:965
 ana_sgl.C:966
 ana_sgl.C:967
 ana_sgl.C:968
 ana_sgl.C:969
 ana_sgl.C:970
 ana_sgl.C:971
 ana_sgl.C:972
 ana_sgl.C:973
 ana_sgl.C:974
 ana_sgl.C:975
 ana_sgl.C:976
 ana_sgl.C:977
 ana_sgl.C:978
 ana_sgl.C:979
 ana_sgl.C:980
 ana_sgl.C:981
 ana_sgl.C:982
 ana_sgl.C:983
 ana_sgl.C:984
 ana_sgl.C:985
 ana_sgl.C:986
 ana_sgl.C:987
 ana_sgl.C:988
 ana_sgl.C:989
 ana_sgl.C:990
 ana_sgl.C:991
 ana_sgl.C:992
 ana_sgl.C:993
 ana_sgl.C:994
 ana_sgl.C:995
 ana_sgl.C:996
 ana_sgl.C:997
 ana_sgl.C:998
 ana_sgl.C:999
 ana_sgl.C:1000
 ana_sgl.C:1001
 ana_sgl.C:1002
 ana_sgl.C:1003
 ana_sgl.C:1004
 ana_sgl.C:1005
 ana_sgl.C:1006
 ana_sgl.C:1007
 ana_sgl.C:1008
 ana_sgl.C:1009
 ana_sgl.C:1010
 ana_sgl.C:1011
 ana_sgl.C:1012
 ana_sgl.C:1013
 ana_sgl.C:1014
 ana_sgl.C:1015
 ana_sgl.C:1016
 ana_sgl.C:1017
 ana_sgl.C:1018
 ana_sgl.C:1019
 ana_sgl.C:1020
 ana_sgl.C:1021
 ana_sgl.C:1022
 ana_sgl.C:1023
 ana_sgl.C:1024
 ana_sgl.C:1025
 ana_sgl.C:1026
 ana_sgl.C:1027
 ana_sgl.C:1028
 ana_sgl.C:1029
 ana_sgl.C:1030
 ana_sgl.C:1031
 ana_sgl.C:1032
 ana_sgl.C:1033
 ana_sgl.C:1034
 ana_sgl.C:1035
 ana_sgl.C:1036
 ana_sgl.C:1037
 ana_sgl.C:1038
 ana_sgl.C:1039
 ana_sgl.C:1040
 ana_sgl.C:1041
 ana_sgl.C:1042
 ana_sgl.C:1043
 ana_sgl.C:1044
 ana_sgl.C:1045
 ana_sgl.C:1046
 ana_sgl.C:1047
 ana_sgl.C:1048
 ana_sgl.C:1049
 ana_sgl.C:1050
 ana_sgl.C:1051
 ana_sgl.C:1052
 ana_sgl.C:1053
 ana_sgl.C:1054
 ana_sgl.C:1055
 ana_sgl.C:1056
 ana_sgl.C:1057
 ana_sgl.C:1058
 ana_sgl.C:1059
 ana_sgl.C:1060
 ana_sgl.C:1061
 ana_sgl.C:1062
 ana_sgl.C:1063
 ana_sgl.C:1064
 ana_sgl.C:1065
 ana_sgl.C:1066
 ana_sgl.C:1067
 ana_sgl.C:1068
 ana_sgl.C:1069
 ana_sgl.C:1070
 ana_sgl.C:1071
 ana_sgl.C:1072
 ana_sgl.C:1073
 ana_sgl.C:1074
 ana_sgl.C:1075
 ana_sgl.C:1076
 ana_sgl.C:1077
 ana_sgl.C:1078
 ana_sgl.C:1079
 ana_sgl.C:1080
 ana_sgl.C:1081
 ana_sgl.C:1082
 ana_sgl.C:1083
 ana_sgl.C:1084
 ana_sgl.C:1085
 ana_sgl.C:1086
 ana_sgl.C:1087
 ana_sgl.C:1088
 ana_sgl.C:1089
 ana_sgl.C:1090
 ana_sgl.C:1091
 ana_sgl.C:1092
 ana_sgl.C:1093
 ana_sgl.C:1094
 ana_sgl.C:1095
 ana_sgl.C:1096
 ana_sgl.C:1097
 ana_sgl.C:1098
 ana_sgl.C:1099
 ana_sgl.C:1100
 ana_sgl.C:1101
 ana_sgl.C:1102
 ana_sgl.C:1103
 ana_sgl.C:1104
 ana_sgl.C:1105
 ana_sgl.C:1106
 ana_sgl.C:1107
 ana_sgl.C:1108
 ana_sgl.C:1109
 ana_sgl.C:1110
 ana_sgl.C:1111
 ana_sgl.C:1112
 ana_sgl.C:1113
 ana_sgl.C:1114
 ana_sgl.C:1115
 ana_sgl.C:1116
 ana_sgl.C:1117
 ana_sgl.C:1118
 ana_sgl.C:1119
 ana_sgl.C:1120
 ana_sgl.C:1121
 ana_sgl.C:1122
 ana_sgl.C:1123
 ana_sgl.C:1124
 ana_sgl.C:1125
 ana_sgl.C:1126
 ana_sgl.C:1127
 ana_sgl.C:1128
 ana_sgl.C:1129
 ana_sgl.C:1130
 ana_sgl.C:1131
 ana_sgl.C:1132
 ana_sgl.C:1133
 ana_sgl.C:1134
 ana_sgl.C:1135
 ana_sgl.C:1136
 ana_sgl.C:1137
 ana_sgl.C:1138
 ana_sgl.C:1139
 ana_sgl.C:1140
 ana_sgl.C:1141
 ana_sgl.C:1142
 ana_sgl.C:1143
 ana_sgl.C:1144
 ana_sgl.C:1145
 ana_sgl.C:1146
 ana_sgl.C:1147
 ana_sgl.C:1148
 ana_sgl.C:1149
 ana_sgl.C:1150
 ana_sgl.C:1151
 ana_sgl.C:1152
 ana_sgl.C:1153
 ana_sgl.C:1154
 ana_sgl.C:1155
 ana_sgl.C:1156
 ana_sgl.C:1157
 ana_sgl.C:1158
 ana_sgl.C:1159
 ana_sgl.C:1160
 ana_sgl.C:1161
 ana_sgl.C:1162
 ana_sgl.C:1163
 ana_sgl.C:1164
 ana_sgl.C:1165
 ana_sgl.C:1166
 ana_sgl.C:1167
 ana_sgl.C:1168
 ana_sgl.C:1169
 ana_sgl.C:1170
 ana_sgl.C:1171
 ana_sgl.C:1172
 ana_sgl.C:1173
 ana_sgl.C:1174
 ana_sgl.C:1175
 ana_sgl.C:1176
 ana_sgl.C:1177
 ana_sgl.C:1178
 ana_sgl.C:1179
 ana_sgl.C:1180
 ana_sgl.C:1181
 ana_sgl.C:1182
 ana_sgl.C:1183
 ana_sgl.C:1184
 ana_sgl.C:1185
 ana_sgl.C:1186
 ana_sgl.C:1187
 ana_sgl.C:1188
 ana_sgl.C:1189
 ana_sgl.C:1190
 ana_sgl.C:1191
 ana_sgl.C:1192
 ana_sgl.C:1193
 ana_sgl.C:1194
 ana_sgl.C:1195
 ana_sgl.C:1196
 ana_sgl.C:1197
 ana_sgl.C:1198
 ana_sgl.C:1199
 ana_sgl.C:1200
 ana_sgl.C:1201
 ana_sgl.C:1202
 ana_sgl.C:1203
 ana_sgl.C:1204
 ana_sgl.C:1205
 ana_sgl.C:1206
 ana_sgl.C:1207
 ana_sgl.C:1208
 ana_sgl.C:1209
 ana_sgl.C:1210
 ana_sgl.C:1211
 ana_sgl.C:1212
 ana_sgl.C:1213
 ana_sgl.C:1214
 ana_sgl.C:1215
 ana_sgl.C:1216
 ana_sgl.C:1217
 ana_sgl.C:1218
 ana_sgl.C:1219
 ana_sgl.C:1220
 ana_sgl.C:1221
 ana_sgl.C:1222
 ana_sgl.C:1223
 ana_sgl.C:1224
 ana_sgl.C:1225
 ana_sgl.C:1226
 ana_sgl.C:1227
 ana_sgl.C:1228
 ana_sgl.C:1229
 ana_sgl.C:1230
 ana_sgl.C:1231
 ana_sgl.C:1232
 ana_sgl.C:1233
 ana_sgl.C:1234
 ana_sgl.C:1235
 ana_sgl.C:1236
 ana_sgl.C:1237
 ana_sgl.C:1238
 ana_sgl.C:1239
 ana_sgl.C:1240
 ana_sgl.C:1241
 ana_sgl.C:1242
 ana_sgl.C:1243
 ana_sgl.C:1244
 ana_sgl.C:1245
 ana_sgl.C:1246
 ana_sgl.C:1247
 ana_sgl.C:1248
 ana_sgl.C:1249
 ana_sgl.C:1250
 ana_sgl.C:1251
 ana_sgl.C:1252
 ana_sgl.C:1253
 ana_sgl.C:1254
 ana_sgl.C:1255
 ana_sgl.C:1256
 ana_sgl.C:1257
 ana_sgl.C:1258
 ana_sgl.C:1259
 ana_sgl.C:1260
 ana_sgl.C:1261
 ana_sgl.C:1262
 ana_sgl.C:1263
 ana_sgl.C:1264
 ana_sgl.C:1265
 ana_sgl.C:1266
 ana_sgl.C:1267
 ana_sgl.C:1268
 ana_sgl.C:1269
 ana_sgl.C:1270
 ana_sgl.C:1271
 ana_sgl.C:1272
 ana_sgl.C:1273
 ana_sgl.C:1274
 ana_sgl.C:1275
 ana_sgl.C:1276
 ana_sgl.C:1277
 ana_sgl.C:1278
 ana_sgl.C:1279
 ana_sgl.C:1280
 ana_sgl.C:1281
 ana_sgl.C:1282
 ana_sgl.C:1283
 ana_sgl.C:1284
 ana_sgl.C:1285
 ana_sgl.C:1286
 ana_sgl.C:1287
 ana_sgl.C:1288
 ana_sgl.C:1289
 ana_sgl.C:1290
 ana_sgl.C:1291
 ana_sgl.C:1292
 ana_sgl.C:1293
 ana_sgl.C:1294
 ana_sgl.C:1295
 ana_sgl.C:1296
 ana_sgl.C:1297
 ana_sgl.C:1298
 ana_sgl.C:1299
 ana_sgl.C:1300
 ana_sgl.C:1301
 ana_sgl.C:1302
 ana_sgl.C:1303
 ana_sgl.C:1304
 ana_sgl.C:1305
 ana_sgl.C:1306
 ana_sgl.C:1307
 ana_sgl.C:1308
 ana_sgl.C:1309
 ana_sgl.C:1310
 ana_sgl.C:1311
 ana_sgl.C:1312
 ana_sgl.C:1313
 ana_sgl.C:1314
 ana_sgl.C:1315
 ana_sgl.C:1316
 ana_sgl.C:1317
 ana_sgl.C:1318
 ana_sgl.C:1319
 ana_sgl.C:1320
 ana_sgl.C:1321
 ana_sgl.C:1322
 ana_sgl.C:1323
 ana_sgl.C:1324
 ana_sgl.C:1325
 ana_sgl.C:1326
 ana_sgl.C:1327
 ana_sgl.C:1328
 ana_sgl.C:1329
 ana_sgl.C:1330
 ana_sgl.C:1331
 ana_sgl.C:1332
 ana_sgl.C:1333
 ana_sgl.C:1334
 ana_sgl.C:1335
 ana_sgl.C:1336
 ana_sgl.C:1337
 ana_sgl.C:1338
 ana_sgl.C:1339
 ana_sgl.C:1340
 ana_sgl.C:1341
 ana_sgl.C:1342
 ana_sgl.C:1343
 ana_sgl.C:1344
 ana_sgl.C:1345
 ana_sgl.C:1346
 ana_sgl.C:1347
 ana_sgl.C:1348
 ana_sgl.C:1349
 ana_sgl.C:1350
 ana_sgl.C:1351
 ana_sgl.C:1352
 ana_sgl.C:1353
 ana_sgl.C:1354
 ana_sgl.C:1355
 ana_sgl.C:1356
 ana_sgl.C:1357
 ana_sgl.C:1358
 ana_sgl.C:1359
 ana_sgl.C:1360
 ana_sgl.C:1361
 ana_sgl.C:1362
 ana_sgl.C:1363
 ana_sgl.C:1364
 ana_sgl.C:1365
 ana_sgl.C:1366
 ana_sgl.C:1367
 ana_sgl.C:1368
 ana_sgl.C:1369
 ana_sgl.C:1370
 ana_sgl.C:1371
 ana_sgl.C:1372
 ana_sgl.C:1373
 ana_sgl.C:1374
 ana_sgl.C:1375
 ana_sgl.C:1376
 ana_sgl.C:1377
 ana_sgl.C:1378
 ana_sgl.C:1379
 ana_sgl.C:1380
 ana_sgl.C:1381
 ana_sgl.C:1382
 ana_sgl.C:1383
 ana_sgl.C:1384
 ana_sgl.C:1385
 ana_sgl.C:1386
 ana_sgl.C:1387
 ana_sgl.C:1388
 ana_sgl.C:1389
 ana_sgl.C:1390
 ana_sgl.C:1391
 ana_sgl.C:1392
 ana_sgl.C:1393
 ana_sgl.C:1394
 ana_sgl.C:1395
 ana_sgl.C:1396
 ana_sgl.C:1397
 ana_sgl.C:1398
 ana_sgl.C:1399
 ana_sgl.C:1400
 ana_sgl.C:1401
 ana_sgl.C:1402
 ana_sgl.C:1403
 ana_sgl.C:1404
 ana_sgl.C:1405
 ana_sgl.C:1406
 ana_sgl.C:1407
 ana_sgl.C:1408
 ana_sgl.C:1409
 ana_sgl.C:1410
 ana_sgl.C:1411
 ana_sgl.C:1412
 ana_sgl.C:1413
 ana_sgl.C:1414
 ana_sgl.C:1415
 ana_sgl.C:1416
 ana_sgl.C:1417
 ana_sgl.C:1418
 ana_sgl.C:1419
 ana_sgl.C:1420
 ana_sgl.C:1421
 ana_sgl.C:1422
 ana_sgl.C:1423
 ana_sgl.C:1424
 ana_sgl.C:1425
 ana_sgl.C:1426
 ana_sgl.C:1427
 ana_sgl.C:1428
 ana_sgl.C:1429
 ana_sgl.C:1430
 ana_sgl.C:1431
 ana_sgl.C:1432
 ana_sgl.C:1433
 ana_sgl.C:1434
 ana_sgl.C:1435
 ana_sgl.C:1436
 ana_sgl.C:1437
 ana_sgl.C:1438
 ana_sgl.C:1439
 ana_sgl.C:1440
 ana_sgl.C:1441
 ana_sgl.C:1442
 ana_sgl.C:1443
 ana_sgl.C:1444
 ana_sgl.C:1445
 ana_sgl.C:1446
 ana_sgl.C:1447
 ana_sgl.C:1448
 ana_sgl.C:1449
 ana_sgl.C:1450
 ana_sgl.C:1451
 ana_sgl.C:1452
 ana_sgl.C:1453
 ana_sgl.C:1454
 ana_sgl.C:1455
 ana_sgl.C:1456
 ana_sgl.C:1457
 ana_sgl.C:1458
 ana_sgl.C:1459
 ana_sgl.C:1460
 ana_sgl.C:1461
 ana_sgl.C:1462
 ana_sgl.C:1463
 ana_sgl.C:1464
 ana_sgl.C:1465
 ana_sgl.C:1466
 ana_sgl.C:1467
 ana_sgl.C:1468
 ana_sgl.C:1469
 ana_sgl.C:1470
 ana_sgl.C:1471
 ana_sgl.C:1472
 ana_sgl.C:1473
 ana_sgl.C:1474
 ana_sgl.C:1475
 ana_sgl.C:1476
 ana_sgl.C:1477
 ana_sgl.C:1478
 ana_sgl.C:1479
 ana_sgl.C:1480
 ana_sgl.C:1481
 ana_sgl.C:1482
 ana_sgl.C:1483
 ana_sgl.C:1484
 ana_sgl.C:1485
 ana_sgl.C:1486
 ana_sgl.C:1487
 ana_sgl.C:1488
 ana_sgl.C:1489
 ana_sgl.C:1490
 ana_sgl.C:1491
 ana_sgl.C:1492
 ana_sgl.C:1493
 ana_sgl.C:1494
 ana_sgl.C:1495
 ana_sgl.C:1496
 ana_sgl.C:1497
 ana_sgl.C:1498
 ana_sgl.C:1499