5#ifndef CBM_KRES_CONVERSION_CORRECTED_PHOTONS
6#define CBM_KRES_CONVERSION_CORRECTED_PHOTONS
19#include <TClonesArray.h>
21#include "KFParticle.h"
37 void Init(
double OA,
double IM);
41 void Exec(
int fEventNumDP,
double OpeningAngleCut,
double GammaInvMassCut,
int RealPID);
55 void FindGammasTarget(
int EventNumMan,
double AngleCut,
double InvMassCut,
int RealPID,
56 vector<CbmMCTrack*> MCtracks_minus, vector<CbmMCTrack*> MCtracks_plus,
57 vector<CbmStsTrack*> StsTrack_minus, vector<CbmStsTrack*> StsTrack_plus,
58 vector<TVector3> Momenta_minus, vector<TVector3> Momenta_plus, std::vector<int> Rings_minus,
59 std::vector<int> Rings_plus, std::vector<int> stsIndex_minus, std::vector<int> stsIndex_plus,
60 vector<CbmRichRing*> richRing_minus, vector<CbmRichRing*> richRing_plus);
62 void FindGammasOutside(
int EventNumMan,
double AngleCut,
double InvMassCut,
int RealPID,
63 vector<CbmMCTrack*> MCtracks_minus_Outside, vector<CbmMCTrack*> MCtracks_plus_Outside,
64 vector<CbmStsTrack*> StsTrack_minus_Outside, vector<CbmStsTrack*> StsTrack_plus_Outside,
65 std::vector<int> Rings_minus_Outside, std::vector<int> Rings_plus_Outside,
66 std::vector<int> stsIndex_minus_Outside, std::vector<int> stsIndex_plus_Outside,
67 vector<CbmRichRing*> richRing_minus_Outside, vector<CbmRichRing*> richRing_plus_Outside);
Here the ring is fitted with Taubin algorithm from A. Ayriyan, G. Ososkov, N. Chernov.
Data class for STS tracks.
TH1D * CPh_fromTarget_Pt_reco_two_Both
vector< CbmRichRing * > VRichRing_plus_Outside
std::vector< int > VRings_plus_Outside
TH1D * CDP_EMT_Pt_onetwo_Outside
TH1D * CPh_fromXi_Pt_reco_two_Both
TH1D * CPh_fromCombinatorial_Pt_reco_onetwo_Target
vector< CbmRichRing * > VRichRing_minus_Target
std::vector< int > VRings_minus_Target
TH2D * CPdg_vs_Distance_for_dp
TH1D * CDP_OpeningAngleReco_onetwo_Both
TH1D * CPh_twoFromTarget_Pt_reco_all_Target
TH2D * CPh_pt_vs_rap_est_corr_two_Target
vector< TVector3 > VMomenta_plus_Target
std::vector< int > CDP_EMT_NofRings_minus_Outside
vector< TH1 * > fHistoList_dp_onetwo_Both
TH1D * CPh_fromCombinatorial_Pt_reco_onetwo_Both
TH1D * CPh_fromOther_Pt_reco_all_Both
vector< TH1 * > fHistoList_dp_onetwo_Target
std::vector< int > VStsIndex_plus_Target
TH1D * CPh_twoFromTarget_Pt_reco_two_Target
TH1D * CDP_EMT_Pt_onetwo_Target
TH1D * CPh_fromOther_Pt_reco_all_Target
TH1D * CDP_OpeningAngleReco_two_Target
vector< CbmStsTrack * > VStsTrack_minus_Outside
std::vector< CbmStsTrack * > CDP_LK_EMT_STS_minus_Outside
TH1D * CPh_fromXi_Pt_reco_two_Target
TH2D * CP_vs_Distance_for_dp
vector< TH1 * > fHistoList_dp_two_Target
TH1D * CPh_fromOther_Pt_reco_two_Both
TH1D * CDP_PlaneAngles_last_Target
TH1D * CPh_fromCombinatorial_Pt_reco_all_Both
CbmRichRingFitterEllipseTau * fTauFit
TH1D * CPh_twoFromTarget_Pt_reco_onetwo_Outside
TH1D * CPh_fromConversion_Pt_reco_onetwo_Target
vector< TH1 * > fHistoList_dp_Outside
std::vector< int > CDP_EMT_Event_minus_Target
TH1D * CDP_LK_EMT_Pt_two_Outside
TH1D * CPh_fromCombinatorial_Pt_reco_two_Target
std::vector< int > CDP_LK_EMT_NofRings_plus_Target
TH2D * CDP_InvMass_vs_OA_Target
TH1D * CDP_InvMassReco_onetwo_Both
int FindInRich(int richInd, int stsMcTrackId)
vector< CbmStsTrack * > VStsTrack_minus_Target
TH1D * CDP_Pdg_all_Target
std::vector< CbmStsTrack * > CDP_LK_EMT_STS_plus_Outside
TH1D * CPh_fromEtas_Pt_reco_all_Both
TH1D * CPh_fromTarget_Pt_reco_all_Both
TH1D * CDP_P_reco_all_Target
TH1D * CDP_LK_EMT_Pt_all_Target
TH1D * CDP_EMT_Pt_two_Outside
TH2D * CDP_candidates_InvMass_vs_OA_Both
TH1D * CDP_Pt_reco_two_Outside
TH1D * CDP_Pt_reco_two_Both
std::vector< std::vector< TVector3 > > CDP_EMT_Hits_plus_Target
TH2D * CPh_pt_vs_rap_est_onetwo_Both
TH1D * CPh_fromDalitz_Pt_reco_all_Outside
TH1D * CDP_candidates_InvMass_Both
TH1D * CDP_InvMassReco_all_Target
TH1D * CPh_fromTarget_Pt_reco_onetwo_Target
vector< TH1 * > fHistoList_dp_two_Outside
TH1D * CDP_InvMassReco_onetwo_Outside
TH1D * CPh_fromTarget_Pt_reco_all_Target
TH2D * CDP_candidates_InvMass_vs_OA_Outside
TH2D * CPh_pt_vs_rap_est_corr_all_Outside
TH1D * CDP_EMT_Pt_all_Target
TClonesArray * fGlobalTracks
void Exec(int fEventNumDP, double OpeningAngleCut, double GammaInvMassCut, int RealPID)
vector< CbmStsTrack * > VStsTrack_plus_Target
TH1D * CDP_LK_EMT_Pt_all_Both
std::vector< TVector3 > CDP_LK_EMT_momenta_minus_Target
TClonesArray * fRichRings
TH1D * CPh_fromPions_Pt_reco_onetwo_Outside
TH2D * CPh_pt_vs_rap_est_corr_all_Target
TH2D * CDP_candidates_InvMass_vs_OA_Target
void SaveTargetTracks(CbmMCTrack *mcTrack1, CbmStsTrack *stsTrack, TVector3 refmom, double charge, int stsInd, int richInd, int stsMcTrackId, CbmRichRing *RING)
TH2D * CPh_pt_vs_rap_est_corr_onetwo_Both
TH1D * CPh_fromXi_Pt_reco_onetwo_Outside
TH1D * CPh_fromOther_Pt_reco_onetwo_Outside
std::vector< TVector3 > SaveAllHits(CbmStsTrack *track)
vector< TH1 * > fHistoList_dp_cuts_Target
vector< TVector3 > VMomenta_minus_Target
void CDP_likesign_Mixing_Outside(double AngleCut, double InvMassCut)
std::vector< int > CDP_LK_EMT_STS_plus_index_Target
TH1D * CDP_P_reco_two_Outside
void CDP_likesign_Mixing_Target(double AngleCut, double InvMassCut)
TH1D * CDP_InvMassReco_onetwo_Target
TH1D * CDP_AnnTruePairs_AfterCuts
TH2D * CPh_pt_vs_rap_est_corr_all_Both
int CheckIfElectron(CbmRichRing *ring, double momentum)
std::vector< std::vector< double > > corr_two
TH1D * CGrandMother_PDG_Target
TH2D * CPh_pt_vs_rap_est_two_Outside
TH1D * CPh_fromTarget_Pt_reco_two_Target
vector< CbmMCTrack * > VMCtracks_minus_Outside
TH1D * CDP_OpeningAngleReco_onetwo_Outside
TH1D * CDP_LK_EMT_Pt_onetwo_Target
TH1D * CPh_fromTarget_Pt_reco_onetwo_Outside
void CDP_Mixing_Target(double AngleCut, double InvMassCut)
TH1D * CPh_fromXi_Pt_reco_all_Target
TClonesArray * fArrayMvdHit
TH1D * CDP_InvMassReco_all_Outside
TH1D * CDP_candidates_PlaneAngles_first_Outside
vector< TH1 * > fHistoList_dp_two_Both
std::vector< CbmStsTrack * > CDP_EMT_momenta_plus_Outside
vector< TH1 * > fHistoList_dp_Both
std::vector< CbmStsTrack * > CDP_LK_EMT_STS_plus_Target
std::vector< int > CDP_EMT_Event_plus_Target
TH1D * CDP_candidates_InvMass_Target
TH1D * CPh_fromConversion_Pt_reco_onetwo_Both
TH1D * CDP_P_reco_onetwo_Target
TH1D * CPh_fromDalitz_Pt_reco_two_Target
TH1D * CPh_fromEtas_Pt_reco_two_Both
std::vector< CbmStsTrack * > CDP_EMT_momenta_minus_Outside
TH1D * CDP_Pt_reco_onetwo_Both
double CalculatePlaneAngle_last(CbmStsTrack *Sts_1, CbmStsTrack *Sts_2)
TH1D * CPh_fromXi_Pt_reco_onetwo_Target
std::vector< std::vector< TVector3 > > CDP_EMT_Hits_minus_Outside
TH1D * CPh_fromTarget_Pt_reco_all_Outside
TH1D * CPh_fromCombinatorial_Pt_reco_all_Target
std::vector< CbmStsTrack * > CDP_LK_EMT_STS_minus_Target
std::vector< int > CDP_EMT_Event_minus_Outside
TH1D * CDP_LK_EMT_Pt_onetwo_Outside
TH1D * CDP_P_reco_two_Both
TH1D * CPh_fromConversion_Pt_reco_all_Outside
TClonesArray * fStsTracks
TH1D * CDP_OpeningAngleReco_two_Outside
TH1D * CPh_twoFromTarget_Pt_reco_two_Both
TH1D * CPh_fromPions_Pt_reco_two_Both
TH1D * CPh_fromTarget_Pt_reco_onetwo_Both
TH1D * CPh_fromConversion_Pt_reco_all_Target
TH1D * CPh_fromOther_Pt_reco_two_Target
void SaveOutsideTracks(CbmMCTrack *mcTrack1, CbmStsTrack *stsTrack, double charge, int stsInd, int richInd, int stsMcTrackId, CbmRichRing *RING)
std::vector< TVector3 > CDP_EMT_momenta_minus_Target
TClonesArray * fRichRingMatches
vector< TH1 * > fHistoList_dp_all_Target
TH1D * CDP_OpeningAngleReco_onetwo_Target
std::vector< int > VStsIndex_minus_Target
TH1D * CDP_candidates_OA_Both
TH1D * CPh_fromOther_Pt_reco_onetwo_Both
TH1D * CPh_fromEtas_Pt_reco_two_Outside
TH1D * CDP_LK_EMT_Pt_two_Target
CbmKresSelectAnnPhotons * fAnnPhotonsSelection
void CDP_Mixing_Outside(double AngleCut, double InvMassCut)
TH2D * CPh_pt_vs_rap_est_two_Both
TH1D * CDP_EMT_Pt_all_Outside
TH1D * CPh_fromDalitz_Pt_reco_onetwo_Both
TH1D * CGrandMother_PDG_Outside
TH1D * CDP_LK_EMT_Pt_all_Outside
TH1D * CDP_LK_EMT_Pt_onetwo_Both
std::vector< int > CDP_LK_EMT_NofRings_plus_Outside
TH2D * CDP_InvMass_vs_OA_Outside
TH1D * CDP_P_reco_onetwo_Outside
double CalculatePlaneAngle_first(CbmStsTrack *Sts_1, CbmStsTrack *Sts_2)
std::vector< int > CDP_LK_EMT_NofRings_minus_Outside
TH1D * CPh_fromPions_Pt_reco_all_Outside
TH1D * CPh_fromEtas_Pt_reco_all_Target
TH2D * CPh_pt_vs_rap_est_all_Outside
TH1D * CDP_P_reco_two_Target
std::vector< int > CDP_EMT_NofRings_plus_Target
TH1D * CPh_fromEtas_Pt_reco_two_Target
TClonesArray * fRichProjections
TH1D * CDP_P_reco_onetwo_Both
TH1D * CDP_InvMass_Target
CbmKresTrainAnnDirectPhotons * fTrainPhotons
TH2D * CDP_InvMass_vs_OA_Both
TH1D * CPh_fromOther_Pt_reco_all_Outside
TH1D * CPh_fromPions_Pt_reco_two_Outside
TH1D * CPh_fromPions_Pt_reco_onetwo_Target
TH2D * CPh_pt_vs_rap_est_corr_onetwo_Outside
TH1D * CMother_PDG_Outside
CbmKresConversionCorrectedPhotons(const CbmKresConversionCorrectedPhotons &)
TH1D * CPh_fromDalitz_Pt_reco_two_Outside
TH1D * CPh_fromConversion_Pt_reco_onetwo_Outside
TH1D * CDP_Pdg_two_Outside
TH2D * CPh_pt_vs_rap_est_two_Target
TH1D * CPh_fromPions_Pt_reco_all_Target
TH1D * CDP_OpeningAngleReco_all_Outside
TH1D * CPh_fromConversion_Pt_reco_two_Both
void FindGammasTarget(int EventNumMan, double AngleCut, double InvMassCut, int RealPID, vector< CbmMCTrack * > MCtracks_minus, vector< CbmMCTrack * > MCtracks_plus, vector< CbmStsTrack * > StsTrack_minus, vector< CbmStsTrack * > StsTrack_plus, vector< TVector3 > Momenta_minus, vector< TVector3 > Momenta_plus, std::vector< int > Rings_minus, std::vector< int > Rings_plus, std::vector< int > stsIndex_minus, std::vector< int > stsIndex_plus, vector< CbmRichRing * > richRing_minus, vector< CbmRichRing * > richRing_plus)
void Init(double OA, double IM)
vector< TH1 * > fHistoList_dp_all_Both
CbmKresConversionCorrectedPhotons()
vector< TH1 * > fHistoList_dp_all_Outside
TH1D * CPh_fromDalitz_Pt_reco_all_Target
TH1D * CDP_Pdg_onetwo_Outside
TH1D * CPh_twoFromTarget_Pt_reco_all_Both
vector< CbmMCTrack * > VMCtracks_plus_Target
TH2D * CPh_pt_vs_rap_est_onetwo_Outside
TH1D * CPh_fromTarget_Pt_reco_two_Outside
TH1D * CPh_twoFromTarget_Pt_reco_onetwo_Target
TH1D * CPh_twoFromTarget_Pt_reco_onetwo_Both
TH1D * CDP_candidates_PlaneAngles_last_Both
TH1D * CDP_Pt_reco_all_Both
TH1D * CPh_fromDalitz_Pt_reco_all_Both
vector< TH1 * > fHistoList_dp_cuts_Outside
TH1D * CPh_fromConversion_Pt_reco_all_Both
TH1D * CDP_candidates_InvMass_Outside
TH1D * CDP_Pt_reco_onetwo_Outside
TH1D * CPh_fromConversion_Pt_reco_two_Target
TH1D * CDP_Pdg_onetwo_Both
std::vector< std::vector< double > > corr_all
TH1D * CDP_Pdg_all_Outside
TH1D * CPh_fromDalitz_Pt_reco_two_Both
std::vector< TVector3 > CDP_LK_EMT_momenta_plus_Target
TH1D * CDP_InvMassReco_two_Both
TH1D * CPh_fromXi_Pt_reco_onetwo_Both
TH1D * CDP_LK_EMT_Pt_two_Both
TH1D * CPh_fromPions_Pt_reco_onetwo_Both
TH1D * CDP_InvMassReco_two_Target
vector< CbmRichRing * > VRichRing_plus_Target
virtual ~CbmKresConversionCorrectedPhotons()
TH1D * CDP_Pt_reco_all_Outside
TH1D * CPh_fromCombinatorial_Pt_reco_two_Outside
TH1D * CDP_Pt_reco_all_Target
TH1D * CPh_fromEtas_Pt_reco_onetwo_Outside
std::vector< int > CDP_EMT_NofRings_plus_Outside
TH1D * CDP_OpeningAngleReco_all_Target
TH1D * CPh_fromOther_Pt_reco_onetwo_Target
TH1D * CPh_fromXi_Pt_reco_two_Outside
TH1D * CDP_Pdg_onetwo_Target
TH1D * CPh_fromCombinatorial_Pt_reco_two_Both
std::vector< int > CDP_LK_EMT_STS_minus_index_Target
TH1D * CPh_fromCombinatorial_Pt_reco_all_Outside
TH1D * CDP_OpeningAngleReco_two_Both
std::vector< int > VStsIndex_minus_Outside
vector< CbmRichRing * > VRichRing_minus_Outside
std::vector< int > CDP_LK_EMT_STS_minus_index_Outside
TH1D * CDP_candidates_PlaneAngles_first_Target
vector< CbmStsTrack * > VStsTrack_plus_Outside
TClonesArray * fArrayStsHit
std::vector< int > CDP_EMT_NofRings_minus_Target
TH1D * CPh_twoFromTarget_Pt_reco_two_Outside
TH1D * CDP_Pdg_two_Target
TH1D * CPh_fromPions_Pt_reco_two_Target
TH1D * CPh_twoFromTarget_Pt_reco_all_Outside
TH1D * CDP_candidates_PlaneAngles_last_Target
TH1D * CDP_InvMassReco_two_Outside
std::vector< std::vector< TVector3 > > CDP_EMT_Hits_minus_Target
std::vector< std::vector< double > > corr_onetwo
TH1D * CDP_candidates_PlaneAngles_first_Both
TH1D * CPh_fromDalitz_Pt_reco_onetwo_Outside
TH1D * CDP_Pt_reco_two_Target
TH1D * CPh_fromDalitz_Pt_reco_onetwo_Target
TH1D * CPh_fromXi_Pt_reco_all_Outside
std::vector< int > CDP_LK_EMT_STS_plus_index_Outside
TH1D * CDP_PlaneAngles_first_Both
TH1D * CDP_InvMassReco_all_Both
TH1D * CPh_fromEtas_Pt_reco_onetwo_Both
TH1D * CDP_Pt_reco_onetwo_Target
std::vector< TVector3 > CDP_EMT_momenta_plus_Target
TH2D * CPh_pt_vs_rap_est_all_Both
TH1D * CDP_EMT_Pt_two_Target
std::vector< std::vector< TVector3 > > CDP_EMT_Hits_plus_Outside
TH1D * CDP_candidates_PlaneAngles_last_Outside
TH2D * CPh_pt_vs_rap_est_corr_onetwo_Target
TH1D * CPh_fromConversion_Pt_reco_two_Outside
TH1D * CPh_fromEtas_Pt_reco_onetwo_Target
TH1D * CDP_PlaneAngles_last_Both
TH1D * CDP_OpeningAngleReco_all_Both
std::vector< int > VRings_minus_Outside
std::vector< int > CDP_EMT_Event_plus_Outside
TH1D * CDP_candidates_OA_Target
TH2D * CPh_pt_vs_rap_est_all_Target
TH1D * CPh_fromOther_Pt_reco_two_Outside
TH1D * CDP_candidates_OA_Outside
TH1D * CDP_PlaneAngles_last_Outside
TH1D * CDP_PlaneAngles_first_Target
TH1D * CMother_PDG_Target
std::vector< int > CDP_LK_EMT_NofRings_minus_Target
TH1D * CDP_EMT_Pt_two_Both
double CalculatePlaneAngle_last_fromHits(std::vector< TVector3 > track_1, std::vector< TVector3 > track_2)
TH1D * CDP_InvMass_Outside
TH1D * CPh_fromEtas_Pt_reco_all_Outside
vector< CbmMCTrack * > VMCtracks_plus_Outside
TH1D * CDP_EMT_Pt_all_Both
TH1D * CDP_PlaneAngles_first_Outside
std::vector< int > VRings_plus_Target
TH1D * CDP_P_reco_all_Outside
vector< CbmMCTrack * > VMCtracks_minus_Target
CbmKresConversionCorrectedPhotons operator=(const CbmKresConversionCorrectedPhotons &)
TH1D * CDP_P_reco_all_Both
std::vector< int > VStsIndex_plus_Outside
std::vector< KFParticle > CDP_EMT_KFTrack_plus_Outside
TH2D * CPh_pt_vs_rap_est_onetwo_Target
TH1D * CPh_fromCombinatorial_Pt_reco_onetwo_Outside
vector< TH1 * > fHistoList_dp_onetwo_Outside
std::vector< KFParticle > CDP_EMT_KFTrack_minus_Outside
TH1D * CPh_fromXi_Pt_reco_all_Both
TH1D * CPh_fromPions_Pt_reco_all_Both
vector< TH1 * > fHistoList_dp_cuts_Both
void FindGammasOutside(int EventNumMan, double AngleCut, double InvMassCut, int RealPID, vector< CbmMCTrack * > MCtracks_minus_Outside, vector< CbmMCTrack * > MCtracks_plus_Outside, vector< CbmStsTrack * > StsTrack_minus_Outside, vector< CbmStsTrack * > StsTrack_plus_Outside, std::vector< int > Rings_minus_Outside, std::vector< int > Rings_plus_Outside, std::vector< int > stsIndex_minus_Outside, std::vector< int > stsIndex_plus_Outside, vector< CbmRichRing * > richRing_minus_Outside, vector< CbmRichRing * > richRing_plus_Outside)
CbmKresGammaCorrection * fGammaCorrection
TH1D * CDP_AnnFalsePairs_AfterCuts
TH2D * CPh_pt_vs_rap_est_corr_two_Outside
vector< TH1 * > fHistoList_dp_Target
TH1D * CDP_EMT_Pt_onetwo_Both
TClonesArray * fStsTrackMatches
TH2D * CPh_pt_vs_rap_est_corr_two_Both
Here the ring is fitted with Taubin algorithm from A. Ayriyan, G. Ososkov, N. Chernov.