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(), edmPickEvents::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_FULL_cff::region, photonAnalyzer_cfi::rMin, seedCollection, IdealHelixParameters::setData(), OrderedSeedingHits::size(), ss, theHitsGenerator, theSeedCreator, and HLT_FULL_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_FULL_cff::region, regions, ss, and extraflags_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(), heavyIonCSV_trainingSettings::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_FULL_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, Phase1L1TJetProducer_cfi::cosPhi, submitPVResolutionJobs::count, reco::TrackBase::covariance(), PVValHelper::dx, PVValHelper::dy, reco::TrackBase::dz(), reco::TrackBase::dzError(), mps_fire::i, heavyIonCSV_trainingSettings::idx, reco::TrackBase::pt(), reco::TrackBase::px(), reco::TrackBase::py(), reco::TrackBase::pz(), edm::second(), Phase1L1TJetProducer_cfi::sinPhi, sqr(), mathSSE::sqrt(), ss, vertexHandle, extraflags_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:428
PhotonConversionTrajectorySeedProducerFromSingleLegAlgo::trackCollectionH
edm::Handle< reco::TrackCollection > trackCollectionH
Definition: PhotonConversionTrajectorySeedProducerFromSingleLegAlgo.h:76
pwdgSkimBPark_cfi.beamSpot
beamSpot
Definition: pwdgSkimBPark_cfi.py:5
HLT_FULL_cff.track
track
Definition: HLT_FULL_cff.py:11724
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:72
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
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:655
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:222
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:640
PhotonConversionTrajectorySeedProducerFromSingleLegAlgo::ss
std::stringstream ss
Definition: PhotonConversionTrajectorySeedProducerFromSingleLegAlgo.h:92
edm::ParameterSet::getUntrackedParameter
T getUntrackedParameter(std::string const &, T const &) const
edm::LogInfo
Log< level::Info, false > LogInfo
Definition: MessageLogger.h:125
singleTopDQM_cfi.setup
setup
Definition: singleTopDQM_cfi.py:37
PhotonConversionTrajectorySeedProducerFromSingleLegAlgo::_beamSpotInputTag
edm::InputTag _beamSpotInputTag
Definition: PhotonConversionTrajectorySeedProducerFromSingleLegAlgo.h:67
Phase1L1TJetProducer_cfi.cosPhi
cosPhi
Definition: Phase1L1TJetProducer_cfi.py:40
heavyIonCSV_trainingSettings.idx
idx
Definition: heavyIonCSV_trainingSettings.py:5
PV3DBase::z
T z() const
Definition: PV3DBase.h:61
reco::TrackBase::pt
double pt() const
track transverse momentum
Definition: TrackBase.h:637
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:643
reco::TrackBase::vz
double vz() const
z coordinate of the reference point on track
Definition: TrackBase.h:661
IdealHelixParameters::setMagnField
void setMagnField(const MagneticField *magnField)
Definition: IdealHelixParameters.h:31
PhotonConversionTrajectorySeedProducerFromSingleLegAlgo::theHitsGenerator
std::unique_ptr< CombinedHitPairGeneratorForPhotonConversion > theHitsGenerator
Definition: PhotonConversionTrajectorySeedProducerFromSingleLegAlgo.h:56
Phase1L1TJetProducer_cfi.sinPhi
sinPhi
Definition: Phase1L1TJetProducer_cfi.py:39
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:55
submitPVResolutionJobs.count
count
Definition: submitPVResolutionJobs.py:352
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:622
edm::Event::getByToken
bool getByToken(EDGetToken token, Handle< PROD > &result) const
Definition: Event.h:539
GlobalPoint
Global3DPoint GlobalPoint
Definition: GlobalPoint.h:10
reco::TrackBase::covariance
CovarianceMatrix covariance() const
return track covariance matrix
Definition: TrackBase.h:716
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
CombinedHitPairGeneratorForPhotonConversion
Definition: CombinedHitPairGeneratorForPhotonConversion.h:28
edm::ParameterSet
Definition: ParameterSet.h:47
math::XYZPoint
XYZPointD XYZPoint
point in space with cartesian internal representation
Definition: Point3D.h:12
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
edmPickEvents.event
event
Definition: edmPickEvents.py:273
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:778
HLT_FULL_cff.region
region
Definition: HLT_FULL_cff.py:88286
PhotonConversionTrajectorySeedProducerFromSingleLegAlgo::loopOnPriVtx
void loopOnPriVtx(const reco::Track &tk, const std::vector< reco::Vertex > &selectedPriVtxCompatibleWithTrack)
Definition: PhotonConversionTrajectorySeedProducerFromSingleLegAlgo.cc:203
PVValHelper::dy
Definition: PVValidationHelpers.h:50
PhotonConversionTrajectorySeedProducerFromSingleLegAlgo::_applyTkVtxConstraint
bool _applyTkVtxConstraint
Definition: PhotonConversionTrajectorySeedProducerFromSingleLegAlgo.h:65
edm::LogError
Log< level::Error, false > LogError
Definition: MessageLogger.h:123
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
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:658
extraflags_cff.vtx
vtx
Definition: extraflags_cff.py:19
PhotonConversionTrajectorySeedProducerFromSingleLegAlgo::rejectTrack
bool rejectTrack(const reco::Track &track)
Definition: PhotonConversionTrajectorySeedProducerFromSingleLegAlgo.cc:228
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
edm::ParameterSet::getParameter
T getParameter(std::string const &) const
Definition: ParameterSet.h:303
TrackingRegion
Definition: TrackingRegion.h:41
photonAnalyzer_cfi.rMin
rMin
Definition: photonAnalyzer_cfi.py:90
reco::TrackBase::pz
double pz() const
z coordinate of momentum vector
Definition: TrackBase.h:646
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
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:49
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