Zero Cross Section Problem

Asked by Ting-Kuo

Dear CalcHEP authors,

I ran into a problem when trying to generate the following process:

p p -> j j W h

Attached is the batch file I used:

###############################################
# batch_file for CalcHEP #
# It has to be launched via #
# ./calchep_batch batch_file #
# Lines beginning with # are ignored. #
###############################################

Model: SM
Model changed: False
Gauge: unitary

Process: p,p->jet,jet,W,H

Composite: p=u,u~,d,d~,s,s~,c,c~,g
Composite: W=W+,W-
Composite: l=e-,e+,mu-,mu+
Composite: v=ve,ve~,vm,vm~
Composite: jet=u,u~,d,d~,s,s~,c,c~,g

pdf1: PDT:NNPDF23_lo_as_0130_qed(proton)
pdf2: PDT:NNPDF23_lo_as_0130_qed(proton)

p1: 50000
p2: 50000

Cut parameter: J(jet,jet)
Cut invert: False
Cut min: 0.4
Cut max:

Cut parameter: T(jet)
Cut invert: False
Cut min: 20
Cut max:

Cut parameter: UETA(jet)
Cut invert: False
Cut min: 3.0
Cut max: 5.0

Number of events (per run step): 10000
Filename: BP2
NTuple: False
Cleanup: False

Parallelization method: local
#Que: brody_main
#Walltime: 0.15
#Memory: 1
#email: name@address
#Max number of cpus: 2

Max number of nodes: 16
Max number of processes per node: 1

sleep time: 3
nice level : 19

nSess_1: 5
nCalls_1: 200000
nSess_2: 5
nCalls_2: 200000
###############################################

Since we're focusing on the forward and backward regions, we implemented a user-defined function which is basically the absolute value of pseudorapidity in usrfun.c:

###############################################
else if(name==strstr(name,"ETA(")) // name is started from "ETA("
    { //read p1
       int np=sscanf(name+4,"%[^)]",p1);
       for(i=nIn;i<nIn+nOut;i++)
       {
          if(strcmp(p1,pName[i])==0) //find position of particles
          { double * q1=pvect+4*i;
            double pp = sqrt(q1[1]*q1[1]+q1[2]*q1[2]+q1[3]*q1[3]);
            double eta = fabs(log((pp+q1[3])/(pp-q1[3])))/2.; // ETA
          }
       }
       return eta;
    }
###############################################

However, every time I ran the batch file, it always gave me exactly zero cross section.

Could you please give me a hint on the issue? Many thanks to you!

Question information

Language:
English Edit question
Status:
Solved
For:
CalcHEP Edit question
Assignee:
No assignee Edit question
Solved by:
Ting-Kuo
Solved:
Last query:
Last reply:
Revision history for this message
Alexander Belyaev (alexander.belyaev) said :
#1

Dear Ting-Kuo,

apologies for late reply.
The problem is that you are using 'jet' in usrfun.c , but this routine does not know
what is 'jet'
There are two solutions:

1. program usrfun.c respectively, so it will work for all particles in 'jet'
2. use the the easiest option -- "invert" cut option:

Cut parameter: N(jet)
Cut invert: True
Cut min: -3.0
Cut max: 3.0

Cut parameter: N(jet)
Cut invert: False
Cut min: -5.0
Cut max: 5.0

The combination of these two cuts will do exactly what you want.
Of course I would chose the second option, since it does not require programming usrfun.c

In case of more complicated cuts, which require programming of usrfunc.c,
please remember that this routine does not know
what is 'jet' , i.e. you get what you have programmed in this routine.

Regards,
Alexander

Revision history for this message
Ting-Kuo (nun3366) said :
#2

Dear Alexander,

Many thanks to your deliberate and helpful explanation! I have solved my problems now.

Best Regards,
Ting-Kuo