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 = 0
 
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 32 of file PhotonConversionTrajectorySeedProducerFromSingleLegAlgo.h.

Member Typedef Documentation

typedef Regions::const_iterator PhotonConversionTrajectorySeedProducerFromSingleLegAlgo::IR
private

Constructor & Destructor Documentation

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

Definition at line 17 of file PhotonConversionTrajectorySeedProducerFromSingleLegAlgo.cc.

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

19  :
23  theClusterCheck(conf.getParameter<edm::ParameterSet>("ClusterCheckPSet"), iC),
24  theSilentOnClusterCheck(conf.getParameter<edm::ParameterSet>("ClusterCheckPSet").getUntrackedParameter<bool>("silentClusterCheck",false)),
25  _vtxMinDoF(conf.getParameter<double>("vtxMinDoF")),
26  _maxDZSigmas(conf.getParameter<double>("maxDZSigmas")),
27  _maxNumSelVtx(conf.getParameter<uint32_t>("maxNumSelVtx")),
28  _applyTkVtxConstraint(conf.getParameter<bool>("applyTkVtxConstraint")),
30  _primaryVtxInputTag(conf.getParameter<edm::InputTag>("primaryVerticesTag")),
31  _beamSpotInputTag(conf.getParameter<edm::InputTag>("beamSpotInputTag"))
32 {
36 }
EDGetTokenT< ProductType > consumes(edm::InputTag const &tag)
T getParameter(std::string const &) const
T getUntrackedParameter(std::string const &, T const &) const
std::vector< Track > TrackCollection
collection of Tracks
Definition: TrackFwd.h:14
std::vector< Vertex > VertexCollection
collection of Vertex objects
Definition: VertexFwd.h:9
std::unique_ptr< CombinedHitPairGeneratorForPhotonConversion > theHitsGenerator
PhotonConversionTrajectorySeedProducerFromSingleLegAlgo::~PhotonConversionTrajectorySeedProducerFromSingleLegAlgo ( )

Definition at line 38 of file PhotonConversionTrajectorySeedProducerFromSingleLegAlgo.cc.

38  {
39 }

Member Function Documentation

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

Definition at line 42 of file PhotonConversionTrajectorySeedProducerFromSingleLegAlgo.cc.

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

Referenced by PhotonConversionTrajectorySeedProducerFromSingleLeg::produce().

42  {
43 
44  myEsetup = &setup;
45  myEvent = &event;
46 
47  assert(seedCollection==nullptr);
48 
50 
51 
52  size_t clustsOrZero = theClusterCheck.tooManyClusters(event);
53  if (clustsOrZero){
55  edm::LogError("TooManyClusters") << "Found too many clusters (" << clustsOrZero << "), bailing out.\n";
56  seedCollection= nullptr; return ;
57  }
58 
59 
60  edm::ESHandle<MagneticField> handleMagField;
61  setup.get<IdealMagneticFieldRecord>().get(handleMagField);
62  magField = handleMagField.product();
63  if (UNLIKELY(magField->inTesla(GlobalPoint(0.,0.,0.)).z()<0.01)){seedCollection= nullptr; return;}
64 
66 
67 
68  event.getByToken(token_vertex, vertexHandle);
69  if (!vertexHandle.isValid() || vertexHandle->empty()){
70  edm::LogError("PhotonConversionFinderFromTracks") << "Error! Can't get the product primary Vertex Collection "<< _primaryVtxInputTag << "\n";
71  seedCollection= nullptr; return;
72  }
73 
74  event.getByToken(token_bs,recoBeamSpotHandle);
75 
76 
77  regions = theRegionProducer->regions(event,setup);
78 
79 
80 
81  // find seeds
82  loopOnTracks();
83 
84 
85 #ifdef debugTSPFSLA
86  std::stringstream ss;
87  ss.str("");
88  ss << "\n++++++++++++++++++\n";
89  ss << "seed collection size " << seedCollection->size();
90  for (auto const & tjS : *seedCollection){
91  po.print(ss, tjS);
92  }
93  edm::LogInfo("debugTrajSeedFromSingleLeg") << ss.str();
94  //-------------------------------------------------
95 #endif
96 
97 
98  // clear memory
99  theHitsGenerator->clearCache();
100 
101  seedCollection = nullptr;
102 
103 }
void setMagnField(const MagneticField *magnField)
def setup(process, global_tag, zero_tesla=False)
Definition: GeneralSetup.py:2
return((rh^lh)&mask)
T z() const
Definition: PV3DBase.h:64
size_t tooManyClusters(const edm::Event &e) const
void print(std::stringstream &ss, const SiStripCluster &clus)
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
bool isValid() const
Definition: HandleBase.h:74
virtual GlobalVector inTesla(const GlobalPoint &gp) const =0
Field value ad specified global point, in Tesla.
std::unique_ptr< CombinedHitPairGeneratorForPhotonConversion > theHitsGenerator
T get() const
Definition: EventSetup.h:68
T const * product() const
Definition: ESHandle.h:84
#define UNLIKELY(x)
IdealHelixParameters* PhotonConversionTrajectorySeedProducerFromSingleLegAlgo::getIdealHelixParameters ( )
inline
bool PhotonConversionTrajectorySeedProducerFromSingleLegAlgo::inspectTrack ( const reco::Track track,
const TrackingRegion region,
math::XYZPoint primaryVertexPoint 
)
private

