11 #define _EX_ (45.9E-6)
12 #define _EY_ ( 2.6E-6)
15 #define _DPP_ (10.3E-4)
19 #define _EX_ (33.8E-6)
20 #define _EY_ ( 1.8E-6)
22 #define _DPP_ ( 9.1E-4)
26 #define _EX_ (12.4E-6)
27 #define _EY_ ( 5.5E-6)
29 #define _DPP_ ( 4.6E-4)
43 #define _SIGMA_CUT_ (10.0)
49 #define _BETA_X_ (475E3)
50 #define _BETA_Y_ (520E3)
54 gROOT->Macro(
"$VMCWORKDIR/gconfig/rootlogon.C");
57 gStyle->SetPadLeftMargin(0.13);
58 gStyle->SetPadBottomMargin(0.13);
61 TFile *
ff =
new TFile(
"simulation.root");
63 cbmsim->AddFriend(
"cbmsim",
"digitization.root");
65 TClonesArray *
rpHitArray =
new TClonesArray(
"EicTrackingDigiHitOrth2D");
66 cbmsim->SetBranchAddress(
"RpTrackingDigiHit", &rpHitArray);
67 TClonesArray *
b0HitArray =
new TClonesArray(
"EicTrackingDigiHitOrth2D");
68 cbmsim->SetBranchAddress(
"B0trackerTrackingDigiHit", &b0HitArray);
70 cbmsim->SetBranchAddress(
"MCTrack", &mcTrackArray);
72 TCanvas *
c1 =
new TCanvas(
"c1",
"c1", 0, 0, 800, 500);
74 TH1D *
th0 =
new TH1D(
"th0",
"", 250, 0., 25.);
75 th0->SetMinimum(0); th0->SetLineWidth(2); th0->SetLineColor(kBlack);
76 TH1D *
th1 =
new TH1D(
"th1",
"", 250, 0., 25.); th1->SetLineWidth(2); th1->SetLineColor(kGreen);
77 TH1D *
th2 =
new TH1D(
"th2",
"", 250, 0., 25.); th2->SetLineWidth(2); th2->SetLineColor(kRed);
78 TH1D *
th3 =
new TH1D(
"th3",
"", 250, 0., 25.); th3->SetLineWidth(2); th3->SetLineColor(kBlue);
84 TH1D *
pt0 =
new TH1D(
"pt0",
"" ,150, 0., 1.5);
85 pt0->SetLineColor(kBlack); pt0->SetMinimum(0); pt0->SetLineWidth(1);
86 TH1D *
pt1 =
new TH1D(
"pt1",
"", 150, 0., 1.5); pt1->SetLineWidth(3); pt1->SetLineColor(kGreen);
87 TH1D *
pt2 =
new TH1D(
"pt2",
"", 150, 0., 1.5); pt2->SetLineWidth(3); pt2->SetLineColor(kRed);
88 TH1D *
pt3 =
new TH1D(
"pt3",
"", 150, 0., 1.5); pt3->SetLineWidth(3); pt3->SetLineColor(kBlue);
91 TH1D *
tst =
new TH1D(
"tst",
"", 10000, -300., 300.);
102 TGeoRotation *
rw =
new TGeoRotation();
104 rw->RotateY(_22mrad_);
117 sigx = sqrt(sigx*sigx + sigp*sigp);
124 cbmsim->GetEntry(ev);
126 assert(mcTrackArray->GetEntriesFast() == 1);
129 if (mctrack->GetPdgCode() == 2212 && mctrack->GetMotherID() == -1) {
131 double arr[3], out[3]; arr[0] = pin.x(); arr[1] = pin.y(); arr[2] = pin.z();
133 rw->MasterToLocalVect(arr, out);
134 TVector3 psim(out), prec;
135 double theta = 1000*psim.Theta(), ptsim = psim.Pt();
136 printf(
"%d %d -> %7.2f %7.2f\n", b0HitArray->GetEntriesFast(), rpHitArray->GetEntriesFast(),
theta, psim.Mag());
137 th0->Fill(theta); pt0->Fill(ptsim);
138 if (!b0HitArray->GetEntriesFast() && rpHitArray->GetEntriesFast() == 2) {
145 for(
unsigned iq=0; iq<2; iq++) {
155 double qx = xl/
sigx, qy = yl/
sigy, q2d = sqrt(qx*qx+qy*qy);
209 if (b0HitArray->GetEntriesFast() == 4) {
217 pq3->GetXaxis()->SetTitle(
"Spectator proton momentum [GeV/c]");
218 pq3->GetXaxis()->SetTitleOffset(0.9);
219 pq3->GetXaxis()->SetLabelFont(52);
220 pq3->GetXaxis()->SetLabelSize(0.050);
221 pq3->GetXaxis()->SetTitleFont(52);
222 pq3->GetXaxis()->SetTitleSize(0.060);
224 pq3->GetYaxis()->SetTitle(
"Events");
225 pq3->GetYaxis()->SetTitleOffset(1.0);
226 pq3->GetYaxis()->SetLabelFont(52);
227 pq3->GetYaxis()->SetLabelSize(0.050);
228 pq3->GetYaxis()->SetTitleFont(52);
229 pq3->GetYaxis()->SetTitleSize(0.060);
231 thq3->GetXaxis()->SetTitle(
"Spectator proton theta [mrad]");
232 thq3->GetXaxis()->SetTitleOffset(0.9);
233 thq3->GetXaxis()->SetLabelFont(52);
234 thq3->GetXaxis()->SetLabelSize(0.050);
235 thq3->GetXaxis()->SetTitleFont(52);
236 thq3->GetXaxis()->SetTitleSize(0.060);
238 thq3->GetYaxis()->SetTitle(
"Events");
239 thq3->GetYaxis()->SetTitleOffset(1.0);
240 thq3->GetYaxis()->SetLabelFont(52);
241 thq3->GetYaxis()->SetLabelSize(0.050);
242 thq3->GetYaxis()->SetTitleFont(52);
243 thq3->GetYaxis()->SetTitleSize(0.060);
245 pthq3->GetXaxis()->SetTitle(
"Spectator proton momentum [GeV/c]");
246 pthq3->GetXaxis()->SetTitleOffset(0.9);
247 pthq3->GetXaxis()->SetLabelFont(52);
248 pthq3->GetXaxis()->SetLabelSize(0.050);
249 pthq3->GetXaxis()->SetTitleFont(52);
250 pthq3->GetXaxis()->SetTitleSize(0.060);
253 pthq3->GetYaxis()->SetTitle(
"Spectator proton theta [mrad]");
254 pthq3->GetYaxis()->SetTitleOffset(0.8);
255 pthq3->GetYaxis()->SetLabelFont(52);
256 pthq3->GetYaxis()->SetLabelSize(0.050);
257 pthq3->GetYaxis()->SetTitleFont(52);
258 pthq3->GetYaxis()->SetTitleSize(0.060);
262 th0->GetXaxis()->SetTitle(
"Leading proton theta [mrad]");
263 th0->GetXaxis()->SetTitleOffset(0.9);
264 th0->GetXaxis()->SetLabelFont(52);
265 th0->GetXaxis()->SetLabelSize(0.050);
266 th0->GetXaxis()->SetTitleFont(52);
267 th0->GetXaxis()->SetTitleSize(0.060);
269 th0->GetYaxis()->SetTitle(
"Events");
270 th0->GetYaxis()->SetTitleOffset(0.8);
271 th0->GetYaxis()->SetLabelFont(52);
272 th0->GetYaxis()->SetLabelSize(0.050);
273 th0->GetYaxis()->SetTitleFont(52);
274 th0->GetYaxis()->SetTitleSize(0.060);
279 pt0->GetXaxis()->SetTitle(
"DVCS proton P_{t} [GeV/c]");
280 pt0->GetXaxis()->SetTitleOffset(0.9);
281 pt0->GetXaxis()->SetLabelFont(52);
282 pt0->GetXaxis()->SetLabelSize(0.050);
283 pt0->GetXaxis()->SetTitleFont(52);
284 pt0->GetXaxis()->SetTitleSize(0.060);
286 pt0->GetYaxis()->SetTitle(
"Events");
287 pt0->GetYaxis()->SetTitleOffset(0.8);
288 pt0->GetYaxis()->SetLabelFont(52);
289 pt0->GetYaxis()->SetLabelSize(0.050);
290 pt0->GetYaxis()->SetTitleFont(52);
291 pt0->GetYaxis()->SetTitleSize(0.060);