% ----- Liste des groupes de Help ----- 
List of {\bf piapp} on-line Help groups: 
\begin{itemize} 
\item {\bf Commander }  (p. \pageref{Commander}) 
\item {\bf CxxExecutorCmd }  (p. \pageref{CxxExecutorCmd}) 
\item {\bf Expr. Arithmetic }  (p. \pageref{ExprZZArithmetic}) 
\item {\bf Expr. Plotting }  (p. \pageref{ExprZZPlotting}) 
\item {\bf External Modules }  (p. \pageref{ExternalZModules}) 
\item {\bf FFT }  (p. \pageref{FFT}) 
\item {\bf FileIO }  (p. \pageref{FileIO}) 
\item {\bf Fitting }  (p. \pageref{Fitting}) 
\item {\bf Func Plot }  (p. \pageref{FuncZPlot}) 
\item {\bf Graphic-Elts }  (p. \pageref{GraphicZElts}) 
\item {\bf GraphicExport }  (p. \pageref{GraphicExport}) 
\item {\bf Graphics }  (p. \pageref{Graphics}) 
\item {\bf Obj. Display }  (p. \pageref{ObjZZDisplay}) 
\item {\bf Object Management }  (p. \pageref{ObjectZManagement}) 
\item {\bf Objects }  (p. \pageref{Objects}) 
\item {\bf PIACmd }  (p. \pageref{PIACmd}) 
\item {\bf SkyMapCmd }  (p. \pageref{SkyMapCmd}) 
\item {\bf SophyaCmd }  (p. \pageref{SophyaCmd}) 
\item {\bf pawCmd }  (p. \pageref{pawCmd}) 
\end{itemize} 
\vspace*{10mm} 
% ----- Liste de toutes les commandes et help item ----- 
\vspace{5mm} 
\begin{center} 
 \rule{2cm}{1mm} List of {\bf piapp} Help items \rule{2cm}{1mm} \\ 
\vspace{3mm} 
\begin{tabular}{llllll}  
CExpEvaluator & p. \pageref{CExpEvaluator}  & Commander & p. \pageref{Commander}  & ObjectExpressions & p. \pageref{ObjectExpressions}  \\  
PIConsole & p. \pageref{PIConsole}  & PIDraw3DWdg & p. \pageref{PIDraw3DWdg}  & PIImage & p. \pageref{PIImage}  \\  
PIScDrawWdg & p. \pageref{PIScDrawWdg}  & RPNEvaluator & p. \pageref{RPNEvaluator}  & Windows & p. \pageref{Windows}  \\  
autoiniranf & p. \pageref{autoiniranf}  & exitpiapp & p. \pageref{exitpiapp}  & helpfit & p. \pageref{helpfit}  \\  
helpwindow & p. \pageref{helpwindow}  & shell execute & p. \pageref{shellZexecute}  & stop & p. \pageref{stop}  \\  
\end{tabular} 
\end{center} 
\newpage  
\vspace{6mm} 
\begin{center} 
 \rule{2cm}{0.5mm} \makebox[60mm]{{ \bf Commander } help group} \rule{2cm}{0.5mm} \\ 
\vspace{3mm} 
\begin{tabular}{llllll} 
CExpEvaluator & p. \pageref{CExpEvaluator}  & Commander & p. \pageref{Commander}  & RPNEvaluator & p. \pageref{RPNEvaluator}  \\  
autoiniranf & p. \pageref{autoiniranf}  & shell execute & p. \pageref{shellZexecute}  &   &   \\  
\end{tabular} 
\end{center} 
\vspace{6mm} 
\begin{center} 
 \rule{2cm}{0.5mm} \makebox[60mm]{{ \bf CxxExecutorCmd } help group} \rule{2cm}{0.5mm} \\ 
\vspace{3mm} 
\begin{tabular}{llllll} 
c++args & p. \pageref{cZZargs}  & c++compile & p. \pageref{cZZcompile}  & c++compileopt & p. \pageref{cZZcompileopt}  \\  
c++create & p. \pageref{cZZcreate}  & c++createfrf & p. \pageref{cZZcreatefrf}  & c++declareomgvar & p. \pageref{cZZdeclareomgvar}  \\  
c++exec & p. \pageref{cZZexec}  & c++execfrf & p. \pageref{cZZexecfrf}  & c++import & p. \pageref{cZZimport}  \\  
c++include & p. \pageref{cZZinclude}  & c++link & p. \pageref{cZZlink}  & c++linkopt & p. \pageref{cZZlinkopt}  \\  
c++mylibs & p. \pageref{cZZmylibs}  & c++prtlevel & p. \pageref{cZZprtlevel}  &   &   \\  
\end{tabular} 
\end{center} 
\vspace{6mm} 
\begin{center} 
 \rule{2cm}{0.5mm} \makebox[60mm]{{ \bf Expr. Arithmetic } help group} \rule{2cm}{0.5mm} \\ 
\vspace{3mm} 
\begin{tabular}{llllll} 
eval & p. \pageref{eval}  &   &  &  &   \\  
\end{tabular} 
\end{center} 
\vspace{6mm} 
\begin{center} 
 \rule{2cm}{0.5mm} \makebox[60mm]{{ \bf Expr. Plotting } help group} \rule{2cm}{0.5mm} \\ 
\vspace{3mm} 
\begin{tabular}{llllll} 
ObjectExpressions & p. \pageref{ObjectExpressions}  & expmeansig & p. \pageref{expmeansig}  & exptovec & p. \pageref{exptovec}  \\  
fillgd1 & p. \pageref{fillgd1}  & fillgd2 & p. \pageref{fillgd2}  & fillmtx & p. \pageref{fillmtx}  \\  
fillnt & p. \pageref{fillnt}  & fillvec & p. \pageref{fillvec}  & gdfrvec & p. \pageref{gdfrvec}  \\  
ntexpcfile & p. \pageref{ntexpcfile}  & ntloop & p. \pageref{ntloop}  & plot2d & p. \pageref{plot2d}  \\  
plot2dc & p. \pageref{plot2dc}  & plot2de & p. \pageref{plot2de}  & plot2dvec & p. \pageref{plot2dvec}  \\  
plot2dw & p. \pageref{plot2dw}  & plot3d & p. \pageref{plot3d}  & plot3dw & p. \pageref{plot3dw}  \\  
projh1d & p. \pageref{projh1d}  & projh2d & p. \pageref{projh2d}  & projprof & p. \pageref{projprof}  \\  
\end{tabular} 
\end{center} 
\vspace{6mm} 
\begin{center} 
 \rule{2cm}{0.5mm} \makebox[60mm]{{ \bf External Modules } help group} \rule{2cm}{0.5mm} \\ 
\vspace{3mm} 
\begin{tabular}{llllll} 
call & p. \pageref{call}  & link & p. \pageref{link}  & linkff2 & p. \pageref{linkff2}  \\  
loadmodule & p. \pageref{loadmodule}  &   &  &  &   \\  
\end{tabular} 
\end{center} 
\vspace{6mm} 
\begin{center} 
 \rule{2cm}{0.5mm} \makebox[60mm]{{ \bf FFT } help group} \rule{2cm}{0.5mm} \\ 
\vspace{3mm} 
\begin{tabular}{llllll} 
fftback & p. \pageref{fftback}  & fftfilter & p. \pageref{fftfilter}  & fftforw & p. \pageref{fftforw}  \\  
fftfuncfilter & p. \pageref{fftfuncfilter}  &   &  &  &   \\  
\end{tabular} 
\end{center} 
\vspace{6mm} 
\begin{center} 
 \rule{2cm}{0.5mm} \makebox[60mm]{{ \bf FileIO } help group} \rule{2cm}{0.5mm} \\ 
\vspace{3mm} 
\begin{tabular}{llllll} 
arrtoascii & p. \pageref{arrtoascii}  & fitsadapt & p. \pageref{fitsadapt}  & mtxfrascii & p. \pageref{mtxfrascii}  \\  
ntfrascii & p. \pageref{ntfrascii}  & openfits & p. \pageref{openfits}  & openppf & p. \pageref{openppf}  \\  
print & p. \pageref{print}  & rdfitsarr & p. \pageref{rdfitsarr}  & readfits & p. \pageref{readfits}  \\  
saveall & p. \pageref{saveall}  & savefits & p. \pageref{savefits}  & savelist & p. \pageref{savelist}  \\  
saveobjs & p. \pageref{saveobjs}  & saveppf & p. \pageref{saveppf}  & scanfits & p. \pageref{scanfits}  \\  
swfitstable & p. \pageref{swfitstable}  & vecfrascii & p. \pageref{vecfrascii}  & writefits & p. \pageref{writefits}  \\  
\end{tabular} 
\end{center} 
\vspace{6mm} 
\begin{center} 
 \rule{2cm}{0.5mm} \makebox[60mm]{{ \bf Fitting } help group} \rule{2cm}{0.5mm} \\ 
\vspace{3mm} 
\begin{tabular}{llllll} 
helpfit & p. \pageref{helpfit}  & crfitfil & p. \pageref{crfitfil}  & crfitfun & p. \pageref{crfitfun}  \\  
fit & p. \pageref{fit}  & fitlin & p. \pageref{fitlin}  & fitw & p. \pageref{fitw}  \\  
\end{tabular} 
\end{center} 
\vspace{6mm} 
\begin{center} 
 \rule{2cm}{0.5mm} \makebox[60mm]{{ \bf Func Plot } help group} \rule{2cm}{0.5mm} \\ 
\vspace{3mm} 
\begin{tabular}{llllll} 
func & p. \pageref{func}  & func2d & p. \pageref{func2d}  & func2dff & p. \pageref{func2dff}  \\  
funcff & p. \pageref{funcff}  &   &  &  &   \\  
\end{tabular} 
\end{center} 
\vspace{6mm} 
\begin{center} 
 \rule{2cm}{0.5mm} \makebox[60mm]{{ \bf Graphic-Elts } help group} \rule{2cm}{0.5mm} \\ 
\vspace{3mm} 
\begin{tabular}{llllll} 
addarc & p. \pageref{addarc}  & addarca & p. \pageref{addarca}  & addarrow & p. \pageref{addarrow}  \\  
addaxelabels & p. \pageref{addaxelabels}  & addcirc & p. \pageref{addcirc}  & addctext & p. \pageref{addctext}  \\  
addfarc & p. \pageref{addfarc}  & addfarca & p. \pageref{addfarca}  & addfcirc & p. \pageref{addfcirc}  \\  
addfoval & p. \pageref{addfoval}  & addfpoly & p. \pageref{addfpoly}  & addfrect & p. \pageref{addfrect}  \\  
addline & p. \pageref{addline}  & addmarker & p. \pageref{addmarker}  & addoval & p. \pageref{addoval}  \\  
addpoly & p. \pageref{addpoly}  & addrect & p. \pageref{addrect}  & addtext & p. \pageref{addtext}  \\  
addtitle & p. \pageref{addtitle}  & setaxelabels & p. \pageref{setaxelabels}  & settitle & p. \pageref{settitle}  \\  
\end{tabular} 
\end{center} 
\vspace{6mm} 
\begin{center} 
 \rule{2cm}{0.5mm} \makebox[60mm]{{ \bf GraphicExport } help group} \rule{2cm}{0.5mm} \\ 
\vspace{3mm} 
\begin{tabular}{llllll} 
imagcmap2eps & p. \pageref{imagcmap2eps}  & imagcmap2ps & p. \pageref{imagcmap2ps}  & psclosefile & p. \pageref{psclosefile}  \\  
psgetfilename & p. \pageref{psgetfilename}  & pssetfilename & p. \pageref{pssetfilename}  & w2eps & p. \pageref{w2eps}  \\  
w2ps & p. \pageref{w2ps}  & wdg2rgb & p. \pageref{wdg2rgb}  & win2rgb & p. \pageref{win2rgb}  \\  
\end{tabular} 
\end{center} 
\vspace{6mm} 
\begin{center} 
 \rule{2cm}{0.5mm} \makebox[60mm]{{ \bf Graphics } help group} \rule{2cm}{0.5mm} \\ 
\vspace{3mm} 
\begin{tabular}{llllll} 
PIConsole & p. \pageref{PIConsole}  & PIDraw3DWdg & p. \pageref{PIDraw3DWdg}  & PIImage & p. \pageref{PIImage}  \\  
PIScDrawWdg & p. \pageref{PIScDrawWdg}  & Windows & p. \pageref{Windows}  & drpanel & p. \pageref{drpanel}  \\  
graphicatt & p. \pageref{graphicatt}  & newwin & p. \pageref{newwin}  & setaxesatt & p. \pageref{setaxesatt}  \\  
setdefafsz & p. \pageref{setdefafsz}  & setinsetlimits & p. \pageref{setinsetlimits}  & stacknext & p. \pageref{stacknext}  \\  
zone & p. \pageref{zone}  &   &  &  &   \\  
\end{tabular} 
\end{center} 
\vspace{6mm} 
\begin{center} 
 \rule{2cm}{0.5mm} \makebox[60mm]{{ \bf Obj. Display } help group} \rule{2cm}{0.5mm} \\ 
\vspace{3mm} 
\begin{tabular}{llllll} 
bargraph & p. \pageref{bargraph}  & contour & p. \pageref{contour}  & disp & p. \pageref{disp}  \\  
gfd2d & p. \pageref{gfd2d}  & gfd3d & p. \pageref{gfd3d}  & imag & p. \pageref{imag}  \\  
imagnav & p. \pageref{imagnav}  & nt2d & p. \pageref{nt2d}  & nt2dci & p. \pageref{nt2dci}  \\  
nt2dcn & p. \pageref{nt2dcn}  & nt2dvec & p. \pageref{nt2dvec}  & nt3d & p. \pageref{nt3d}  \\  
ntcont & p. \pageref{ntcont}  & pirgbdisp & p. \pageref{pirgbdisp}  & surf & p. \pageref{surf}  \\  
textdrawer & p. \pageref{textdrawer}  & vecplot & p. \pageref{vecplot}  &   &   \\  
\end{tabular} 
\end{center} 
\vspace{6mm} 
\begin{center} 
 \rule{2cm}{0.5mm} \makebox[60mm]{{ \bf Object Management } help group} \rule{2cm}{0.5mm} \\ 
\vspace{3mm} 
\begin{tabular}{llllll} 
cd & p. \pageref{cd}  & copy & p. \pageref{copy}  & cp & p. \pageref{cp}  \\  
del & p. \pageref{del}  & delobjs & p. \pageref{delobjs}  & listdirs & p. \pageref{listdirs}  \\  
listobjs & p. \pageref{listobjs}  & ls & p. \pageref{ls}  & mkdir & p. \pageref{mkdir}  \\  
mv & p. \pageref{mv}  & pwd & p. \pageref{pwd}  & rename & p. \pageref{rename}  \\  
rm & p. \pageref{rm}  & rmdir & p. \pageref{rmdir}  & setdiratt & p. \pageref{setdiratt}  \\  
\end{tabular} 
\end{center} 
\vspace{6mm} 
\begin{center} 
 \rule{2cm}{0.5mm} \makebox[60mm]{{ \bf Objects } help group} \rule{2cm}{0.5mm} \\ 
