![]() |
![]() |
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 #include "TrackingTools/TrajectoryState/interface/TrajectoryStateOnSurface.h" 00009 00010 //typedef std::pair<double,double> MomentumConstraint; 00011 struct MomentumConstraint { 00012 MomentumConstraint(const double & f, const double & s) :momentum(f),error(s){} 00013 MomentumConstraint() : momentum(0), error(0) {} 00014 00015 double momentum; 00016 double error; 00017 }; 00018 00019 typedef std::pair<GlobalPoint,GlobalError> VertexConstraint; 00020 00021 typedef TrajectoryStateOnSurface TrackParamConstraint; 00022 00023 typedef edm::AssociationMap<edm::OneToOne<reco::TrackCollection,std::vector<MomentumConstraint> > > TrackMomConstraintAssociationCollection; 00024 typedef TrackMomConstraintAssociationCollection::value_type TrackMomConstraintAssociation; 00025 typedef edm::Ref<TrackMomConstraintAssociationCollection> TrackMomConstraintAssociationRef; 00026 typedef edm::RefProd<TrackMomConstraintAssociationCollection> TrackMomConstraintAssociationRefProd; 00027 typedef edm::RefVector<TrackMomConstraintAssociationCollection> TrackMomConstraintAssociationRefVector; 00028 00029 typedef edm::AssociationMap<edm::OneToOne<reco::TrackCollection,std::vector<VertexConstraint> > > TrackVtxConstraintAssociationCollection; 00030 typedef TrackVtxConstraintAssociationCollection::value_type TrackVtxConstraintAssociation; 00031 typedef edm::Ref<TrackVtxConstraintAssociationCollection> TrackVtxConstraintAssociationRef; 00032 typedef edm::RefProd<TrackVtxConstraintAssociationCollection> TrackVtxConstraintAssociationRefProd; 00033 typedef edm::RefVector<TrackVtxConstraintAssociationCollection> TrackVtxConstraintAssociationRefVector; 00034 00035 typedef edm::AssociationMap<edm::OneToOne<reco::TrackCollection,std::vector<TrackParamConstraint> > > TrackParamConstraintAssociationCollection; 00036 typedef TrackParamConstraintAssociationCollection::value_type TrackParamConstraintAssociation; 00037 typedef edm::Ref<TrackParamConstraintAssociationCollection> TrackParamConstraintAssociationRef; 00038 typedef edm::RefProd<TrackParamConstraintAssociationCollection> TrackParamConstraintAssociationRefProd; 00039 typedef edm::RefVector<TrackParamConstraintAssociationCollection> TrackParamConstraintAssociationRefVector; 00040 00041 #endif