English

Greek
         
Μενού Επιλογών

Ενότητες
Γενικα για το PAW

Το PAW (Physics Analysis Workstation) είναι ένα λογισμικό σχεδιασμένο για τη στατιστική και μαθηματική ανάλυση δεδομένων καθώς και τη γραφική αναπαράστασή τους.
Αποτελείται από ένα σύνολο εντολών (commands) οι οποίες δρούν σε αντικείμενα (objects) (π.χ διανύσματα (vectors) ιστογράμματα (histograms) κτλ.).

Για να "τρέξετε" το λογισμικό PAW πληκτρολογήστε την εντολή PAW. Στην οθόνη σας θα δείτε :

Calling new version of paw-X11

 ******************************************************
 *                                                    *
 *            W E L C O M E    to   P A W             *
 *                                                    *
 *       Version 2.08/14      21 January 1997         *
 *                                                    *
 ******************************************************
 Workstation type (?=HELP) <CR>=1 : ?

 List of valid workstation types:
       0:  Alphanumeric terminal
    1-10:  Describe in file higz_windows.dat
  n.host:  Open the display on host (1 < n < 10)
    7878:  FALCO terminal
    7879:  xterm

 Workstation type (?=HELP) <CR>=1 : 
   

Χρειάζεται μόνο να εισάγετε τον τύπο του workstation ή του terminal που χρησιμοποιείτε για να ξεκινήσετε.
Η γενική δομή των εντολών του PAW είναι:

PAW> object/action

π.χ η εντολή : PAW> vector/draw σχεδιάζει ένα διάνυσμα

Η πρώτη εντολή που έχει ενδιαφέρον να χρησιμοποιήσετε είναι η εντολή help. Αυτή παρουσιάζει στην οθόνη σας τις εντολές του PAW ομαδοποιημένες σε κατηγορίες :

PAW > help

From  /...

 1:   KUIP          Command Processor commands.
 2:   MACRO         Macro Processor commands.
 3:   VECTOR        Vector Processor commands.
 4:   HISTOGRAM     Manipulation of histograms, Ntuples.
 5:   FUNCTION      Operations with Functions. Creation and plotting.
 6:   NTUPLE        Ntuple creation and related operations.
 7:   GRAPHICS      Interface to the graphics packages HPLOT and HIGZ.
 8:   PICTURE       Creation and manipulation of HIGZ pictures.
 9:   ZEBRA         Interfaces to the ZEBRA RZ, FZ and DZ packages.
10:   FORTRAN       Interface to MINUIT, COMIS, SIGMA and FORTRAN Input/Output.
11:   NETWORK       To access files on remote computers.
12:   OBSOLETE      Obsolete commands

