6     gROOT->LoadMacro(
"$VMCWORKDIR/gconfig/basiclibs.C");
 
   10     gSystem->Load(
"libRho");
 
   12     TCanvas *
c1=
new TCanvas(
"c1",
"c1",600,300);
 
   17     TFile* 
f = 
new TFile(fname.Data());
 
   18     TTree *
t=f->Get(
"pndsim") ;
 
   22     TClonesArray *fChrgCands=
new TClonesArray(
"TCandidate");
 
   23     TClonesArray *fNeutCands=
new TClonesArray(
"TCandidate");
 
   24     TClonesArray *
fMcCands=
new TClonesArray(
"TCandidate");
 
   26     t->SetBranchAddress(
"PndChargedCandidates",&fChrgCands);
 
   27     t->SetBranchAddress(
"PndNeutralCandidates",&fNeutCands);
 
   28     t->SetBranchAddress(
"PndMcTracks",&fMcCands);
 
   34     TH1F *pi0mass = 
new TH1F(
"pi0mass",
"pi0 cands",100,0.135-0.03,0.135+0.03);
 
   35     TH1F *ppmass = 
new TH1F(
"ppmass",
"pbarp cands",100,2.979-0.2,2.979+0.2);
 
   37     TH1F *nmult=
new TH1F(
"nmult",
"# neutrals",15,0,15);
 
   39     TH1F *pdiff=
new TH1F(
"pdiff",
"momentum difference",100,-0.05,0.05);
 
   41     pi0mass->SetMinimum(0);
 
   42     ppmass->SetMinimum(0);
 
   44     if (
num==0) 
num= t->GetEntriesFast();
 
   45     cout <<
"\n####### Processing "<<
num <<
" events...\n"<<endl;
 
   51     TCandList allCands,neutralCands,chargedCands;
 
   53     TCandList pi0pi0Cands,pi0Cands,ppCands;
 
   57     TPidChargedSelector *chargedSel = 
new TPidChargedSelector;
 
   58     TPidNeutralSelector *neutralSel = 
new TPidNeutralSelector;
 
   62     TPidMassSelector *pi0MSel       = 
new TPidMassSelector(
"pi0Selector" , 0.135  , 0.005);
 
   68     for (Int_t j=0; j< 
num;j++)
 
   70        if ((j%100)==0) cout <<
"evt "<<j<<endl;
 
   73         TFactory::Instance()->Reset();
 
   76         chargedCands.Cleanup();
 
   77         neutralCands.Cleanup();
 
   82         for (i1=0; i1<fChrgCands->GetEntriesFast(); i1++){
 
   83             tc = (TCandidate *)fChrgCands->At(i1);
 
   84             chargedCands.Add(*tc);
 
   87         for (i1=0; i1<fNeutCands->GetEntriesFast(); i1++){
 
   88             tc = (TCandidate *)fNeutCands->At(i1);
 
   89             neutralCands.Add(*tc);
 
   92         for (i1=0; i1<fMcCands->GetEntriesFast(); i1++){
 
   93             tc = (TCandidate *)fMcCands->At(i1);
 
  104         pi0Cands.Combine(neutralCands,neutralCands);
 
  106         TCandListIterator iterPi0(pi0Cands);
 
  107         while (tc=iterPi0.Next()) pi0mass->Fill(tc->M());
 
  110         pi0pi0Cands.Combine(pi0Cands,pi0Cands);
 
  112         ppCands.Combine(pi0pi0Cands,pi0Cands);
 
  114         TCandListIterator iterPp(ppCands);
 
  116         while (tc=iterPp.Next())
 
  118             ppmass->Fill(tc->M());
 
  134     printf(
"RealTime=%f seconds, CpuTime=%f seconds\n",rtime,ctime);
 
printf("RealTime=%f seconds, CpuTime=%f seconds\n", rtime, ctime)
int ana_etac_3pi0(TString fname="etac_3pi0.root", int num=0)