\vspace{3mm} 
\begin{tabular}{llllll} 
line2nt & p. \pageref{line2nt}  & line2vec & p. \pageref{line2vec}  & newdt & p. \pageref{newdt}  \\  
newgfd & p. \pageref{newgfd}  & newh1d & p. \pageref{newh1d}  & newh2d & p. \pageref{newh2d}  \\  
newmtx & p. \pageref{newmtx}  & newnt & p. \pageref{newnt}  & newprof & p. \pageref{newprof}  \\  
newprofe & p. \pageref{newprofe}  & newvec & p. \pageref{newvec}  & ntcol2var & p. \pageref{ntcol2var}  \\  
ntline2var & p. \pageref{ntline2var}  & objaoper & p. \pageref{objaoper}  & vec2var & p. \pageref{vec2var}  \\  
\end{tabular} 
\end{center} 
\vspace{6mm} 
\begin{center} 
 \rule{2cm}{0.5mm} \makebox[60mm]{{ \bf PIACmd } help group} \rule{2cm}{0.5mm} \\ 
\vspace{3mm} 
\begin{tabular}{llllll} 
exitpiapp & p. \pageref{exitpiapp}  & helpwindow & p. \pageref{helpwindow}  & stop & p. \pageref{stop}  \\  
\end{tabular} 
\end{center} 
\vspace{6mm} 
\begin{center} 
 \rule{2cm}{0.5mm} \makebox[60mm]{{ \bf SkyMapCmd } help group} \rule{2cm}{0.5mm} \\ 
\vspace{3mm} 
\begin{tabular}{llllll} 
alm2cl & p. \pageref{alm2cl}  & alm2map & p. \pageref{alm2map}  & cl2llcl & p. \pageref{cl2llcl}  \\  
cl2map & p. \pageref{cl2map}  & clmean & p. \pageref{clmean}  & clmult & p. \pageref{clmult}  \\  
clop & p. \pageref{clop}  & clrebin & p. \pageref{clrebin}  & crmapmask & p. \pageref{crmapmask}  \\  
crmaskfrmap & p. \pageref{crmaskfrmap}  & map2alm & p. \pageref{map2alm}  & map2cl & p. \pageref{map2cl}  \\  
map2double & p. \pageref{map2double}  & map2float & p. \pageref{map2float}  & map2local & p. \pageref{map2local}  \\  
map2map & p. \pageref{map2map}  & mapcover & p. \pageref{mapcover}  & mapmult & p. \pageref{mapmult}  \\  
mapop & p. \pageref{mapop}  & maproj & p. \pageref{maproj}  & mapstat & p. \pageref{mapstat}  \\  
maskmap & p. \pageref{maskmap}  & resol2szidx & p. \pageref{resol2szidx}  & settypemap & p. \pageref{settypemap}  \\  
szidx2resol & p. \pageref{szidx2resol}  & typemap & p. \pageref{typemap}  &   &   \\  
\end{tabular} 
\end{center} 
\vspace{6mm} 
\begin{center} 
 \rule{2cm}{0.5mm} \makebox[60mm]{{ \bf SophyaCmd } help group} \rule{2cm}{0.5mm} \\ 
\vspace{3mm} 
\begin{tabular}{llllll} 
errorellipse & p. \pageref{errorellipse}  & mollgrid & p. \pageref{mollgrid}  & setprjmoldefval & p. \pageref{setprjmoldefval}  \\  
\end{tabular} 
\end{center} 
\vspace{6mm} 
\begin{center} 
 \rule{2cm}{0.5mm} \makebox[60mm]{{ \bf pawCmd } help group} \rule{2cm}{0.5mm} \\ 
\vspace{3mm} 
\begin{tabular}{llllll} 
h/2d/geth & p. \pageref{hZ2dZgeth}  & h/cadd & p. \pageref{hZcadd}  & h/cmult & p. \pageref{hZcmult}  \\  
h/copy & p. \pageref{hZcopy}  & h/deriv & p. \pageref{hZderiv}  & h/err & p. \pageref{hZerr}  \\  
h/get\_vec & p. \pageref{hZgetZvec}  & h/integ & p. \pageref{hZinteg}  & h/oper & p. \pageref{hZoper}  \\  
h/plot/2d & p. \pageref{hZplotZ2d}  & h/put\_vec & p. \pageref{hZputZvec}  & h/rebin & p. \pageref{hZrebin}  \\  
h/set/cont & p. \pageref{hZsetZcont}  & h/set/err & p. \pageref{hZsetZerr}  & herr/mean & p. \pageref{herrZmean}  \\  
herr/variance & p. \pageref{herrZvariance}  & n/assoc/col & p. \pageref{nZassocZcol}  & n/copy & p. \pageref{nZcopy}  \\  
n/merge & p. \pageref{nZmerge}  & n/merge/col & p. \pageref{nZmergeZcol}  & n/pl & p. \pageref{nZpl}  \\  
n/plot & p. \pageref{nZplot}  & n/proj & p. \pageref{nZproj}  & n/read & p. \pageref{nZread}  \\  
n/scan & p. \pageref{nZscan}  & reset & p. \pageref{reset}  & v/deriv & p. \pageref{vZderiv}  \\  
v/integ & p. \pageref{vZinteg}  & v/sort & p. \pageref{vZsort}  &   &   \\  
\end{tabular} 
\end{center} 
% ----- Liste des commandes dans chaque groupe ----- 
\newpage 
\subsection{Commander} \label{Commander} 
Basic (generic) interpreter (class SOPHYA::Commander) builtin commands 
 \\[2mm]  \noindent 
\piahelpitem{CExpEvaluator} \label{CExpEvaluator} 
\begin{verbatim} 
> Evaluation of C-like expression (used in V = C-like-Expression) 
   >>> Arithmetic operators, parenthesis ( + - * / ) 
   >>> Functions : sqrt fabs floor hypot 
   ...  exp log log10 pow  ; sinh cosh tanh 
   ...  sin cos tan asin acos atan atan2  
   ...  rand01()  randpm1() gaurand() 
   >>> Constants : Pi = M_PI E = M_E 
   Example: x = 5.*(2.+sin(0.3*Pi))
\end{verbatim} 
\piahelpitem{Commander} \label{Commander} 
\begin{verbatim} 
>>> (Commander) Interpreter's keywords : 
  > set varname string     # To set a variable, $varname 
  > unset varname          # clear variable definition 
  > rpneval varname RPNExpression  # Reverse Polish Notation evaluation 
  > varname = ArithmeticExpression # C-like Expression evaluation   
  > varname = 'String'     # Set variable vname  
  > var2words varname wordvarname [sep]    # to break varname into words  
  > echo string            # output string 
  > echo2file filename string # Append the string to the specified file 
  > alias name string      # define a command alias 
  > foreach varname ( string-list ) # Loop 
  > for varname i1:i2[:di]      # Integer loop  
  > for varname f1:f2[:df]      # Float loop  
  > forinfile varname FileName  # Loop over lines in file 
  > end                         # end loops 
  > if ( test ) then  # Conditional test : a == != < > <= >= b 
  > else          # Conditional  
  > endif         # End of conditional if bloc 
  > break         # Delete (clears) all test and loop blocs 
  > return        # Stops command execution from a file 
  > defscript endscript # Command script definition 
  > listvars      # List of variable names and values 
  > listalias     # List of alias names and values 
  > listcommands  # List of all known commands 
  > listscripts   # List of all known scripts 
  > clearcript    # Clear a script definition 
  > thrlist       # List of command execution threads (& as the last character) 
  > clearthrlist  # Removes finished threads from the list  
  > killthr Id    # Try to stop a given thread (ThrId=id) by sending SIGUSR1 
  > cancelthr Id  # Try to cancel a given thread (ThrId=id)  
  > waitthr       # Waits until all active threads have finished (join()) 
  > exec filename # Execute commands from file 
  > help <command_name>  # <command_name> usage info 
  > sleep nsec  # sleep nsec seconds 
  > readstdin varname      # reads a line from stdin into $varname 
  > timingon  timingoff traceon  traceoff 

\end{verbatim} 
\piahelpitem{RPNEvaluator} \label{RPNEvaluator} 
\begin{verbatim} 
 Reverse Polish Notation (HP calculator like) expression evaluation 
  >> Stack: 
     ... (4) (3) z=(2) y=(1) x=(0)=Stack.Top() 
  >> Examples:  
  - sin(PI/6): pi 6 / sin 
  - 1*2*...*5: 1 2 3 4 5 product 
  - x=x+y: x = $x $y * 
  >>> Stack operations : 
      print x<>y pop push (duplicate x) 
  >>> Constants (Cst pushed to stack): 
      pi e 
  >>> Arithmetic operators (x,y) --> x@y 
      + - * / % ( (int)y % (int)x )
  >>> F(X): x --> F(x) 
      chs sqrt sq log log10 exp  
      fabs  floor ceil 
      cos sin tan acos asin atan deg2rad rad2deg 
  >>> F(X,Y): (x,y) --> F(x,y) 
      pow atan2 
  >>> F(): random number generators 
      rand (flat 0..1) norand (normal/gaussian) 
  >>> Stack sum/product/mean/sigma/sigma^2 
      sum product mean sigma sigma2 sigmean (y->sigma x->mean) 

\end{verbatim} 
\piahelpitem{autoiniranf} \label{autoiniranf} 
\begin{verbatim} 
> Automatic random number generator initialisation
   by AutoInitRand(int lp) 
   Usage: autoiniranf
\end{verbatim} 
\piahelpitem{shell execute} \label{shellZexecute} 
\begin{verbatim} 
> shell  command_string  # Execute  shell command
> cshell command_string  # Execute cshell command
---Examples:
  > shell ls
  > cshell echo '$LD_LIBRARY_PATH'; map2cl -h; ls
  > shell myfile.csh [arg1] [arg2] [...]
    (where the first line of "myfile.csh" is "#!/bin/csh")

\end{verbatim} 
\subsection{CxxExecutorCmd} \label{CxxExecutorCmd} 
Commands for c++ codelt on the fly compilation and execution 
 \\[2mm]  \noindent 
\piacommand{c++args} \label{cZZargs} 
\begin{verbatim} 
c++args: Define user function arguments for c++exec and c++execfrf
Usage: c++args arg1 arg2 arg3 ...
       c++args -? : give current arguments
       c++args    : reset current arguments
\end{verbatim} 
\piacommand{c++compile} \label{cZZcompile} 
\begin{verbatim} 
c++compile: compile a file (file.cc -> file.so)
Usage: c++compile file
Warning: give "file" or "file.so" to create "file.so" from "file.cc"
       : to be used before c++link
\end{verbatim} 
\piacommand{c++compileopt} \label{cZZcompileopt} 
\begin{verbatim} 
c++compileopt: add personnal compile options
Usage: c++compileopt -g -O5 -IMy_Inc_Dir ...
       c++compileopt -? : list current additionnal compile options
       c++compileopt    : reset to no additionnal compile options
Warning: to be used before c++create c++compile c++exec ...
\end{verbatim} 
\piacommand{c++create} \label{cZZcreate} 
\begin{verbatim} 
c++create: create a file "file.cc" to be used by spiapp
Usage: c++create file.cc func c++ user code...

\end{verbatim} 
\piacommand{c++createfrf} \label{cZZcreatefrf} 
\begin{verbatim} 
c++createfrf: create a file "file.cc" to be used by spiapp
        with a user file code "fileuser.cc"
        and an optional user function code "fileuserfct.cc"
Usage: c++createfrf file.cc func fileuser.cc [fileuserfct.cc]

