00001 #ifndef PLOTTME_ACTIVESIRMUSTOPS_h 00002 #define PLOTTME_ACTIVESIRMUSTOPS_h 00003 00004 #include "TDetectorPulse.h" 00005 #include "BaseModule.h" 00006 #include "definitions.h" 00007 #include "ActiveSiRMuStopAlgo.h" 00008 class TGlobalData; 00009 class TSetupData; 00010 namespace modules {class options;} 00011 namespace IDs {class channel;} 00012 class TH1F; 00013 class TH2F; 00014 00029 class PlotTME_activeSiRmuStops : public BaseModule { 00030 00031 public: 00036 PlotTME_activeSiRmuStops(modules::options* opts); 00039 ~PlotTME_activeSiRmuStops(); 00040 00041 private: 00047 virtual int ProcessEntry(TGlobalData *gData, const TSetupData *gSetup); 00053 virtual int BeforeFirstEntry(TGlobalData* gData,const TSetupData *setup); 00059 virtual int AfterLastEntry(TGlobalData* gData,const TSetupData *setup); 00060 00061 void FillHistograms(const TMuonEvent* tme, const IDs::source& muSc_source, const IDs::source& siR2_source); 00062 00063 private: 00064 long int fStoppedMus, fStoppedMus_PP; 00065 long int fNStopsThisEvent, fNStopsThisEvent_PP; 00066 long int fEventNo; 00067 00068 IDs::channel fMuSc, fSiR2; 00069 TDetectorPulse::ParentChannel_t fChannel; 00070 00071 double fMuScMax, fMuScMin, fSiR2Max, fSiR2Min; 00072 00073 TMEAlgorithm::ActiveSiRStop* fHasStoppedMuon; 00074 00075 TH1F *fTDiff_PP, *fTDiff, *fTDiffMuons, *fTDiffMuons_PP, *fStopsPerEvent, *fStopsPerEvent_PP, *fStops, *fStops_PP; 00076 TH2F *fAmplitudes, *fAmplitudes_PP, *fTDiffVsAmpSiR2, *fTDiffVsAmpSiR2_PP, *fTDiffVsAmpSiR2_MuStop, *fTDiffVsAmpSiR2_MuStop_PP; 00077 }; 00078 00079 #endif //PLOTTME_ACTIVESIRMUSTOPS_h