~maddevelopers/mg5amcnlo/3.0.2-alpha0

« back to all changes in this revision

Viewing changes to Template/bin/split_banner.pl

Added Template and HELAS into bzr

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
#!/usr/bin/perl -w
 
2
 
 
3
#############################################################################
 
4
#                                                                          ##
 
5
#                    MadGraph/MadEvent                                     ##
 
6
#                                                                          ##
 
7
# FILE : split_banner.pl                                                   ##
 
8
# VERSION : 1.0                                                            ##
 
9
# DATE : 6 April 2007                                                      ##
 
10
# AUTHOR : Michel Herquet (UCL-CP3)                                        ##
 
11
#                                                                          ##
 
12
# DESCRIPTION : script to recover cards from a banner                      ##
 
13
# USAGE : split_banner.pl banner.txt                                       ##
 
14
# OUTPUT : all found cards                                                 ##
 
15
#############################################################################
 
16
 
 
17
 
 
18
# Parse the command line arguments
 
19
 
 
20
if ( $#ARGV != 0 ) {
 
21
     die "This script must be called with one banner filename as argument!\n";
 
22
}
 
23
 
 
24
my $banner=$ARGV[0];
 
25
 
 
26
 
 
27
print "Reading input file ... \n";
 
28
open(BANNER,"$banner") || die "Cannot open banner file called $banner, stopping\n";
 
29
 
 
30
# Define tags and extract cards
 
31
 
 
32
my $begin_proc='# Begin proc_card.dat'."\n".'#'."\n";
 
33
my $end_proc="\n".'#'."\n".'# End proc_card.dat';
 
34
 
 
35
my $begin_param='# Begin param_card.dat'."\n".'#'."\n";
 
36
my $end_param="\n".'#'."\n".'# End param_card.dat';
 
37
 
 
38
my $begin_run='# Begin run_card.dat'."\n".'#'."\n";
 
39
my $end_run="\n".'#'."\n".'# End run_card.dat';
 
40
 
 
41
my $begin_pythia='# Begin pythia_card.dat'."\n".'#'."\n";
 
42
my $end_pythia="\n".'#'."\n".'# End pythia_card.dat';
 
43
 
 
44
my $begin_pgs='# Begin pgs_card.dat'."\n".'#'."\n";
 
45
my $end_pgs="\n".'# End pgs_card.dat';
 
46
 
 
47
while(<BANNER>)
 
