// $Id$ // // File: JEventProcessor_Primakoff.h // Created: Fri Sep 5 04:31:44 PM EDT 2025 // Creator: staylor (on Linux ifarm2401.jlab.org 5.14.0-570.33.2.el9_6.x86_64 x86_64) // /// For more information on the syntax changes between JANA1 and JANA2, visit: https://jeffersonlab.github.io/JANA2/#/jana1to2/jana1-to-jana2 #ifndef _JEventProcessor_Primakoff_ #define _JEventProcessor_Primakoff_ #include #include // Required for accessing services #include #include #include #include #include #include #include #include #include using namespace std; class JEventProcessor_Primakoff:public JEventProcessor{ public: JEventProcessor_Primakoff(); ~JEventProcessor_Primakoff(); const char* className(void){return "JEventProcessor_Primakoff";} private: void Init() override; ///< Called once at program start. void BeginRun(const std::shared_ptr& event) override; ///< Called everytime a new run number is detected. void Process(const std::shared_ptr& event) override; ///< Called every event. void EndRun() override; ///< Called everytime run number changes, provided BeginRun has been called. void Finish() override; ///< Called after last event of last event source has been processed. std::shared_ptr lockService; //Used to access all the services, its value should be set inside Init() void FillGammaParticleVector(vector&neutrals, vector&gammaHyps, double &t0_rf ) const; bool DoKinematicFit(double t0_rf,const DVector3 &vertex, const DBeamPhoton *beamphoton, vector&gammaParticles, DKinFitUtils_GlueX *dKinFitUtils, DKinFitter *dKinFitter) const; void GetKF4vectors(DKinFitter *dKinFitter,DLorentzVector &beam_kf, DLorentzVector &missing_kf, map>&final_kf) const; void MissingProtonAnalysis(const DLorentzVector &beam_kf, const DLorentzVector &missing_kf, map>&final_kf, double weight) const; TH1F *BeamPhotonTimeDiff,*KinFitCL; TH2F *TwoGammaMass_vs_theta,*TwoGammaMass_vs_t; double FCAL_POS_CUT,BCAL_R_CUT; double BCAL_THRESHOLD,FCAL_THRESHOLD,BCAL_Z_CUT,FCAL_RADIAL_CUT; DVector3 mFCALCenter; }; #endif // _JEventProcessor_Primakoff_