00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00015
00016 #ifndef ALIGNMENTHISTOGRAMS_H
00017 #define ALIGNMENTHISTOGRAMS_H
00018
00019
00020 #include "SubsetStat.h"
00021 #include "AlignmentStripHistograms.h"
00022 #include "StatisticalFluctuations.h"
00023
00024
00025 #include "Plex/PlexStripEndId.h"
00026
00027
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
00068 map<int, TH2D *> f2hPlanePlexChargeRatio;
00069 map<int, TH2D *> f2hPlanePlexHits;
00070
00071
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
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
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