ViewVC Help
View File | Revision Log | Show Annotations | Root Listing
root/cvsroot/UserCode/UfCode/UserArea/StatTools/qStarCI.cc
Revision: 1.1
Committed: Wed Dec 8 10:57:12 2010 UTC (14 years, 4 months ago) by kkotov
Content type: text/plain
Branch: MAIN
CVS Tags: V2012-H-02, V2012-01-00, V2011-01-01, V2011-01-00, AnnaDimuon, V01-00-01, V01-00-00, HEAD
Log Message:
*** empty log message ***

File Contents

# Content
1 #include<math.h>
2 #include<stdlib.h>
3 #include<iostream>
4
5 using namespace std;
6
7 extern "C" {
8 void pyinit_(char *, char*, char*, double*, int, int, int);
9 void pystat_(int *);
10 void pylist_(int *);
11 void pyevnt_(void);
12 void pyckbd_(void);
13 void initpydata_(void);
14
15 extern struct {
16 int msel, mselpd, msub[500], kfin[81][2];
17 double ckin[200];
18 } pysubs_;
19
20 extern struct {
21 int mstu[200];
22 double paru[200];
23 int mstj[200];
24 double parj[200];
25 } pydat1_;
26
27 extern struct {
28 int kchg[4][500];
29 double pmas[4][500], parf[2000], vckm[4][4];
30 } pydat2_;
31
32 extern struct {
33 int mdcy[3][500], mdme[2][8000];
34 double brat[8000];
35 int kfdp[5][8000];
36 } pydat3_;
37
38 extern struct {
39 int mstp[200];
40 double parp[200];
41 int msti[200];
42 double pari[200];
43 } pypars_;
44
45 extern struct {
46 int itcm[100];
47 double rtcm[100];
48 } pytcsm_;
49
50 const int pyjets_maxn = 4000;
51 extern struct {
52 int n, npad, k[5][pyjets_maxn];
53 double p[5][pyjets_maxn], v[5][pyjets_maxn];
54 } pyjets_;
55
56 extern struct {
57 int mrpy[6];
58 double rrpy[100];
59 } pydatr_;
60 }
61
62 int main(int argc, char *argv[]){
63 // Initialize defaults:
64 double lambda = atof(argv[1]);
65 double mqStar = atof(argv[2]);
66 double f = atof(argv[3]);
67 double fp = atof(argv[4]);
68 double fs = atof(argv[5]);
69
70 initpydata_(); pyckbd_();
71 // Random seed:
72 pydatr_.mrpy[0] = 300;
73 // Q* contact interaction cards:
74 pysubs_.msel = 0;
75 pysubs_.msub[146] = 0; // d*
76 pysubs_.msub[147] = 0; // u*
77 pysubs_.msub[166] = 1; // u* ci
78 pysubs_.msub[167] = 1; // d* ci
79 pydat2_.pmas[0][342] = mqStar; // mass if d*
80 pydat2_.pmas[0][343] = mqStar; // mass of u*
81 pytcsm_.rtcm[41] = lambda; // Lambda = mass
82 pytcsm_.rtcm[43] = f; // f
83 pytcsm_.rtcm[44] = fp; // fp
84 pytcsm_.rtcm[45] = fs; // fs
85 pydat3_.mdme[0][288] = 0;
86 pydat3_.mdme[0][289] = 0;
87 pydat3_.mdme[0][290] = 0;
88 pydat3_.mdme[0][291] = 0;
89 pydat3_.mdme[0][292] = 0;
90 pydat3_.mdme[0][293] = 0;
91 pydat3_.mdme[0][294] = 0;
92 pydat3_.mdme[0][295] = 0;
93 pydat3_.mdme[0][296] = 0;
94 pydat3_.mdme[0][297] = 0;
95 pydat3_.mdme[0][298] = 0;
96 pydat3_.mdme[0][299] = 0;
97 pydat3_.mdme[0][300] = 0;
98 pydat3_.mdme[0][301] = 0;
99 pydat3_.mdme[0][302] = 0;
100 pydat3_.mdme[0][303] = 0;
101 pydat3_.mdme[0][304] = 0;
102 pydat3_.mdme[0][305] = 0;
103 pydat3_.mdme[0][306] = 0;
104 pydat3_.mdme[0][307] = 1; // 1
105 pydat3_.mdme[0][308] = 0;
106 pydat3_.mdme[0][309] = 0;
107
108 pydat3_.mdme[0][189] = 0;
109 pydat3_.mdme[0][190] = 0;
110 pydat3_.mdme[0][191] = 0;
111 pydat3_.mdme[0][192] = 0;
112 pydat3_.mdme[0][193] = 0;
113 pydat3_.mdme[0][194] = 0;
114 pydat3_.mdme[0][195] = 0;
115 pydat3_.mdme[0][196] = 0;
116 pydat3_.mdme[0][197] = 0;
117 pydat3_.mdme[0][198] = 0;
118 pydat3_.mdme[0][199] = 0;
119 pydat3_.mdme[0][200] = 0;
120 pydat3_.mdme[0][201] = 0;
121 pydat3_.mdme[0][202] = 0;
122 pydat3_.mdme[0][203] = 0;
123 pydat3_.mdme[0][204] = 0;
124 pydat3_.mdme[0][205] = 0;
125 pydat3_.mdme[0][206] = 0;
126 pydat3_.mdme[0][207] = 0;
127 pydat3_.mdme[0][208] = 0;
128
129 pydat3_.mdme[0][173] = 0;
130 pydat3_.mdme[0][174] = 0;
131 pydat3_.mdme[0][175] = 0;
132 pydat3_.mdme[0][176] = 0;
133 pydat3_.mdme[0][177] = 0;
134 pydat3_.mdme[0][178] = 0;
135 pydat3_.mdme[0][181] = 0;
136 pydat3_.mdme[0][182] = 0;
137 pydat3_.mdme[0][183] = 1;
138 pydat3_.mdme[0][184] = 0;
139 pydat3_.mdme[0][185] = 0;
140 pydat3_.mdme[0][186] = 0;
141 pydat3_.mdme[0][187] = 0;
142
143 pydat3_.mdme[0][4070] = 0;
144 pydat3_.mdme[0][4071] = 0;
145 pydat3_.mdme[0][4072] = 1;
146 pydat3_.mdme[0][4073] = 0;
147 pydat3_.mdme[0][4074] = 0;
148 pydat3_.mdme[0][4075] = 0;
149 pydat3_.mdme[0][4076] = 1;
150 pydat3_.mdme[0][4077] = 0;
151
152 // pysubs_.ckin[0] = 60.;
153 // pysubs_.ckin[1] = 120.;
154 // Pythia's D6T UE cards:
155 pydat1_.mstj[10] = 3;
156 pydat1_.mstj[21] = 2;
157 pydat1_.parj[70] = 10;
158 pypars_.mstp[1] = 1;
159 pypars_.mstp[32] = 0;
160 pypars_.mstp[50] = 10042;
161 pypars_.mstp[51] = 2;
162 pypars_.mstp[80] = 1;
163 pypars_.mstp[81] = 4;
164 pydat1_.mstu[20] = 1;
165 pypars_.parp[81] = 1.8387;
166 pypars_.parp[88] = 1960.;
167 pypars_.parp[82] = 0.5;
168 pypars_.parp[83] = 0.4;
169 pypars_.parp[89] = 0.16;
170 pypars_.parp[66] = 2.5;
171 pypars_.parp[84] = 1.0;
172 pypars_.parp[85] = 1.0;
173 pypars_.parp[61] = 1.25;
174 pypars_.parp[63] = 0.2;
175 pypars_.mstp[90] = 1;
176 pypars_.parp[90] = 2.1;
177 pypars_.parp[92] = 15.0;
178
179 // Pythia ProQ20 UE cards:
180 /* pydat1_.mstu[20] = 1;
181 pydat1_.mstj[21] = 2;
182 pydat1_.parj[70] = 10.;
183 pypars_.mstp[1] = 1;
184 pypars_.mstp[32] = 0;
185 pypars_.mstp[50] = 7;
186 pypars_.mstp[51] = 1;
187 pypars_.mstp[80] = 1;
188 pypars_.mstp[81] = 4;
189 pydat1_.parj[0] = 0.073;
190 pydat1_.parj[1] = 0.2;
191 pydat1_.parj[2] = 0.94;
192 pydat1_.parj[3] = 0.032;
193 pydat1_.parj[10] = 0.31;
194 pydat1_.parj[11] = 0.4;
195 pydat1_.parj[12] = 0.54;
196 pydat1_.parj[24] = 0.63;
197 pydat1_.parj[25] = 0.12;
198 pydat1_.mstj[10] = 5;
199 pydat1_.parj[20] = 0.313;
200 pydat1_.parj[40] = 0.49;
201 pydat1_.parj[41] = 1.2;
202 pydat1_.parj[45] = 1.0;
203 pydat1_.parj[46] = 1.0;
204 pypars_.parp[61] = 2.9;
205 pypars_.parp[63] = 0.14;
206 pypars_.parp[66] = 2.65;
207 pypars_.parp[81] = 1.9;
208 pypars_.parp[82] = 0.83;
209 pypars_.parp[83] = 0.6;
210 pypars_.parp[84] = 0.86;
211 pypars_.parp[85] = 0.93;
212 pypars_.parp[88] = 1800.;
213 pypars_.parp[89] = 0.22;
214 pypars_.mstp[90] = 1;
215 pypars_.parp[90] = 2.1;
216 pypars_.parp[92] = 5.0;
217 */
218 double energy = 7000.;
219 char opt1[4] = "CMS";
220 char opt2[2] = "p";
221 char opt3[2] = "p";
222
223 pyinit_(opt1,opt2,opt3,&energy,3,1,1);
224
225 for(int event=0; event<1000; event++){
226 pyevnt_();
227 if(event%1000==0) cout<<"Event = "<<event<<endl;
228 /* int index=0;
229 for(index=0; index<pyjets_.n; index++)
230 if( pyjets_.k[2][index]==0 && abs(pyjets_.k[1][index])==23 ) break; // Original Z0
231 kine.px = pyjets_.p[0][index];
232 kine.py = pyjets_.p[1][index];
233 kine.pt = sqrt(kine.px*kine.px+kine.py*kine.py);
234 kine.pz = pyjets_.p[2][index];
235 kine.E = pyjets_.p[3][index];
236 kine.m = pyjets_.p[4][index];
237 dy.Fill();
238 pt.Fill(kine.pt);
239 */ }
240 int stat=1;
241 pystat_(&stat);
242
243 // stat=13;
244 // pylist_(&stat);
245 return 0;
246 }