Class Reference for E1039 Core & Analysis Software
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
ana.C
Go to the documentation of this file.
1 using namespace std;
2 void ana() {
3  TFile *f = TFile::Open("DSTReader.root");
4  TTree *T = (TTree*) f->Get("T");
5 
6  TH1D *h1_mass = new TH1D("h1_mass","Di-muon inv. mass; m_{#mu^{+}#mu^{-}} [GeV]; Events/100MeV",100, 0, 10);
7 
8  int n_PHG4Particle;
9  TClonesArray *particles;
10 
11  T->SetBranchAddress("n_PHG4Particle", &n_PHG4Particle);
12  T->SetBranchAddress("PHG4Particle", &particles);
13 
14  for(int ientry=0; ientry<T->GetEntries(); ++ientry) {
15  T->GetEntry(ientry);
16  //cout<< ientry << ": " << n_PHG4Particle << endl;
17  //particles->Print();
18  int mup_idx = -999;
19  int mum_idx = -999;
20  for(int ipar=0; ipar<n_PHG4Particle; ++ipar) {
21  PHG4Particle* particle = (PHG4Particle*) particles->At(ipar);
22  if(particle->get_pid()==13) mum_idx = ipar;
23  if(particle->get_pid()==-13) mup_idx = ipar;
24  //cout
25  // << particle->get_track_id() << ": "
26  // << particle->get_parent_id() << ": "
27  // << particle->get_name() << ": "
28  // << particle->get_pid()<< endl;
29  }
30 
31  if(mup_idx > 0 && mum_idx > 0) {
32  TLorentzVector mup;
33  PHG4Particle* particle = (PHG4Particle*) particles->At(mup_idx);
34  mup.SetPxPyPzE(
35  particle->get_px(),
36  particle->get_py(),
37  particle->get_pz(),
38  particle->get_e()
39  );
40  TLorentzVector mum;
41  particle = (PHG4Particle*) particles->At(mum_idx);
42  mum.SetPxPyPzE(
43  particle->get_px(),
44  particle->get_py(),
45  particle->get_pz(),
46  particle->get_e()
47  );
48  TLorentzVector mass = mup + mum;
49  h1_mass->Fill(mass.Mag());
50  }
51  }
52 
53  TCanvas *c1 = new TCanvas("c1","c1");
54  c1->SetLogy();
55 
56  h1_mass->SetLineColor(kBlack);
57  h1_mass->SetMarkerStyle(20);
58  h1_mass->Draw("e");
59 }
virtual double get_py() const
Definition: PHG4Particle.h:17
virtual int get_pid() const
Definition: PHG4Particle.h:14
virtual double get_pz() const
Definition: PHG4Particle.h:18
void ana()
Definition: ana.C:291
virtual double get_e() const
Definition: PHG4Particle.h:19
virtual double get_px() const
Definition: PHG4Particle.h:16
TCanvas * c1
Definition: Fun4SimTree.C:5