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
1 change: 1 addition & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -42,6 +42,7 @@ For a general overview of our (O2) software, organization and processes, please
* [Quick try](doc/ModulesDevelopment.md#quick-try)
* [Configuration](doc/ModulesDevelopment.md#configuration-1)
* [Implementation](doc/ModulesDevelopment.md#implementation-1)
* [Naming convention](doc/ModulesDevelopment.md#naming-convention)
* [Committing code](doc/ModulesDevelopment.md#committing-code)
* [Data sources](doc/ModulesDevelopment.md#data-sources)
* [Readout](doc/ModulesDevelopment.md#readout)
Expand Down
14 changes: 14 additions & 0 deletions doc/ModulesDevelopment.md
Original file line number Diff line number Diff line change
Expand Up @@ -26,6 +26,7 @@
* [Quick try](#quick-try)
* [Configuration](#configuration-1)
* [Implementation](#implementation-1)
* [Naming convention](#naming-convention)
* [Committing code](#committing-code)
* [Data sources](#data-sources)
* [Readout](#readout)
Expand Down Expand Up @@ -414,6 +415,19 @@ An aggregator inherits from `AggregatorInterface` and in particular this method:

The `aggregate` method is called whenever the _policy_ is satisfied. It gets a map with all the declared QualityObjects. It is expected to return a new Quality based on the inputs.

## Naming convention

We apply a naming convention for Task, Check and Aggregator names, i.e. how they are named in QCDB, not their class names. Here are the rules:
- minimally describe the scope of the task/check
- do not add detetor code, it will be there anyway in the QCDB path. If an actor processes data from a different detector/subsystem, it is allowed to add its code
- do not add "QC", it is obvious it is QC
- do not add "Task" or "Check", process names are marked as such and corresponding objects go to "MO" and "QO" directories
- do not add "sync", "async" or "mc", it is obvious from the context we run QC and we use a correct path prefix in QCDB
- ideally use less than 16 characters, which is the limit of data description in DPL.

Good name examples are "Tracks", "Clusters", "PID", "Cells".
In case that a QC config file include multiple detectors, possibly with the same task names, one can add the `taskName` parameter in the body of a task configuration structure to use the preferred name and change the root key to a unique id, which shall be used only for the purpose of navigating a configuration file.

## Committing code

To commit your new or modified code, please follow this procedure
Expand Down