Skip to content

Commit 7ea1949

Browse files
authored
Merge pull request #57 from gaskelld/NPS
NPS - pi0
2 parents 0d45a21 + b2902a2 commit 7ea1949

18 files changed

+1233
-170
lines changed

Makefile

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@ D = $(simcdir)/fdss/
2626

2727
OBJ1 = target.o brem.o gauss1.o NtupleInit.o NtupleClose.o enerloss_new.o
2828
OBJ2 = radc.o init.o dbase.o physics_kaon.o physics_pion.o physics_delta.o physics_proton.o loren.o sf_lookup.o
29-
OBJ3 = semi_physics.o rho_physics.o rho_decay.o generate_rho.o trg_track.o semi_dilution.o
29+
OBJ3 = semi_physics.o rho_physics.o rho_decay.o generate_rho.o trg_track.o semi_dilution.o pizero_decay.o
3030
OBJ4 = results_write.o event.o call_ranlux.o jacobians.o F1F2IN21_v1.0.o
3131
OBJ5 = $(A)musc.o $(A)musc_ext.o $(A)project.o $(A)transp.o
3232
OBJ6 = $(A)rotate_haxis.o $(A)rotate_vaxis.o $(A)locforunt.o

NtupleInit.f

Lines changed: 54 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -162,6 +162,32 @@ subroutine NtupleInit(filename)
162162
NtupleTag(m) = 'saghai' ! 54
163163
m = m+1
164164
NtupleTag(m) = 'factor' ! 55
165+
endif
166+
if(doing_pizero) then
167+
m = m+1
168+
NtupleTag(m) = 'xcal_gamma1'
169+
m = m+1
170+
NtupleTag(m) = 'ycal_gamma1'
171+
m = m+1
172+
NtupleTag(m) = 'Egamma1'
173+
m = m+1
174+
NtupleTag(m) = 'Pgamma1x'
175+
m = m+1
176+
NtupleTag(m) = 'Pgamma1y'
177+
m = m+1
178+
NtupleTag(m) = 'Pgamma1z'
179+
m = m+1
180+
NtupleTag(m) = 'xcal_gamma2'
181+
m = m+1
182+
NtupleTag(m) = 'ycal_gamma2'
183+
m = m+1
184+
NtupleTag(m) = 'Egamma2'
185+
m = m+1
186+
NtupleTag(m) = 'Pgamma2x'
187+
m = m+1
188+
NtupleTag(m) = 'Pgamma2y'
189+
m = m+1
190+
NtupleTag(m) = 'Pgamma2z'
165191
endif
166192
else if (doing_semi.or.doing_rho) then
167193
m = m+1
@@ -234,7 +260,34 @@ subroutine NtupleInit(filename)
234260
m = m+1
235261
NtupleTag(m) = 'Thrho' ! 58 or 66
236262
endif
237-
263+
264+
if(doing_pizero) then
265+
m = m+1
266+
NtupleTag(m) = 'xcal_gamma1'
267+
m = m+1
268+
NtupleTag(m) = 'ycal_gamma1'
269+
m = m+1
270+
NtupleTag(m) = 'Egamma1'
271+
m = m+1
272+
NtupleTag(m) = 'Pgamma1x'
273+
m = m+1
274+
NtupleTag(m) = 'Pgamma1y'
275+
m = m+1
276+
NtupleTag(m) = 'Pgamma1z'
277+
m = m+1
278+
NtupleTag(m) = 'xcal_gamma2'
279+
m = m+1
280+
NtupleTag(m) = 'ycal_gamma2'
281+
m = m+1
282+
NtupleTag(m) = 'Egamma2'
283+
m = m+1
284+
NtupleTag(m) = 'Pgamma2x'
285+
m = m+1
286+
NtupleTag(m) = 'Pgamma2y'
287+
m = m+1
288+
NtupleTag(m) = 'Pgamma2z'
289+
endif
290+
238291
else if (doing_hyd_elast .or. doing_deuterium .or. doing_heavy) then
239292
m = m+1
240293
NtupleTag(m) = 'corrsing' ! 34

calo/mc_calo.f

