def update_cuts_status(MW_param): """ remove the call to the cuts if asked in MadWeight_Card.dat """ if MW_param.info['mw_run'].has_key('9'): if MW_param.info['mw_run']['9'] in ['F', '.false.', '0', 'f']: use_cut = 0 else: use_cut = 1 cut_status = cut_is_active() #chek if we use the cut for the moment!! if (use_cut + cut_status) % 2: #pass if not coherent between asked and actual status print 'update the cut status' file_to_mod = ['./SubProcesses/cuts.f', './SubProcesses/cuts_MW.f'] rule = [ './Source/MadWeight_File/mod_file/suppress_cuts_MG', './Source/MadWeight_File/mod_file/suppress_cuts_MW' ] mod_file.mod_file( file_to_mod, rule, opt={'nowarning': """['PASSCUTS','TO_SPECISA']"""}) filename = [file.split('/')[-1] for file in file_to_mod] if MW_param.info['mw_run'].has_key('91'): mode = MW_param.info['mw_run']['91'] else: mode = 1 check_Subprocesses_update( 'cuts.f', MW_param.P_listdir, './Source/MadWeight_File/mod_file/suppress_cuts', mode) check_Subprocesses_update( 'cuts_MW.f', MW_param.MW_listdir, './Source/MadWeight_File/mod_file/suppress_cuts', mode)
def create_ordering_file(self): """ take input form TF_input.dat and insert in ordering_file.inc""" #collect particle information thin=[] large=[] with_x=0 for block in self.block.values(): if block.order==1: thin+=block.particles elif block.order==2: large+=block.particles if "x1" in block.particles or "x2" in block.particles: with_x=1 #define the rule of how modif file transfer_function/input/ordering_file.inc modif_rule={} modif_rule['THIN']=','.join(thin) modif_rule['LARGE']=','.join(large) modif_rule['X']=str(with_x) modif_rule['NAME_TF']=self.tf_name #modify file mod_file.mod_file('./input/ordering_file.inc',modif_rule,write='./ordering_file.inc')
def test_mw_cuts(self): file_to_mod ='./SubProcesses/cuts.bk' rule= './Source/MadWeight/mod_file/mod_cuts' mod_file.mod_file(file_to_mod,rule, write='./SubProcesses/cuts.mod') self.assertEqual(create_run.cut_is_active('cuts.mod'), 1) self.assertEqual(create_run.bw_cut_is_active('cuts.mod'),1) self.assertFalse('\n$B$' in open('./SubProcesses/cuts.mod').read()) file_to_mod='./SubProcesses/cuts.mod' rule = './Source/MadWeight/mod_file/suppress_cuts_MW' mod_file.mod_file(file_to_mod,rule, write='./SubProcesses/cuts.mod') self.assertEqual(create_run.cut_is_active('cuts.mod'), 0) self.assertEqual(create_run.bw_cut_is_active('cuts.mod'),1) self.assertFalse('\n$B$' in open('./SubProcesses/cuts.mod').read()) mod_file.mod_file(file_to_mod,rule, write='./SubProcesses/cuts.mod') self.assertEqual(create_run.cut_is_active('cuts.mod'), 1) self.assertEqual(create_run.bw_cut_is_active('cuts.mod'),1) self.assertFalse('\n$B$' in open('./SubProcesses/cuts.mod').read()) mod_file.mod_file(file_to_mod,rule, write='./SubProcesses/cuts.mod') self.assertEqual(create_run.cut_is_active('cuts.mod'), 0) self.assertEqual(create_run.bw_cut_is_active('cuts.mod'),1) self.assertFalse('\n$B$' in open('./SubProcesses/cuts.mod').read()) mod_file.mod_file(file_to_mod,rule, write='./SubProcesses/cuts.mod') self.assertEqual(create_run.cut_is_active('cuts.mod'), 1) self.assertEqual(create_run.bw_cut_is_active('cuts.mod'),1) self.assertFalse('\n$B$' in open('./SubProcesses/cuts.mod').read())
def update_cuts_status(MW_param): """ remove the call to the cuts if asked in MadWeight_Card.dat """ if MW_param.info['mw_run'].has_key('9'): if MW_param.info['mw_run']['9'] in ['F','.false.','0','f']: use_cut=0 else: use_cut=1 cut_status=cut_is_active() #chek if we use the cut for the moment!! if (use_cut+cut_status)%2: #pass if not coherent between asked and actual status print 'update the cut status' file_to_mod=['./SubProcesses/cuts.f','./SubProcesses/cuts_MW.f'] rule=['./Source/MadWeight_File/mod_file/suppress_cuts_MG','./Source/MadWeight_File/mod_file/suppress_cuts_MW'] mod_file.mod_file(file_to_mod,rule,opt={'nowarning':"""['PASSCUTS','TO_SPECISA']"""}) filename=[file.split('/')[-1] for file in file_to_mod] if MW_param.info['mw_run'].has_key('91'): mode= MW_param.info['mw_run']['91'] else: mode=1 check_Subprocesses_update('cuts.f',MW_param.P_listdir,'./Source/MadWeight_File/mod_file/suppress_cuts',mode) check_Subprocesses_update('cuts_MW.f',MW_param.MW_listdir,'./Source/MadWeight_File/mod_file/suppress_cuts',mode)
def expand_all(): go_to_main_dir() print "copying files" copy_file() del_file() print "modifying files" mod_file.mod_file('./Source/MadWeight_File/mod_file/MW_pos', opt={'nowarning': """['DESACTIVATE_CUT']"""})
def expand_all(echap=[]): go_to_main_dir() print("copying files") copy_file(echap) del_file() print("modifying files") opt = {} opt['nowarning'] = """['DESACTIVATE_CUT','DESACTIVATE_BW_CUT','get_user_params','main_make','obj_for_MW']""" mod_file.mod_file('./Source/MadWeight/mod_file/MW_pos', opt=opt)
def expand_all(echap=[]): go_to_main_dir() print "copying files" copy_file(echap) del_file() print "modifying files" opt = {} opt["nowarning"] = """['DESACTIVATE_CUT','DESACTIVATE_BW_CUT','get_user_params','main_make','obj_for_MW']""" mod_file.mod_file("./Source/MadWeight/mod_file/MW_pos", opt=opt)
def test_cuts(self): """ test if we can activate/desactivate the cuts """ self.assertEqual(create_run.cut_is_active('cuts.bk'), 1) self.assertEqual(create_run.bw_cut_is_active('cuts.bk'),1) file_to_mod='./SubProcesses/cuts.bk' rule='./Source/MadWeight/mod_file/suppress_cuts_MG' #modify file mod_file.mod_file(file_to_mod,rule,opt={'nowarning':"""['PASSCUTS','MW_NEW_DEF','DESACTIVATE_BW_CUT']"""}, write='./SubProcesses/cuts.mod') self.assertEqual(create_run.cut_is_active('cuts.mod'), 0) self.assertEqual(create_run.bw_cut_is_active('cuts.mod'),1) self.assertFalse('\n$B$' in open('./SubProcesses/cuts.mod').read()) file_to_mod='./SubProcesses/cuts.mod' mod_file.mod_file(file_to_mod,rule,opt={'nowarning':"""['PASSCUTS','MW_NEW_DEF','DESACTIVATE_BW_CUT']"""}, write='./SubProcesses/cuts.mod') self.assertEqual(create_run.cut_is_active('cuts.mod'), 1) self.assertEqual(create_run.bw_cut_is_active('cuts.mod'),1) self.assertFalse('\n$B$' in open('./SubProcesses/cuts.mod').read()) mod_file.mod_file(file_to_mod,rule,opt={'nowarning':"""['PASSCUTS','MW_NEW_DEF','DESACTIVATE_BW_CUT']"""}, write='./SubProcesses/cuts.mod') self.assertEqual(create_run.cut_is_active('cuts.mod'), 0) self.assertEqual(create_run.bw_cut_is_active('cuts.mod'),1) self.assertFalse('\n$B$' in open('./SubProcesses/cuts.mod').read()) mod_file.mod_file(file_to_mod,rule,opt={'nowarning':"""['PASSCUTS','MW_NEW_DEF','DESACTIVATE_BW_CUT']"""}, write='./SubProcesses/cuts.mod') self.assertEqual(create_run.cut_is_active('cuts.mod'), 1) self.assertEqual(create_run.bw_cut_is_active('cuts.mod'),1) self.assertFalse('\n$B$' in open('./SubProcesses/cuts.mod').read())
def activate_acceptance_run(): """ 1. reactivate the write of events .lhe 2. modify combine_event.f 3. modify pythia-pgs/src/pythia.f --> Pass in standard in special package 4. modify pythia-pgs/src/pgs.f --> Pass in standard in special package 5. compile those modification """ #0. test if the card/directory exist if not (os.path.isfile('./Cards/pythia_card.dat') and os.path.isfile('./Cards/pgs_card.dat') and os.path.isdir('../MW_pythia-pgs')): raise AcceptanceError, 'Cards or MW_pythia-pgs missing... impossible to load acceptance module' #1. test if the acc is already loaded if os.path.isfile('./Source/MadWeight_file/acc.in'): return os.system('touch ./Source/MadWeight_file/acc.in') #2. reactivate the write of events .lhe mod_file.mod_file('./SubProcesses/unwgt.f', {'S-DECOMMENT_C': ''}) #3. change combine_events.f mod_file.mod_file('./Source/combine_events.f', './Source/MadWeight/mod_file/mod_combine_events') #4. modify pythia_card.dat mod_file.mod_file('./Cards/pythia_card.dat', './Source/MadWeight/mod_file/mod_combine_events') #4. modify pythia-pgs/src/pythia.f #os.system('cp ../pythia-pgs/src/pythia.f ../pythia-pgs/src/pythia_default.f') #rule={} #rule['def_file']=change_tf.put_in_fortran_format(""" # write(*,*) 'enter input/output file for MW run' # read(*,*) input_file,output_file #pythia_card='../Cards/pythia_card.dat' # nfiles=1 #""") #mod_file.mod_file('../pythia-pgs/src/pythia.f',rule) #4. modify pythia-pgs/src/pgs.f #os.system('cp ../pythia-pgs/src/pgs.f ../pythia-pgs/src/pgs_default.f') #rule={} #rule['def_file']=change_tf.put_in_fortran_format(""" # write(*,*) 'enter input file for MW run' # read(*,*) pgs_input_file # write(*,*) 'enter output file for MW run' # read(*,*) pgs_output_file #""") #mod_file.mod_file('../pythia-pgs/src/pgs.f',rule) #5.compile the new files os.system("cd Source;make ../bin/combine_events;cd -") os.system("cd ../MW_pythia-pgs;make &>/dev/null")
def activate_acceptance_run(): """ 1. reactivate the write of events .lhe 2. modify combine_event.f 3. modify pythia-pgs/src/pythia.f --> Pass in standard in special package 4. modify pythia-pgs/src/pgs.f --> Pass in standard in special package 5. compile those modification """ #0. test if the card/directory exist if not( os.path.isfile('./Cards/pythia_card.dat') and os.path.isfile('./Cards/pgs_card.dat') and os.path.isdir('../MW_pythia-pgs')): raise AcceptanceError, 'Cards or MW_pythia-pgs missing... impossible to load acceptance module' #1. test if the acc is already loaded if os.path.isfile('./Source/MadWeight_file/acc.in'): return os.system('touch ./Source/MadWeight_file/acc.in') #2. reactivate the write of events .lhe mod_file.mod_file('./SubProcesses/unwgt.f',{'S-DECOMMENT_C':''}) #3. change combine_events.f mod_file.mod_file('./Source/combine_events.f','./Source/MadWeight/mod_file/mod_combine_events') #4. modify pythia_card.dat mod_file.mod_file('./Cards/pythia_card.dat','./Source/MadWeight/mod_file/mod_combine_events') #4. modify pythia-pgs/src/pythia.f #os.system('cp ../pythia-pgs/src/pythia.f ../pythia-pgs/src/pythia_default.f') #rule={} #rule['def_file']=change_tf.put_in_fortran_format(""" # write(*,*) 'enter input/output file for MW run' # read(*,*) input_file,output_file #pythia_card='../Cards/pythia_card.dat' # nfiles=1 #""") #mod_file.mod_file('../pythia-pgs/src/pythia.f',rule) #4. modify pythia-pgs/src/pgs.f #os.system('cp ../pythia-pgs/src/pgs.f ../pythia-pgs/src/pgs_default.f') #rule={} #rule['def_file']=change_tf.put_in_fortran_format(""" # write(*,*) 'enter input file for MW run' # read(*,*) pgs_input_file # write(*,*) 'enter output file for MW run' # read(*,*) pgs_output_file #""") #mod_file.mod_file('../pythia-pgs/src/pgs.f',rule) #5.compile the new files os.system("cd Source;make ../bin/combine_events;cd -") os.system("cd ../MW_pythia-pgs;make &>/dev/null")
def update_cuts_status(MW_param): """ remove the call to the cuts if asked in MadWeight_Card.dat """ # Pierre: pass return #check cut status for cross section: if (MW_param.info['mw_run']['91']+cut_is_active('cuts.f'))%2: #pass if not coherent between asked and actual status file_to_mod=['./SubProcesses/cuts.f'] rule=['./Source/MadWeight/mod_file/suppress_cuts_MG'] #modify file mod_file.mod_file(file_to_mod,rule,opt={'nowarning':"""['PASSCUTS','MW_NEW_DEF','DESACTIVATE_BW_CUT']"""}) #check update check_Subprocesses_update('cuts.f',MW_param.P_listdir,'./Source/MadWeight/mod_file/suppress_cuts_MG') #check cut status for Weight computation: if (MW_param.info['mw_run']['9']+cut_is_active('cuts_MW.f'))%2: #pass if not coherent between asked and actual status file_to_mod=['./SubProcesses/cuts_MW.f'] rule=['./Source/MadWeight/mod_file/suppress_cuts_MW'] #modify file mod_file.mod_file(file_to_mod,rule,opt={'nowarning':"""['PASSCUTS','TO_SPECISA','DESACTIVATE_BW_CUT']"""}) #check update check_Subprocesses_update('cuts_MW.f',MW_param.MW_listdir,'./Source/MadWeight/mod_file/suppress_cuts_MW') #check BW cut status for cross section if (MW_param['mw_run']['me_bw_cut']+bw_cut_is_active('cuts.f'))%2: #pass if not coherent between asked and actual status file_to_mod=['./SubProcesses/cuts.f'] rule=['./Source/MadWeight/mod_file/suppress_BW_cuts'] #modify file mod_file.mod_file(file_to_mod,rule,opt={'nowarning':"""['PASSCUTS','MW_NEW_DEF']"""}) #check update check_Subprocesses_update('cuts.f',MW_param.P_listdir,'./Source/MadWeight/mod_file/suppress_BW_cuts') #check cut status for Weight computation: if (MW_param.info['mw_run']['mw_bw_cut']+bw_cut_is_active('cuts_MW.f'))%2: #pass if not coherent between asked and actual status file_to_mod=['./SubProcesses/cuts_MW.f'] rule=['./Source/MadWeight/mod_file/suppress_BW_cuts'] #modify file mod_file.mod_file(file_to_mod,rule,opt={'nowarning':"""['PASSCUTS','TO_SPECISA']"""}) #check update check_Subprocesses_update('cuts_MW.f',MW_param.MW_listdir,'./Source/MadWeight/mod_file/suppress_BW_cuts')
def modiffile(self, file, rule): mod_file.mod_file(file, rule)
def update_cuts_status(MW_param): """ remove the call to the cuts if asked in MadWeight_Card.dat """ # Pierre: pass return #check cut status for cross section: if (MW_param.info['mw_run']['91'] + cut_is_active('cuts.f') ) % 2: #pass if not coherent between asked and actual status file_to_mod = ['./SubProcesses/cuts.f'] rule = ['./Source/MadWeight/mod_file/suppress_cuts_MG'] #modify file mod_file.mod_file( file_to_mod, rule, opt={ 'nowarning': """['PASSCUTS','MW_NEW_DEF','DESACTIVATE_BW_CUT']""" }) #check update check_Subprocesses_update( 'cuts.f', MW_param.P_listdir, './Source/MadWeight/mod_file/suppress_cuts_MG') #check cut status for Weight computation: if (MW_param.info['mw_run']['9'] + cut_is_active('cuts_MW.f') ) % 2: #pass if not coherent between asked and actual status file_to_mod = ['./SubProcesses/cuts_MW.f'] rule = ['./Source/MadWeight/mod_file/suppress_cuts_MW'] #modify file mod_file.mod_file( file_to_mod, rule, opt={ 'nowarning': """['PASSCUTS','TO_SPECISA','DESACTIVATE_BW_CUT']""" }) #check update check_Subprocesses_update( 'cuts_MW.f', MW_param.MW_listdir, './Source/MadWeight/mod_file/suppress_cuts_MW') #check BW cut status for cross section if (MW_param['mw_run']['me_bw_cut'] + bw_cut_is_active('cuts.f') ) % 2: #pass if not coherent between asked and actual status file_to_mod = ['./SubProcesses/cuts.f'] rule = ['./Source/MadWeight/mod_file/suppress_BW_cuts'] #modify file mod_file.mod_file(file_to_mod, rule, opt={'nowarning': """['PASSCUTS','MW_NEW_DEF']"""}) #check update check_Subprocesses_update( 'cuts.f', MW_param.P_listdir, './Source/MadWeight/mod_file/suppress_BW_cuts') #check cut status for Weight computation: if (MW_param.info['mw_run']['mw_bw_cut'] + bw_cut_is_active('cuts_MW.f') ) % 2: #pass if not coherent between asked and actual status file_to_mod = ['./SubProcesses/cuts_MW.f'] rule = ['./Source/MadWeight/mod_file/suppress_BW_cuts'] #modify file mod_file.mod_file(file_to_mod, rule, opt={'nowarning': """['PASSCUTS','TO_SPECISA']"""}) #check update check_Subprocesses_update( 'cuts_MW.f', MW_param.MW_listdir, './Source/MadWeight/mod_file/suppress_BW_cuts')
def modiffile(self,file,rule): mod_file.mod_file(file,rule)