void make_files(int start) { Int_t x=start,y=start+1,z=start+2; Int_t xeven, yeven, zeven; TFile* f1 = new TFile(Form("data%d.root",start),"RECREATE"); TTree* data = new TTree("data","data"); data->Branch("x",&x); data->Branch("y",&y); data->Branch("z",&z); for(int i=0; i<5; ++i){ data->Fill(); x=z+1; y=x+1; z=y+1; } data->Write(); TFile* f2 = new TFile(Form("xeven%d.root",start),"RECREATE"); TTree* xetree = new TTree("cuts","cuts"); xetree->Branch("xeven",&xeven); TFile* f3 = new TFile(Form("yeven%d.root",start),"RECREATE"); TTree* yetree = new TTree("cuts","cuts"); yetree->Branch("yeven",&yeven); TFile* f4 = new TFile(Form("zeven%d.root",start),"RECREATE"); TTree* zetree = new TTree("cuts","cuts"); zetree->Branch("zeven",&zeven); for(int i=0; iGetEntries(); ++i){ data->GetEntry(i); xeven = (x%2==0); yeven = (y%2==0); zeven = (z%2==0); xetree->Fill(); yetree->Fill(); zetree->Fill(); } f2->cd(); xetree->Write(); f3->cd(); yetree->Write(); f4->cd(); zetree->Write(); delete f1; delete f2; delete f3; delete f4; } TChain* chainfriends() { make_files(1); make_files(6); make_files(11); make_files(15); TChain* cut1 = new TChain("xeven"); TChain* cut2 = new TChain("yeven"); TChain* cut3 = new TChain("zeven"); cut1->AddFriend(cut2); cut1->AddFriend(cut3); cut1->Add("xeven*.root/cuts"); cut2->Add("yeven*.root/cuts"); cut3->Add("zeven*.root/cuts"); cout<<"xeven: "<GetEntries("xeven") <<" yeven: "<GetEntries("yeven") <<" zeven: "<GetEntries("zeven") <GetEntries("xeven") <<" yeven: "<GetEntries("yeven") <<" zeven: "<GetEntries("zeven") <