// $Id$ // // File: DCustomAction_MCSelector4pi.h // Created: Tue Sep 16 09:42:07 EDT 2014 // Creator: mstaib (on Linux maria 2.6.32-431.20.3.el6.x86_64 x86_64) // #ifndef _DCustomAction_MCSelector4pi_ #define _DCustomAction_MCSelector4pi_ #include #include #include "JANA/JEventLoop.h" #include "JANA/JApplication.h" #include "ANALYSIS/DAnalysisAction.h" #include "ANALYSIS/DReaction.h" #include "ANALYSIS/DParticleCombo.h" #include "ANALYSIS/DAnalysisUtilities.h" #include "TH1I.h" #include "TNtuple.h" using namespace std; using namespace jana; class DCustomAction_MCSelector4pi : public DAnalysisAction { public: DCustomAction_MCSelector4pi(const DReaction* locReaction, bool locUseKinFitResultsFlag, string locActionUniqueString = "") : DAnalysisAction(locReaction, "Custom_MCSelector4pi", locUseKinFitResultsFlag, locActionUniqueString) {} void Initialize(JEventLoop* locEventLoop); private: bool Perform_Action(JEventLoop* locEventLoop, const DParticleCombo* locParticleCombo); void FillCorrectMCHistograms(JEventLoop* locEventLoop, const DParticleCombo* locParticleCombo); void FillIncorrectMCHistograms(JEventLoop* locEventLoop, const DParticleCombo* locParticleCombo); DLorentzVector Calc_TotalMesonP4(const DParticleCombo* locParticleCombo, size_t locStepIndex, set >& locSourceObjects, bool locUseKinFitDataFlag) const; // Optional: Useful utility functions. const DAnalysisUtilities* dAnalysisUtilities; //Store any histograms as member variables here TH1I *hInvMassFullCombo_Correct, *hInvMassFullCombo_Incorrect; TH1I *hMissingMassSquared_Correct, *hMissingMassSquared_Incorrect; TH1I *hInvMassPi0_Correct, *hInvMassPi0_Incorrect; TH1I *hKinFitFOM_Correct, *hKinFitFOM_Incorrect; TH1I *hNumExtraPhotons_Correct, *hNumExtraPhotons_Incorrect; TH1I *hNumExtraChargedTracks_Correct, *hNumExtraChargedTracks_Incorrect; TNtuple *hNTupleIncorrect; }; #endif // _DCustomAction_MCSelector4pi_