00001 #ifndef PLOTTAP_SELFCORRELATION_H_ 00002 #define PLOTTAP_SELFCORRELATION_H_ 00003 00004 #include <iostream> 00005 #include "TH2F.h" 00006 #include "TH1F.h" 00007 #include "BaseModule.h" 00008 #include "IdSource.h" 00009 #include "definitions.h" 00010 class TGlobalData; 00011 class TSetupData; 00012 namespace modules {class options;} 00013 00027 class PlotTAP_selfCorrelation : public BaseModule { 00028 00029 public: 00034 PlotTAP_selfCorrelation(modules::options* opts); 00037 ~PlotTAP_selfCorrelation(); 00038 00039 private: 00045 virtual int ProcessEntry(TGlobalData *gData, const TSetupData *gSetup); 00051 virtual int BeforeFirstEntry(TGlobalData* gData,const TSetupData *setup); 00057 virtual int AfterLastEntry(TGlobalData* gData,const TSetupData *setup); 00058 00059 private: 00061 void BookHistograms(const TSetupData*); 00062 bool PassesCutA(const TAnalysedPulse* tap)const; 00063 bool PassesMuScCut(const TAnalysedPulse* tap, const AnalysedPulseList&)const; 00064 00065 std::string fDetNameA, fDetNameB; 00066 double fTimeLow, fTimeHigh; 00067 double fMinAmpA, fMaxAmpA; 00068 double fMuScWindow; 00069 00070 typedef std::map<std::string, std::vector<TH2F*> > HistList; 00071 HistList fHists; 00072 00073 typedef std::vector<IDs::source> SourceList; 00074 SourceList fDetASources, fDetBSources; 00075 IDs::source fMuScSource; 00076 }; 00077 00078 #endif //PLOTTAP_SELFCORRELATION_H_