FairRoot/PandaRoot
ana_hc.C
Go to the documentation of this file.
1 int ana_hc(TString fname,int nevts=0)
2 {
3  TStopwatch timer;
4  timer.Start();
5 
6  gROOT->LoadMacro("$VMCWORKDIR/gconfig/basiclibs.C");basiclibs();
7  gSystem->Load("libRho");
8 
9  TCanvas *c1=new TCanvas("c1","c1",600,600);
10  c1->Divide(2,2);
11 
12  TH1F *mpi0=new TH1F("mpi0","m(pi0)",100,0.0,0.3);
13  TH1F *meta=new TH1F("meta","m(eta)",100,0.3,0.7);
14  TH1F *metac=new TH1F("metac","m(eta_c)",200,0,3.5);
15  TH1F *mhc=new TH1F("mhc","m(h_c)",200,0,3.8);
16 
17  mpi0->SetMinimum(0);
18  meta->SetMinimum(0);
19 
20  PndEventReader evr(fname);
21 
22  if (nevts==0) nevts=evr.GetEntries();
23  int i=0,j;
24 
25  TCandList neut,gam, pi0, eta, etac, hc;
26 
27  TPidMassSelector *etaMassSel=new TPidMassSelector("eta",0.554,0.03);
28  TPidMassSelector *pi0MassSel=new TPidMassSelector("pi0",0.135,0.03);
29  TPidEnergySelector *gamSel=new TPidEnergySelector("en",5,9.9);
30 
31  while (evr.GetEvent() && i++<nevts)
32  {
33  if (0==i%100) cout <<"evt "<<i<<endl;
34 
35  evr.FillList(neut,"Neutral");
36  gam.Cleanup();
37 
38  for (j=0;j<neut.GetLength();j++)
39  if (neut[j]->GetMicroCandidate()->GetEmcNumberOfCrystals()>=3 // this is full sim
40  || neut[j]->GetMicroCandidate()->GetEmcNumberOfCrystals()==0 ) //this is fast sim
41  gam.Add(neut[j]);
42 
43  pi0.Combine(gam,gam);
44  for (j=0;j<pi0.GetLength();++j) mpi0->Fill(pi0[j].M());
45  pi0.Select(pi0MassSel);
46 
47  eta.Combine(gam,gam);
48  for (j=0;j<eta.GetLength();++j) meta->Fill(eta[j].M());
49  eta.Select(etaMassSel);
50 
51  etac.Combine(eta, pi0, pi0);
52  for (j=0;j<etac.GetLength();++j) metac->Fill(etac[j].M());
53 
54  hc.Combine(etac,gam);
55  for (j=0;j<hc.GetLength();++j) mhc->Fill(hc[j].M());
56 
57  }
58 
59  c1->cd(1); mpi0->Draw();
60  c1->cd(2); meta->Draw();
61  c1->cd(3); metac->Draw();
62  c1->cd(4); mhc->Draw();
63  c1->cd();
64 
65  timer.Stop();
66  Double_t rtime = timer.RealTime();
67  Double_t ctime = timer.CpuTime();
68 
69  printf("RealTime=%f seconds, CpuTime=%f seconds\n",rtime,ctime);
70 
71  return 0;
72 }
printf("RealTime=%f seconds, CpuTime=%f seconds\n", rtime, ctime)
int ana_hc(TString fname, int nevts=0)
Definition: ana_hc.C:1
basiclibs()
Int_t i
Definition: run_full.C:25
Double_t
TStopwatch timer
Definition: hit_dirc.C:51
c1
Definition: plot_dirc.C:35
CandList gam
Double_t ctime
Definition: hit_dirc.C:114
TParticlePDG * eta
Double_t rtime
Definition: hit_dirc.C:113
static const double mpi0
Definition: mzparameters.h:16