CMS 3D CMS Logo

List of all members | Public Member Functions | Private Types | Private Member Functions | Private Attributes
PhotonConversionTrajectorySeedProducerFromSingleLegAlgo Class Reference

#include <PhotonConversionTrajectorySeedProducerFromSingleLegAlgo.h>

Public Member Functions

void find (const edm::Event &event, const edm::EventSetup &setup, TrajectorySeedCollection &output)
 
IdealHelixParametersgetIdealHelixParameters ()
 
 PhotonConversionTrajectorySeedProducerFromSingleLegAlgo (const edm::ParameterSet &, edm::ConsumesCollector &&iC)
 
 ~PhotonConversionTrajectorySeedProducerFromSingleLegAlgo ()
 

Private Types

typedef Regions::const_iterator IR
 
typedef std::vector< std::unique_ptr< TrackingRegion > > Regions
 

Private Member Functions

bool inspectTrack (const reco::Track *track, const TrackingRegion &region, math::XYZPoint &primaryVertexPoint)
 
void loopOnPriVtx (const reco::Track &tk, const std::vector< reco::Vertex > &selectedPriVtxCompatibleWithTrack)
 
void loopOnTracks ()
 
bool rejectTrack (const reco::Track &track)
 
bool selectPriVtxCompatibleWithTrack (const reco::Track &tk, std::vector< reco::Vertex > &selectedPriVtxCompatibleWithTrack)
 

Private Attributes

bool _applyTkVtxConstraint
 
edm::InputTag _beamSpotInputTag
 
size_t _countSeedTracks
 
IdealHelixParameters _IdealHelixParameters
 
double _maxDZSigmas
 
size_t _maxNumSelVtx
 
edm::InputTag _primaryVtxInputTag
 
double _vtxMinDoF
 
const MagneticFieldmagField
 
const edm::EventSetupmyEsetup
 
const edm::EventmyEvent
 
PrintRecoObjects po
 
reco::Vertex primaryVertex
 
edm::Handle< reco::BeamSpotrecoBeamSpotHandle
 
Regions regions
 
TrajectorySeedCollectionseedCollection = nullptr
 
std::stringstream ss
 
const reco::BeamSpottheBeamSpot
 
ClusterChecker theClusterCheck
 
std::unique_ptr< CombinedHitPairGeneratorForPhotonConversiontheHitsGenerator
 
std::unique_ptr< GlobalTrackingRegionProducerFromBeamSpottheRegionProducer
 
std::unique_ptr< SeedForPhotonConversion1LegtheSeedCreator
 
bool theSilentOnClusterCheck
 
edm::EDGetTokenT< reco::BeamSpottoken_bs
 
edm::EDGetTokenT< reco::TrackCollectiontoken_refitter
 
edm::EDGetTokenT< reco::VertexCollectiontoken_vertex
 
edm::Handle< reco::TrackCollectiontrackCollectionH
 
edm::Handle< reco::VertexCollectionvertexHandle
 

Detailed Description

Definition at line 33 of file PhotonConversionTrajectorySeedProducerFromSingleLegAlgo.h.

Member Typedef Documentation

◆ IR

typedef Regions::const_iterator PhotonConversionTrajectorySeedProducerFromSingleLegAlgo::IR
private

◆ Regions

Constructor & Destructor Documentation

◆ PhotonConversionTrajectorySeedProducerFromSingleLegAlgo()

PhotonConversionTrajectorySeedProducerFromSingleLegAlgo::PhotonConversionTrajectorySeedProducerFromSingleLegAlgo ( const edm::ParameterSet conf,
edm::ConsumesCollector &&  iC 
)

Definition at line 16 of file PhotonConversionTrajectorySeedProducerFromSingleLegAlgo.cc.

19  conf.getParameter<edm::ParameterSet>("OrderedHitsFactoryPSet"), iC)),
22  new GlobalTrackingRegionProducerFromBeamSpot(conf.getParameter<edm::ParameterSet>("RegionFactoryPSet"), iC)),
23  theClusterCheck(conf.getParameter<edm::ParameterSet>("ClusterCheckPSet"), iC),
25  .getUntrackedParameter<bool>("silentClusterCheck", false)),
26  _vtxMinDoF(conf.getParameter<double>("vtxMinDoF")),
27  _maxDZSigmas(conf.getParameter<double>("maxDZSigmas")),
28  _maxNumSelVtx(conf.getParameter<uint32_t>("maxNumSelVtx")),
29  _applyTkVtxConstraint(conf.getParameter<bool>("applyTkVtxConstraint")),
31  _primaryVtxInputTag(conf.getParameter<edm::InputTag>("primaryVerticesTag")),
32  _beamSpotInputTag(conf.getParameter<edm::InputTag>("beamSpotInputTag")) {
36 }

References _beamSpotInputTag, _primaryVtxInputTag, edm::ParameterSet::getParameter(), token_bs, token_refitter, and token_vertex.

◆ ~PhotonConversionTrajectorySeedProducerFromSingleLegAlgo()

PhotonConversionTrajectorySeedProducerFromSingleLegAlgo::~PhotonConversionTrajectorySeedProducerFromSingleLegAlgo ( )

Member Function Documentation

◆ find()

void PhotonConversionTrajectorySeedProducerFromSingleLegAlgo::find ( const edm::Event event,
const edm::EventSetup setup,
TrajectorySeedCollection output 
)

