Skip to content

sync to O2 22.07.2019 - #2

Merged
jmyrcha merged 124 commits into
jmyrcha:devfrom
AliceO2Group:dev
Jul 22, 2019
Merged

sync to O2 22.07.2019#2
jmyrcha merged 124 commits into
jmyrcha:devfrom
AliceO2Group:dev

Conversation

@jmyrcha

@jmyrcha jmyrcha commented Jul 22, 2019

Copy link
Copy Markdown
Owner

No description provided.

davidrohr and others added 30 commits July 3, 2019 18:08
 - o2::its::IOUtils
 - o2::its::IndexTableUtils
 - o2::its::MathUtils
 - o2::its::RecoWorkflow
 - o2::its::constants::IndexTable
 - o2::its::constants::Math
 - o2::its::constants::PDGCodes
Provide a way to configure the G4 physics via a connection
to the ConfigurableParam system.

Possible G4 physics settings are enumerated in a dedication enumeration
class. The user can choose a physics list by saying, for instance,

o2-sim --configKeyValues="G4.physicsmode=kFTFP_BERT_optical_biasing"
Container for the bad channels in EMCAL/DCAL stored in
the CCDB. Storing (index/status) of bad or warm cells.
Cell status can be checked with a dedicated getter,
where indices not stored in the container are
considered as good cells.

Additional functionality:
- Combination of bad channel map from different
  time stamps
- Comparison of different bad channel maps
  (must be identical in channel IDs and channel status)

For visualization a row-col representation of the
EMCAL bad channel map is created on-the-fly.

Implementation does not handle time stamps itself
but only the bad channel content - time stamps
are expected to be handled by general CCDB
functionality.
Test coverage:
- Channel set: Each channel
- Channel update: Each channel
- Pattern test: Dedicated pattern of bad and warm cells
- Comparator test: Equal, not equal
- Merge test: Disjunct, overlapping
The former now has printf-like syntax, the latter uses the native
python / fmt syntax.
After commit 70c6e7b it was not possible
to have a single argument like the publishing mode at the end of the argument pack.
* decrease verbosity of the CCDB api

* Add one more little test (QC-213)
Just like an InputSpec is a query on the available inputs, an OutputSpec
is really a query on the produced outputs, not a specific touple of
(DataOrigin, DataDescription, DataSubSpecification).

This hides its internal details in an std::variant and changes all the
associated code to use DataSpecUtils helpers in order to extract
information as needed.

This is preparatory to have OutputSpec support wildcards for the
subspec.
This allows easily binding secondary objects to their primary
counterparts.
Only changes in cmake-related files in this commit. Basically all
CMakeLists.txt have been modified, plus most of the *.cmake ones.
Fix momentum getter in TrackReference
* Clang requires LLVM on some platforms, so if LLVM is not there,
  this will fail.
* We need to protect against usage of simulation packages when
  Geant4 is not there.
* Update ROOT requirements to v6-16-00
matthiasrichter and others added 28 commits July 19, 2019 09:32
This extends DPL make<T> with ROOT-serialization from TObject derived types
to all types imlementing ROOT ClassDef interface and thus having a Root dictionary.

If a type has both a ROOT dictionary and is messageable, the unserialized
transmission takes precedence.
There is no way for the framework API to automatically detect the output type
std::vector<std::pair<evIdx, o2::dataformats::MatchInfoTOF>> to be ROOT serializable,
that's why the serialization type needs to be explicitely specified.
Adding MessageContext::make_scoped to return a unique object to handle
lifetime.

The scope handler ownes the context object and when it goes out of scope,
the objet will be scheduled in the context. If the context is configured
with the `send` hook, the object is directly sent throw this hook. Otherwise
it is added to the message list and sent when the computation ends.

Using the scoped context object for the DataAllocator::snapshot method
This allows promt sending if the context is configured with corresponding
callback.
`DispatchPolicy` describes on per-device basis when completed objects are dispatched
for sending, either at the end of computation - the default and current behavior - or
immediately when ready. Depending on the `DispatchPolicy` operation, the `DataProcessingDevice`
configures the `MessageContext` with a dispatch callback. The dispatch policy can be customized
in the usual DPL manner.
Configuration is done depending on the dispatch policy. If the policy operation
is DispatchOp::WhenReady, the MessageContext is initialized with the callback
handling FairMQParts object.

A corresponding doSend method is added to DataProcessor to send FairMQParts
object.
Using `snapshot` to publish data which triggers prompt sending.
This reverts commit 2f80513.
The commit changes the precedence order for serialization method for vectors
of types types which are both messageable and ROOTSerializable. For those
types, ROOT serialization took precedence until now. Many workflows depend on
this, because the InputRecord API is not complete in this respect.
* Use MCompLabels in place of custom boilerplate

* Fix unspotted warning
Attempt at documenting how the DPL analysis framework works. This
is far from finished, but good enough as a starting point.
COLLISION, not COLLISIONS.
* Add asArrowTable() method to create new tables from slices.
* Add size() method to get number of entries.
@jmyrcha
jmyrcha merged commit 8db615e into jmyrcha:dev Jul 22, 2019
jmyrcha pushed a commit that referenced this pull request Oct 29, 2021
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.