CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
GsfCombinedMaterialEffectsUpdator.cc
Go to the documentation of this file.
2 #include<cassert>
3 
4 #include<iostream>
5 
7  GsfMaterialEffectsUpdator& elUpdator) :
8  GsfMaterialEffectsUpdator(msUpdator.mass(),msUpdator.size()*elUpdator.size()),
9  theMSUpdator(msUpdator.clone()),
10  theELUpdator(elUpdator.clone()) {}
11 
12 //
13 // Computation: combine updates on momentum and cov. matrix from the multiple
14 // scattering and energy loss updators and store them in private data members
15 //
17  const PropagationDirection propDir, Effect effects[]) const
18 {
19  Effect msEffects[theMSUpdator->size()];
20  theMSUpdator->compute(TSoS,propDir,msEffects);
21  Effect elEffects[theELUpdator->size()];
22  theELUpdator->compute(TSoS,propDir,elEffects);
23 
24  //
25  // combine the two multi-updates
26  //
27  uint32_t k=0;
28  for ( auto const & mse : msEffects )
29  for ( auto const & ele : elEffects)
30  effects[k++].combine(mse,ele);
31  assert(k==size());
32 }
33 
PropagationDirection
virtual void compute(const TrajectoryStateOnSurface &, const PropagationDirection, Effect[]) const
GsfCombinedMaterialEffectsUpdator(GsfMaterialEffectsUpdator &msUpdator, GsfMaterialEffectsUpdator &elUpdator)
Constructor from multiple scattering and energy loss updator.
int k[5][pyjets_maxn]
virtual void compute(const TrajectoryStateOnSurface &, const PropagationDirection, Effect effects[]) const =0
TEveGeoShape * clone(const TEveElement *element, TEveElement *parent)
Definition: eve_macros.cc:135
void combine(Effect const &e1, Effect const &e2)
DeepCopyPointerByClone< GsfMaterialEffectsUpdator > theMSUpdator
DeepCopyPointerByClone< GsfMaterialEffectsUpdator > theELUpdator
tuple size
Write out results.