![]() |
![]() |
00001 #ifndef TrackingTools_PatternTools_TrackConstraintAssociation_h 00002 #define TrackingTools_PatternTools_TrackConstraintAssociation_h 00003 00004 #include "DataFormats/Common/interface/AssociationMap.h" 00005 #include "DataFormats/GeometryVector/interface/GlobalPoint.h" 00006 #include "DataFormats/GeometryCommonDetAlgo/interface/GlobalError.h" 00007 #include "DataFormats/TrackReco/interface/TrackFwd.h" 00008 00009 //typedef std::pair<double,double> MomentumConstraint; 00010 struct MomentumConstraint { 00011 MomentumConstraint(const double & f, const double & s) :momentum(f),error(s){} 00012 MomentumConstraint() : momentum(0), error(0) {} 00013 00014 double momentum; 00015 double error; 00016 }; 00017 00018 typedef std::pair<GlobalPoint,GlobalError> VertexConstraint; 00019 00020 typedef edm::AssociationMap<edm::OneToOne<reco::TrackCollection,std::vector<MomentumConstraint> > > TrackMomConstraintAssociationCollection; 00021 typedef TrackMomConstraintAssociationCollection::value_type TrackMomConstraintAssociation; 00022 typedef edm::Ref<TrackMomConstraintAssociationCollection> TrackMomConstraintAssociationRef; 00023 typedef edm::RefProd<TrackMomConstraintAssociationCollection> TrackMomConstraintAssociationRefProd; 00024 typedef edm::RefVector<TrackMomConstraintAssociationCollection> TrackMomConstraintAssociationRefVector; 00025 00026 00027 typedef edm::AssociationMap<edm::OneToOne<reco::TrackCollection,std::vector<VertexConstraint> > > TrackVtxConstraintAssociationCollection; 00028 typedef TrackVtxConstraintAssociationCollection::value_type TrackVtxConstraintAssociation; 00029 typedef edm::Ref<TrackVtxConstraintAssociationCollection> TrackVtxConstraintAssociationRef; 00030 typedef edm::RefProd<TrackVtxConstraintAssociationCollection> TrackVtxConstraintAssociationRefProd; 00031 typedef edm::RefVector<TrackVtxConstraintAssociationCollection> TrackVtxConstraintAssociationRefVector; 00032 00033 #endif