Enter a number ('0'=Top, '\'=one level back, 'Q'=command mode): 
   

Επιλέξτε την κατηγορία που σας ενδιαφέρει πληκτρολογώντας τον αριθμό που αντιστοιχεί σε αυτήν. Π.χ για την κατηγορία HISTOGRAM πληκτρολογήστε 4. Θα δείτε στην οθόνη σας τη λίστα με τις εντολές που αναφέρονται στην κατηγορία HISTOGRAM.
Επίσης χρήσιμη εντολή βοήθειας είναι η εντολή :

PAW> USAGE όνομα εντολής

Π.χ. αν θέλετε να μάθετε τη σύνταξη της εντολής 1d (βλ. παρακάτω) πληκτρολογείστε : PAW> USAGE 1d

Αντί εισαγωγής παρατίθονται ορισμένες από τις βασικές εντολές του PAW συνοδευόμενες από απλά παραδείγματα και γραφικές αναπαραστάσεις.
Για μια λεπτομερή περιγραφή του PAW μπορείτε να επισκεφτείτε τη σελίδα : PAW tutorial
διαβάσετε το εκτενές manual ή/και να προμηθευτείτε το λογισμικό.

. . . Επιστροφή στην αρχή

Διανύσματα (Vectors)

Οι εντολές του PAW μπορούν να δρουν πάνω σε διανύσματα δηλαδή να δημιουργούν, να καταστρέφουν, να αναπαριστούν διανύσματα. Μερικές βασικές εντολές είναι οι ακόλουθες:

vector/create a(100) r 1*100δημιουργεί ένα διάνυσμα a, με 100 στοιχεία που έχουν όλα τιμή =1
vector/create b(5) r 10 20 30 40 50δημιουργεί ένα διάνυσμα b, με 5 στοιχεία. Το πρώτο έχει τιμή 10, το δεύτερο τιμή 20 κτλ.
vector/create c(5) r
vector/input c(5) r 1 2 3 4 5
δημιουργεί το ήδη υπάρχον διάνυσμα c
vector/print cτυπώνει στην οθόνη σας όλα τα στοιχεία του διανύσματος c
vector/delete cδιαγράφει από τη μνήμη το διάνυσμα c
vector/delete *διαγράφει από τη μνήμη όλα τα υπάρχοντα διανύσματα
vector/draw bαναπαριστά γραφικά το διανύσμα b
graph 5 b cαναπαριστά γραφικά τα 5 στοιχεία των ήδη υπαρχόντων διανυσμάτων b και c
graphics/hplot/symbols vx vy 5 22 0.5αναπαριστά γραφικά τα 5 στοιχεία των διανυσμάτων vx και vy, θέτοντας σε κάθε σημείο ένα σύμβολο (αυτό που αντιστοιχεί στο νούμερο 22) μεγέθους 0.5. Μπορείτε να διαλέξετε το σύμβολο αλλάζοντας το νούμερο (από... μέχρι )
graphics/hplot/errors vx vy erx ery 5 22 0.1αναπαριστά γραφικά τα διάνυσματα vx, vy καθώς και τα σφάλματα τους erx και ery αντιστοίχως. Κάθε ζεύγος σημείων αναπαριστάται με το σύμβολο 22 μεγέθους 0.1


Παράδειγμα 1
null 0 10 10 60
vector/create vx(5) r  1 2 3 4 5
vector/create vy(5) r 15 25 35 45 55
vector/create erx(5) r 5*0.1
vector/create ery(5) r 5*1
graph/hplot/errors vx vy erx ery 5 22 0.1
v/delete *
*** Το null 0 10 10 60 :    (δημιουργεί άξονες συντεταγμένων x: από 0 έως 10 και y: από 10 έως 60)
. . . Επιστροφή στην αρχή

Συναρτήσεις (functions) και Ιστογράμματα (histograms)

Function/plot sin(x) 0 10Αναπαριστά γραφικά τη μονοπαραμετρική συνάρτηση x μεταξύ των τιμών x=0 καιx =10
Fun1 100 sin(x)/x 100 0 10Απεικονίζει γραφικά τη μονοπαραμετρική συνάρτηση sin(x)/x.. Ταυτόχρονα δημιουργεί ένα μονοδιάστατο ιστόγραμμα (με όρισμα 100) με 100 ιστούς (bins), κάτω όριο 0 και άνω όριο 10.
Fun2 110 abs(sin(x**2+y**2) 40 ?2 2 40 ?2 2 c/b>Απεικονίζει γραφικά τη δι-παραμετρική συνάρτηση abs(sin(x**2+y**2) ). Οι άξονες των x και y έχoυν 40 ιστούς, άνω όριο 2 και κάτω όριο ?2. Ταυτόχρονα δημιουργεί ένα δι-διάστατο ιστόγραμμα με όρισμα 110.
Hi/plot100Aπεικονίζει γραφικά το ήδη υπάρχον στη μνήμη ιστόγραμμα (με όρισμα 100).
Hi/plot 200 sΑπεικονίζει γραφικά το ήδη υπάρχον στη μνήμη ιστόγραμμα με όρισμα 200 πάνω στο ιστόγραμμα με όρισμα 100.
Hi/delete *Διαγράφει από τη μνήμη όλα τα υπάρχοντα ιστογράμματα.

    Παράδειγμα

Fun1 10 sin(x) 20 0 10
Fun1 20 cos(x) 20 0 10

1d 100 ?myhistogram? 200 0 100Δημιουργεί ένα κενό ιστόγραμμα με όρισμα 100 και όνομα ?myhistogram?. Το ιστόγραμμα έχει 200 ιστούς , κάτω όριο 0 και άνω όριο 100.
Put/contents 10 vectaΑντικαθιστά το περιεχόμενο του ήδη υπάρχοντος ιστογράμματος 10 με τις τιμές του ήδη υπάρχοντος διανύσματος vecta.
H/fit 100 gΚάνει προσαρμογή στο ιστόγραμμα 100 με μια γκαουσιανή συνάρτηση.

    Παράδειγμα

V/cre vecta (11) 1 2 3 4 5 6 4 3 2 1

1d 10 ?test? 11 0. 100.
Put/contents 10 vecta
H/plot 10
H/fit 100 g

Hi/op/add id1 id2 id3 c1 c2Προσθέτει τα περιεχόμενα των ιστογραμμάτων id1και id2 πολλαπλασιασμένα με τις τιμές c1 και 2 αντιστοίχως. Το αποτέλεσμα αποθηκεύεται στο ιστόγραμμα με όρισμα id3.
Id3=c1*id1+c2*id2
Hi/op/subtract id1 id2 id3 c1 c2Id3= c1*id1-c2*id2
Hi/op/multiply id1 id2 id3 c1 c2Id3=c1*id1*c2*id2
Hi/op/divide id1 id2 id3 c1 c2Id4= c1*id1/c2*id2

    Παράδειγμα

Ve/cre a(5) r 10 20 30 40 50

Ve/cre b(5) r 100 200 300 400 500
1dhisto 10 ?a? 5 10 500
1dhistho 20 ?b? 5 10 500
put/contents 10 a
put/contents 20 b
hi/op/add 10 20 300 3 1
set hcol 3 !    επιλογή χρώματος για το γράφημα
h/plot 300
set hcol 2
h/plot 20 s
set hcol 4
h/plot 10 s
. . . Επιστροφή στην αρχή

Sigma

Πρόκειται για έναν επεξεργαστή που διαχειρίζεται διανύσματα. Καλείται με το πρόθεμα sigma (Στην περίπτωση που χρησιμοποιείται macro καλείται με την εντολή Application sigma. Όλες οι εντολές που πληκτρολογούνται μετά την άνωθεν εντολή εκτελούνται από τον επεξεργαστή sigma. Η εντολή exit γυρίζει τον έλεγχο στο PAW)

Sigma tot=vsum(a)Προσθέτει τα στοιχεία του ήδη υπάρχοντος διανύσματος α και αποθηκεύει το αποτέλεσμα της πρόσθεσης στο βαθμωτό μέγεθος tot
Sigma y=array (3, 5& 20& 100)Δημιουργεί το διάνυσμα y με 3 και στοιχεία και τιμές 5, 20 και 100
Sigma x=array (300, 0#10)Δημιουργεί το διάνυσμα x με 300 στοιχεία και τιμές από 0 έως 10
Sigma sinus=sin(x)Δημιουργεί το διάνυσμα sinus με στοιχεία τα ημίτονα των στοιχείων του διανύσματος x

Παράδειγμα 1
Να γίνει η γραφική παράσταση του πολυωνύμου y=p1+p2*x+p3*x**2+p4*x**3 , όπου xε [1, 10] και p1=1, p2=2, p3=3, p4=4
sigma x=array(300,0#10)
    
sigma par=array (4,1#4)
sigma y= par(1)+par(2)*x+par(3)*x**2+par(4)*x**3
graph 100 x y
. . . Επιστροφή στην αρχή

Macro

Macro είναι ένα σύνολο PAW εντολών (καθένα από τα παραπάνω παραδείγματα μπορεί να αποτελεί ένα macro) συγκεντρωμένα σε ένα αρχείο (filename.kumac) το οποίο δημιουργείται από έναν οποιοδήποτε κειμενογράφο. Ενα αρχείο μπορεί να περιέχει ένα ή και περισσοτέρα σύνολα εντολών (macros). H δομή ενός τέτοιου αρχείου είναι η εξής (Test.kumac ):

Macro name1 [parameter-list]
?                           
σύνολο εντολών                           
?.                          
Return                           
Macro name2 [parameter-list]
?                           
σύνολο εντολών                           
?.                          
Return                           

Για την εκτέλεση όλων των εντολών που βρίσκονται στο test.kumac πληκτρολογείστε :
PAW> exec test

Για την εκτέλεση του macro με όνομα name2 πληκτρολογείστε :
PAW> exec test#name2

Παράδειγμα: EDU1_1
macro  func1
v/del *
v/cr x(100)
v/cr y(100)
do k=1,100
v/inp x([k]:[k]) [k]
v/inp y([k]:[k]) [k]
enddo
vmul y y y 1. 1.
igset mtype 20
v/plot y%x
return
macro func2
v/del *
v/cr x(100)
v/cr y(100)
v/cr e(100)
v/cr dx(100) r 100*0.5
v/inp x(1:100) 100*1.
sigma x=sum(x)
sigma y=100.*exp(-0.5*x/100.)*sin(x*5*3.14/100.)
sigma e=sqrt(abs(y))
igset mtype 0
v/plot y%x
gr/hpl/err x y dx e 100 22 .2
return

Παράδειγμα:EDU1_2
macro edu_func [id2]
v/del *
v/cr x(100)
v/cr y(100)
v/cr e(100)
v/cr dx(100) r 100*0.5
if [id2].eq.1 then
do k=1,100
v/inp x([k]:[k]) [k]
v/inp y([k]:[k]) [k]
enddo
vmul y y y 1. 1.
igset mtype 20
v/plot y%x
elseif [id2].eq.2 then
v/inp x(1:100) 100*1.
sigma x=sum(x)
sigma y=100.*exp(-0.5*x/100)*sin(x*5*3.14/100)
sigma e=sqrt(abs(y))
igset mtype 0
v/plot y%x
gr/hpl/err x y dx e 100 22 .2
endif
return

Παράδειγμα EDU1_3
macro edu_func [id1]=100 [id2]=1
v/del *
v/cr x([id1])
v/cr y([id1])
v/cr e([id1])
v/cr dx([id1]) r [id1]*0.5
if [id2].eq.1 then
do k=1,[id1]
v/inp x([k]:[k]) [k]
v/inp y([k]:[k]) [k]
enddo
vmul y y y 1. 1.
igset mtype 20
v/plot y%x
elseif [id2].eq.2 then
v/inp x(1:[id1]) [id1]*1.
sigma x=sum(x)
sigma y=100.*exp(-0.5*x/[id1])*sin(x*5*3.14/[id1])
sigma e=sqrt(abs(y))
igset mtype 0
v/plot y%x
gr/hpl/err x y dx e [id1] 22 .2
endif
return

Παράδειγμα:EDU1_3
macro edu_file [id1] [id2]
if [id2].eq.1 then
fort/file 69 edu1.ps
elseif [id2].eq.2 then
fort/file 69 edu2.ps
endif
meta 69 -111
exec edu1_3 [id1] [id2]
close 69
return
. . . Επιστροφή στην αρχή

Comis

Ο επεξεργαστής COMIS επιτρέπει την εκτέλεση FORTRAN ρουτίνων μέσα στον περιβάλλον του PAW. Επικοινωνεί με τις εντολές του PAW μέσω διανυσμάτων και συναρτήσεων. Ο κώδικας COMIS μπορεί να εισαχθεί σ' ένα macro ως εξής:

macro example
....
                                          ....    λίστα εντολών PAW
....
                            application COMIS QUIT
...
                                  ... fortran κώδικας ...
END
QUIT
....
                                          ....    λίστα εντολών PAW
....
κ.ο.κ

Παράδειγμα
macro new_vect
v/cre y(10) r  1 2 3 4 5 6 7 8 9 10
              application COMIS QUIT
              subroutine DEMO
              vector y !  δηλώνει στο COMIS ότι υπάρχει το διάνυσμα y
              vector x(10) ! δημιουργεί καινούριο διάνυσμα
              do 10 k=1, 10
              temp=i
              x(i)=y(i)*sqrt(xx)*10
          10  continue
              END

              call  DEMO
              END
              QUIT
v/print x
graph 10 x y
return
. . . Επιστροφή στην αρχή

Χρήσιμα Links
      Download PAW
      Reference Manual
      PAW Tutorial
. . . Επιστροφή στην αρχή

   © Ιούλιος 2005  -   Ι.Π.Φ.   Ε.Κ.Ε.Φ.Ε. "ΔΗΜΟΚΡΙΤΟΣ" Επιμέλεια Ιστοσελίδας Κουβάκης Ιωάννης ®