SplitData(const Char_t *dataset, const Char_t *splitname, Double_t splitfraction,const Char_t *splitfile, TProof *fProof) { void *pdir ; TString splitfile, splitname_sub1, splitname_sub2 ; TString packagepath = "SelSplitData.C+" ; fProof -> ClearInput() ; TNamed *nmfile = new TNamed("RUN_TempFileName",splitfile) ; fProof -> AddInput(nmfile) ; TNamed *nmsplit = new TNamed("RUN_SplitName",splitname) ; fProof -> AddInput(nmsplit) ; TParameter *splitfrac = new TParameter ("RUN_SplitFrac",splitfraction) ; fProof -> AddInput(splitfrac) ; TNamed *splittitle = new TNamed("RUN_SplitTitle", dataset) ; fProof -> AddInput(splittitle) ; Int_t proof_status ; // proof_status = fProof -> Process(dataset,packagepath.Data(),processOptions.Data()) ; proof_status = fProof -> Process(dataset,packagepath.Data()) ; // fEntryList -> SetDirectory(0) ; return proof_status ; } Int_t MSimManagerProof :: GetSplitDataTree( const Char_t *split_subset,const Char_t *splitfile, const Char_t* variables, const Char_t *outfilename, const Char_t *outtreename,const Char_t *friend_dataset , Bool_t kCreateDataSet, TProof *fProof ) { TDirectory *savedir ; TString dataset_ts ; TString processOptions ; if(kCreateDataSet) { processOptions = "ds=" ; processOptions += outfilename ; processOptions += "|V" ; } else { processOptions = "of=" ; processOptions += outfilename ; if(!processOptions.EndsWith(".root")) processOptions += ".root" ; // processOptions += ";stf" ; processOptions.Insert(3,TString::Format("root://%s:1093/%s/", TUrl(gSystem->HostName()).GetHostFQDN(),gSystem -> WorkingDirectory()) ); } TString fLocalOutput = TString :: Format("%s/%s",gSystem -> WorkingDirectory(),outfilename) ; gSystem -> Unlink(fLocalOutput.Data()) ; TString elistname ; TEntryList *elist ; if(gSystem -> AccessPathName(splitfile,kReadPermission)){ Error("GetDataTree","Could not open the split entrylist file %s\n",splitfile) ; return -1 ; } else { TFile fList(splitfile) ; elist = dynamic_cast (fList.Get(split_subset)) ; if(!elist) { Error("GetDataTree","Could not find the split subset entrylist for %s\n",split_subset) ; return -1 ; } elist -> SetDirectory(0) ; dataset_ts = elist -> GetTitle() ; Info("GetSplitDataTree","Dataset : %s \n",dataset_ts.Data()) ; // fList -> Close() ; } fProof -> ClearInput() ; elist -> SetDirectory(gDirectory) ; TNamed *nm = new TNamed("GETDATA_OUTOPT",processOptions.Data()) ; fProof -> AddInput(nm) ; TNamed *dataleaves = new TNamed("DATALEAVES",variables) ; fProof -> AddInput(dataleaves) ; TNamed *outTreeName = new TNamed("TREENAME",outtreename) ; fProof -> AddInput(outTreeName) ; TString packagepath = "SelGetSplitData.C+" Int_t status = fProof -> Process(dataset_ts.Data(),packagepath.Data(),"",-1,0,elist) ; return status ; }