Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 3 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,9 @@ python scripts/generate_analysis_config.py
```
`analyse` executes the analysis and optional plug-ins. `plot` renders figures using the produced ROOT file.

## Plug-in architecture
See [docs/plugin_class_diagram.puml](docs/plugin_class_diagram.puml) for the relationships between plug-in interfaces, managers, and example implementations.

## Example plug-ins
The configuration files contain analysis and plotting directives.

Expand Down
47 changes: 47 additions & 0 deletions docs/plugin_class_diagram.puml
Original file line number Diff line number Diff line change
@@ -0,0 +1,47 @@
@startuml
left to right direction
skinparam {
linetype ortho
packageStyle rectangle
classAttributeIconSize 0
shadowing false
dpi 150
pageMargin 10
pageWidth 8.27in
pageHeight 11.69in
roundCorner 15
classFontName Helvetica
}

hide empty members

package plug #LightYellow {
top to bottom direction
interface IAnalysisPlugin {
+onInitialisation()
+onEvent()
+onFinalisation()
}

class AnalysisPluginManager {
+register()
}

interface IPlotPlugin {
+run()
}

class PlotPluginManager {
+register()
}

class RocCurvePlugin
class CutFlowPlotPlugin
}

IAnalysisPlugin <|-- RocCurvePlugin
IPlotPlugin <|-- CutFlowPlotPlugin
AnalysisPluginManager o--> IAnalysisPlugin : manages
PlotPluginManager o--> IPlotPlugin : manages

@enduml