1 | #ifndef _H_RecRPObject_
|
---|
2 | #define _H_RecRPObject_
|
---|
3 |
|
---|
4 | /*
|
---|
5 | * ---- Hector the simulator ----
|
---|
6 | * A fast simulator of particles through generic beamlines.
|
---|
7 | * J. de Favereau, X. Rouby ~~~ hector_devel@cp3.phys.ucl.ac.be
|
---|
8 | *
|
---|
9 | * http://www.fynu.ucl.ac.be/hector.html
|
---|
10 | *
|
---|
11 | * Centre de Physique des Particules et de Phénoménologie (CP3)
|
---|
12 | * Université Catholique de Louvain (UCL)
|
---|
13 | */
|
---|
14 |
|
---|
15 | /// \file H_RecRPObject.h
|
---|
16 | /// \brief Reconstructed information from objects detected by two roman pots
|
---|
17 |
|
---|
18 | #include "TF1.h"
|
---|
19 |
|
---|
20 | #include "H_BeamLine.h"
|
---|
21 |
|
---|
22 | #define NOT_YET_COMPUTED -666
|
---|
23 |
|
---|
24 | class H_RecRPObject {
|
---|
25 | public:
|
---|
26 | H_RecRPObject();
|
---|
27 | H_RecRPObject(const float, const float, H_AbstractBeamLine* );
|
---|
28 | H_RecRPObject(const H_RecRPObject&);
|
---|
29 | H_RecRPObject& operator=(const H_RecRPObject&);
|
---|
30 | ~H_RecRPObject() {if(f_1) delete f_1; if(f_2) delete f_2; if(g_1) delete g_1; if(g_2) delete g_2; if(d_1) delete d_1; if(d_2) delete d_2; if(k_1) delete k_1; if(k_2) delete k_2; if(l_1) delete l_1; if(l_2) delete l_2; };
|
---|
31 |
|
---|
32 | inline float getX1() const {return x1;};
|
---|
33 | inline float getX2() const {return x2;};
|
---|
34 | inline float getY1() const {return y1;};
|
---|
35 | inline float getY2() const {return y2;};
|
---|
36 | inline float getS1() const {return s1;};
|
---|
37 | inline float getS2() const {return s2;};
|
---|
38 |
|
---|
39 | float getTX();
|
---|
40 | float getTY();
|
---|
41 | float getE();
|
---|
42 | float getE(int );
|
---|
43 | float getQ2();
|
---|
44 | float getPt();
|
---|
45 |
|
---|
46 | void setPositions(const float, const float, const float, const float);
|
---|
47 | void setPosition_det1(const float, const float);
|
---|
48 | void setPosition_det2(const float, const float);
|
---|
49 | void setDetPos(const float, const float);
|
---|
50 | void setERange(const float, const float);
|
---|
51 | void computeERange();
|
---|
52 | void initialize();
|
---|
53 | void computeAll();
|
---|
54 |
|
---|
55 | protected:
|
---|
56 |
|
---|
57 | float emin, emax;
|
---|
58 | float x1, x2, y1, y2, s1, s2;
|
---|
59 | float txip, tyip, energy, q2, pt;
|
---|
60 | H_AbstractBeamLine* thebeam;
|
---|
61 | TF1* f_1, *f_2;
|
---|
62 | TF1* g_1, *g_2;
|
---|
63 | TF1* d_1, *d_2;
|
---|
64 | TF1* k_1, *k_2;
|
---|
65 | TF1* l_1, *l_2;
|
---|
66 | };
|
---|
67 |
|
---|
68 | #endif
|
---|