void ct() { TFile *oldfile = new TFile("/home/michelle/Desktop/corsika-6900/run/DAT000265.root"); TTree *oldtree = (TTree*)oldfile->Get("sim"); oldtree->SetBranchStatus("*",0); oldtree->SetBranchStatus("particle..Px",1); oldtree->SetBranchStatus("particle..Py",1); oldtree->SetBranchStatus("particle..Pz",1); oldtree->SetBranchStatus("shower.nMuons",1); oldtree->SetBranchStatus("shower.Theta",1); oldtree->SetBranchStatus("shower.Phi",1); { Float_t px2,py2,pz2,p2,p,E; Float_t phi,theta,zen,azi,varzen,varazi,priphi,pritheta; Float_t varzenm,varazim,varp,vart; oldtree->Branch("px2",&px2,"px2/F"); oldtree->Branch("py2",&py2,"px2/F"); oldtree->Branch("pz2",&pz2,"px2/F"); oldtree->Branch("p2",&p2,"p2/F"); oldtree->Branch("p",&p,"p/F"); oldtree->Branch("E",&E,"E/F"); oldtree->Branch("phi",&phi,"phi/F"); oldtree->Branch("theta",&theta,"theta/F"); oldtree->Branch("vart",&vart,"vart/F"); oldtree->Branch("varp",&varp,"varp/F"); oldtree->Branch("zen",&zen,"zen/F"); oldtree->Branch("azi",&azi,"azi/F"); oldtree->Branch("pritheta",&pritheta,"pritheta/F"); oldtree->Branch("priphi",&priphi,"priphi/F"); oldtree->Branch("varzen",&varzen,"varzen/F"); oldtree->Branch("varazi",&varazi,"varazi/F"); oldtree->Branch("varzenm",&varzenm,"varzenm/F"); oldtree->Branch("varazim",&varazim,"varazim/F"); oldtree->SetAlias("px2","particle..Px*particle..Px"); oldtree->SetAlias("py2","particle..Py*particle..Py"); oldtree->SetAlias("pz2","particle..Pz*particle..Pz"); oldtree->SetAlias("p2","px2+py2+pz2"); oldtree->SetAlias("p","sqrt(px2+py2+pz2)"); oldtree->SetAlias("E","sqrt(p2+0.011163691)"); oldtree->SetAlias("phi","atan(particle..Py/particle..Px)"); oldtree->SetAlias("theta","acos(particle..Pz/p)"); oldtree->SetAlias("vart","theta-0.5236"); oldtree->SetAlias("varp","phi-0.5236"); oldtree->SetAlias("vartm","abs(theta-0.5236)"); oldtree->SetAlias("varpm","abs(phi-0.5236)"); oldtree->SetAlias("zen","(theta*180)/3.1415927"); oldtree->SetAlias("azi","(phi*180)/3.1415927"); oldtree->SetAlias("varzen","(vart*180)/3.1415927"); oldtree->SetAlias("varzenm","abs((vart*180)/3.1415927)"); oldtree->SetAlias("varazi","(varp*180)/3.1415927"); oldtree->SetAlias("priphi","(shower.Phi*180)/3.1415927"); oldtree->SetAlias("pritheta","(shower.Theta*180)/3.1415927"); } //Create a new file + a clone of old tree in new file TFile *newfile = new TFile("small.root","recreate"); TTree *newtree = oldtree->CloneTree(); newtree->Print(); newfile->Write(); delete oldfile; delete newfile; }