The Cleo III Tracking Infrastructure - PowerPoint PPT Presentation

1 / 34
About This Presentation
Title:

The Cleo III Tracking Infrastructure

Description:

Post-docs: Peter Gaidarev, Chris Jones, Martin Lohner, Adam Lyon, Ken McLean, John O'Neil, Alex Undrus, Andreas Warburton. Graduate Students: Pablo Hopman, Mike ... – PowerPoint PPT presentation

Number of Views:71
Avg rating:3.0/5.0
Slides: 35
Provided by: adam1
Category:

less

Transcript and Presenter's Notes

Title: The Cleo III Tracking Infrastructure


1
The Cleo III Tracking Infrastructure
  • Adam Lyon (University of Rochester)
  • For the CLEO Collaboration
  • CHEP98
  • August 31, 1998

2
Cast of Characters
  • The CLEO III Tracking Group
  • Professors Paul Avery, Karl Berkelman, Lawrence
    Gibbons, Inga Karliner, Jon Thaler, Alan
    Weinstein
  • Post-docs Peter Gaidarev, Chris Jones, Martin
    Lohner, Adam Lyon, Ken McLean,John ONeil, Alex
    Undrus, Andreas Warburton
  • Graduate Students Pablo Hopman, Mike Marsh,
    Merlin Mitchell-Meyer, Werner Sun
  • Undergrads Jason Grollman, Dawn Isabel (98 REU)

3
Outline
  • What is Cleo III?
  • Design goals of the tracking infrastructure (TI)
  • Suez, the TIs home
  • Details
  • Raw data
  • Converted data
  • Bunch finding
  • Track finding (pattern recognition)
  • Track fitting
  • Tracks
  • Connections between data (Lattice)
  • Running
  • Summary

4
The Cleo III Detector
  • Upgraded detector at CESR phase 3 (ee-)
    1033/cm2/s
  • 10 fb-1/yr on the ?(4S) resonance
  • All new IR
  • 4 layer silicon detector
  • New drift chamber
  • Particle ID with new RICH detector

5
New Software for Cleo III
  • Current software
  • Fortran based
  • Statically linked
  • Different frameworks for reconstruction and
    analysis (data storage file type dependent)
  • Data access via Fortran common blocks
  • Cleo III software
  • C based with some Fortran legacy modules
  • Dynamically linked
  • Data delivery system is the only offline
    framework (Suez)
  • Modularized, type-safe, write-safe access to data

6
The Tracking Infrastructure (TI)
  • Requirements
  • Perform pattern recognition and track fitting
  • Generic as possible
  • Plug in different trackers, fitters, cluster
    algorithms, drift functions
  • Data should not care who made it
  • Algorithms should not care where data comes from
  • General goals
  • Enforce proper interaction with the data delivery
    system
  • Common interface for data (independent as
    possible of specific algorithm)
  • Common interface to algorithms (easy to insert
    new ones)

7
The Data Delivery System Suez
  • The One Framework
  • C underneath extended TCL
  • Processors
  • Triggered by data stops (new event, new run)
  • Mainly for analysis code
  • Producers/proxies
  • Triggered by request for data
  • On the fly processing / reconstruction
  • See talk (CLEO III Data Access Framework,
    Tuesday, 1st Parallel Session E, Martin Lohner)

8
Possible path of reconstruction
Read Raw Data RawData
Convert Raw Datato Usable Hit Data ConvertedHit
Bunch Finding BunchDecision, ConvertedDRHit
Find Tracks (pattern recog) SeedTrack
Attach Silicon Hits SeedTrack
Fit Tracks Hypothesis
9
Raw Data
  • Designed for speed and efficiency
  • Internal lists of DAQ words (32 bit integers)
  • Raw Data classes give
  • iterators for traversing list
  • methods for converting DAQ words to id/tdc/adc
    values (bit masking)

BaseRawData begin() const_iterator end()
const_iterator - m_ptrToRawWords UInt32
T
RawHits rawDigi(rawWord int)
TDigiType daqId( rawWord int ) TDaqIdType
RawSVHits typedef SVDatumDigiType DigiType
10
Raw DR Wire Hits
  • In addition CollatedRawDRHit
  • Raw data words expanded into CollatedDRHit
    objects for easy access
  • RawDRHits converted by CollatedDRHitProxy
    (returns a list)

CollatedRawDRHit identifier()
identifier daqId() DRDatumDaqIdType isChar
ge() DABoolean digiCharge()
DRDatumDigiType digiTimes()
vector
11
Converted Hits
  • Hits usable for pattern recognition
  • Drift Chamber (DR) Wire hits
  • TDC and ADC converted to time and pulse height
  • Time converted to drift distance (only hit level
    corrections)
  • DR Cathode hits
  • clustered raw hits
  • Silicon Hits
  • Also clustered raw hits
  • r-f and r-z hits

