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

FitTrackCamAnalysisModule.h

Go to the documentation of this file.
00001 
00002 // Analysis Module for CandFitTrackCam
00003 //
00004 // marshall@hep.phy.cam.ac.uk
00006 #ifndef FITTRACKCAMANALYSISMODULE_H
00007 #define FITTRACKCAMANALYSISMODULE_H
00008 #ifndef JOBCMODULE_H
00009 #include "JobControl/JobCModule.h"
00010 #endif
00011 #include "TString.h"
00012 #include "TFile.h"
00013 #include "TTree.h"
00014 #include "TMarker.h"
00015 #include "DataUtil/Truthifier.h"
00016 #include <vector>
00017 using std::vector;
00018 
00019 class CandRecord;
00020 class TFile;
00021 class TTree;
00022 class TCanvas;
00023 class TPad;
00024 class TH2F;
00025 
00026 
00027 class FitTrackCamAnalysisModule : public JobCModule
00028 {
00029 public:
00030   FitTrackCamAnalysisModule();
00031   ~FitTrackCamAnalysisModule();
00032 
00033 public:
00034   // Handle job status changes
00035   void BeginJob();
00036   void EndJob();
00037 
00038   void ConfigureAxes(VldContext *vldc);
00039   void SliceSection();
00040   void ShowerSection();
00041   void TrackSection();
00042   void FittedTrackSection();
00043 
00044   void TruthSection(SimSnarlRecord* simrec);
00045   void TruthSliceSection(Truthifier* mytruth);
00046   void EfficiencySection(Truthifier* mytruth);
00047 
00048   void Draw();
00049   void Pause();
00050   void CleanUp();
00051 
00052   // Analysis and Reconstruction methods
00053   JobCResult Ana(const MomNavigator* mom);
00054 
00055   // Module configuration
00056   const Registry& DefaultConfig() const;
00057   void  Config(const Registry& r);
00058 
00059 private:
00060   CandRecord* candrec;
00061 
00062   // Module member data
00063   TString fListInSlc;
00064   TString fListInShw;
00065   TString fListInTrk;
00066   TString fListInFitTrk;
00067   TString fFileName;
00068 
00069   TCanvas* fTrackCanvas;
00070   TPad* fUZPad;
00071   TPad* fVZPad;
00072   TH2F* fUZAxis;
00073   TH2F* fVZAxis;
00074 
00075   TPad* fUZMCPad;
00076   TPad* fVZMCPad;
00077   TH2F* fUZMCAxis;
00078   TH2F* fVZMCAxis;
00079 
00080   vector<vector <TMarker> > fUZSliceMarker;
00081   vector<vector <TMarker> > fVZSliceMarker;
00082 
00083   vector<vector <TMarker> > fUZShowerMarker;
00084   vector<vector <TMarker> > fVZShowerMarker;
00085 
00086   vector<vector <TMarker> > fUZTrackMarker;
00087   vector<vector <TMarker> > fVZTrackMarker;
00088 
00089   vector<vector <TMarker> > fUZFitTrackMarker;
00090   vector<vector <TMarker> > fVZFitTrackMarker;
00091 
00092   vector<vector <TMarker> > fUZSliceMarkerTruth;
00093   vector<vector <TMarker> > fVZSliceMarkerTruth;
00094 
00095   vector<vector <TMarker> > fUZTrackMarkerTruth;
00096   vector<vector <TMarker> > fVZTrackMarkerTruth;
00097 
00098   float fMaxZ;
00099   float fMinZ;
00100   float fMaxUorV;
00101   float fMinUorV;
00102 
00103   int fFitEndPlane;
00104   int fFitVtxPlane;
00105   int fTrueMaxPlane;
00106   int fTrueMinPlane;
00107 
00108   int isMC;
00109 
00110   TFile* FTCFile;
00111   TTree* FTCTree;
00112 
00113   bool CareAboutXTalk;
00114   bool debug;
00115 
00116   // Header info
00117   int Run;
00118   int Snarl;
00119   int NumFittedTracks;
00120   int Pass;
00121 
00122   // Momentum-related quantities
00123   double RecoQP;
00124   double TrueQP;
00125   double QPVtxError;
00126   double RecoMomCurve;
00127   double RecoMomRange;
00128   double TrueMom;
00129   double RecoTime;
00130 
00131   // For checking tracking efficency
00132   int FitTrackStrips;
00133   int TrueMuonStrips;
00134   int FitAndTruthAgree;
00135   int FitTrackLength;
00136   int TrueTrackLength;
00137   int TotalStripsInSnarl;
00138   int FDFullyContained;
00139   int NTrackStrip;
00140   int NTrackDigit;
00141 
00142   // Track fit quality
00143   double Chi2;
00144   int NDOF;
00145   int NIterate;
00146   int NSwimFail;
00147 
00148   // Timing info
00149   double TimeSlope;
00150   double TimeOffset;
00151   double VtxT;
00152   double EndT;
00153   double TimeFitChi2;
00154   double NTimeFitDigit;
00155   double TimeForwardFitRMS;
00156   int TimeForwardFitNDOF;
00157   double TimeBackwardFitRMS;
00158   int TimeBackwardFitNDOF;
00159 
00160   // Vtx properties
00161   double VtxU;
00162   double VtxV;
00163   double VtxZ;
00164   int VtxPlane;
00165 
00166   double VtxDirCosU;
00167   double VtxDirCosV;
00168   double VtxDirCosZ;
00169 
00170   double VtxUError;
00171   double VtxVError;
00172   double VtxdUError;
00173   double VtxdVError;
00174 
00175   // End properties
00176   double EndU;
00177   double EndV;
00178   double EndZ;
00179   int EndPlane;
00180   double EndQP;
00181   
00182   double EndDirCosU;
00183   double EndDirCosV;
00184   double EndDirCosZ;
00185 
00186   double EndUError;
00187   double EndVError;
00188   double EnddUError;
00189   double EnddVError;
00190   double EndQPError;
00191 
00192   // Range and dS
00193   double Range;
00194   double dS;
00195 
00196   // Traces
00197   double VtxTrace;
00198   double VtxTraceZ;
00199   double EndTrace;
00200   double EndTraceZ;
00201 
00202 };
00203 #endif // FITTRACKANALYSISMODULE_H
00204 

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