Definition at line 40 of file PhotonConversionTrajectorySeedProducerFromSingleLegAlgo.cc.

42  {
43  myEsetup = &setup;
44  myEvent = &event;
45 
46  assert(seedCollection == nullptr);
47 
49 
50  size_t clustsOrZero = theClusterCheck.tooManyClusters(event);
51  if (clustsOrZero) {
53  edm::LogError("TooManyClusters") << "Found too many clusters (" << clustsOrZero << "), bailing out.\n";
54  seedCollection = nullptr;
55  return;
56  }
57 
58  edm::ESHandle<MagneticField> handleMagField;
59  setup.get<IdealMagneticFieldRecord>().get(handleMagField);
60  magField = handleMagField.product();
61  if (UNLIKELY(magField->inTesla(GlobalPoint(0., 0., 0.)).z() < 0.01)) {
62  seedCollection = nullptr;
63  return;
64  }
65 
67 
68  event.getByToken(token_vertex, vertexHandle);
69  if (!vertexHandle.isValid() || vertexHandle->empty()) {
70  edm::LogError("PhotonConversionFinderFromTracks")
71  << "Error! Can't get the product primary Vertex Collection " << _primaryVtxInputTag << "\n";
72  seedCollection = nullptr;
73  return;
74  }
75 
76  event.getByToken(token_bs, recoBeamSpotHandle);
77 
78  regions = theRegionProducer->regions(event, setup);
79 
80  // find seeds
81  loopOnTracks();
82 
83 #ifdef debugTSPFSLA
84  std::stringstream ss;
85  ss.str("");
86  ss << "\n++++++++++++++++++\n";
87  ss << "seed collection size " << seedCollection->size();
88  for (auto const& tjS : *seedCollection) {
89  po.print(ss, tjS);
90  }
91  edm::LogInfo("debugTrajSeedFromSingleLeg") << ss.str();
92  //-------------------------------------------------
93 #endif
94 
95  // clear memory
96  theHitsGenerator->clearCache();
97 
98  seedCollection = nullptr;
99 }

References _IdealHelixParameters, _primaryVtxInputTag, cms::cuda::assert(), event(), get, MagneticField::inTesla(), edm::HandleBase::isValid(), loopOnTracks(), magField, myEsetup, myEvent, convertSQLitetoXML_cfg::output, po, PrintRecoObjects::print(), edm::ESHandle< T >::product(), recoBeamSpotHandle, regions, seedCollection, IdealHelixParameters::setMagnField(), singleTopDQM_cfi::setup, ss, theClusterCheck, theHitsGenerator, theRegionProducer, theSilentOnClusterCheck, token_bs, token_vertex, ClusterChecker::tooManyClusters(), UNLIKELY, vertexHandle, and PV3DBase< T, PVType, FrameType >::z().

Referenced by PhotonConversionTrajectorySeedProducerFromSingleLeg::produce().

◆ getIdealHelixParameters()

IdealHelixParameters* PhotonConversionTrajectorySeedProducerFromSingleLegAlgo::getIdealHelixParameters ( )
inline

◆ inspectTrack()

bool PhotonConversionTrajectorySeedProducerFromSingleLegAlgo::inspectTrack ( const reco::Track track,
const TrackingRegion region,
math::XYZPoint primaryVertexPoint 
)
private

Definition at line 285 of file PhotonConversionTrajectorySeedProducerFromSingleLegAlgo.cc.

287  {
288  _IdealHelixParameters.setData(track, primaryVertexPoint);
289 
291  (_IdealHelixParameters.GetTangentPoint().r() == 0)) {
292  //this case means a null results on the _IdealHelixParameters side
293  return false;
294  }
295 
296  float rMin = 3.; //cm
298  //this case means a track that has the tangent point nearby the primary vertex
299  // if the track is primary, this number tends to be the primary vertex itself
300  //Rejecting all the potential photon conversions having a "vertex" inside the beampipe
301  //We should not miss too much, seen that the conversions at the beam pipe are the better reconstructed
302  return false;
303  }
304 
305  float ptmin = 0.5;
306  float originRBound = 3;
307  float originZBound = 3.;
308 
309  GlobalPoint originPos;
313  float cotTheta;
315  cotTheta =
317  } else {
319  cotTheta = 99999.f;
320  else
321  cotTheta = -99999.f;
322  }
323  GlobalVector originBounds(originRBound, originRBound, originZBound);
324 
325  GlobalPoint pvtxPoint(primaryVertexPoint.x(), primaryVertexPoint.y(), primaryVertexPoint.z());
326 
327  ConversionRegion convRegion(originPos, pvtxPoint, cotTheta, track->thetaError(), -1 * track->charge());
328 
329 #ifdef debugTSPFSLA
330  ss << "\nConversion Point " << originPos << " " << originPos.perp() << "\n";
331 #endif
332 
333  const OrderedSeedingHits& hitss = theHitsGenerator->run(convRegion, region, *myEvent, *myEsetup);
334 
335  unsigned int nHitss = hitss.size();
336 
337  if (nHitss == 0)
338  return false;
339 
340 #ifdef debugTSPFSLA
341  ss << "\n nHitss " << nHitss << "\n";
342 #endif
343 
344  if (seedCollection->empty())
345  seedCollection->reserve(
346  nHitss); // don't do multiple reserves in the case of multiple regions: it would make things even worse
347  // as it will cause N re-allocations instead of the normal log(N)/log(2)
348  for (unsigned int iHits = 0; iHits < nHitss; ++iHits) {
349 #ifdef debugTSPFSLA
350  ss << "\n iHits " << iHits << "\n";
351 #endif
352  const SeedingHitSet& hits = hitss[iHits];
353  theSeedCreator->trajectorySeed(
354  *seedCollection, hits, originPos, originBounds, ptmin, *myEsetup, convRegion.cotTheta(), ss);
355  }
356  return true;
357 }