\end{verbatim} 
\piacommand{c++declareomgvar} \label{cZZdeclareomgvar} 
\begin{verbatim} 
c++declareomgvar: Activate/Deactivate ObjectManager variables declaration 
Usage: c++declareomgvar [false/true] 
   if true, the ObjectManager variables are declared as $varname 
   no arguments: display the current status of the flag (default=false

\end{verbatim} 
\piacommand{c++exec} \label{cZZexec} 
\begin{verbatim} 
c++exec: Execute the following c++ user code
Usage: c++exec c++ user code
Warning: c++ user code can be found in "TmpDir/cxx_spiapp.h"
         total generated code can be found in "TmpDir/cxx_spiapp.cc"
\end{verbatim} 
\piacommand{c++execfrf} \label{cZZexecfrf} 
\begin{verbatim} 
c++execfrf: Execute c++ user_code [user_function_code]
Usage: c++execfrf fileuser.cc [fileuserfct.cc]
Warning: total generated code can be found in "TmpDir/cxx_spiapp.cc"
\end{verbatim} 
\piacommand{c++import} \label{cZZimport} 
\begin{verbatim} 
c++import: Sophya additionnal modules to be use in C++ executor
Usage: c++import module1 ... : set list of modules to be used by executor
       c++import all : set all modules known by executor
       c++import     : reset to no additionnal module
       c++import -?  : list modules currently used in executor
       c++import -?? : list of available modules for executor
Warning: to be used before c++create c++compile c++exec ...
\end{verbatim} 
\piacommand{c++include} \label{cZZinclude} 
\begin{verbatim} 
c++include: add personnal includes to be used by executor
Usage: c++include myinc1.h myinc2.h ...
       c++include -? : list current additionnal include files
       c++include    : reset to no additionnal include files
Warning: to be used before c++create c++compile c++exec...
\end{verbatim} 
\piacommand{c++link} \label{cZZlink} 
\begin{verbatim} 
c++link: link function "func" in file.so to spiapp
Usage: c++link file.so func
\end{verbatim} 
\piacommand{c++linkopt} \label{cZZlinkopt} 
\begin{verbatim} 
c++linkopt: add personnal link options
Usage: c++linkopt -g -O5 ...
       c++linkopt -? : list current additionnal link options
       c++linkopt    : reset to no additionnal link options
Warning: to be used before c++create c++compile c++exec ...
\end{verbatim} 
\piacommand{c++mylibs} \label{cZZmylibs} 
\begin{verbatim} 
c++mylibs: add personnal libraries
Usage: c++mylibs -LMy_Lib_Dir -lmylib1 -lmylib2 ...
       c++mylibs -? : list current additionnal libraries
       c++mylibs    : reset to no additionnal libraries
Warning: to be used before c++create c++compile c++exec ...
\end{verbatim} 
\piacommand{c++prtlevel} \label{cZZprtlevel} 
\begin{verbatim} 
c++prtlevel: Print level
Usage: c++prtlevel prtlevel
       prtlevel=0 : minimum printing
       prtlevel=1 : + compiler/linker output
       prtlevel=2 : + full infos (default)
\end{verbatim} 
\subsection{Expr. Arithmetic} \label{ExprZZArithmetic} 
\noindent 
\piacommand{eval} \label{eval} 
\begin{verbatim} 
Compute arithmetic expression

 Usage: eval resultvarname arithmetic expression....
  resultvarname: store result in variable resultvarname
    - If first character is not alphabetic, just print result
  arithmetic expression:
      ex: x + sqrt(y)+z +3.14    (x,y,z are variables)
      ex: $x + sqrt($y)+$z +3.14 (x,y,z are variables)
      ex: 360 * M_PI / 180.
\end{verbatim} 
\subsection{Expr. Plotting} \label{ExprZZPlotting} 
Compute and plot various (c-syntax) expressions of objects 
Objects are seen as list of structures (n-tuples)
See ObjectExpressions help item for a list of structure
fields for the different classes managed by piapp 
 \\[2mm]  \noindent 
\piahelpitem{ObjectExpressions} \label{ObjectExpressions} 
\begin{verbatim} 
Any mathematical expression (math.h) with object variables can be used
  ------ Object Variable names (double) -------- 
  (_nl is the table line number or the sequential index)
- NTuple: ntuple variable names,_nl
- Histo1D/HProf: i,x,val,err,nb,_nl
- Histo2D: i,j,x,y,val,err,_nl
- HistoErr: i,x,val,err2,nb,_nl
- Histo2DErr: i,j,x,y,val,err2,nb,_nl
- Vector/Matrix/Image: n,r,c,val,real,imag,mod,phas,_nl
- TArray: n,x,y,z,t,u,val,real,imag,mod,phas,_nl
- GeneralFitData: x0,ex0 x1,ex1 ...  xn,exn   y,ey   ok  ,_nl
- SphereThetaPhi/SphereHEALPix/SphereECP/LocalMap: 
-         i,k,val,real,imag,mod,phas,teta,phi,_nl
- FITS Binary/ASCII table: fits column names,_nl
  ------ Other parameters -------- 
Loop parameters can be specified as I1[:I2[:DI]] for(int i=I1; i<I2; i+=DI)
The default Cut() expression in true (=1) for all

 Related commands: plot2d plot2de plot2dw plot3d plot3dw
         projh1d projh2d  projprof fillvec fillmtx 
         fillnt fillgd1 fillgd2 ntloop exptovec ... 
\end{verbatim} 
\piacommand{expmeansig} \label{expmeansig} 
\begin{verbatim} 
Computes Mean/Sigma (+Min/Max) for an expression X=f(Object)
 Usage: expmeansig nameobj f_X() [Cut() loop_param]
  Related commands: exptovec ntloop fillnt ObjectExpressions ...
\end{verbatim} 
\piacommand{exptovec} \label{exptovec} 
\begin{verbatim} 
Creates and Fills a Vector with X=f(Object)
 Usage: exptovec namevec nameobj f_X() [Cut() graphic_attributes loop_param]
  Related commands: ntloop fillnt ObjectExpressions ...
\end{verbatim} 
\piacommand{fillgd1} \label{fillgd1} 
\begin{verbatim} 
Creates and Fills a GeneralFitData with (X=f(Object), Y=g(...), ErrY=h(...))
 Usage: fillgd1 namegfd nameobj f_X() g_Y() h_ErrY() [Cut() loop_param]
  Related commands: ntloop fillnt ObjectExpressions ...
\end{verbatim} 
\piacommand{fillgd2} \label{fillgd2} 
\begin{verbatim} 
Creates and Fills a GeneralFitData with (X=f(Object), Y=g(...), Z=h(...)) ErrZ=k(...)
 Usage: fillgd1 namegfd nameobj f_X() g_Y() h_Z() k_ErrZ() [Cut() loop_param]
  Related commands: ntloop fillnt ObjectExpressions ...
\end{verbatim} 
\piacommand{fillmtx} \label{fillmtx} 
\begin{verbatim} 
Fills a Matrix M(Line=g_Y(Object)+0.5, Col=f_X(Object)+0.5)) =  h_V(Object) 
 Usage: fillmtx namevec nameobj f_X() g_Y() h_V() [Cut() graphic_attributes loop_param]
  Related commands: fillvec fillnt ObjectExpressions ...
\end{verbatim} 
\piacommand{fillnt} \label{fillnt} 
\begin{verbatim} 
Creates and Fills an NTuple(x,y,z,t) with (X=f(Object),Y=g(...),Z=h(...),T=k(...))
 Usage: fillnt nameobj f_X() g_Y() h_Z() k_T() [Cut() nameNt loop_param]
  Related commands: ntloop plot2d projh1d projh2d projprof 
  Related commands: fillvec fillmtx ntloop exptovec fillgd1 fillgd2 ObjectExpressions ...
\end{verbatim} 
\piacommand{fillvec} \label{fillvec} 
\begin{verbatim} 
Fills a Vector V((int)(f_X(Object)+0.5)) =  h_V(Object) 
 Usage: fillvec namevec nameobj f_X() h_V() [Cut() graphic_attributes loop_param]
  Related commands: fillmtx fillnt ObjectExpressions ...
\end{verbatim} 
\piacommand{gdfrvec} \label{gdfrvec} 
\begin{verbatim} 
Fills a GeneralFitData with vectors X,Y,Z,EZ
 Usage: gdfrvec namegfd X Y
 Usage: gdfrvec namegfd X Y ! EY
 Usage: gdfrvec namegfd X Y Z
 Usage: gdfrvec namegfd X Y Z EZ
  Related commands: fillgd1 fillgd2 ...
\end{verbatim} 
\piacommand{ntexpcfile} \label{ntexpcfile} 
\begin{verbatim} 
Creates a C-File with declarations suitable to be used for ntloop
 Usage: ntexpcfile nameobj CFileName FuncName 
  Related commands: ntloop
\end{verbatim} 
\piacommand{ntloop} \label{ntloop} 
\begin{verbatim} 
Loops over an Object NTupleInterface calling a function from a C-file 
and optionaly fills an NTuple(x,y,z,t) with (X=f(Object),Y=g(...),Z=h(...),T=k(...))
 Usage: ntloop nameobj CFileName FuncName [NtupleName loop_param]
  Related commands: fillvec fillmtx fillnt fillgd1 fillgd2 exptovec ObjectExpressions ...
  Related commands: ntexpcfile fillnt
\end{verbatim} 
\piacommand{plot2d} \label{plot2d} 
\begin{verbatim} 
Plots (2D) Y=g(Object) vs. X=f(Object) --- Object Variable names (double) :
 Usage: plot2d nameobj f_X() g_Y() [f_Cut() graphic_attributes loop_param]
  Related commands: plot2de plot2dw plot3d plot3dw ObjectExpressions ...
\end{verbatim} 
\piacommand{plot2dc} \label{plot2dc} 
\begin{verbatim} 
Plots (2D) Y=g(Object) vs. X=f(Object) with Color ColIndex=h(Object) 
 Usage: plot2dc nameobj f_X() g_Y() h_Col() [Cut() graphic_attributes loop_param]
  Related commands: plot2d plot2dw plot3d ObjectExpressions ...
\end{verbatim} 
\piacommand{plot2de} \label{plot2de} 
\begin{verbatim} 
Plots (2D) Y=g(Object) vs. X=f(Object) with error bars eX/Y=f_ErrX/Y(Object) 
 Usage: plot2de nameobj f_X() g_Y() f_ErrX() f_ErrY() [f_Cut() graphic_attributes loop_param]
  Related commands: plot2d plot2dw plot3d ObjectExpressions ...
\end{verbatim} 
\piacommand{plot2dvec} \label{plot2dvec} 
\begin{verbatim} 
Creates and displays a flow chart from ntuple expressions 
 Usage: plot2dvec ntuple expx expy expvx expvy [cut graphic_att loop_par]
\end{verbatim} 
\piacommand{plot2dw} \label{plot2dw} 
\begin{verbatim} 
Plots (2D) Y=g(Object) vs. X=f(Object) with Weight W=h(Object) 
 Usage: plot2dw nameobj f_X() g_Y() h_Wt() [Cut() graphic_attributes loop_param]
  Related commands: plot2d plot2dc plot3d ObjectExpressions ...
\end{verbatim} 
\piacommand{plot3d} \label{plot3d} 
\begin{verbatim} 
Plots (3D) Z=h(Object) vs. Y=g(Object) vs. X=f(Object)
 Usage: plot3d nameobj f_X() g_Y() h_Z() [Cut() graphic_attributes loop_param]
  Related commands: plot2d plot2de plot3dw ObjectExpressions ...
\end{verbatim} 
\piacommand{plot3dw} \label{plot3dw} 
\begin{verbatim} 
Plots (3D) Z=h(Object) vs. Y=g(Object) vs. X=f(Object) with Weight W=k(Object)  
 Usage: plot3d nameobj f_X() g_Y() h_Z() k_Wt() [Cut() graphic_attributes loop_param]
  Related commands: plot2d plot2dw plot3d ObjectExpressions ...
\end{verbatim} 
\piacommand{projh1d} \label{projh1d} 
\begin{verbatim} 
Projects X=f(Object) with weight WT=h(Object) into a 1D histogram 
 Usage: projh1d nameh1d nameobj f_X() [h_WT()=1. Cut() graphic_attributes loop_param]
   Histo1D nameh1d is created if necessary 
  Related commands: projh2d projprof ObjectExpressions ...
\end{verbatim} 
\piacommand{projh2d} \label{projh2d} 
\begin{verbatim} 
Projects (X=f(Object),Y=g(Object)) with weight WT=h(Object) into a 2D histogram 
 Usage: projh2d nameh2d nameobj f_X() g_Y() [h_WT()=1. Cut() graphic_attributes loop_param]
   Histo2D nameh2d is created if necessary 
  Related commands: projh1d projprof ObjectExpressions ...
\end{verbatim} 
\piacommand{projprof} \label{projprof} 
\begin{verbatim} 
Projects (X=f(Object),Y=g(Object)) with weight WT=h(Object) into a profile histogram 
 Usage: projprof nameprof nameobj f_X() g_Y() [h_WT()=1. Cut() graphic_attributes loop_param]
   HProf nameprof is created if necessary 
  Related commands: projh1d projh2d ObjectExpressions ...
\end{verbatim} 
\subsection{External Modules} \label{ExternalZModules} 
Dynmamic shared library load (DLL) and external (add-on) module management 
 \\[2mm]  \noindent 
\piacommand{call} \label{call} 
\begin{verbatim} 
Dynamically linked user function call 
 Usage: call userf [arg1 arg2 ...]
  User function : f(vector<string>& args)
  Related commands: link
\end{verbatim} 
\piacommand{link} \label{link} 
\begin{verbatim} 
Dynamic linking of compiled user functions 
  Usage: link fnameso f1 [f2 f3]
  fnameso: Shared-object file name, f1,f2,f3 : User function names 
  Related commands: call loadmodule linkff2
\end{verbatim} 
\piacommand{linkff2} \label{linkff2} 
\begin{verbatim} 
Dynamic linking of compiled user functions (Set 2)
  Usage: linkff2 fnameso f1 [f2 f3]
  fnameso: Shared-object file name, f1,f2,f3 : User function names 
  Related commands: call link loadmodule
\end{verbatim} 
\piacommand{loadmodule} \label{loadmodule} 
\begin{verbatim} 
To load and initialize modules 
  Usage: loadmodule fnameso modulename
  Related commands: link
\end{verbatim} 
\subsection{FFT} \label{FFT} 
\noindent 
\piacommand{fftback} \label{fftback} 
\begin{verbatim} 
FFT on a vector -> computes backward Fourier transform 
 Usage: fftback vecSpec vecSig [graphic_att] [C/Z] 
 vecSig = FFTBackward(vecSpec) 
 vecSpec: Input data vector of type complex<r_8> 
 vecSig:  Output Data vector of type r_8 (default) 
    or complex<r_8> if C/Z specified or 
    vecSpec computed by fftforw on a complex vector
 See also : fftforw fftfilter fftfuncfilter 
\end{verbatim} 
\piacommand{fftfilter} \label{fftfilter} 
\begin{verbatim} 
Filter (multiply) vecSpec (vector complex<r_8>) by Filter (vector<r_8>)
 Usage: fftfilter vecSpec FilterVec vecFiltSpec [graphic_att] 
   vecFiltSpec(i) = vecSpec(i) * complex(FilterVec(i),0) 
 See also : fftforw fftbackw fftfuncfilter 
\end{verbatim} 
\piacommand{fftforw} \label{fftforw} 
\begin{verbatim} 
FFT on a vector -> computes forward Fourier transform
 Usage: fftforw vecSig vecSpec [graphic_att] 
 vecSpec = FFTForward(vecSig) 
 vecSig: Input data vector of type r_8 or complex<r_8> 
 vecSpec: Output data vector of type complex<r_8> 
 See also : fftback fftfilter fftfuncfilter 
\end{verbatim} 
\piacommand{fftfuncfilter} \label{fftfuncfilter} 
\begin{verbatim} 
Filter (multiply) vecSpec (vector complex<r_8>) by FilterFunc(i) 
 Usage: fftfilter vecSpec FilterFunc vecFiltSpec [graphic_att] 
   vecFiltSpec(i) = vecSpec(i) * complex(FilterFunc(i),0) 
 See also : fftforw fftbackw fftfilter 
\end{verbatim} 
\subsection{FileIO} \label{FileIO} 
\noindent 
\piacommand{arrtoascii} \label{arrtoascii} 
\begin{verbatim} 
Writes an array (TArray<T>) to an ASCII file 
 Usage: arrtoascii array_name file_name
  Related commands:  mtxfrascii vecfrascii ntfrascii 
\end{verbatim} 
\piacommand{fitsadapt} \label{fitsadapt} 
\begin{verbatim} 
fitsadapt: NTuple adaptor for Binary and ASCII Fits table
Usage: fitsadapt fitsfile [nomobj hdu buflen[,bufsens,lp]]
 fitsfile : Fits file name
 nomobj : Object name (needed if file name misleading as C++ variable)
 hdu : Fits HDU (if <=0 take first binary/ascii table)
 buflen[,bufsens,lp] : buffer length (sens) for fits reading (default is 100,1,0)
 See also  scanfits writefits readfits 
\end{verbatim} 
\piacommand{mtxfrascii} \label{mtxfrascii} 
\begin{verbatim} 
Reads a matrix from an ASCII file (TMatrix<r_8>)
 Usage: mtxfrascii mtx_name file_name [CommChar Separator]
  Related commands: arrtoascii vecfrascii ntfrascii 
\end{verbatim} 
\piacommand{ntfrascii} \label{ntfrascii} 
\begin{verbatim} 
Fills an existing NTuple or DataTable from ASCII table file
 Usage: ntfrascii nt_name file_name [def_init_val]
  Related commands: ntloop fillnt 
\end{verbatim} 
\piacommand{openfits} \label{openfits} 
\begin{verbatim} 
openfits: alias for readfits 

\end{verbatim} 
\piacommand{openppf} \label{openppf} 
\begin{verbatim} 
Reads all or some objects from a PPF file
  Usage: (1) openppf filename 
     Or  (2) openppf -s filename (2)
     Or  (3) openppf filename objname1 [ objname2 ...]
  The first form reads all objects at NameTags,
    or all objects if the file has no NameTags.
  The third reads only the objects with the specified nametags
  Related commands: saveppf saveall savelist
\end{verbatim} 
\piacommand{print} \label{print} 
\begin{verbatim} 
Prints an object 
 Usage: print nameobj [prtlev]
 prtlev = 0,1,2...  default: prtlev=0
