John Marshall, 1 John Marshall, University of Cambridge ILD Workshop, DESY, July 5 2010.

Slides:



Advertisements
Similar presentations
John Marshall, 1 John Marshall, University of Cambridge LCWS11, Granada, September
Advertisements

SiD PFA Status and Calorimeter Performance Ron Cassell (SLAC) SiD Design Study Meeting 11/15/08.
Lauri A. Wendland: Hadronic tau jet reconstruction with particle flow algorithm at CMS, cHarged08, Hadronic tau jet reconstruction with particle.
Chapter 3 Loaders and Linkers
John Marshall, 1 John Marshall, University of Cambridge ILD Workshop, LAL Orsay, May
14 Sept 2004 D.Dedovich Tau041 Measurement of Tau hadronic branching ratios in DELPHI experiment at LEP Dima Dedovich (Dubna) DELPHI Collaboration E.Phys.J.
Ties Behnke, Vasiliy Morgunov 1SLAC simulation workshop, May 2003 Pflow in SNARK: the next steps Ties Behnke, SLAC and DESY; Vassilly Morgunov, DESY and.
Validation of DC3 fully simulated W→eν samples (NLO, reconstructed in ) Laura Gilbert 01/08/06.
Object Oriented Programming.  OOP Basic Principles  C++ Classes  September 2004  John Edgar 22.
Chapter 6. 2 Objectives You should be able to describe: Function and Parameter Declarations Returning a Single Value Pass by Reference Variable Scope.
A Comparison of Three-jet Events in p Collisions to Predictions from a NLO QCD Calculation Sally Seidel QCD’04 July 2004.
Michele Faucci Giannelli TILC09, Tsukuba, 18 April 2009 SiW Electromagnetic Calorimeter Testbeam results.
Photon reconstruction and calorimeter software Mikhail Prokudin.
REFACTORING Lecture 4. Definition Refactoring is a process of changing the internal structure of the program, not affecting its external behavior and.
John Marshall, 1 John Marshall, University of Cambridge ILD Workshop, LAL Orsay, May
Energy Flow and Jet Calibration Mark Hodgkinson Artemis Meeting 27 September 2007 Contains work by R.Duxfield,P.Hodgson, M.Hodgkinson,D.Tovey.
John Marshall, 1 John Marshall, University of Cambridge IWLC2010, Geneva, October
C++ for Engineers and Scientists Second Edition Chapter 6 Modularity Using Functions.
Mark Thomson Timing, Tungsten and High Energy Jets.
Implementing a dual readout calorimeter in SLIC and testing Geant4 Physics Hans Wenzel Fermilab Friday, 2 nd October 2009 ALCPG 2009.
John Marshall, 1 John Marshall, University of Cambridge LCWS, Beijing, March 2010.
CS 320 Assignment 1 Rewriting the MISC Osystem class to support loading machine language programs at addresses other than 0 1.
Event Data History David Adams BNL Atlas Software Week December 2001.
1 Realistic top Quark Reconstruction for Vertex Detector Optimisation Talini Pinto Jayawardena (RAL) Kristian Harder (RAL) LCFI Collaboration Meeting 23/09/08.
BeamCal Simulations with Mokka Madalina Stanescu-Bellu West University Timisoara, Romania Desy, Zeuthen 30 Jun 2009 – FCAL Meeting.
ADTs and C++ Classes Classes and Members Constructors The header file and the implementation file Classes and Parameters Operator Overloading.
ILC DBD Common simulation and software tools Akiya Miyamoto KEK ILC PAC 14 December 2012 at KEK.
John Marshall, 1 John Marshall, University of Cambridge LCD-WG2, May
Event-Specific Hadronic Event Reconstruction 1 Graham W. Wilson, University of Kansas.
SiD performance for the DBD Jan Strube CERN. Overview Software Preparation (CERN, SLAC) Machine Environment (CERN, SLAC) Tracking Performance (C. Grefe)
1 Using Jupiter and Satellites Akiya Miyamoto KEK Jan 2006.
John Marshall, 1 John Marshall, University of Cambridge LCD WG6 Meeting, April
Development of a Particle Flow Algorithms (PFA) at Argonne Presented by Lei Xia ANL - HEP.
David Adams ATLAS Virtual Data in ATLAS David Adams BNL May 5, 2002 US ATLAS core/grid software meeting.
CBM ECAL simulation status Prokudin Mikhail ITEP.
05/04/06Predrag Krstonosic - Cambridge True particle flow and performance of recent particle flow algorithms.
Photon reconstruction and matching Prokudin Mikhail.
Why A Software Review? Now have experience of real data and first major analysis results –What have we learned? –How should that change what we do next.
John Marshall, 1 John Marshall, University of Cambridge LCD-WG2, June
1 D.Chakraborty – VLCW'06 – 2006/07/21 PFA reconstruction with directed tree clustering Dhiman Chakraborty for the NICADD/NIU software group Vancouver.
ECAL software development Yuri Kharlov IHEP Protvino.
Ties Behnke: Event Reconstruction 1Arlington LC workshop, Jan 9-11, 2003 Event Reconstruction Event Reconstruction in the BRAHMS simulation framework:
1 Software tools in Asia Akiya Miyamoto KEK 18-March-2005 Simulation and Reconstruction Session LCWS2005 Representing acfa-sim-j activity M.C.Chang 1,K.Fujii.
John Marshall, 1 John Marshall, University of Cambridge LCD Meeting, December
Fast Simulation and the Higgs: Parameterisations of photon reconstruction efficiency in H  events Fast Simulation and the Higgs: Parameterisations of.
J. S. MarshallCost-effective ECAL1 ECAL Simulation Studies – Overview Wednesday 30 th January 2013 J. S. Marshall University of Cambridge.
ATLAS and the Trigger System The ATLAS (A Toroidal LHC ApparatuS) Experiment is one of the four major experiments operating at the Large Hadron Collider.
1 OO Muon Reconstruction in ATLAS Michela Biglietti Univ. of Naples INFN/Naples Atlas offline software MuonSpectrometer reconstruction (Moore) Atlas combined.
John MarshallPandora Development1 J.S. Marshall University of Cambridge.
The “Comparator” Atlfast vs. Full Reco Automated Comparison Chris Collins-Tooth 19 th February 2006.
Calice Meeting Argonne Muon identification with the hadron calorimeter Nicola D’Ascenzo.
John Marshall, 1 John Marshall, University of Cambridge LCD Software Meeting, September
Calibration of the ZEUS calorimeter for hadrons and jets Alex Tapper Imperial College, London for the ZEUS Collaboration Workshop on Energy Calibration.
Mark Thomson University of Cambridge High Granularity Particle Flow Calorimetry.
09/06/06Predrag Krstonosic - CALOR061 Particle flow performance and detector optimization.
J. S. MarshallPandora PFA1 Pandora Particle Flow Calorimetry Tuesday 29 th January 2013 J. S. Marshall University of Cambridge.
John Marshall, 1 John Marshall, University of Cambridge LCD-WG2, July
John Marshall, 1 John Marshall, University of Cambridge LCD WG6 Meeting, February
MAUS Status A. Dobbs CM43 29 th October Contents MAUS Overview Infrastructure Geometry and CDB Detector Updates CKOV EMR KL TOF Tracker Global Tracking.
David Lange Lawrence Livermore National Laboratory
Analysis Tools interface - configuration Wouter Verkerke Wouter Verkerke, NIKHEF 1.
ANALYSIS TRAIN ON THE GRID Mihaela Gheata. AOD production train ◦ AOD production will be organized in a ‘train’ of tasks ◦ To maximize efficiency of full.
11 Sep 2007Tracking - Paul Dauncey1 Tracking Code Paul Dauncey, Imperial College London.
A Study on Leakage and Energy Resolution
slicPandora: slic + pandoraPFANew
Global PID MICE CM43 29/10/15 Celeste Pidcott University of Warwick
OO Muon Reconstruction in ATLAS
Individual Particle Reconstruction
Linear Collider Simulation Tools
Linear Collider Simulation Tools
Presentation transcript:

