Hits and Clusters Rob Kutschke, Caroline Milstene, Hans Wenzel Fermilab May 9, 2007.

Slides:



Advertisements
Similar presentations
Sets and Maps Part of the Collections Framework. 2 The Set interface A Set is unordered and has no duplicates Operations are exactly those for Collection.
Advertisements

CS 450: COMPUTER GRAPHICS FILLING POLYGONS SPRING 2015 DR. MICHAEL J. REALE.
SE-1020 Dr. Mark L. Hornick 1 Inheritance and Polymorphism: Interfaces.
CS 106 Introduction to Computer Science I 02 / 29 / 2008 Instructor: Michael Eckmann.
Advanced Topics in Algorithms and Data Structures Lecture 7.1, page 1 An overview of lecture 7 An optimal parallel algorithm for the 2D convex hull problem,
SE-1020 Dr. Mark L. Hornick 1 Inheritance and Polymorphism: Abstract Classes The “not quite” classes.
Query Evaluation. An SQL query and its RA equiv. Employees (sin INT, ename VARCHAR(20), rating INT, age REAL) Maintenances (sin INT, planeId INT, day.
Query Evaluation. SQL to ERA SQL queries are translated into extended relational algebra. Query evaluation plans are represented as trees of relational.
1 Module 2: Fundamental Concepts Problems Programs –Programming languages.
CS 307 Fundamentals of Computer Science 1 Abstract Data Types many slides taken from Mike Scott, UT Austin.
Lecture 25 Selection sort, reviewed Insertion sort, reviewed Merge sort Running time of merge sort, 2 ways to look at it Quicksort Course evaluations.
Concurrent & Distributed Systems Lecture 4: ME solutions Lecture 3 considered possible algorithms for achieving Mutual Exclusion between the critical sections.
Lecture 2: Fundamental Concepts
CPSC 668Set 12: Causality1 CPSC 668 Distributed Algorithms and Systems Fall 2009 Prof. Jennifer Welch.
Correctness. Until now We’ve seen how to define dataflow analyses How do we know our analyses are correct? We could reason about each individual analysis.
1 Forward Tracking Simulation Norman A. Graf ALCPG Cornell July 15, 2003.
CS 106 Introduction to Computer Science I 02 / 28 / 2007 Instructor: Michael Eckmann.
CS 106 Introduction to Computer Science I 10 / 15 / 2007 Instructor: Michael Eckmann.
CS 106 Introduction to Computer Science I 10 / 16 / 2006 Instructor: Michael Eckmann.
CS 106 Introduction to Computer Science I 04 / 30 / 2010 Instructor: Michael Eckmann.
Chapter 19 Java Data Structures
Polymorphism & Interfaces
COMP 175: Computer Graphics March 24, 2015
Parallel Algorithms Sorting and more. Keep hardware in mind When considering ‘parallel’ algorithms, – We have to have an understanding of the hardware.
Chapter 3 List Stacks and Queues. Data Structures Data structure is a representation of data and the operations allowed on that data. Data structure is.
Liang, Introduction to Java Programming, Sixth Edition, (c) 2007 Pearson Education, Inc. All rights reserved Chapter 22 Java Collections.
Chapter 5 Ordered List. Overview ● Linear collection of entries  All the entries are arranged in ascending or descending order of keys.
Since Rich wanted some relatively quick info on what detector might be needed to help MuTr pattern recognition, I did a scan on a central HIJING file I.
Collections in Java. Kinds of Collections Collection --a group of objects, called elements –Set-- An unordered collection with no duplicates SortedSet.
JAVA COLLECTIONS LIBRARY School of Engineering and Computer Science, Victoria University of Wellington COMP T2, Lecture 2 Marcus Frean.
9/26/11HFT soft meeting, BNL1 Chain analysis fz file MuDst.root minimc.root geant.root event.root McEvent.root StMiniMcMaker StAssociationMaker : STAR.
(c) University of Washington14-1 CSC 143 Java Collections.
Some Thoughts about Hits, Geometry etc Rob Kutschke, Caroline Milstene, Hans Wenzel Fermilab March 27, 2007.
CS 106 Introduction to Computer Science I 04 / 20 / 2007 Instructor: Michael Eckmann.
Data Structures Chapter 1- Introduction Mohamed Mustaq.A.
Some Other Collections: Bags, Sets, Queues and Maps COMP T2 Lecture 4 School of Engineering and Computer Science, Victoria University of Wellington.
Event Data History David Adams BNL Atlas Software Week December 2001.
Copyright © Cengage Learning. All rights reserved. CHAPTER 7 FUNCTIONS.
Data structures and algorithms in the collection framework 1.
NA62 Trigger Algorithm Trigger and DAQ meeting, 8th September 2011 Cristiano Santoni Mauro Piccini (INFN – Sezione di Perugia) NA62 collaboration meeting,
Some Thoughts about Hits, Geometry etc Rob Kutschke, Hans Wenzel Fermilab March 13, 2007.
Gaudi Framework Tutorial, April Algorithm Tools: what they are, how to write them, how to use them.
Sensitive Detector Segmentation Norman Graf (SLAC) LC-ECFA Meeting, DESY May 28, 2013.
What is in my contribution area Nick Sinev, University of Oregon.
Integrated Tracking-Clustering Dmitry Onoprienko Fermilab 2009 Linear Collider Workshop of the Americas. Albuquerque, September-October 2009.
Tracking Toolkit for SiD ALCPG 2007 Fermilab. October 22 – 26, Dmitry Onoprienko Kansas State University.
This recitation 1 An interesting point about A3: Using previous methods to avoid work in programming and debugging. How much time did you spend writing.
Calorimeter Assisted Track Finder Tracking Infrastructure Dmitry Onoprienko Kansas State University Linear Collider Workshop 2007 May 30 – June 3, 2007.
Hashtables. An Abstract data type that supports the following operations: –Insert –Find –Remove Search trees can be used for the same operations but require.
Computer Science 209 Software Development Inheritance and Composition.
Claudio Grandi INFN-Bologna CHEP 2000Abstract B 029 Object Oriented simulation of the Level 1 Trigger system of a CMS muon chamber Claudio Grandi INFN-Bologna.
Copyright (c) Systems and Computer Engineering, Carleton University * Object-Oriented Software Development Unit 13 The Collections Framework.
Fall 2001(c)opyright Brent M. Dingle 2001 Simple Sorting Brent M. Dingle Texas A&M University Chapter 10 – Section 1 (and some from Mastering Turbo Pascal.
Abstract Classes and Interfaces. Let’s say we are working on a video game together… Our job is to independently write two different enemies for the game.
Introducing Arrays. Too Many Variables?  Remember, a variable is a data structure that can hold a single value at any given time.  What if I want to.
CMSC 330: Organization of Programming Languages Operational Semantics.
JAVA COLLECTIONS LIBRARY School of Engineering and Computer Science, Victoria University of Wellington COMP T2, Lecture 2 Marcus Frean.
SiD Workshop, Boulder 2008Dmitry Onoprienko SiD Workshop Boulder, September 2008 Dmitry Onoprienko Kansas State University Update on tracker hit processing.
Camera Calibration Course web page: vision.cis.udel.edu/cv March 24, 2003  Lecture 17.
Overview of EMU Software Rick Wilkinson. Slice Test DAQ We succeeded in using Slice Test DAQ code to take test beam data, combining chamber and trigger.
Integrated Tracking/Clustering Algorithm
Chapter 19 Java Data Structures
Software Development Inheritance and Composition
Polygon Filling Algorithms
Java Collections Overview
Design by Contract Fall 2016 Version.
Subroutines Idea: useful code can be saved and re-used, with different data values Example: Our function to find the largest element of an array might.
Administrivia- Introduction
CS2013 Lecture 7 John Hurley Cal State LA.
Presentation transcript:

Hits and Clusters Rob Kutschke, Caroline Milstene, Hans Wenzel Fermilab May 9, 2007

3/27/20072 Overview Hits first, then clusters. A container of containers: –The event contains a HitStore –For each sensor the HitStore contains A HitsOnSensor object (plus HitsonSensor) –Each HitsOnSensor object contains ArrayList ( plus HitsonSensor) Example of HitsonSensor = link to geometry –Hit is an interface. Implementing classes are: DataStripHit, MCStripHit DataPixelHit, MCPixelHit DataCCDHit, MCCCDHit DataTPCHit, MCTPCHit Or maybe there is no Hit interface and the MC classes extend the Dataclasses? Or …. In any case we need the first 6 classes above and should consider the last pair.

3/27/20073 Why Data and MC? Need to ensure that our algorithms only use what will really be available for use with real data. –Helps to prove to others that when we say we are not cheating, we mean it. –Of course we will be cheating for some time to come. I would like to see the core algorithms use only clusters, not hits. It can follow the trail back to the MCTruth info

3/27/20074 DataStripHit intgetStrip(); intgetIADC(); intgetTime(); doublegetADC(); HitsonSensorgetParent();Includes access to geometry. More later.

3/27/20075 MCStripHit intgetStrip(); intgetIADC(); intgetTime(); doublegetADC(); HitsonSensorgetParent(); MCTruthgetMCTruth(); For now MCTruth is undefined ( to avoid using RawTrackerHit ). This model Requires that a Hit come from exactly 1 MCTruth hit. Implies that event merging must be done at the MCTruth level. Could also consider returning a List of MCTruth?

3/27/20076 DataPixelHit intgetPixel(); intgetIADC(); intgetTime(); doublegetADC(); HitsonSensorgetParent(); The getPixel() method returns an int that can be decoded by geometry system into a 2D local position. This type could return a 3D position. But only this type of hit can do that.

3/27/20077 MCPixelHit intgetPixel(); intgetIADC(); intgetTime(); doublegetADC(); HitsonSensorgetParent(); MCTruthgetMCTruth(); Same caveats as for MCStripHit and DataPixelHit.

3/27/20078 DataCCDHit Pair getPixel(); intgetIADC(); intgetTime(); doublegetADC(); HitsonSensorgetParent(); I am thinking of a clocked CCD. One cannot compute a 3D position until a bunch crossing is specified. Can we do the same trick as we do for pixels and return an integer channel Id.

3/27/20079 DataTPCHit Pair get2DPoint(); intgetIADC(); intgetTime(); doublegetADC(); HitsonSensorgetHitsonSensor(); One cannot compute a 3D position until a bunch crossing is specified.

3/27/ Comment on TPC I am trying to see how this fits. It might not. Does the abstraction of a sensor fit with the readout on a TPC endplate? It is not a planar thing but it does have some sort of segmentation.

3/27/ Hit Interface intgetIADC(); intgetTime(); doublegetADC(); HitsonSensorgetHitsonSensor(); MCTruthgetMCTruth();

3/27/ HitsOnSensor DetectorElementgetDetectorElement(); ArrayList getHits(); HitStoregetHitStore();

3/27/ HitStore HitsOnSensorgetHits(device,layer,phi,z); HitsOnSensorgetHits(SensorID s); HitsOnSensorgetHits( some other way); boolisMC(); …Get other meta data ???

3/27/ StripCluster doublegetCentroid();Local coord. doublegetSigma();Local coord. ArrayList getHits(); intgetTime(); doublegetADC(); ClustersonSensorgetParent(); No data/mc distinction since that is available via the hits. Remember that a cluster may contain hits from different MCParticles.

3/27/ PixelCluster Pair getCentroid();Local coord Pair getSigma();Local coord. ArrayList getHits(); intgetTime(); doublegetADC(); ClustersonSensorgetParent(); Maybe getSigma() should return a 2x2 matrix instead of a 2 vector? Are we guaranteed that it is diagonal if in local coord?

3/27/ ClustersOnSensor DetectorElementgetDetectorElement(); intgetAlgorithmId(); intgetAlgorithmVersion(); ArrayList getClusters(); ClusterStoregetClusterStore();

3/27/ ClusterStore ClustersOnSensorgetClusters(int device, int layer,int phi, int z); ClustersOnSensorgetClusters(SensorID s); ClustersOnSensorgetClusters( some other way); boolisMC(); …Get other meta data ???

3/27/ About ClusterStore Should ClusterStore have methods to return a group of clusters that are on more than 1 sensor? Or is that the job of a different class that takes a ClusterStore as an argument?