References _IdealHelixParameters, funct::abs(), MillePedeFileConverter_cfg::e, f, IdealHelixParameters::GetMomentumAtTangentPoint(), IdealHelixParameters::GetTangentPoint(), hfClusterShapes_cfi::hits, edm::isNotFinite(), myEsetup, myEvent, PV3DBase< T, PVType, FrameType >::perp(), ptmin, HLT_2018_cff::region, photonAnalyzer_cfi::rMin, seedCollection, IdealHelixParameters::setData(), OrderedSeedingHits::size(), ss, theHitsGenerator, theSeedCreator, and HLT_2018_cff::track.

Referenced by loopOnPriVtx().

◆ loopOnPriVtx()

void PhotonConversionTrajectorySeedProducerFromSingleLegAlgo::loopOnPriVtx ( const reco::Track tk,
const std::vector< reco::Vertex > &  selectedPriVtxCompatibleWithTrack 
)
private

Definition at line 203 of file PhotonConversionTrajectorySeedProducerFromSingleLegAlgo.cc.

204  {
205  bool foundAtLeastASeedCand = false;
206  for (auto const& vtx : selectedPriVtxCompatibleWithTrack) {
207  math::XYZPoint primaryVertexPoint = math::XYZPoint(vtx.position());
208 
209  for (IR ir = regions.begin(), irEnd = regions.end(); ir < irEnd; ++ir) {
210  const TrackingRegion& region = **ir;
211 
212 #ifdef debugTSPFSLA
213  ss << "[PrintRegion] " << region.print() << std::endl;
214 #endif
215 
216  //This if is just for the _countSeedTracks. otherwise
217  //inspectTrack(&tk,region, primaryVertexPoint);
218  //would be enough
219 
220  if (inspectTrack(&tk, region, primaryVertexPoint) and !foundAtLeastASeedCand) {
221  foundAtLeastASeedCand = true;
223  }
224  }
225  }
226 }

References _countSeedTracks, inspectTrack(), HLT_2018_cff::region, regions, ss, and badGlobalMuonTaggersAOD_cff::vtx.

Referenced by loopOnTracks().

◆ loopOnTracks()

void PhotonConversionTrajectorySeedProducerFromSingleLegAlgo::loopOnTracks ( )
private

Definition at line 101 of file PhotonConversionTrajectorySeedProducerFromSingleLegAlgo.cc.

101  {
102  //--- Get Tracks
104 
105  if (trackCollectionH.isValid() == 0) {
106  edm::LogError("MissingInput")
107  << " could not find track collecion in PhotonConversionTrajectorySeedProducerFromSingleLegAlgo";
108  return;
109  }
110 
111  size_t idx = 0, sel = 0;
112  _countSeedTracks = 0;
113 
114 #ifdef debugTSPFSLA
115  ss.str("");
116 #endif
117 
118  for (reco::TrackCollection::const_iterator tr = trackCollectionH->begin(); tr != trackCollectionH->end();
119  tr++, idx++) {
120  if (rejectTrack(*tr))
121  continue;
122  std::vector<reco::Vertex> selectedPriVtxCompatibleWithTrack;
123  if (!_applyTkVtxConstraint) {
124  selectedPriVtxCompatibleWithTrack.push_back(*(vertexHandle->begin())); //Same approach as before
125  } else {
126  if (!selectPriVtxCompatibleWithTrack(*tr, selectedPriVtxCompatibleWithTrack))
127  continue;
128  }
129 
130  sel++;
131  loopOnPriVtx(*tr, selectedPriVtxCompatibleWithTrack);
132  }
133 #ifdef debugTSPFSLA
134  edm::LogInfo("debugTrajSeedFromSingleLeg") << ss.str();
135  edm::LogInfo("debugTrajSeedFromSingleLeg") << "Inspected " << sel << " tracks over " << idx
136  << " tracks. \t # tracks providing at least one seed " << _countSeedTracks;
137 #endif
138 }

References _applyTkVtxConstraint, _countSeedTracks, edm::Event::getByToken(), training_settings::idx, edm::HandleBase::isValid(), loopOnPriVtx(), myEvent, rejectTrack(), EgammaValidation_Wenu_cff::sel, selectPriVtxCompatibleWithTrack(), ss, token_refitter, trackCollectionH, and vertexHandle.

Referenced by find().

◆ rejectTrack()

bool PhotonConversionTrajectorySeedProducerFromSingleLegAlgo::rejectTrack ( const reco::Track track)
private

Definition at line 228 of file PhotonConversionTrajectorySeedProducerFromSingleLegAlgo.cc.

