A.Mayorov Everything you’d like to know about Subdetector EXamine but was afraid to ask.

Slides:



Advertisements
Similar presentations
JQuery MessageBoard. Lets use jQuery and AJAX in combination with a database to update and retrieve information without refreshing the page. Here we will.
Advertisements

4 Oracle Data Integrator First Project – Simple Transformations: One source, one target 3-1.
Lab 10: Images and Skinning, Sound and Assets User Interface Lab: GUI Lab Oct. 30 th, 2013.
Using Eclipse. Getting Started There are three ways to create a Java project: 1:Select File > New > Project, 2 Select the arrow of the button in the upper.
Guide to Oracle10G1 Introduction To Forms Builder Chapter 5.
A Guide to Oracle9i1 Introduction To Forms Builder Chapter 5.
Advanced Object-Oriented Programming Features
Information Networking Security and Assurance Lab National Chung Cheng University F.I.R.E. Forensics & Incident Response Environment.
Low level CASE: Source Code Management. Source Code Management  Also known as Configuration Management  Source Code Managers are tools that: –Archive.
By Steven Campbell and Erik Boone.  Sharing projects by putting them into a central repository.  Checking out copies of projects from the repository.
Julie McEnery1 Installing the ScienceTools The release manager automatically compiles each release of the Science Tools, it creates a set of wrapper scripts.
Microsoft Visual Basic 2005 CHAPTER 8 Using Procedures and Exception Handling.
Version Control with Subversion. What is Version Control Good For? Maintaining project/file history - so you don’t have to worry about it Managing collaboration.
FALL 2005CSI 4118 – UNIVERSITY OF OTTAWA1 Part 4 Web technologies: HTTP, CGI, PHP,Java applets)
Input/Output Controller (IOC) Overview Andrew Johnson Computer Scientist, AES Controls Group.
 Understanding an activity  Starting an activity  Passing information between activities  Understanding intents  Understanding the activity lifecycle.
