Employing the LiCAS analysis framework for MONALISA a.k.a. the "Java" project.

12
Employing the LiCAS analysis framework for MONALISA a.k.a. the "Java" project

Transcript of Employing the LiCAS analysis framework for MONALISA a.k.a. the "Java" project.

Page 1: Employing the LiCAS analysis framework for MONALISA a.k.a. the "Java" project.

Employing the LiCAS analysis framework

for MONALISA

a.k.a. the "Java" project

Page 2: Employing the LiCAS analysis framework for MONALISA a.k.a. the "Java" project.

Analysis starting point

• Pre existing data analysis– MATLAB routines written by Matt

– Java framework written by LiCAS (John Dale)

– Routines from earlier work (ATLAS group)

– A vast body of algorithms in the literature

Page 3: Employing the LiCAS analysis framework for MONALISA a.k.a. the "Java" project.

Java starting point

• Mature Object Oriented (OO) language

• Important versions have been:– Ver 1.1 (basic core in place)– Ver 1.2 aka Java 2 (many new libraries)– Ver 1.5 aka Java 5 upgraded the language

• We user latest version 1.6 (Java 6)– code written with Netbeans software

Page 4: Employing the LiCAS analysis framework for MONALISA a.k.a. the "Java" project.

Netbeans IDEUser friendly environment for

• writing,

• compiling,

• testing

• running – Java – (and other languages)

Page 5: Employing the LiCAS analysis framework for MONALISA a.k.a. the "Java" project.

What does OO really mean?• Tasks delegated to "methods" in classes• Linear programming in functions which become "coupled"

• Dataflow via (long) chains of short messages• Dataflow is via detailed parameters

• Responsibility is delegated via a method (named after the task) to a class which agrees to take on the role

• Responsibility for tasks is distributed arbitrarily throughout the code

• You don't need to know how a job gets done• You often have to understand what a function is doing

internally when you call it, certainly what the parameters do

Page 6: Employing the LiCAS analysis framework for MONALISA a.k.a. the "Java" project.

OO is often misunderstood dismissively

• you can design and write linear code to have all the benefits of OO code but:– you have to do all the "heavy lifting" (an OO compiler

will do much of that for you)– the users of linear code can get round your design

and inadvertently miss the benefits of your design• (C++ "dodgy" OO language for this reason)

– even if linear code is written "OO" style, users still have to read your functions in detail to know that

Page 7: Employing the LiCAS analysis framework for MONALISA a.k.a. the "Java" project.

Delegating:Digging a trench

Q: How does an army officer dig a trench?

A: He yells out "Sergeant dig me a trench"

not

"Private! Swing your axe just here, etc"

ad nausem

Page 8: Employing the LiCAS analysis framework for MONALISA a.k.a. the "Java" project.

Important OO ideas

• Object:– Any entity to which agrees to handle

messages

• Class:– An object which gets things done when it

receives a message

• Interface:– this is a contract for classes to sign up to– compliance is "enforced" by the compiler

Page 9: Employing the LiCAS analysis framework for MONALISA a.k.a. the "Java" project.

Important OO ideas 2

• Inheritance: – An implicit compiler convention

• A more specialised version of an object inherits from its general "super" object– methods are inherited– contractual obligations are inherited– (most) internal data is inherited

Page 10: Employing the LiCAS analysis framework for MONALISA a.k.a. the "Java" project.

Inheritance: Diagram conventionMaking a Canine entity bark

public void printBark(Canine c) {

System.out.println(c.getBark());

}

N.B. This method doesn't "care" which specific kind of canine c is.

Page 11: Employing the LiCAS analysis framework for MONALISA a.k.a. the "Java" project.

Early phase of the project

• Basic steps:– Learn basics of writing Java in NETBEANS– Get a simple example of Java code working– Starting looking over LiCAS framework with

Paul– Take simple example analysis method from

MATLAB which Matt has written– Put example method into the framework– Start working on reading and writing our data

and results using the framework

Page 12: Employing the LiCAS analysis framework for MONALISA a.k.a. the "Java" project.

Advanced parts of the project

• Once you're an expert– Use GIACoNDE to put our data into a context– Document a process for moving functions

from MATLAB into the framework– Run through a "cradle to grave" analysis on

some raw experimental data– Document a users guide for the analysis run