CMS 3D CMS Logo

Public Member Functions | Private Attributes

FullConvolutionWithMaterial Class Reference

#include <FullConvolutionWithMaterial.h>

List of all members.

Public Member Functions

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

Private Attributes

DeepCopyPointerByClone
< GsfMaterialEffectsUpdator
theMEUpdator

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().

                                                                           :
    theMEUpdator(aMEUpdator.clone()) {}
FullConvolutionWithMaterial::~FullConvolutionWithMaterial ( ) [inline]

Definition at line 22 of file FullConvolutionWithMaterial.h.

{};

Member Function Documentation

FullConvolutionWithMaterial* FullConvolutionWithMaterial::clone ( void  ) const [inline]

Clone.

Definition at line 35 of file FullConvolutionWithMaterial.h.

References FullConvolutionWithMaterial().

  {
    return new FullConvolutionWithMaterial(*this);
  }
const GsfMaterialEffectsUpdator& FullConvolutionWithMaterial::materialEffectsUpdator ( ) const [inline]

Access to material effects updator.

Definition at line 29 of file FullConvolutionWithMaterial.h.

References theMEUpdator.

  {
    return *theMEUpdator;
  }
TrajectoryStateOnSurface FullConvolutionWithMaterial::operator() ( const TrajectoryStateOnSurface tsos,
const PropagationDirection  propDir 
) const

Convolution using the GsfMaterialEffectsUpdator.

Definition at line 6 of file FullConvolutionWithMaterial.cc.

References TrajectoryStateOnSurface::components(), LaserDQM_cfg::input, TrajectoryStateOnSurface::isValid(), query::result, and theMEUpdator.

                                                                                   {
  //
  // decomposition of input state
  //
  typedef std::vector<TrajectoryStateOnSurface> MultiTSOS;  
  MultiTSOS input(tsos.components());
  //
  // vector of result states
  //
  MultiTrajectoryStateAssembler result;
  //
  // now add material effects to each component
  //
  for ( MultiTSOS::const_iterator iTsos=input.begin();
        iTsos!=input.end(); iTsos++ ) {
    //
    // add material
    //
    TrajectoryStateOnSurface updatedTSoS = 
      theMEUpdator->updateState(*iTsos,propDir);
    if ( updatedTSoS.isValid() )
      result.addState(updatedTSoS);
    else
      result.addInvalidState(iTsos->weight());
  }
  return result.combinedState();
}

Member Data Documentation

Definition at line 42 of file FullConvolutionWithMaterial.h.

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