File indexing completed on 2025-04-02 08:47:06
0001
0002
0003
0004
0005
0006
0007
0008
0009
0010 #ifndef INCLUDE_EICSMEAR_SMEAR_BREMSSTRAHLUNG_H_
0011 #define INCLUDE_EICSMEAR_SMEAR_BREMSSTRAHLUNG_H_
0012
0013 #include <memory>
0014
0015 #include <TF1.h>
0016
0017 #include "eicsmear/smear/Device.h"
0018 #include "eicsmear/erhic/ParticleMC.h"
0019 #include "eicsmear/smear/ParticleMCS.h"
0020
0021 namespace erhic {
0022
0023 class VirtualParticle;
0024
0025 }
0026
0027 namespace Smear {
0028
0029
0030
0031
0032 struct Bremsstrahlung : public Device {
0033
0034
0035
0036
0037
0038
0039
0040 Bremsstrahlung(double epsilon = 0.01,
0041 double traversed = 10.,
0042 double radLength = 47.1);
0043
0044
0045
0046
0047 Bremsstrahlung(const Bremsstrahlung&);
0048
0049
0050
0051
0052 virtual Bremsstrahlung* Clone(Option_t* option = "not used") const;
0053
0054
0055
0056
0057 virtual void Smear(const erhic::VirtualParticle&, ParticleMCS&);
0058
0059 protected:
0060
0061
0062
0063
0064
0065
0066 double dSigmadK(double* x, double*);
0067
0068
0069
0070
0071 int NGamma();
0072
0073 void FixParticleKinematics(ParticleMCS&);
0074
0075
0076
0077
0078
0079 void SetParticle(const erhic::VirtualParticle&);
0080
0081
0082
0083
0084
0085
0086
0087
0088 bool SetupPDF();
0089
0090 std::unique_ptr<erhic::ParticleMC> mParticle;
0091
0092 double mKMin;
0093 double mKMax;
0094 double mEpsilon;
0095 double mTraversed;
0096 double mRadLength;
0097
0098 TF1* mPdf;
0099
0100 ClassDef(Smear::Bremsstrahlung, 1)
0101 };
0102
0103 }
0104
0105 #endif