Definition at line 297 of file PhotonConversionTrajectorySeedProducerFromSingleLegAlgo.cc.

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

Referenced by loopOnPriVtx(), and rejectTrack().

297  {
298 
299  _IdealHelixParameters.setData(track,primaryVertexPoint);
300 
303  //this case means a null results on the _IdealHelixParameters side
304  return false;
305  }
306 
307  float rMin=3.; //cm
309  //this case means a track that has the tangent point nearby the primary vertex
310  // if the track is primary, this number tends to be the primary vertex itself
311  //Rejecting all the potential photon conversions having a "vertex" inside the beampipe
312  //We should not miss too much, seen that the conversions at the beam pipe are the better reconstructed
313  return false;
314  }
315 
316  float ptmin = 0.5;
317  float originRBound = 3;
318  float originZBound = 3.;
319 
320  GlobalPoint originPos;
324  );
325  float cotTheta;
328  }else{
330  cotTheta=99999.f;
331  else
332  cotTheta=-99999.f;
333  }
334  GlobalVector originBounds(originRBound,originRBound,originZBound);
335 
336  GlobalPoint pvtxPoint(primaryVertexPoint.x(),
337  primaryVertexPoint.y(),
338  primaryVertexPoint.z()
339  );
340 
341  ConversionRegion convRegion(originPos, pvtxPoint, cotTheta, track->thetaError(), -1*track->charge());
342 
343 #ifdef debugTSPFSLA
344  ss << "\nConversion Point " << originPos << " " << originPos.perp() << "\n";
345 #endif
346 
347  const OrderedSeedingHits & hitss = theHitsGenerator->run(convRegion, region, *myEvent, *myEsetup);
348 
349  unsigned int nHitss = hitss.size();
350 
351  if(nHitss==0)
352  return false;
353 
354 #ifdef debugTSPFSLA
355  ss << "\n nHitss " << nHitss << "\n";
356 #endif
357 
358  if (seedCollection->empty()) seedCollection->reserve(nHitss); // don't do multiple reserves in the case of multiple regions: it would make things even worse
359  // as it will cause N re-allocations instead of the normal log(N)/log(2)
360  for (unsigned int iHits = 0; iHits < nHitss; ++iHits) {
361 
362 #ifdef debugTSPFSLA
363  ss << "\n iHits " << iHits << "\n";
364 #endif
365  const SeedingHitSet & hits = hitss[iHits];
366  theSeedCreator->trajectorySeed(*seedCollection, hits, originPos, originBounds, ptmin, *myEsetup,convRegion.cotTheta(),ss);
367  }
368  return true;
369 }
void setData(const reco::Track *track, const math::XYZVector &refPoint=math::XYZVector(0, 0, 0))
T perp() const
Definition: PV3DBase.h:72
Global3DPoint GlobalPoint
Definition: GlobalPoint.h:10
math::XYZVector GetMomentumAtTangentPoint() const
bool isNotFinite(T x)
Definition: isFinite.h:10
math::XYZVector GetTangentPoint() const
Abs< T >::type abs(const T &t)
Definition: Abs.h:22
double f[11][100]
virtual unsigned int size() const =0
double ptmin
Definition: HydjetWrapper.h:90
std::unique_ptr< CombinedHitPairGeneratorForPhotonConversion > theHitsGenerator
int charge() const
track electric charge
Definition: TrackBase.h:600
double thetaError() const
error on theta
Definition: TrackBase.h:817
void PhotonConversionTrajectorySeedProducerFromSingleLegAlgo::loopOnPriVtx ( const reco::Track tk,
const std::vector< reco::Vertex > &  selectedPriVtxCompatibleWithTrack 
)
private

