Thanks Rene,
but it still doesn't work.
I am still having the same error message:
*** Break *** segmentation violation
Root > Function Filter() busy flag cleared
Any suggestions?
Thanks a lot,
Regards
Antonio
On Sat, 23 Nov 2002, Rene Brun wrote:
> Hi Antonio,
>
> TTree::CloneTree is currently not able to copy the branch addresses
> correctly in case the source tree is initialized in MakeClass mode.
> I think that the following lines should fix the problem.
> Let me know
>
> After the line
> TTree *newtree = (TTree*)fChain->GetTree()->CloneTree(0);
> add
> newtree->SetMakeClass(1);
> fChain->GetTree()->CopyAddresses(newtree);
>
> Rene Brun
>
> On Sat, 23 Nov 2002, Antonio SIDOTI wrote:
>
> > Dear Rooters,
> > I am following the suggestions described in
> > http://root.cern.ch/root/roottalk/roottalk02/0481.html to filter out a
> > chain.
> > I want to filter in Loop method that has been generated by MakeClass.
> >
> > void MyClass::Loop(){
> > bool pass = false;
> > fChain->SetBranchStatus("*",1); // enable all branches
> >
> > Int_t nentries = Int_t(fChain->GetEntries());
> > fChain->GetEntry(0);
> > TFile *newFile = new TFile("small.root","recreate");
> > TTree *newtree = (TTree*)fChain->GetTree()->CloneTree(0);
> > for (Int_t jentry=0; jentry<nentries;jentry++) {
> > Int_t ientry = LoadTree(jentry);
> > pass = false;
> > for(Int_t itk1=0; itk1< numTk; ++itk1){
> > for(Int_t itk2=itk1+1; itk2< numTk; ++itk2){
> > if(itk1==itk2) continue;
> > pass = Select(itk1,itk2);
> > }
> > }
> > if(pass){
> > cout << "Passed!\n";
> > newtree->Fill();
> > }
> > }
> > newFile->cd();
> > newtree->Write();
> > }
> >
> > My problem is that as soon as I try to fill the newtree I got a
> > Segmaentation violation:
> >
> > *** Break *** segmentation violation
> > Root > Function Loop() busy flag cleared
> >
> > What I am doing wrong?
> > Thanks a lot,
> > Antonio
> >
> > P.S. I am using 3.03/07
> >
> > -------------------------------------------------------------
> > sidoti antonio: PostDoc(AdR) - University Pisa and INFN
> > e-mail: antonio.sidoti@pi.infn.it
> > sidoti@fnal.gov
> > www: http://higgs.tn.infn.it/~sidoti/
> > Tel: +39 + 050 880 456
> > Fax: +39 + 050 880 317-318
> > -------------------------------------------------------------
> > "A program is a device used to convert data into error messages."
> >
>
--
-------------------------------------------------------------
sidoti antonio: PostDoc(AdR) - University Pisa and INFN
e-mail: antonio.sidoti@pi.infn.it
sidoti@fnal.gov
www: http://higgs.tn.infn.it/~sidoti/
Tel: +39 + 050 880 456
Fax: +39 + 050 880 317-318
-------------------------------------------------------------
"A program is a device used to convert data into error messages."
This archive was generated by hypermail 2b29 : Sat Jan 04 2003 - 23:51:20 MET