~madteam/mg5amcnlo/series2.0

« back to all changes in this revision

Viewing changes to aloha/create_aloha.py

  • Committer: olivier-mattelaer
  • Date: 2018-04-26 18:04:25 UTC
  • mto: (275.3.3 madspin_decay)
  • mto: This revision was merged to the branch mainline in revision 276.
  • Revision ID: olivier-mattelaer-20180426180425-8wn3rlpzo55pgmvy
fix issue for spin3/2

Show diffs side-by-side

added added

removed removed

Lines of Context:
24
24
import shutil
25
25
import sys
26
26
import time
 
27
from madgraph.interface.tutorial_text import output
27
28
 
28
29
root_path = os.path.split(os.path.dirname(os.path.realpath( __file__ )))[0]
29
30
sys.path.append(root_path)
460
461
                spin_id = id + _conjugate_gap + id % 2 - (id +1) % 2
461
462
            else:
462
463
                spin_id = id
 
464
            tag = {'1': 'pr1', '2': 'pr2', 'id':id}
463
465
            if spin_id % 2:
464
466
                needPflipping = True
465
 
                tag = {'1': 'pr_1', '2': 'pr_2', 'id':id}
 
467
                # propaR is needed to do the correct contraction since we need to distinguish spin from lorentz index
 
468
                propaR = deltaL('pr1',id) * deltaL('pr2', 'I2') * delta('pr1', spin_id) * delta('pr2', 'I3')
466
469
            else:
467
 
                tag = {'1': 'pr_2', '2': 'pr_1'}
468
 
            numerator *= deltaL('pr_1',id) * deltaL('pr_2', 'I2') * \
469
 
                                    delta('pr_1', spin_id) * delta('pr_2', 'I3')
 
470
                propaR = deltaL('pr1',id) * deltaL('pr2', 'I2') * delta('pr2', spin_id) * delta('pr1', 'I3')
 
471
            #numerator += "*deltaL('pr_1',id) * deltaL('pr_2', 'I2') * delta('pr_1', spin_id) * delta('pr_2', 'I3')"
470
472
        elif spin == 5 :
471
473
            tag = {'1': _spin2_mult + id, '2': 2 * _spin2_mult + id, 
472
474
                   '51': 'I2', '52': 'I3', 'id':id}
474
476
        numerator = self.mod_propagator_expression(tag, numerator)
475
477
        if denominator:
476
478
            denominator = self.mod_propagator_expression(tag, denominator)      
477
 
        
478
479
        numerator = self.parse_expression(numerator, needPflipping)
 
480
        
479
481
        if denominator:
480
482
            self.denominator = self.parse_expression(denominator, needPflipping)
481
483
            self.denominator = eval(self.denominator)
482
484
            if not isinstance(self.denominator, numbers.Number):
483
485
                self.denominator = self.denominator.simplify().expand().simplify().get((0,))
484
 
 
485
 
        return eval(numerator)
 
486
                
 
487
        if spin ==4:
 
488
            return eval(numerator) * propaR
 
489
        else:
 
490
            return eval(numerator)
486
491
    
487
492
            
488
493