* Creates list of "findable" V0s, *
* calculates efficiency, resolutions etc. *
* *
+ * To get the list of the "findable" V0s, you should first get the list *
+ * of "findable" tracks, which can be done by running *
+ * TPC/AliTPCComparison.C and ITS/AliITSComparisonV2.C macros. *
+ * *
* Origin: I.Belikov, IReS, Strasbourg, Jouri.Belikov@cern.ch *
****************************************************************************/
#include <TH1F.h>
#include <TTree.h>
#include <TParticle.h>
+ #include <TPDGCode.h>
#include <TCanvas.h>
#include <TLine.h>
#include <TText.h>
#include "AliTrackReference.h"
#include "AliRunLoader.h"
#include "AliRun.h"
- #include "AliESD.h"
+ #include "AliESDEvent.h"
+ #include "AliESDv0.h"
#endif
Int_t GoodV0s(const Char_t *dir=".");
return 5;
}
}
- AliESD* event = new AliESD;
+ AliESDEvent* event = new AliESDEvent();
TTree* esdTree = (TTree*) ef->Get("esdTree");
if (!esdTree) {
::Error("AliV0Comparison.C", "no ESD tree found");
return 6;
}
- esdTree->SetBranchAddress("ESD", &event);
+ event->ReadFromTree(esdTree);
//******* Loop over events *********
for (i=0; i<nentr; i++) {
AliESDv0 *vertex=event->GetV0(i);
+ if (vertex->GetOnFlyStatus()) continue;
+
Int_t nidx=TMath::Abs(vertex->GetNindex());
Int_t pidx=TMath::Abs(vertex->GetPindex());
} //**** End of the loop over events
delete event;
+ delete esdTree;
ef->Close();
delete v0Tree;
if (nlab<0) continue;
if (plab<0) continue;
Int_t i;
- if (stack->Particle(plab)->GetPDG()->Charge() < 0.) {
- i=plab; plab=nlab; nlab=i;
- }
+ TParticle * part = stack->Particle(plab);
+ if (part) {
+ TParticlePDG * partPDG = part->GetPDG();
+ if (partPDG && partPDG->Charge() < 0.) {
+ i=plab; plab=nlab; nlab=i;
+ }
+ }
for (i=0; i<nk; i++) {
nref=(AliTrackReference*)itsRefs->UncheckedAt(i);