John Marshall, 1 John Marshall, University of Cambridge ILD Workshop, DESY, July

John Marshall, 2 Pandora Structure Specify Geometry Create Calo Hits Create Tracks Create MC Particles Register User Content Clustering Algorithm Topological Association Algorithms Statistical Reclustering Algorithm Photon Recovery Algorithm Fragment Removal Algorithms Track-cluster Association Algorithms PFO Construction Algorithm Pandora Algorithm Manager Calo Hit Manager Cluster Manager MC Manager Geometry Helper Pandora Settings Track Manager Particle Flow Object Manager Get Particle Flow Objects User Application:Pandora Framework, treat as “black box”: Pandora Algorithms: Pandora API Pandora Content API

John Marshall, 3 Writing a Pandora Application Pandora API Pandora Calo Hit Manager Cluster Manager Track Manager MC Manager Particle Flow Object Manager User Application, e.g. MarlinPandora PandoraApi::Track::Parameters parameters; parameters.m_d0 =...;... PandoraApi::Track::Create(pandora, parameters); To run Pandora, a user needs to write a small application in their chosen software framework. This application uses the PandoraAPI to supply Pandora with details of the detector geometry and of the calo hits and tracks in each event. Pandora then builds its own simple objects. Construction of these objects is easy; the user makes a Parameters class, fills the member variables and then calls the API Create function. Example member variables for a track: d0, z0, track state at start, track state at ECal, etc. All member variables must be specified, or an exception will be thrown when Create is called. The user can provide this information in any order, then call the API ProcessEvent function. Finally, user calls the API GetParticleFlowObjects function.