Definition at line 204 of file PhotonConversionTrajectorySeedProducerFromSingleLegAlgo.cc.

References _countSeedTracks, inspectTrack(), TrackingRegion::print(), regions, rejectTrack(), ss, and badGlobalMuonTaggersAOD_cff::vtx.

Referenced by loopOnTracks(), and selectPriVtxCompatibleWithTrack().

204  {
205 
206  bool foundAtLeastASeedCand=false;
207  for (auto const & vtx : selectedPriVtxCompatibleWithTrack){
208 
209  math::XYZPoint primaryVertexPoint=math::XYZPoint(vtx.position());
210 
211  for (IR ir=regions.begin(), irEnd=regions.end(); ir < irEnd; ++ir) {
212  const TrackingRegion & region = **ir;
213 
214 #ifdef debugTSPFSLA
215  ss << "[PrintRegion] " << region.print() << std::endl;
216 #endif
217 
218  //This if is just for the _countSeedTracks. otherwise
219  //inspectTrack(&tk,region, primaryVertexPoint);
220  //would be enough
221 
222  if(
223  inspectTrack(&tk,region, primaryVertexPoint)
224  and
225  !foundAtLeastASeedCand
226  ){
227  foundAtLeastASeedCand=true;
228  _countSeedTracks++;
229  }
230 
231  }
232  }
233 }
bool inspectTrack(const reco::Track *track, const TrackingRegion &region, math::XYZPoint &primaryVertexPoint)
XYZPointD XYZPoint
point in space with cartesian internal representation
Definition: Point3D.h:12
virtual std::string print() const
void PhotonConversionTrajectorySeedProducerFromSingleLegAlgo::loopOnTracks ( )
private

Definition at line 107 of file PhotonConversionTrajectorySeedProducerFromSingleLegAlgo.cc.

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

Referenced by find().