\end{verbatim} 
\piacommand{rdfitsarr} \label{rdfitsarr} 
\begin{verbatim} 
rdfitsarr: Read a single IMAGE HDU of a fits file as an array 
Usage: rdfitsarr FileName [arrType=D] [num_hdu=1] [arrName] [compd]
 ArrType= I/L/F/D: Array data type (int_4, int_8, r_4, r_8)
 compd : call array.CompactTrailingDimensions()
See also readfits 
\end{verbatim} 
\piacommand{readfits} \label{readfits} 
\begin{verbatim} 
readfits: Read one or all HDU's of a fits file 
Usage: readfits [-nobsz] FileName [num_hdu] 
 num_hdu=1,..,NbHDU (uses FitsManager) 
 -nobsz: Ignore HDU BSCALE/BZERO values -> BSCALE=1, BZERO=0 
See also rdfitsarr scanfits writefits fitsadapt swfitstable 
\end{verbatim} 
\piacommand{saveall} \label{saveall} 
\begin{verbatim} 
Saves all objects into a PPF file 
 Usage: saveall filename
  Related commands: saveobj savelist openppf
\end{verbatim} 
\piacommand{savefits} \label{savefits} 
\begin{verbatim} 
savefits: alias for writefits 

\end{verbatim} 
\piacommand{savelist} \label{savelist} 
\begin{verbatim} 

 Usage: savelist objname1 [objname2 ...] filename
  Related commands: saveobj openppf
\end{verbatim} 
\piacommand{saveobjs} \label{saveobjs} 
\begin{verbatim} 
Saves objects with names matching a pattern into a
  PPF file (pattern: x?y*) - Alias saveppf
Usage: saveobjs nameobjpattern filename
  Related commands: saveppf savelist saveall openppf 
\end{verbatim} 
\piacommand{saveppf} \label{saveppf} 
\begin{verbatim} 
Saves objects with names matching a pattern into a
  PPF file (pattern: x?y*) - Alias saveppf
Usage: saveppf nameobjpattern filename
  Related commands: saveobjs savelist saveall openppf
\end{verbatim} 
\piacommand{scanfits} \label{scanfits} 
\begin{verbatim} 
scanfits: scan fits files and print information on each HDU
Usage: scanfits FileName [slev=0...3]
slev=1,3: header keywords , slev=2,3: try to read each HDU
See also: readfits writefits fitsadapt 
\end{verbatim} 
\piacommand{swfitstable} \label{swfitstable} 
\begin{verbatim} 
swfitstable: Creates/read an SwFitsDataTable from a fits file
   SwFitsDataTable is a table which uses the BINARY-TBL
   of the fits file as swap space - useful for large tables
Usage: swfitstable FileName [num_hdu=2] [segsize=512]
See also: readfits scanfits
\end{verbatim} 
\piacommand{vecfrascii} \label{vecfrascii} 
\begin{verbatim} 
Reads a vector from an ASCII file (TVector<r_8>)
 Usage: vecfrascii vec_name file_name
  Related commands: arrtoascii mtxfrascii ntfrascii [CommChar Separator]
\end{verbatim} 
\piacommand{writefits} \label{writefits} 
\begin{verbatim} 
writefits: Write objects to a fits file 
Usage: writefits nameobj/pattern FileName 
See also: scanfits readfits fitsadapt 
\end{verbatim} 
\subsection{Fitting} \label{Fitting} 
\noindent 
\piahelpitem{helpfit} \label{helpfit} 
\begin{verbatim} 

//////////////////////////////////////////////////////////////////////    
| --------------- Fit Lineaire a 1 et 2 dimensions ---------------    
| Syntaxe:    
| fitlin nom pnn [o:.aa,bb,cc, o:dd,ee,ff o:gg,hh,jj,kk etc...]    
| avec:    
| nom  : cf commentaire ordre ''fit''    
| pnn  : fit polynome degre nn avec classe Poly (lineaire) 1D ou 2D    
| o:aa,...,bb : cf commentaires ordre ''fit''    
|    
//////////////////////////////////////////////////////////////////////    
| --------------- Fit d'objets a 1 et 2 dimensions ---------------    
|                 avec interface d'aide graphique    
| Syntaxe:    
| fitw nom func    
|     [p:p1,p2,...,pn s:s1,s2,...,sn m:m1,m2,...,mn M:M1,mM2,...,Mn f:f1,...,fn]    
|     [o:.aa,bb,cc, o:dd,ee,ff o:gg,hh,jj,kk etc...]    
| cf commentaire ordre ''fit''    
|    
//////////////////////////////////////////////////////////////////////    
| --------------- Fit d'objets a 1 et 2 dimensions ---------------    
| Syntaxe:    
| fit nom func    
|     [p:p1,p2,...,pn s:s1,s2,...,sn m:m1,m2,...,mn M:M1,mM2,...,Mn f:f1,...,fn]    
|     [o:.aa,bb,cc, o:dd,ee,ff o:gg,hh,jj,kk etc...]    
|----- OBJET -----    
| nom  : nom de l'objet qui peut etre:    
|        fit-1D:  Vector,Histo1D,HProf ou GeneraFitData(1D)    
|        fit-2D:  Matrix,Histo2D,Image<T> ou GeneraFitData(2D)    
|    
|----- FUNCTION -----    
| func : pnn : fit polynome degre nn avec GeneralFit (non-lineaire) 1D ou 2D    
|      : gnn : fit gaussienne (hauteur) + polynome de degre nn 1D    
|      : g   : fit gaussienne (hauteur) 1D    
|      : enn : fit exponentielle + polynome de degre nn 1D    
|      : e   : fit exponentielle 1D    
|      : Gnn : fit gaussienne (volume) + polynome de degre nn 1D    
|      : G   : fit gaussienne (volume) 1D    
|      :     : fit gaussienne+fond (volume) 2D    
|      : Gi  : fit gaussienne+fond integree (volume) 2D    
|      : d   : fit DL de gaussienne+fond (volume) 2D    
|      : di  : fit DL de gaussienne+fond integree (volume) 2D    
|      : D   : fit DL de gaussienne+fond avec coeff variable p6 (volume) 2D    
|      : Di  : fit DL de gaussienne+fond integree avec coeff variable p6 (volume) 2D    
|      : M   : fit Moffat+fond (expos=p6) (volume) 2D    
|      : Mi  : fit Moffat+fond integree (expos=p6) (volume) 2D    
|      : Autre : fonction definie par l'utilisateur (cf commentaires ci apres)    
|    
|----- INIT PARAMETRES ET ETAT DU FIT -----    
| p    : p1,...,pn : valeur d'initialisation des parametres (def=0)    
| s    : s1,...,sn : valeur des steps de depart (def=1)    
| m    : m1,...,mn : valeur des minima (def=1)    
| M    : M1,...,Mn : valeur des maxima (def=-1) (max<=min : pas de limite)    
| f    : f1,...,fn : si >=1 parametre fixe sinon libre (def=0)    
| - Remarque: si pi,si,mi ou Mi = '!' la valeur correspondante n'est pas changee    
|    
|----- OPTIONS -----    
| o    : options ''o:Eaa.b,eaa.b,f,r,caa.b,Xaa.b''    
|      F : initialisation a partir des resultats et de l'etat du fit precedent    
|          (option non prioritaire sur les definitions p:,s:,m:,M:,f:o:)    
|      a : initialisation automatique des parametres du fit (si disponible)    
|          (option non prioritaire sur les definitions p:,s:,m:,M:,f:o:    
|           et sur l'initialisation pa l'option ''F'')    
|      f : generation d'un Objet identique contenant la fonction fittee    
|      r : generation d'un Objet identique contenant les residus    
|      Xaa.b : aa.b valeur du DXi2 d'arret (def=1.e-3)    
|      Naa : aa nombre maximum d'iterations (def=100)    
|      la : niveau ''a'' de print: a=niveau de print Fit1/2D    
|      da : niveau ''a'' de debug: a=niveau de GeneralFit    
|      Ii1/i2 : numeros des bins X de l'histos utilises pour le fit [i1,i2]    
|2D    Jj1/j2 : numeros des bins Y de l'histos utilises pour le fit [j1,j2]    
|    - Traitement des erreurs :    
|      Par defaut, l'erreur est celle associee a l'objet (si elle existe),    
|        elle est mise a 1 sinon.    
|      haa.b/cc.d : erreur = aa.bb*(erreur associee a l'objet cf ci-dessus)    
|      Haa.b/cc.d : erreur = aa.b*|val|    
|      eaa.b/cc.d : erreur = aa.b    
|      Eaa.b/cc.d : erreur = aa.b*sqrt(|val|)    
|           aa.b<0 (ou non precise) est equivalent aa.b=1.0    
|           cc.d non precise est equivalent a cc.d=0    
|           si cc.d>=0  si erreur>0 erreur = max(erreur,cc.d)    
|                       si erreur<=0 alors erreur    
|           si cc.d<0   si erreur>0 erreur = max(erreur,|cc.d|)    
|                       si erreur<=0 alors erreur=|cc.d|    
|      xaa.b : demande de centrage: on fit x-aa.b au lieu de x)    
|      x : demande de centrage: on fit x-xc au lieu de x    
|          avec xc=abscisse du ''milieu logique'' de l'objet.    
|          Actif pour  exp+poly 1D, poly 1D    
|          Pour gauss+poly 1D, xc est le centre de la gaussienne.    
|2D    yaa.b et y : idem ''xaa.b et x'' mais pour y    
|    
//////////////////////////////////////////////////////////////////////    
| --------------- Def des fcts de fit par l'utilisateur ---------------    
| Pour definir une fonction parametree utilisateur:    
| Un exemple de fichier contenant des fonctions a fitter: PIext/userfitfunex.c    
| > crfitfil nom_fichier nom_fonction nvar npar    
|     pour creer un squelette de fichier C contenant la fonction a fitter    
|            nom_fichier : nom du fichier ou est le code de la fonction    
|                          c'est un fichier C de nom blabla.c    
|            nom_fonction : nom de la fonction ex: gauss2    
|            nvar : nombre de variables x[] (1D=1, 2D=2, etc...)    
|            npar : nombre de parametre p[]    
|   - La fonction est donc F(x[];p[]), soit par ex:    
|            double gauss2(double const* x,double const* p)    
|   - L'utilisateur a la possibilite de donner egalement la fonction    
|     retournant les derivees de la fonction par rapport aux parametres    
|            double gauss2_der(double const* x,double const* p,double* dp)    
|     ou dp[i] = dF(x[];p[])/dp[i]    
|     Par convention, cette fonction a le meme nom suivi de ''_der''    
| > crfitfun nom_fichier nom_fonction nvar npar    
|     Permet de compiler le fichier ''nom_fichier'' et de linker    
|     la fonction ''nom_fonction''    
|   - Un meme fichier peut contenir plusieurs fonctions a fitter    
|    
//////////////////////////////////////////////////////////////////////    
\end{verbatim} 
\piacommand{crfitfil} \label{crfitfil} 
\begin{verbatim} 
Creation de fichier C pour function utilisateur du fit
 Usage: crfitfil file func nvar npar
  Related commands: fit fitw fitlin crfitfun
\end{verbatim} 
\piacommand{crfitfun} \label{crfitfun} 
\begin{verbatim} 
Creation et link de function utilisateur pour le fit
 Usage: crfitfun file func nvar npar
  Related commands: fit fitw fitlin crfitfil
\end{verbatim} 
\piacommand{fit} \label{fit} 
\begin{verbatim} 
Fitting function to DataObjects (Histo, Histo2D, Vector, ...)
 Usage: fit nomobj func [Options]
 [p:p1,...,pn s:s1,...,sn m:m1,...,mn M:M1,...,Mn o:... o:...]
  Related commands: fitw fitlin crfitfun crfitfil
\end{verbatim} 
\piacommand{fitlin} \label{fitlin} 
\begin{verbatim} 
Linear Fitting of Polynoms to DataObjects
 Usage: fitlin nomobj func [o:... o:...]
  Related commands: fit fitw crfitfun crfitfil
\end{verbatim} 
\piacommand{fitw} \label{fitw} 
\begin{verbatim} 
Fitting function to DataObjects with Interactive Window Help
 Usage: fitw nomobj func [Options]
 [p:p1,...,pn s:s1,...,sn m:m1,...,mn M:M1,...,Mn o:... o:...]
  Related commands: fit fitlin crfitfun crfitfil
\end{verbatim} 
\subsection{Func Plot} \label{FuncZPlot} 
\noindent 
\piacommand{func} \label{func} 
\begin{verbatim} 
Displays a function y=f(x) (Fills a vector with function values)
 Usage: func f(x) xmin xmax [npt graphic_attributes]
  Related commands: funcff func2d func2dff 
\end{verbatim} 
\piacommand{func2d} \label{func2d} 
\begin{verbatim} 
Displays a function z=f(x,y) (Fills a matrix with function values)
 Usage: func2d f(x,y) xmin xmax nptx ymin ymax npty [graphic_attributes]
  Related commands: func
\end{verbatim} 
\piacommand{func2dff} \label{func2dff} 
\begin{verbatim} 
Displays a function z=f(x,y) from a C-file (Fills a matrix with function values)
 Usage: func2dff C-FileName FunctionName xmin xmax nptx ymin ymax npty [graphic_attributes]
  Related commands: func funcff func2d 
\end{verbatim} 
\piacommand{funcff} \label{funcff} 
\begin{verbatim} 
Displays a function y=f(x) from a C-file (Fills a vector with function values)
 Usage: funcff C-FileName FunctionName xmin xmax [npt graphic_attributes]
  Related commands: func func2d func2dff 
\end{verbatim} 
\subsection{Graphic-Elts} \label{GraphicZElts} 
Simple graphic objects (lines, circles, text...) creation and display 
 \\[2mm]  \noindent 
\piacommand{addarc} \label{addarc} 
\begin{verbatim} 
Adds an arc to the current graphic object
 defined by 3 points (+ graphic attribute)
 The Base/AxesDrawer is used to handle added arcs
 Alt<E> to remove the added element
  Usage: addarc x1 y1 x2 y2 x3 y3 [GraphicAtt] [fgnc=false/true]
  if fgnc==true : Normalized 0..1 coordinates specification (def=false)
  Related commands: addtext addline addarrow addfrect addfrect
       addcirc addfcirc addfarc addarca addpoly addfpoly graphicatt
\end{verbatim} 
\piacommand{addarca} \label{addarca} 
\begin{verbatim} 
Adds an arc to the current graphic object
 defined by the circle (center+radius), start angle and angular extension
 Angles are specified in degrees
  Usage: addarca xc yc r a0deg dadeg [GraphicAtt] [fgnc=false/true]
  if fgnc==true : Normalized 0..1 coordinates specification (def=false)
  Related commands: addtext addline addfarca addarc ...
