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 doStag,
36 bool useGeom,
37 bool upstreamDigits,
38 bool upstreamClusters,
39 bool disableRootOutput,
40 bool runAssessment,
41 bool processGen,
42 bool runTracking,
43 int nThreads,
44 bool runTracks2Records)
45{
47
48 if (!(upstreamDigits || upstreamClusters)) {
49 specs.emplace_back(o2::itsmft::getMFTDigitReaderSpec(useMC, doStag, false, true, "mftdigits.root"));
50 auto& trackingParam = MFTTrackingParam::Instance();
51 if (trackingParam.irFramesOnly) {
52 specs.emplace_back(o2::globaltracking::getIRFrameReaderSpec("ITS", 0, "its-irframe-reader", "o2_its_irframe.root"));
53 }
54 }
55 if (!upstreamClusters) {
56 specs.emplace_back(o2::itsmft::getMFTClustererSpec(useMC, doStag));
57 }
58 if (!disableRootOutput) {
59 specs.emplace_back(o2::itsmft::getMFTClusterWriterSpec(useMC, doStag));
60 }
61
62 if (runTracking) {
63 specs.emplace_back(o2::mft::getTrackerSpec(useMC, useGeom, nThreads));
64 if (!disableRootOutput) {
65 specs.emplace_back(o2::mft::getTrackWriterSpec(useMC));
66 }
67 if (runAssessment) {
68 specs.emplace_back(o2::mft::getMFTAssessmentSpec(useMC, useGeom, processGen));
69 }
70 if (runTracks2Records) {
71 specs.emplace_back(o2::mft::getTracksToRecordsSpec());
72 }
73 }
74 return specs;
75}
76
77} // namespace reco_workflow
78
79} // namespace mft
80} // 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 getMFTClustererSpec(bool useMC, bool doStag)
framework::DataProcessorSpec getMFTDigitReaderSpec(bool useMC=true, bool doStag=false, bool useCalib=false, bool useTriggers=true, std::string defname="mftdigits.root")
framework::DataProcessorSpec getMFTClusterWriterSpec(bool useMC, bool doStag)
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)
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()
o2::framework::DataProcessorSpec getTrackWriterSpec(bool useMC)
a couple of static helper functions to create timestamp values for CCDB queries or override obsolete ...