Project
Loading...
Searching...
No Matches
RecoWorkflow.cxx
Go to the documentation of this file.
1// Copyright 2019-2020 CERN and copyright holders of ALICE O2.
2// See https://alice-o2.web.cern.ch/copyright for details of the copyright holders.
3// All rights not expressly granted are reserved.
4//
5// This software is distributed under the terms of the GNU General Public
6// License v3 (GPL Version 3), copied verbatim in the file "COPYING".
7//
8// In applying this license CERN does not waive the privileges and immunities
9// granted to it by virtue of its status as an Intergovernmental Organization
10// or submit itself to any jurisdiction.
11
13
14#include <TTree.h>
24
25namespace o2
26{
27namespace mft
28{
29
30namespace reco_workflow
31{
32
34 bool useMC,
35 bool useGeom,
36 bool upstreamDigits,
37 bool upstreamClusters,
38 bool disableRootOutput,
39 bool runAssessment,
40 bool processGen,
41 bool runTracking,
42 int nThreads,
43 bool runTracks2Records)
44{
46
47 if (!(upstreamDigits || upstreamClusters)) {
48 specs.emplace_back(o2::itsmft::getMFTDigitReaderSpec(useMC, false, true, "mftdigits.root"));
49 auto& trackingParam = MFTTrackingParam::Instance();
50 if (trackingParam.irFramesOnly) {
51 specs.emplace_back(o2::globaltracking::getIRFrameReaderSpec("ITS", 0, "its-irframe-reader", "o2_its_irframe.root"));
52 }
53 }
54 if (!upstreamClusters) {
55 specs.emplace_back(o2::mft::getClustererSpec(useMC));
56 }
57 if (!disableRootOutput) {
58 specs.emplace_back(o2::mft::getClusterWriterSpec(useMC));
59 }
60
61 if (runTracking) {
62 specs.emplace_back(o2::mft::getTrackerSpec(useMC, useGeom, nThreads));
63 if (!disableRootOutput) {
64 specs.emplace_back(o2::mft::getTrackWriterSpec(useMC));
65 }
66 if (runAssessment) {
67 specs.emplace_back(o2::mft::getMFTAssessmentSpec(useMC, useGeom, processGen));
68 }
69 if (runTracks2Records) {
70 specs.emplace_back(o2::mft::getTracksToRecordsSpec());
71 }
72 }
73 return specs;
74}
75
76} // namespace reco_workflow
77
78} // namespace mft
79} // namespace o2
Class to run tracks to records needed to feed standalone alignment for MFT.
std::vector< DataProcessorSpec > WorkflowSpec
framework::DataProcessorSpec getIRFrameReaderSpec(o2::header::DataOrigin origin, uint32_t subSpec, const std::string &devName, const std::string &defFileName)
framework::DataProcessorSpec getMFTDigitReaderSpec(bool useMC=true, bool useCalib=false, bool useTriggers=true, std::string defname="o2_mftdigits.root")
framework::WorkflowSpec getWorkflow(bool useMC, bool useGeom, bool upstreamDigits, bool upstreamClusters, bool disableRootOutput, bool runAssessment, bool processGen, bool runTracking, int nThreads, bool runTracks2Records)
o2::framework::DataProcessorSpec getTrackerSpec(bool useMC, bool useGeom, int nThreads)
create a processor spec
DataProcessorSpec getMFTAssessmentSpec(bool useMC, bool useGeom, bool processGen, bool finalizeAnalysis=false)
DataProcessorSpec getTracksToRecordsSpec()
framework::DataProcessorSpec getClustererSpec(bool useMC)
framework::DataProcessorSpec getClusterWriterSpec(bool useMC)
o2::framework::DataProcessorSpec getTrackWriterSpec(bool useMC)
a couple of static helper functions to create timestamp values for CCDB queries or override obsolete ...