John Marshall, 4 e.g. Clustering Algorithm Writing a Pandora Algorithm Pandora Calo Hit Manager Cluster Manager Track Manager MC Manager Particle Flow Object Manager Pandora Content API PandoraContentApi::GetCurrentTrackList(... ); PandoraContentApi::GetCurrentOrderedCaloHitList(... );... PandoraContentApi::Cluster::Create(... ); Pandora Managers are designed to store named lists of their respective objects. These objects can be accessed by the Pandora Algorithms, which perform the reconstruction. The algorithms interact with the Managers in a controlled way, via the PandoraContentAPI, and the Managers perform the memory management. The algorithms should therefore contain exclusively physics-driven code, alongside the following typical usages of the PandoraContentAPI: Create new clusters and particle flow objects Modify clusters (adding hits, merging, deleting) Access the current lists of Pandora objects Save new lists of clusters, calo hits or tracks Run a daughter algorithm, etc... Static helper functions are provided to perform tasks that are useful to multiple algorithms, and the Pandora algorithms are configured via xml and can be swapped in/out without recompiling.

John Marshall, 5 Pandora Plugins PandoraPFANew has been designed to make it easy for people to get involved and try out new ideas. Users can therefore register and use their own content, including: Particle identification helper functions, Hadronic and electromagnetic energy correction helper functions, Particle flow algorithms, allowing for a completely different reconstruction. Pandora API is used to pass addresses of helper functions and algorithm “factories” to Pandora managers. This gives Pandora the ability to call the static helper functions and to create and run instances of the user algorithm. Pandora API User Application: Existing Pandora algorithms and functions have been written to ensure they have no dependencies and that they are (subject to changing steering parameters) largely detector independent, but this need not apply to custom content. This provides an opportunity to bring together many independent analyses within Pandora.

John Marshall, 6 Pandora Plugins 1. Implement particle id function: static bool MyClass::MyParticleIdFunction(const pandora::Cluster *const pCluster); 2. Register function with Pandora under a specific name: PandoraApi::RegisterParticleIdFunction(pandora, “MyFunctionName”, &MyClass::MyParticleIdFunction); 3. In PandoraSettings xml file, assign named function to one of a number of particle id ‘slots’: PhotonFast, PhotonFull, ElectronFast, ElectronFull, MuonFast, MuonFull, Algorithms call the helper functions, e.g. ParticleIdHelper::IsMuonFast(pCluster); Particle Identification Functions Energy Correction Functions 1. Implement energy correction function: static void MyClass::MyEnergyCorrection(const pandora::Cluster *const pCluster, float &correctedEnergy); 2. Register function with Pandora under a specific name: PandoraApi::RegisterEnergyCorrectionFunction(pandora, “MyFunctionName”, HADRONIC/ELECTROMAGNETIC, &MyClass::MyEnergyCorrection); 3. In PandoraSettings xml file, specify ordered list of electromagnetic and hadronic correction functions. 4. Algorithms query Pandora Clusters for CorrectedHadronicEnergy() or CorrectedElectromagneticEnergy(). Currently available: Fast photon and electron id, reproducing old Pandora performance. New fast muon id function. Currently available: functions to remove effects of calo hits with anomalously high energies, coil energy loss correction.

