CMS 3D CMS Logo

List of all members | Public Member Functions | Static Public Member Functions | Private Member Functions
SeedFromConsecutiveHitsTripletOnlyCreator Class Referencefinal

#include <SeedFromConsecutiveHitsTripletOnlyCreator.h>

Inheritance diagram for SeedFromConsecutiveHitsTripletOnlyCreator:
SeedFromConsecutiveHitsCreator SeedCreator

Public Member Functions

 SeedFromConsecutiveHitsTripletOnlyCreator (const edm::ParameterSet &cfg, edm::ConsumesCollector &&iC)
 
 ~SeedFromConsecutiveHitsTripletOnlyCreator () override
 
- Public Member Functions inherited from SeedFromConsecutiveHitsCreator
void init (const TrackingRegion &region, const edm::EventSetup &es, const SeedComparitor *filter) final
 
void makeSeed (TrajectorySeedCollection &seedCollection, const SeedingHitSet &hits) final
 
 SeedFromConsecutiveHitsCreator (const edm::ParameterSet &, edm::ConsumesCollector &&)
 
 ~SeedFromConsecutiveHitsCreator () override
 
- Public Member Functions inherited from SeedCreator
virtual ~SeedCreator ()
 

Static Public Member Functions

static void fillDescriptions (edm::ParameterSetDescription &desc)
 
static const char * fillDescriptionsLabel ()
 
- Static Public Member Functions inherited from SeedFromConsecutiveHitsCreator
static void fillDescriptions (edm::ParameterSetDescription &desc)
 
static const char * fillDescriptionsLabel ()
 

Private Member Functions

bool initialKinematic (GlobalTrajectoryParameters &kine, const SeedingHitSet &hits) const override
 

Additional Inherited Members

- Protected Attributes inherited from SeedFromConsecutiveHitsCreator
TkClonerImpl cloner
 
const SeedComparitorfilter = nullptr
 
bool forceKinematicWithRegionDirection_
 
bool isBOFF = false
 
MagneticField const * magneticField_
 
const edm::ESGetToken< MagneticField, IdealMagneticFieldRecordmagneticFieldESToken_
 
std::string mfName_
 
float nomField
 
Propagator const * propagator_
 
const edm::ESGetToken< Propagator, TrackingComponentsRecordpropagatorESToken_
 
const TrackingRegionregion = nullptr
 
float theBOFFMomentum
 
float theMinOneOverPtError
 
float theOriginTransverseErrorMultiplier
 
std::string thePropagatorLabel
 
TrackerGeometry const * trackerGeometry_
 
const edm::ESGetToken< TrackerGeometry, TrackerDigiGeometryRecordtrackerGeometryESToken_
 
const edm::ESGetToken< TransientTrackingRecHitBuilder, TransientRecHitRecordtransientTrackingRecHitBuilderESToken_
 
std::string TTRHBuilder
 

Detailed Description

Definition at line 8 of file SeedFromConsecutiveHitsTripletOnlyCreator.h.

Constructor & Destructor Documentation

◆ SeedFromConsecutiveHitsTripletOnlyCreator()

SeedFromConsecutiveHitsTripletOnlyCreator::SeedFromConsecutiveHitsTripletOnlyCreator ( const edm::ParameterSet cfg,
edm::ConsumesCollector &&  iC 
)
inline

Definition at line 10 of file SeedFromConsecutiveHitsTripletOnlyCreator.h.

SeedFromConsecutiveHitsCreator(const edm::ParameterSet &, edm::ConsumesCollector &&)
def move(src, dest)
Definition: eostools.py:511

◆ ~SeedFromConsecutiveHitsTripletOnlyCreator()

SeedFromConsecutiveHitsTripletOnlyCreator::~SeedFromConsecutiveHitsTripletOnlyCreator ( )
inlineoverride

Definition at line 18 of file SeedFromConsecutiveHitsTripletOnlyCreator.h.

18 {}

Member Function Documentation

