EpIC 1.1.0
Monte Carlo generator for exclusive processes
Loading...
Searching...
No Matches
ExperimentalConditions.h
1/*
2 * ExperimentalConditions.h
3 *
4 * Created on: Feb 9, 2021
5 * Author: Pawel Sznajder (NCBJ)
6 */
7
8#ifndef BEANS_EXPERIMENTALCONDITIONS_H_
9#define BEANS_EXPERIMENTALCONDITIONS_H_
10
11#include <NumA/linear_algebra/vector/Vector3D.h>
12#include <string>
13
14#include "../types/ParticleType.h"
15
16namespace EPIC {
17class MonteCarloTask;
18} /* namespace EPIC */
19
20namespace EPIC {
21
29class ExperimentalConditions : public PARTONS::BaseObject {
30
31 static const std::string
32 EXPERIMENTAL_CONDITION_LEPTON_ENERGY;
33 static const std::string
34 EXPERIMENTAL_CONDITION_LEPTON_PARTICLE;
35 static const std::string
36 EXPERIMENTAL_CONDITION_LEPTON_HELICITY;
37 static const std::string
38 EXPERIMENTAL_CONDITION_HADRON_ENERGY;
39 static const std::string
40 EXPERIMENTAL_CONDITION_HADRON_PARTICLE;
41 static const std::string
42 EXPERIMENTAL_CONDITION_HADRON_POLARISATION;
44
45public:
50
54 ExperimentalConditions(double leptonEnergy, ParticleType::Type leptonType,
55 int leptonHelicity, double hadronEnergy,
56 ParticleType::Type hadronType,
57 const NumA::Vector3D &hadronPolarisation);
58
63
68
69 virtual std::string toString() const;
70
75
80
81 //********************************************************
82 //*** SETTERS AND GETTERS ********************************
83 //********************************************************
84
88 double getLeptonEnergy() const;
89
93 void setLeptonEnergy(double leptonEnergy);
94
99
104
108 int getLeptonHelicity() const;
109
113 void setLeptonHelicity(int leptonHelicity);
114
118 double getHadronEnergy() const;
119
123 void setHadronEnergy(double hadronEnergy);
124
129
134
138 const NumA::Vector3D &getHadronPolarisation() const;
139
143 void setHadronPolarisation(const NumA::Vector3D &hadronPolarisation);
144
145private:
146 double m_leptonEnergy;
147 ParticleType::Type m_leptonType;
148 int m_leptonHelicity;
149
150 double m_hadronEnergy;
151 ParticleType::Type m_hadronType;
152 NumA::Vector3D m_hadronPolarisation;
153};
154
155} /* namespace EPIC */
156
157#endif /* BEANS_EXPERIMENTALCONDITIONS_H_ */
Container to store experimental conditions.
Definition: ExperimentalConditions.h:29
void setHadronPolarisation(const NumA::Vector3D &hadronPolarisation)
ParticleType::Type getHadronType() const
void setHadronType(ParticleType::Type hadronType)
double getHadronEnergy() const
double getLeptonEnergy() const
static ExperimentalConditions fromTask(const MonteCarloTask &task)
double getLeptonEnergyFixedTargetEquivalent() const
ParticleType::Type getLeptonType() const
void setHadronEnergy(double hadronEnergy)
const NumA::Vector3D & getHadronPolarisation() const
ExperimentalConditions(const ExperimentalConditions &other)
void setLeptonType(ParticleType::Type leptonType)
void setLeptonEnergy(double leptonEnergy)
ExperimentalConditions(double leptonEnergy, ParticleType::Type leptonType, int leptonHelicity, double hadronEnergy, ParticleType::Type hadronType, const NumA::Vector3D &hadronPolarisation)
void setLeptonHelicity(int leptonHelicity)
Container to store information from xml scenario for a single task.
Definition: MonteCarloTask.h:23
Type
Definition: ParticleType.h:33