#ifndef TDsECalProtonControlSample_h #define TDsECalProtonControlSample_h #include "TGraph.h" #include "TH1F.h" #include #include #include // Class to select protons entering the DsECal, based on TPC3 information class IDsECalProtonControlSample : public IControlSampleBase { public: IDsECalProtonControlSample(); ~IDsECalProtonControlSample(); private: bool IsEventSelectedInternal(COMET::ICOMETEvent& event) ; /// Get the momentum of the first node in the object double GetFrontMomentum(COMET::IHandle object); /// Get the reconstructed charge of the object double GetCharge(COMET::IHandle object); /// Whether the object passes the TPC pull cuts bool PassesPullCuts(COMET::IHandle object); /// Whether the last node of the object lies in the region /// defined as being near the front face of the DsECal bool AtDsECalFrontFace(COMET::IHandle object); // Track-level cuts /// Reject tracks with fewer than this number of hits int fMinTpc3Hits; /// Reject tracks with proton pull outside this region double fMinProtonPullAccept; double fMaxProtonPullAccept; /// Reject tracks with electron pull in this region double fMinElePullReject; double fMaxElePullReject; /// Reject tracks with muon pull in this region double fMinMuonPullReject; double fMaxMuonPullReject; /// Reject tracks with pion pull in this region double fMinPionPullReject; double fMaxPionPullReject; /// Reject tracks with momentum less than this double fMinMomentum; /// Reject tracks with momentum greater than this double fMaxMomentum; // Event-level cuts }; #endif