3 // Macro for checking mother-daughter particles relationship in stack.
4 // By A. Morsch, 24/10/2013
6 void testMD(Int_t evNumber1 = 0, Int_t evNumber2 = 0)
8 // Connect the Root Galice file containing Geometry, Kine and Hits
10 AliRunLoader* rl = AliRunLoader::Open("galice.root");
12 TDatabasePDG* DataBase = new TDatabasePDG();
19 for (Int_t nev = evNumber1; nev <= evNumber2; nev++) {
21 AliStack* stack = rl->Stack();
22 Int_t npart = stack->GetNtrack();
23 if (nev < evNumber1) continue;
24 printf("Event %5d \n", nev);
29 for (Int_t part = 0; part < npart; part++) {
30 TParticle *particle = stack->Particle(part);
31 Int_t pdg = particle->GetPdgCode();
32 Int_t child1 = particle->GetFirstDaughter();
33 Int_t child2 = particle->GetLastDaughter();
34 if (child1 == -1 || part < 8) continue;
36 for (Int_t i = child1; i<= child2; i++)
38 TParticle *daughter = stack->Particle(i);
39 Int_t mo = daughter->GetFirstMother();
40 Int_t dodg = daughter->GetPdgCode();
42 printf("Particle with index %5d (pdg %5d) has daughters from index %5d to %5d, however, daughter %5d (pdg %5d) points back to %5d \n",
43 part, pdg, child1, child2, i, dodg, mo);