48
{
 
49
    $fullbanner .= $_;
 
50
 
51
 
 
52
close(BANNER);
 
53
 
 
54
if ( $fullbanner=~ /<MGProcCard>/ || $fullbanner=~ /<MG5ProcCard>/ ) {
 
55
# New version of banner
 
56
    $begin_proc='<MGProcCard>'."\n";
 
57
    $end_proc="\n".'<\/MGProcCard>';
 
58
    
 
59
    $begin_mg5proc='<MG5ProcCard>'."\n";
 
60
    $end_mg5proc="\n".'<\/MG5ProcCard>';
 
61
    
 
62
    $begin_param='<slha>'."\n";
 
63
    $end_param="\n".'<\/slha>';
 
64
    
 
65
    $begin_run='<MGRunCard>'."\n";
 
66
    $end_run="\n".'<\/MGRunCard>';
 
67
    
 
68
    $begin_grid='<MGGridCard>'."\n";
 
69
    $end_grid="\n".'<\/MGGridCard>';
 
70
    
 
71
    $begin_pythia='<MGPythiaCard>'."\n";
 
72
    $end_pythia="\n".'<\/MGPythiaCard>';
 
73
    
 
74
    $begin_pgs='<MGPGSCard>'."\n";
 
75
    $end_pgs="\n".'<\/MGPGSCard>';
 
76
 
 
77
    $begin_delphes='<MGDelphesCard>'."\n";
 
78
    $end_delphes="\n".'<\/MGDelphesCard>';
 
79
 
 
80
    $begin_trigger='<MGDelphesTrigger>'."\n";
 
81
    $end_trigger="\n".'<\/MGDelphesTrigger>';
 
82
}
 
83
 
 
84
if ( $fullbanner=~ m/$begin_proc/ ) {
 
85
        print "proc_card found ... ";
 
86
        ($proc_card)= $fullbanner=~ m/$begin_proc(.*?)$end_proc/s;
 
87
        open(PROC,">proc_card.dat") || die "Cannot open proc_card.dat for writing, stopping\n";
 
88
        print PROC $proc_card."\n";
 
89
        close(PROC);
 
90
        print "Extracted\n";
 
91
} else { print "proc_card not found!\n"; }
 
92
 
 
93
if ( $fullbanner=~ m/$begin_mg5proc/ ) {
 
94
        print "proc_card_mg5 found ... ";
 
95
        ($proc_card_mg5)= $fullbanner=~ m/$begin_mg5proc(.*?)$end_mg5proc/s;
 
96
        open(PROC,">proc_card_mg5.dat") || die "Cannot open proc_card_mg5.dat for writing, stopping\n";
 
97
        print PROC $proc_card_mg5."\n";
 
98
        close(PROC);
 
99
        print "Extracted\n";
 
100
} else { print "proc_card_mg5 not found!\n"; }
 
101
 
 
102
if ( $fullbanner=~ m/$begin_param/ ) {
 
103
        print "param_card found ... ";
 
104
        ($param_card)= $fullbanner=~ m/$begin_param(.*?)$end_param/s;
 
105
        open(PARAM,">param_card.dat") || die "Cannot open param_card.dat for writing, stopping\n";
 
106
        print PARAM $param_card."\n";
 
107
        close(PARAM);
 
108
        print "Extracted\n";
 
109
} else { print "param_card not found!\n"; }
 
110
 
 
111
if ( $fullbanner=~ m/$begin_run/ ) {
 
112
        print "run_card found ... ";
 
113
        ($run_card)= $fullbanner=~ m/$begin_run(.*?)$end_run/s;
 
114
        open(RUN,">run_card.dat") || die "Cannot open run_card.dat for writing, stopping\n";
 
115
        print RUN $run_card."\n";
 
116
        close(RUN);
 
117
        print "Extracted\n";
 
118
} else { print "run_card not found!\n"; }
 
119
 
 
120
if ( $fullbanner=~ m/$begin_grid/ ) {
 
121
        print "grid_card found ... ";
 
122
        ($grid_card)= $fullbanner=~ m/$begin_grid(.*?)$end_grid/s;
 
123
        open(GRID,">grid_card.dat") || die "Cannot open grid_card.dat for writing, stopping\n";
 
124
        print GRID $grid_card."\n";
 
125
        close(GRID);
 
126
        print "Extracted\n";
 
127
} else { print "grid_card not found!\n"; }
 
128
 
 
129
if ( $fullbanner=~ m/$begin_pythia/ ) {
 
130
        print "pythia_card found ... ";
 
131
        ($pythia_card)= $fullbanner=~ m/$begin_pythia(.*?)$end_pythia/s;
 
132
        #remove LHA path tags that are locally defined
 
133
        $pythia_card =~ s/\n\s*LHAPATH=.*/\n/g;
 
134
        open(PYTHIA,">pythia_card.dat") || die "Cannot open pythia_card.dat for writing, stopping\n";
 
135
        print PYTHIA $pythia_card."\n";
 
136
        close(PYTHIA);
 
137
        print "Extracted\n";
 
138
} else { print "pythia_card not found!\n"; }
 
139
 
 
140
if ( $fullbanner=~ m/$begin_pgs/ ) {
 
141
        print "pgs_card found ... ";
 
142
        ($pgs_card)= $fullbanner=~ m/$begin_pgs(.*?)$end_pgs/s;
 
143
        open(PGS,">pgs_card.dat") || die "Cannot open pgs_card.dat for writing, stopping\n";
 
144
        print PGS $pgs_card."\n";
 
145
        close(PGS);
 
146
        print "Extracted\n";
 
147
} else { print "pgs_card not found!\n"; }
 
148
 
 
149
if ( $fullbanner=~ m/$begin_delphes/ ) {
 
150
        print "delphes_card found ... ";
 
151
        ($delphes_card)= $fullbanner=~ m/$begin_delphes(.*?)$end_delphes/s;
 
152
        open(DELPHES,">delphes_card.dat") || die "Cannot open delphes_card.dat for writing, stopping\n";
 
153
        print DELPHES $delphes_card."\n";
 
154
        close(DELPHES);
 
155
        print "Extracted\n";
 
156
} else { print "delphes_card not found!\n"; }
 
157
 
 
158
if ( $fullbanner=~ m/$begin_trigger/ ) {
 
159
        print "delphes_trigger found ... ";
 
160
        ($delphes_trigger)= $fullbanner=~ m/$begin_trigger(.*?)$end_trigger/s;
 
161
        open(TRIGGER,">delphes_trigger.dat") || die "Cannot open delphes_trigger.dat for writing, stopping\n";
 
162
        print TRIGGER $delphes_trigger."\n";
 
163
        close(TRIGGER);
 
164
        print "Extracted\n";
 
165
} else { print "delphes_trigger not found!\n"; }
 
166