273
277
# Forbid special character but +-~_
274
278
p=re.compile('''^[\w\-\+~_]+$''')
275
279
if not p.match(value):
276
raise self.PhysicsObjectError, \
277
"%s is not a valid particle name" % value
280
raise self.PhysicsObjectError("%s is not a valid particle name" % value)
280
283
if not isinstance(value,bool):
281
raise self.PhysicsObjectError, \
282
"%s is not a valid bool for the 'ghost' attribute" % str(value)
284
raise self.PhysicsObjectError("%s is not a valid bool for the 'ghost' attribute" % str(value))
284
if name is 'counterterm':
286
if name == 'counterterm':
285
287
if not isinstance(value,dict):
286
raise self.PhysicsObjectError, \
287
"counterterm %s is not a valid dictionary" % repr(value)
288
raise self.PhysicsObjectError("counterterm %s is not a valid dictionary" % repr(value))
288
289
for key, val in value.items():
289
290
if not isinstance(key,tuple):
290
raise self.PhysicsObjectError, \
291
"key %s is not a valid tuple for counterterm key" % repr(key)
291
raise self.PhysicsObjectError("key %s is not a valid tuple for counterterm key" % repr(key))
292
292
if not isinstance(key[0],str):
293
raise self.PhysicsObjectError, \
294
"%s is not a valid string" % repr(key[0])
293
raise self.PhysicsObjectError("%s is not a valid string" % repr(key[0]))
295
294
if not isinstance(key[1],tuple):
296
raise self.PhysicsObjectError, \
297
"%s is not a valid list" % repr(key[1])
295
raise self.PhysicsObjectError("%s is not a valid list" % repr(key[1]))
298
296
for elem in key[1]:
299
297
if not isinstance(elem,tuple):
300
raise self.PhysicsObjectError, \
301
"%s is not a valid list" % repr(elem)
298
raise self.PhysicsObjectError("%s is not a valid list" % repr(elem))
302
299
for partPDG in elem:
303
300
if not isinstance(partPDG,int):
304
raise self.PhysicsObjectError, \
305
"%s is not a valid integer for PDG" % repr(partPDG)
301
raise self.PhysicsObjectError("%s is not a valid integer for PDG" % repr(partPDG))
307
raise self.PhysicsObjectError, \
308
"%s is not a valid positive PDG" % repr(partPDG)
303
raise self.PhysicsObjectError("%s is not a valid positive PDG" % repr(partPDG))
309
304
if not isinstance(val,dict):
310
raise self.PhysicsObjectError, \
311
"value %s is not a valid dictionary for counterterm value" % repr(val)
305
raise self.PhysicsObjectError("value %s is not a valid dictionary for counterterm value" % repr(val))
312
306
for vkey, vvalue in val.items():
313
307
if vkey not in [0,-1,-2]:
314
raise self.PhysicsObjectError, \
315
"Key %s is not a valid laurent serie order" % repr(vkey)
308
raise self.PhysicsObjectError("Key %s is not a valid laurent serie order" % repr(vkey))
316
309
if not isinstance(vvalue,str):
317
raise self.PhysicsObjectError, \
318
"Coupling %s is not a valid string" % repr(vvalue)
310
raise self.PhysicsObjectError("Coupling %s is not a valid string" % repr(vvalue))
320
312
if not isinstance(value, int):
321
raise self.PhysicsObjectError, \
322
"Spin %s is not an integer" % repr(value)
313
raise self.PhysicsObjectError("Spin %s is not an integer" % repr(value))
323
314
if (value < 1 or value > 5) and value != 99:
324
raise self.PhysicsObjectError, \
325
"Spin %i not valid" % value
315
raise self.PhysicsObjectError("Spin %i not valid" % value)
328
318
if not isinstance(value, int):
329
raise self.PhysicsObjectError, \
330
"Color %s is not an integer" % repr(value)
319
raise self.PhysicsObjectError("Color %s is not an integer" % repr(value))
331
320
if value not in [1, 3, 6, 8]:
332
raise self.PhysicsObjectError, \
333
"Color %i is not valid" % value
321
raise self.PhysicsObjectError("Color %i is not valid" % value)
335
323
if name in ['mass', 'width']:
336
324
# Must start with a letter, followed by letters, digits or _
337
325
p = re.compile('\A[a-zA-Z]+[\w\_]*\Z')
338
326
if not p.match(value):
339
raise self.PhysicsObjectError, \
340
"%s is not a valid name for mass/width variable" % \
327
raise self.PhysicsObjectError("%s is not a valid name for mass/width variable" % \
343
if name is 'pdg_code':
330
if name == 'pdg_code':
344
331
if not isinstance(value, int):
345
raise self.PhysicsObjectError, \
346
"PDG code %s is not an integer" % repr(value)
332
raise self.PhysicsObjectError("PDG code %s is not an integer" % repr(value))
349
335
if not isinstance(value, str):
350
raise self.PhysicsObjectError, \
351
"Line type %s is not a string" % repr(value)
336
raise self.PhysicsObjectError("Line type %s is not a string" % repr(value))
352
337
if value not in ['None','dashed', 'straight', 'wavy', 'curly', 'double','swavy','scurly','dotted']:
353
raise self.PhysicsObjectError, \
354
"Line type %s is unknown" % value
338
raise self.PhysicsObjectError("Line type %s is unknown" % value)
357
341
if not isinstance(value, float):
358
raise self.PhysicsObjectError, \
359
"Charge %s is not a float" % repr(value)
342
raise self.PhysicsObjectError("Charge %s is not a float" % repr(value))
361
if name is 'propagating':
344
if name == 'propagating':
362
345
if not isinstance(value, bool):
363
raise self.PhysicsObjectError, \
364
"Propagating tag %s is not a boolean" % repr(value)
346
raise self.PhysicsObjectError("Propagating tag %s is not a boolean" % repr(value))
366
348
if name in ['is_part', 'self_antipart']:
367
349
if not isinstance(value, bool):
368
raise self.PhysicsObjectError, \
369
"%s tag %s is not a boolean" % (name, repr(value))
350
raise self.PhysicsObjectError("%s tag %s is not a boolean" % (name, repr(value)))
691
671
#Should be an integer
692
672
if not isinstance(value, int):
693
raise self.PhysicsObjectError, \
694
"%s is not a valid integer" % str(value)
673
raise self.PhysicsObjectError("%s is not a valid integer" % str(value))
696
675
if name == 'particles':
697
676
#Should be a list of valid particle names
698
677
if not isinstance(value, ParticleList):
699
raise self.PhysicsObjectError, \
700
"%s is not a valid list of particles" % str(value)
678
raise self.PhysicsObjectError("%s is not a valid list of particles" % str(value))
702
680
if name == 'perturbation_type':
703
681
if value!=None and not isinstance(value, str):
704
raise self.PhysicsObjectError, \
705
"%s is not a valid string" % str(value)
682
raise self.PhysicsObjectError("%s is not a valid string" % str(value))
707
684
if name == 'type':
708
685
#Should be a string
709
686
if not isinstance(value, str):
710
raise self.PhysicsObjectError, \
711
"%s is not a valid string" % str(value)
687
raise self.PhysicsObjectError("%s is not a valid string" % str(value))
712
688
if name == 'loop_particles':
713
689
if isinstance(value,list):
715
691
if isinstance(l,list):
717
693
if not isinstance(part,int):
718
raise self.PhysicsObjectError, \
719
"%s is not a valid integer" % str(part)
694
raise self.PhysicsObjectError("%s is not a valid integer" % str(part))
721
raise self.PhysicsObjectError, \
722
"%s is not a valid positive integer" % str(part)
696
raise self.PhysicsObjectError("%s is not a valid positive integer" % str(part))
724
698
if name == 'orders':
725
699
#Should be a dict with valid order names ask keys and int as values
726
700
if not isinstance(value, dict):
727
raise self.PhysicsObjectError, \
728
"%s is not a valid dict for coupling orders" % \
701
raise self.PhysicsObjectError("%s is not a valid dict for coupling orders" % \
730
703
for order in value.keys():
731
704
if not isinstance(order, str):
732
raise self.PhysicsObjectError, \
733
"%s is not a valid string" % str(order)
705
raise self.PhysicsObjectError("%s is not a valid string" % str(order))
734
706
if not isinstance(value[order], int):
735
raise self.PhysicsObjectError, \
736
"%s is not a valid integer" % str(value[order])
707
raise self.PhysicsObjectError("%s is not a valid integer" % str(value[order]))
738
709
if name in ['color']:
739
710
#Should be a list of list strings
740
711
if not isinstance(value, list):
741
raise self.PhysicsObjectError, \
742
"%s is not a valid list of Color Strings" % str(value)
712
raise self.PhysicsObjectError("%s is not a valid list of Color Strings" % str(value))
743
713
for mycolstring in value:
744
714
if not isinstance(mycolstring, color.ColorString):
745
raise self.PhysicsObjectError, \
746
"%s is not a valid list of Color Strings" % str(value)
715
raise self.PhysicsObjectError("%s is not a valid list of Color Strings" % str(value))
748
717
if name in ['lorentz']:
749
718
#Should be a list of list strings
750
719
if not isinstance(value, list):
751
raise self.PhysicsObjectError, \
752
"%s is not a valid list of strings" % str(value)
720
raise self.PhysicsObjectError("%s is not a valid list of strings" % str(value))
753
721
for mystr in value:
754
722
if not isinstance(mystr, str):
755
raise self.PhysicsObjectError, \
756
"%s is not a valid string" % str(mystr)
723
raise self.PhysicsObjectError("%s is not a valid string" % str(mystr))
758
725
if name == 'couplings':
759
726
#Should be a dictionary of strings with (i,j) keys
760
727
if not isinstance(value, dict):
761
raise self.PhysicsObjectError, \
762
"%s is not a valid dictionary for couplings" % \
728
raise self.PhysicsObjectError("%s is not a valid dictionary for couplings" % \
765
731
for key in value.keys():
766
732
if not isinstance(key, tuple):
767
raise self.PhysicsObjectError, \
768
"%s is not a valid tuple" % str(key)
733
raise self.PhysicsObjectError("%s is not a valid tuple" % str(key))
769
734
if len(key) != 2:
770
raise self.PhysicsObjectError, \
771
"%s is not a valid tuple with 2 elements" % str(key)
735
raise self.PhysicsObjectError("%s is not a valid tuple with 2 elements" % str(key))
772
736
if not isinstance(key[0], int) or not isinstance(key[1], int):
773
raise self.PhysicsObjectError, \
774
"%s is not a valid tuple of integer" % str(key)
737
raise self.PhysicsObjectError("%s is not a valid tuple of integer" % str(key))
775
738
if not isinstance(value[key], str):
776
raise self.PhysicsObjectError, \
777
"%s is not a valid string" % value[key]
739
raise self.PhysicsObjectError("%s is not a valid string" % value[key])
1072
1034
if name in ['name']:
1073
1035
if not isinstance(value, str):
1074
raise self.PhysicsObjectError, \
1075
"Object of type %s is not a string" %type(value)
1036
raise self.PhysicsObjectError("Object of type %s is not a string" %type(value))
1077
1038
elif name == 'particles':
1078
1039
if not isinstance(value, ParticleList):
1079
raise self.PhysicsObjectError, \
1080
"Object of type %s is not a ParticleList object" % \
1040
raise self.PhysicsObjectError("Object of type %s is not a ParticleList object" % \
1082
1042
elif name == 'interactions':
1083
1043
if not isinstance(value, InteractionList):
1084
raise self.PhysicsObjectError, \
1085
"Object of type %s is not a InteractionList object" % \
1044
raise self.PhysicsObjectError("Object of type %s is not a InteractionList object" % \
1087
1046
elif name == 'particle_dict':
1088
1047
if not isinstance(value, dict):
1089
raise self.PhysicsObjectError, \
1090
"Object of type %s is not a dictionary" % \
1048
raise self.PhysicsObjectError("Object of type %s is not a dictionary" % \
1092
1050
elif name == 'interaction_dict':
1093
1051
if not isinstance(value, dict):
1094
raise self.PhysicsObjectError, \
1095
"Object of type %s is not a dictionary" % type(value)
1052
raise self.PhysicsObjectError("Object of type %s is not a dictionary" % type(value))
1097
1054
elif name == 'ref_dict_to0':
1098
1055
if not isinstance(value, dict):
1099
raise self.PhysicsObjectError, \
1100
"Object of type %s is not a dictionary" % type(value)
1056
raise self.PhysicsObjectError("Object of type %s is not a dictionary" % type(value))
1102
1058
elif name == 'ref_dict_to1':
1103
1059
if not isinstance(value, dict):
1104
raise self.PhysicsObjectError, \
1105
"Object of type %s is not a dictionary" % type(value)
1060
raise self.PhysicsObjectError("Object of type %s is not a dictionary" % type(value))
1107
1062
elif name == 'got_majoranas':
1108
1063
if not (isinstance(value, bool) or value == None):
1109
raise self.PhysicsObjectError, \
1110
"Object of type %s is not a boolean" % type(value)
1064
raise self.PhysicsObjectError("Object of type %s is not a boolean" % type(value))
1112
1066
elif name == 'conserved_charge':
1113
1067
if not (isinstance(value, set)):
1114
raise self.PhysicsObjectError, \
1115
"Object of type %s is not a set" % type(value)
1068
raise self.PhysicsObjectError("Object of type %s is not a set" % type(value))
1117
1070
elif name == 'version_tag':
1118
1071
if not (isinstance(value, str)):
1119
raise self.PhysicsObjectError, \
1120
"Object of type %s is not a string" % type(value)
1072
raise self.PhysicsObjectError("Object of type %s is not a string" % type(value))
1122
1074
elif name == 'order_hierarchy':
1123
1075
if not isinstance(value, dict):
1124
raise self.PhysicsObjectError, \
1125
"Object of type %s is not a dictionary" % \
1076
raise self.PhysicsObjectError("Object of type %s is not a dictionary" % \
1127
1078
for key in value.keys():
1128
1079
if not isinstance(value[key],int):
1129
raise self.PhysicsObjectError, \
1130
"Object of type %s is not an integer" % \
1080
raise self.PhysicsObjectError("Object of type %s is not an integer" % \
1132
1082
elif name == 'gauge':
1133
1083
if not (isinstance(value, list)):
1134
raise self.PhysicsObjectError, \
1135
"Object of type %s is not a list" % type(value)
1084
raise self.PhysicsObjectError("Object of type %s is not a list" % type(value))
1137
1086
elif name == 'case_sensitive':
1138
1087
if not value in [True ,False]:
1139
raise self.PhysicsObjectError, \
1140
"Object of type %s is not a boolean" % type(value)
1088
raise self.PhysicsObjectError("Object of type %s is not a boolean" % type(value))
1978
1926
if name in ['id', 'number']:
1979
1927
if not isinstance(value, int):
1980
raise self.PhysicsObjectError, \
1981
"%s is not a valid integer for leg id" % str(value)
1928
raise self.PhysicsObjectError("%s is not a valid integer for leg id" % str(value))
1930
elif name == 'state':
1984
1931
if not isinstance(value, bool):
1985
raise self.PhysicsObjectError, \
1986
"%s is not a valid leg state (True|False)" % \
1989
if name == 'from_group':
1990
if not isinstance(value, bool) and value != None:
1991
raise self.PhysicsObjectError, \
1992
"%s is not a valid boolean for leg flag from_group" % \
1995
if name == 'loop_line':
1996
if not isinstance(value, bool) and value != None:
1997
raise self.PhysicsObjectError, \
1998
"%s is not a valid boolean for leg flag loop_line" % \
2001
if name == 'onshell':
2002
if not isinstance(value, bool) and value != None:
2003
raise self.PhysicsObjectError, \
2004
"%s is not a valid boolean for leg flag onshell" % \
1932
raise self.PhysicsObjectError("%s is not a valid leg state (True|False)" % \
1935
elif name == 'from_group':
1936
if not isinstance(value, bool) and value != None:
1937
raise self.PhysicsObjectError("%s is not a valid boolean for leg flag from_group" % \
1940
elif name == 'loop_line':
1941
if not isinstance(value, bool) and value != None:
1942
raise self.PhysicsObjectError("%s is not a valid boolean for leg flag loop_line" % \
1945
elif name == 'onshell':
1946
if not isinstance(value, bool) and value != None:
1947
raise self.PhysicsObjectError("%s is not a valid boolean for leg flag onshell" % \
2008
if name == 'polarization':
1950
elif name == 'polarization':
2009
1951
if not isinstance(value, list):
2010
raise self.PhysicsObjectError, \
2011
"%s is not a valid list" % str(value)
1952
raise self.PhysicsObjectError( \
1953
"%s is not a valid list" % str(value))
2012
1954
for i in value:
2013
1955
if i not in [-1, 1, 2,-2, 3,-3, 0, 99]:
2014
raise self.PhysicsObjectError, \
2015
"%s is not a valid polarization" % str(value)
1956
raise self.PhysicsObjectError( \
1957
"%s is not a valid polarization" % str(value))
2020
1961
def get_sorted_keys(self):
2188
2129
if name == 'ids':
2189
2130
if not isinstance(value, list):
2190
raise self.PhysicsObjectError, \
2191
"%s is not a valid list" % str(value)
2131
raise self.PhysicsObjectError("%s is not a valid list" % str(value))
2192
2132
for i in value:
2193
2133
if not isinstance(i, int):
2194
raise self.PhysicsObjectError, \
2195
"%s is not a valid list of integers" % str(value)
2134
raise self.PhysicsObjectError("%s is not a valid list of integers" % str(value))
2197
2136
if name == 'polarization':
2198
2137
if not isinstance(value, list):
2199
raise self.PhysicsObjectError, \
2200
"%s is not a valid list" % str(value)
2138
raise self.PhysicsObjectError( \
2139
"%s is not a valid list" % str(value))
2201
2140
for i in value:
2202
2141
if i not in [-1, 1, 2, -2, 3, -3, 0, 99]:
2203
raise self.PhysicsObjectError, \
2204
"%s is not a valid polarization" % str(value)
2142
raise self.PhysicsObjectError( \
2143
"%s is not a valid polarization" % str(value))
2206
2145
if name == 'state':
2207
2146
if not isinstance(value, bool):
2208
raise self.PhysicsObjectError, \
2209
"%s is not a valid leg state (initial|final)" % \
2147
raise self.PhysicsObjectError("%s is not a valid leg state (initial|final)" % \
2398
2335
if isinstance(value, list):
2399
2336
for elem in value:
2400
2337
if not isinstance(elem,int):
2401
raise self.PhysicsObjectError, \
2402
"%s is not a valid integer for leg PDG" % str(elem)
2338
raise self.PhysicsObjectError("%s is not a valid integer for leg PDG" % str(elem))
2404
raise self.PhysicsObjectError, \
2405
"%s is not a valid list for contracted vertex PDGs"%str(value)
2340
raise self.PhysicsObjectError("%s is not a valid list for contracted vertex PDGs"%str(value))
2406
2341
if name == 'loop_tag':
2407
2342
if isinstance(value, tuple):
2408
2343
for elem in value:
2409
2344
if not (isinstance(elem,int) or isinstance(elem,tuple)):
2410
raise self.PhysicsObjectError, \
2411
"%s is not a valid int or tuple for loop tag element"%str(elem)
2345
raise self.PhysicsObjectError("%s is not a valid int or tuple for loop tag element"%str(elem))
2413
raise self.PhysicsObjectError, \
2414
"%s is not a valid tuple for a contracted vertex loop_tag."%str(value)
2347
raise self.PhysicsObjectError("%s is not a valid tuple for a contracted vertex loop_tag."%str(value))
2415
2348
if name == 'loop_orders':
2416
2349
Interaction.filter(Interaction(), 'orders', value)
2852
2798
if name in ['legs', 'legs_with_decays'] :
2853
2799
if not isinstance(value, LegList):
2854
raise self.PhysicsObjectError, \
2855
"%s is not a valid LegList object" % str(value)
2800
raise self.PhysicsObjectError("%s is not a valid LegList object" % str(value))
2857
2802
if name in ['orders', 'overall_orders','squared_orders']:
2858
2803
Interaction.filter(Interaction(), 'orders', value)
2860
2805
if name == 'constrained_orders':
2861
2806
if not isinstance(value, dict):
2862
raise self.PhysicsObjectError, \
2863
"%s is not a valid dictionary" % str(value)
2807
raise self.PhysicsObjectError("%s is not a valid dictionary" % str(value))
2865
2809
if name == 'sqorders_types':
2866
2810
if not isinstance(value, dict):
2867
raise self.PhysicsObjectError, \
2868
"%s is not a valid dictionary" % str(value)
2869
for order in value.keys()+value.values():
2811
raise self.PhysicsObjectError("%s is not a valid dictionary" % str(value))
2812
for order in list(value.keys())+list(value.values()):
2870
2813
if not isinstance(order, str):
2871
raise self.PhysicsObjectError, \
2872
"%s is not a valid string" % str(value)
2814
raise self.PhysicsObjectError("%s is not a valid string" % str(value))
2874
2816
if name == 'split_orders':
2875
2817
if not isinstance(value, list):
2876
raise self.PhysicsObjectError, \
2877
"%s is not a valid list" % str(value)
2818
raise self.PhysicsObjectError("%s is not a valid list" % str(value))
2878
2819
for order in value:
2879
2820
if not isinstance(order, str):
2880
raise self.PhysicsObjectError, \
2881
"%s is not a valid string" % str(value)
2821
raise self.PhysicsObjectError("%s is not a valid string" % str(value))
2883
2823
if name == 'model':
2884
2824
if not isinstance(value, Model):
2885
raise self.PhysicsObjectError, \
2886
"%s is not a valid Model object" % str(value)
2825
raise self.PhysicsObjectError("%s is not a valid Model object" % str(value))
2887
2826
if name in ['id', 'uid']:
2888
2827
if not isinstance(value, int):
2889
raise self.PhysicsObjectError, \
2890
"Process %s %s is not an integer" % (name, repr(value))
2828
raise self.PhysicsObjectError("Process %s %s is not an integer" % (name, repr(value)))
2892
2830
if name == 'required_s_channels':
2893
2831
if not isinstance(value, list):
2894
raise self.PhysicsObjectError, \
2895
"%s is not a valid list" % str(value)
2832
raise self.PhysicsObjectError("%s is not a valid list" % str(value))
2896
2833
for l in value:
2897
2834
if not isinstance(l, list):
2898
raise self.PhysicsObjectError, \
2899
"%s is not a valid list of lists" % str(value)
2835
raise self.PhysicsObjectError("%s is not a valid list of lists" % str(value))
2901
2837
if not isinstance(i, int):
2902
raise self.PhysicsObjectError, \
2903
"%s is not a valid list of integers" % str(l)
2838
raise self.PhysicsObjectError("%s is not a valid list of integers" % str(l))
2905
raise self.PhysicsObjectError, \
2906
"Not valid PDG code %d for s-channel particle" % i
2840
raise self.PhysicsObjectError("Not valid PDG code %d for s-channel particle" % i)
2908
2842
if name in ['forbidden_onsh_s_channels', 'forbidden_s_channels']:
2909
2843
if not isinstance(value, list):
2910
raise self.PhysicsObjectError, \
2911
"%s is not a valid list" % str(value)
2844
raise self.PhysicsObjectError("%s is not a valid list" % str(value))
2912
2845
for i in value:
2913
2846
if not isinstance(i, int):
2914
raise self.PhysicsObjectError, \
2915
"%s is not a valid list of integers" % str(value)
2847
raise self.PhysicsObjectError("%s is not a valid list of integers" % str(value))
2917
raise self.PhysicsObjectError, \
2918
"Not valid PDG code %d for s-channel particle" % str(value)
2849
raise self.PhysicsObjectError("Not valid PDG code %d for s-channel particle" % str(value))
2920
2851
if name == 'forbidden_particles':
2921
2852
if not isinstance(value, list):
2922
raise self.PhysicsObjectError, \
2923
"%s is not a valid list" % str(value)
2853
raise self.PhysicsObjectError("%s is not a valid list" % str(value))
2924
2854
for i in value:
2925
2855
if not isinstance(i, int):
2926
raise self.PhysicsObjectError, \
2927
"%s is not a valid list of integers" % str(value)
2856
raise self.PhysicsObjectError("%s is not a valid list of integers" % str(value))
2929
raise self.PhysicsObjectError, \
2930
"Forbidden particles should have a positive PDG code" % str(value)
2858
raise self.PhysicsObjectError("Forbidden particles should have a positive PDG code" % str(value))
2932
2860
if name == 'perturbation_couplings':
2933
2861
if not isinstance(value, list):
2934
raise self.PhysicsObjectError, \
2935
"%s is not a valid list" % str(value)
2862
raise self.PhysicsObjectError("%s is not a valid list" % str(value))
2936
2863
for order in value:
2937
2864
if not isinstance(order, str):
2938
raise self.PhysicsObjectError, \
2939
"%s is not a valid string" % str(value)
2865
raise self.PhysicsObjectError("%s is not a valid string" % str(value))
2941
2867
if name == 'is_decay_chain':
2942
2868
if not isinstance(value, bool):
2943
raise self.PhysicsObjectError, \
2944
"%s is not a valid bool" % str(value)
2869
raise self.PhysicsObjectError("%s is not a valid bool" % str(value))
2946
2871
if name == 'has_born':
2947
2872
if not isinstance(value, bool):
2948
raise self.PhysicsObjectError, \
2949
"%s is not a valid bool" % str(value)
2873
raise self.PhysicsObjectError("%s is not a valid bool" % str(value))
2951
2875
if name == 'decay_chains':
2952
2876
if not isinstance(value, ProcessList):
2953
raise self.PhysicsObjectError, \
2954
"%s is not a valid ProcessList" % str(value)
2877
raise self.PhysicsObjectError("%s is not a valid ProcessList" % str(value))
2956
2879
if name == 'NLO_mode':
2957
2880
import madgraph.interface.madgraph_interface as mg
2958
2881
if value not in mg.MadGraphCmd._valid_nlo_modes:
2959
raise self.PhysicsObjectError, \
2960
"%s is not a valid NLO_mode" % str(value)
2882
raise self.PhysicsObjectError("%s is not a valid NLO_mode" % str(value))
2963
2885
def has_multiparticle_label(self):