CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
Functions
GroupedCkfTrajectoryBuilder.cc File Reference
#include "RecoTracker/CkfPattern/interface/GroupedCkfTrajectoryBuilder.h"
#include "TrajectorySegmentBuilder.h"
#include "TrackingTools/DetLayers/interface/DetLayer.h"
#include "TrackingTools/PatternTools/interface/TrajMeasLessEstim.h"
#include "TrackingTools/KalmanUpdators/interface/KFUpdator.h"
#include "TrackingTools/KalmanUpdators/interface/Chi2MeasurementEstimator.h"
#include "TrackingTools/TrackFitters/interface/KFTrajectoryFitter.h"
#include "RecoTracker/CkfPattern/interface/GroupedTrajCandLess.h"
#include "TrackingTools/TrajectoryFiltering/interface/RegionalTrajectoryFilter.h"
#include "TrackingTools/PatternTools/interface/TempTrajectory.h"
#include "RecoTracker/MeasurementDet/interface/MeasurementTracker.h"
#include "TrackingTools/MeasurementDet/interface/LayerMeasurements.h"
#include "TrackingTools/Records/interface/TrackingComponentsRecord.h"
#include "TrackingTools/DetLayers/interface/DetGroup.h"
#include "RecoTracker/TkDetLayers/interface/GeometricSearchTracker.h"
#include "TrackingTools/Records/interface/TransientRecHitRecord.h"
#include "TrackingTools/TransientTrackingRecHit/interface/TransientTrackingRecHitBuilder.h"
#include "TrackingTools/PatternTools/interface/TrajectoryMeasurement.h"
#include "TrackingTools/PatternTools/interface/TrajectoryStateUpdator.h"
#include "TrackingTools/PatternTools/interface/Trajectory.h"
#include "TrackingTools/TrajectoryState/interface/BasicSingleTrajectoryState.h"
#include "FWCore/MessageLogger/interface/MessageLogger.h"
#include "TrackingTools/PatternTools/interface/TransverseImpactPointExtrapolator.h"
#include "TrackingTools/TrajectoryCleaning/interface/TrajectoryCleanerBySharedHits.h"
#include "TrackingTools/GeomPropagators/interface/HelixBarrelCylinderCrossing.h"
#include "TrackingTools/GeomPropagators/interface/HelixBarrelPlaneCrossingByCircle.h"
#include "TrackingTools/GeomPropagators/interface/HelixArbitraryPlaneCrossing.h"
#include <algorithm>
#include "TrackingTools/DetLayers/interface/BarrelDetLayer.h"
#include "TrackingTools/DetLayers/interface/ForwardDetLayer.h"

Go to the source code of this file.

Functions

std::string whatIsTheNextStep (TempTrajectory &traj, std::pair< TrajectoryStateOnSurface, std::vector< const DetLayer * > > &stateAndLayers)
 
std::string whatIsTheStateToUse (TrajectoryStateOnSurface &initial, TrajectoryStateOnSurface &stateToUse, const DetLayer *l)
 

Function Documentation

std::string whatIsTheNextStep ( TempTrajectory traj,
std::pair< TrajectoryStateOnSurface, std::vector< const DetLayer * > > &  stateAndLayers 
)

Definition at line 289 of file GroupedCkfTrajectoryBuilder.cc.

References TempTrajectory::lastLayer(), GloballyPositioned< T >::phi(), GloballyPositioned< T >::position(), Cylinder::radius(), ForwardDetLayer::specificSurface(), BarrelDetLayer::specificSurface(), and PV3DBase< T, PVType, FrameType >::z().

Referenced by GroupedCkfTrajectoryBuilder::advanceOneLayer().

