moore packages, repackaging and design status
DESCRIPTION
Moore Packages, Repackaging and Design Status. Michela Biglietti Univ. of Naples INFN/Naples. Gabriella Cataldi INFN/Lecce. ATLAS CVS Repository. Under offline/MuonSpectrometer/Moore (a container) you find:. MooAlgs MooEvent MooiPat MooStatistics MooG MooreLib DRT (MooreApp) - PowerPoint PPT PresentationTRANSCRIPT
1
Moore Packages, Repackaging
and Design Status
Moore Packages, Repackaging
and Design Status
Michela BigliettiUniv. of Naples INFN/Naples
Gabriella Cataldi INFN/Lecce
Muon-SW Workshop Lecce, July 20022
ATLAS CVS RepositoryATLAS CVS Repository Under offline/MuonSpectrometer/Moore (a container) Under offline/MuonSpectrometer/Moore (a container)
you find:you find:•MooAlgs•MooEvent•MooiPat•MooStatistics
•MooG
•MooreLib•DRT•(MooreApp)•(MooreTest)
Currently under development
Package for graphics, needs to be updated
Old Moore - does not work
Very very old
Muon-SW Workshop Lecce, July 20023
At the beginning there was the “MooreLib” reconstruction processAt the beginning there was the “MooreLib” reconstruction process
MooTrigClusterMaker
MooTrigRoadMaker
MooTrackSegmentMaker
MooTrackMaker
MooTrigClusters
MooTrigRoads
MooTrackSegments
ATLAS Tracks
Iterate over RPC(later also TGC) digits
from Event and make trigger clusters
Build clusters into trigger roads
Iterate over MDT (later also CSC) digits
from Event and make track segments
along roads
Match segments within trigger roads to
make track candidates; fit; and apply
quality cuts to produce final track list
Manager class ‘Moore’ (the Algorithm) invokes a series of sub-component ‘Makers’:
Muon-SW Workshop Lecce, July 20024
MooiPat(first version)
MooiPat(first version)
One Athena algorithm (MooiPatMain) drives the reconstructionStep-by-step reconstruction partially abandoned it works
Muon-SW Workshop Lecce, July 20025
We decided Moore needs to be…We decided Moore needs to be…
A more modular, flexible code A step-by-step reconstruction process, more similar to
MooreLib “Makers” are Athena Algorithms
Makers use “helper” class to perform pattern recognition and track fitting
Makers exchange Events with TDS via SG No dependencies between makers TDS Events do not know makers
Repackaging XXXAlgs-XXXEvent, following D.R./D.Q. proposal
… We started from MooiPat
Muon-SW Workshop Lecce, July 20026
Results : Results : less dependencies, code less dependencies, code is more maintainable, modular, is more maintainable, modular, easier to develop new easier to develop new reconstruction approaches reconstruction approaches
Back to the previous reconstruction schemeBack to the previous reconstruction scheme
MooMakePhiSegments
RPC/TGC digits
PhiSegments
MooMakeRZSegmentsMDT digits
MooMakeRoads CrudeRZSegments
MooMakeiPatTracks MooRoads
MooiPatTracks
MooMakeNtuples
Ntuples
MooAlgsMooAlgs
MooStatisticsMooStatistics
Each step is driven by an Athena top-algorithm
Transient objects are passed via TDS/StoreGate
Independent algorithms, the only coupling is through the transient objects
Muon-SW Workshop Lecce, July 20027
RepackagingRepackaging
MooAlgs : algorithms for pattern recognition and track fitting
MooEvents : transient objects
MooStatistics: CBNT ntuples
MooEvent
Both MooAlgs and MooEvent depend on the external container iPat
Event dependencies on Makers and related classes removed as well as general
restructuring
Muon-SW Workshop Lecce, July 20028
Content of new packagesContent of new packages
MooAlgsMooAlgs MooMakePhiSegment MooMakeCrudeRZSegment MooMakeRoads MooMakeiPatTracks MooSvc CombinationMaker RZSegmenMaker MooiPatFitter MooiPatHisto MooChecker MooCleaner by_quality
MooEventMooEvent PhiSegment MDTSegment RZSegment RZSegmetMap MooiPatTrack
MooStatisticsMooStatistics MooiPatNtuple MooMakeNtuple
Athena Algos
Code classes
Rec. Event
(New CBNT_Athenamember for MooEvent
tracks)
Muon-SW Workshop Lecce, July 20029
A possible evolution...A possible evolution...
MooAlgs
MooAlgs_2
MooEvent
MooAlgs_n
MooCode
Events for reconstruction
Athena algorithms with different features/goals
Shared code used by Athena Algos
MooAlgsLVL2
Muon-SW Workshop Lecce, July 200210
Relations with Athena componentsRelations with Athena components
Moore algosAthena components
Muon-SW Workshop Lecce, July 200211
Relations with Athena framework /servicesRelations with Athena framework /services
•Each Athena algorithm• has private non static ”jobOptions” variables • has a private pointer to the StoreGateSvc • the pointed objects are deleted “by hand” at the end-of-event using the Athena IncidentSvc
•Memory leak under control• print-outs can be driven by MsgStream Svc
•Problem: you need to be an Athena Algorithm for access to jobOptions data -> MooSvc class
• gives “run time” jobOptionSvc variables (public and static!) to non Athena-Algorithms classes
•has Athena MagneticFieldSvc
•has final print-out methods, debug methods …
•Other possible (and mybe better) solution : implement the constructors/data members of the NonAthenaAlg class, and in the Athena-Algorithms class declare something as
•NonAthenaAlg non_athena_alg(jobOptionData);
Muon-SW Workshop Lecce, July 200212
MooAlgs top-algs/helper class relationsMooAlgs top-algs/helper class relations
MooAlgs top algosMooAlgs helper classesiPat classes
Muon-SW Workshop Lecce, July 200213
MooEvent packageMooEvent package
Contained Objects are exchanged with TDS
Muon-SW Workshop Lecce, July 200214
MooAlgs-MooEvent dependenciesMooAlgs-MooEvent dependencies
top algosMooAlgs, no top-algosMooEvent
Each Athena alg. has private pointers to the TDS/SG objects Non Athena MooAlgs classes also use MooEventEvents do not depend on MooAlgs classes
Muon-SW Workshop Lecce, July 200215
CMT requirements filesCMT requirements filesuse MooEvent MooEvent-* MuonSpectrometer/Mooreuse MooAlgs MooAlgs-* MuonSpectrometer/Mooreuse MooStatistics MooStatistics-* MuonSpectrometer/Mooreuse MooiPat MooiPat-* MuonSpectrometerMoore…
Moore
use AtlasPolicy AtlasPolicy-01-* use GaudiInterface GaudiInterface-* External…use MooEvent MooEvent-* MuonSpectrometer/Moore…library MooAlgs *.cxxapply_pattern component_libraryapply_pattern declare_runtime
MooAlgs
“use” DRTMooG and MooreLib
removed
…use MooEvent MooEvent-* MuonSpectrometer/Moore use MuonDetDescr MuonDetDescr-00-* MuonSpectrometeruse MooiPat MooiPat-* MuonSpectrometerMoore…apply_pattern component_library
MooStatistics
…use MuonEvent MuonEvent-* MuonSpectrometeruse MuonDetDescr MuonDetDescr-00-* MuonSpectrometeruse iPatTrack iPatTrack-* Reconstruction/iPat …apply_pattern dual_use_library files=*.cxx
MooEvent
Muon-SW Workshop Lecce, July 200216
New Test_jobOptions.txt fileNew Test_jobOptions.txt file// Load relevant librariesApplicationMgr.DLLs += { "MooEvent" } ;ApplicationMgr.DLLs += { "MooAlgs" } ;ApplicationMgr.DLLs += { "MooStatistics" } ;ApplicationMgr.DLLs += { "CBNT_Athena" };ApplicationMgr.DLLs += { "HbookCnv" };ApplicationMgr.DLLs += { "MagneticFieldAthena" };...//Athena Top-AlgorithmsApplicationMgr.TopAlg = { "MooMakePhiSegments" };ApplicationMgr.TopAlg += { "MooMakeCrudeRZSegments" };ApplicationMgr.TopAlg += { "MooMakeRoads" };ApplicationMgr.TopAlg += { "MooMakeiPatTracks" };ApplicationMgr.TopAlg += { "MooSvc" };ApplicationMgr.TopAlg += { "CBNT_Athena" };...// ----- CBNT_Athena algorithmCBNT_Athena.Members = { "CBNT_EventInfo", "MooMakeNtuple"};...//jobOptions dataMooMakePhiSegments.print_level = 0;MooMakePhiSegments.phi_histo_thr = 1;MooMakePhiSegments.phi_histo_bin = 0.0015;...MooSvc.print_level = 5;MooSvc.min_mdt = 3;MooSvc.light_speed = 29.97925; // Speed of light (in cm/ns)...
In .../Moore/.../share/Test_jobOptions.txt
In .../Moore/.../share/Test_jobOptions.txt
Muon-SW Workshop Lecce, July 200217
ConclusionsConclusions
In Moore we now have (4.0.0): MooiPat package MooAlgs+MooEvent are a “sliced” implementation of
MooiPat Latest improvements from Giorgos are included Same outputs (not fully checked with high pt muons)
MooStatistic can use outputs from both MooiPat and MooEvent
Run-time loading of the right CBNT_Athena member