◆ fillDescriptions()

static void SeedFromConsecutiveHitsTripletOnlyCreator::fillDescriptions ( edm::ParameterSetDescription desc)
inlinestatic

◆ fillDescriptionsLabel()

static const char* SeedFromConsecutiveHitsTripletOnlyCreator::fillDescriptionsLabel ( )
inlinestatic

Definition at line 16 of file SeedFromConsecutiveHitsTripletOnlyCreator.h.

16 { return "ConsecutiveHitsTripletOnly"; }

◆ initialKinematic()

bool SeedFromConsecutiveHitsTripletOnlyCreator::initialKinematic ( GlobalTrajectoryParameters kine,
const SeedingHitSet hits 
) const
overrideprivatevirtual

Reimplemented from SeedFromConsecutiveHitsCreator.

Definition at line 13 of file SeedFromConsecutiveHitsTripletOnlyCreator.cc.

References GlobalTrajectoryParameters::charge(), SeedComparitor::compatible(), SeedFromConsecutiveHitsCreator::filter, hfClusterShapes_cfi::hits, SeedFromConsecutiveHitsCreator::isBOFF, trackerHitRTTI::isSingleType(), SeedFromConsecutiveHitsCreator::magneticField_, GlobalTrajectoryParameters::momentum(), SeedFromConsecutiveHitsCreator::nomField, TrackingRegion::origin(), GlobalTrajectoryParameters::position(), SeedFromConsecutiveHitsCreator::region, SiStripDetId::TEC, SeedFromConsecutiveHitsCreator::theBOFFMomentum, SiStripDetId::TID, Vector3DBase< T, FrameTag >::unit(), and UNLIKELY.

14  {
17 
18  if (hits.size() == 3 &&
19  !(trackerHitRTTI::isSingleType(*hits[2]) && (hits[2]->geographicalId().subdetId() == SiStripDetId::TID ||
20  hits[2]->geographicalId().subdetId() == SiStripDetId::TEC))) {
21  //if 3rd hit is mono and endcap pT is not well defined so take initial state from pair
23  FastHelix helix(tth3->globalPosition(),
24  tth2->globalPosition(),
25  tth1->globalPosition(),
26  nomField,
28  tth1->globalPosition());
29  kine = helix.stateAtVertex();
30  if UNLIKELY (isBOFF && (theBOFFMomentum > 0)) {
32  kine.position(), kine.momentum().unit() * theBOFFMomentum, kine.charge(), magneticField_);
33  }
34  return (filter ? filter->compatible(hits, kine, helix) : true);
35  }
36 
37  const GlobalPoint& vertexPos = region->origin();
38 
39  FastHelix helix(tth2->globalPosition(), tth1->globalPosition(), vertexPos, nomField, magneticField_);
40  if (helix.isValid()) {
41  kine = helix.stateAtVertex();
42  } else {
43  GlobalVector initMomentum(tth2->globalPosition() - vertexPos);
44  initMomentum *= (100. / initMomentum.perp());
45  kine = GlobalTrajectoryParameters(vertexPos, initMomentum, 1, magneticField_);
46  }
47 
48  if UNLIKELY (isBOFF && (theBOFFMomentum > 0)) {
50  kine.position(), kine.momentum().unit() * theBOFFMomentum, kine.charge(), magneticField_);
51  }
52  return (filter ? filter->compatible(hits, kine, helix) : true);
53 }
bool isSingleType(TrackingRecHit const &hit)
GlobalTrajectoryParameters stateAtVertex() const
Definition: FastHelix.h:59
GlobalPoint const & origin() const
static constexpr auto TID
Definition: SiStripDetId.h:38
virtual bool compatible(const SeedingHitSet &hits) const =0
BaseTrackerRecHit const * ConstRecHitPointer
Definition: SeedingHitSet.h:14
#define UNLIKELY(x)
Definition: Likely.h:21
static constexpr auto TEC
Definition: SiStripDetId.h:40