Excellent!! Did you run an extensive parralel test, since those changes are quite deep in the code. Otherwise I've some very minor comment/question: 1) madgraph/core/helas_objects.py line 770 is the comment: # take the last index in case of identical particles still makes sense? 2) madgraph/core/helas_objects.py line 814 + 1537. why not: mothers = self.get('mothers') if not mothers: return vertices for mother in mothers 3) madgraph/core/helas_objects.py line: 1255 Add comment to explain what are the effect and the usefullness of my_pdg_code. Should it have a default value (potentially to None or 0)? 4) madgraph/core/helas_objects.py line: 1814 not beautifull indentation (not 4 spaces). + should specify the reason of the zero in mothers.sort_by_pdg_codes(self.get('pdg_codes'), 0) either by putting my_pdg_code=0 or by removing it (and assign my_pdg_code a default value --my favourite options--) 5) This part can certainly be optimised in a better way. (That's not crucial) @@ -246,32 +249,31 @@ 1036 elif colors == [-3, 3]: 1037 # triplet-triplet-singlet coupling 1038 myinter.set('color', [color.ColorString(\ 1039 - [color.T(1, 0)])]) 1040 + [color.T(ind[1], ind[0])])]) Could you explain to me why you need to change this? 6) +++ madgraph/various/process_checks.py 2010-11-29 00:15:14 +0000 1079 @@ -221,6 +221,9 @@ 1080 # Add this process to tested_processes 1081 sorted_ids.append(ids) 1082 1083 + # Skip adding antiprocess below, since might be relevant too 1084 + return False 1085 + Shouldn't we remove the code after the return False? 7) models/import_ufo line 256: Shouldn't we remove those lines? (or explain why they are commented) # Compute how change indices to match MG5 convention #info = [(i+1,part.color) for i,part in enumerate(interaction_info.particles) # if part.color!=1] #order = sorted(info, lambda p1, p2:p1[1] - p2[1]) #new_indices={} #for i,(j, pcolor) in enumerate(order): # new_indices[j]=i 8) madgraph/core/color_algebra.py line: 321 Basic verification that everything is normal, should be done in principle only in debug mode: (except if you worried about wrong model input) then I would suggest to replace + if len(args) != 3: 92 + raise ValueError, \ 93 + "Epsilon objects must have three indices!" by assert len(args) == 3 , "Epsilon objects must have three indices!" by coherence, I would put it before any other command (i.e. here before the super) 9) Same comment for Epsilon_Bar/K6/... definition