John Marshall, 7 Pandora Plugins 1. Copy and rename Pandora template algorithm class, then register new algorithm with Pandora: PandoraApi::RegisterAlgorithmFactory(pandora, “MyAlgorithmName”, new MyAlgorithm::Factory); 2. Add algorithm to the PandoraSettings.xml file; it will then be called automatically for each event. 3. Algorithm reads existing photon cluster collection, then uses unique identifiers in Pandora CaloHits to simply recreate the photon clusters within the Pandora framework. 4. Algorithm uses simple API call to save new photon clusters in a named cluster list, and to remove them from subsequent reconstruction. 5. ClusterPreparation algorithm configured to add photon clusters back into reconstruction when desired; they are probably best added at Pfo construction stage. 6. Should observe an immediate improvement in jet energy resolution. Particle Flow Algorithms Creating a custom algorithm allows access to the full range of functions in the PandoraContentAPI. This allows implementation of almost any conceivable particle flow algorithm. Can write new algorithms to complement existing Pandora reconstruction, or can write simple ‘wrapper’ algorithms to bring results of other packages right to heart of Pandora reconstruction. For example, can very simply (~50 lines of code) use output from e.g. GARLIC to replace Pandora photon-clustering stage:

John Marshall, 8 Algorithm Tuning The Pandora framework is designed to make algorithm tuning painless. Algorithms can be swapped in/out without recompiling and there are no hard-coded numbers; all parameters are configurable. The parameters are divided between the user application and the PandoraPFANew library: User application parameters are those required to isolate PandoraPFANew from specific detector and software framework details. These include calibration constants and specific track quality cuts, etc. PandoraSettings.xml file specifies which algorithms are to be used each event and configures these algorithms. It can override any of the 800 default parameter values and is independent of user application. The majority of parameters in Pandora take default values, compiled into the code. Most parameters are member variables of the algorithms and are commented in the algorithm header files: float m_tanConeAngleECal; ///< ECal tan cone angle used to calculate cone approach distance Each algorithm has a ReadSettings method, called at startup. In this method, parameters are assigned their default values and the relevant section of the xml file is scanned to see if values have been overridden: m_tanConeAngleECal = 0.3f; PANDORA_RETURN_RESULT_IF_AND_IF(STATUS_CODE_SUCCESS, STATUS_CODE_NOT_FOUND, !=, XmlHelper::ReadValue(xmlHandle, "TanConeAngleECal", m_tanConeAngleECal)); The xml helper will look for the key shown below. The original value will be unchanged if this key isn’t present: 0.2 In addition to algorithm settings, there are also static members for Helper classes, and a few "global" settings which are members of the PandoraSettings singleton.

John Marshall, 9 Algorithm Tuning Use MC samples of approximately 10,000 Z  uds generated with the Z decaying at rest, with E z = 91.2, 200, 360 & 500GeV. Performance is quoted in terms of rms 90, defined as rms in smallest range of reconstructed energy containing 90% of events. A cut on polar angle is applied to avoid barrel/endcap overlap region: |cos  | < 0.7 Total energy is reconstructed and jet energy resolution obtained by dividing total energy resolution by  2. rms 90 (E j ) / E j = 3.32 ± 0.04 E j = 250GeV Algorithms specified within the tags in the PandoraSettings.xml file will be called for each event. The algorithms are called in the order they are specified: For simple algorithms, using default parameter values, this simple configuration is sufficient. However, most Pandora algorithms are more complex and many different settings are specified for each algorithm, including nested “daughters”. The parent algorithms dictate the xml configuration details that must be provided for any daughters. Algorithms can ask for named lists of daughter algorithms, or for individually labeled daughter algorithms. This offers much flexibility, and is discussed further at: So far, tuning has aimed to optimise the jet energy resolution, obtained as described below:

John Marshall, 10 Summary The first release of PandoraPFANew (and its associated MarlinPandora processor) is now available. This is a complete replacement for the old version of Pandora and all users are encouraged to upgrade. The PandoraPFANew framework offers a great deal of flexibility for investigating new ideas and, in particular, allows for custom energy corrections, particle id and implementation of custom algorithms. ‘Wrapper’ algorithms can very quickly bring results from other packages right to heart of Pandora reconstruction. The existing particle identification and energy correction functions are quite simplistic and are only placeholders. We are looking for new ideas, so please get in touch if you’d like to be involved... If there is sufficient interest, we are thinking about holding a Pandora workshop in Cambridge in September. Would aim to provide a more detailed description of how Pandora works and discuss all you need to know in order to develop within the Pandora framework. Hands-on sessions; discussions concerning future development, etc.