- p[0]=iparticle->Px();
- p[1]=iparticle->Py();
- p[2]=iparticle->Pz();
- origin[0]=origin0[0]+iparticle->Vx()/10;
- origin[1]=origin0[1]+iparticle->Vy()/10;
- origin[2]=origin0[2]+iparticle->Vz()/10;
- gAlice->SetTrack(fTrackIt,iparent,kf,
- p,origin,polar,
- 0,"Decay",nt,wgtch);
- gAlice->KeepTrack(nt);
+ pc[0]=iparticle->Px();
+ pc[1]=iparticle->Py();
+ pc[2]=iparticle->Pz();
+ och[0]=origin0[0]+iparticle->Vx()/10;
+ och[1]=origin0[1]+iparticle->Vy()/10;
+ och[2]=origin0[2]+iparticle->Vz()/10;
+ if (fCutOnChild) {
+ Float_t PtChild=TMath::Sqrt(pc[0]*pc[0]+pc[1]*pc[1]);
+ Float_t PChild=TMath::Sqrt(PtChild*PtChild+pc[2]*pc[2]);
+ Float_t ThetaChild=TMath::ATan2(PtChild,pc[2]);
+ Float_t PhiChild=TMath::ATan2(pc[1],pc[0])+TMath::Pi();
+ if ((PtChild > fPtMin && PtChild <fPtMax) &&
+ (PChild > fPMin && PChild <fPMax) &&
+ (ThetaChild>fThetaMin && ThetaChild<fThetaMax) &&
+ (PhiChild > fPhiMin && PhiChild <fPhiMax))
+ {
+ pch[ncsel][0]=pc[0];
+ pch[ncsel][1]=pc[1];
+ pch[ncsel][2]=pc[2];
+ kfch[ncsel]=kf;
+ ncsel++;
+ } else {
+ ncsel=-1;
+ break;
+ } // child kine cuts
+ } else {
+ pch[ncsel][0]=pc[0];
+ pch[ncsel][1]=pc[1];
+ pch[ncsel][2]=pc[2];
+ kfch[ncsel]=kf;
+ ncsel++;
+ } // if child selection