Microsoft Visual Basic 2012 Using Procedures and Exception Handling CHAPTER SEVEN.
Server-side Scripting Powering the webs favourite services.
Introduction to Hall-D Software February 27, 2009 David Lawrence - JLab.
Recap, Test 1 prep, Composition and Inheritance. Dates Test 1 – 12 th of March Assignment 1 – 20 th of March.
Intro to C++ And Some Tools Opening Discussion zHave any questions come up since last class? Have you had a chance to look over the project.
Introduction to Matlab & Data Analysis
LiveCycle Data Services Introduction Part 2. Part 2? This is the second in our series on LiveCycle Data Services. If you missed our first presentation,
Subversion (SVN) Tutorial for CS421 Dan Fleck Spring 2010.
Object-Oriented Analysis & Design Subversion. Contents  Configuration management  The repository  Versioning  Tags  Branches  Subversion 2.
Graphics Concepts CS 2302, Fall /3/20142 Drawing Paths.
GEMVC. The Setup Folders Views Value Objects (VOs) Custom Events Service CFCs Controller Model Application Main MXML.
Progress with migration to SVN Part3: How to work with g4svn and geant4tags tools. Geant4.
The report on the current situation of the BESIII framework zhangxiaomei maqiumei 10/3/2004.
Oracle Data Integrator Procedures, Advanced Workflows.
Managing SX.e and TWL with MARC and Scripts Jeremiah Curtis
Creating Graphical User Interfaces (GUI’s) with MATLAB By Jeffrey A. Webb OSU Gateway Coalition Member.
Use of Gaudi in Reconstruction Weidong Li 23/06/2004.
GLAST CHEP 03 March T.Burnett1/12 User-friendly tools for Managing Software Development Projects User-friendly tools for Managing Software Development.
Gaudi Framework Tutorial, April Algorithm Tools: what they are, how to write them, how to use them.
Programming in Java CSCI-2220 Object Oriented Programming.
Definition The framework is a library that controls the flow of events and data through well-defined interface points defined by user-written algorithm.
October 10-11, 2002 Houston, Texas Erik DeBenedictis William McLendon Mike Carifio Sandia is a multiprogram laboratory operated by Sandia Corporation,
1 Charles Leggett Changes in calunpdata Package F Naming convention of programs in calunpdata package sucks. It’s been very confusing. F New scheme: l.
Apr. 8, 2002Calibration Database Browser Workshop1 Database Access Using D0OM H. Greenlee Calibration Database Browser Workshop Apr. 8, 2002.
Microsoft Visual Basic 2008 CHAPTER ELEVEN Multiple Classes and Inheritance.
1 CSE306 Operating Systems Projects CVS/SSH tutorial.
Javadoc. Purpose of javadoc javadoc is a program that reads your Java program and produces great-looking documentation in HTML format Without any help,
Class Builder Tutorial Presented By- Amit Singh & Sylendra Prasad.
L.T.E :: Learning Through Experimenting Using google-svn for MtM Docs Development Denis Thibault Version 3.2 Mar 12 th, 2009.
Surya Bahadur Kathayat Outline  Ramses  Installing Ramses  Ramses Perspective (Views and Editors)  Importing/Exporting Example.
9/12/99R. Moore1 Level 2 Trigger Software Interface R. Moore, Michigan State University.
Migrating Sites to Wordpress GRC OCIO Wordpress Workshop 11/17/2014.
1 Class 1 Lecture Topic Concepts, Definitions and Examples.
1 Classes II Chapter 7 2 Introduction Continued study of –classes –data abstraction Prepare for operator overloading in next chapter Work with strings.
© I-Logix Rhapsody C++ V /01/2004E1-1 “Essential” Tool Training Basic Rhapsody Basic Rhapsody Rhapsody in C++ V /01/04.
WinCVS Training è Basic Concepts è Download & Setup è Importing a new module into CVS Repository è Getting new module from CVS è Getting Latest version.
Framework What has been happening? Jim Kowalkowski.
In this class, we will cover: Overriding a method Overloading a method Constructors Mutator and accessor methods The import statement and using prewritten.
Chapter 10 - Writing Graphical User Interfaces1 Chapter 10 Writing Graphical User Interfaces.
20 October 2005 LCG Generator Services monthly meeting, CERN Validation of GENSER & News on GENSER Alexander Toropin LCG Generator Services monthly meeting.
Document Module Features Streamlines the control, routing and revision process for critical documents and records Controls documents in any format (Excel,
Today Javadoc. Packages and static import. Viewing API source code. Upcoming Topics: –protected access modifier –Using the debugger in Eclipse –JUnit testing.
CLHEP Infrastructure Improvements CHEP 2004 Lynn Garren, FNAL and Andreas Pfeiffer, CERN.
9/21/04 James Gallagher Server Installation and Testing: Hands-on ● Install the CGI server with the HDF and FreeForm handlers ● Link data so the server.
Customizing custom.
CARA 3.10 Major New Features
Using Procedures and Exception Handling
VISUAL BASIC.
Getting Started: Developing Code with Cloud9
Microsoft Visual Source Safe How & Why
CVS Concurrent Versioning System
Download and Installation of code::blocks
Plug-In Architecture Pattern
Presentation transcript:

A.Mayorov Everything you’d like to know about Subdetector EXamine but was afraid to ask

A.Mayorov Examine for subdetectors zdetermine the histograms you want to see zfind the data chunks containing the necessary data zwrite a package to access your data and fill your histograms zput your package in CVS

A.Mayorov Creation of new package zsetup n32 ( at least for the latest D0RunII versions) zsetup D0RunII version_name at the moment use t zsetup d0cvs znewrel -t version_name directory_name this will create a new directory tree zcd directory-name

A.Mayorov Creation of new package zctnewpkg -lob package_name to create directories and ctbuild files for the new package my_examine GNUmakefile SUBDIRS bin my_examine src LIBDEPS VERSION doc script my_examine/bin: BINARIES LIBRARIES my_examine/doc: index.html my_examine/my_examine: my_examine/src: COMPONENTS OBJECT_COMPONENTS

A.Mayorov Creation of new package: Files required by CTBUILD zWrite your code and put *.hpp in my_examine/my_examine *.cpp in my_examine/src zedit VERSION, LIBDEPS, COMPONENTS, OBJECT_COMPONENTS and GNUmakefile

A.Mayorov Creation of new package: Files required by CTBUILD zVERSION - the current version of package. Change it every time you update package z LIBDEPS - list the packages you directly call inside your package zCOMPONENTS - list the cpp files, which you want to include in the library zOBJECT_COMPONENTS - object files stored outside library. Usually framework registration.

A.Mayorov Creation of new package: Files required by CTBUILD If you want to build executable zcd my_examine/bin zcreate cpp file ( for example testMyExamine)- might be empty zedit BINARIES, LIBRARIES and OBJECTS yBINARIES - list the cpp files which become executables (testMyExamine) yLIBRARIES - indicate additional the libraries needed by executable yOBJECTS - list the object file to link

A.Mayorov LIBDEPS: zgeoman zHepTuple zrcp zErrorLogger zhistoscope

A.Mayorov LIBRARIES: zmy_examine zframework zio_packages zsimpp_evt zgtr_evt zd0_mcpp zstream_ds

A.Mayorov GNUmakefile # Generic GNU makefile for CTBUILD under D0 SRT. # # David Adams # 21jan99 # # Copy this file to GNUmakefile in the main package directory. # # For help with CTBUILD at D0, see # # override CPPFLAGS+=-I$$HISTO_INC include ctbuild/srt/srt.mk

A.Mayorov OBJECTS: zRegMyExamine zgeometry_management zReadEvent zLoadDSPACK zLoadEVPACK

A.Mayorov Examine and framework zExamine for every subdetector is an “ordinary” framework package: ythe corresponding class must inherit at least from fwk::Package and fwk::Process yyou must provide the means to register the package with the framework ywrite rcp file for your package

A.Mayorov Framework interface class MyExamine: public fwk::Package, public fwk::Process { public: // constructors/destructor MyExamine(fwk::Context* context); ~MyExamine(); // Overridden hook methods fwk::Result processEvent(edm::Event &event); // Overridden package methods std::string packageName() const {return “MyExamine”;} static const std::string version( return “VXX.XX.XX”); private: // what ever you need };

A.Mayorov Framework interface: header files #include "framework/Package.hpp" must be here #include "framework/hooks/Process.hpp" #include "framework/Result.hpp" #include "framework/hooks/JobSummary.hpp" you might want to include if derive from corresponding class /// class MyExamine: public fwk::Package, public fwk::Process { public: // constructors/destructor MyExamine(fwk::Context* context); ~MyExamine(); // Overridden hook methods fwk::Result processEvent(edm::Event &event); // Overridden package methods std::string packageName() const {return “MyExamine”;} static const std::string version( return “VXX.XX.XX”); private: // what ever you need };

A.Mayorov Framework interface zput in the implementation (cpp) file of MyExamine class the line: FWK_REGISTRY_IMPL(MyExamine,”$Name:$") zcreate separate file RegMyExamine.cpp with just two lines: #include "framework/Registry.hpp” FWK_REGISTRY_DECL(MyExamine)

A.Mayorov Framework interface: your package RCP zWrite rcp file // Author: Mister X // Date: 05/15/98 // // $Id: my_examine.rcp,v /04/09 16:10:44 Exp $ // // rcp for my_examine package // string PackageName = ”MyExamine" // whatever your package needs. For example //histogram file string hbk_file=”MyExamine.hbook"

A.Mayorov Framework interface: main RCP string InterfaceName = "process" string Interfaces = "generator decide builder filter modify analyze process jobSummary runEnd runInit" string Flow = "generator decide builder filter modify process analyze dump" // Packages string Packages = "read geom cft_examine CalExamine MyExamine" RCP read = RCP geom = RCP cft_examine = RCP CalExamine= RCP MyExamine=

A.Mayorov Interface to histogramming packages zWe use HepTuple as a tool to define fill and store histograms zTwo options left for browser GUI: yHISTOSCOPE yROOT

A.Mayorov Interface to histogramming packages: header file // HepTuple classes #ifdef ROOT_HIST class HepRootFileManager; #else class HepHBookFileManager; #endif class HepHist1D; class HepHist2D; class HepHistProf; class MyExamine: public fwk::Package, public fwk::Process { private: #ifdef ROOT_HIST HepRootFileManager* _hbkMgr; #else HepHBookFileManager* _hbkMgr; #endif HepHist1D* _oneDimHistos[numOneDim]; HepHistProf* _profileHistos[numProfDim]; HepHist2D* _twoDimHistos[numTwoDim]; };

A.Mayorov Interface to histogramming packages: constructor MyExamine::MyExamine(Context* context): Package(context), Process(context), JobSummary(context) { RCP rcp=packageRCP(); // get RCP for MyExamine package #ifdef ROOT_HIST _hbkMgr= new HepRootFileManager((rcp.getString("hbk_file")).c_str()); #else hs_initialize("My Examine Histograms"); _hbkMgr= new HepHBookFileManager((rcp.getString("hbk_file")).c_str()); #endif... int nBin=rcp->getInt("hist0_low"); float low=rcp->getFloat("hist0_low"); float up=rcp->getFloat("hist0_up"); _oneDimHistos[0] = & _hbkMgr->hist1D(“histogram # 0”,nBin,low,up);... hs_hbook_setup("//PAWC"); }

A.Mayorov Interface to histogramming packages: filling Result MyExamine::processEvent(Event &event) { TKey digiKey; THandle digiChunk=digiKey.find(event); // if( digiChunk.isValid()) // always check validity of the handle !!! { // fill your histograms here _oneDimHistos[0]->accumulate(myData); } else // do not use assertions!!! { error_log(ELwarning,”MyChunk missing")<<" MyExamine skips histogramming\n"; }... #ifdef ROOT_HIST _hbkMgr->write(); #else hs_update(); #endif return Result::success; }

A.Mayorov Interface to hisogramming packages: destructor MyExamine::~MyExamine() { delete _hbkMgr; }

A.Mayorov Geometry zPlease do not build geometry inside you package, use geometry_management package instead. yAdd geoman to LIBDEPS yAdd geometry_management (for future releases RegGeometryManagement) to BINARIES yyou’ll need all geometry rcp’s. Must be provided by RCP database, but currently you have to copy them (or make links) to your bin area. cp $BFDIST/releases/$BFCURRENT/geometry_management/rcp/*.rcp. cp $BFDIST/releases/$BFCURRENT/geometry_management/tests/*.rcp.

A.Mayorov Committing package in CVS zAsk the D0 release managers (d0-release- to make a cvs directory for your package zMake sure you tell them who you want to have the write privilege. znewrel -t t00.\#\#.00 your-temp-area-name zcd your-temp-area-name zcvs checkout your-package-name

A.Mayorov Committing package in CVS zcp -R top-directory-with-your-codes-are-stored your-package-name This will copy the entire directory structure of the directory in which your development code are stored in. zRepeat cvs-add for all directories first. zFor each file cvs add your-file. zcvs -n update to check if somebody else modified code zcvs commit At this stage you may want to setenv EDITOR to your favorate editor, because the cvs automaically invokes an editor for logging purpose. zcttag tag will be taken from VERSION zcheck that you do not miss something. The better way is to do this to checkout package in new area and to build it.

A.Mayorov How to build and run cft_examine yopen two xterm windows yin both windows: xsetup n32 xsetup D0RunII t yin first window: xsetup d0cvs xnewrel –t t testExamine xcd testExamine xaddpkg –h cft_examine

A.Mayorov How to build and run cft_examine  gmake  cd bin/IRIX6n32-KCC_3_3/  prepareRCP.sh ytestCftExamine –rcp framework.rcp  in second window: ysetup histo v5-0-2a-0 yhisto

A.Mayorov How to build and run cft_examine zWhen histoscope window will appeared go to file/process menu and click connect to process

A.Mayorov How to build and run cft_examine zChoose the process to connect

A.Mayorov How to build and run cft_examine zChoose the file with histograms and click open

A.Mayorov How to build and run cft_examine zSelect one or more histograms and click one of three view buttons:

A.Mayorov How to build and run cft_examine zenjoy your histograms

A.Mayorov Useful links zhttp://www-d0.fnal.gov/software/cmgt/getting_started_at_d0.html zhttp:// zhttp://www-d0.fnal.gov/d0dist/dist/packages/