ROOT logo
// -*- C++ -*-
// $Id$

// creates histogram of generated rho0 kinematical data
// writes a text file "rho0.txt" which should be identical to ../startlight/TSTarlight/rho0.txt

void Kin2Txt() {
  AliRunLoader* rl = AliRunLoader::Open("galice.root");
  rl->LoadKinematics();
  rl->LoadHeader();

  TH1* hM  = new TH1D("hM",  "TreeK;M#(){#pi^{+}#pi^{-}} #(){GeV/#it{c}^{2}}", 100, 0., 2.);
  TH1* hPt = new TH1D("hPt", "TreeK;P_{T}#(){#pi^{+}#pi^{-}} #(){GeV/#it{c}}", 100, 0., 1.);
  TH1* hY  = new TH1D("hY",  "TreeK;Y#(){#pi^{+}#pi^{-}}",                     160,-8., 8.);
  std::ofstream ofs("rho0.txt");
  
  AliStack *stack = NULL;
  TParticle *part = NULL;
  TLorentzVector v[2], vSum;
  for (Int_t i=0, n(rl->GetNumberOfEvents()); i<n; ++i) {
    rl->GetEvent(i);
    stack = rl->Stack();

    Int_t nPrimary(0);
    for (Int_t j(0), m(stack->GetNtrack()); j<m; ++j) {
      part = stack->Particle(j);
      if (part->IsPrimary())
	part->Momentum(v[nPrimary++]);
    }
    if (nPrimary != 2) {
      Printf("Error: nPrimary=%d != 2", nPrimary);
      continue;
    }
    vSum = v[0] + v[1];
    hM->Fill(vSum.M());
    hPt->Fill(vSum.Perp());
    hY->Fill(vSum.Rapidity());
    ofs << std::fixed << std::setprecision(4)
	<< vSum.M() << " " << vSum.Perp() << " " << vSum.Rapidity() << " "
	<< v[0].Eta() << " " << v[0].Px() << " " << v[0].Py() << " " << v[0].Pz() << " "
	<< v[1].Eta() << " " << v[1].Px() << " " << v[1].Py() << " " << v[1].Pz()
	<< std::endl;
  }
  hM->Draw();
  c1->SaveAs("TreeK.pdf(");
  hPt->Draw();
  c1->SaveAs("TreeK.pdf");
  hY->Draw();
  c1->SaveAs("TreeK.pdf)");
}
 Kin2Txt.C:1
 Kin2Txt.C:2
 Kin2Txt.C:3
 Kin2Txt.C:4
 Kin2Txt.C:5
 Kin2Txt.C:6
 Kin2Txt.C:7
 Kin2Txt.C:8
 Kin2Txt.C:9
 Kin2Txt.C:10
 Kin2Txt.C:11
 Kin2Txt.C:12
 Kin2Txt.C:13
 Kin2Txt.C:14
 Kin2Txt.C:15
 Kin2Txt.C:16
 Kin2Txt.C:17
 Kin2Txt.C:18
 Kin2Txt.C:19
 Kin2Txt.C:20
 Kin2Txt.C:21
 Kin2Txt.C:22
 Kin2Txt.C:23
 Kin2Txt.C:24
 Kin2Txt.C:25
 Kin2Txt.C:26
 Kin2Txt.C:27
 Kin2Txt.C:28
 Kin2Txt.C:29
 Kin2Txt.C:30
 Kin2Txt.C:31
 Kin2Txt.C:32
 Kin2Txt.C:33
 Kin2Txt.C:34
 Kin2Txt.C:35
 Kin2Txt.C:36
 Kin2Txt.C:37
 Kin2Txt.C:38
 Kin2Txt.C:39
 Kin2Txt.C:40
 Kin2Txt.C:41
 Kin2Txt.C:42
 Kin2Txt.C:43
 Kin2Txt.C:44
 Kin2Txt.C:45
 Kin2Txt.C:46
 Kin2Txt.C:47
 Kin2Txt.C:48
 Kin2Txt.C:49
 Kin2Txt.C:50
 Kin2Txt.C:51