testing anode residuals

What should residuals look like?

  • For any track, independent of trajectory, if true trajectory is used, residuals should be centered at zero. If trajectory is off, centroid of distribution should be offset by the “miss” distance. For FDC anodes, this is the miss distance perpendicular to the wire.

Where is the wire geometry for the FDC?

  • Looking at the XML, see the following two files: ForwardDC_HDDS.revised_frames.xml and  ForwardDC_HDDS.xml
  • “revised_frames” is obsolete according to Simon. Should be deleted.
  • This was done on 2010-08-18 14:44:52 GMT

Think about the overall goal

  • want something simple and intuitive
  • would also like something predictable
  • proposal 1:
    • pick a wire
    • shoot a particle at set of transverse distances from wire
    • shoot a particle at a set of distances along the wire
    • disadvantages:
      • need apparatus for looking up wire positions
  • proposal 2:
    • pick a grid of space points
    • throw a thousand events from each point on the grid
    • histogram the residuals for each point on the grid
    • plot mean and sigma for each point
    • disadvantages:
      • origin of anomalies not very clear
  • do proposal 2 and call it done

GSL environment issue in Makefile

If GSL_LIB and GSL_INCLUDE are not defined, the Makefile in trkfitterLSLM fails because it inserts a null field after the -I and -L switches, causing them to “eat” the next string as an argument and removing the next switch from the command line. Then the compile or link fails.

This can be solved by defining them to be dummy variables. Then a non-null argument is provided and the include and library needs are satified out of /usr/lib and /usr/include. But you have to remember to do it.

Now check for the existence of these variables in advance. If they exist define the option to be inserted. If not leave the option-containing variable undefined so that the null string gets inserted.

Note that this is possible way to finesse the XERCESC environment issue if xerces is supplied with the system.

coordinates for trajectories along beamline

Thinking about scheme to test anode residuals led to ideas about how to generate tracks parallel to the beam line as artificial test trajectories. Realized that current parametrization of trajectories used by the fitter will not converge for these tracks since the z position of to launch plane position cannot be defined since the launch plane is currently constrained to contain the beamline.

Need to go to a parametrization where the launch plane is allowed to tilt in theta as well.

To specify launch plane start with the x-y plane.
First rotate about the x axis by angle beta. Plane is now the x’-y’ plane where x = x’.
Second rotate about the z’ axis by angle gamma. Plane is now the x”-y” plane.
Now specify offsets in x” and y” to get position in the launch plane.

This is no good. Second rotation does not change the azimuthal direction of the normal to the launch plane. Try again.

First rotate about the z-axis by angle alpha. This sets the phi angle of the trajectory to be alpha + 90
Second rotate about the x’ axis by beta. This sets the polar angle of the trajectory to be beta.
Now specify offsets in x” and y” to get position in the launch plane.

This is better. But still leaves phi not well determined for tracks along beam line. For these an theta_x” and theta_y” approach would be better. But that would mean the variations done in the fit would be with respect to the x” and y” axes. The orientation of those axes (alpha and beta) could not be the fit parameters themselves.

Consider infinite momentum, parallel to beamline: fit would wander around in phi space, possibly not converge. In that case, if one eliminates phi as a parameter, then track can only move in single plane, chosen by the coordinate system. Clearly, here an theta_x theta_y parametrization is needed.

In gluex, the zero degree polar angle tracks is not really an issue. It is arising now because of the desire to make test tracks that are parallel to the beamline.

So, in this artificial case what, can be done?

If really needed, the theta_x, theta_y parametrization can be used.

But can we find out what we want to find out without fitting the track at all? For testing residuals, clearly the answer is yes. A fit is not needed, only a test trajectory. And we know what that trajectory is in advance here.

This means that the test harness needs to be in the context of the full reconstruction. Which is necessary in any case actually.

swim back experiment

Noticed in the past that some fits throw exceptions with non-bracketed minima because a trial trajectory starts swimming away from some hit. Tried swimming backward from initial position and then initial step more likely to start toward the hits. This was not a panacea.

NOTES

working in /local/swim_quick on roentgen
damn: no push_front member function in vector
kludge: swim back and put farthest back point as first point on trajectory

original version:


MyTrajectory::doca: bad initialization of doca search: 0 1 1574 10.96 11.2782 68.0906
==========fit error = 1===========
= at event 25
MyTrajectory::doca: bad initialization of doca search: 0 1 1027 7.39348 7.70726 60.046
==========fit error = 1===========
= at event 32
MyTrajectory::doca: bad initialization of doca search: 0 1 2000 10.96 11.2014 14.775
==========fit error = 1===========
= at event 66
MyTrajectory::doca: bad initialization of doca search: 0 672 673 34.4129 6.08385 5.9746
==========fit error = 1===========
= at event 70

swim_back version, single swim back point:


MyTrajectory::doca: bad initialization of doca search: 0 1 303 18.093 18.7091 58.895
==========fit error = 1===========
= at event 57
MyTrajectory::doca: bad initialization of doca search: 0 1 548 27.948 28.7997 35.4432
==========fit error = 1===========
= at event 70
MyTrajectory::doca: bad initialization of doca search: 0 1 648 26.6388 28.9513 66.7086
==========fit error = 1===========
= at event 90

Note that all of these are tough changes, e. g. event 70, which is in both configurations:

event_70
event 70, gives exception with non-bracketed minimum with or without swim-back method for trajectory

This test version was checked into branches/src/programs/Analysis/plugins/trkfitterLSLM-swim-back-quick-and-dirty .

GlueX Tracking Meeting, September 21, 2009

Present

  • JLab: Eugene, Dan, Simon, Elton, Tim, Sascha, David, Beni
  • CMU: Yves, Curtis

Meeting page

FDC, Dan

  • continued problems with high current draw
  • stack construction begins next week

CDC, Curtis

  • discussion on ground connections
  • stripping tool found
  • want to shorten coax connection bracket
  • conducting epoxy

dE/dx, Yves

  • separation in a single cell between pions and protons in MC

dE/dx, Simon

  • good separation at 350 GeV/c

tracking update, David

  • resolution as function of position fit and put into mcsmear
  • 800 MeV/c pions simulated with old flat resolution dependence and new function
  • reconstructed vs. calculated resolution for protons

FDC resids

go to separate residuals for cathodes and anodes

look at code that gets pseudo points

DTrackLSFitter:
eventLoop->Get(pseudopoints);

combinedResidFunc (in constructor):
rFDC(pseudopoints, trajectory, lorentz_def_in, level)
rFDC has type residFDC

residFDC::calcResids:
pointThis = pseudo2HepVector(*ppointPtr);

pseudopoints accessed residFDC::calcResids

status and progress in the fitter

There is progress and status in the standard histograms

progress:

plots “progress” from tree
fitter_tree:

  • progress starts at -1
  • every event set to 0, if progress = -1 that is an error
  • increment to 1 if there are tracks
  • increment to 2 if there is exactly one track
  • increment to 3 if a fit is produced

status:

plots status from tree
fitter_tree:

  • initialized to -99

DTrackLSFitter:

  • fitStatus = -1 if nhits too low, early return
  • 0 nominal
  • 1 exeception thrown

Need to record the exception type. Added it as an attribute of track. Migrated to the histgram, lower right:

Scalers quantities from fitter for 1000 events. Note exceptions scaled in lower right.
Scalers quantities from fitter for 1000 events. Note exceptions scaled in lower right.

FDC Meeting, August 20, 2009

FDC Weekly Meeting Agenda
August 20, 2009
-----------------------------
1. Full-scale prototype preparations
     - status of ground cable preparations
     - update on gas window construction
     - stack construction
        - status of assembly jig
        - assembly document status
2. Wire frame update
     - soldering repairs on wire frames
        - status (P1,P2,P3,P4)
        - wire frame cleaning update
        - persistent HV current problems
           - tests in Sahara room
     - update of construction document
        - wire electroplating procedures
     - Phase 3 planning
        - dealing with flatness issues
        - design of combs
        - new strongback design
        - other facility modifications
        - final circuit board design
        - time table for construction
        - board cleaning
3. Cathode frame update
     - cathode construction updates
        - frame modifications
        - construction of sandwiches
           - two design versions
        - layout of boards in prototype
     - cathode flatness measurement status
        - QA requirements
        - measurement status
     - rigid-flex assembly QA update
     - rigid-flex assembly attachment
        - test soldering
        - schedule for completing work
     - PR for 2-um board material for production
     - cathode construction document status
     - document for QA/soldering/cleaning cathodes
     - document for QA/stuffing/cleaning cathode daughter boards
4. Miscellaneous
     - cooling system test report
     - sense and field wire test document
     - remaining FDC system design work
     - FDC construction clean room location update
5. Prototype tests
     - update on cosmic ray stand
     - noise issues in EEL126
     - small-scale prototype resolution study update
     - test plan for full-scale prototype
     - fixture for support/rotation of full-scale prototype

FDC residual problem

Some plots from the standard set, 9 and 10 to be specific.

probability distributions for CDC only events and FDC only events
probability distributions for CDC only events and FDC only events

From the above it can be seen that the FDC only events have only poor probability events.

residuals for all events, CDC-only, and FDC-only
residuals for all events, CDC-only, and FDC-only

The residuals for the FDC-only events look to be about 460 microns, an highly non-Gaussian. This is probably due to the point-line distance residual when using pseudo-points. The resolution used in the fitting was 250 microns.

Try running again with FDC error set to 460 microns. Get the following:

probabities with FDC error set at 460 microns
probabities with FDC error set at 460 microns

So at least now there is a flat-ish region in the FDC probability distribution, but it is none too pretty. Looks like the FDC annodes and cathodes should be fitted separately rather than being packages in pseudopoints.

Talked to Simon, can start with pseudopoints to find individual components of hits.