Back to home page

Project CMSSW displayed by LXR

 
 

    


File indexing completed on 2024-04-06 12:13:31

0001 
0002 c**********************************************************

0003 c***** setting the final state particles' information

0004 c***** mainly setting the color flow of the process

0005 c**********************************************************

0006       subroutine bcpythia(ipartic)
0007  
0008 c...double precision and integer declarations.

0009       implicit double precision(a-h, o-z)
0010       implicit integer(i-n)
0011 
0012 c...pythia common block.

0013       parameter (maxnup=500)
0014         common/pypars/mstp(200),parp(200),msti(200),pari(200)
0015       common/hepeup/nup,idprup,xwgtup,scalup,aqedup,aqcdup,idup(maxnup),
0016      &istup(maxnup),mothup(2,maxnup),icolup(2,maxnup),pup(5,maxnup),
0017      &vtimup(maxnup),spinup(maxnup)
0018       save /hepeup/
0019 
0020 c...the user's own transfer of information.

0021         common/colflow/amp2cf(10),smatval
0022         common/ptpass/ptmin,ptmax,crossmax,etamin,etamax,
0023      &  smin,smax,ymin,ymax,psetamin,psetamax
0024 c...color-octet.

0025       common/coloct/ioctet
0026 
0027 c...define number of partons - two incoming and three outgoing.

0028       nup=5
0029 
0030       if(ipartic.eq.21) then
0031 c...set up flavour and history of g + g -> b_c + b + cbar. 

0032        idup(1)= 21         ! gluon 1
0033        idup(2)= 21         ! gluon 2
0034       else
0035 c...set up flavour and history of q + \bar{q} -> b_c + b + cbar. 

0036          if(ipartic.eq.1) then
0037            idup(1)= 1      ! u 
0038          idup(2)= -1       ! \bar{u}
0039          end if
0040          if(ipartic.eq.2) then
0041            idup(1)= 2      ! d 
0042          idup(2)= -2       ! \bar{d}
0043          end if
0044          if(ipartic.eq.3) then
0045            idup(1)= 3      ! s 
0046          idup(2)= -3       ! \bar{s}
0047          end if
0048         end if
0049 
0050       idup(3)= 541   ! b_c+
0051       idup(4)= 5           ! b-quark
0052       idup(5)=-4           ! c-antiquark
0053 
0054 c...status codes.

0055 
0056       istup(1)=-1
0057       istup(2)=-1
0058       istup(3)= 1
0059       istup(4)= 1
0060       istup(5)= 1
0061 
0062 c...mother codes.

0063       
0064       mothup(1,1)=0     ! gluon 1 or q <-- proton 1
0065       mothup(2,1)=0      
0066       mothup(1,2)=0     ! gluon 2 or \bar{q} <-- proton 2
0067       mothup(2,2)=0      
0068       mothup(1,3)=1     ! bc+
0069       mothup(2,3)=2      
0070       mothup(1,4)=1     ! b
0071       mothup(2,4)=2      
0072       mothup(1,5)=1     !cbar
0073       mothup(2,5)=2
0074 
0075 c...seclect one of the three possible types of color flow at random, 

0076 c...according to its contribution to the square of amplitude.

0077       ranmat =smatval*pyr(0)
0078         icolnum=0
0079 
0080       if(ipartic.eq.21) then
0081           iuplimit=3
0082         else
0083           iuplimit=2
0084         end if
0085 
0086         if(ioctet.eq.1) then
0087           iuplimit=10
0088         end if
0089 
0090 110   icolnum=icolnum+1
0091       ranmat =ranmat-amp2cf(icolnum)
0092       if(icolnum.lt.iuplimit .and. ranmat.gt.1.0d-16) go to 110
0093 
0094       if(ipartic.eq.21) then
0095 c----------------

0096         if(ioctet.eq.0) then
0097 c...three color flow for color-singlet in the gluon-gluon fusion.