228  {
230  if (recoBeamSpotHandle.isValid()) {
232 
234  if (_IdealHelixParameters.GetTangentPoint().r() == 0) {
235  //this case means a null results on the _IdealHelixParameters side
236  return true;
237  }
238 
239  float rMin = 2.; //cm
241  //this case means a track that has the tangent point nearby the primary vertex
242  // if the track is primary, this number tends to be the primary vertex itself
243  //Rejecting all the potential photon conversions having a "vertex" inside the beampipe
244  //We should not miss too much, seen that the conversions at the beam pipe are the better reconstructed
245  return true;
246  }
247  }
248 
249  //-------------------------------------------------------
250  /*
251  float maxPt2=64.; //Cut on pt^2 Indeed doesn't do almost nothing
252  if(track.momentum().Perp2() > maxPt2)
253  return true;
254  */
255  //-------------------------------------------------------
256  //Cut in the barrel eta region FIXME: to be extended to endcaps
257  /*
258  float maxEta=1.3;
259  if(fabs(track.eta()) > maxEta)
260  return true;
261  */
262  //-------------------------------------------------------
263  //Reject tracks that have a first valid hit in the pixel barrel/endcap layer/disk 1
264  //assume that the hits are aligned along momentum
265  /*
266  const reco::HitPattern& p=track.hitPattern();
267  for (int i=0; i<p.numberOfHits(); i++) {
268  uint32_t hit = p.getHitPattern(i);
269  // if the hit is valid and in pixel barrel, print out the layer
270  if (! p.validHitFilter(hit) ) continue;
271  if( (p.pixelBarrelHitFilter(hit) || p.pixelEndcapHitFilter(hit))
272  &&
273  p.getLayer(hit) == 1
274  )
275  return true;
276  else
277  break; //because the first valid hit is in a different layer
278  }
279  */
280  //-------------------------------------------------------
281 
282  return false;
283 }

References _IdealHelixParameters, pwdgSkimBPark_cfi::beamSpot, IdealHelixParameters::GetTangentPoint(), edm::HandleBase::isValid(), reco::BeamSpot::position(), recoBeamSpotHandle, photonAnalyzer_cfi::rMin, IdealHelixParameters::setData(), and HLT_2018_cff::track.

Referenced by loopOnTracks().

◆ selectPriVtxCompatibleWithTrack()

bool PhotonConversionTrajectorySeedProducerFromSingleLegAlgo::selectPriVtxCompatibleWithTrack ( const reco::Track tk,
std::vector< reco::Vertex > &  selectedPriVtxCompatibleWithTrack 
)
private

Definition at line 140 of file PhotonConversionTrajectorySeedProducerFromSingleLegAlgo.cc.

141  {
142  std::vector<std::pair<double, short> > idx;
143  short count = -1;
144 
145  double cosPhi = tk.px() / tk.pt();
146  double sinPhi = tk.py() / tk.pt();
147  double sphi2 = tk.covariance(2, 2);
148  double stheta2 = tk.covariance(1, 1);
149 
150  for (const reco::Vertex& vtx : *vertexHandle) {
151  count++;
152  if (vtx.ndof() <= _vtxMinDoF)
153  continue;
154 
155  double _dz = tk.dz(vtx.position());
156  double _dzError = tk.dzError();
157 
158  double cotTheta = tk.pz() / tk.pt();
159  double dx = vtx.position().x();
160  double dy = vtx.position().y();
161  double sx2 = vtx.covariance(0, 0);
162  double sy2 = vtx.covariance(1, 1);
163 
164  double sxy2 = sqr(cosPhi * cotTheta) * sx2 + sqr(sinPhi * cotTheta) * sy2 +
165  sqr(cotTheta * (-dx * sinPhi + dy * cosPhi)) * sphi2 +
166  sqr((1 + cotTheta * cotTheta) * (dx * cosPhi + dy * sinPhi)) * stheta2;
167 
168  _dzError = sqrt(
169  _dzError * _dzError + vtx.covariance(2, 2) +
170  sxy2); //there is a missing component, related to the element (vtx.x*px+vtx.y*py)/pt * pz/pt. since the tk ref point is at the point of closest approach, this scalar product should be almost zero.
171 
172 #ifdef debugTSPFSLA
173  ss << " primary vtx " << vtx.position() << " \tk vz " << tk.vz() << " vx " << tk.vx() << " vy " << tk.vy()
174  << " pz/pt " << tk.pz() / tk.pt() << " \t dz " << _dz << " \t " << _dzError << " sxy2 " << sxy2
175  << " \t dz/dzErr " << _dz / _dzError << std::endl;
176 #endif
177 
178  if (fabs(_dz) / _dzError > _maxDZSigmas)
179  continue;
180 
181  idx.push_back(std::pair<double, short>(fabs(_dz), count));
182  }
183  if (idx.empty()) {
184 #ifdef debugTSPFSLA
185  ss << "no vertex selected " << std::endl;
186 #endif
187  return false;
188  }
189 
190  std::stable_sort(
191  idx.begin(), idx.end(), [](std::pair<double, short> a, std::pair<double, short> b) { return a.first < b.first; });
192 
193  for (size_t i = 0; i < _maxNumSelVtx && i < idx.size(); ++i) {
194  selectedPriVtxCompatibleWithTrack.push_back((*vertexHandle)[idx[i].second]);
195 #ifdef debugTSPFSLA
196  ss << "selected vtx dz " << idx[0].first << " position" << idx[0].second << std::endl;
197 #endif
198  }
199 
200  return true;
201 }

