// $Id$ // // File: JEventProcessor_CalCal2.h // Created: Tue Feb 10 11:29:02 AM EST 2026 // Creator: staylor (on Linux ifarm2402.jlab.org 5.14.0-611.20.1.el9_7.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_CalCal2_ #define _JEventProcessor_CalCal2_ #include #include // Required for accessing services #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include "DANA/DEvent.h" class JEventProcessor_CalCal2:public JEventProcessor{ public: JEventProcessor_CalCal2(); ~JEventProcessor_CalCal2(); const char* className(void){return "JEventProcessor_CalCal2";} 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. void ApplyConstraint(Particle_t particle,double one_minus_costheta12, double E1S,double V1S,double E2S,double V2S, vector&E1vec,vector&V1vec, vector&E2vec,vector&V2vec) const; void BcalAnalysis(pair>&cluster1, pair>&cluster2); void EcalAnalysis(pair>&cluster1, pair>&cluster2); void FcalAnalysis(pair>&cluster1, pair>&cluster2); void EcalFcalAnalysis(pair>&ecluster, pair>&fcluster); void BcalFcalAnalysis(pair>&bcluster, pair>&fcluster); void BcalEcalAnalysis(pair>&bcluster, pair>&ecluster); void MakeBcalVectors(vector&hits,double &Esum,double &Vsum, vector&Evec,vector&Vvec) const; void MakeEcalVectors(vector&hits,double &Esum,double &Vsum, vector&Evec,vector&Vvec) const; void MakeFcalVectors(vector&hits,double &Esum,double &Vsum, vector&Evec,vector&Vvec) const; void UpdateGains(vector&Evec,vector&points); void UpdateGains(vector&Evec,vector&hits); void UpdateGains(vector&Evec,vector&hits); std::shared_ptr lockService; //Used to access all the services, its value should be set inside Init() double TRACK_CL_CUT,ESHOWER_MIN,EHIT_MIN,TIME_CUT; double PI0_LO_CUT,PI0_HI_CUT,ETA_LO_CUT,ETA_HI_CUT; double ECAL_VAR_E_PAR0,ECAL_VAR_E_PAR1,ECAL_VAR_E_PAR2; double FCAL_VAR_E_PAR0,FCAL_VAR_E_PAR1,FCAL_VAR_E_PAR2; double BCAL_VAR_E_PAR0,BCAL_VAR_E_PAR1,BCAL_VAR_E_PAR2; const DECALGeometry *dECALGeom=NULL; vectorecal_gains,old_ecal_gains,ecal_counts; const DFCALGeometry *dFCALGeom=NULL; vectorfcal_gains,old_fcal_gains,fcal_counts; vectorecal_times,fcal_times; vectorbcal_gains,old_bcal_gains,bcal_counts; vectorbcal_times; TH1F *hFcalGains,*hEcalGains,*hBcalGains; TH1F *hBcalPreshower; TH2F *h2GammaBCALvsE,*hEcalCounts2D,*hFcalCounts2D; TH2F *hEcalDt,*hFcalDt,*hEcalGains2D,*hFcalGains2D; TH1F *hProtonECALGammaTimeDiff,*hProtonFCALGammaTimeDiff; TH1F *hProtonBCALGammaTimeDiff,*h2GammaMassBCAL; TH1F *h2GammaMassECAL,*h2GammaMassFCAL,*h2GammaMassECALFCAL; TH1F *h2GammaMassBCALFCAL,*h2GammaMassBCALECAL; }; #endif // _JEventProcessor_CalCal2_