forked from AliceO2Group/AliceO2
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathRecoWorkflow.cxx
More file actions
80 lines (71 loc) · 2.38 KB
/
RecoWorkflow.cxx
File metadata and controls
80 lines (71 loc) · 2.38 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
// Copyright 2019-2020 CERN and copyright holders of ALICE O2.
// See https://alice-o2.web.cern.ch/copyright for details of the copyright holders.
// All rights not expressly granted are reserved.
//
// This software is distributed under the terms of the GNU General Public
// License v3 (GPL Version 3), copied verbatim in the file "COPYING".
//
// In applying this license CERN does not waive the privileges and immunities
// granted to it by virtue of its status as an Intergovernmental Organization
// or submit itself to any jurisdiction.
/// @file RecoWorkflow.cxx
#include <TTree.h>
#include "ITSMFTWorkflow/ClustererSpec.h"
#include "ITSMFTWorkflow/ClusterWriterSpec.h"
#include "MFTWorkflow/RecoWorkflow.h"
#include "MFTWorkflow/TrackerSpec.h"
#include "MFTWorkflow/TrackWriterSpec.h"
#include "ITSMFTWorkflow/DigitReaderSpec.h"
#include "MFTWorkflow/MFTAssessmentSpec.h"
#include "MFTWorkflow/TracksToRecordsSpec.h"
#include "GlobalTrackingWorkflowReaders/IRFrameReaderSpec.h"
namespace o2
{
namespace mft
{
namespace reco_workflow
{
framework::WorkflowSpec getWorkflow(
bool useMC,
bool doStag,
bool useGeom,
bool upstreamDigits,
bool upstreamClusters,
bool disableRootOutput,
bool runAssessment,
bool processGen,
bool runTracking,
int nThreads,
bool runTracks2Records)
{
framework::WorkflowSpec specs;
if (!(upstreamDigits || upstreamClusters)) {
specs.emplace_back(o2::itsmft::getMFTDigitReaderSpec(useMC, doStag, false, true, "mftdigits.root"));
auto& trackingParam = MFTTrackingParam::Instance();
if (trackingParam.irFramesOnly) {
specs.emplace_back(o2::globaltracking::getIRFrameReaderSpec("ITS", 0, "its-irframe-reader", "o2_its_irframe.root"));
}
}
if (!upstreamClusters) {
specs.emplace_back(o2::itsmft::getMFTClustererSpec(useMC, doStag));
}
if (!disableRootOutput) {
specs.emplace_back(o2::itsmft::getMFTClusterWriterSpec(useMC, doStag));
}
if (runTracking) {
specs.emplace_back(o2::mft::getTrackerSpec(useMC, useGeom, nThreads));
if (!disableRootOutput) {
specs.emplace_back(o2::mft::getTrackWriterSpec(useMC));
}
if (runAssessment) {
specs.emplace_back(o2::mft::getMFTAssessmentSpec(useMC, useGeom, processGen));
}
if (runTracks2Records) {
specs.emplace_back(o2::mft::getTracksToRecordsSpec());
}
}
return specs;
}
} // namespace reco_workflow
} // namespace mft
} // namespace o2