5#ifndef CBM_KRES_CONVERSION_KF
6#define CBM_KRES_CONVERSION_KF
14#include <TClonesArray.h>
18#include "KFParticle.h"
19#include "KFTopoPerformance.h"
40 void Exec(
int fEventNumKF,
double OpeningAngleCut,
double GammaInvMassCut,
int RealPID);
42 void FindGammas(vector<KFParticle> allgammas, vector<KFParticle> particlevector,
int Event,
double AngleCut,
43 double InvMassCut,
int RealPID);
47 void FindPi0(TString mod, vector<vector<TVector3>> Gammas, vector<vector<int>> StsIndex,
48 vector<vector<CbmMCTrack*>> GammasMC, vector<Double_t> GammasZ, TH1D* Pi0InvMassRecoKF,
49 TH2D* Pi0_pt_vs_rap, TH2D* Pi0_pt_vs_rap_est, TH1D* Pi0InvMassRecoKF_target, TH1D* Pi0InvMassRecoKF_mvd,
50 TH1D* Pi0InvMassRecoKF_sts, TH1D* Pi0InvMassRecoKF_outside, TH2D* MultiplicityGamma,
51 TH2D* MultiplicityChargedParticles, vector<TH1*> BGCases);
60 const KFParticleTopoReconstructor*
fKFtopo;
TH1D * sameGRIDcase8_onetwo
std::vector< Double_t > EMT_Z
TH1D * EMTMulti_InvMass_One_m6
TH1D * fPi0InvMassRecoKF_All_target
TH1D * EMTMulti_InvMass_All_m5
TH1D * sameMIDcase8NonEPdg_one
TH1D * sameMIDcase8NonEComeFromTargetP_zero
TH1D * EMTMulti_InvMass_Two_m3
vector< TH1 * > fHistoList_All_outside
vector< TH1 * > fHistoList_Two_outside
TH1D * fEMT_InvMass_One_target
TH1D * fGammaOpeningAngleReco_One
TH2D * MultiplicityChargedParticles_Two
TH1D * fEMT_InvMass_Zero_outside
TH1D * Case8NonElFrom_eta_onetwo
TH1D * fGammaInvMassReco_Zero
std::vector< int > EMT_Event_multi_two
vector< TH1 * > fHistoList_One_mvd
TH1D * fPi0InvMassRecoKF_All
TH1D * Case8NonElFrom_kaon_two
TH1D * sameMIDcase8NonEMotherPdg_zero
std::vector< int > EMT_Event_multi_one
std::vector< std::vector< TVector3 > > GammasZero
TH1D * Case8NonElFrom_kaon_all
vector< TH1 * > fHistoList_multiplicity_All
TH1D * sameMIDcase8NonEComeFromTargetP_two
TH1D * sameMIDcase8NonEComeFromTargetPt_one
std::vector< std::vector< TVector3 > > EMT_pair_momenta_multi_zero
TH1D * sameMIDcase8NonEMotherPdg_onetwo
TH1D * fGammaOpeningAngleReco_Zero_outside
TH1D * CheckForCuts_OA_Reco_from_one_pi0
TH1D * PdgCase8NonE_NOT_FromTarget_zero
TH1D * Case8NonElFrom_eta_one
TH1D * Case8NonElFrom_pn_one
TH1D * sameMIDcase8NonEComeFromTargetPt_zero
TH1D * fPi0InvMassRecoKF_One_outside
TH2D * fPi0_pt_vs_rap_One
TH1D * sameMIDcase8NonEMotherPdg_all
TH1D * EMTMulti_InvMass_Two_m1
TH1D * PdgCase8NonEComeFromTarget_onetwo
std::vector< std::vector< TVector3 > > EMT_pair_momenta_multi_all
std::vector< int > EMT_Event
TClonesArray * fRichProjections
std::vector< std::vector< int > > GammasOneTwoStsIndex
TH2D * fPi0_pt_vs_rap_est_OneTwo
TH1D * EMTMulti_InvMass_OneTwo_m6
TH2D * CheckForCuts_z_vs_OA_Reco_from_one_pi0
TH1D * CheckForCuts_OA_Reco_from_one_pi0_4cm_21cm
TH1D * sameMIDcase8NonEPdgFromTarget_all
TH1D * fGammaInvMassReco_All_mvd
std::vector< std::vector< int > > GammasAllStsIndex
std::vector< std::vector< TVector3 > > GammasAll
TH1D * fPi0InvMassRecoKF_Zero_mvd
vector< TH1 * > fHistoList_multiplicity_One
std::vector< std::vector< TVector3 > > GammasOne
TH2D * MultiplicityGamma_Two
TH1D * EMTMulti_InvMass_OneTwo_m2
TH1D * PdgCase8NonEComeFromTarget_all
std::vector< Double_t > GammasZeroZ
vector< TH1 * > fHistoList_OneTwo_mvd
TH1D * sameMIDcase8NonEPdg_all
TH1D * fGammaOpeningAngleReco_Zero_target
TH1D * EMTMulti_InvMass_One_m2
TClonesArray * fRichRingMatches
void SetKF(CbmKFParticleFinder *kfparticle, CbmKFParticleFinderQa *kfparticleQA)
TH1D * sameMIDcase8NonEPdgFromTarget_one
std::vector< std::vector< CbmMCTrack * > > GammasTwoMC
TClonesArray * fGlobalTracks
TH1D * fPi0InvMassRecoKF_Two_target
TH1D * fPi0InvMassRecoKF_OneTwo
TH1D * EMTMulti_InvMass_Zero_m4
vector< TH1 * > fHistoList_One_sts
TH1D * fGammaOpeningAngleReco_One_target
vector< TH1 * > fHistoList_Two_sts
TH1D * fGammaInvMassReco_One_sts
TH1D * sameMIDcase8_mothedPDG_onetwo
vector< TH1 * > fHistoList_multiplicity_Two
TH1D * fPi0InvMassRecoKF_OneTwo_sts
TH1D * fGammaOpeningAngleReco_All_target
vector< TH1 * > fHistoList_Zero_mvd
vector< TH1 * > fHistoList_All
TH1D * CheckForCuts_InvMass_Reco_from_one_pi0
TH1D * sameMIDcase8NonEComeFromTargetIM_zero
TH1D * fPi0InvMassRecoKF_OneTwo_mvd
TH1D * PdgCase8NonE_NOT_FromTarget_all
TH1D * sameMIDcase8NonEPdgFromTarget_two
vector< TH1 * > fHistoList_bg_two
TH1D * EMTMulti_InvMass_OneTwo_m7
TH1D * CheckForCuts_InvMass_Reco
std::vector< int > EMT_multi_onetwo
TH1D * PdgCase8NonE_NOT_FromTarget_one
TH1D * fGammaInvMassReco_Two_target
TH1D * fGammaOpeningAngleReco_Zero_sts
vector< TH1 * > fHistoList_OneTwo_outside
TH1D * EMTMulti_InvMass_Two_m2
TH1D * fGammaOpeningAngleReco_One_sts
std::vector< Double_t > GammasAllZ
TH1D * fGammaOpeningAngleReco_OneTwo_sts
vector< TH1 * > fHistoList_Zero
TH1D * Case8ElFromDalitz_zero
TH1D * EMTMulti_InvMass_Two_m4
TH2D * MultiplicityChargedParticles_All
TH1D * sameMIDcase8NonEMotherIM_onetwo
TH1D * EMTMulti_InvMass_One_m5
TH1D * EMTMulti_InvMass_All_m3
TH2D * fPi0_pt_vs_rap_Zero
TH1D * fGammaOpeningAngleReco_OneTwo
vector< TH1 * > fHistoList_OneTwo
TH1D * PdgCase8NonEComeFromTarget_zero
std::vector< int > EMT_Event_multi_onetwo
TH1D * EMTMulti_InvMass_All_m6
TH1D * fGammaInvMassReco_Zero_sts
TH1D * sameMIDcase8NonEMotherIM_zero
TH1D * sameMIDcase8NonEMotherPdg_one
TH1D * sameMIDcase8NonEMotherIM_all
std::vector< int > EMT_multi_one
std::vector< int > fStsInd
TH1D * fGammaInvMassReco_One_target
std::vector< std::vector< TVector3 > > GammasTwo
TH1D * EMTMulti_InvMass_OneTwo_m1
TH1D * PdgCase8motherNonE_onetwo
TH1D * Case8NonElFrom_pn_onetwo
TH1D * fGammaInvMassReco_One_outside
TH1D * sameMIDcase8_mothedPDG_zero
TH2D * CheckForCuts_z_vs_InvMass_MC_from_one_pi0
vector< TH1 * > fHistoList_bg_one
vector< TH1 * > fHistoList_Two_target
TH1D * EMTMulti_InvMass_One_m3
TH1D * fPi0InvMassRecoKF_All_sts
TH1D * sameMIDcase8NonEPdg_zero
std::vector< std::vector< int > > GammasOneStsIndex
vector< TH1 * > fHistoList_OneTwo_sts
TH1D * sameMIDcase8NonEMotherIM_two
TH1D * PdgCase8mothers_all
int CheckIfElectron(CbmRichRing *ring, double momentum)
TH1D * fEMT_InvMass_OneTwo_target
vector< TH1 * > fHistoList_Zero_outside
std::vector< int > EMT_multi_two
TH1D * fGammaInvMassReco_One
TH2D * MultiplicityChargedParticles_Zero
std::vector< int > EMT_NofRings
TH1D * fPi0InvMassRecoKF_Zero_outside
std::vector< std::vector< TVector3 > > EMT_pair_momenta_multi_one
TH1D * fGammaInvMassReco_OneTwo_outside
TH1D * Case8NonElFrom_eta_zero
vector< TH1 * > fHistoList_All_target
TH1D * fEMT_InvMass_Two_target
TH1D * fGammaInvMassReco_One_mvd
TH1D * EMTMulti_InvMass_Two_m5
TH1D * PdgCase8motherNonE_one
TH1D * sameMIDcase8_onetwo
TH1D * CheckForCuts_InvMass_Reco_from_one_pi0_less4cm
vector< TH1 * > fHistoList_Zero_sts
TH1D * fGammaOpeningAngleReco_Two_outside
TH1D * sameMIDcase8NonEPdg_onetwo
CbmKFParticleFinderQa * fKFparticleFinderQA
TH1D * fGammaInvMassReco_Zero_outside
TH2D * fPi0_pt_vs_rap_est_All
TH1D * EMTMulti_InvMass_Zero_m6
std::vector< CbmMCTrack * > fmcvector
TH1D * Case8NonElFrom_kaon_zero
vector< TH1 * > fHistoList_multiplicity_Zero
TH1D * fGammaOpeningAngleReco_All
std::vector< std::vector< CbmMCTrack * > > GammasOneMC
TH1D * Case8ElFromDalitz_onetwo
TH1D * fEMT_InvMass_OneTwo
TH1D * fGammaOpeningAngleReco_One_outside
TH2D * MultiplicityGamma_OneTwo
std::vector< int > EMT_multi_all
vector< TH1 * > fHistoList_bg_onetwo
TH1D * fGammaInvMassReco_OneTwo_mvd
TH1D * sameMIDcase8_mothedPDG_two
TH1D * fGammaInvMassReco_Two_mvd
TH1D * fGammaOpeningAngleReco_Zero
vector< TH1 * > fHistoList_bg_all
TH1D * sameMIDcase8_mothedPDG_all
std::vector< std::vector< TVector3 > > EMT_pair_momenta
TH2D * MultiplicityChargedParticles_OneTwo
TH2D * fPi0_pt_vs_rap_Two
TH2D * fPi0_pt_vs_rap_est_Two
TH1D * fGammaInvMassReco_All_sts
TH1D * PdgCase8motherNonE_all
TH2D * fPi0_pt_vs_rap_est_One
vector< TH1 * > fHistoList_One_outside
TH1D * Case8NonElFrom_kaon_one
TH1D * PdgCase8mothers_onetwo
TH1D * sameMIDcase8NonEComeFromTargetIM_all
TH1D * PdgCase8NonE_NOT_FromTarget_onetwo
TH1D * fPi0InvMassRecoKF_Zero
TH1D * fGammaOpeningAngleReco_Two_target
TH1D * Case8ElFromDalitz_two
TH1D * fGammaOpeningAngleReco_Two_sts
TH1D * CheckForCuts_InvMass_Reco_from_one_pi0_more21cm
TH1D * EMTMulti_InvMass_Two_m6
TH1D * fPi0InvMassRecoKF_Two_mvd
TH1D * fGammaOpeningAngleReco_All_sts
TH1D * CheckForCuts_OA_MC
CbmRichRingFitterEllipseTau * fTauFit
TH1D * fGammaInvMassReco_Two_sts
TH1D * EMTMulti_InvMass_Zero_m7
CbmKresConversionBG * fAnaBG
std::vector< int > EMT_multi_zero
TH2D * fPi0_pt_vs_rap_OneTwo
std::vector< std::vector< int > > GammasZeroStsIndex
TH1D * PdgCase8mothers_one
std::vector< std::vector< CbmMCTrack * > > GammasAllMC
TH1D * fGammaOpeningAngleReco_OneTwo_target
std::vector< int > EMT_Event_multi_all
TH1D * fPi0InvMassRecoKF_Two_sts
TH1D * fGammaInvMassReco_All_target
TH1D * CheckForCuts_InvMass_MC
TH1D * PdgCase8NonEComeFromTarget_one
TH1D * fEMT_InvMass_Zero_target
TH1D * EMTMulti_InvMass_OneTwo_m5
TH1D * PdgCase8motherNonE_zero
TH2D * MultiplicityGamma_Zero
TH2D * fPi0_pt_vs_rap_All
TH1D * fGammaOpeningAngleReco_Two_mvd
TH1D * CheckForCuts_OA_Reco
TH1D * fPi0InvMassRecoKF_One
vector< TH1 * > fHistoList_All_mvd
TH1D * EMTMulti_InvMass_Zero_m5
TH1D * fPi0InvMassRecoKF_All_outside
TH1D * EMTMulti_InvMass_Two_m7
TClonesArray * fStsTrackMatches
std::vector< std::vector< int > > GammasTwoStsIndex
TH1D * EMTMulti_InvMass_All_m2
TH1D * PdgCase8NonE_NOT_FromTarget_two
TH1D * EMTMulti_InvMass_OneTwo_m4
void FindGammas(vector< KFParticle > allgammas, vector< KFParticle > particlevector, int Event, double AngleCut, double InvMassCut, int RealPID)
TH1D * Case8ElFromDalitz_one
std::vector< std::vector< TVector3 > > GammasOneTwo
TH1D * fGammaOpeningAngleReco_OneTwo_outside
std::vector< Double_t > GammasOneTwoZ
std::vector< std::vector< TVector3 > > EMT_pair_momenta_multi_two
TH1D * EMTMulti_InvMass_Zero_m1
TH1D * fGammaInvMassReco_OneTwo_target
TClonesArray * fRichRings
TH1D * EMTMulti_InvMass_All_m4
TH1D * sameMIDcase8NonEPdg_two
void FindPi0(TString mod, vector< vector< TVector3 > > Gammas, vector< vector< int > > StsIndex, vector< vector< CbmMCTrack * > > GammasMC, vector< Double_t > GammasZ, TH1D *Pi0InvMassRecoKF, TH2D *Pi0_pt_vs_rap, TH2D *Pi0_pt_vs_rap_est, TH1D *Pi0InvMassRecoKF_target, TH1D *Pi0InvMassRecoKF_mvd, TH1D *Pi0InvMassRecoKF_sts, TH1D *Pi0InvMassRecoKF_outside, TH2D *MultiplicityGamma, TH2D *MultiplicityChargedParticles, vector< TH1 * > BGCases)
TH1D * fGammaInvMassReco_Two_outside
TH1D * fPi0InvMassRecoKF_One_sts
TH2D * MultiplicityChargedParticles_One
TH1D * sameGRIDcase8_zero
TH1D * PdgCase8motherNonE_two
TH1D * EMTMulti_InvMass_One_m1
TH1D * fGammaInvMassReco_Zero_mvd
TH2D * CheckForCuts_z_vs_OA_MC_from_one_pi0
TH1D * Case8NonElFrom_pn_all
TH1D * sameMIDcase8NonEComeFromTargetPt_all
TH1D * fGammaOpeningAngleReco_All_outside
TH1D * EMTMulti_InvMass_One_m4
TH1D * fGammaOpeningAngleReco_Zero_mvd
TH1D * Case8ElFromDalitz_all
TH1D * sameMIDcase8NonEComeFromTargetIM_two
vector< TH1 * > fHistoList_bg_zero
TH1D * EMTMulti_InvMass_One_m7
vector< TH1 * > fHistoList_CheckForCuts
TH1D * PdgCase8mothers_two
TH1D * sameMIDcase8NonEComeFromTargetPt_two
CbmKFParticleFinder * fKFparticle
TClonesArray * fStsTracks
TH1D * fPi0InvMassRecoKF_OneTwo_target
TH1D * fPi0InvMassRecoKF_All_mvd
TH1D * fGammaInvMassReco_Zero_target
TH1D * fEMT_InvMass_OneTwo_outside
TH1D * fPi0InvMassRecoKF_Zero_sts
vector< TH1 * > fHistoList_multiplicity
TH2D * CheckForCuts_z_vs_InvMass_Reco_from_one_pi0
TH1D * sameMIDcase8NonEComeFromTargetIM_onetwo
vector< TH1 * > fHistoList_Zero_target
TH1D * fPi0InvMassRecoKF_One_mvd
TH1D * fEMT_InvMass_Two_outside
TH1D * EMTMulti_InvMass_Zero_m3
vector< TH1 * > fHistoList_Two_mvd
TH1D * EMTMulti_InvMass_All_m7
TH1D * sameMIDcase8NonEComeFromTargetP_one
TH1D * fGammaInvMassReco_All_outside
TH1D * CheckForCuts_InvMass_MC_from_one_pi0
std::vector< std::vector< CbmMCTrack * > > GammasZeroMC
TH1D * fEMT_InvMass_All_target
vector< TH1 * > fHistoList_All_sts
TH1D * fGammaInvMassReco_Two
const KFParticleTopoReconstructor * fKFtopo
TH1D * fEMT_InvMass_One_outside
std::vector< std::vector< TVector3 > > EMT_pair_momenta_multi_onetwo
TH1D * fGammaInvMassReco_OneTwo
TH1D * Case8NonElFrom_kaon_onetwo
TH1D * sameMIDcase8NonEComeFromTargetPt_onetwo
TH1D * sameMIDcase8NonEComeFromTargetP_onetwo
TH1D * Case8NonElFrom_eta_two
std::vector< std::vector< CbmMCTrack * > > GammasOneTwoMC
std::vector< Double_t > GammasTwoZ
TH1D * sameMIDcase8_mothedPDG_one
TH1D * CheckForCuts_OA_Reco_from_one_pi0_less4cm
TH1D * EMTMulti_InvMass_Zero_m2
TH1D * CheckForCuts_InvMass_Reco_from_one_pi0_4cm_21cm
TH1D * CheckForCuts_OA_Reco_from_one_pi0_more21cm
std::vector< TVector3 > frefmomentum
virtual ~CbmKresConversionKF()
TH1D * sameMIDcase8NonEComeFromTargetIM_one
TH1D * EMTMulti_InvMass_All_m1
CbmKresConversionKF(const CbmKresConversionKF &)
vector< TH1 * > fHistoList_Two
void Exec(int fEventNumKF, double OpeningAngleCut, double GammaInvMassCut, int RealPID)
TH2D * MultiplicityGamma_One
vector< TH1 * > fHistoList_multiplicity_OneTwo
TH1D * fPi0InvMassRecoKF_Two
TH1D * fPi0InvMassRecoKF_Zero_target
std::vector< int > EMT_Event_multi_zero
TH1D * sameMIDcase8NonEComeFromTargetP_all
vector< TH1 * > fHistoList_One_target
TH1D * EMTMulti_InvMass_OneTwo_m3
TH1D * fPi0InvMassRecoKF_Two_outside
TH1D * fGammaOpeningAngleReco_Two
std::vector< Double_t > GammasOneZ
TH1D * sameMIDcase8NonEPdgFromTarget_onetwo
TH1D * fPi0InvMassRecoKF_OneTwo_outside
TH1D * fGammaInvMassReco_All
TH1D * CheckForCuts_OA_MC_from_one_pi0
TH1D * Case8NonElFrom_pn_zero
TH1D * fGammaInvMassReco_OneTwo_sts
TH1D * sameMIDcase8NonEPdgFromTarget_zero
vector< TH1 * > fHistoList_OneTwo_target
TH1D * sameMIDcase8NonEMotherIM_one
CbmKresConversionKF operator=(const CbmKresConversionKF &)
TH1D * fEMT_InvMass_All_outside
TH1D * fGammaOpeningAngleReco_All_mvd
TH1D * PdgCase8mothers_zero
TH1D * Case8NonElFrom_pn_two
TH1D * sameMIDcase8NonEMotherPdg_two
TH2D * fPi0_pt_vs_rap_est_Zero
TH1D * fGammaOpeningAngleReco_OneTwo_mvd
TH1D * fGammaOpeningAngleReco_One_mvd
vector< TH1 * > fHistoList_One
TH2D * MultiplicityGamma_All
TH1D * fPi0InvMassRecoKF_One_target
TH1D * PdgCase8NonEComeFromTarget_two
TH1D * Case8NonElFrom_eta_all
Here the ring is fitted with Taubin algorithm from A. Ayriyan, G. Ososkov, N. Chernov.