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)