Hi Alberto, I am not completely clear on your intent. However the lines: tails->Reset(); sel_entries1 = tails->Draw("fGX:fGY:fGZ", sel_tail, "goff"); seem very suspicious, since the 'tails->Reset();' completely empty the TTree (I suppose) tails. Thus the next call to Draw will of course return no result. Try removing this Reset call. Cheers, Philippe. -----Original Message----- From: owner-roottalk@pcroot.cern.ch [mailto:owner-roottalk@pcroot.cern.ch]On Behalf Of Alberto Pulvirenti Sent: Wednesday, October 24, 2001 5:03 AM To: roottalk Subject: [ROOT] Always with TTree Another problem: when I make a selection by means of a TEventList in a tree, I encountered a strange problem: when operating on a clone if this tree and performing a Draw() method, I got NOTHING... here is the code I used, to see if there are some mistakes: Int_t h, t, sel_entries, sel_entries1; Text_t sel_head[100], sel_tail[100]; sprintf (sel_head, "fPhi >= %f && fPhi <= %f", phimin, phimax); TEventList el("el", "list from fPoints"); sel_entries = fPoints->Draw(">>el", sel_head); Int_t *entry = el.GetList(); cout << sel_entries << " points in the selected phi interval" << endl; for (h = 0; h < sel_entries; h++) { // if (!((h*100)%10)) cout << "\rProcessing :" << h * 100 / sel_entries << "%" << flush; fPoints->GetEntry(entry[h]); sprintf (sel_tail, "fPhi >= %f && fPhi <= %f && fLayer == %d && fTheta <= %f && fTheta >= %f", phimin, phimax, head->fLayer+1, head->fTheta - fTheta, head->fTheta + fTheta); tails->Reset(); sel_entries1 = tails->Draw("fGX:fGY:fGZ", sel_tail, "goff"); cout << "\r" << sel_entries1 << " points that could be related with entry " << entry[h] << flush; Double_t *gotX = tails->GetV1(); Double_t *gotY = tails->GetV2(); Double_t *gotZ = tails->GetV3(); for (t = 0; t < sel_entries1; t++) { // if (tail->fLayer - head->fLayer != 1) continue; // if (tail->DeltaTheta(head) >= fTheta) continue; unit = new AliITStreeNeuron(head->fGX, head->fGY, head->fGZ, gotX[t], gotY[t], gotZ[t], h, t); cout << unit->fCurv << endl; if (unit->fCurv > curvmax) continue; unit->fActivation = gRandom->Rndm() * (max - min) + min; fNeurons->Fill(); } } Here, the problem is that the sel_entries1 has value 0 (which I didn't expect).... Regards. Alberto
This archive was generated by hypermail 2b29 : Tue Jan 01 2002 - 17:51:04 MET