forked from AliceO2Group/AliceO2
-
Notifications
You must be signed in to change notification settings - Fork 3
Expand file tree
/
Copy pathRecoWorkflow.h
More file actions
98 lines (89 loc) · 4.46 KB
/
RecoWorkflow.h
File metadata and controls
98 lines (89 loc) · 4.46 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
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
// 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.
#ifndef O2_TPC_RECOWORKFLOW_H
#define O2_TPC_RECOWORKFLOW_H
/// @file RecoWorkflow.h
/// @author Matthias Richter
/// @since 2018-09-26
/// @brief Workflow definition for the TPC reconstruction
#include "Framework/WorkflowSpec.h"
#include <vector>
#include <array>
#include <string>
#include <numeric> // std::iota
namespace o2
{
namespace framework
{
struct InputSpec;
}
namespace tpc
{
struct CorrectionMapsLoaderGloOpts;
namespace reco_workflow
{
/// define input and output types of the workflow
enum struct InputType { PassThrough, // No processing, just pass through available inputs to the writers, defined by the OutputType
Digitizer, // directly read digits from channel {TPC:DIGITS}
Digits, // read digits from file
ClustersHardware, // read hardware clusters in raw page format from file
Clusters, // read native clusters from file
CompClustersRoot, // read compressed cluster in ROOT format
CompClustersFlat, // compressed clusters from flat format (e.g. from CTF)
CompClustersFlatForEncode, // compressed clusters in flat format, used as input for the entropy encoder, no gpu-reco
EncodedClusters, // read encoded clusters
ZSRaw,
};
/// Output types of the workflow, workflow layout is built depending on configured types
/// - Digits simulated digits
/// - ClustersHardware the first attempt of a raw format storing ClusterHardware in 8k pages
/// - Clusters decoded clusters, ClusterNative, as input to the tracker
/// - Tracks tracks
/// - CompClusters compressed clusters, CompClusters container
/// - EncodedClusters the encoded CompClusters container
/// - ZSRaw TPC zero-suppressed raw data
enum struct OutputType { Digits,
ClustersHardware,
Clusters,
Tracks,
CompClustersRoot,
CompClustersFlat,
EncodedClusters,
DisableWriter,
SendClustersPerSector,
ZSRaw,
QA,
NoSharedClusterMap,
TPCTriggers
};
using CompletionPolicyData = std::vector<framework::InputSpec>;
/// create the workflow for TPC reconstruction
framework::WorkflowSpec getWorkflow(CompletionPolicyData* policyData, //
std::vector<int> const& tpcSectors, //
unsigned long tpcSectorMask, //
std::vector<int> const& laneConfiguration, //
const o2::tpc::CorrectionMapsLoaderGloOpts& sclOpts, //
bool propagateMC = true, unsigned nLanes = 1, //
std::string const& cfgInput = "digitizer", //
std::string const& cfgOutput = "tracks", //
bool disableRootInput = false, //
int caClusterer = 0, //
int zsOnTheFly = 0,
bool askDISTSTF = true,
bool selIR = false,
bool filteredInp = false,
int deadMapSources = -1,
bool useMCTimeGain = false);
void cleanupCallback();
} // end namespace reco_workflow
} // end namespace tpc
} // end namespace o2
#endif // O2_TPC_RECOWORKFLOW_H