Back to home page

Project CMSSW displayed by LXR

 
 

    


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

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