#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" #include "PID/DNeutralShower.h" #include "TOF/DTOFPoint.h" #include "TOF/DTOFTruth.h" #include "BCAL/DBCALShower.h" #include "BCAL/DBCALTruthShower.h" #include "FCAL/DFCALShower.h" #include "FCAL/DFCALTruthShower.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;} inline void Set_TOFPointToTruthMap(const map& locTOFPointToTruthMap){dTOFPointToTruthMap = locTOFPointToTruthMap;} inline void Set_TOFTruthToPointMap(const map& locTOFTruthToPointMap){dTOFTruthToPointMap = locTOFTruthToPointMap;} inline void Set_BCALShowerToTruthMap(map& locBCALShowerToTruthMap){dBCALShowerToTruthMap = locBCALShowerToTruthMap;} inline void Set_BCALTruthToShowerMap(map& locBCALTruthToShowerMap){dBCALTruthToShowerMap = locBCALTruthToShowerMap;} inline void Set_FCALShowerToTruthMap(map& locFCALShowerToTruthMap){dFCALShowerToTruthMap = locFCALShowerToTruthMap;} inline void Set_FCALTruthToShowerMap(map& locFCALTruthToShowerMap){dFCALTruthToShowerMap = locFCALTruthToShowerMap;} //GETTERS: INDIVIDUAL PARTICLES //the below two functions return the hypothesis with PID = MC PID. if not available, returns one with best PID FOM const DChargedTrackHypothesis* Get_MatchingChargedHypothesis(const DMCThrown* locInputMCThrown) const; const DNeutralParticleHypothesis* Get_MatchingNeutralHypothesis(const DMCThrown* locInputMCThrown) const; 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: INDIVIDUAL HITS const DTOFPoint* Get_MatchingTOFPoint(const DTOFTruth* locTOFTruth) const; const DTOFTruth* Get_MatchingTOFTruth(const DTOFPoint* locTOFPoint) const; const DBCALShower* Get_MatchingBCALShower(const DBCALTruthShower* locBCALTruthShower) const; const DBCALTruthShower* Get_MatchingBCALTruthShower(const DBCALShower* locBCALShower) const; const DFCALShower* Get_MatchingFCALShower(const DFCALTruthShower* locFCALTruthShower) const; const DFCALTruthShower* Get_MatchingFCALTruthShower(const DFCALShower* locFCALShower) 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;} inline void Get_TOFPointToTruthMap(map& locTOFPointToTruthMap) const{locTOFPointToTruthMap = dTOFPointToTruthMap;} inline void Get_TOFTruthToPointMap(map& locTOFTruthToPointMap) const{locTOFTruthToPointMap = dTOFTruthToPointMap;} inline void Get_BCALShowerToTruthMap(map& locBCALShowerToTruthMap) const{locBCALShowerToTruthMap = dBCALShowerToTruthMap;} inline void Get_BCALTruthToShowerMap(map& locBCALTruthToShowerMap) const{locBCALTruthToShowerMap = dBCALTruthToShowerMap;} inline void Get_FCALShowerToTruthMap(map& locFCALShowerToTruthMap) const{locFCALShowerToTruthMap = dFCALShowerToTruthMap;} inline void Get_FCALTruthToShowerMap(map& locFCALTruthToShowerMap) const{locFCALTruthToShowerMap = dFCALTruthToShowerMap;} private: map dChargedHypoToThrownMap; map > dThrownToChargedHypoMap; map dChargedToThrownMap; map dThrownToChargedMap; map dNeutralHypoToThrownMap; map > dThrownToNeutralHypoMap; map dNeutralToThrownMap; map dThrownToNeutralMap; map dTOFPointToTruthMap; map dTOFTruthToPointMap; map dBCALShowerToTruthMap; map dBCALTruthToShowerMap; map dFCALShowerToTruthMap; map dFCALTruthToShowerMap; }; #endif // _DMCThrownMatching_