\end{verbatim} 
\piacommand{addarrow} \label{addarrow} 
\begin{verbatim} 
Adds an arrow to the current graphic object
 at the specified position (+ graphic attribute)
 The Base/AxesDrawer is used to handle added lines
 Alt<E> to remove the added element
  Usage: addarrow x1 y1 x2 y2 [GraphicAtt] [fgnc=false/true]
  if fgnc==true : Normalized 0..1 coordinates specification (def=false)
  Related commands: addline addtext addrect addfrect 
       addmarker addcirc addfcirc addarc addfarc addpoly addfpoly graphicatt
\end{verbatim} 
\piacommand{addaxelabels} \label{addaxelabels} 
\begin{verbatim} 
Set the X and Y axis labels for the current 2D graphic object   alias for setaxelabels 
\end{verbatim} 
\piacommand{addcirc} \label{addcirc} 
\begin{verbatim} 
Adds a circle to the current graphic object
 with the specified center and radius (+ graphic attribute)
 The Base/AxesDrawer is used to handle added circles
 Alt<E> to remove added element
  Usage: addcirc xcenter ycenter radius [GraphicAtt] [fgnc=false/true]
  if fgnc==true : Normalized 0..1 coordinates specification (def=false)
  Related commands: addtext addline addarrow addfrect addfrect
       addfcirc addarc addfarc addpoly addfpoly graphicatt
\end{verbatim} 
\piacommand{addctext} \label{addctext} 
\begin{verbatim} 
Adds a composite text string with superscript and subscripts 
 at the specified position (+ color/font/pos/dir attributes) 
  Usage: addctext x y Text sUp sDown [ColFontPosAtt] [UpDownFontAtt] [fgnc]
  if fgnc==true : Normalized 0..1 coordinates specification (def=false)
  Related commands: addtext addline addrect ...
      (See command addtext and graphicatt for more details)
\end{verbatim} 
\piacommand{addfarc} \label{addfarc} 
\begin{verbatim} 
Adds a filled arc to the current graphic object
 defined by 3 points (+ graphic attribute)
 The Base/AxesDrawer is used to handle added arcs
 Alt<E> to remove added element
  Usage: addarc x1 y1 x2 y2 x3 y3 [GraphicAtt] [fgnc=false/true]
  if fgnc==true : Normalized 0..1 coordinates specification (def=false)
  Related commands: addtext addline addarrow addfrect addfrect
       addcirc addfcirc addfarc addpoly addfpoly graphicatt
\end{verbatim} 
\piacommand{addfarca} \label{addfarca} 
\begin{verbatim} 
Adds a filled arc to the current graphic object
 defined by the circle (center+radius), start angle and angular extension
 Angles are specified in degrees
  Usage: addfarca xc yc r a0deg dadeg [GraphicAtt] [fgnc=false/true]
  if fgnc==true : Normalized 0..1 coordinates specification (def=false)
  Related commands: addtext addline addarca addarc ...
\end{verbatim} 
\piacommand{addfcirc} \label{addfcirc} 
\begin{verbatim} 
Adds a filled circle to the current graphic object
 with the specified center and radius (+ graphic attribute)
 The Base/AxesDrawer is used to handle added circles
 Alt<E> to remove added element
  Usage: addcirc xcenter ycenter radius [GraphicAtt] [fgnc=false/true]
  if fgnc==true : Normalized 0..1 coordinates specification (def=false)
  Related commands: addtext addline addarrow addfrect addfrect
       addcirc addarc addfarc addpoly addfpoly graphicatt
\end{verbatim} 
\piacommand{addfoval} \label{addfoval} 
\begin{verbatim} 
Adds a filled oval (ellipse) to the current graphic object
 centered on xc,yc - semi-axis ds,dy (+ graphic attribute)
 The Base/AxesDrawer is used to handle added rectangle
 Alt<E> to remove added element
  Usage: addfoval xc yc dx dy [GraphicAtt] [fgnc=false/true]
  if fgnc==true : Normalized 0..1 coordinates specification (def=false)
  Related commands: addoval addline addarrow addfrect addcirc addfcirc
       addcirc addfcirc addarc addfarc addpoly addfpoly graphicatt
