Back to home page

Project CMSSW displayed by LXR

 
 

    


File indexing completed on 2024-04-06 12:31:33

0001 #ifndef _CR_MULTIPLESCATTERINGUPDATOR_H_
0002 #define _CR_MULTIPLESCATTERINGUPDATOR_H_
0003 
0004 /** \class MultipleScatteringUpdator
0005  *  Adds effects from multiple scattering (standard Highland formula)
0006  *  to a trajectory state. Uses radiation length from medium properties.
0007  *  Ported from ORCA.
0008  *
0009  *  \author todorov, cerati
0010  */
0011 
0012 #include "TrackingTools/MaterialEffects/interface/MaterialEffectsUpdator.h"
0013 #include "FWCore/Utilities/interface/Visibility.h"
0014 
0015 class MultipleScatteringUpdator final : public MaterialEffectsUpdator {
0016   dso_export MultipleScatteringUpdator* clone() const override { return new MultipleScatteringUpdator(*this); }
0017 
0018 public:
0019   /// Specify assumed mass of particle for material effects.
0020   /// If ptMin > 0, then the rms muliple scattering angle will be calculated taking into account the uncertainty
0021   /// in the reconstructed track momentum. (By default, it is neglected). However, a lower limit on the possible
0022   /// value of the track Pt will be applied at ptMin, to avoid the rms multiple scattering becoming too big.
0023   MultipleScatteringUpdator(float mass, float ptMin = -1.) : MaterialEffectsUpdator(mass), thePtMin(ptMin) {}
0024   /// destructor
0025   ~MultipleScatteringUpdator() override {}
0026 
0027   // here comes the actual computation of the values
0028   void compute(const TrajectoryStateOnSurface&, const PropagationDirection, Effect& effect) const override;
0029 
0030 private:
0031   float thePtMin;
0032 };
0033 
0034 #endif