@startuml


class CalculationTask {
model
scan
domain
emitter
region
..
files
}

class Model {
    index
    ..
    dlat
    dAS
    dS1S2
    V0
    Zsurf
    Texp
    rmax
}

class Scan {
    index
    ..
    filename
    mode
    initial_state
    energies
    thetas
    phis
    alphas
}

class Domain {
    index
    ..
    rotation
    registry
}

class Emitter {
    index

}

class Region {
    index
    ..
    range
}

CalculationTask *-- Model
CalculationTask *-- Scan
CalculationTask *-- Domain
CalculationTask *-- Emitter
CalculationTask *-- Region

class Project {
    scans
    domains
    model_handler
    cluster_generator
}

    class ClusterGenerator {
        count_emitters()
        create_cluster()
    }

class ModelHandler {
    create_tasks()
    add_result()
}

Model ..> ModelHandler
Scan ..> Project
Domain ..> Project
Emitter ..> ClusterGenerator
Region ..> Project

Project *-left- ModelHandler
Project *- ClusterGenerator

hide empty members

@enduml