References _maxDZSigmas, _maxNumSelVtx, _vtxMinDoF, a, b, KineDebug3::count(), reco::TrackBase::covariance(), PVValHelper::dx, PVValHelper::dy, reco::TrackBase::dz(), reco::TrackBase::dzError(), mps_fire::i, training_settings::idx, reco::TrackBase::pt(), reco::TrackBase::px(), reco::TrackBase::py(), reco::TrackBase::pz(), edm::second(), sqr(), mathSSE::sqrt(), ss, vertexHandle, badGlobalMuonTaggersAOD_cff::vtx, reco::TrackBase::vx(), reco::TrackBase::vy(), and reco::TrackBase::vz().

Referenced by loopOnTracks().

Member Data Documentation

◆ _applyTkVtxConstraint

bool PhotonConversionTrajectorySeedProducerFromSingleLegAlgo::_applyTkVtxConstraint
private

◆ _beamSpotInputTag

edm::InputTag PhotonConversionTrajectorySeedProducerFromSingleLegAlgo::_beamSpotInputTag
private

◆ _countSeedTracks

size_t PhotonConversionTrajectorySeedProducerFromSingleLegAlgo::_countSeedTracks
private

◆ _IdealHelixParameters

IdealHelixParameters PhotonConversionTrajectorySeedProducerFromSingleLegAlgo::_IdealHelixParameters
private

◆ _maxDZSigmas

double PhotonConversionTrajectorySeedProducerFromSingleLegAlgo::_maxDZSigmas
private

◆ _maxNumSelVtx

size_t PhotonConversionTrajectorySeedProducerFromSingleLegAlgo::_maxNumSelVtx
private

◆ _primaryVtxInputTag

edm::InputTag PhotonConversionTrajectorySeedProducerFromSingleLegAlgo::_primaryVtxInputTag
private

◆ _vtxMinDoF

double PhotonConversionTrajectorySeedProducerFromSingleLegAlgo::_vtxMinDoF
private

◆ magField

const MagneticField* PhotonConversionTrajectorySeedProducerFromSingleLegAlgo::magField
private

Definition at line 81 of file PhotonConversionTrajectorySeedProducerFromSingleLegAlgo.h.

Referenced by find().

◆ myEsetup

const edm::EventSetup* PhotonConversionTrajectorySeedProducerFromSingleLegAlgo::myEsetup
private

Definition at line 78 of file PhotonConversionTrajectorySeedProducerFromSingleLegAlgo.h.

Referenced by find(), and inspectTrack().

◆ myEvent

const edm::Event* PhotonConversionTrajectorySeedProducerFromSingleLegAlgo::myEvent
private

◆ po

PrintRecoObjects PhotonConversionTrajectorySeedProducerFromSingleLegAlgo::po
private

Definition at line 90 of file PhotonConversionTrajectorySeedProducerFromSingleLegAlgo.h.

Referenced by find().

◆ primaryVertex

reco::Vertex PhotonConversionTrajectorySeedProducerFromSingleLegAlgo::primaryVertex
private

◆ recoBeamSpotHandle

edm::Handle<reco::BeamSpot> PhotonConversionTrajectorySeedProducerFromSingleLegAlgo::recoBeamSpotHandle
private

Definition at line 82 of file PhotonConversionTrajectorySeedProducerFromSingleLegAlgo.h.

Referenced by find(), and rejectTrack().

◆ regions

Regions PhotonConversionTrajectorySeedProducerFromSingleLegAlgo::regions
private

Definition at line 74 of file PhotonConversionTrajectorySeedProducerFromSingleLegAlgo.h.

Referenced by find(), and loopOnPriVtx().

◆ seedCollection

TrajectorySeedCollection* PhotonConversionTrajectorySeedProducerFromSingleLegAlgo::seedCollection = nullptr
private

Definition at line 54 of file PhotonConversionTrajectorySeedProducerFromSingleLegAlgo.h.

Referenced by find(), and inspectTrack().

◆ ss

std::stringstream PhotonConversionTrajectorySeedProducerFromSingleLegAlgo::ss
private

◆ theBeamSpot

const reco::BeamSpot* PhotonConversionTrajectorySeedProducerFromSingleLegAlgo::theBeamSpot
private

◆ theClusterCheck

ClusterChecker PhotonConversionTrajectorySeedProducerFromSingleLegAlgo::theClusterCheck
private

Definition at line 60 of file PhotonConversionTrajectorySeedProducerFromSingleLegAlgo.h.

Referenced by find().

◆ theHitsGenerator

std::unique_ptr<CombinedHitPairGeneratorForPhotonConversion> PhotonConversionTrajectorySeedProducerFromSingleLegAlgo::theHitsGenerator
private

Definition at line 56 of file PhotonConversionTrajectorySeedProducerFromSingleLegAlgo.h.

Referenced by find(), and inspectTrack().

◆ theRegionProducer

std::unique_ptr<GlobalTrackingRegionProducerFromBeamSpot> PhotonConversionTrajectorySeedProducerFromSingleLegAlgo::theRegionProducer
private

Definition at line 58 of file PhotonConversionTrajectorySeedProducerFromSingleLegAlgo.h.

Referenced by find().

◆ theSeedCreator

std::unique_ptr<SeedForPhotonConversion1Leg> PhotonConversionTrajectorySeedProducerFromSingleLegAlgo::theSeedCreator
private

◆ theSilentOnClusterCheck

bool PhotonConversionTrajectorySeedProducerFromSingleLegAlgo::theSilentOnClusterCheck
private

