105 |
|
last; |
106 |
|
} |
107 |
|
push (@{$rootFiles{$arg}}, $file); |
108 |
< |
push (@weights, $opt{"weight"}) if $opt{"weight"}; |
108 |
> |
if ($opt{"weight"}) |
109 |
> |
{ |
110 |
> |
push (@weights, $opt{"weight"}) if !($opt{"weight"} =~ m/,/); |
111 |
> |
push (@weights, 1.0) if $opt{"weight"} =~ m/,/; |
112 |
> |
} |
113 |
|
push (@weights, $opt{"xsection"} * $integratedLuminosity) if !$opt{"weight"} && $opt{"xsection"}; |
114 |
|
push (@weights, $crossSections{$dir} * $integratedLuminosity) if !$opt{"weight"} && !$opt{"xsection"} && defined $crossSections{$dir}; |
115 |
|
push (@weights, 1.0) if !$opt{"weight"} && !$opt{"xsection"} && !(defined $crossSections{$dir}); |
144 |
|
} |
145 |
|
my $mergedFiles = join (" ", @mergedFiles); |
146 |
|
my $mergedWeights = join (",", @mergedWeights); |
147 |
+ |
$mergedWeights = $opt{"weight"} if $opt{"weight"} && $opt{"weight"} =~ m/,/; |
148 |
|
system ("mergeTFileServiceHistograms -i $mergedFiles -o $opt{'prefix'}.root -w $mergedWeights"); |
149 |
|
foreach my $mergedFile (@mergedFiles) |
150 |
|
{ |
151 |
|
unlink ("$mergedFile"); |
152 |
|
} |
153 |
|
print "=============================================\n"; |
154 |
+ |
my $output = sprintf "Cross-section of samples:\n"; |
155 |
+ |
my $printOutput = 0; |
156 |
+ |
foreach my $arg (keys %weights) |
157 |
+ |
{ |
158 |
+ |
my $shortArg = $arg; |
159 |
+ |
$shortArg =~ s/^.*\/([^\/]*)$/$1/; |
160 |
+ |
$output = sprintf "%s $shortArg: %.5g pb\n", $output, ($crossSections{$dirs{$arg}}); |
161 |
+ |
$printOutput = 1 if $weights{$arg} != 1; |
162 |
+ |
} |
163 |
+ |
print $output if $printOutput; |
164 |
+ |
|
165 |
|
my $output = sprintf "Effective luminosities of samples:\n"; |
166 |
< |
my $printOutput = 1; |
166 |
> |
my $printOutput = 0; |
167 |
|
foreach my $arg (keys %weights) |
168 |
|
{ |
169 |
|
my $shortArg = $arg; |
170 |
|
$shortArg =~ s/^.*\/([^\/]*)$/$1/; |
171 |
< |
$output = sprintf "%s $shortArg: %.5g/fb\n", $output, ($integratedLuminosity / (1000.0 * $weights{$arg})); |
171 |
> |
$output = sprintf "%s $shortArg: %.5g/fb\n", $output, ($integratedLuminosity / (1000.0 * $weights{$arg})) if $weights{$arg} != 1; |
172 |
> |
$printOutput = 1 if $weights{$arg} != 1; |
173 |
|
} |
174 |
|
print $output if $printOutput; |
175 |
+ |
|
176 |
|
$output = sprintf "Weights for target luminosity of %g/fb:\n", ($integratedLuminosity / 1000.0); |
177 |
|
$printOutput = 0; |
178 |
|
foreach my $arg (keys %weights) |
179 |
|
{ |
180 |
|
my $shortArg = $arg; |
181 |
|
$shortArg =~ s/^.*\/([^\/]*)$/$1/; |
182 |
< |
$output = sprintf "%s $shortArg: %.5g\n", $output, $weights{$arg}; |
182 |
> |
$output = sprintf "%s $shortArg: %.5g\n", $output, $weights{$arg} if $weights{$arg} != 1; |
183 |
|
$printOutput = 1 if $weights{$arg} != 1; |
184 |
|
} |
185 |
|
print $output if $printOutput; |
186 |
+ |
|
187 |
|
my $goodEvents = countEvents ("$opt{'prefix'}.root", $cutFlow); |
188 |
|
print "$nGoodJobs jobs ran successfully over $nTotalEvents ($goodEvents weighted) events.\n" if $counting; |
189 |
|
print "$nBadJobs jobs failed to run.\n" if $counting; |
247 |
|
printf "%-29s%s\n", " -p, --prefix PREFIX", "output is named PREFIX.root"; |
248 |
|
printf "%-29s%s\n", " -w, --weight WEIGHT", "scale the output by WEIGHT, overriding the"; |
249 |
|
printf "%-29s%s\n", " ", "automatic weighting using the cross section from"; |
250 |
< |
printf "%-29s%s\n", " ", "the database"; |
250 |
> |
printf "%-29s%s\n", " ", "the database; WEIGHT may be a single number or a"; |
251 |
> |
printf "%-29s%s\n", " ", "comma-separated list, one for each input file"; |
252 |
|
printf "%-29s%s\n", " -x, --xsection XSECTION", "use XSECTION to weight the histograms instead of"; |
253 |
|
printf "%-29s%s\n", " ", "the value in the database"; |
254 |
|
|