File indexing completed on 2024-04-06 11:57:32
0001 #include "AnalysisDataFormats/TrackInfo/interface/TrackInfo.h"
0002 #include "FWCore/MessageLogger/interface/MessageLogger.h"
0003
0004 using namespace reco;
0005
0006 TrackInfo::TrackInfo(const TrajectorySeed& seed, const TrajectoryInfo& trajstates)
0007 : seed_(seed), trajstates_(trajstates) {}
0008
0009 const TrajectorySeed& TrackInfo::seed() const { return seed_; }
0010
0011 const reco::TrackInfo::TrajectoryInfo& TrackInfo::trajStateMap() const { return trajstates_; }
0012
0013 const RecHitType TrackInfo::type(TrackingRecHitRef hit) const {
0014 TrajectoryInfo::const_iterator states = trajstates_.find(hit);
0015 if (states != trajstates_.end())
0016 return states->second.type();
0017 else
0018 edm::LogError("TrackInfo") << "This rechit does not exist";
0019 return Null;
0020 }
0021
0022 const PTrajectoryStateOnDet* TrackInfo::stateOnDet(StateType statetype, TrackingRecHitRef hit) const {
0023 TrajectoryInfo::const_iterator states = trajstates_.find(hit);
0024 if (states != trajstates_.end())
0025 return states->second.stateOnDet(statetype);
0026 else
0027 edm::LogError("TrackInfo") << "This rechit does not exist";
0028 return nullptr;
0029 }
0030
0031 const LocalVector TrackInfo::localTrackMomentum(StateType statetype, TrackingRecHitRef hit) const {
0032 TrajectoryInfo::const_iterator states = trajstates_.find(hit);
0033 if (states != trajstates_.end()) {
0034 const PTrajectoryStateOnDet* state = states->second.stateOnDet(statetype);
0035 if (state != nullptr)
0036 return state->parameters().momentum();
0037 } else
0038 edm::LogError("TrackInfo") << "This rechit does not exist";
0039 return LocalVector(0, 0, 0);
0040 }
0041
0042 const LocalVector TrackInfo::localTrackMomentumOnMono(StateType statetype, TrackingRecHitRef hit) const {
0043 TrajectoryInfo::const_iterator states = trajstates_.find(hit);
0044 if (states != trajstates_.end())
0045 return states->second.localTrackMomentumOnMono(statetype);
0046 else
0047 edm::LogError("TrackInfo") << "This rechit does not exist";
0048 return LocalVector(0, 0, 0);
0049 }
0050
0051 const LocalVector TrackInfo::localTrackMomentumOnStereo(StateType statetype, TrackingRecHitRef hit) const {
0052 TrajectoryInfo::const_iterator states = trajstates_.find(hit);
0053 if (states != trajstates_.end())
0054 return states->second.localTrackMomentumOnStereo(statetype);
0055 return LocalVector(0, 0, 0);
0056 }
0057
0058 const LocalPoint TrackInfo::localTrackPosition(StateType statetype, TrackingRecHitRef hit) const {
0059 TrajectoryInfo::const_iterator states = trajstates_.find(hit);
0060 if (states != trajstates_.end()) {
0061 const PTrajectoryStateOnDet* state = states->second.stateOnDet(statetype);
0062 if (state != nullptr)
0063 return state->parameters().position();
0064 } else
0065 edm::LogError("TrackInfo") << "This rechit does not exist";
0066 return LocalPoint(0, 0, 0);
0067 }
0068
0069 const LocalPoint TrackInfo::localTrackPositionOnMono(StateType statetype, TrackingRecHitRef hit) const {
0070 TrajectoryInfo::const_iterator states = trajstates_.find(hit);
0071 if (states != trajstates_.end())
0072 return states->second.localTrackPositionOnMono(statetype);
0073 else
0074 edm::LogError("TrackInfo") << "This rechit does not exist";
0075 return LocalPoint(0, 0, 0);
0076 }
0077
0078 const LocalPoint TrackInfo::localTrackPositionOnStereo(StateType statetype, TrackingRecHitRef hit) const {
0079 TrajectoryInfo::const_iterator states = trajstates_.find(hit);
0080 if (states != trajstates_.end())
0081 return states->second.localTrackPositionOnStereo(statetype);
0082 else
0083 edm::LogError("TrackInfo") << "This rechit does not exist";
0084 return LocalPoint(0, 0, 0);
0085 }