Definition at line 61 of file PhotonConversionTrajectorySeedProducerFromSingleLegAlgo.h.

Referenced by find().

◆ token_bs

edm::EDGetTokenT<reco::BeamSpot> PhotonConversionTrajectorySeedProducerFromSingleLegAlgo::token_bs
private

◆ token_refitter

edm::EDGetTokenT<reco::TrackCollection> PhotonConversionTrajectorySeedProducerFromSingleLegAlgo::token_refitter
private

◆ token_vertex

edm::EDGetTokenT<reco::VertexCollection> PhotonConversionTrajectorySeedProducerFromSingleLegAlgo::token_vertex
private

◆ trackCollectionH

edm::Handle<reco::TrackCollection> PhotonConversionTrajectorySeedProducerFromSingleLegAlgo::trackCollectionH
private

◆ vertexHandle

edm::Handle<reco::VertexCollection> PhotonConversionTrajectorySeedProducerFromSingleLegAlgo::vertexHandle
private
Vector3DBase
Definition: Vector3DBase.h:8
edm::ESHandle::product
T const * product() const
Definition: ESHandle.h:86
ConversionRegion
Definition: ConversionRegion.h:8
MagneticField::inTesla
virtual GlobalVector inTesla(const GlobalPoint &gp) const =0
Field value ad specified global point, in Tesla.
mps_fire.i
i
Definition: mps_fire.py:355
PhotonConversionTrajectorySeedProducerFromSingleLegAlgo::trackCollectionH
edm::Handle< reco::TrackCollection > trackCollectionH
Definition: PhotonConversionTrajectorySeedProducerFromSingleLegAlgo.h:76
pwdgSkimBPark_cfi.beamSpot
beamSpot
Definition: pwdgSkimBPark_cfi.py:5
hfClusterShapes_cfi.hits
hits
Definition: hfClusterShapes_cfi.py:5
PhotonConversionTrajectorySeedProducerFromSingleLegAlgo::selectPriVtxCompatibleWithTrack
bool selectPriVtxCompatibleWithTrack(const reco::Track &tk, std::vector< reco::Vertex > &selectedPriVtxCompatibleWithTrack)
Definition: PhotonConversionTrajectorySeedProducerFromSingleLegAlgo.cc:140
PhotonConversionTrajectorySeedProducerFromSingleLegAlgo::_countSeedTracks
size_t _countSeedTracks
Definition: PhotonConversionTrajectorySeedProducerFromSingleLegAlgo.h:66
PhotonConversionTrajectorySeedProducerFromSingleLegAlgo::loopOnTracks
void loopOnTracks()
Definition: PhotonConversionTrajectorySeedProducerFromSingleLegAlgo.cc:101
f
double f[11][100]
Definition: MuScleFitUtils.cc:78
PrintRecoObjects::print
void print(std::stringstream &ss, const SiStripCluster &clus)
Definition: PrintRecoObjects.cc:5
SeedingHitSet
Definition: SeedingHitSet.h:6
edm::isNotFinite
constexpr bool isNotFinite(T x)
Definition: isFinite.h:9
convertSQLitetoXML_cfg.output
output
Definition: convertSQLitetoXML_cfg.py:32
PhotonConversionTrajectorySeedProducerFromSingleLegAlgo::_IdealHelixParameters
IdealHelixParameters _IdealHelixParameters
Definition: PhotonConversionTrajectorySeedProducerFromSingleLegAlgo.h:85
PhotonConversionTrajectorySeedProducerFromSingleLegAlgo::_maxDZSigmas
double _maxDZSigmas
Definition: PhotonConversionTrajectorySeedProducerFromSingleLegAlgo.h:63
PhotonConversionTrajectorySeedProducerFromSingleLegAlgo::token_bs
edm::EDGetTokenT< reco::BeamSpot > token_bs
Definition: PhotonConversionTrajectorySeedProducerFromSingleLegAlgo.h:69
reco::VertexCollection
std::vector< Vertex > VertexCollection
collection of Vertex objects
Definition: VertexFwd.h:9
edm::LogInfo
Definition: MessageLogger.h:254
PhotonConversionTrajectorySeedProducerFromSingleLegAlgo::vertexHandle
edm::Handle< reco::VertexCollection > vertexHandle
Definition: PhotonConversionTrajectorySeedProducerFromSingleLegAlgo.h:87
reco::TrackBase::vx
double vx() const
x coordinate of the reference point on track
Definition: TrackBase.h:626
IdealHelixParameters::setData
void setData(const reco::Track *track, const math::XYZVector &refPoint=math::XYZVector(0, 0, 0))
sqr
int sqr(const T &t)
Definition: pfalgo_common_ref.h:9
cms::cuda::assert
assert(be >=bs)
edm::second
U second(std::pair< T, U > const &p)
Definition: ParameterSet.cc:215
PhotonConversionTrajectorySeedProducerFromSingleLegAlgo::theRegionProducer
std::unique_ptr< GlobalTrackingRegionProducerFromBeamSpot > theRegionProducer
Definition: PhotonConversionTrajectorySeedProducerFromSingleLegAlgo.h:58
reco::TrackBase::px
double px() const
x coordinate of momentum vector
Definition: TrackBase.h:611
PhotonConversionTrajectorySeedProducerFromSingleLegAlgo::ss
std::stringstream ss
Definition: PhotonConversionTrajectorySeedProducerFromSingleLegAlgo.h:92
edm::ParameterSet::getUntrackedParameter
T getUntrackedParameter(std::string const &, T const &) const
training_settings.idx
idx
Definition: training_settings.py:16
singleTopDQM_cfi.setup
setup
Definition: singleTopDQM_cfi.py:37
PhotonConversionTrajectorySeedProducerFromSingleLegAlgo::_beamSpotInputTag
edm::InputTag _beamSpotInputTag
Definition: PhotonConversionTrajectorySeedProducerFromSingleLegAlgo.h:67
PV3DBase::z
T z() const
Definition: PV3DBase.h:61
reco::TrackBase::pt
double pt() const
track transverse momentum
Definition: TrackBase.h:608
IdealMagneticFieldRecord
Definition: IdealMagneticFieldRecord.h:11
UNLIKELY
#define UNLIKELY(x)
Definition: Likely.h:21
reco::TrackBase::py
double py() const
y coordinate of momentum vector
Definition: TrackBase.h:614
reco::TrackBase::vz
double vz() const
z coordinate of the reference point on track
Definition: TrackBase.h:632
IdealHelixParameters::setMagnField
void setMagnField(const MagneticField *magnField)
Definition: IdealHelixParameters.h:31
PhotonConversionTrajectorySeedProducerFromSingleLegAlgo::theHitsGenerator
std::unique_ptr< CombinedHitPairGeneratorForPhotonConversion > theHitsGenerator
Definition: PhotonConversionTrajectorySeedProducerFromSingleLegAlgo.h:56
mathSSE::sqrt
T sqrt(T t)
Definition: SSEVec.h:19
PhotonConversionTrajectorySeedProducerFromSingleLegAlgo::regions
Regions regions
Definition: PhotonConversionTrajectorySeedProducerFromSingleLegAlgo.h:74
reco::BeamSpot
Definition: BeamSpot.h:21
OrderedSeedingHits
Definition: OrderedSeedingHits.h:7
edm::ESHandle< MagneticField >
PhotonConversionTrajectorySeedProducerFromSingleLegAlgo::myEsetup
const edm::EventSetup * myEsetup
Definition: PhotonConversionTrajectorySeedProducerFromSingleLegAlgo.h:78
edm::ConsumesCollector::consumes
EDGetTokenT< ProductType > consumes(edm::InputTag const &tag)
Definition: ConsumesCollector.h:49
PhotonConversionTrajectorySeedProducerFromSingleLegAlgo::token_vertex
edm::EDGetTokenT< reco::VertexCollection > token_vertex
Definition: PhotonConversionTrajectorySeedProducerFromSingleLegAlgo.h:68
reco::TrackBase::dz
double dz() const
dz parameter (= dsz/cos(lambda)). This is the track z0 w.r.t (0,0,0) only if the refPoint is close to...
Definition: TrackBase.h:602
edm::Event::getByToken
bool getByToken(EDGetToken token, Handle< PROD > &result) const
Definition: Event.h:528
GlobalPoint
Global3DPoint GlobalPoint
Definition: GlobalPoint.h:10
reco::TrackBase::covariance
CovarianceMatrix covariance() const
return track covariance matrix
Definition: TrackBase.h:683
reco::BeamSpot::position
const Point & position() const
position
Definition: BeamSpot.h:59
Point3DBase< float, GlobalTag >
b
double b
Definition: hdecay.h:118
IdealHelixParameters::GetTangentPoint
math::XYZVector GetTangentPoint() const
Definition: IdealHelixParameters.h:38
IdealHelixParameters::GetMomentumAtTangentPoint
math::XYZVector GetMomentumAtTangentPoint() const
Definition: IdealHelixParameters.h:39
PhotonConversionTrajectorySeedProducerFromSingleLegAlgo::seedCollection
TrajectorySeedCollection * seedCollection
Definition: PhotonConversionTrajectorySeedProducerFromSingleLegAlgo.h:54
PhotonConversionTrajectorySeedProducerFromSingleLegAlgo::token_refitter
edm::EDGetTokenT< reco::TrackCollection > token_refitter
Definition: PhotonConversionTrajectorySeedProducerFromSingleLegAlgo.h:70
badGlobalMuonTaggersAOD_cff.vtx
vtx
Definition: badGlobalMuonTaggersAOD_cff.py:5
CombinedHitPairGeneratorForPhotonConversion
Definition: CombinedHitPairGeneratorForPhotonConversion.h:28
edm::ParameterSet
Definition: ParameterSet.h:36
math::XYZPoint
XYZPointD XYZPoint
point in space with cartesian internal representation
Definition: Point3D.h:12
edm::LogError
Definition: MessageLogger.h:183
a
double a
Definition: hdecay.h:119
PhotonConversionTrajectorySeedProducerFromSingleLegAlgo::recoBeamSpotHandle
edm::Handle< reco::BeamSpot > recoBeamSpotHandle
Definition: PhotonConversionTrajectorySeedProducerFromSingleLegAlgo.h:82
OrderedSeedingHits::size
virtual unsigned int size() const =0
KineDebug3::count
void count()
Definition: KinematicConstrainedVertexUpdatorT.h:21
math::XYZVector
XYZVectorD XYZVector
spatial vector with cartesian internal representation
Definition: Vector3D.h:31
reco::TrackBase::dzError
double dzError() const
error on dz
Definition: TrackBase.h:731
PhotonConversionTrajectorySeedProducerFromSingleLegAlgo::loopOnPriVtx
void loopOnPriVtx(const reco::Track &tk, const std::vector< reco::Vertex > &selectedPriVtxCompatibleWithTrack)
Definition: PhotonConversionTrajectorySeedProducerFromSingleLegAlgo.cc:203
PVValHelper::dy
Definition: PVValidationHelpers.h:49
PhotonConversionTrajectorySeedProducerFromSingleLegAlgo::_applyTkVtxConstraint
bool _applyTkVtxConstraint
Definition: PhotonConversionTrajectorySeedProducerFromSingleLegAlgo.h:65
PhotonConversionTrajectorySeedProducerFromSingleLegAlgo::theSilentOnClusterCheck
bool theSilentOnClusterCheck
Definition: PhotonConversionTrajectorySeedProducerFromSingleLegAlgo.h:61
get
#define get
PhotonConversionTrajectorySeedProducerFromSingleLegAlgo::_primaryVtxInputTag
edm::InputTag _primaryVtxInputTag
Definition: PhotonConversionTrajectorySeedProducerFromSingleLegAlgo.h:67
PhotonConversionTrajectorySeedProducerFromSingleLegAlgo::IR
Regions::const_iterator IR
Definition: PhotonConversionTrajectorySeedProducerFromSingleLegAlgo.h:73
edm::ParameterSet::getParameter
T getParameter(std::string const &) const
PhotonConversionTrajectorySeedProducerFromSingleLegAlgo::theSeedCreator
std::unique_ptr< SeedForPhotonConversion1Leg > theSeedCreator
Definition: PhotonConversionTrajectorySeedProducerFromSingleLegAlgo.h:57
PhotonConversionTrajectorySeedProducerFromSingleLegAlgo::_maxNumSelVtx
size_t _maxNumSelVtx
Definition: PhotonConversionTrajectorySeedProducerFromSingleLegAlgo.h:64
reco::TrackBase::vy
double vy() const
y coordinate of the reference point on track
Definition: TrackBase.h:629
PhotonConversionTrajectorySeedProducerFromSingleLegAlgo::rejectTrack
bool rejectTrack(const reco::Track &track)
Definition: PhotonConversionTrajectorySeedProducerFromSingleLegAlgo.cc:228
HLT_2018_cff.region
region
Definition: HLT_2018_cff.py:81479
ptmin
double ptmin
Definition: HydjetWrapper.h:84
PhotonConversionTrajectorySeedProducerFromSingleLegAlgo::inspectTrack
bool inspectTrack(const reco::Track *track, const TrackingRegion &region, math::XYZPoint &primaryVertexPoint)
Definition: PhotonConversionTrajectorySeedProducerFromSingleLegAlgo.cc:285
TrackingRegion
Definition: TrackingRegion.h:38
photonAnalyzer_cfi.rMin
rMin
Definition: photonAnalyzer_cfi.py:90
HLT_2018_cff.track
track
Definition: HLT_2018_cff.py:10352
reco::TrackBase::pz
double pz() const
z coordinate of momentum vector
Definition: TrackBase.h:617
PhotonConversionTrajectorySeedProducerFromSingleLegAlgo::theClusterCheck
ClusterChecker theClusterCheck
Definition: PhotonConversionTrajectorySeedProducerFromSingleLegAlgo.h:60
PhotonConversionTrajectorySeedProducerFromSingleLegAlgo::_vtxMinDoF
double _vtxMinDoF
Definition: PhotonConversionTrajectorySeedProducerFromSingleLegAlgo.h:63
funct::abs
Abs< T >::type abs(const T &t)
Definition: Abs.h:22
PhotonConversionTrajectorySeedProducerFromSingleLegAlgo::myEvent
const edm::Event * myEvent
Definition: PhotonConversionTrajectorySeedProducerFromSingleLegAlgo.h:79
EgammaValidation_Wenu_cff.sel
sel
Definition: EgammaValidation_Wenu_cff.py:33
edm::HandleBase::isValid
bool isValid() const
Definition: HandleBase.h:70
event
Definition: event.py:1
event
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
ClusterChecker::tooManyClusters
size_t tooManyClusters(const edm::Event &e) const
Definition: ClusterChecker.cc:44
PV3DBase::perp
T perp() const
Definition: PV3DBase.h:69
PhotonConversionTrajectorySeedProducerFromSingleLegAlgo::magField
const MagneticField * magField
Definition: PhotonConversionTrajectorySeedProducerFromSingleLegAlgo.h:81
edm::InputTag
Definition: InputTag.h:15
PVValHelper::dx
Definition: PVValidationHelpers.h:48
reco::TrackCollection
std::vector< Track > TrackCollection
collection of Tracks
Definition: TrackFwd.h:14
reco::Vertex
Definition: Vertex.h:35
PhotonConversionTrajectorySeedProducerFromSingleLegAlgo::po
PrintRecoObjects po
Definition: PhotonConversionTrajectorySeedProducerFromSingleLegAlgo.h:90
SeedForPhotonConversion1Leg
Definition: SeedForPhotonConversion1Leg.h:20
MillePedeFileConverter_cfg.e
e
Definition: MillePedeFileConverter_cfg.py:37
GlobalTrackingRegionProducerFromBeamSpot
Definition: GlobalTrackingRegionProducerFromBeamSpot.h:16