void pythia_next_event() { gTrackList->DestroyElements(); TPythia6& P = * g_pythia; P.GenerateEvent(); int nh = P.GetMSTU(72); // printf("N = %d, Nhard = %d :: NumSec = %d, separators (%d,%d,%d,%d)\n", // P.GetN(), nh, P.GetMSTU(70), P.GetMSTU(71), P.GetMSTU(72), P.GetMSTU(73), P.GetMSTU(74)); // 2->2 hard postfrag final TEveTrackPropagator *trkProp = gTrackList->GetPropagator(); TClonesArray &MC = * (TClonesArray*) P.GetListOfParticles(); for (Int_t i = 0; i < 7; ++i) { TMCParticle& p = * MC[nh+i]; TParticle pb(p.GetKF(), p.GetKS(), 0, 0, p.GetFirstChild()-nh-1, p.GetLastChild()-nh-1, p.GetPx(), p.GetPy(), p.GetPz(), p.GetEnergy(), p.GetVx(), p.GetVy(), p.GetVz(), p.GetTime()); TEveTrack* track = new TEveTrack(&pb, i, trkProp); track->SetName(Form("%s [%d]", pb.GetName(), i)); track->SetStdTitle(); track->SetAttLineAttMarker(gTrackList); if (i == 0) track->SetLineColor(kColors[0]); else if (i <= 2) track->SetLineColor(kColors[1]); gTrackList->AddElement(track); /* printf("%d - %d %d %d %d %d %d\n", i, p.GetKF(), p.GetKS(), 0, 0, p.GetFirstChild()-nh-1, p.GetLastChild()-nh-1); printf("%d - %f %f %f %f\n", i, p.GetPx(), p.GetPy(), p.GetPz(), p.GetEnergy(), printf("%d - %f %f %f %f\n", i, p.GetVx(), p.GetVy(), p.GetVz(), p.GetTime()); */ } gTrackList->MakeTracks(); TEveElement* top = gEve->GetCurrentEvent(); gMultiView->DestroyEventRPhi(); gMultiView->ImportEventRPhi(top); gMultiView->DestroyEventRhoZ(); gMultiView->ImportEventRhoZ(top); gEve->Redraw3D(); }
//______________________________________________________________________________ void alice_esd_read() { // Read tracks and associated clusters from current event. AliESDRun *esdrun = (AliESDRun*) esd->fESDObjects->FindObject("AliESDRun"); TClonesArray *tracks = (TClonesArray*) esd->fESDObjects->FindObject("Tracks"); // This needs further investigation. Clusters not shown. // AliESDfriend *frnd = (AliESDfriend*) esd->fESDObjects->FindObject("AliESDfriend"); // printf("Friend %p, n_tracks:%d\n", frnd, frnd->fTracks.GetEntries()); if (track_list == 0) { track_list = new TEveTrackList("ESD Tracks"); track_list->SetMainColor(6); //track_list->SetLineWidth(2); track_list->SetMarkerColor(kYellow); track_list->SetMarkerStyle(4); track_list->SetMarkerSize(0.5); gEve->AddElement(track_list); } TEveTrackPropagator* trkProp = track_list->GetPropagator(); trkProp->SetMagField( 0.1 * esdrun->fMagneticField ); // kGaus to Tesla gProgress->Reset(); gProgress->SetMax(tracks->GetEntriesFast()); for (Int_t n=0; n<tracks->GetEntriesFast(); ++n) { AliESDtrack* at = (AliESDtrack*) tracks->At(n); // If ITS refit failed, take track parameters at inner TPC radius. AliExternalTrackParam* tp = at; if (! trackIsOn(at, kITSrefit)) { tp = at->fIp; } TEveTrack* track = esd_make_track(trkProp, n, at, tp); track->SetAttLineAttMarker(track_list); track_list->AddElement(track); // This needs further investigation. Clusters not shown. // if (frnd) // { // AliESDfriendTrack* ft = (AliESDfriendTrack*) frnd->fTracks->At(n); // printf("%d friend = %p\n", ft); // } gProgress->Increment(1); } track_list->MakeTracks(); }