propagation of beam polarization setting to matrix.f

Asked by Bernd Stelzer

Hello,

A bit of a more technical question about the beam polarization setting and how it is propagated into the matrix.f ?

=> To explain: If I follow the MadGraph code for this setting, the configuration is done in the run_card.dat

#*********************************************************************
# Beam polarization from -100 (left-handed) to 100 (right-handed) *
#*********************************************************************
      0 = polbeam1 ! beam polarization for beam 1
      0 = polbeam2 ! beam polarization for beam 2

=> But then In setrun.f (first POL is set to 1)

C BEAM POLARIZATION
    REAL*8 POL(2)
    common/to_polarization/ POL
    data POL/1d0,1d0/

=> Then some logic for non-zero pol (does the common block for POL get updated?)
c************************************************************************
c Beam polarization
c************************************************************************
    call get_real (npara,param,value," polbeam1 " ,pb1,0d0)
    call get_real (npara,param,value," polbeam2 " ,pb2,0d0)

    if(pb1.ne.0d0.and.lp1.eq.0) pol(1)=sign(1+abs(pb1)/100d0,pb1)
    if(pb2.ne.0d0.and.lp2.eq.0) pol(2)=sign(1+abs(pb2)/100d0,pb2)

    if(pb1.ne.0.or.pb2.ne.0) write(*,*) 'Setting beam polarization ',
   $ sign((abs(pol(1))-1)*100,pol(1)),
   $ sign((abs(pol(2))-1)*100,pol(2))

=> I have now verified that polbeam1=polbeam2=0 in run_card.dat corresponds to POL(1)=POL(2)=1 in matrix.f
=> Is that intended?

If I use check_sa.f then POL(1)=POL(2)=0. I guess that is due to (as Johan explained) that check_sa.f
doesn't care about the run_card.dat. So I guess I am supposed to set it to POL(1)=POL(2)=1 for unpolarized beam?
Just seems a bit inconsistent in the definition? Thanks for your insight?
- Bernd

Question information

Language:
English Edit question
Status:
Answered
For:
MadGraph5_aMC@NLO Edit question
Assignee:
No assignee Edit question
Last query:
Last reply:
Revision history for this message
Johan Alwall (johan-alwall) said :
#1

Hello Berndt,

check_sa.f is intended to use with the standalone output mode, which doesn't use polarisation. In order to use it with madevent output, you will probably need to make quite a few additions. To answer your particular question, as you can see from the line you quote
pol(1)=sign(1+abs(pb1)/100d0,pb1)
etc,
the POL variable in madevent matrix.f goes from 0 to 2 (left-handed to right-handed). You can see in matrix.f how it is used.

All the best,
Johan

Can you help with this problem?

Provide an answer of your own, or ask Bernd Stelzer for more information if necessary.

To post a message you must log in.