107  {
108 
109  //--- Get Tracks
111 
112  if(trackCollectionH.isValid()==0){
113  edm::LogError("MissingInput")<<" could not find track collecion in PhotonConversionTrajectorySeedProducerFromSingleLegAlgo";
114  return;
115  }
116 
117  size_t idx=0, sel=0;
119 
120 #ifdef debugTSPFSLA
121  ss.str("");
122 #endif
123 
124  for( reco::TrackCollection::const_iterator tr = trackCollectionH->begin();
125  tr != trackCollectionH->end(); tr++, idx++) {
126 
127 
128  if(rejectTrack(*tr)) continue;
129  std::vector<reco::Vertex> selectedPriVtxCompatibleWithTrack;
131  selectedPriVtxCompatibleWithTrack.push_back(*(vertexHandle->begin())); //Same approach as before
132  }else{
133  if(!selectPriVtxCompatibleWithTrack(*tr,selectedPriVtxCompatibleWithTrack)) continue;
134  }
135 
136  sel++;
137  loopOnPriVtx(*tr,selectedPriVtxCompatibleWithTrack);
138  }
139 #ifdef debugTSPFSLA
140  edm::LogInfo("debugTrajSeedFromSingleLeg") << ss.str();
141  edm::LogInfo("debugTrajSeedFromSingleLeg") << "Inspected " << sel << " tracks over " << idx << " tracks. \t # tracks providing at least one seed " << _countSeedTracks ;
142 #endif
143 }
bool getByToken(EDGetToken token, Handle< PROD > &result) const
Definition: Event.h:579
bool isValid() const
Definition: HandleBase.h:74
void loopOnPriVtx(const reco::Track &tk, const std::vector< reco::Vertex > &selectedPriVtxCompatibleWithTrack)
bool selectPriVtxCompatibleWithTrack(const reco::Track &tk, std::vector< reco::Vertex > &selectedPriVtxCompatibleWithTrack)
bool PhotonConversionTrajectorySeedProducerFromSingleLegAlgo::rejectTrack ( const reco::Track track)
private

Definition at line 236 of file PhotonConversionTrajectorySeedProducerFromSingleLegAlgo.cc.

References _IdealHelixParameters, ecalDrivenElectronSeedsParameters_cff::beamSpot, IdealHelixParameters::GetTangentPoint(), inspectTrack(), edm::HandleBase::isValid(), reco::BeamSpot::position(), recoBeamSpotHandle, hfnoseDigiStudy_cfi::rMin, and IdealHelixParameters::setData().

Referenced by loopOnPriVtx(), and loopOnTracks().

236  {
237 
241 
242  _IdealHelixParameters.setData(&track,beamSpot);
244  //this case means a null results on the _IdealHelixParameters side
245  return true;
246  }
247 
248  float rMin=2.; //cm
250  //this case means a track that has the tangent point nearby the primary vertex
251  // if the track is primary, this number tends to be the primary vertex itself
252  //Rejecting all the potential photon conversions having a "vertex" inside the beampipe
253  //We should not miss too much, seen that the conversions at the beam pipe are the better reconstructed
254  return true;
255  }
256  }
257 
258  //-------------------------------------------------------
259  /*
260  float maxPt2=64.; //Cut on pt^2 Indeed doesn't do almost nothing
261  if(track.momentum().Perp2() > maxPt2)
262  return true;
263  */
264  //-------------------------------------------------------
265  //Cut in the barrel eta region FIXME: to be extended to endcaps
266  /*
267  float maxEta=1.3;
268  if(fabs(track.eta()) > maxEta)
269  return true;
270  */
271  //-------------------------------------------------------
272  //Reject tracks that have a first valid hit in the pixel barrel/endcap layer/disk 1
273  //assume that the hits are aligned along momentum
274  /*
275  const reco::HitPattern& p=track.hitPattern();
276  for (int i=0; i<p.numberOfHits(); i++) {
277  uint32_t hit = p.getHitPattern(i);
278  // if the hit is valid and in pixel barrel, print out the layer
279  if (! p.validHitFilter(hit) ) continue;
280  if( (p.pixelBarrelHitFilter(hit) || p.pixelEndcapHitFilter(hit))
281  &&
282  p.getLayer(hit) == 1
283  )
284  return true;
285  else
286  break; //because the first valid hit is in a different layer
287  }
288  */
289  //-------------------------------------------------------
290 
291 
292  return false;
293 }
void setData(const reco::Track *track, const math::XYZVector &refPoint=math::XYZVector(0, 0, 0))
math::XYZVector GetTangentPoint() const
bool isValid() const
Definition: HandleBase.h:74
XYZVectorD XYZVector
spatial vector with cartesian internal representation
Definition: Vector3D.h:30
const Point & position() const
position
Definition: BeamSpot.h:62
bool PhotonConversionTrajectorySeedProducerFromSingleLegAlgo::selectPriVtxCompatibleWithTrack ( const reco::Track tk,
std::vector< reco::Vertex > &  selectedPriVtxCompatibleWithTrack 
)
private