ConvertedHit id() identifier device()
kDevice
ConvertedDRHit layer() int wire()
int distance() Meters
ConvertedCathodeHit peakPad()
int totalCharge() PicoCoul z() Meters
ConvertedSVHit layer() int wafer()
int coord() HepPoint3D
12
Wire hits and Bunch Finding
  • e, e- reside in bunches within trains
  • Bunches are very close (14 ns)
  • Trigger timed on train crossings
  • Use drift chamber wire hits to determine correct
    bunch for TDC t0
  • BunchFinder is generic
  • TrackletBunchFinder (wrapped Fortran) counts
    tracklets in stereo layers
  • BunchDecision is generic
  • BunchDecision - basic information for normal
    users
  • TrackletBunchDecision - detailed information,
    accessed with a smart pointer

13
Bunch Finding
14
Bunch Finding Classes
  • Bunch Finder is generic
  • must give BunchDecision as result

BunchFinder event(theRecord Record)
BunchDecision filterDRHits( theRecord
Record) ConvertedDRHits testBunches(bunchStr
ucture, drHits) BunchDecision 0
BunchDecision bestBunchTime() double
0 bestBunchNumber() int 0 numberOfTestedBu
nches() int 0
TrackletBunchDecision bestBunchTime() double
bestBunchNumber() int numberOfTestedBunches
() int bestBunchInfo() TrackletTestedBunchIn
fo bunchInfo(numint) TrackletTestedBunchInfo

...
TrackletBunchFinder testBunches(bunchStructure,
drHits) BunchDecision
OtherBunchFinder testBunches(bunchStructure,
drHits) BunchDecision
15
Converting DR Hits
16
ConvertedDRHit Classes
  • THE ConvertedDRHit Class
  • Class structure is
  • Independent of producer
  • Independent of drift function

ConvertedHit id() identifier device()
kDevice
ConvertedDRHit layer() int wire()
int wireInLayer() int time()
PicoSec distance() Meters extrapolatedDistan
ce(timeOffset PicoSec) Meters charge()
PicoCoul quality() QualHit weight() double
...
17
Clustering Cathode Hits
  • ConvertedCathodeHits
  • Cluster algorithm is generic
  • Centroid calculator is generic (for
    ClusterCathodeCentroid)

ClusterCathodeBase findCluster( rawCathodeHits
) vector 0
...
ClusterCathodeCentroid findCluster(
rawCathodeHits ) vector
Hit - m_minThreshold ADCCounts - m_peakThresh
old ADCCounts
CentroidBase calcCentroid(iteratorToFirstRawChar
ge, lastPad int, ConvertedCathodeHit)
void 0
CentroidCoG calcCentroid(iteratorToFirstRawCharg
e, lastPad int, ConvertedCathodeHit)
void
18
ConvertedCathodeHit Classes
  • Class structure is independent of clustering
    algorithm

ConvertedHit id() identifier device()
kDevice
...
ConvertedCathodeHit peakPad()
int numberOfPads() int totalCharge()
PicoCoul peakCharge() PicoCoul z()
Meters phi() double width()
double quality() QualHit weight() double
19
ConvertedSVHit Classes
  • ConvertedSVHit
  • Raw hits clustered into Converted hit
  • Z hits are repeated for wafer ganging (z
    ambiguity - determined by tracking)
  • Independent of clustering algorithm

ConvertedHit id() identifier device()
kDevice
ConvertedSVHit wafer int charge
PicoCoul coord HepPoint3D quality QualHit
...
ConvertedSVZHit
ConvertedSVRPhiHit
20
Lattice - Data connections
Lattice
ConvertedDRHit
CollatedRawDRHit
  • Lattice
  • Generic data connector
  • One-one, one-many, many-many connections link
    data
  • LatticeLinkData

21
Pattern Recognition (Track Finding)
  • Find tracks from hits
  • Need to support
  • Legacy Fortran tracker
  • New C tracker
  • Standalone silicon tracker
  • Tracker does not care who produced the hits
  • Results
  • SeedTracks (prelim. helix parameters) GENERIC
  • Connections between SeedTracks and hits
  • Data distinguished by use and producer labels

22
Track Finding
TrackFinder event filterDRHits
filterSeedTracks findTracks insertTracks
DoitTrackFinder findTracks insertTracks fil
lFortranCommonBlocks
C3trTrackFinder findTracks insertTracks
23
Connecting Tracks to Hits - Lattice
KTHelix curvature() double phi0()
double d0() double ...
SeedTrack
SeedTrack
L
L
L
L
L
L
L
L
L
L
Hit
Hit
Hit
Hit
Hit
Hit
Hit
Hit
Hit
Hit
TRSeedTrack identifier() identifier quality
() Quality
  • One-to-many lattice
  • Can get list of hits from SeedTrack
  • Can get the SeedTrack from the Hit
  • Link data contains information due to the match
    (natural place)