\end{verbatim} 
\piacommand{addfpoly} \label{addfpoly} 
\begin{verbatim} 
Adds a filled polygon to the current graphic object
  Usage: addploy 'x1,y1 x2,y2 x3,y3 ...' [GraphicAtt] [fgnc=false/true]
  Coordinates specified as pairs x,y in a single word (use simple or double quotes
  if fgnc==true : Normalized 0..1 coordinates specification (def=false)
  Related commands: addtext addline addarrow addfrect addfrect
       addcirc addfcirc addfarc  graphicatt
\end{verbatim} 
\piacommand{addfrect} \label{addfrect} 
\begin{verbatim} 
Adds a filled rectangle to the current graphic object
 between the specified positions (+ graphic attribute)
 The Base/AxesDrawer is used to handle added rectangle
 Alt<E> to remove added element
  Usage: addfrect x1 y1 x2 y2 [GraphicAtt] [fgnc=false/true]
  if fgnc==true : Normalized 0..1 coordinates specification (def=false)
  Related commands: addtext addline addarrow addrect
       addcirc addfcirc addpoly addfpoly graphicatt
\end{verbatim} 
\piacommand{addline} \label{addline} 
\begin{verbatim} 
Adds a line to the current graphic object
 at the specified position (+ graphic attribute)
 The Base/AxesDrawer is used to handle added lines
 Alt<E> to remove the added element
  Usage: addline x1 y1 x2 y2 [GraphicAtt] [fgnc=false/true]
  if fgnc==true : Normalized 0..1 coordinates specification (def=false)
  Related commands: addarrow addtext addrect addfrect 
       addmarker addcirc addfcirc addarc addfarc addpoly addfpoly graphicatt
\end{verbatim} 
\piacommand{addmarker} \label{addmarker} 
\begin{verbatim} 
Adds a marker to the current graphic object
 at the specified position (+ graphic attribute)
 The Base/AxesDrawer is used to handle added circles
 Alt<E> to remove added element
  Usage: addmarker xpos ypos [GraphicAtt] [fgnc=false/true]
  if fgnc==true : Normalized 0..1 coordinates specification (def=false)
  Related commands: addtext addline addarrow addfrect addfrect
       addcirc addfcirc addarc addfarc addpoly addfpoly graphicatt
\end{verbatim} 
\piacommand{addoval} \label{addoval} 
\begin{verbatim} 
Adds an oval (ellipse) to the current graphic object
 centered on xc,yc - semi-axis ds,dy (+ graphic attribute)
 The Base/AxesDrawer is used to handle added rectangle
 Alt<E> to remove added element
  Usage: addoval xc yc dx dy [GraphicAtt] [fgnc=false/true]
  if fgnc==true : Normalized 0..1 coordinates specification (def=false)
  Related commands: addfoval addline addarrow addfrect addcirc addfcirc
       addcirc addfcirc addarc addfarc addpoly addfpoly graphicatt
\end{verbatim} 
\piacommand{addpoly} \label{addpoly} 
\begin{verbatim} 
Adds a polyline/polygon to the current graphic object
  Usage: addploy 'x1,y1 x2,y2 x3,y3 ...' [GraphicAtt] [fgnc=false/true]
  Coordinates specified as pairs x,y in a single word (use simple or double quotes
  if fgnc==true : Normalized 0..1 coordinates specification (def=false)
  Related commands: addtext addline addarrow addfrect addfrect
       addcirc addfcirc addfarc  graphicatt
\end{verbatim} 
\piacommand{addrect} \label{addrect} 
\begin{verbatim} 
Adds a rectangle to the current graphic object
 between the specified positions (+ graphic attribute)
 The Base/AxesDrawer is used to handle added rectangle
 Alt<E> to remove added element
  Usage: addrect x1 y1 x2 y2 [GraphicAtt] [fgnc=false/true]
  if fgnc==true : Normalized 0..1 coordinates specification (def=false)
  Related commands: addtext addline addarrow addfrect
       addcirc addfcirc addarc addfarc addpoly addfpoly graphicatt
\end{verbatim} 
\piacommand{addtext} \label{addtext} 
\begin{verbatim} 
Adds a text string to the current graphic object
 at the specified position (+ color/font/pos/dir attributes) 
 The Base/AxesDrawer is used to handle added text strings
 Alt<E> to remove the added element
  Usage: addtext x y TextString [ColFontPosAtt] [fgnc=false/true]
  (use quotes '' for multi word text strings) 
  if fgnc==true : Normalized 0..1 coordinates specification (def=false)
 Text position/direction attribute: 
      horizleft horizcenter horizright
      vertbottom vertcenter verttop 
      textdirhoriz textdirvertup textdirvertdown 
  Related commands: addctext addline addarrow addrect addfrect
      addcirc addfcirc addarc addfrac addpoly addfpoly settitle graphicatt
\end{verbatim} 
\piacommand{addtitle} \label{addtitle} 
\begin{verbatim} 
Set the title string (top title / bottom title) 
   alias for settitle 
\end{verbatim} 
\piacommand{setaxelabels} \label{setaxelabels} 
\begin{verbatim} 
Set the X and Y axis labels for the current 2D graphic object 

  Usage: setaxelabels xLabel yLabel [ColorFntAtt]
  Related commands: settitle addtext graphicatt
\end{verbatim} 
\piacommand{settitle} \label{settitle} 
\begin{verbatim} 
Set the title string (top title / bottom title) for the current graphic object
  Usage: settitle TopTitle [BottomTitle] [fontAtt]
  Related commands: addtext graphicatt
\end{verbatim} 
\subsection{GraphicExport} \label{GraphicExport} 
Commands to export graphics (widget/windows in postscript or PI-RGB image files 
 \\[2mm]  \noindent 
\piacommand{imagcmap2eps} \label{imagcmap2eps} 
\begin{verbatim} 
imagcmap2eps: Current Image+ColorMap To EncapsulatedPostScript 
Usage: imagcmap2eps EPSFileName
\end{verbatim} 
\piacommand{imagcmap2ps} \label{imagcmap2ps} 
\begin{verbatim} 
w2ps: Current Image+ColorMap To PostScript 
Usage: imagcmap2ps 
\end{verbatim} 
\piacommand{psclosefile} \label{psclosefile} 
\begin{verbatim} 
psclosefile: close current postscript file 
Usage: w2psclosefile 
\end{verbatim} 
\piacommand{psgetfilename} \label{psgetfilename} 
\begin{verbatim} 
psgetfilename: Prints current PostScript file name 
Usage: psgetfilename 
\end{verbatim} 
\piacommand{pssetfilename} \label{pssetfilename} 
\begin{verbatim} 
pssetfilename: Sets current PostScript file name
Usage: pssetfilename FileName 
\end{verbatim} 
\piacommand{w2eps} \label{w2eps} 
\begin{verbatim} 
w2eps: Current Window To EncapsulatedPostScript 
Usage: w2eps EPSFileName
\end{verbatim} 
\piacommand{w2ps} \label{w2ps} 
\begin{verbatim} 
w2ps: Current Window To PostScript 
Usage: w2ps 
\end{verbatim} 
\piacommand{wdg2rgb} \label{wdg2rgb} 
\begin{verbatim} 
 Export the current widget to a PI-RGB file (.rgb)
 Usage : wdg2rgb PI-RGB_FileName  (.rgb)
 Related commands: pirgbdisp  win2rgb 
\end{verbatim} 
\piacommand{win2rgb} \label{win2rgb} 
\begin{verbatim} 
 Export the current window to a PI-RGB file (.rgb)
 Usage : win2rgb PI-RGB_FileName  (.rgb)
 Related commands: pirgbdisp  wdg2rgb 
\end{verbatim} 
\subsection{Graphics} \label{Graphics} 
Basic graphics and object display commands 
 \\[2mm]  \noindent 
\piahelpitem{PIConsole} \label{PIConsole} 
\begin{verbatim} 
Text output area and command editing window (console) 
>>>> Mouse controls : 
o Button-1: Rectangle selection for copy/paste 
o Button-2: Paste text in the command editing line 
o Button-3: activate display option menu 
>>>> Keyboard controls : 
o <Alt>O : activate display option menu   
o <Alt>V : Paste text in the command editing line 
o <Alt>A : Selection of the whole window for copy 
o <Alt>L : Command history (List of command history buffer) 
o <Ctl>A : Command editing -> Goto the beginning of line 
o <Ctl>E : Command editing -> Goto the end of line 
o <Ctl>K : Command editing -> Clear to the end of line 
o <Ctl>C : Stop/break command execution by PIACmd/Commander 
o Cursor left,right : Command editing -> Move cursor 
o Cursor Up,Down : recall command from history buffer 
o Backspace,Del : Command editing 
o <Return>,<Enter> : Execute command 

\end{verbatim} 
\piahelpitem{PIDraw3DWdg} \label{PIDraw3DWdg} 
\begin{verbatim} 
Manages display of 3-D objects (drawers)  
>>>> Mouse controls : 
o Button-2: Rotates the observer (camera) around object 
o Shift-Button-2: Rotates object with camera fixed 
  The object rotation mode can be assigned to Button-2 with <Alt>S 
o Button-3: Zoom control (Camera distance And/Or view angle) 
>>>> Keyboard controls : 
o <Alt>R : Resets the 3-D view and refreshes the display 
o <Alt>O : Displays a specific control window (default: PIDrawerTools) 
           (2-D histograms, contour plot ...) 
o <Alt>G : Show the PIDrawerTools (Graphic attributes of displayed Drawers) 
           Drawer 0 manages the axes, as well as the added text 
o <Alt>D : Shows the drawer manipulation pop-up menu 
o <Alt>V : Copy/Paste / Text paste at the current position (Drawer 0)
o <Alt>Z : Removes added graphic elements (handled by BaseDrawer - 0) 
o <Alt>E : Removes the last added graphic element 
o <Alt>A : Activate/Deactivate axes drawing 
o <Alt>S : Activate/Deactivate object rotation mode on Button-2 

\end{verbatim} 
\piahelpitem{PIImage} \label{PIImage} 
\begin{verbatim} 
Manages the display of a 2-D array (P2DArrayAdapter) as an image 
and controls a zoom widget, as well as a global image view widget 
>>>> Mouse controls : 
o Button-1: Display current coordinates and pixel value
  Position the cursor an refresh the zoom widget
o Button-2: Defines an image zone and positions the cursor 
o Button-3: Moves the viewed portion of the array inside the window 
>>>> Keyboard controls : 
o <Alt>R : Refresh display 
o <Alt>O : Shows the PIImageTools (image display parameter controls) 
o <Alt>G : Show the PIDrawerTools (Graphic attributes of overlayed graphics (Drawers)) 
o <Alt>D : Shows the drawer manipulation pop-up menu 
o <Alt>V : Copy/Paste / Text paste at the current cursor position 
o <Alt>C : Copy/Paste / Copies the selected regions content as text in the copy/paste buffer 
o <Alt>X : Show/Hide the Cut Window 
o <Alt>Z : Removes added graphic elements (handled by BaseDrawer - 0) 
o <Alt>E : Removes the last added graphic element 
o <Alt>+ or <Cntl>+ : Zoom in 
o <Alt>- or <Cntl>- : Zoom out 
o Cursor keys : Moves the image cursor 

\end{verbatim} 
\piahelpitem{PIScDrawWdg} \label{PIScDrawWdg} 
\begin{verbatim} 
Manages display of 2-D drawers with interactive zoom 
>>>> Mouse controls : 
o Button-1: Display current coordinates 
o Button-2: Defines a rectangle for zoom 
o Button-3: Defines a rectangle for Text-Info (<Alt>I) 
>>>> Keyboard controls : 
o <Alt>R : Refresh display 
o <Alt>O : Displays a specific control window (default: PIDrawerTools) 
           (2-D histograms, contour plot ...) 
o <Alt>G : Show the PIDrawerTools (Graphic attributes of displayed Drawers) 
           Drawer 0 manages the axes, as well as the added text 
o <Alt>D : Shows the drawer manipulation pop-up menu 
o <Alt>V : Copy/Paste / Text paste at the current position 
o <Alt>Z : Removes added graphic elements (handled by BaseDrawer - 0) 
o <Alt>E : Removes the last added graphic element 
o <Alt>I : Shows (or updates) a text info window on the selected rectangle 
o <Alt>M : Activate/Deactivate a measurement cursor on Button-1
o <Alt>L : Deactivate DX,DY print (see below)
>>>> Mouse + Keyboard controls : 
o Button-1 + <Alt>K : Set (reset) the reference point for DX,DY print 

\end{verbatim} 
\piahelpitem{Windows} \label{Windows} 
\begin{verbatim} 
Objects can be displayed in different windows, or overlayed on the 
previous display. The graphics attributes next,win,stack,same control 
the display window. 
o GraphicWindow : This is the default mode (gr_att=next)
  Graphic windows can be divided int zones. Object is displayed 
  in the next available position, removing a previously displayed 
  widget if necessary 
o Window : An object is displayed in its own window (gr_att= win) 
o StackWindow : multpile widgets can be stacked in a StackWindow (gr_att= stack) 
  A single widget is displayed a any time. Different widgets in a StackWindow 
  can be displayed using the stacknext command, as well as the StackTools item 
  in the Tools menu (from Menubar). An automatic cyclic display mode can also 
  be activated using the StackTools menu (Blink) 
o Most objects can be also be displayed overlayed 
  on the last displayed widget (gr_att= same) 
  or by specifying a widget name samew=Widgetname 
o The widget/window name can be specified (gr_att wname=Name) 
o The overlay can be on a selected rectangle of the last 
  displayed widget (gr_att: inset  or inset=fxmin,fxmax,fymin,fymax) 

  Related commands: newwin zone stacknext graphicatt setinsetlimits
\end{verbatim} 
\piacommand{drpanel} \label{drpanel} 
\begin{verbatim} 
Creates a new 2D drawing zone for addtext, addline 
 Usage: drpanel xmin xmax ymin ymax [GrAtt] [Name]
  Related commands: addtext addline addrect addcirc ...
\end{verbatim} 
\piacommand{graphicatt} \label{graphicatt} 
\begin{verbatim} 
To change default graphic options
  Usage: graphicatt att_list
att_list=def back to default values, Example: gratt 'red circlemarker5'
 ------------------ Graphic attribute list ------------------
>> Colors: defcol black white grey red blue green yellow
           magenta cyan turquoise navyblue orange siennared purple
           limegreen gold violet violetred blueviolet darkviolet
   or "color=name" "fgcolor=name" "bgcolor=name" ex: "color=red"
>> Lines: defline normalline thinline thickline dashedline thindashedline
          thickdashedline dottedline thindottedline thickdottedline
   or "line=type,width"   ex: "line=dotted,7"
>> Fonts:
   > Att: deffontatt normalfont boldfont italicfont bolditalicfont 
           smallfont smallboldfont smallitalicfont smallbolditalicfont
           bigfont bigboldfont bigitalicfont bigbolditalicfont
           hugefont  hugeboldfont hugeitalicfont hugebolditalicfont
   > Names: deffont courierfont helveticafont timesfont symbolfont 
   or "font=name,type,size"   ex: "font=courrier,bolditalic,10"
>> Marker: dotmarker<T>  plusmarker<T>  crossmarker<T> circlemarker<T>
           fcirclemarker<T> boxmarker<T> fboxmarker<T> trianglemarker<T>
           ftrianglemarker<T>  starmarker<T>  fstarmarker<T>
       with <T> = 1 3 5 7 .. 15 , Example fboxmarker5 , plusmarker9 ...
   or "marker=type,size"   ex: "marker=plus,10"
>> ArrowMarker: basicarrow<T>  trianglearrow<T>  ftrianglearrow<T>
                arrowshapedarrow<T> farrowshapedarrow<T>
       with <T> = 5 7 .. 15 , Example trianglearrow7 ...
   or "arrow=type,size"   ex: "arrow=arrowshaped,10"
------ Specific options for image displays:
>> ColorTables: defcmap  grey32  invgrey32  colrj32  colbr32
                grey128  invgrey128  colrj128  colbr128
                red32cm  green32cm  blue32cm  yellow32cm
                orange32cm cyan32cm violet32cm
                midas_pastel midas_heat midas_rainbow3 midas_bluered
                midas_bluewhite midas_redwhite
                multicol16 multicol64 rgb216cm rgb512cm rgb4096cm
>> revcmap : reverse colorMap
>> ZoomFactors :  zoomxN   ex: zoomx1 zoomx2 zoomx3 ...
                  zoom/N   ex: zoom/2 zoom/3 zoom/4 ...
>> imagecenter=ix,iy : Position the image in widget
>> lut=ltyp,min,max : Sets LUT type and min/max
                   (ltyp=lin/log/sqrt/square/rgb)
>> autolut=alt[,ns[,min,max]] : AutoLut method selection 
                   (alt=minmax/meansig/hispeak/histail/hisrng)
>> invx,invy,exchxy : image axes configuration
>> cdreal,cdimag,cdphase,cdmod,cdmod2 (default=cdmod): Displayed value
     for complex arrays (real/imaginary part, phase, module, module^2)
--- General purpose options:
>> stat,stats / nsta,nstat,nostat,nostats : Toggle statistic display
>> title,tit / notitle,notit -> Toggle automatic title display
>> Choose display window: next same win stack inset
>> for Axes / Axe labels / LogScale / xylimits / defdrrect
       see setaxesatt command

   Related commands: setaxesatt setinsetlimits 
\end{verbatim} 
\piacommand{newwin} \label{newwin} 
\begin{verbatim} 
To Create a New Graphic window, with zones 
  Window size can be specified 
    Usage: newwin [nx ny [sizeX sizeY]] 
  Related commands: zone
\end{verbatim} 
\piacommand{setaxesatt} \label{setaxesatt} 
\begin{verbatim} 
To set default axes attributes 
  Usage: setaxesatt att_list 
Color/Line/Font attributes and axes attributes 
>> Axes: axesnone stdaxes=defaxes=boxaxes boxaxesgrid 
         fineaxes fineaxesgrid centeredaxes finecenteredaxes 
         centeredaxesgrid finecenteredaxesgrid
         axescenter=x0,y0 (only with centered axes, default "axescenter=")
         grid nogrid labels nolabels  
         ticks noticks minorticks nominorticks 
         extticks intticks extintticks 
         nbticks=X_NTicks,Y_NTicks  
         tickslen=MajTickLenFrac,MinTickLenFrac 
>> Axe labels font size: fixedfontsize/autofontsize=fszf 
         autofontsize=fsizef: Font size computed automatically 
         fixedfontsize: Use font size attribute (BaseDrawer) 
>> Scale type: linx liny logx logy -> Lin/Log Scales for 2D plots 
>> AxeDirection: Reverse X/Y axe drawing direction 
         revax revay axelr axedu (or axerl/axeud -> revax/revay) 
>> xylimits=xmin,xmax,ymin,ymax  -> Forces X-Y limits in 2-D plots 
>> defdrrect=xmin,xmax,ymin,ymax -> Defines drawing rectangle 2-D plots 
          The rectangle is defined as a fraction of the widget size

\end{verbatim} 
\piacommand{setdefafsz} \label{setdefafsz} 
\begin{verbatim} 
Define the Global Default value for PIDrawer AutoFontSize Fraction 
 Usage: setdefafsz value 
   0<value<1 : default PIDrawer font size, as a fraction of the widget size
   Its value can be set by the PIDEFAFSZFRAC environment variable 
   See also graphic attributes : fixedfontsize autofontsize=frac 
\end{verbatim} 
\piacommand{setinsetlimits} \label{setinsetlimits} 
\begin{verbatim} 
Define the display rectangle for drawers added as insets 
 over existing graphic objects - limits expressed as fraction 
 graphic object size (0. .. 1.) Xmax at right, YMax top 
  Usage: setinsetlimits xmin xmax ymin ymax
  Related commands: graphicatt /inset
\end{verbatim} 
\piacommand{stacknext} \label{stacknext} 
\begin{verbatim} 
Displays the next widget on stack window 
  Usage: stacknext
\end{verbatim} 
\piacommand{zone} \label{zone} 
\begin{verbatim} 
To Divide the Graphic window 
  Usage: zone [nx=1 ny=1]
  Related commands: newwin
\end{verbatim} 
\subsection{Obj. Display} \label{ObjZZDisplay} 
Most useful commands to view and display objects  
 \\[2mm]  \noindent 
\piacommand{bargraph} \label{bargraph} 
\begin{verbatim} 
Bar-Graph view of a sequence of values 
 Usage: bargraph ValueVarName [gr_opt]  
    or  bargraph ValueVarName LabelVarName ColPosVarName [gr_opt] 
  ValueVarName,LabelVarName,ColPosVarName are PIACmd interpreter 
     variable name (vectors) 
 - ValueVarName: Sequence of values to be represented
 - LabelVarName: Corresponding labels
 - ColPosVarName: Corresponding colors or color,position pairs 
 Use a dash (-) or ! as placeholder for LabelVarName/ColPosVarName
 Specific graphic options: fill/nofill packfrac=value 
    horizontalbars/verticalbars  barvaluelabel/nobarvaluelabel
 Related commands: disp nt2d vecplot ...
\end{verbatim} 
\piacommand{contour} \label{contour} 
\begin{verbatim} 
Creates and displays a ContourDrawer 
 Usage: contour objectName [graphic_att/specific_opt] 
 Specific Options 
    ncont=[number of contours (automatic levels) ] 
    niv/lev=[values for contours, separated by ','] 
    lstep=[nomber,first_value,increment for contours ] 
    bspline : use bspline algo for contour 
    3spl : use cubic spline algo for contour 
    labon : put labels for contours 
\end{verbatim} 
\piacommand{disp} \label{disp} 
\begin{verbatim} 
Displays an object 
 Usage: disp nameobj [graphic_attributes]
  Related commands: surf nt2d nt3d vecplot
\end{verbatim} 
\piacommand{gfd2d} \label{gfd2d} 
\begin{verbatim} 
Displays Points (X-Y) with error-bars from a GeneralFit Data 
 Usage : gfd2d nameobj numvarx erreur=(x y xy) [graphic_attributes]
  Related commands: gfd3d nt2d nt3d 
  ----- OBSOLETE: utilisez nt2d -----
\end{verbatim} 
\piacommand{gfd3d} \label{gfd3d} 
\begin{verbatim} 
Displays 3D-Points (X-Y-Z) with error-bars from a GeneralFit Data 
 Usage : gfd3d nameobj numvarx numvary erreur=(x y z xy xz yz xyz) [graphic_attributes]
  Related commands: gfd2d nt2d nt3d 
  ----- OBSOLETE: utilisez nt3d -----
\end{verbatim} 
\piacommand{imag} \label{imag} 
\begin{verbatim} 
Displays an object as an image 
 Usage: imag nameobj [graphic_attributes]
  Related commands: disp imagnav surf nt2d nt3d vecplot
\end{verbatim} 
\piacommand{imagnav} \label{imagnav} 
\begin{verbatim} 
Displays an object as an image with the ImageNavigator viewer 
Usage: imagnav nameobj [graphic_attributes]
  Related commands: disp imag surf nt2d nt3d vecplot
\end{verbatim} 
\piacommand{nt2d} \label{nt2d} 
\begin{verbatim} 
Displays Points (X-Y) [with error-bar / Weight / Label ] from an NTuple 
 Usage : nt2d nameobj varx vary [errx erry wt label graphic_attributes]
  Related commands: disp surf nt2dcn nt2dci nt3d  gfd2d vecplot
\end{verbatim} 
\piacommand{nt2dci} \label{nt2dci} 
\begin{verbatim} 
   with colors specified by a column content (as color index) 
 Usage : nt2dci nameobj color varx vary [errx erry wt label graphic_attributes]
  Related commands: disp  surf  nt2d nt2dci nt3d  gfd2d vecplot
\end{verbatim} 
\piacommand{nt2dcn} \label{nt2dcn} 
\begin{verbatim} 
   with colors specified by a column content (as color names) 
 Usage : nt2dcn nameobj color varx vary [errx erry wt label graphic_attributes]
  Related commands: disp  surf  nt2d nt2dci nt3d  gfd2d vecplot
\end{verbatim} 
\piacommand{nt2dvec} \label{nt2dvec} 
\begin{verbatim} 
Creates and displays a flow chart from ntuple variables
 Usage: nt2dvec x y vx vy [graphic_att] 
\end{verbatim} 
\piacommand{nt3d} \label{nt3d} 
\begin{verbatim} 
Displays 3D-Points (X-Y-Z) [with error-bars / Weight / Label ] from an NTuple 
 Usage : nt3d nameobj varx vary varz [errx erry errz wt label graphic_attributes]
  Related commands: disp  surf  nt2d gfd3d 
\end{verbatim} 
\piacommand{ntcont} \label{ntcont} 
\begin{verbatim} 
Creates and displays a ContourDrawer (from a NTuple)
 Usage: ntcont NTupleName varx vary varz [graphic_att/specific_opt] 
        specific options 
    ncont=[number of contours (automatic levels) ] 
    niv/lev=[values for contours, separated by ','] 
    lstep=[nomber,first_value,increment for contours ] 
    bspline : use bspline algo for contour 
    3spl : use cubic spline algo for contour 
    labon : put labels for contours 
\end{verbatim} 
\piacommand{pirgbdisp} \label{pirgbdisp} 
\begin{verbatim} 
Read and display RGB-image object (PIPixRGBArray) from file 
 Usage : pirgbdisp PI-RGB_FileName [gr_opt] 
 gr_opt (def=rgb216cm):zoom, rgb4096cm rgb32768cm lut=rgb[,min,max]
 Related commands: win2rgb wdg2rgb 
\end{verbatim} 
\piacommand{surf} \label{surf} 
\begin{verbatim} 
Displays an object as a 3D surface 
 Usage: surf nameobj [graphic_attributes]
  Related commands: disp nt2d nt3d vecplot
\end{verbatim} 
\piacommand{textdrawer} \label{textdrawer} 
\begin{verbatim} 
Multi line text darwer 
 Usage : textdrawer LinesVarName AttVarName [gr_opt] 
  LinesVarName,AttVarName are PIACmd interpreter variables
 - LinesVarName: Lines to be displayed
 - AttVarName: Corresponding font/marker/color attributes
 Use a dash (-) or ! as placeholder for AttVarName
 Specific graphic options: frame/noframe
 Related commands: disp ... 
\end{verbatim} 
\piacommand{vecplot} \label{vecplot} 
\begin{verbatim} 
Displays Points (X-Y) with coordinates defined by two vectors 
 Usage : vecplot nameVecX nameVecY [graphic_attributes]
  Related commands: disp nt2d 
\end{verbatim} 
\subsection{Object Management} \label{ObjectZManagement} 
\noindent 
\piacommand{cd} \label{cd} 
\begin{verbatim} 
Change current directory
 Usage: cd [dirname]
\end{verbatim} 
\piacommand{copy} \label{copy} 
\begin{verbatim} 
Copy objects (Alias cp) 
  Usage: copy name_from name_to
  Related commands: cp new...
\end{verbatim} 
\piacommand{cp} \label{cp} 
\begin{verbatim} 
Copy objects (Alias copy) 
  Usage: cp name_from name_to
  Related commands: copy new...
\end{verbatim} 
\piacommand{del} \label{del} 
\begin{verbatim} 
Deletes an object (Alias: rm) 
 Usage: del nameobj [nameobj2 ...]
  Related commands: rm delobjs rename
\end{verbatim} 
\piacommand{delobjs} \label{delobjs} 
\begin{verbatim} 
Delete a set of objects with names matching a pattern (x?y*)
 Usage: delobjs nameobjpattern 

  Related commands: del rename
\end{verbatim} 
\piacommand{listdirs} \label{listdirs} 
\begin{verbatim} 
Prints the list of directories
 Usage: listdirs [patt=*] 
 patt : * , ? 
\end{verbatim} 
\piacommand{listobjs} \label{listobjs} 
\begin{verbatim} 
Prints the list of objects (Alias: ls)
 Usage: listobjs [patt=*]  
    Or  listobjs patt VarName 
   Obj. name pattern patt in the form abc?x* or /*/x?y ... 
\end{verbatim} 
\piacommand{ls} \label{ls} 
\begin{verbatim} 
 Alias for listobjs 
 Usage: ls [patt=*] [VarName]
\end{verbatim} 
\piacommand{mkdir} \label{mkdir} 
\begin{verbatim} 
Create a directory
 Usage: mkdir dirname [true]
 if second argument==true, the directory's KeepOld attribute is set to true
\end{verbatim} 
\piacommand{mv} \label{mv} 
\begin{verbatim} 
Rename an object (Alias: rename) 
 Usage: mv nameobj namenew
  Related commands: rename del delobjs
\end{verbatim} 
\piacommand{pwd} \label{pwd} 
\begin{verbatim} 
Prints current directory
 Usage: pwd
\end{verbatim} 
\piacommand{rename} \label{rename} 
\begin{verbatim} 
Rename an object (Alias: mv) 
 Usage: rename nameobj namenew
  Related commands: mv del delobjs
\end{verbatim} 
\piacommand{rm} \label{rm} 
\begin{verbatim} 
Deletes an object (Alias: del) 
 Usage: rm nameobj [nameobj2 ...]
  Related commands: del delobjs rename
\end{verbatim} 
\piacommand{rmdir} \label{rmdir} 
\begin{verbatim} 
Removes an empty directory
 Usage: remove dirname
\end{verbatim} 
\piacommand{setdiratt} \label{setdiratt} 
\begin{verbatim} 
Sets directory attributes
 Usage: setdiratt dirname KeepOldFlag(=true/false)
   KeepOldFlag=true Object with the same name is moved to old
   when adding objects
\end{verbatim} 
\subsection{Objects} \label{Objects} 
\noindent 
\piacommand{line2nt} \label{line2nt} 
\begin{verbatim} 
Fills (append) an NTuple from the line content 
  Usage: line2nt ntname col0 col1 ... 
  Related commands: newnt line2vec ntline2var ntcol2var
\end{verbatim} 
\piacommand{line2vec} \label{line2vec} 
\begin{verbatim} 
Creates a vector from the line 
  Usage: line2vec vecname v0 v1 v2 ... 
  Related commands: newvec line2nt
\end{verbatim} 
\piacommand{newdt} \label{newdt} 
\begin{verbatim} 
Creates a datatable 
 Usage: newdt name v1:t1 v2:t2 v3:t3 .. vn:tn
        newdt name nvar
    vi : variable name
    ti : variable type
         r8,r4 for 8 and 4 bytes float
         i8,i4 for 8 and 4 bytes signed integer
         s for string
  Related commands: newnt newh1d  newh2d newprof[e] newgfd
\end{verbatim} 
\piacommand{newgfd} \label{newgfd} 
\begin{verbatim} 
Creates GeneralFit Data object 
 Usage: newgfd nvar nalloc [errx(0/1)]
  Related commands: newh1d  newh2d  newprof[e] newdt newnt 
\end{verbatim} 
\piacommand{newh1d} \label{newh1d} 
\begin{verbatim} 
Creates a 1D histogramm 
 Usage: newh1d name xmin xmax nbin
  Related commands: newh2d  newprof[e] newdt newnt  newgfd 
\end{verbatim} 
\piacommand{newh2d} \label{newh2d} 
\begin{verbatim} 
Creates a 2D histogramm 
 Usage: newh2d name xmin xmax nbinx ymin ymax nbiny
  Related commands: newh1d  newprof[e] newdt newnt  newgfd 
\end{verbatim} 
\piacommand{newmtx} \label{newmtx} 
\begin{verbatim} 
Creates (and optionaly fills) a matrix 
  Usage: newmtx name sizeX(Col) sizeY(Lines) [f(i,j) [dopt] ] 
  Related commands: newvec
\end{verbatim} 
\piacommand{newnt} \label{newnt} 
\begin{verbatim} 
Creates a ntuple 
 Usage: newnt name v1 v2 v3 .. vn
        newnt name nvar
  Related commands: newdt newh1d  newh2d newprof[e] newgfd 
\end{verbatim} 
\piacommand{newprof} \label{newprof} 
\begin{verbatim} 
Creates a profile histogramm 
 Usage: newprof name xmin xmax nbin [ymin ymax]
  Errors represent the data spread in the X bin 
  Related commands: newh1d  newh2d newprofe newdt newnt newgfd 
\end{verbatim} 
\piacommand{newprofe} \label{newprofe} 
\begin{verbatim} 
Creates a profile histogramm 
 Usage: newprofe name xmin xmax nbin [ymin ymax]
  Errors represent the error on the data mean in the X bin 
  Related commands: newh1d  newh2d newprof newdt newnt newgfd 
\end{verbatim} 
\piacommand{newvec} \label{newvec} 
\begin{verbatim} 
Creates (and optionaly fills) a vector 
 Usage: newvec name size [f(i) [dopt] ] 
  Related commands: newmtx line2vec
\end{verbatim} 
\piacommand{ntcol2var} \label{ntcol2var} 
\begin{verbatim} 
Object NTupleInterface column to an interpreter variable 
  Usage: ntline2var objname column_number varname [LoopParam start:end[:step] ] 
  Related commands: vec2var ntline2var
\end{verbatim} 
\piacommand{ntline2var} \label{ntline2var} 
\begin{verbatim} 
Object NTupleInterface line to an interpreter variable 
  Usage: ntline2var objname line_number varname 
  Related commands: vec2var ntcol2var
\end{verbatim} 
\piacommand{objaoper} \label{objaoper} 
\begin{verbatim} 
Perform an operation through the object adapter NObjMgrAdapter::PerformOperation()
  Usage: objaoper objname operation [arg1 ...] 
  Examples of defined operations : 
  Matrices: row indx_row , col indx_col 
  Arrays: slicexy indx_Z , slicexz indx_Y, sliceyz indxX 

\end{verbatim} 
\piacommand{vec2var} \label{vec2var} 
\begin{verbatim} 
Vector content to an interpreter variable varname = 'v0 v1 v2 ...' 
  Usage: line2vec vecname varname [LoopParam start:end[:step] ]
  Related commands: line2vec ntline2var
\end{verbatim} 
\subsection{PIACmd} \label{PIACmd} 
piapp interpreter (class PIACmd) additional builtin commands 
 \\[2mm]  \noindent 
\piahelpitem{exitpiapp} \label{exitpiapp} 
\begin{verbatim} 
To end the piapp session 
\end{verbatim} 
\piahelpitem{helpwindow} \label{helpwindow} 
\begin{verbatim} 
To display the Help window 
\end{verbatim} 
\piahelpitem{stop} \label{stop} 
\begin{verbatim} 
To stop (break) interpreter (PIACmd/Commander) execution
\end{verbatim} 
\subsection{SkyMapCmd} \label{SkyMapCmd} 
4 Pi spherical, local maps manipulation commands 
and spherical harmonics analysis Ylm. 
 This is mainly Based on SOPHYA SkyMap and Samba modules.  
 \\[2mm]  \noindent 
\piacommand{alm2cl} \label{alm2cl} 
\begin{verbatim} 
Project alm to cl
 Usage: alm2cl alm cl
\end{verbatim} 
\piacommand{alm2map} \label{alm2map} 
\begin{verbatim} 
Generate SkyMap map(double) from Alm
 Usage: alm2map almmat map(double) nside
    (see command settypemap)
\end{verbatim} 
\piacommand{cl2llcl} \label{cl2llcl} 
\begin{verbatim} 
Project cl to l*(l+1)*cl
 Usage: cl2llcl cl llcl
\end{verbatim} 
\piacommand{cl2map} \label{cl2map} 
\begin{verbatim} 
Generate SkyMap map(double) from Cl
 Usage: cl2map clvec map(double) nside [fwhm]
    (see command settypemap)
\end{verbatim} 
\piacommand{clmean} \label{clmean} 
\begin{verbatim} 
Compute mean for a cl vector
 Usage: clmean cl imin,imax [meanvarname]
   imin,imax  = compute between these indices
   meanvarname  = variable name to store mean
\end{verbatim} 
\piacommand{clmult} \label{clmult} 
\begin{verbatim} 
Multiply a cl by a constant
 Usage: clmult cl val
\end{verbatim} 
\piacommand{clop} \label{clop} 
\begin{verbatim} 
operation on a cl
 Usage: clop cl(double) op1 cl1(double) [op2 cl2(double)] [op2 cl3(double)] [...]
   Do "cl op1= cl1", "cl op2=cl2", ...
      where op = +,-,*,/
\end{verbatim} 
\piacommand{clrebin} \label{clrebin} 
\begin{verbatim} 
rebin a cl into an ntuple
 Usage: clrebin cl ntuple nbin,bin0
   nbin: rebin by nbin
   bin0: begin rebinning at bin bin0 (def=0)
\end{verbatim} 
\piacommand{crmapmask} \label{crmapmask} 
\begin{verbatim} 
Create a map mask(double) (nside) between latitudes lat1,lat2 longitudes lon1,lon2
 Usage: crmapmask mapmsk(double) nside lat1,lat2 lon1,lon2 [valmsk,valnomsk]
    mask pixels between [lat1,lat2] ([-90,90] in degrees)
                and    [lon1,lon2] ([0,360[ in degrees)
                (for no mask "!")
    valmsk=value to be written into masked pixels (def=0)
    valnomsk=value to be written into unmasked pixels (def=1)
          (see command settypemap)
\end{verbatim} 
\piacommand{crmaskfrmap} \label{crmaskfrmap} 
\begin{verbatim} 
Create a map mask(double) (nside) relative to an other map(double) pixels values
 Usage: crmaskfrmap mapmsk(double) nside map(double) v1,v2 [valmsk,valnomsk]
    mask if v1<mapmsk(i)<v2
    valmsk=value to be written into masked pixels (def=0)
    valnomsk=value to be written into unmasked pixels (def=1)
\end{verbatim} 
\piacommand{map2alm} \label{map2alm} 
\begin{verbatim} 
SkyMap map(double) to Alm
 Usage: map2alm map(double) almmat [lmax] [niter]
   lmax: if <=0 or "!" use default (3*nside-1)
   niter: number of iterations (<=0 or def=3)
\end{verbatim} 
\piacommand{map2cl} \label{map2cl} 
\begin{verbatim} 
SkyMap map(double) to Cl
 Usage: map2cl map(double) clvec [lmax] [niter]
   lmax: if <=0 or "!" use default (3*nside-1)
   niter: number of iterations (<=0 or def=3)
\end{verbatim} 
\piacommand{map2double} \label{map2double} 
\begin{verbatim} 
Convert a float map to a double map
 Usage: map2double map(float)
\end{verbatim} 
\piacommand{map2float} \label{map2float} 
\begin{verbatim} 
Convert a double map to a float map
 Usage: map2float map(double)
\end{verbatim} 
\piacommand{map2local} \label{map2local} 
\begin{verbatim} 
Project a map(double) into a local map(double)
 Usage: map2local map(double) localmap(double) nx,ny angleX,angleY phi0,theta0 [x0,y0] [angle]
   nx,ny: number of pixels in x(col),y(row) direction
          X-axis==phi, Y-axis==theta
   angleX,angleY: total angle aperture in x,y direction (degrees)
   phi0,theta0: define origin in phi,theta (degrees)
   x0,y0: map phi0,theta0 to pixel x0,y0 ("!" or def=middle of the localmap)
   angle: angle (degrees) of rotation between x-axis of  map-coordinate system
           and the tangent to parallel on the sphere (def: 0.)
\end{verbatim} 
\piacommand{map2map} \label{map2map} 
\begin{verbatim} 
Convert a map(double) into an other map type
 Usage: map2map map(double) type [nside]
   type= H for Healpix
         T for ThetaPhi
   if nside <=1 use nside from map
\end{verbatim} 
\piacommand{mapcover} \label{mapcover} 
\begin{verbatim} 
Print the covering of a map(double)
 Usage: mapcover map(double) v1,v2 [varname]
    v1,v2: good pixels have v1<=val<=v2 (def=0.99,1.01)
          (use default (0.99,1.01): "!")
    $varname: percent of sky covering
\end{verbatim} 
\piacommand{mapmult} \label{mapmult} 
\begin{verbatim} 
Multiply a map(double) by a constant
 Usage: mapmult map(double) cste
\end{verbatim} 
\piacommand{mapop} \label{mapop} 
\begin{verbatim} 
operation on a map(double)
 Usage: mapop map(double) op1 map1(double) [op2 map2(double)] [op2 map3(double)] [...]
   Do "map op1= map1", "map op2=map2", ...
      where op = +,-,*,/
\end{verbatim} 
\piacommand{maproj} \label{maproj} 
\begin{verbatim} 
Project a map(double) into an other one
 Usage: maproj map(double) mapproj(double) [nside]
   Create mapproj(nside) and project map into mapproj
   (use "maproj map mapproj" to make a copy)
\end{verbatim} 
\piacommand{mapstat} \label{mapstat} 
\begin{verbatim} 
Statistics from a map(double)
 Usage: mapstat map(double) [msk(double)] [meanvarname] [sigmavarname]
   msk = mask sphere used as weight
     if msk(i)<=0 do not use that pixel
     if msk(i)>0  use that pixel with weight msk(i)
   msk = "!" means no mask sphere
   meanvarname  = variable name to store mean
   sigmavarname = variable name to store sigma
   ("!" means do not store)
\end{verbatim} 
\piacommand{maskmap} \label{maskmap} 
\begin{verbatim} 
Mask a map(double) with a mask map(double)
 Usage: maskmap map msk
    operation is map(i) *= msk(theta,phi)
\end{verbatim} 
\piacommand{resol2szidx} \label{resol2szidx} 
\begin{verbatim} 
Compute SizeIndex value (=nside for HEALPix) for a
 given resolution, (resol in arcminutes)
 Usage: resol2szidx resol
\end{verbatim} 
\piacommand{settypemap} \label{settypemap} 
\begin{verbatim} 
Set le type de map(double) par default
 Usage: settypemap type
   type= H for Healpix (default)
         T for ThetaPhi
\end{verbatim} 
\piacommand{szidx2resol} \label{szidx2resol} 
\begin{verbatim} 
Compute resolution for a given SizeIndex (=nside for HEALPix)
 Usage: szidx2resol szidx_m
\end{verbatim} 
\piacommand{typemap} \label{typemap} 
\begin{verbatim} 
Imprime le type de map
 Usage: typemap map
\end{verbatim} 
\subsection{SophyaCmd} \label{SophyaCmd} 
\noindent 
\piacommand{errorellipse} \label{errorellipse} 
\begin{verbatim} 
   Adds an error ellipse, specified by its center (xc,yc) 
  and error matrix (covariance) parameters  SigX^2,SigY^2,Covar 
  A global scaling parameters scale , graphic attributes and 
   nomber of points can optionnaly be specified
  if the -fill flag specified, plots a filled ellipse 

\end{verbatim} 
\piacommand{mollgrid} \label{mollgrid} 
\begin{verbatim} 
Creates a spherical coordinate grid in Molleweide projection 
 Usage: mollgrid [Nb_Parallel] [Nb_Meridien] [graphic_att] 
\end{verbatim} 
\piacommand{setprjmoldefval} \label{setprjmoldefval} 
\begin{verbatim} 
Set default value for Molleweide projection of spherical maps (outside maps)
 Usage: setprjmoldefval OutOfMapValue 
\end{verbatim} 
\subsection{pawCmd} \label{pawCmd} 
CERN PAW like expression plotting commands  
 \\[2mm]  \noindent 
\piacommand{h/2d/geth} \label{hZ2dZgeth} 
\begin{verbatim} 
Get histo projections, bandes and slices
 h/2d/geth nameh2d         : infos on 2D histogramme projections
 h/2d/geth h nameh2d px    : copy X projection into histo h
 h/2d/geth h nameh2d py    : copy Y projection into histo h
 h/2d/geth h nameh2d bx n  : copy X band number n into histo h
 h/2d/geth h nameh2d by n  : copy Y band number n into histo h
 h/2d/geth h nameh2d sx n  : copy X slice number n into histo h
 h/2d/geth h nameh2d sy n  : copy Y slice number n into histo h
  Related commands: h/plot/2d
\end{verbatim} 
\piacommand{h/cadd} \label{hZcadd} 
\begin{verbatim} 
Add a constant to an histogram, a vector or a matrix
 h/cadd namehisto val
  Related commands: h/cmult h/oper
\end{verbatim} 
\piacommand{h/cmult} \label{hZcmult} 
\begin{verbatim} 
Multiply an histogram, a vector or a matrix by a constant
 h/cmult namehisto val
  Related commands: h/cadd h/oper
\end{verbatim} 
\piacommand{h/copy} \label{hZcopy} 
\begin{verbatim} 
Copy content of object1 into object2
 objects are Vector,Matrix,Histo,Histo2D
 h/copy namefrom nametocopy [i1[:i2]] [j1[:j2]] [ic1[:jc1]]
   copy obj1Dfrom(i1->i2) into obj1Dto(ic1->)
   copy obj2Dfrom(i1,j1->i2,j2) into obj2Dto(ic1,jc1->)
 Warning: elements from i1 to i2 included are copied
 If obj1Dto does not exist, is is created with size i2-i1+1
    or obj2Dto with size i2-i1+1,j2-j1+1
 The adressed content of obj?Dfrom is overwritten
 The non-adressed content of obj?Dfrom is left unchanged
  Related commands: copy
\end{verbatim} 
\piacommand{h/deriv} \label{hZderiv} 
\begin{verbatim} 
Derivate a 1D histogram
 h/deriv nameh1d
  Related commands: h/integ v/integ v/deriv
\end{verbatim} 
\piacommand{h/err} \label{hZerr} 
\begin{verbatim} 
Set Histo,Histo2D error to function of bin content value
 h/err namehisto expr_func
  Related commands: h/set/err
\end{verbatim} 
\piacommand{h/get\_vec} \label{hZgetZvec} 
\begin{verbatim} 
Get content of histogram 1D profile or 2D into vector (matrix)
 h/get_vec nameh1d namevector [cont,err2,absc] [proj]
 h/get_vec nameh2d namematrix [cont,err2,absc]
   cont : get histogramme content
   err2 : get histogramme error^2
   absc : get histogramme low bin abscissa (1D only)
     proj :
            show  : show available projections for Histo2D
            px    : get X projection
            py    : get Y projection
            bx n  : get X band number n
            by n  : get Y band number n
            sx n  : get X slice number n
            sy n  : get Y slice number n
  Related commands: h/put_vec
\end{verbatim} 
\piacommand{h/integ} \label{hZinteg} 
\begin{verbatim} 
Integrate a 1D histogram
 h/integ nameh1d [norm]
 norm<=0 means no normalisation (def norm=1)
  Related commands: h/deriv v/integ v/deriv
\end{verbatim} 
\piacommand{h/oper} \label{hZoper} 
\begin{verbatim} 
Operation on histograms vectors or matrices
 h/oper @ h1 h2 hres
        hres = h1 @ h2   with @ = (+,-,*,/)
 For vectors and matrices, operations are elements by elements
  Related commands: h/cadd h/cmult
\end{verbatim} 
\piacommand{h/plot/2d} \label{hZplotZ2d} 
\begin{verbatim} 
Specific plot for 2D histogrammes
 h/plot/2d nameh2d show        : infos on 2D histogramme projections
 h/plot/2d nameh2d h    [dopt] : plot 2D histogramme
 h/plot/2d nameh2d px   [dopt] : plot X projection
 h/plot/2d nameh2d py   [dopt] : plot Y projection
 h/plot/2d nameh2d bx n [dopt] : plot X band number n
 h/plot/2d nameh2d by n [dopt] : plot Y band number n
 h/plot/2d nameh2d sx n [dopt] : plot X slice number n
 h/plot/2d nameh2d sy n [dopt] : plot Y slice number n
                      n < 0 means Show Info
\end{verbatim} 
\piacommand{h/put\_vec} \label{hZputZvec} 
\begin{verbatim} 
Put content of vector (matrix) into content of histogram 1D or 2D
 h/put_vec nameh1d namevector [cont,err2]
 h/put_vec nameh2d namematrix [cont,err2]
     cont : put into histogramme content
     err2 : put into histogramme error^2
  Related commands: h/get_vec
\end{verbatim} 
\piacommand{h/rebin} \label{hZrebin} 
\begin{verbatim} 
Rebin a 1D histogram or profile
 h/rebin nameh1d nbin
\end{verbatim} 
\piacommand{h/set/cont} \label{hZsetZcont} 
\begin{verbatim} 
Set Histo,Histo2D content for range of bins or range of values
 h/set/cont namehisto setvalue i1[:i2]  [j1[:j2]]
     set content to setvalue for bin range i1:i2  j1:j2
 h/set/cont namehisto setvalue v v1:v2
     set content to setvalue for content values range v1:v2
 h/set/cont namehisto setvalue e e1:e2
     set content to setvalue for error values range v1:v2
  Related commands: h/set/err
\end{verbatim} 
\piacommand{h/set/err} \label{hZsetZerr} 
\begin{verbatim} 
Set Histo,Histo2D errors for range of bins or range of values
 h/set/err namehisto setvalue i1[:i2]  [j1[:j2]]
     set error to setvalue for bin range i1:i2  j1:j2
 h/set/err namehisto setvalue v v1:v2
     set error to setvalue for content values range v1:v2
 h/set/err namehisto setvalue e e1:e2
     set error to setvalue for error values range v1:v2
  Related commands: h/set/cont
\end{verbatim} 
\piacommand{herr/mean} \label{herrZmean} 
\begin{verbatim} 
Perform bin mean computation for HistoErr and Histo2DErr
 herr/mean nameherr todo
    todo = +1 : compute mean
         = -1 : cancel computation
\end{verbatim} 
\piacommand{herr/variance} \label{herrZvariance} 
\begin{verbatim} 
Perform bin mean and variance computation for HistoErr and Histo2DErr
 herr/variance nameherr todo
    todo = +1 : compute mean and variance
         = -1 : cancel computation
\end{verbatim} 
\piacommand{n/assoc/col} \label{nZassocZcol} 
\begin{verbatim} 
Merge ntuples columns with an association index
 n/assoc/col ntass[,u/i] nt_1[,ext] nt_2[,ext] nt_assoc[,icass]
 Merge ntuples nt_1 and nt_2 columns into ntuple ntass
   with line association number given by ntuple nt_assoc
 ---
 icass: association number given by column "icass" of nt_assoc (def=0)
 ---
 ext : character string to add at the end of the ntuple variable names
   if "ext"="!" no extension is added
   if no "ext" is given, automatic extension "_0" "_1" "_2" ...
 ---
 u   : do the union of all the lines of nt_1 and nt_2
       (all ssociated and un-associated lines of nt_1 and nt_2)
 i   : do the intersection of all the lines of nt_1 and nt_2
       (only associated lines of nt_1 and nt_2)
 def : write all lines of nt_1 with possible associated line of nt_2
       (number of entries of ntass = number of entries of nt_1)
\end{verbatim} 
\piacommand{n/copy} \label{nZcopy} 
\begin{verbatim} 
Copy all or some variables of a ntuple into another new ntuple
 n/merge ntnew nt [vname1 vname2 vname3 ...]
\end{verbatim} 
\piacommand{n/merge} \label{nZmerge} 
\begin{verbatim} 
Merge ntuples (by adding lines)
 n/merge nt nt_1 nt_2 ... nt_n
 Merge ntuples nt_i lines into ntuple nt
\end{verbatim} 
\piacommand{n/merge/col} \label{nZmergeZcol} 
\begin{verbatim} 
Merge ntuples (by adding columns for each line)
 n/merge/col nt nt_1[,ext] nt_2[,ext] ... nt_n[,ext]
 Merge ntuples nt_i columns into ntuple nt
 ext : character string to add at the end of the ntuple variable names
   if "ext"="!" no extension is added
   if no "ext" is given, automatic extension "_0" "_1" "_2" ...
\end{verbatim} 
\piacommand{n/pl} \label{nZpl} 
\begin{verbatim} 
alias to n/plot (see n/plot)
\end{verbatim} 
\piacommand{n/plot} \label{nZplot} 
\begin{verbatim} 
Plot NTuple variables "a la paw" (alias n/pl)
 n/plot nameobj.x_exp [cut] [w_exp] [loop] [gratt]
 n/plot nameobj.y_exp%x_exp [cut] [loop] [gratt]
 n/plot nameobj.z_exp%y_exp%x_exp [cut] [loop] [gratt]
        for default use ! , loop=i1[:i2[:di]]
 for 1 dimensional (1D) projection:
   use graphic option "keepbin" to keep previous
   plot binning for 1D distribution
  Related commands: plot2dw plot3d
\end{verbatim} 
\piacommand{n/proj} \label{nZproj} 
\begin{verbatim} 
Project NTuple in histogram (1D or 2D) a la paw
 n/proj nameproj nameobj.x_exp [cut] [w_exp] [loop] [gratt]
 n/proj nameproj nameobj.y_exp%x_exp [cut] [w_exp] [loop] [gratt]
        for default use ! , loop=i1[:i2[:di]]
 for 1 dimensional (1D) projection:
   no display is performed if "nameproj" is an existing histogram
   unless a graphic option "gratt" is given
  Related commands: projh1d projh2d projprof exptovec
\end{verbatim} 
\piacommand{n/read} \label{nZread} 
\begin{verbatim} 
Read columns in an ASCII file and fill a NTuple or a DataTable
 n/read nt fascii [options] var_1,c_1 var_2,c_2 ... var_n,c_n 
 nt : NTuple or DataTable (see options) name
 var_i,c_i : variable name, associated column in ASCII file [0,n[
 where [options] are:
   "-dt": create a DataTable of double instead of a NTuple
   "=s": separator character is 's' (could be "	")
   "-^abcd": do not read lines beginning with string "abcd" 
   "+^abcd": read only lines beginning with string "abcd" 
   "-abcd": do not read lines which contain string "abcd" 
   "+abcd": read only lines which contain string "abcd" 
 these options may be repeated (ex: "-^abcd" "-^xyz") 
   - in case of "do not read" options are added with logical AND 
   - in case of "read only" options are added with logical OR 
\end{verbatim} 
\piacommand{n/scan} \label{nZscan} 
\begin{verbatim} 
Scan NTuple a la paw
 n/scan nameobj[.exp1%exp2%exp3] cut loop
               [-f:filename] [list_of_variables]
  loop : iev1[:iev2[:diev]] or !
  cut  : cut expression or 1. or !
  list_of_variables : default is all variables
                    : var1 var2 var3 ... varn
                    : var1 : var2   (from var1 to var2)
                    :  : var2   (from first variable to var2)
                    : var1 :    (from var1 to last variable)
                  ex: "v1 : v3 v7 v4 : v6 v2 v9 :"
 exp1%exp2%exp3 :
           if given add exp1,exp2,exp3 to the variable list
 -f:filename : write into "filename", Default is to stdout
\end{verbatim} 
\piacommand{reset} \label{reset} 
\begin{verbatim} 
Reset histograms vectors or matrix
 reset nameobj
\end{verbatim} 
\piacommand{v/deriv} \label{vZderiv} 
\begin{verbatim} 
Derivate a TVector / vector
 v/deriv namevec [deriv_option]
 deriv_option -1 replace v[i] with v[i]-v[i-1]
               0 replace v[i] with (v[i+1]-v[i-1])/2 (default)
              +1 replace v[i] with v[i+1]-v[i]
  Related commands: h/integ h/deriv v/integ
\end{verbatim} 
\piacommand{v/integ} \label{vZinteg} 
\begin{verbatim} 
Integrate a TVector / vector
 v/integ namevec [norm]
 norm<=0 means no normalisation (def norm=0)
  Related commands: h/integ h/deriv v/deriv
\end{verbatim} 
\piacommand{v/sort} \label{vZsort} 
\begin{verbatim} 
Sort a vector into itself
 v/sort namevec [+1/-1]
 "+1" means increasing order, "-1" decreasing order
\end{verbatim} 