0098          if(icolnum.eq.1) then
0099         icolup(1,1)=502
0100         icolup(2,1)=501
0101           icolup(1,2)=503
0102           icolup(2,2)=502
0103         icolup(1,3)=0
0104           icolup(2,3)=0
0105         icolup(1,4)=503
0106         icolup(2,4)=0
0107         icolup(1,5)=0
0108         icolup(2,5)=501
0109        end if
0110 
0111          if(icolnum.eq.2) then
0112         icolup(1,1)=503
0113         icolup(2,1)=502
0114           icolup(1,2)=502
0115           icolup(2,2)=501
0116         icolup(1,3)=0
0117           icolup(2,3)=0
0118         icolup(1,4)=503
0119         icolup(2,4)=0
0120         icolup(1,5)=0
0121         icolup(2,5)=501 
0122        end if
0123 
0124          if(icolnum.eq.3) then
0125         icolup(1,1)=501
0126         icolup(2,1)=502
0127           icolup(1,2)=502
0128           icolup(2,2)=501
0129         icolup(1,3)=0
0130           icolup(2,3)=0
0131         icolup(1,4)=503
0132         icolup(2,4)=0
0133         icolup(1,5)=0
0134         icolup(2,5)=503
0135        end if
0136         end if
0137 
0138 c------the following is for color-octet and can be found in ref.

0139 c... hep-ph/0504017. however, in pythia, at the present, there is

0140 c... no color-octet meson, so practically, one might think the

0141 c... color-octet meson will emit a soft gluon with 100% and then 

0142 c... changes to a color singlet state. under such prescription,

0143 c... one may observe that the ten color flow are correspond to

0144 c... three independent flow.

0145       if(ioctet.eq.1) then
0146 c...ten color flow for color-octet in the gluon-gluon fusion.

0147          if(icolnum.eq.1) then
0148         icolup(1,1)=503
0149         icolup(2,1)=502
0150           icolup(1,2)=502
0151           icolup(2,2)=501
0152         icolup(1,3)=0
0153           icolup(2,3)=0
0154           icolup(1,4)=503
0155         icolup(2,4)=0
0156         icolup(1,5)=0
0157         icolup(2,5)=501
0158        end if
0159 
0160          if(icolnum.eq.2) then
0161         icolup(1,1)=502
0162         icolup(2,1)=501
0163           icolup(1,2)=503
0164           icolup(2,2)=502
0165         icolup(1,3)=0
0166           icolup(2,3)=0        
0167           icolup(1,4)=503
0168         icolup(2,4)=0
0169         icolup(1,5)=0
0170         icolup(2,5)=501
0171        end if
0172 
0173          if(icolnum.eq.3) then
0174         icolup(1,1)=503
0175         icolup(2,1)=502
0176           icolup(1,2)=502
0177           icolup(2,2)=501
0178         icolup(1,3)=0
0179           icolup(2,3)=0
0180           icolup(1,4)=503
0181         icolup(2,4)=0
0182         icolup(1,5)=0
0183         icolup(2,5)=501
0184        end if
0185 
0186          if(icolnum.eq.4) then
0187         icolup(1,1)=502
0188         icolup(2,1)=501
0189           icolup(1,2)=503
0190           icolup(2,2)=502
0191         icolup(1,3)=0
0192           icolup(2,3)=0        
0193           icolup(1,4)=503
0194         icolup(2,4)=0
0195         icolup(1,5)=0
0196         icolup(2,5)=501
0197        end if
0198 
0199          if(icolnum.eq.5) then
0200         icolup(1,1)=503
0201         icolup(2,1)=502
0202           icolup(1,2)=502
0203           icolup(2,2)=501
0204         icolup(1,3)=0
0205           icolup(2,3)=0        
0206         icolup(1,4)=503
0207         icolup(2,4)=0
0208         icolup(1,5)=0
0209         icolup(2,5)=501
0210        end if
0211 
0212          if(icolnum.eq.6) then
0213         icolup(1,1)=502
0214         icolup(2,1)=501
0215           icolup(1,2)=503
0216           icolup(2,2)=502
0217         icolup(1,3)=0
0218           icolup(2,3)=0        
0219           icolup(1,4)=503
0220         icolup(2,4)=0
0221         icolup(1,5)=0
0222         icolup(2,5)=501
0223        end if
0224 
0225          if(icolnum.eq.7) then
0226         icolup(1,1)=503
0227         icolup(2,1)=502
0228           icolup(1,2)=502
0229           icolup(2,2)=501
0230         icolup(1,3)=0
0231           icolup(2,3)=0        
0232           icolup(1,4)=503
0233         icolup(2,4)=0
0234         icolup(1,5)=0
0235         icolup(2,5)=501
0236        end if
0237 
0238          if(icolnum.eq.8) then
0239         icolup(1,1)=502
0240         icolup(2,1)=501
0241           icolup(1,2)=503
0242           icolup(2,2)=502
0243         icolup(1,3)=0
0244           icolup(2,3)=0        
0245           icolup(1,4)=503
0246         icolup(2,4)=0
0247         icolup(1,5)=0
0248         icolup(2,5)=501
0249        end if
0250 
0251          if(icolnum.eq.9) then
0252         icolup(1,1)=503
0253         icolup(2,1)=502
0254           icolup(1,2)=502
0255           icolup(2,2)=501
0256         icolup(1,3)=0
0257           icolup(2,3)=0        
0258           icolup(1,4)=503
0259         icolup(2,4)=0
0260         icolup(1,5)=0
0261         icolup(2,5)=501
0262        end if
0263 
0264          if(icolnum.eq.10) then
0265         icolup(1,1)=502
0266         icolup(2,1)=501
0267           icolup(1,2)=503
0268           icolup(2,2)=502
0269         icolup(1,3)=0
0270           icolup(2,3)=0        
0271           icolup(1,4)=503
0272         icolup(2,4)=0
0273         icolup(1,5)=0
0274         icolup(2,5)=501
0275        end if
0276         end if
0277 
0278 c--------the following is the theoretical color-flow from 

