Project
Loading...
Searching...
No Matches
CARecoWorkflow.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
15
24
26{
27
29{
30 using namespace ca;
32 const auto& tracker = options.tracker;
33 const bool useGeom = tracker.geometry == GeometrySource::Full;
34 const bool writeTracks = options.output == OutputPolicy::All || options.output == OutputPolicy::TracksAndClusterROFs;
35 if (options.kind == WorkflowKind::Reconstruction) {
36 if (options.input == InputStage::DigitsFile) {
37 specs.emplace_back(o2::itsmft::getMFTDigitReaderSpec(tracker.useMC, options.staggering, false, true, "mftdigits.root"));
38 }
39 if (options.input != InputStage::UpstreamClusters) {
40 specs.emplace_back(o2::itsmft::getMFTClustererSpec(tracker.useMC, options.staggering));
41 }
42 if (options.output != OutputPolicy::None) {
43 specs.emplace_back(o2::itsmft::getMFTClusterWriterSpec(tracker.useMC, options.staggering, options.output != OutputPolicy::All));
44 }
45 }
46 if (options.runTracking) {
47 if (tracker.irFrames == IRFrameSource::File) {
48 specs.emplace_back(o2::globaltracking::getIRFrameReaderSpec("ITS", 0, "its-irframe-reader", "o2_its_irframe.root"));
49 }
50 specs.emplace_back(o2::mft::getCATrackerSpec(tracker));
51 if (writeTracks) {
52 specs.emplace_back(o2::mft::getTrackWriterSpec(tracker.useMC, true));
53 }
54 if (options.assessment) {
55 specs.emplace_back(o2::mft::getMFTAssessmentSpec(tracker.useMC, useGeom, options.processGenerated));
56 }
57 if (options.tracksToRecords) {
58 specs.emplace_back(o2::mft::getTracksToRecordsSpec());
59 }
60 }
61 return specs;
62}
63
64} // namespace o2::mft::ca_reco_workflow
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, bool clusterROFOnly=false)
framework::WorkflowSpec getWorkflow(const ca::WorkflowOptions &options)
DataProcessorSpec getMFTAssessmentSpec(bool useMC, bool useGeom, bool processGen, bool finalizeAnalysis=false)
DataProcessorSpec getTracksToRecordsSpec()
o2::framework::DataProcessorSpec getCATrackerSpec(const ca::TrackerOptions &options)
o2::framework::DataProcessorSpec getTrackWriterSpec(bool useMC, bool useCA=false)
Write MFT tracks to a ROOT file.