CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
Functions
PFDisplacedVertexCandidateFinder.cc File Reference
#include "RecoParticleFlow/PFTracking/interface/PFDisplacedVertexCandidateFinder.h"
#include "DataFormats/GeometryVector/interface/GlobalVector.h"
#include "DataFormats/TrackReco/interface/Track.h"
#include "DataFormats/VertexReco/interface/Vertex.h"
#include "MagneticField/Engine/interface/MagneticField.h"

Go to the source code of this file.

Functions

ostream & operator<< (std::ostream &out, const PFDisplacedVertexCandidateFinder &a)
 

Function Documentation

ostream& operator<< ( std::ostream &  out,
const PFDisplacedVertexCandidateFinder a 
)

Definition at line 398 of file PFDisplacedVertexCandidateFinder.cc.

References PFDisplacedVertexCandidateFinder::dxy_, PFDisplacedVertexCandidateFinder::eventTracks_, PFDisplacedVertexCandidateFinder::nChi2_max_, dbtoconf::out, Pi, PFDisplacedVertexCandidateFinder::pt_min_, PFDisplacedVertexCandidateFinder::pt_min_prim_, PFDisplacedVertexCandidateFinder::pvtx_, mathSSE::sqrt(), and PFDisplacedVertexCandidateFinder::vertexCandidates().

398  {
399  if(! out) return out;
400 
401  out<<"====== Particle Flow Block Algorithm ======= ";
402  out<<endl;
403  out<<"number of unassociated elements : "<<a.eventTracks_.size()<<endl;
404  out<<endl;
405 
406  out << " Tracks selection based on " << std::endl;
407  out << " pvtx_ = " << a.pvtx_ << std::endl;
408  out << " fabs(dxy) < " << a.dxy_ << " and pt < "<< a.pt_min_prim_ << std::endl;
409  out << " nChi2 < " << a.nChi2_max_ << " and pt < "<< a.pt_min_ << std::endl;
410 
411  out<<endl;
412 
413 
415  ie != a.eventTracks_.end(); ie++) {
416 
417  double pt = (*ie).get()->pt();
418 
419  math::XYZPoint Pi = (*ie).get()->innerPosition();
420  math::XYZPoint Po = (*ie).get()->outerPosition();
421 
422  double innermost_radius = sqrt(Pi.x()*Pi.x() + Pi.y()*Pi.y() + Pi.z()*Pi.z());
423  double outermost_radius = sqrt(Po.x()*Po.x() + Po.y()*Po.y() + Po.z()*Po.z());
424  double innermost_rho = sqrt(Pi.x()*Pi.x() + Pi.y()*Pi.y());
425  double outermost_rho = sqrt(Po.x()*Po.x() + Po.y()*Po.y());
426 
427  out<<"ie = " << (*ie).key()
428  <<" pt = " << pt
429  <<" innermost hit radius = " << innermost_radius << " rho = " << innermost_rho
430  <<" outermost hit radius = " << outermost_radius << " rho = " << outermost_rho
431  <<endl;
432  }
433 
434 
435  const std::auto_ptr< reco::PFDisplacedVertexCandidateCollection >& vertexCandidates
436  = a.vertexCandidates();
437 
438  if(!vertexCandidates.get() ) {
439  out<<"vertexCandidates already transfered"<<endl;
440  }
441  else {
442  out<<"number of vertexCandidates : "<<vertexCandidates->size()<<endl;
443  out<<endl;
444 
445 
446  for(PFDisplacedVertexCandidateFinder::IBC ib=vertexCandidates->begin();
447  ib != vertexCandidates->end(); ib++)
448  ib->Dump();
449 
450 
451 
452  }
453 
454  return out;
455 }
const double Pi
std::list< reco::TrackBaseRef >::const_iterator IEC
T sqrt(T t)
Definition: SSEVec.h:46
tuple out
Definition: dbtoconf.py:99
reco::PFDisplacedVertexCandidateCollection::const_iterator IBC
const std::auto_ptr< reco::PFDisplacedVertexCandidateCollection > & vertexCandidates() const
XYZPointD XYZPoint
point in space with cartesian internal representation
Definition: Point3D.h:13
std::list< reco::TrackBaseRef > eventTracks_
The track refs.