0279 c--------hep-ph/0504017.

0280 c      if(ioctet.eq.1) then

0281 c...three color flow for color-octet in the gluon-gluon fusion.

0282 c        if(icolnum.eq.1) then

0283 c        icolup(1,1)=503

0284 c        icolup(2,1)=502

0285 c         icolup(1,2)=502

0286 c         icolup(2,2)=501

0287 c        icolup(1,3)=504   ! bc in color-octet state.

0288 c         icolup(2,3)=503

0289 c         icolup(1,4)=504

0290 c        icolup(2,4)=0

0291 c        icolup(1,5)=0

0292 c        icolup(2,5)=501

0293 c       end if

0294 c

0295 c        if(icolnum.eq.2) then

0296 c        icolup(1,1)=502

0297 c        icolup(2,1)=501

0298 c         icolup(1,2)=503

0299 c         icolup(2,2)=502

0300 c        icolup(1,3)=504

0301 c         icolup(2,3)=503

0302 c         icolup(1,4)=504

0303 c        icolup(2,4)=0

0304 c        icolup(1,5)=0

0305 c        icolup(2,5)=501

0306 c       end if

0307 c

0308 c        if(icolnum.eq.3) then

0309 c        icolup(1,1)=503

0310 c        icolup(2,1)=502

0311 c         icolup(1,2)=501

0312 c         icolup(2,2)=504

0313 c        icolup(1,3)=502

0314 c         icolup(2,3)=503

0315 c         icolup(1,4)=504

0316 c        icolup(2,4)=0

0317 c        icolup(1,5)=0

0318 c        icolup(2,5)=501

0319 c       end if

0320 c

0321 c        if(icolnum.eq.4) then

0322 c        icolup(1,1)=501

0323 c        icolup(2,1)=504

0324 c         icolup(1,2)=503

0325 c         icolup(2,2)=502

0326 c        icolup(1,3)=502

0327 c         icolup(2,3)=503

0328 c         icolup(1,4)=504

0329 c        icolup(2,4)=0

