Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

My editorial comments are in italics.

Morning Session

Thursday, 9:00 AM, Sierra conference room

...

  • All tracks are fitted presuming the pion mass for energy loss and scattering.
    • There is no option to use a different mass.
  • Still needs the bridge code to instantiate its geometry from the org.lcsim geometry.
    • Should be simple once that is decided.
  • Language: hits and misses
    • hit can have material associated with it.
    • miss is material without a hit ( eg. beam pipe, inefficient detector .... )
    • Point of closest approach to origin is one type of miss.
  • He showed his hit class:
    • to use TRF you instantiate TRF hits from the clusters in the event.
  • Native output includes track parameters + cov at all hits and misses.
    • No persistency yet
    • He wants to shoehorn his Hit class into TrackerHit.
  • He allows kinks on tracks.
    • I am not sure what this is for.
  • Cylinders for PCAO style tracks are always coaxial with the z axis
  • Planar surfaces are always perfectly alighned but we could make new hit derived classes to fix that when needed - not a problem.
  • He implements both thickscatter and thinscatter materials
  • Straggling in energy loss does get into the covariance matrix.
  • At the Saclay meeting last week, Ties presented a trajectory class that could hold track parameters + cov at multiple locations. Others prefered extending the existing Track class.

Afternoon Session

Hans, Tim, Norman, Jeremy, Caroline, Nick, Rich, Dima, Rob

Rich presented a stripped down cluster class that was discussed briefly. It was very close to the class Rob presented on Wednesday.

Dima presented an interesting idea to split the concept of a cluster into two pieces:

  • ClusterData
    • a list of hits plus bookkeeping
    • no position or error, local or global, is available from this object.
    • This would be added to the event, in an organized container, not a flat list.
    • We do not expect this to be persistable.
  • TrackCluster
    • something that can be created from ClusterData plus a Helix.
    • It is possible to specify the helix as null and the class must perform well defined actions when this is done.
    • This gives access to position information in both local and global coordinates.
    • Global information can be created by a lazy evaluation. I think it must be evaluated this way
    • The class allows the user to specify the algorithm to be used to compute the measurement.
    • We do not expect this to be persistable, although we would really like it to be.

A TrackCluster can create a TrackerHit when asked. There are two models for use:

  • For each TrackClusterData, instantiate a TrackCluster using a null helix and add it to the event. People can drive their pattern recognition on this. Create new TrackClusters using helix information as it becomes available.
  • Start up my pattern recognition code, create some TrackCluster for the hits I am interested in. Make more TrackCLusters as needed, including helix information when available.
  • In both cases:
    • Once I have decided that a hit belongs on a track, I can create a trackerhit for it. We also need to create whatever sort of hit is needed by the track fitter being used.
    • We do not modify the objects in the event.

When I am finished with the pattern recognition, I will have a list of tracks, each of which will have a list of associated TrackerHits.

  • This inverts the original purpose of TrackerHit: it is now the end product of pattern recognition, not the input! It looks to me as if TrackerHits are now only useful for graphics and perhaps some monitoring.
  • I am a little worried about the resource usage of this model, both memory and CPU, compared to a model in which clusters are much simpler objects. But we can go ahead with it for now.

We still need a solution for bookkeeping which clusters are still available for use. While a TrackCluster object does keep a List of all TrackerHits that it created, this is not the correct bookkeeping solution:

  • Objects in the event should be immutable.
  • If a TrackCluster is not in the event, then the record is incomplete.
  • There is no record of who is using it.
  • We do not need to solve this now but we need to keep it on the list of things to do.