File indexing completed on 2024-12-10 02:31:53
0001 #ifndef IOMC_BeamProfileVtxGenerator_H
0002 #define IOMC_BeamProfileVtxGenerator_H
0003
0004
0005
0006
0007
0008
0009
0010
0011
0012 #include "IOMC/EventVertexGenerators/interface/BaseEvtVtxGenerator.h"
0013 #include <vector>
0014
0015 namespace CLHEP {
0016 class HepRandomEngine;
0017 }
0018
0019 class BeamProfileVtxGenerator : public BaseEvtVtxGenerator {
0020 public:
0021 BeamProfileVtxGenerator(const edm::ParameterSet& p);
0022
0023 BeamProfileVtxGenerator(const BeamProfileVtxGenerator& p) = delete;
0024
0025 BeamProfileVtxGenerator& operator=(const BeamProfileVtxGenerator& rhs) = delete;
0026 ~BeamProfileVtxGenerator() override;
0027
0028
0029 ROOT::Math::XYZTVector vertexShift(CLHEP::HepRandomEngine*) const override;
0030
0031 TMatrixD const* GetInvLorentzBoost() const override { return nullptr; }
0032
0033
0034 void sigmaX(double s = 1.0);
0035
0036 void sigmaY(double s = 1.0);
0037
0038
0039 void meanX(double m = 0) { fMeanX = m; }
0040
0041 void meanY(double m = 0) { fMeanY = m; }
0042
0043 void beamPos(double m = 0) { fMeanZ = m; }
0044
0045
0046 void eta(double m = 0);
0047
0048 void phi(double m = 0) { fPhi = m; }
0049
0050 void psi(double m = 999) { fPsi = m; }
0051
0052 void setType(bool m = true);
0053
0054 private:
0055 double fSigmaX, fSigmaY;
0056 double fMeanX, fMeanY, fMeanZ;
0057 double fEta, fPhi, fTheta;
0058
0059 double fPsi;
0060
0061 bool fType, ffile;
0062 int nBinx, nBiny;
0063 std::vector<double> fdistn;
0064 double fTimeOffset;
0065 };
0066
0067 #endif