SeedToHitLinkData residual() double ...
24
Track Fitting
  • Fit SeedTracks
  • Does not care who produced them
  • Produce hypothesis track representations
  • One per mass hypothesis (pion, kaon, electron,
    muon, proton, outward pion)
  • Produce connections to hits
  • Correct hits per each hypothesis (entrance angle)
  • Currently
  • Legacy Fortran Kalman Fitter
  • New C Kalman Fitter

25
Track Fitter Classes
  • Class structure independent of fitter
  • Resulting hypothesis structure independent of
    fitter

TrackFitter event filterSeeds fitTracks
0 hypothesis 0 hitLattice 0
KalmanTrackFitter fitTracks hypothesis hitL
attice
FortranKalmanTrackFitter fitTracks hypothesis
hitLattice
...
26
Fitter Results Hypotheses
KTKinematicData momentum() ThreeVector fourM
omentum() FourVector charge()
double pmag() double
TDKinematicFit identfier() identifier
DBCandidateHypo H
TDKinematicCandidateFit
TDKinematicPionFit.h
typedef TDKinematicCandidateFitDBCandidatekChargedPion TDKinematicPionFit
27
Track Delivery
Hypotheses lists cache
TDTrack pionFit() TDKinematicPionFit kaonFi
t() TDKinematicKaonFit kinematicFit(DBCandidate
Hypo H) TDKinematicFit pionHelix()
TRHelixPionFit kaonHelix() TRHelixKaonFit he
lixFit(DBCandidateHypo H) TRHelixFit
TDKinematicFit
TRHelix
TDTrackMaster holds lists of proxies for
retrieving hypotheses
DBCandidateHypo H
NavTrack dEdx() dEdx showers()
showers TrackQuality() quality
TDKinematicCandidateFitProxy Proxy for obtaining
particular TDKinematicCandidateFit
28
Delivering Tracks
29
Fit - Hit Lattice
PionFit
PionFit
L
L
L
L
L
L
L
L
L
L
Hit
Hit
Hit
Hit
Hit
Hit
Hit
Hit
Hit
Hit
FitHitLinkData residual() double residualEr
ror() double correctedPosition()
ThreeVector disposition() code entranceAngle
() double
  • Hits are corrected for each mass hypothesis
  • Link data natural place for information
  • Uncorrected information still available

FitDRHitLinkData correctedDriftDistance()
double
...
30
A more complicated lattice
PiOutFit
PiOutFit
L
L
L
Shw
Shw
Shw
Shw
Shw
Shw
Shw
TrackShowerLinkData eOverP()
double centroidPosition() ThreeVector
31
Running jobs
  • Analysis (no rereco)
  • prod sel AnalysisExplorer
  • proc sel DiscoverNewCPViolation
  • file in myData.data
  • go
  • Analysis (with rereco)
  • prod sel DoitTracker
  • prod sel myCoolSVTracker
  • prod sel KalmanFitter
  • prod sel AnalysisExplorer
  • proc sel DiscoverNewCPViolation
  • file in myData.data
  • go
  • Reconstruction
  • prod sel RawData
  • prod sel CDOffCalStandard
  • prod sel ConvertedData
  • prod sel C3trTrackFinder
  • prod sel SiliconTracker
  • prod sel KalmanFitter
  • prod sel AnalysisExplorer
  • proc sel Reconstruction
  • file in rawData.data
  • go

32
An Event
33
Summary
  • Cleo III Tracking Infrastructure coding is
    underway
  • Achieved Goals
  • Accommodate different algorithms into a coherent
    and consistent framework
  • Standardized retrieval of data
  • Data are as independent of production algorithm
    as possible
  • Algorithms independent of data origin
  • Related data are linked to each other with a
    generic matching system

34
Other CLEO III Offline Talks at CHEP98
  • Spectator (CLEO3D) 208, Tuesday, 1st Parallel
    Session A, Chris Jones
  • CLEO III Data Access Framework 194, Tuesday,
    1st Parallel Session E, Martin Lohner
  • Suez Job Control 209, Tuesday, 2nd Parallel
    Session E, Martin Lohner
  • General Purpose Data Base System for Constants
    Management 217, Wednesday, 1st ParallelSession
    C, Rich Baker
  • CLEO III Detector Geometry 195, Wednesday,1st
    Parallel Session E, Chris Jones

35
Suez Data Model
Write a Comment
User Comments (0)
About PowerShow.com