Pluto v6.3.0
Loading...
Searching...
No Matches
PBeamLineSimulation.h
Go to the documentation of this file.
1
2#ifndef _PBEAMLINESIMULATION_H_
3#define _PBEAMLINESIMULATION_H_
4
5#include "PBeamSmearing.h"
6#include "PBulkInterface.h"
7#include "PProjector.h"
8
9#define MAX_NUM_BEAM_PARTICLES 1000
10
11
13
14 public:
17 PBeamLineSimulation(Char_t *id, Char_t *de);
18
19 PDistribution *Clone(const char *delme=NULL) const;
20
21 Bool_t Init(void);
22 Bool_t Prepare(void);
23
24 Bool_t InitBeamLine(char *filename);
25 Int_t AddDetector (char *name, Double_t distance);
26
27 Bool_t TargetIsElement(Int_t n);
28 void SetGlobalMomentum(Double_t p) {global_p = p;};
29
30 Bool_t AddEquation(char *command);
31 Bool_t AddHistogram(TH2 *histo, const char *command = "");
32 Bool_t Do(char *command) {return AddEquation(command);};
33 Bool_t Do(TH2 *histo, const char *command = "") {return AddHistogram(histo, command);};
34
35 void SetBeamtubeSize(Double_t _beamtube_size_x, Double_t _beamtube_size_y) {
36 beamtube_size_x = _beamtube_size_x;
37 beamtube_size_y = _beamtube_size_y;
38 };
39
40 private:
41
42 PParticle *beam, *mybeam;
43 PParticle *target, *mytarget;
44 PParticle *parent;
45
46 PParticle *beam_particles[MAX_NUM_BEAM_PARTICLES];
47 Int_t beam_id [MAX_NUM_BEAM_PARTICLES];
48 Int_t beam_counter;
49
50 Double_t *filter;
51 Double_t beamtube_size_x, beamtube_size_y; //size in mm
52
53 char *detector_name[MAX_NUM_BEAM_PARTICLES];
54 Double_t detector_distance[MAX_NUM_BEAM_PARTICLES];
55 Int_t detector_counter;
56
57 Int_t AddBeamParticle(char *name);
58 void MakeVars(void);
59
60 PProjector *projector;
61
62 //taken from the original code:
63 long double T11[51],T12[51],T13[51],T14[51],T16[51];
64 long double T111[51],T112[51],T113[51],T114[51],T116[51];
65 long double T122[51],T123[51],T124[51],T126[51];
66 long double T133[51],T134[51],T136[51];
67 long double T144[51],T146[51];
68 long double T166[51],along[51];
69
70 long double T21[51],T22[51],T23[51],T24[51],T26[51];
71 long double T211[51],T212[51],T213[51],T214[51],T216[51];
72 long double T222[51],T223[51],T224[51],T226[51];
73 long double T233[51],T234[51],T236[51];
74 long double T244[51],T246[51];
75 long double T266[51];
76
77 long double T31[51],T32[51],T33[51],T34[51],T36[51];
78 long double T311[51],T312[51],T313[51],T314[51],T316[51];
79 long double T322[51],T323[51],T324[51],T326[51];
80 long double T333[51],T334[51],T336[51];
81 long double T344[51],T346[51];
82 long double T366[51];
83
84 long double T41[51],T42[51],T43[51],T44[51],T46[51];
85 long double T411[51],T412[51],T413[51],T414[51],T416[51];
86 long double T422[51],T423[51],T424[51],T426[51];
87 long double T433[51],T434[51],T436[51];
88 long double T444[51],T446[51];
89 long double T466[51];
90
91 Int_t nelem;
92
93 char txt2[3];
94 char txt5[6];
95
96 long double z1;
97 long double z2;
98 long double z3;
99 long double z4;
100 long double z5;
101
102 long double xi;
103 long double xpi;
104 long double yi;
105 long double ypi;
106 long double dp;
107
108 Int_t iok;
109 long double xf;
110 long double yf;
111 long double xpf;
112 long double ypf;
113 long double xf1;
114 long double yf1;
115 long double xpf1;
116 long double ypf1;
117 long double xf2;
118 long double xpf2;
119 long double yf2;
120 long double ypf2;
121
122 long double aa;
123 long double sig11;
124 long double sig22;
125 long double r12;
126 long double sig33;
127 long double r13;
128 long double r23;
129 long double sig44;
130 long double r14;
131 long double r24;
132 long double r34;
133 long double sig55;
134 long double r15;
135 long double r25;
136 long double r35;
137 long double r45;
138 long double sig66;
139 long double r16;
140 long double r26;
141 long double r36;
142 long double r46;
143 long double r56;
144
145 Int_t ii;
146 Int_t ind1;
147 Int_t ind23;
148
149 Int_t num_target;
150
151 Double_t *in_xi;
152 Double_t *in_yi;
153 Double_t *in_dp;
154 Double_t *in_xpi;
155 Double_t *in_ypi;
156
157 Double_t out_xi[51];
158 Double_t out_yi[51];
159 Double_t out_dp[51];
160 Double_t out_xpi[51];
161 Double_t out_ypi[51];
162 Double_t global_p;
163
164 ClassDef(PBeamLineSimulation, 0) // General purpose beam line transport simulation
165};
166
167#endif
168
169
#define MAX_NUM_BEAM_PARTICLES
Bool_t Do(char *command)
void SetBeamtubeSize(Double_t _beamtube_size_x, Double_t _beamtube_size_y)
void SetGlobalMomentum(Double_t p)
Int_t AddDetector(char *name, Double_t distance)
Bool_t TargetIsElement(Int_t n)
Bool_t AddHistogram(TH2 *histo, const char *command="")
Bool_t Do(TH2 *histo, const char *command="")
PDistribution * Clone(const char *delme=NULL) const
Bool_t InitBeamLine(char *filename)
mydecay AddEquation("_f = 1; if ([rho0]->Pt() > 0.4) _f = 0.5;")
PParticle * p
Definition dp_mult.C:24
TString filename("eta_dalitz_a")
Int_t n
Definition etap+omeg.C:21
PParticle * target
Definition fermi_dd.C:9
PParticle * beam
TH1F * histo