#ifndef _DMCThrownMatching_ #define _DMCThrownMatching_ #include #include #include "JANA/JObject.h" #include "TRACKING/DMCThrown.h" #include "PID/DChargedTrackHypothesis.h" #include "PID/DChargedTrack.h" #include "PID/DNeutralParticleHypothesis.h" #include "PID/DNeutralParticle.h" using namespace std; using namespace jana; class DMCThrownMatching : public JObject { //uses measured tracks for matching, not kinfit ones public: JOBJECT_PUBLIC(DMCThrownMatching); //SETTERS inline void Set_ChargedHypoToThrownMap(const map& locChargedHypoToThrownMap){dChargedHypoToThrownMap = locChargedHypoToThrownMap;} inline void Set_ThrownToChargedHypoMap(const map >& locThrownToChargedHypoMap){dThrownToChargedHypoMap = locThrownToChargedHypoMap;} inline void Set_ChargedToThrownMap(const map& locChargedToThrownMap){dChargedToThrownMap = locChargedToThrownMap;} inline void Set_ThrownToChargedMap(const map& locThrownToChargedMap){dThrownToChargedMap = locThrownToChargedMap;} inline void Set_NeutralHypoToThrownMap(const map& locNeutralHypoToThrownMap){dNeutralHypoToThrownMap = locNeutralHypoToThrownMap;} inline void Set_ThrownToNeutralHypoMap(const map >& locThrownToNeutralHypoMap){dThrownToNeutralHypoMap = locThrownToNeutralHypoMap;} inline void Set_NeutralToThrownMap(const map& locNeutralToThrownMap){dNeutralToThrownMap = locNeutralToThrownMap;} inline void Set_ThrownToNeutralMap(const map& locThrownToNeutralMap){dThrownToNeutralMap = locThrownToNeutralMap;} //GETTERS: INDIVIDUAL PARTICLES void Get_MatchingChargedHypotheses(const DMCThrown* locInputMCThrown, deque& locMatchingChargedHypotheses) const; const DChargedTrack* Get_MatchingChargedTrack(const DMCThrown* locInputMCThrown) const; void Get_MatchingNeutralHypotheses(const DMCThrown* locInputMCThrown, deque& locMatchingNeutralHypotheses) const; const DNeutralParticle* Get_MatchingNeutralParticle(const DMCThrown* locInputMCThrown) const; const DMCThrown* Get_MatchingMCThrown(const DChargedTrackHypothesis* locChargedTrackHypothesis) const; const DMCThrown* Get_MatchingMCThrown(const DChargedTrack* locChargedTrack) const; const DMCThrown* Get_MatchingMCThrown(const DNeutralParticleHypothesis* locNeutralParticleHypothesis) const; const DMCThrown* Get_MatchingMCThrown(const DNeutralParticle* locNeutralParticle) const; //GETTERS: WHOLE MAPS inline void Get_ChargedHypoToThrownMap(map& locChargedHypoToThrownMap) const{locChargedHypoToThrownMap = dChargedHypoToThrownMap;} inline void Get_ThrownToChargedHypoMap(map >& locThrownToChargedHypoMap) const{locThrownToChargedHypoMap = dThrownToChargedHypoMap;} inline void Get_ChargedToThrownMap(map& locChargedToThrownMap) const{locChargedToThrownMap = dChargedToThrownMap;} inline void Get_ThrownToChargedMap(map& locThrownToChargedMap) const{locThrownToChargedMap = dThrownToChargedMap;} inline void Get_NeutralHypoToThrownMap(map& locNeutralHypoToThrownMap) const{locNeutralHypoToThrownMap = dNeutralHypoToThrownMap;} inline void Get_ThrownToNeutralHypoMap(map >& locThrownToNeutralHypoMap) const{locThrownToNeutralHypoMap = dThrownToNeutralHypoMap;} inline void Get_NeutralToThrownMap(map& locNeutralToThrownMap) const{locNeutralToThrownMap = dNeutralToThrownMap;} inline void Get_ThrownToNeutralMap(map& locThrownToNeutralMap) const{locThrownToNeutralMap = dThrownToNeutralMap;} private: map dChargedHypoToThrownMap; map > dThrownToChargedHypoMap; map dChargedToThrownMap; map dThrownToChargedMap; map dNeutralHypoToThrownMap; map > dThrownToNeutralHypoMap; map dNeutralToThrownMap; map dThrownToNeutralMap; }; #endif // _DMCThrownMatching_