0330 c        icolup(1,5)=0

0331 c        icolup(2,5)=501

0332 c       end if

0333 c

0334 c        if(icolnum.eq.5) then

0335 c        icolup(1,1)=503

0336 c        icolup(2,1)=502

0337 c         icolup(1,2)=502

0338 c         icolup(2,2)=501

0339 c        icolup(1,3)=501

0340 c         icolup(2,3)=503

0341 c         icolup(1,4)=504

0342 c        icolup(2,4)=0

0343 c        icolup(1,5)=0

0344 c        icolup(2,5)=504

0345 c       end if

0346 
0347 c        if(icolnum.eq.6) then

0348 c        icolup(1,1)=502

0349 c        icolup(2,1)=501

0350 c         icolup(1,2)=503

0351 c         icolup(2,2)=502

0352 c        icolup(1,3)=501

0353 c         icolup(2,3)=503

0354 c         icolup(1,4)=504

0355 c        icolup(2,4)=0

0356 c        icolup(1,5)=0

0357 c        icolup(2,5)=504

0358 c       end if

0359 c

0360 c        if(icolnum.eq.7) then

0361 c        icolup(1,1)=504

0362 c        icolup(2,1)=503

0363 c         icolup(1,2)=503

0364 c         icolup(2,2)=502

0365 c        icolup(1,3)=502

0366 c         icolup(2,3)=501

0367 c         icolup(1,4)=504

0368 c        icolup(2,4)=0

0369 c        icolup(1,5)=0

0370 c        icolup(2,5)=501

0371 c       end if

0372 c

0373 c        if(icolnum.eq.8) then

0374 c        icolup(1,1)=503

0375 c        icolup(2,1)=502

0376 c         icolup(1,2)=504

0377 c         icolup(2,2)=503

0378 c        icolup(1,3)=502

0379 c         icolup(2,3)=501

0380 c         icolup(1,4)=504

0381 c        icolup(2,4)=0

0382 c        icolup(1,5)=0

0383 c        icolup(2,5)=501

0384 c       end if

0385 c

0386 c        if(icolnum.eq.9) then

0387 c        icolup(1,1)=502

0388 c        icolup(2,1)=501

0389 c         icolup(1,2)=504

0390 c         icolup(2,2)=503

0391 c        icolup(1,3)=503

0392 c         icolup(2,3)=502

0393 c         icolup(1,4)=504

0394 c        icolup(2,4)=0

0395 c        icolup(1,5)=0

0396 c        icolup(2,5)=501

0397 c       end if

0398 c

0399 c        if(icolnum.eq.10) then

0400 c        icolup(1,1)=504

0401 c        icolup(2,1)=503

0402 c         icolup(1,2)=502

0403 c         icolup(2,2)=501

0404 c        icolup(1,3)=503

0405 c         icolup(2,3)=502

0406 c         icolup(1,4)=504

0407 c        icolup(2,4)=0

0408 c        icolup(1,5)=0

0409 c        icolup(2,5)=501

0410 c       end if

0411 c       end if

0412 c-------

0413         else
0414 c...two color flow for quark-antiquark annihilation.

0415          if(icolnum.eq.1) then
0416         icolup(1,1)=501
0417         icolup(2,1)=0
0418           icolup(1,2)=0
0419           icolup(2,2)=502
0420         icolup(1,3)=0
0421           icolup(2,3)=0
0422         icolup(1,4)=501
0423         icolup(2,4)=0
0424         icolup(1,5)=0
0425         icolup(2,5)=502
0426          end if
0427 
0428          if(icolnum.eq.2) then
0429         icolup(1,1)=501
0430         icolup(2,1)=0
0431           icolup(1,2)=0
0432           icolup(2,2)=501
0433         icolup(1,3)=0
0434           icolup(2,3)=0
0435         icolup(1,4)=502
0436         icolup(2,4)=0
0437         icolup(1,5)=0
0438         icolup(2,5)=502
0439          end if
0440       end if
0441 
0442       return
0443       end