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

DetectorAlignment.h

Go to the documentation of this file.
00001 
00002 //
00003 // DetectorAlignment
00004 //
00005 // Package: DetectorAlignment
00006 //
00007 // An alignment engine 
00008 //
00009 // Contact: rustem@fnal.gov
00010 //
00011 // Created on: Fri Sep 24 15:26:05 2004
00012 //
00014 
00015 #ifndef DETECTORALIGNMENT_H
00016 #define DETECTORALIGNMENT_H
00017 
00018 #include "AlignmentStrip.h"
00019 
00020 #include <vector>
00021 
00022 using std::vector;
00023 
00024 class CandTrackSRHandle;
00025 class CandStripListHandle;
00026 class CandStripHandle;
00027 class NtpAlignmentRecord;
00028 class NtpAlignTrackStrip;
00029 class NtpAlignCandStrip;
00030 class PlexStripEndId;
00031 
00032 class DetectorAlignment
00033 {
00034 
00035 public:
00036    
00037    DetectorAlignment();
00038    virtual ~DetectorAlignment() {};
00039    
00040    //Alignment algorithm for filling  NtpAlign and NtpAlignPos trees
00041    bool RunAlignment(const CandTrackSRHandle* trackhandle, 
00042                      const CandStripListHandle* cstriplh,
00043                      NtpAlignmentRecord* ntpalignrec);   
00044 
00045 private:
00046    
00047     double FitTrackLessOne(vector<AlignmentStrip>::const_iterator begin, 
00048                            vector<AlignmentStrip>::const_iterator end, 
00049                            vector<AlignmentStrip>::const_iterator skip);
00050     
00051     void GetTrackStrips(const CandTrackSRHandle* tkh);
00052     
00053     void GetCandStrips(const CandStripListHandle* cslh);
00054     
00055     void MakeAlignmentTrack(vector<AlignmentStrip>::iterator begin,
00056                             vector<AlignmentStrip>::iterator end);
00057     
00058     bool StripBelongsToVTrack(const AlignmentStrip& astrip);
00059     bool StripBelongsToUTrack(const AlignmentStrip& astrip);
00060 
00061     vector<AlignmentStrip> fTrackVStrip;
00062     vector<AlignmentStrip> fTrackUStrip;
00063     
00064     vector<AlignmentStrip> fCandVStrip;
00065     vector<AlignmentStrip> fCandUStrip;
00066     
00067     vector<Double_t> fTrackTimes;
00068 
00069     double f2dTrackCharge;
00070     double fCandVCharge;
00071     double fCandUCharge;
00072     double f2dTrackResidualRMS;
00073     double fUncertaintyInTPosofStrips;
00074     double fFita;
00075     double fFitb;
00076     double fSigmaOfa;
00077     double fSigmaOfb;
00078     double fCovab;
00079     double fDeltaT;
00080 };                               // end of class DetectorAlignment
00081 
00082 #endif  // DETECTORALIGNMENT_H

Generated on Mon Feb 15 11:06:37 2010 for loon by  doxygen 1.3.9.1