void runLocal(TString dataset, TString treename = "", Long64_t nentries=TChain::kBigNumber, Long64_t firstentry = 0) { ProofAna* ana = new ProofAna(); //Need to provide a TList for local running TList* list = new TList(); ana->SetInputList(list); // Load dataset manager stuff, uses same local datasets as PROOF-Lite by design TString defaultdir(gSystem->HomeDirectory()); defaultdir.Append("/.proof"); TString dsetdir(gEnv->GetValue("ProofLite.Sandbox",defaultdir.Data())); dsetdir.Append("/datasets"); dsetdir.Prepend("dir:"); TDataSetManagerFile mgr(dsetdir); TString dsetfile(dataset); dsetfile.Append(".txt"); dsetfile.Prepend("../filelists/"); //Register dataset, if non-existent if(!mgr.ExistsDataSet(dataset)) { TFileCollection* dset = new TFileCollection(dataset,"",dsetfile); mgr.RegisterDataSet(dataset,dset,"V"); //This seems to return true regardless of success or failure at the moment if(treename.CompareTo("")!=0) { cout << "Setting default tree to " << treename << " (local and lite running)" << endl; TProof* lite = TProof::Open("lite://"); if(lite->SetDataSetTreeName(dataset,treename)) { cout << "Failure to set default tree to " << treename << endl; return; } delete lite; } } mgr.ShowDataSets(); // And yes, all this dataset garbage was to get the default tree name TFileCollection* dset = mgr.GetDataSet(dataset); TString defaultTree = dset->GetDefaultTreeName(); // Make TChain from TFileCollection...doesn't seem like there is a more direct way if(defaultTree.First("/")==0) defaultTree.Remove(0,1); TChain* T = new TChain(defaultTree); TList* filelist = (TList*)dset->GetList(); TIter next(filelist); TFileInfo* fileinfo = 0; while ((fileinfo = (TFileInfo*)next())) T->AddFile(fileinfo->GetCurrentUrl()->GetUrl()); // Process TChain T->Process(ana,"", nentries, firstentry); }
/* central function for intra related functions*/ void intra_proc(MomVop *resvop, MomVop *invop,MomImage *aux, int reschanels,int inchanels, int connect,int scanmode, TChan ahold,TChan yhold,TChan uhold,TChan vhold,TChan axhold, TCoor winx,TCoor winy,TCoor resposx,TCoor resposy, TCoor inposx,TCoor inposy,TSizeConv inconv, void (*operation)(TPixel *,TPixel *, TCoor, TCoor)) { TCoor lineend; void (*pre)(TNhood *); void (*right)(TNhood *); void (*down)(TNhood *); void (*left)(TNhood *); void (*up)(TNhood *); void (*defaultdir)(TNhood *); TNhood regs; #ifdef EVAL eval_BeginMeasureDur(); eval_BeginAddrMode(SECTION_INTRA); eval_BeginRecMode(invop,resvop,inchanels,reschanels); eval_PictSize(invop,NULL,resvop,aux); eval_BeginScan(scanmode); eval_ScanWindow(winx,winy,inposx,inposy,0,0,resposx,resposy); eval_BeginConSC(connect); eval_BeginOpr((void*)operation); eval_StartAddr(); #endif #ifdef PPTRACE PPTrace_StartOfTool(); PPTrace_LogType((void*)operation,reschanels,connect); PPTrace_LogIntraReg(1); #endif ConstructNhood (®s,resvop,invop,aux,0,0, reschanels,inchanels,connect,scanmode, ahold,yhold,uhold,vhold,axhold, winx,winy,resposx,resposy,inposx,inposy,inconv); if (regs.error) { DestructNhood(®s); return; } /* select shift functions*/ if ((regs._n_irepeatx | regs._n_irepeaty | regs._n_istepx | regs._n_istepy) > 1) { pre=PreloadSub; right=ShiftRightSubLineLoad; down=ShiftDownSubLineLoad; left=ShiftLeftSubLineLoad; up=ShiftUpSubLineLoad; } else { pre=Preload; right=ShiftRightLineLoad; down=ShiftDownLineLoad; left=ShiftLeftLineLoad; up=ShiftUpLineLoad; } /* loops for imagescan*/ switch (scanmode) { case SCAN_HO: regs._n_cnty=resposy; regs._n_icnty=inposy; regs._n_irepcnty=regs._n_stirepcnty; regs._n_cntx=resposx; regs._n_icntx=inposx; regs._n_irepcntx=regs._n_stirepcntx; /*must be set before preload*/ regs._n_ia.u=regs.stia.u; regs._n_iy.u=regs.stiy.u; regs._n_iu.u=regs.stiu.u; regs._n_iv.u=regs.stiv.u; regs._n_ax.u=regs.stax.u; regs._n_ra.u=regs.stra.u; regs._n_ry.u=regs.stry.u; regs._n_ru.u=regs.stru.u; regs._n_rv.u=regs.strv.u; /*preload linestart*/ #ifdef EVAL eval_LogPreload(); #endif pre(®s); lineend= regs._n_maxx; while (1) { #ifdef EVAL eval_LogOpr(regs._n_cntx,regs._n_cnty); #endif /* execute embedded function*/ #ifdef PPTRACE PPTrace_LogIntraIn(regs.matrix, regs._n_cntx,regs._n_cnty); #endif operation(®s.result,regs.matrix,regs._n_cntx,regs._n_cnty); #ifdef PPTRACE PPTrace_LogIntraOut(regs.result); #endif if (regs._n_raes) regs._n_raset(regs._n_ra,regs.result.a.i); if (regs._n_ryes) regs._n_ryset(regs._n_ry,regs.result.y.i); if (regs._n_rues) regs._n_ruset(regs._n_ru,regs.result.u.i); if (regs._n_rves) regs._n_rvset(regs._n_rv,regs.result.v.i); if (regs._n_axs) regs._n_axset(regs._n_ax,regs.result.ax.i); if (regs._n_cntx==lineend) { /*check for frame end*/ if (regs._n_cnty == regs._n_maxy) break; /* go to next result line*/ regs._n_cnty++; regs.stra.u+=regs._n_rals; regs.stry.u+=regs._n_ryls; regs.stru.u+=regs._n_ruls; regs.strv.u+=regs._n_rvls; regs.stax.u+=regs._n_axls; /* go to input line start*/ regs._n_irepcnty++; if (regs._n_irepcnty==regs._n_irepeaty) { regs._n_irepcnty=0; regs._n_icnty+=regs._n_istepy; regs.stia.u+=regs._n_ials; regs.stiy.u+=regs._n_iyls; regs.stiu.u+=regs._n_iuls; regs.stiv.u+=regs._n_ivls; } /* reset x counters and set pointer to linestart*/ regs._n_cntx=resposx; regs._n_icntx=inposx; regs._n_irepcntx=regs._n_stirepcntx; /*must be set before preload*/ regs._n_ia.u=regs.stia.u; regs._n_iy.u=regs.stiy.u; regs._n_iu.u=regs.stiu.u; regs._n_iv.u=regs.stiv.u; regs._n_ax.u=regs.stax.u; regs._n_ra.u=regs.stra.u; regs._n_ry.u=regs.stry.u; regs._n_ru.u=regs.stru.u; regs._n_rv.u=regs.strv.u; /*preload linestart*/ #ifdef EVAL eval_LogPreload(); #endif pre(®s); } else { right(®s); } } break; case SCAN_VE: regs._n_cntx=resposx; regs._n_icntx=inposx; regs._n_irepcntx=regs._n_stirepcntx; regs._n_cnty=resposy; regs._n_icnty=inposy; regs._n_irepcnty=regs._n_stirepcnty; /*must be set before preload*/ regs._n_ia.u=regs.stia.u; regs._n_iy.u=regs.stiy.u; regs._n_iu.u=regs.stiu.u; regs._n_iv.u=regs.stiv.u; regs._n_ax.u=regs.stax.u; regs._n_ra.u=regs.stra.u; regs._n_ry.u=regs.stry.u; regs._n_ru.u=regs.stru.u; regs._n_rv.u=regs.strv.u; /*preload linestart*/ #ifdef EVAL eval_LogPreload(); #endif pre(®s); lineend= regs._n_maxy; while (1) { #ifdef EVAL eval_LogOpr(regs._n_cntx,regs._n_cnty); #endif /* execute embedded function*/ #ifdef PPTRACE PPTrace_LogIntraIn(regs.matrix, regs._n_cntx,regs._n_cnty); #endif operation(®s.result,regs.matrix,regs._n_cntx,regs._n_cnty); #ifdef PPTRACE PPTrace_LogIntraOut(regs.result); #endif if (regs._n_raes) regs._n_raset(regs._n_ra,regs.result.a.i); if (regs._n_ryes) regs._n_ryset(regs._n_ry,regs.result.y.i); if (regs._n_rues) regs._n_ruset(regs._n_ru,regs.result.u.i); if (regs._n_rves) regs._n_rvset(regs._n_rv,regs.result.v.i); if (regs._n_axs) regs._n_axset(regs._n_ax,regs.result.ax.i); if (regs._n_cnty==lineend) { /*check for frame end*/ if (regs._n_cntx == regs._n_maxx) break; /* go to next result line*/ regs._n_cntx++; regs.stra.u+=regs._n_ras; regs.stry.u+=regs._n_rys; regs.stru.u+=regs._n_rus; regs.strv.u+=regs._n_rvs; regs.stax.u+=regs._n_axs; /* go to input line start*/ regs._n_irepcntx++; if (regs._n_irepcntx==regs._n_irepeatx) { regs._n_irepcntx=0; regs._n_icntx+=regs._n_istepx; regs.stia.u+=regs._n_ias; regs.stiy.u+=regs._n_iys; regs.stiu.u+=regs._n_ius; regs.stiv.u+=regs._n_ivs; } /* reset x counters and set pointer to linestart*/ regs._n_cnty=resposy; regs._n_icnty=inposy; regs._n_irepcnty=regs._n_stirepcnty; /*must be set before preload*/ regs._n_ia.u=regs.stia.u; regs._n_iy.u=regs.stiy.u; regs._n_iu.u=regs.stiu.u; regs._n_iv.u=regs.stiv.u; regs._n_ax.u=regs.stax.u; regs._n_ra.u=regs.stra.u; regs._n_ry.u=regs.stry.u; regs._n_ru.u=regs.stru.u; regs._n_rv.u=regs.strv.u; /*preload linestart*/ #ifdef EVAL eval_LogPreload(); #endif pre(®s); } else { down(®s); } } break; case SCAN_HM: regs._n_cnty=resposy; regs._n_icnty=inposy; regs._n_irepcnty=regs._n_stirepcnty; regs._n_cntx=resposx; regs._n_icntx=inposx; regs._n_irepcntx=regs._n_stirepcntx; regs._n_ia.u=regs.stia.u; regs._n_iy.u=regs.stiy.u; regs._n_iu.u=regs.stiu.u; regs._n_iv.u=regs.stiv.u; regs._n_ax.u=regs.stax.u; regs._n_ra.u=regs.stra.u; regs._n_ry.u=regs.stry.u; regs._n_ru.u=regs.stru.u; regs._n_rv.u=regs.strv.u; /*preload linestart*/ #ifdef EVAL eval_LogPreload(); #endif pre(®s); defaultdir=right; lineend=(regs._n_maxx); while (1) { #ifdef EVAL eval_LogOpr(regs._n_cntx,regs._n_cnty); #endif /* execute embedded function*/ #ifdef PPTRACE PPTrace_LogIntraIn(regs.matrix, regs._n_cntx,regs._n_cnty); #endif operation(®s.result,regs.matrix,regs._n_cntx,regs._n_cnty); #ifdef PPTRACE PPTrace_LogIntraOut(regs.result); #endif if (regs._n_raes) regs._n_raset(regs._n_ra,regs.result.a.i); if (regs._n_ryes) regs._n_ryset(regs._n_ry,regs.result.y.i); if (regs._n_rues) regs._n_ruset(regs._n_ru,regs.result.u.i); if (regs._n_rves) regs._n_rvset(regs._n_rv,regs.result.v.i); if (regs._n_axs) regs._n_axset(regs._n_ax,regs.result.ax.i); if (regs._n_cntx==lineend) { if (defaultdir==right) { lineend=resposx; defaultdir=left; } else { lineend=regs._n_maxx; defaultdir=right; } /*check for frame end*/ if (regs._n_cnty == (regs._n_maxy)) break; /* for (i=1; i<regs._n_rsuby; i++) {*/ /* next row*/ /* shift down*/ /* down(®s,0); }*/ down(®s); } else { /* for (i=1; i<regs._n_rsubx; i++) {*/ /* shift left or right*/ /* defaultdir(®s,0); }*/ defaultdir(®s); } } break; case SCAN_VM: regs._n_cnty=resposy; regs._n_icnty=inposy; regs._n_irepcnty=regs._n_stirepcnty; regs._n_cntx=resposx; regs._n_icntx=inposx; regs._n_irepcntx=regs._n_stirepcntx; regs._n_ia.u=regs.stia.u; regs._n_iy.u=regs.stiy.u; regs._n_iu.u=regs.stiu.u; regs._n_iv.u=regs.stiv.u; regs._n_ax.u=regs.stax.u; regs._n_ra.u=regs.stra.u; regs._n_ry.u=regs.stry.u; regs._n_ru.u=regs.stru.u; regs._n_rv.u=regs.strv.u; /*preload linestart*/ #ifdef EVAL eval_LogPreload(); #endif pre(®s); defaultdir=down; lineend=regs._n_maxy; while (1) { #ifdef EVAL eval_LogOpr(regs._n_cntx,regs._n_cnty); #endif /* execute embedded function*/ #ifdef PPTRACE PPTrace_LogIntraIn(regs.matrix, regs._n_cntx,regs._n_cnty); #endif operation(®s.result,regs.matrix,regs._n_cntx,regs._n_cnty); #ifdef PPTRACE PPTrace_LogIntraOut(regs.result); #endif if (regs._n_raes) regs._n_raset(regs._n_ra,regs.result.a.i); if (regs._n_ryes) regs._n_ryset(regs._n_ry,regs.result.y.i); if (regs._n_rues) regs._n_ruset(regs._n_ru,regs.result.u.i); if (regs._n_rves) regs._n_rvset(regs._n_rv,regs.result.v.i); if (regs._n_axs) regs._n_axset(regs._n_ax,regs.result.ax.i); if (regs._n_cnty==lineend) { if (defaultdir==up) { lineend=regs._n_maxy; defaultdir=down; } else { lineend=resposy; defaultdir=up; } if (regs._n_cntx == regs._n_maxx) break; /* for (i=1; i<regs._n_rsuby; i++) {*/ /* next culomn*/ /* shift right*/ /* right(®s,0); }*/ right(®s); } else { /* for (i=1; i<regs._n_rsubx; i++) {*/ /* shift up or down*/ /* defaultdir(®s,0); }*/ defaultdir(®s); } } break; case SCAN_LOOP: default : addlib_stop_here("Warning : scanmode not implemented\n",0,0); DestructNhood(®s); return; } DestructNhood(®s); #ifdef PPTRACE PPTrace_LogIntraReg(1); #endif #ifdef EVAL eval_EndMeasureDur(); eval_EndAddr(); eval_EndOpr(); eval_EndConSC(); eval_EndScan(); eval_EndRecMode(); eval_EndAddrMode(); #endif return; }