CalDetTracker
Contents
Jeff Hartnell + Chris Smith.
This package provides a custom tracker for the MINOS calibration
detector that was used extensively in the calibration and analysis of
the CalDet data. There are two distinct tracking modes: one for
straight cosmics muons and one for particles that have track-like
energy depositions and that may stop in the detector.
Much of the information from CalDetSI
and CalDetPID
packages is written out so as to allow selection of a clean sample of a
given particle type.
There is also code to analyse the output of the tracker to perform
strip-to-strip and MEU calibrations among other things.
Input Objects
The tracker requires a "triggered" (event-like snarls) input file; they
can be distinguished by *.tdaq.root rather than the more common
*.mdaq.root files.
Output Objects
The output objects of the tracker are all stored in a TTree in a file
typically called Tracker*.root. Some of the objects are created on a
per snarl basis and others only once per file.
The tree is called:
ftree=new TTree("TrackerTree","Tracker Tree");
These tree branches are written to on a per snarl basis:
ftree->Branch("Snarl",&fsnarl,"snarl/I",32000);
if(fWritePID==1)
ftree->Branch("PIDInfo","CDPIDInfo",&fPID,8000,1);
ftree->Branch("TrackInfo","CDTrackInfo",&fTrkInfo,8000,1);
ftree->Branch("TrackedHitInfo","TClonesArray",&fTrkHits,8000,1);
ftree->Branch("StraightTrackedHitInfo","TClonesArray",&fStTrkHits,8000,1);
ftree->Branch("CCHitInfo","TClonesArray",&fCCHits,8000,1);
ftree->Branch("XTalkHitInfo","TClonesArray",&fXTalkHits,8000,1);
ftree->Branch("UnTrackedHitInfo","TClonesArray",&fUnTrkHits,8000,1);
if (fWriteTruth)
ftree->Branch("TruthHitInfo","TClonesArray",&fTruthHits,8000,1);
These branches are written to once per file:
TTree opt_tree("TrackerOptions","Tracker Options");
opt_tree.Branch("SimFlag",&fSimFlag,"SimFlag/I",32000);
opt_tree.Branch("BeamMomentum",&fBeamMomentum,"BeamMomentum/F",32000);
opt_tree.Branch("Run",&frun,"run/I",32000);
opt_tree.Branch("TrackerOptions","CDTrackerOptions",&fTrkOpt,8000,1);
The TrackedHitInfo objects are stored in a separate TClonesArray for
each event. There is a separate TrackedHitInfo object in the
TClonesArray for each stripend in the event. Similarly for the
CCHitInfo, XTalkHitInfo, UnTrackedHitInfo, StraightTrackedHitInfo.
The TruthHitInfo object is similar to the TrackedHitInfo object except
that the information is stored on a strip rather than stripend basis.
The TrackerOptions branch stores the tracker configuration parameters.
The PIDInfo stores the information about the Ckv counters and TOF hits
etc. It also stores the auto PID results from the CalDetPID package. In
the case of MC it stores the true particle momentum and PID but nothing
else.
The Truth and PID objects are not written out by default.
Analysis
The analysis classes output various histogram files, text files,
graphics and text output on the screen.
Event Display
The event display can be found in the CalDetTracker/CDEvDisplay
directory. There are scripts to run it there too.
Most of the database access in this package is done via other packages,
e.g. Calibrator, Plex, CalDetSI/PID, etc. However the beam momentum for
the actual beam-data runs is obtained directly from a database table.
The tracker is configured using the tracker.C
macro. There are options to configure the CDPreFilterModule, which can
perform cuts on the data at an early to eliminate unwanted output.
For running on MC the mcTracker.C
macro should be used.
The analysis is run using the CDAna.C
macro; analysis methods are run by uncommenting them in the file.
Chris's strip-to-strip calibration code is to be found in the CalDetTracker/MuonCalib
directory.
- Chris Smith and Ryan Nichol's PhD theses
contain details of the tracking algorithms.
- Much of the work done on the MEU calibrations can be found here.
Jeff Hartnell
Last Modified: $Date: 2004/07/13 13:47:59 $