289  {
290  std::stringstream buffer;
291  vector<const DetLayer*> & nl = stateAndLayers.second;
294  //B.M. TkLayerName layerName;
295  //B.M. buffer << "Started from " << layerName(traj.lastLayer())
296  const BarrelDetLayer* sbdl = dynamic_cast<const BarrelDetLayer*>(traj.lastLayer());
297  const ForwardDetLayer* sfdl = dynamic_cast<const ForwardDetLayer*>(traj.lastLayer());
298  if (sbdl) {
299  buffer << "Started from " << traj.lastLayer() << " r=" << sbdl->specificSurface().radius()
300  << " phi=" << sbdl->specificSurface().phi() << endl;
301  } else if (sfdl) {
302  buffer << "Started from " << traj.lastLayer() << " z " << sfdl->specificSurface().position().z()
303  << " phi " << sfdl->specificSurface().phi() << endl;
304  }
305  buffer << "Trying to go to";
306  for ( vector<const DetLayer*>::iterator il=nl.begin();
307  il!=nl.end(); il++){
308  //B.M. buffer << " " << layerName(*il) << " " << *il << endl;
309  const BarrelDetLayer* bdl = dynamic_cast<const BarrelDetLayer*>(*il);
310  const ForwardDetLayer* fdl = dynamic_cast<const ForwardDetLayer*>(*il);
311 
312  if (bdl) buffer << " r " << bdl->specificSurface().radius() << endl;
313  if (fdl) buffer << " z " << fdl->specificSurface().position().z() << endl;
314  //buffer << " " << *il << endl;
315  }
316  return buffer.str();
317 }
Scalar radius() const
Radius of the cylinder.
Definition: Cylinder.h:55
T z() const
Definition: PV3DBase.h:63
virtual const BoundDisk & specificSurface() const
virtual const BoundCylinder & specificSurface() const
Extension of the interface.
const DetLayer * lastLayer() const
Redundant method, returns the layer of lastMeasurement() .
const PositionType & position() const
std::string whatIsTheStateToUse ( TrajectoryStateOnSurface initial,
TrajectoryStateOnSurface stateToUse,
const DetLayer l 
)

Definition at line 319 of file GroupedCkfTrajectoryBuilder.cc.

References TrajectoryStateOnSurface::charge(), TrajectoryStateOnSurface::curvilinearError(), TrajectoryStateOnSurface::globalMomentum(), TrajectoryStateOnSurface::globalPosition(), i, CurvilinearTrajectoryError::matrix(), PV3DBase< T, PVType, FrameType >::perp(), PV3DBase< T, PVType, FrameType >::phi(), mathSSE::sqrt(), and PV3DBase< T, PVType, FrameType >::z().

Referenced by GroupedCkfTrajectoryBuilder::advanceOneLayer().

319  {
320  std::stringstream buffer;
321  buffer << "GCTB: starting from "
322  << " r / phi / z = " << stateToUse.globalPosition().perp()
323  << " / " << stateToUse.globalPosition().phi()
324  << " / " << stateToUse.globalPosition().z()
325  << " , pt / phi / pz /charge = "
326  << stateToUse.globalMomentum().perp() << " / "
327  << stateToUse.globalMomentum().phi() << " / "
328  << stateToUse.globalMomentum().z() << " / "
329  << stateToUse.charge()
330  << " for layer at "<< l << endl;
331  buffer << " errors:";
332  for ( int i=0; i<5; i++ ) buffer << " " << sqrt(stateToUse.curvilinearError().matrix()(i,i));
333  buffer << endl;
334 
335  //buffer << "GCTB: starting from r / phi / z = " << initial.globalPosition().perp()
336  //<< " / " << initial.globalPosition().phi()
337  //<< " / " << initial.globalPosition().z() << " , pt / pz = "
338  //<< initial.globalMomentum().perp() << " / "
339  //<< initial.globalMomentum().z() << " for layer at "
340  //<< l << endl;
341  //buffer << " errors:";
342  //for ( int i=0; i<5; i++ ) buffer << " " << sqrt(initial.curvilinearError().matrix()(i,i));
343  //buffer << endl;
344  return buffer.str();
345 }
int i
Definition: DBlmapReader.cc:9
T perp() const
Definition: PV3DBase.h:71
const CurvilinearTrajectoryError & curvilinearError() const
Geom::Phi< T > phi() const
Definition: PV3DBase.h:68
GlobalPoint globalPosition() const
T sqrt(T t)
Definition: SSEVec.h:46
T z() const
Definition: PV3DBase.h:63
const AlgebraicSymMatrix55 & matrix() const
GlobalVector globalMomentum() const