CMS Framework “Software bus” model –One executable, “cmsRun, with many plug-in modules Controlled by a configuration file –Controls which data to use,

Slides:



Advertisements
Similar presentations
Ch-11 Project Execution and Termination. System Testing This involves two different phases with two different outputs First phase is system test planning.
Advertisements

Hand Trace and Output for: int digit = 0; int number = 1423; do { digit = number % 10; System.out.println(digit); number = number / 10; } while (number.
TEST CASE GENERATOR Mahmoud, Nidhi, Fernando, Chris, Joe, John, and Thomas present:
CMSSW Tutorial A. Nikitenko IntroductionIntroduction Example of reconstruction: “how to”Example of reconstruction: “how to” Running CMSSW with ASAPRunning.
1 Chapter Three Using Methods. 2 Objectives Learn how to write methods with no arguments and no return value Learn about implementation hiding and how.
CMSSW Tutorial. Event processing: Event generation (in MC world)Event generation (in MC world) DigitizationDigitization Local reconstructionLocal reconstruction.
Honors Compilers The Course Project Feb 28th 2002.
1 Module 12 Computation and Configurations –Formal Definition –Important Terms –Examples.
CMSSW Configuration Using python JTERM II Tutorial Rick Wilkinson.
CMSSW Configuration Using python Rick Wilkinson. Python configurations u Your cfg, cfi, and cffs will not be supported in CMSSW_2_1_0. u They’ll be replaced.
Usage of the Python Programming Language in the CMS Experiment Rick Wilkinson (Caltech), Benedikt Hegner (CERN) On behalf of CMS Offline & Computing 1.
Chapter 3 Program translation1 Chapt. 3 Language Translation Syntax and Semantics Translation phases Formal translation models.
February 12, 2009 Center for Hybrid and Embedded Software Systems Model Transformation Using ERG Controller Thomas H. Feng.
Source Code Management Or Configuration Management: How I learned to Stop Worrying and Hate My Co-workers Less.
Xenios Papademetris Departments of Diagnostic Radiology and Biomedical Engineering Yale University School of Medicine.
Customizing Microsoft Project
W3af LUCA ALEXANDRA ADELA – MISS 1. w3af  Web Application Attack and Audit Framework  Secures web applications by finding and exploiting web application.
Dataface API Essentials Steve Hannah Web Lite Solutions Corp.
October 30, 2008 Extensible Workflow Management for Simmod ESUG32, Frankfurt, Oct 30, 2008 Alexander Scharnweber (DLR) October 30, 2008 Slide 1 > Extensible.
Agenda Journalling More Embedded SQL. Journalling.
CS346 - Javascript 1, 21 Module 1 Introduction to JavaScript CS346.
Framework for Automated Builds Natalia Ratnikova CHEP’03.
Cmpe 589 Spring Software Quality Metrics Product  product attributes –Size, complexity, design features, performance, quality level Process  Used.
CIS Computer Programming Logic
© 2012 LogiGear Corporation. All Rights Reserved Robot framework.
Development Strategies for Web Applications Jonathan Babbage National Superconducting Cyclotron Laboratory.
1 Lecture 19 Configuration Management Software Engineering.
Magnetic Field Measurement System as Part of a Software Family Jerzy M. Nogiec Joe DiMarco Fermilab.
ES 3 Takes the Provenance Challenge J AMES F REW Donald Bren School of Environmental Science and Management University of California, Santa Barbara
Introduction to Engineering MATLAB – 6 Script Files - 1 Agenda Script files.
Cross Language Clone Analysis Team 2 April 7, 2011.
Unit 1, Lesson 3 Program Execution Process AOIT Introduction to Programming Copyright © 2009–2012 National Academy Foundation. All rights reserved.
This material is approved for public release. Distribution is limited by the Software Engineering Institute to attendees. Sponsored by the U.S. Department.
1 Control Software (CAT) Introduction USB Interface implementation Calorimeter Electronics Upgrade Meeting Frédéric Machefert Wednesday 5 th May, 2010.
PRS Session, May 12, 2006Filip Moortgat, ETHZ Generator Interface Generator Interface in CMSSW existing/planned interfaces with generators content of the.
Introduction to PHP Advanced Database System Lab no.1.
Definition The framework is a library that controls the flow of events and data through well-defined interface points defined by user-written algorithm.
Jose A. Hernando Trigger Gaudies Reconstruction Tools & Algorithms Inspectors MC & Data Algorithms Template preserved container Jose A. Hernando.
CMSSW Configuration in Python Rick Wilkinson June 19,
Semi-Automatic patch upgrade kit
With Jeff Gray and Ira Baxter Robert Tairas Visualization of Clone Detection Results Eclipse Technology Exchange Workshop OOPSLA 2006 Portland, Oregon.
Test Specifications A Specification System for Multi-Platform Test Suite Configuration, Build, and Execution Greg Cooksey.
Managed by UT-Battelle for the Department of Energy CSS Update Matthias Clausen, Helge Rickens, Jan Hatje and DESY Delphy Armstrong, Xihui Chen,
Introduction to CMSSW Framework Concepts Simulation & Reconstruction Liz Sexton-Kennedy January 10, 2008.
Added Benefits Easier to debug –Can dump configurations or add inline printouts –Can validate files by compiling Can use command-line arguments, environmental.
WinCvs. WinCVS WinCvs is a window based version control system. Use WinCvs when  You want to save every version of your file you have ever created. CVS.
Cross Language Clone Analysis Team 2 February 3, 2011.
JSP BASICS AND ARCHITECTURE. Goals of JSP Simplify Creation of dynamic pages. Separate Dynamic and Static content.
Introduction to Python Dr. José M. Reyes Álamo. 2 Three Rules of Programming Rule 1: Think before you program Rule 2: A program is a human-readable set.
The JANA Reconstruction Framework David Lawrence - JLab May 25, /25/101JANA - Lawrence - CLAS12 Software Workshop.
Cross Language Clone Analysis Team 2 February 3, 2011.
Commands 3/1/ Boot PROM Fundamentals All Sun systems have resident boot PROM firmware Provides basic hardware testing and initialization prior.
ICS312 Introduction to Compilers Set 23. What is a Compiler? A compiler is software (a program) that translates a high-level programming language to machine.
Overview of Compilation Prepared by Manuel E. Bermúdez, Ph.D. Associate Professor University of Florida Programming Language Principles Lecture 2.
© Peter Andreae Java Programs COMP 102 # T1 Peter Andreae Computer Science Victoria University of Wellington.
Software testing techniques Software testing techniques REGRESSION TESTING Presentation on the seminar Kaunas University of Technology.
The interface to EvtGen in CMS Roberto Covarelli University of Rochester EvtGen workshop, 06/12/2010.
REGRESSION TESTING Audrius Čėsna IFM-0/2. Regression testing is any type of software testing that seeks to uncover new errors, or regressions, in existing.
DANA David Lawrence Oct. 21, D. Lawrence, JLab GlueX Software Workshop Oct Outline Requirements Philosophy Overview of Features Open Questions.
Space FSW Conference 2016 Matthew Conte Software Engineer
Module 1 Introduction to JavaScript
Useful Tools for Testing
3D Slicer module programming
CMS High Level Trigger Configuration Management
PHP (PHP: Hypertext Preprocessor)
Chapter 7 Files and Exceptions
RichAnnotator: Annotating rich (XML-like) documents
Test Case Test case Describes an input Description and an expected output Description. Test case ID Section 1: Before execution Section 2: After execution.
CSE 1020:Software Development
Overview Activities from additional UP disciplines are needed to bring a system into being Implementation Testing Deployment Configuration and change management.
Presentation transcript:

CMS Framework “Software bus” model –One executable, “cmsRun, with many plug-in modules Controlled by a configuration file –Controls which data to use, which modules to run, in which order, and which parameters to use for each module –All parameters are recorded the output provenance Configuration originally in a custom language –Parsed with flex/bison

Transition From Custom Language Made a Python parser to translate configurations into Python structures –Implemented with pyparsing, plus 2000 lines of new code –Used first by production system to edit configs in python, then dump them back to old language Interfaced to C++ using boost::python Translated all ~6000 config files in the release –Scripts automatically parse, translate, commit, and tag –Couldn’t preserve statement order –Made second-pass script to translate comments over. –Scripts detected when users modified old configs without fixing python configs

Modules and Parameters Some modules operate on Event data –EDProducer, EDFilter, EDAnalyzer Some modules do time-dependent conditions –ESProducer, ESSource Many types of parameters –int32, uint32, int64, double, bool, string, InputTag, EventID, FileInPath, … –plus vectors of all of the above, e.g, vint32 –Can be stored hierarchically in PSet, VPSet

Sequences Modules can be grouped into Sequences. Executions Paths can be made of modules and Sequences, and can be stopped by EDFilters Operators can define relationship of modules and sequences in a path –Inverting (“~”) or ignoring (“-”) a filter –Defining whether or not an element depends on the previous element (“+” or “*”)

New Python Config import FWCore.ParameterSet.Config as cms process = cms.Process(“foo”) process.jetAnalyzer = cms.EDAnalyzer(“MyJetAnalyzer”) from Jets.Reco.JetFilter_cfi import jetFilter process.jet50Filter = jetFilter.clone() process.jet50Filter.minPt = 50. process.jet100Filter = jetFilter.clone() process.jet100Filter.minPt = 100. process.jet50to100Filter = cms.Sequence(process.jet50Filter + ~process.jet100Filter) process.jet50to100 = cms.Path(process.jet50to100Filter * process.jetAnalyzer)

Old Custom Language process foo = { module jetAnalyzer = MyJetAnalyzer {} module jet50Filter = jetFilter from “Jets/Reco/data/JetFilter.cfi” replace jet50Filter.minPt = 50. module jet100Filter = jetFilter from “Jets/Reco/data/JetFilter.cfi” replace jet100Filter.minPt = 100. sequence jet50to100Filter = {jetFilter50&!jetFilter100} path jet50to100 = {jet50to100Filter, jetAnalyzer} }