Definition at line 146 of file PhotonConversionTrajectorySeedProducerFromSingleLegAlgo.cc.

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, loopOnPriVtx(), reco::TrackBase::pt(), reco::TrackBase::px(), reco::TrackBase::py(), reco::TrackBase::pz(), edm::second(), funct::sqr(), mathSSE::sqrt(), ss, vertexHandle, badGlobalMuonTaggersAOD_cff::vtx, reco::TrackBase::vx(), reco::TrackBase::vy(), and reco::TrackBase::vz().

Referenced by loopOnTracks().

146  {
147 
148  std::vector< std::pair< double, short> > idx;
149  short count=-1;
150 
151  double cosPhi=tk.px()/tk.pt();
152  double sinPhi=tk.py()/tk.pt();
153  double sphi2=tk.covariance(2,2);
154  double stheta2=tk.covariance(1,1);
155 
156  for ( const reco::Vertex& vtx : *vertexHandle){
157  count++;
158  if(vtx.ndof()<= _vtxMinDoF) continue;
159 
160  double _dz= tk.dz(vtx.position());
161  double _dzError=tk.dzError();
162 
163  double cotTheta=tk.pz()/tk.pt();
164  double dx = vtx.position().x();
165  double dy = vtx.position().y();
166  double sx2=vtx.covariance(0,0);
167  double sy2=vtx.covariance(1,1);
168 
169  double sxy2= sqr(cosPhi*cotTheta)*sx2+
170  sqr(sinPhi*cotTheta)*sy2+
171  sqr(cotTheta*(-dx*sinPhi+dy*cosPhi))*sphi2+
172  sqr((1+cotTheta*cotTheta)*(dx*cosPhi+dy*sinPhi))*stheta2;
173 
174  _dzError=sqrt(_dzError*_dzError+vtx.covariance(2,2)+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.
175 
176 #ifdef debugTSPFSLA
177  ss << " primary vtx " << vtx.position() << " \tk vz " << tk.vz() << " vx " << tk.vx() << " vy " << tk.vy() << " pz/pt " << tk.pz()/tk.pt() << " \t dz " << _dz << " \t " << _dzError << " sxy2 "<< sxy2<< " \t dz/dzErr " << _dz/_dzError<< std::endl;
178 #endif
179 
180  if(fabs(_dz)/_dzError > _maxDZSigmas) continue;
181 
182  idx.push_back(std::pair<double,short>(fabs(_dz),count));
183  }
184  if(idx.empty()) {
185 #ifdef debugTSPFSLA
186  ss << "no vertex selected " << std::endl;
187 #endif
188  return false;
189 }
190 
191  std::stable_sort(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 }
double px() const
x coordinate of momentum vector
Definition: TrackBase.h:660
U second(std::pair< T, U > const &p)
CovarianceMatrix covariance() const
return track covariance matrix
Definition: TrackBase.h:776
T sqrt(T t)
Definition: SSEVec.h:18
double pt() const
track transverse momentum
Definition: TrackBase.h:654
double pz() const
z coordinate of momentum vector
Definition: TrackBase.h:672
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:642
double dzError() const
error on dz
Definition: TrackBase.h:859
double vz() const
z coordinate of the reference point on track
Definition: TrackBase.h:702
double b
Definition: hdecay.h:120
double vy() const
y coordinate of the reference point on track
Definition: TrackBase.h:696
double a
Definition: hdecay.h:121
Square< F >::type sqr(const F &f)
Definition: Square.h:13
double py() const
y coordinate of momentum vector
Definition: TrackBase.h:666
double vx() const
x coordinate of the reference point on track
Definition: TrackBase.h:690

Member Data Documentation

bool PhotonConversionTrajectorySeedProducerFromSingleLegAlgo::_applyTkVtxConstraint
private
edm::InputTag PhotonConversionTrajectorySeedProducerFromSingleLegAlgo::_beamSpotInputTag
private
size_t PhotonConversionTrajectorySeedProducerFromSingleLegAlgo::_countSeedTracks
private
IdealHelixParameters PhotonConversionTrajectorySeedProducerFromSingleLegAlgo::_IdealHelixParameters
private
double PhotonConversionTrajectorySeedProducerFromSingleLegAlgo::_maxDZSigmas
private
size_t PhotonConversionTrajectorySeedProducerFromSingleLegAlgo::_maxNumSelVtx
private
edm::InputTag PhotonConversionTrajectorySeedProducerFromSingleLegAlgo::_primaryVtxInputTag
private
double PhotonConversionTrajectorySeedProducerFromSingleLegAlgo::_vtxMinDoF
private
const MagneticField* PhotonConversionTrajectorySeedProducerFromSingleLegAlgo::magField
private

Definition at line 85 of file PhotonConversionTrajectorySeedProducerFromSingleLegAlgo.h.

Referenced by find().

const edm::EventSetup* PhotonConversionTrajectorySeedProducerFromSingleLegAlgo::myEsetup
private

Definition at line 82 of file PhotonConversionTrajectorySeedProducerFromSingleLegAlgo.h.

Referenced by find(), and inspectTrack().

const edm::Event* PhotonConversionTrajectorySeedProducerFromSingleLegAlgo::myEvent
private
PrintRecoObjects PhotonConversionTrajectorySeedProducerFromSingleLegAlgo::po
private

Definition at line 94 of file PhotonConversionTrajectorySeedProducerFromSingleLegAlgo.h.

Referenced by find().

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

Definition at line 86 of file PhotonConversionTrajectorySeedProducerFromSingleLegAlgo.h.

Referenced by find(), and rejectTrack().

Regions PhotonConversionTrajectorySeedProducerFromSingleLegAlgo::regions
private

Definition at line 78 of file PhotonConversionTrajectorySeedProducerFromSingleLegAlgo.h.

Referenced by find(), and loopOnPriVtx().

TrajectorySeedCollection* PhotonConversionTrajectorySeedProducerFromSingleLegAlgo::seedCollection = 0
private

Definition at line 57 of file PhotonConversionTrajectorySeedProducerFromSingleLegAlgo.h.

Referenced by find(), and inspectTrack().

std::stringstream PhotonConversionTrajectorySeedProducerFromSingleLegAlgo::ss
private
const reco::BeamSpot* PhotonConversionTrajectorySeedProducerFromSingleLegAlgo::theBeamSpot
private
ClusterChecker PhotonConversionTrajectorySeedProducerFromSingleLegAlgo::theClusterCheck
private

Definition at line 64 of file PhotonConversionTrajectorySeedProducerFromSingleLegAlgo.h.

Referenced by find().

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

Definition at line 59 of file PhotonConversionTrajectorySeedProducerFromSingleLegAlgo.h.

Referenced by find(), and inspectTrack().

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

Definition at line 61 of file PhotonConversionTrajectorySeedProducerFromSingleLegAlgo.h.

Referenced by find().

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

Definition at line 65 of file PhotonConversionTrajectorySeedProducerFromSingleLegAlgo.h.

Referenced by find().

edm::EDGetTokenT<reco::BeamSpot> PhotonConversionTrajectorySeedProducerFromSingleLegAlgo::token_bs
private
edm::EDGetTokenT<reco::TrackCollection> PhotonConversionTrajectorySeedProducerFromSingleLegAlgo::token_refitter
private
edm::EDGetTokenT<reco::VertexCollection> PhotonConversionTrajectorySeedProducerFromSingleLegAlgo::token_vertex
private
edm::Handle<reco::TrackCollection> PhotonConversionTrajectorySeedProducerFromSingleLegAlgo::trackCollectionH
private
edm::Handle<reco::VertexCollection> PhotonConversionTrajectorySeedProducerFromSingleLegAlgo::vertexHandle
private