CMS 3D CMS Logo

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

#include <FullConvolutionWithMaterial.h>

Public Member Functions

FullConvolutionWithMaterialclone () const
 Clone. More...
 
 FullConvolutionWithMaterial (const GsfMaterialEffectsUpdator &aMEUpdator)
 Constructor with GSF material effects updator and propagation direction. More...
 
const GsfMaterialEffectsUpdatormaterialEffectsUpdator () const
 Access to material effects updator. More...
 
TrajectoryStateOnSurface operator() (const TrajectoryStateOnSurface &, const PropagationDirection) const
 Convolution using the GsfMaterialEffectsUpdator. More...
 
 ~FullConvolutionWithMaterial ()
 

Private Attributes

DeepCopyPointerByClone< GsfMaterialEffectsUpdatortheMEUpdator
 

Detailed Description

Convolute a set of trajectory states with material effects.

Definition at line 15 of file FullConvolutionWithMaterial.h.

Constructor & Destructor Documentation

FullConvolutionWithMaterial::FullConvolutionWithMaterial ( const GsfMaterialEffectsUpdator aMEUpdator)
inline

Constructor with GSF material effects updator and propagation direction.

Definition at line 19 of file FullConvolutionWithMaterial.h.

Referenced by clone().

19  :
20  theMEUpdator(aMEUpdator.clone()) {}
DeepCopyPointerByClone< GsfMaterialEffectsUpdator > theMEUpdator
virtual GsfMaterialEffectsUpdator * clone() const =0
FullConvolutionWithMaterial::~FullConvolutionWithMaterial ( )
inline

Definition at line 22 of file FullConvolutionWithMaterial.h.

References operator()().

22 {};

Member Function Documentation

FullConvolutionWithMaterial* FullConvolutionWithMaterial::clone ( void  ) const
inline

Clone.

Definition at line 35 of file FullConvolutionWithMaterial.h.

References FullConvolutionWithMaterial().

Referenced by GsfTrajectorySmoother::GsfTrajectorySmoother().

36  {
37  return new FullConvolutionWithMaterial(*this);
38  }
FullConvolutionWithMaterial(const GsfMaterialEffectsUpdator &aMEUpdator)
Constructor with GSF material effects updator and propagation direction.
const GsfMaterialEffectsUpdator& FullConvolutionWithMaterial::materialEffectsUpdator ( ) const
inline

Access to material effects updator.

Definition at line 29 of file FullConvolutionWithMaterial.h.

References theMEUpdator.

30  {
31  return *theMEUpdator;
32  }
DeepCopyPointerByClone< GsfMaterialEffectsUpdator > theMEUpdator
TrajectoryStateOnSurface FullConvolutionWithMaterial::operator() ( const TrajectoryStateOnSurface tsos,
const PropagationDirection  propDir 
) const

Convolution using the GsfMaterialEffectsUpdator.

Definition at line 5 of file FullConvolutionWithMaterial.cc.

References MultiTrajectoryStateAssembler::addInvalidState(), MultiTrajectoryStateAssembler::addState(), MultiTrajectoryStateAssembler::combinedState(), TrajectoryStateOnSurface::components(), TrajectoryStateOnSurface::isValid(), mps_fire::result, theMEUpdator, and GsfMaterialEffectsUpdator::updateState().

Referenced by ~FullConvolutionWithMaterial().

6  {
7  //
8  // vector of result states
10  //
11  // now add material effects to each component
12  //
13  for (auto const & iTsos : tsos.components()) {
14  // add material
15  TrajectoryStateOnSurface updatedTSoS =
16  theMEUpdator->updateState(iTsos,propDir);
17  if ( updatedTSoS.isValid() )
18  result.addState(updatedTSoS);
19  else
20  result.addInvalidState(iTsos.weight());
21  }
22  return result.combinedState();
23 }
void addState(const TrajectoryStateOnSurface)
virtual TrajectoryStateOnSurface updateState(const TrajectoryStateOnSurface &TSoS, const PropagationDirection propDir) const
DeepCopyPointerByClone< GsfMaterialEffectsUpdator > theMEUpdator
void addInvalidState(const double)
Adds (the weight of an) invalid state to the list.
Components const & components() const

Member Data Documentation

DeepCopyPointerByClone<GsfMaterialEffectsUpdator> FullConvolutionWithMaterial::theMEUpdator
private

Definition at line 42 of file FullConvolutionWithMaterial.h.

Referenced by materialEffectsUpdator(), and operator()().