CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
TrackAssociatorByPosition.h
Go to the documentation of this file.
1 #ifndef TrackAssociatorByPosition_h
2 #define TrackAssociatorByPosition_h
3 
17 
20 
22 
24 
25 #include<map>
26 
27 //Note that the Association Map is filled with -ch2 and not chi2 because it is ordered using std::greater:
28 //the track with the lowest association chi2 will be the first in the output map.
29 
31 
32  public:
33 
36  const TrackingGeometry * geo,
37  const Propagator * prop){
38  theGeometry = geo;
39  thePropagator = prop;
40  theMinIfNoMatch = iConfig.getParameter<bool>("MinIfNoMatch");
41  theQminCut = iConfig.getParameter<double>("QminCut");
42  theQCut = iConfig.getParameter<double>("QCut");
43  thePositionMinimumDistance = iConfig.getParameter<double>("positionMinimumDistance");
44  std::string meth= iConfig.getParameter<std::string>("method");
45  if (meth=="chi2"){ theMethod =0; }
46  else if (meth=="dist"){theMethod =1;}
47  else if (meth=="momdr"){theMethod = 2;}
48  else if (meth=="posdr"){theMethod = 3;}
49  else{
50  edm::LogError("TrackAssociatorByPosition")<<meth<<" mothed not recognized. Use dr or chi2."; }
51 
52  theConsiderAllSimHits = iConfig.getParameter<bool>("ConsiderAllSimHits");
53  _simHitTpMapTag = iConfig.getParameter<edm::InputTag>("simHitTpMapTag");
54  };
55 
56 
59  };
60 
61 
63  virtual
66  const edm::Event * event = 0,
67  const edm::EventSetup * setup = 0 ) const override;
68 
70  virtual
73  const edm::Event * event = 0,
74  const edm::EventSetup * setup = 0 ) const override;
75 
76  double quality(const TrajectoryStateOnSurface&, const TrajectoryStateOnSurface &)const;
77 
78  private:
79 
82  unsigned int theMethod;
83  double theQminCut;
84  double theQCut;
88 
92 };
93 
94 #endif
T getParameter(std::string const &) const
double quality(const TrajectoryStateOnSurface &, const TrajectoryStateOnSurface &) const
const TrackingGeometry * theGeometry
virtual reco::RecoToSimCollection associateRecoToSim(const edm::RefToBaseVector< reco::Track > &, const edm::RefVector< TrackingParticleCollection > &, const edm::Event *event=0, const edm::EventSetup *setup=0) const override
compare reco to sim the handle of reco::Track and TrackingParticle collections
virtual reco::SimToRecoCollection associateSimToReco(const edm::RefToBaseVector< reco::Track > &, const edm::RefVector< TrackingParticleCollection > &, const edm::Event *event=0, const edm::EventSetup *setup=0) const override
compare reco to sim the handle of reco::Track and TrackingParticle collections
How EventSelector::AcceptEvent() decides whether to accept an event for output otherwise it is excluding the probing of A single or multiple positive and the trigger will pass if any such matching triggers are PASS or EXCEPTION[A criterion thatmatches no triggers at all is detected and causes a throw.] A single negative with an expectation of appropriate bit checking in the decision and the trigger will pass if any such matching triggers are FAIL or EXCEPTION A wildcarded negative criterion that matches more than one trigger in the trigger but the state exists so we define the behavior If all triggers are the negative crieriion will lead to accepting the event(this again matches the behavior of"!*"before the partial wildcard feature was incorporated).The per-event"cost"of each negative criterion with multiple relevant triggers is about the same as!*was in the past
std::vector< SimHitTPPair > SimHitTPAssociationList
FreeTrajectoryState getState(const reco::Track &) const
void setup(std::vector< TH2F > &depth, std::string name, std::string units="")
TrackAssociatorByPosition(const edm::ParameterSet &iConfig, const TrackingGeometry *geo, const Propagator *prop)
Constructor with propagator and PSet.