ATLAS Offline Software
LArCalorimeter
LArCafJobs
src
LArSamplesMerge.cxx
Go to the documentation of this file.
1
2
/*
3
Copyright (C) 2002-2021 CERN for the benefit of the ATLAS collaboration
4
*/
5
6
//Dear emacs, this is -*-c++-*-
7
8
#include "
LArCafJobs/PersistentAccessor.h
"
9
#include <vector>
10
#include <string>
11
#include <iostream>
12
13
#include "TROOT.h"
14
#include "TApplication.h"
15
#include "TSystem.h"
16
#include "TFile.h"
17
#include "
CxxUtils/checker_macros.h
"
18
19
using namespace
LArSamples
;
20
21
int
main
ATLAS_NOT_THREAD_SAFE
(
int
argc
,
char
**
argv
) {
22
23
if
(
argc
<3 || (
argc
>1 && (!strcmp(
argv
[1],
"-h"
) || !strcmp(
argv
[1],
"--help"
)))) {
24
std::cout <<
"Syntax:"
<< std::endl;
25
std::cout <<
"LArSamplesMerge file1 file2 ... outFile"
<< std::endl;
26
return
-1;
27
}
28
29
30
TROOT
root
(
"root"
,
"root"
);
31
gSystem->Load(
"libLArCafJobsDict.so"
);
32
33
std::vector<TString>
inFileNames
;
34
std::string
outFileName
(
argv
[
argc
-1]);
35
36
int
result
=0;
37
38
for
(
int
i
=1;
i
<
argc
-1;++
i
)
39
inFileNames
.emplace_back(
argv
[
i
]);
40
41
42
std::vector<const PersistentAccessor*>
accessors
;
43
44
for
(
const
TString&
fileName
:
inFileNames
) {
45
PersistentAccessor
*
acc
=
PersistentAccessor::open
(
fileName
);
46
if
(!
acc
) {
47
std::cout <<
"ERROR failed to open "
<<
fileName
<< std::endl;
48
result
=-1;
49
}
50
else
{
51
std::cout <<
"Open file "
<<
fileName
<<
" with "
<<
acc
->nEvents() <<
" events."
<< std::endl;
52
accessors
.push_back(
acc
);
53
}
54
}
55
56
const
PersistentAccessor
*
output
=
PersistentAccessor::merge
(
accessors
,
outFileName
);
57
if
(!
output
) {
58
std::cout <<
"ERROR: Failed to merge files"
<< std::endl;
59
result
=-2;
60
}
61
else
{
62
std::cout <<
"Wrote output file "
<<
outFileName
<<
" with "
<<
output
->nEvents() <<
" events."
<< std::endl;
63
output
->file()->Close();
64
std::cout <<
"Out file closed"
<<std::endl;
65
}
66
67
return
result
;
68
}
69
70
71
get_generator_info.result
result
Definition:
get_generator_info.py:21
LArSamples::PersistentAccessor
Definition:
PersistentAccessor.h:24
LArSamples
Definition:
AbsShape.h:24
sendEI_SPB.root
root
Definition:
sendEI_SPB.py:34
CombineRootFiles.inFileNames
inFileNames
Definition:
CombineRootFiles.py:22
PersistentAccessor.h
DumpGeoConfig.outFileName
string outFileName
Definition:
DumpGeoConfig.py:252
main
int main(int, char **)
Main class for all the CppUnit test classes
Definition:
CppUnit_SGtestdriver.cxx:141
FortranAlgorithmOptions.fileName
fileName
Definition:
FortranAlgorithmOptions.py:13
lumiFormat.i
int i
Definition:
lumiFormat.py:85
LArCellNtuple.argv
argv
Definition:
LArCellNtuple.py:152
AthenaPoolTestRead.acc
acc
Definition:
AthenaPoolTestRead.py:16
DQHistogramMergeRegExp.argc
argc
Definition:
DQHistogramMergeRegExp.py:20
LArSamples::PersistentAccessor::open
static PersistentAccessor * open(const TString &fileName)
Definition:
PersistentAccessor.cxx:65
merge.output
output
Definition:
merge.py:17
ATLAS_NOT_THREAD_SAFE
int main ATLAS_NOT_THREAD_SAFE(int argc, char **argv)
Definition:
LArSamplesMerge.cxx:21
xAODRootTest.accessors
dictionary accessors
Definition:
xAODRootTest.py:73
checker_macros.h
Define macros for attributes used to control the static checker.
LArSamples::PersistentAccessor::merge
static PersistentAccessor * merge(const std::vector< const PersistentAccessor * > &accessors, const TString &fileName)
Definition:
PersistentAccessor.cxx:181
Generated on Thu Nov 7 2024 21:19:59 for ATLAS Offline Software by
1.8.18