#if !defined( __CINT__) || defined(__MAKECINT__)
#include <Riostream.h>
+ #include <TROOT.h>
#include <TTree.h>
#include <TFile.h>
#include <TH1F.h>
#include <TCanvas.h>
- #include "AliESD.h"
-
+ #include "AliESDEvent.h"
+ #include "AliESDv0.h"
#endif
+extern TROOT *gROOT;
+
Int_t AliESDv0Analysis(const Char_t *dir=".") {
TH1F *hm=(TH1F*)gROOT->FindObject("hm");
if (!hm) {
if (!ef||!ef->IsOpen()) {cerr<<"Can't AliESDs.root !\n"; return 1;}
cerr<<"\n****** "<<fname<<" ******\n";
- AliESD* event = new AliESD;
+ AliESDEvent* event = new AliESDEvent();
TTree* tree = (TTree*) ef->Get("esdTree");
if (!tree) {cerr<<"no ESD tree found\n"; return 1;};
- tree->SetBranchAddress("ESD", &event);
+ event->ReadFromTree(tree);
Int_t rc=0,n=0;
//****** Tentative particle type "concentrations"
Double_t c[5]={0.0, 0.0, 1, 0, 1};
- AliPID::SetPriors(c);
+ AliPID pid;
+ pid.SetPriors(c);
//******* The loop over events
while (tree->GetEvent(n)) {
while (nv0--) {
AliESDv0 *v0=event->GetV0(nv0);
+ if (v0->GetOnFlyStatus()) continue;
Int_t protonIdx=v0->GetPindex();
Int_t pionIdx =v0->GetNindex();
// Check if the "proton track" is a proton
if ((protonTrk->GetStatus()&AliESDtrack::kESDpid)!=0) {
Double_t r[10]; protonTrk->GetESDpid(r);
- AliPID pid(r);
+ pid.SetProbabilities(r);
Double_t pp=pid.GetProbability(AliPID::kProton);
if (pp < pid.GetProbability(AliPID::kElectron)) continue;
if (pp < pid.GetProbability(AliPID::kMuon)) continue;
//Check if the "pion track" is a pion
if ((pionTrk->GetStatus()&AliESDtrack::kESDpid)!=0) {
Double_t r[10]; pionTrk->GetESDpid(r);
- AliPID pid(r);
+ pid.SetProbabilities(r);
Double_t ppi=pid.GetProbability(AliPID::kPion);
if (ppi < pid.GetProbability(AliPID::kElectron)) continue;
if (ppi < pid.GetProbability(AliPID::kMuon)) continue;
}
delete event;
+ delete tree;
ef->Close();
TCanvas *c1=(TCanvas*)gROOT->FindObject("c1");