Lines changed: 42 additions & 33 deletions
Original file line numberDiff line numberDiff line change
@@ -36,10 +36,16 @@ subroutine mc_calo (p_spec, th_spec, dpp, x, y, z, dxdz, dydz,
3636

3737

3838
! No collimator, but use collimator dimensions to define calo
39-
parameter (h_entr = 64.0)
40-
parameter (v_entr = 109.0)
41-
parameter (h_exit = 64.0)
42-
parameter (v_exit = 109.0)
39+
c parameter (h_entr = 64.0)
40+
c parameter (v_entr = 109.0)
41+
c parameter (h_exit = 64.0)
42+
c parameter (v_exit = 109.0)
43+
44+
c Use size of NPS
45+
parameter (h_entr = 30.75) ! calorimeter 1/2 width: (30 blocks * 2.05 cm)/2.0
46+
parameter (v_entr = 36.9) ! calorimeter 1/2 height: (36 blocks * 2.05 cm)/2.0
47+
parameter (h_exit = 30.75)
48+
parameter (v_exit = 36.9)
4349

4450
! Math constants
4551

@@ -131,47 +137,50 @@ subroutine mc_calo (p_spec, th_spec, dpp, x, y, z, dxdz, dydz,
131137
goto 500
132138
endif
133139

134-
c Assume a position resolution of 0.5cm and energy resolution of 10%
135-
c
136-
x_fp = xs + 0.5 * gauss1(99.0)
137-
y_fp = ys + 0.5 * gauss1(99.0)
138-
ps = p*(1.0 + 0.10/sqrt(p/1000.0)*gauss1(99.0))
139-
write(*,*) ' elect mom = ',p,ps,(p-ps)/p
140-
dpps = (ps/p_spec-1.0)*100.0
141-
142-
143-
140+
c positions, angles at front
141+
x_fp = xs
142+
y_fp = ys
143+
dx_fp=dxdzs
144+
dy_fp=dydzs
144145

146+
C skip all this fow, after checking that we hit calorimeter, just fill output
147+
C with input-maybe add some smearing later.
148+
145149
c no difference between recon angle and "focal plane" angles
146150
c use the z position determined by the hadron arm to
147151
c correct the distance from the beam interaction point to the hit in the calo
148152
c
149-
delta_y = -prot_zbeam*stheta
150-
delta_z = prot_zbeam*ctheta
153+
c delta_y = -prot_zbeam*stheta
154+
c delta_z = prot_zbeam*ctheta
151155
c
152-
dx_fp = (x_fp-fry)/(drift_to_cal-delta_z)
153-
dy_fp = (y_fp-delta_y)/(drift_to_cal-delta_z)
156+
c dx_fp = (x_fp-fry)/(drift_to_cal-delta_z)
157+
c dy_fp = (y_fp-delta_y)/(drift_to_cal-delta_z)
154158

155159
! replace xs,ys,... with 'tracked' quantities.
156-
xs=x_fp
157-
ys=y_fp
158-
dxdzs=dx_fp
159-
dydzs=dy_fp
160+
c xs=x_fp
161+
c ys=y_fp
162+
c dxdzs=dx_fp
163+
c dydzs=dy_fp
160164

161165

162166
! Reconstruct target quantities.
163-
call mc_calo_recon(dpp_recon,dth_recon,dph_recon,y_recon,fry,delta_y,delta_z,drift_to_cal)
164-
165-
if (using_tgt_field) then
166-
ok = .TRUE.
167-
call track_to_tgt(dpp_recon,y_recon,dph_recon,dth_recon,-frx,-fry,
168-
> -p,sqrt(m2),ctheta,-stheta,prot_zbeam,-1,ok)
169-
endif
167+
c call mc_calo_recon(dpp_recon,dth_recon,dph_recon,y_recon,fry,delta_y,delta_z,drift_to_cal)
168+
c
169+
c if (using_tgt_field) then
170+
c ok = .TRUE.
171+
c call track_to_tgt(dpp_recon,y_recon,dph_recon,dth_recon,-frx,-fry,
172+
c > -p,sqrt(m2),ctheta,-stheta,prot_zbeam,-1,ok)
173+
c endif
170174
! Fill output to return to main code
171-
dpp = dpp_recon
172-
dxdz = dph_recon
173-
dydz = dth_recon
174-
y = y_recon
175+
c dpp = dpp_recon
176+
c dxdz = dph_recon
177+
c dydz = dth_recon
178+
c y = y_recon
179+
180+
c dpp = dpps
181+
c dxdz = dxdzs
182+
c dydz = dydzs
183+
c y = ys
175184
ok_spec = .true.
176185
caloSTOP_successes = caloSTOP_successes + 1
177186

0 commit comments

Comments
 (0)