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

AlignmentHistograms.h

Go to the documentation of this file.
00001 
00002 //
00003 //
00004 // AlignmentHistograms
00005 //
00006 // Package: DetectorAlignment
00007 //
00008 // An alignment engine's histograming class 
00009 //
00010 // Contact: rustem@fnal.gov
00011 //
00012 // Created: Tuesday Sep 21 20:40:05 2004
00013 //
00015 
00016 #ifndef ALIGNMENTHISTOGRAMS_H
00017 #define ALIGNMENTHISTOGRAMS_H
00018 
00019 //Local package headers
00020 #include "SubsetStat.h"
00021 #include "AlignmentStripHistograms.h"
00022 #include "StatisticalFluctuations.h"
00023 
00024 //MINOS headers
00025 #include "Plex/PlexStripEndId.h"
00026 
00027 //C++ headers
00028 #include <vector>
00029 #include <map>
00030 #include <cstring>
00031 
00032 using std::vector;
00033 using std::map;
00034 
00035 class TDirectory;
00036 class TH1;
00037 class TH1D;
00038 class TH2D;
00039 class TProfile;
00040 class TTree;
00041 class TFile;
00042 class VldContext;
00043 class NtpAlignmentRecord;
00044 
00045 class AlignmentHistograms
00046 {
00047    
00048 public:
00049    
00050    AlignmentHistograms(TFile *rootfile, const VldContext &vld);
00051 
00052    virtual ~AlignmentHistograms();
00053    
00054    void Fill(const AlignmentStrip& astrip, const NtpAlignmentRecord* ntprec);
00055    
00056    void FillPlanePlex(const vector<AlignmentStrip> &track_strips,
00057                       const vector<AlignmentStrip> &cand_strips);
00058    
00059 private:
00060 
00061    void FillTrackInfo(const NtpAlignmentRecord* ntprec);
00062 
00063    void FillHits(PlexStripEndId &plexid);
00064 
00065    void SetAxisLabels(TH1 *h, const char *xlabel=0, const char *ylabel=0);
00066 
00067    //map key is plane number
00068    map<int, TH2D *> f2hPlanePlexChargeRatio;
00069    map<int, TH2D *> f2hPlanePlexHits;
00070 
00071    //number of hits per module and strip
00072    map<PlexStripEndId, unsigned int> fNStripHits;
00073    map<PlexScintMdlId, unsigned int> fNMdlHits;
00074 
00075    TFile *fRootFile;
00076    TDirectory *fPlanePlexDirectory;
00077    TDirectory *fTrackDirectory;
00078    TDirectory *fResidualSummaryDirectory;
00079 
00080    int fnplanes;
00081    int fnstrips;
00082    const int fNResidualBins;
00083    const Double_t fResidualLimit;
00084    const Double_t fResidualStripBinWidth;
00085    const Double_t fResidualMdlBinWidth;
00086    const int fNResidualBinsStrip;
00087    const Double_t fResidualLimitStrip;
00088    const int fNChargeBins;
00089    const Double_t fChargeLimit;
00090    const int fNTrackChargeBins;
00091    const Double_t fTrackChargeLimit;
00092    const int fNHitsBins;
00093    const int fTrackResidualRMSBins;
00094    const Double_t fTrackResidualRMSLimit;
00095    const int fNCosBins;
00096 
00097    TH1D *fhCharge2dTracksU;
00098    TH1D *fhCharge2dTracksV;
00099    TH1D *fhCharge2dTracksDiffNorm;
00100    TH1D *fhNStrip2dTracksU;
00101    TH1D *fhNStrip2dTracksV;
00102    TH1D *fhNStrip2dTracksDiffNorm;
00103    TH1D *fhSigmaOfTPosVview;
00104    TH1D *fhSigmaOfTPosUview;
00105    TH1D *fhSigmaOfTPosDiffNorm;
00106    TH1D *fChargesInAllHitStrip;        
00107    TH1D *fChargevsResidualHitStrips;  
00108    TH1D *fResidualAllStrips; 
00109    TH1D *fResidualVStrips; 
00110    TH1D *fResidualUStrips; 
00111    TH1D *fTrackResidualRMSVview;
00112    TH1D *fTrackResidualRMSUview;
00113    TH1D *fChargeRatioOf2dTracks;
00114    TH1D *fhTrackHoughCosU;
00115    TH1D *fhTrackHoughCosV;
00116    TH1D *fhTrackHoughCosZ;
00117    TH1D *fhPlexPlaneEntries;
00118    TH1D *fhTrackChargeOverTotalChargeRatio;
00119 
00120    TH2D *f2hNumberOfTrackHitsPerStrip;        
00121    TH2D *f2hNumberOfTrackHitsPerModule;
00122    TH2D *f2hChargevsResidualHitStrips;  
00123    TH2D *f2hResidualvsPlane;
00124    TH2D *f2hMeanChargePlaneStrip;
00125    TH2D *f2hMeanPathCorrChargePlaneStrip;   
00126 
00127    //Track TProfile histograms
00128    TProfile *fpTPosSigmavsCosZVview;
00129    TProfile *fpTPosSigmavsCosZUview;
00130    TProfile *fpTPosSigmavsTrackChargeVview;
00131    TProfile *fpTPosSigmavsTrackChargeUview;
00132    TProfile *fpTPosSigmavsTrackNStripsVview;
00133    TProfile *fpTPosSigmavsTrackNStripsUview;
00134    TProfile *fpTPosSigmavsTrackChargeRatioVview;
00135    TProfile *fpTPosSigmavsTrackChargeRatioUview;
00136    TProfile *fp3dTrackChargevsTrackChargeRatio;
00137    TProfile *fp3dTrackChargevsTrackCosz;
00138    TProfile *fp3dTrackNStripsvsCosz;
00139    TProfile *fp3dTrackChargevsNStrips;
00140    TProfile *fp3dTrackChargeRatiovsCosz;
00141 
00142    //Strip TProfile histograms
00143    TProfile *fpResidualvsPlane;
00144    TProfile *fpResidualvsCosZVview;
00145    TProfile *fpResidualvsCosZUview;
00146    TProfile *fpResidualvsTPosSigmaVview;
00147    TProfile *fpResidualvsTPosSigmaUview;
00148    TProfile *fpResidualvsStripChargeVview;
00149    TProfile *fpResidualvsStripChargeUview;
00150    TProfile *fpResidualvsTrackChargeVview;
00151    TProfile *fpResidualvsTrackChargeUview;
00152    TProfile *fpResidualvsTrackNStripsVview;
00153    TProfile *fpResidualvsTrackNStripsUview;
00154    TProfile *fpResidualvsTrackChargeRatioVview;
00155    TProfile *fpResidualvsTrackChargeRatioUview;
00156    TProfile *fpMeanStripResponsevsResidual;
00157 };
00158 
00159 #endif //ALIGNMENTHISTOGRAMS_H

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