Main Page | Modules | Namespace List | Class Hierarchy | Alphabetical List | Class List | Directories | File List | Namespace Members | Class Members | File Members | Related Pages

StraightTrackAlignment.h

Go to the documentation of this file.
00001 
00002 //
00003 // $Id: StraightTrackAlignment.h,v 1.12 2002/09/10 17:11:18 rhatcher Exp $
00004 //
00005 // StraightTrackAlignment
00006 //
00007 // Package: Alignment
00008 //
00009 // An alignment engine which uses straight tracks to align on a per 
00010 // module basis
00011 //
00012 // Contact: bv@bnl.gov
00013 //
00014 // Created on: Mon Jun 24 12:40:05 2002
00015 //
00017 
00018 #ifndef STRAIGHTTRACKALIGNMENT_H
00019 #define STRAIGHTTRACKALIGNMENT_H
00020 
00021 #include "UgliGeometry/UgliGeomHandle.h"
00022 
00023 #include <list>
00024 #include <map>
00025 
00026 class CandTrackHandle;
00027 class ScintModule;
00028 class AlignHists;
00029 
00030 class StraightTrackAlignment
00031 {
00032 
00033 public:
00034 
00035     typedef std::list<UgliStripHandle> StraightTrack;
00036 
00037     StraightTrackAlignment();
00038     ~StraightTrackAlignment();
00039 
00040 
00041     void Init (UgliGeomHandle& geom_handle, const char* histname=0);
00042     void AddTrack (const CandTrackHandle& track_handle);
00043 
00044     // accum stats for the given track, return average residual
00045     double ApplyTrack(StraightTrack st, PlaneView::PlaneView_t view); 
00046 
00047     // Call ApplyTrack on all tracks for the particular view (or both
00048     // views for no args), return average of average residuals
00049     double ApplyAllTracks();
00050     double ApplyAllTracks(PlaneView::PlaneView_t the_view);
00051     void ApplyAllOffsets(void);
00052 
00053 private:
00054 
00055     // copy constructor, assignment:
00056     StraightTrackAlignment(const StraightTrackAlignment& rhs); // copy constructor
00057     StraightTrackAlignment& operator=(const StraightTrackAlignment& rhs); // assignment
00058 
00059 
00060     ScintModule* LookupScintModule(UgliStripHandle ush);
00061     double FitTrackLessOne(StraightTrack::iterator lit,
00062                            StraightTrack::iterator end,
00063                            StraightTrack::iterator skip);
00064 
00065     std::list<StraightTrack> fTracks[2]; // tracks in alignment data set
00066 
00067     // Lookup from encoded Plane/Module number to the ScintModule
00068     typedef std::map<PlexScintMdlId, ScintModule*> ScintModuleLookup;
00069     ScintModuleLookup fSMLookup;
00070     AlignHists* fHister;
00071     int fMinPlanes;             // min number of hit planes to use a track
00072     int fNplanes;
00073     int fNmdlperplane;
00074     const char* fHistName;
00075 };                              // end of class StraightTrackAlignment
00076 
00077 #endif  // STRAIGHTTRACKALIGNMENT_H

Generated on Mon Feb 15 11:07:40 2010 for loon by  doxygen 1.3.9.1