// $Id$ // // File: JEventProcessor_PIDCheck.h // Created: Mon Jan 28 08:50:55 EST 2019 // Creator: staylor (on Linux ifarm1402.jlab.org 3.10.0-327.el7.x86_64 x86_64) // #ifndef _JEventProcessor_PIDCheck_ #define _JEventProcessor_PIDCheck_ #include #include #include #include #include #include #include #include class JEventProcessor_PIDCheck:public jana::JEventProcessor{ public: JEventProcessor_PIDCheck(); ~JEventProcessor_PIDCheck(); const char* className(void){return "JEventProcessor_PIDCheck";} private: jerror_t init(void); ///< Called once at program start. jerror_t brun(jana::JEventLoop *eventLoop, int32_t runnumber); ///< Called everytime a new run number is detected. jerror_t evnt(jana::JEventLoop *eventLoop, uint64_t eventnumber); ///< Called every event. jerror_t erun(void); ///< Called everytime run number changes, provided brun has been called. jerror_t fini(void); ///< Called after last event of last event source has been processed. void FillPIDHistos(const DParticleID *mypid_algorithm,const DChargedTrackHypothesis *hyp) const; static bool SortParticleProbability(const paira, const pairb){ return a.first>b.first; } bool DoKinematicFit(double t0_rf, const DBeamPhoton *beamphoton, map >&chargedParticles, DKinFitUtils_GlueX *dKinFitUtils, DKinFitter *dKinFitter, Particle_t RecoilPID) const; const DParticleID* pid_algorithm; vectorFDC_N,CDC_N; TH2F *CtofT,*CtofdE,*CtofTs,*CtofdEs,*Ctofdy,*Ctofdt,*Ctofdxdy; TH2F *FMWPCdX_vs_p_Pip,*FMWPCdX_vs_p_Pim,*FMWPCxy; TH2F *FMWPCdY_vs_p_Pip,*FMWPCdY_vs_p_Pim; TH2F *FMWPCdXY_vs_layer_Pip; TH2F *FMWPCdXY_vs_layer_Pim; TH2F *ExtrapToTOF_PiPlus,*ExtrapToTOF_PiMinus; TH2F *ExtrapToFMWPC_PiPlus,*ExtrapToFMWPC_PiMinus; TH2F *ExtrapToFMWPC_PiPlus_with_FMWPC,*ExtrapToFMWPC_PiMinus_with_FMWPC; TH2F *PiMinus_MatchFCALHit_dt_vs_E; TH2F *PiPlus_MatchFCALHit_dt_vs_E; TH2F *ExtrapToTOF_NoHoriz,*ExtrapToTOF_NoVerti; TH2F *PiMinus_MatchFCALHit_E_over_p_vs_p,*PiPlus_MatchFCALHit_E_over_p_vs_p; TH2F *FCALdt_vs_E; TH2F *ElectronXdiff_vs_p,*ElectronYdiff_vs_p; TH2F *PositronXdiff_vs_p,*PositronYdiff_vs_p; TH2F *ElectronDiff_vs_theta,*PositronDiff_vs_theta; TH1F *PositrondEdxCL,*PositronBCALdtCL,*PositronBCALEOverPCL; TH1F *PositronEOverPCL,*PositronPIDCL,*PositronTOFdtCL,*PositronFCALdtCL; TH2F *DPositrondEdx,*DEOverPPlus,*DEOverPPlus_BCAL,*EOverPPlus; TH2F *EOverPPlus_BCAL,*EOverPPlus_cut,*EOverPPlus_BCAL_cut,*PositronTOF; TH2F *PositronBCALdt,*PositrondEdxFDC,*PositrondEdx,*PositronFCALdt; TH2F *DPositrondEdxFDC; TH1F *PositrondEdxFDCCL; TH1F *ElectrondEdxCL,*ElectronBCALdtCL,*ElectronTOFdtCL,*ElectronPIDCL; TH1F *ElectronBCALEOverPCL,*ElectronEOverPCL,*ElectronFCALdtCL; TH2F *DElectrondEdx,*EOverPMinus_cut,*EOverPMinus_BCAL_cut,*DEOverPMinus; TH2F *DEOverPMinus_BCAL,*EOverPMinus,*EOverPMinus_BCAL,*ElectronTOF; TH2F *ElectronBCALdt,*ElectrondEdxFDC,*ElectrondEdx,*ElectronFCALdt; TH2F *ElectronBCALdtCut,*ElectrondEdxFDCCut,*ElectrondEdxCut; TH2F *DElectrondEdxFDC; TH1F *ElectrondEdxFDCCL; TH1F *PiPlusdEdxCL,*PiPlusBCALdtCL,*PiPlusTOFdtCL,*PiPlusPIDCL; TH1F *PiPlusdEdxFDCCL,*PiPlusFCALdtCL; TH2F *PiPlusTOFdEdx,*PiPlusTOFdEdxCut; TH2F *DPiPlusdEdx,*PiPlusdEdx,*PiPlusdEdxFDC,*PiPlusdEdxCut,*PiPlusdEdxFDCCut; TH2F *PiPlusBCALdt,*PiPlusTOFdt,*PipRvsZ,*DPiPlusdEdxFDC,*PiPlusTOFdtCut; TH2F *PiPlusBCALdtCut,*PiPlusFCALdt,*PiPlusSCdt; TH2F *PiPlus_MatchFCALHit_d_vs_p,*PiPlus_MatchFCALHit_E_vs_p; TH2F *PiMinus_MatchFCALHit_d_vs_p,*PiMinus_MatchFCALHit_E_vs_p; TH2F *PiMinus_MatchFCALHit_dt_vs_p,*PiPlus_MatchFCALHit_dt_vs_p; TH2F *DPiMinusdEdxFDCVsNall,*DPiMinusdEdxVsNall; TH2F *DPiMinusdEdxFDCVsN[40],*DPiMinusdEdxFDCVsNcorr; TH1F *PiMinusdEdxCL,*PiMinusBCALdtCL,*PiMinusTOFdtCL,*PiMinusPIDCL; TH1F *PiMinusdEdxFDCCL,*PiMinusFCALdtCL; TH2F *DPiMinusdEdxVsNcorr; TH2F *DPiMinusdEdxVsN[40],*DKMinusdEdxVsN,*DProtondEdxVsN; TH2F *DPiMinusdEdxFDC,*DPiMinusdEdx,*PiMinusTOFdt,*PiMinusBCALdt,*PiMinusdEdx; TH2F *PiMinusdEdxFDC,*PiMinusdEdxCut,*PiMinusdEdxFDCCut,*PimRvsZ; TH2F *PiMinusFCALdt,*PiMinusFCALdtNoTOF,*PiMinusBCALdtVsTheta; TH2F *PiMinusTOFdEdx,*PiMinusTOFdEdxCut; TH1F *KPlusdEdxCL,*KPlusBCALdtCL,*KPlusTOFdtCL,*KPlusPIDCL,*KPlusdEdxFDCCL; TH1F *KPlusFCALdtCL; TH2F *DKPlusdEdxFDC,*KPlusdEdxCut,*KPlusdEdx,*KPlusdEdxFDCCut,*KPlusTOFdt; TH2F *KPlusTOFdtCut,*KPlusBCALdt,*KPlusBCALdtCut,*KPlusdEdxFDC,*DKPlusdEdx; TH2F *KPlusFCALdt; TH1F *KMinusdEdxCL,*KMinusdEdxFDCCL,*KMinusBCALdtCL,*KMinusTOFdtCL; TH1F *KMinusPIDCL,*KMinusFCALdtCL; TH2F *DKMinusdEdxFDC,*DKMinusdEdx,*KMinusdEdx,*KMinusdEdxFDC,*KMinusTOFdt; TH2F *KMinusBCALdt,*KMinusBCALdtCut,*KMinusTOFdtCut,*KMinusdEdxFDCCut; TH2F *KMinusdEdxCut,*KMinusFCALdt; TH1F *ProtondEdxCL,*ProtondEdxFDCCL,*ProtonBCALdtCL,*ProtonTOFdtCL; TH1F *ProtonPIDCL,*ProtondEdxSCCL,*ProtonFCALdtCL; TH2F *ProtondEdxSCvsTheta; TH2F *ProtondEdxSC,*DProtondEdxSC,*ProtondEdxFDC,*ProtondEdx,*ProtondEdxAmp; TH2F *DProtondEdx,*DProtondEdxFDC,*ProtondEdxCut,*ProtondEdxCutFDC; TH2F *ProtonTOFdEdx,*ProtonTOFdEdxCut,*DProtonTOFdEdx1,*DProtonTOFdEdx2; TH2F *ProtonTOFdEdx1,*ProtonTOFdEdx2; TH2F *ProtonTOFdt,*ProtonFCALdt,*ProtonBCALdt,*ProtonThetaVsP,*ProtonRvsZ; TH2F *ProtondEdxFDCwithTOFcut,*ProtonSCdt,*ProtonBCALdtVsTheta; TH2F *ProtonBCALdtCut,*ProtonTOFdtCut; TH2F *ProtondEdxVsTheta,*ProtondEdxVsTheta1,*ProtondEdxVsTheta2; TH2F *ProtondEdxVsTheta3,*ProtondEdxVsTheta4,*ProtondEdxVsTheta5; TH2F *ProtondEdxVsTheta6,*ProtondEdxVsTheta7,*ProtondEdxVsTheta8; TH2F *ProtondEdxVsTheta9; TH1F *AntiProtondEdxCL,*AntiProtonBCALdtCL,*AntiProtonTOFdtCL; TH1F *AntiProtonPIDCL,*AntiProtondEdxSCCL,*AntiProtondEdxFDCCL; TH1F *AntiProtonFCALdtCL; TH2F *DAntiProtondEdxFDC,*DAntiProtondEdxSC,*DAntiProtondEdx; TH2F *AntiProtondEdxSC,*AntiProtondEdxAmp,*AntiProtondEdx,*AntiProtondEdxCut; TH2F *AntiProtondEdxCutFDC,*AntiProtonTOFdt,*AntiProtonBCALdt,*AntiProtonRvsZ; TH2F *AntiProtonThetaVsP,*AntiProtondEdxFDC,*AntiProtonFCALdt; TH2F *FMWPCTime_PiMinus,*FMWPCQ_PiMinus,*FMWPCAmp_PiMinus; TH2F *FMWPCTime_PiPlus,*FMWPCQ_PiPlus,*FMWPCAmp_PiPlus; TH2F *CtofExtrapXY,*CtofExtrapXYwithHit; TH2F *CtofYCorr; TH2F *PiMinusCTOFMatchdXdY,*PiPlusCTOFMatchdXdY; TH1F *PiMinusCTOFdt,*PiPlusCTOFdt; TH2F *ITOFxy; TH2F *PimITOFdXdY,*PipITOFdXdY,*PiPlusITOFdt,*PiMinusITOFdt; TH2F *ElectronITOFdXdY,*PositronITOFdXdY,*ElectronITOFdt,*PositronITOFdt; TH1F *HKpKmMass,*HKpKmMassCut,*HMissingMass,*KinFitCLMissingDeuteron; TH1F *HKpKmMassKinFitCut,*HKpKmMassWithProton,*HKpKmPMissingMass; double PROTON_CL_CUT,ANTIPROTON_CL_CUT,PIM_CL_CUT,PIP_CL_CUT,KP_CL_CUT; double KM_CL_CUT,ELECTRON_CL_CUT,POSITRON_CL_CUT; bool CHECK_TOF,CHECK_FMWPC; }; #endif // _JEventProcessor_PIDCheck_