Skip to content
GitLab
Projects Groups Snippets
  • /
  • Help
    • Help
    • Support
    • Community forum
    • Submit feedback
  • Sign in
  • Corryvreckan Corryvreckan
  • Project information
    • Project information
    • Activity
    • Labels
    • Members
  • Repository
    • Repository
    • Files
    • Commits
    • Branches
    • Tags
    • Contributors
    • Graph
    • Compare
    • Locked Files
  • Issues 38
    • Issues 38
    • List
    • Boards
    • Service Desk
    • Milestones
    • Iterations
  • Merge requests 12
    • Merge requests 12
  • CI/CD
    • CI/CD
    • Pipelines
    • Jobs
    • Schedules
  • Deployments
    • Deployments
    • Environments
    • Releases
  • Packages and registries
    • Packages and registries
    • Container Registry
  • Monitor
    • Monitor
    • Incidents
  • Analytics
    • Analytics
    • Value stream
    • CI/CD
    • Code review
    • Issue
    • Repository
  • Activity
  • Graph
  • Create a new issue
  • Jobs
  • Commits
  • Issue Boards
Collapse sidebar
  • CorryvreckanCorryvreckan
  • CorryvreckanCorryvreckan
  • Merge requests
  • !56

Major Rework of Central Corryvreckan Components

  • Review changes

  • Download
  • Email patches
  • Plain diff
Merged Simon Spannagel requested to merge moduletypes into master Oct 28, 2018
  • Overview 1
  • Commits 90
  • Pipelines 27
  • Changes 165

This MR changes a substantial fraction of how Corryvreckan works. The main changes are listed below. Since many of these changes break with conventions, analysis configurations will have to be adapted. This MR should be merged after !53 (merged) has landed in master and after other derivative work has been merged (i.e. changes implemented by @jekroege).

Module types

There are now three different module types which are identified at compile time via the CMakeLists.txt directive:

  • Global modules are instantiated once and have access to all detectors (unless restricted via detectors as usual)
  • Detector modules are instantiated once per detector and only have access to this detector and the reference detector (as marked via the detector role)
  • DUT modules are instantiated once per detector marked as DUT in the geometry file

Detector type restrictions

Some modules only work for a specific type, such as event loaders. The detector types a module can operate on can now be specified in the CMakeLists.txt file. Detector modules are then only instantiated for detectors they are valid for.

The old configuration key detectors is replaced by a key called name, it is also possible to use the type keyword to restrict modules. Be aware that the module-defined detector type restriction will always take precedence over a user-configured one.

Module naming scheme

A new module naming scheme has been adopted and first modules have been renamed. The new scheme first names the function and then the detector type, such as EventLoaderCLICpix2. The following modules have been renamed:

  • ATLASpixEventLoader -> EventLoaderATLASpix
  • Alignment -> split into AlignmentDUTResidual, AlignmentTrackChi2
  • BasicTracking -> Tracking4D
  • CLICpixEventLoader -> EventLoaderCLICpix
  • Clicpix2EventLoader -> EventLoaderCLICpix2
  • CLICpix2Analysis -> AnalysisDUT
  • DataOutput -> TreeWriterDUT
  • EUDAQEventLoader -> EventLoaderEUDAQ
  • Millepede -> AlignmentMillepede
  • SpatialClustering -> ClusteringSpatial
  • SpatialTracking -> TrackingSpatial
  • Timepix1EventLoader -> EventLoaderTimepix1
  • Timepix3Clustering -> Clustering4D
  • Timepix3EventLoader -> EventLoaderTimepix3
  • Timepix3MaskCreator -> MaskCreatorTimepix3

ROOT directory structure

The main folder "corryvreckan" in the histogram file has been removed. Instead, detector modules create detector-subfolders inside the module folder, e.g. Clustering4D/W12345_G01/clusterSize. This makes finding specific histograms easier.

New Modules

The following modules are either completely new or originate from an existing module which has been split:

  • AlignmentDUTResidual: This module is part of the old Alignment module, run with alginMethod = 1
  • AlignmentTrackChi2: This module is part of the old Alignment module, run with alignMethod = 0
  • AnalysisEfficiency: A new module to show-case a modular analysis, each figure of merit is determined by a different module, so a full analysis can be plugged together with a set of Analysis* modules.
  • AnalysisPowerPulsing: A new DUT module for type "Timepix3" detectors, a port of @estel's module developed here: https://gitlab.cern.ch/estel/corryvreckan/tree/PowPulsAnalogDigital/
Edited Nov 08, 2018 by Simon Spannagel
Assignee
Assign to
Reviewers
Request review from
Time tracking
Source branch: moduletypes