Warning, file /include/eicsmear/smear/Tracker.h was not indexed
or was modified since last indexation (in which case cross-reference links may be missing, inaccurate or erroneous).
0001
0002
0003
0004
0005
0006
0007
0008
0009
0010 #ifndef INCLUDE_EICSMEAR_SMEAR_TRACKER_H_
0011 #define INCLUDE_EICSMEAR_SMEAR_TRACKER_H_
0012
0013 #include <Rtypes.h> // For ClassDef
0014
0015 #include "eicsmear/smear/Distributor.h"
0016 #include "eicsmear/smear/Smear.h" // KinType
0017 #include "eicsmear/smear/Smearer.h"
0018
0019 namespace erhic {
0020
0021 class VirtualParticle;
0022
0023 }
0024
0025 namespace Smear {
0026
0027 class ParticleMCS;
0028
0029
0030
0031
0032
0033
0034
0035 class Tracker : public Smearer {
0036 public:
0037
0038
0039
0040 Tracker(double magneticField = 2., double nRadiationLengths = 0.01,
0041 double resolution = 0.001);
0042
0043
0044
0045
0046 virtual ~Tracker();
0047
0048
0049
0050
0051 virtual double Resolution(const erhic::VirtualParticle&) const;
0052
0053
0054
0055
0056
0057 void Smear(const erhic::VirtualParticle&, ParticleMCS&);
0058
0059
0060
0061
0062 virtual double L(const erhic::VirtualParticle&) const = 0;
0063
0064
0065
0066
0067
0068 virtual double LPrime(const erhic::VirtualParticle&) const = 0;
0069
0070
0071
0072
0073 virtual int NPoints(const erhic::VirtualParticle&) const = 0;
0074
0075
0076
0077
0078
0079 virtual bool Accepts(const erhic::VirtualParticle&) const = 0;
0080
0081
0082
0083
0084 virtual double GetThetaMin() const = 0;
0085
0086
0087
0088
0089 virtual double GetThetaMax() const = 0;
0090
0091
0092
0093
0094
0095
0096
0097 void SetVertexConstraint(bool constrain);
0098
0099 protected:
0100
0101
0102
0103
0104
0105
0106 virtual double MultipleScatteringContribution(
0107 const erhic::VirtualParticle&) const;
0108
0109
0110
0111
0112
0113
0114 virtual double IntrinsicContribution(const erhic::VirtualParticle&) const;
0115
0116 Int_t mFactor;
0117
0118 double mMagField;
0119 double mNRadLengths;
0120 double mSigmaRPhi;
0121 Distributor Distribution;
0122
0123 ClassDef(Smear::Tracker, 1)
0124 };
0125
0126 }
0127
0128 #endif