Ejemplo n.º 1
0
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)
Ejemplo n.º 2
0
    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')
Ejemplo n.º 3
0
    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())
Ejemplo n.º 4
0
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)
Ejemplo n.º 5
0
    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())
Ejemplo n.º 6
0
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']"""})
Ejemplo n.º 7
0
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)
Ejemplo n.º 8
0
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)
Ejemplo n.º 9
0
    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())
Ejemplo n.º 10
0
    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())
Ejemplo n.º 11
0
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")
Ejemplo n.º 12
0
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")
Ejemplo n.º 13
0
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')
Ejemplo n.º 14
0
 def modiffile(self, file, rule):
     mod_file.mod_file(file, rule)
Ejemplo n.º 15
0
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')
Ejemplo n.º 16
0
 def modiffile(self,file,rule):
     mod_file.mod_file(file,rule)