43void customize(std::vector<ConfigParamSpec>& workflowOptions)
46 const std::string configHelp =
47 "Semicolon-separated key=value strings. ITS beam-background study parameters:\n"
48 "Key prefix: ITSBeamBackgroundStudyParam.\n"
49 "dumpEveryTF=<int> (default: " +
51 "): dump ROOT files every N TFs; <= 0 writes only at end of stream.\n"
52 "skimmedOnlyAfterTF=<int> (default: " +
54 "): TF threshold above which only the skimmed output file is written.\n"
55 "saveClusterParameters=<true|false> (default: " +
56 (beamParams.saveClusterParameters ?
"true" :
"false") +
57 "): save cluster phi, r, z, size, colspan and rowspan vectors in output trees.";
59 std::vector<o2::framework::ConfigParamSpec> options{
60 {
"input-from-upstream", VariantType::Bool,
false, {
"read clusters from the clusterer"}},
61 {
"track-sources", VariantType::String, std::string{
"ITS,ITS-TPC-TRD-TOF,ITS-TPC-TOF,ITS-TPC,ITS-TPC-TRD,ZDC"}, {
"comma-separated list of track sources to use"}},
62 {
"cluster-sources", VariantType::String, std::string{
"ITS"}, {
"comma-separated list of cluster sources to use"}},
63 {
"disable-root-input", VariantType::Bool,
false, {
"disable root-files input reader"}},
64 {
"disable-mc", VariantType::Bool,
false, {
"disable MC propagation even if available"}},
65 {
"cluster-size-study", VariantType::Bool,
false, {
"Perform the average cluster size study"}},
66 {
"pid-study", VariantType::Bool,
false, {
"Perform the PID study"}},
67 {
"track-study", VariantType::Bool,
false, {
"Perform the track study"}},
68 {
"impact-parameter-study", VariantType::Bool,
false, {
"Perform the impact parameter study"}},
69 {
"anomaly-study", VariantType::Bool,
false, {
"Perform the anomaly study"}},
70 {
"its-beambkg-study", VariantType::Bool,
false, {
"Perform the ITS beam background study"}},
71 {
"track-extension-study", VariantType::Bool,
false, {
"Perform the track extension study"}},
72 {
"efficiency-study", VariantType::Bool,
false, {
"Perform the efficiency study"}},
73 {
"configKeyValues", VariantType::String,
"", {configHelp}}};
76 std::swap(workflowOptions, options);
87 auto useMC = !configcontext.
options().
get<
bool>(
"disable-mc");
90 std::shared_ptr<o2::steer::MCKinematicsReader> mcKinematicsReader;
92 mcKinematicsReader = std::make_shared<o2::steer::MCKinematicsReader>(
"collisioncontext.root");
96 if (configcontext.
options().
get<
bool>(
"impact-parameter-study")) {
103 if (configcontext.
options().
get<
bool>(
"cluster-size-study")) {
110 if (configcontext.
options().
get<
bool>(
"pid-study")) {
117 if (configcontext.
options().
get<
bool>(
"track-study")) {
121 if (!configcontext.
options().
get<
bool>(
"input-from-upstream")) {
126 if (configcontext.
options().
get<
bool>(
"anomaly-study")) {
129 if (!configcontext.
options().
get<
bool>(
"input-from-upstream")) {
134 if (configcontext.
options().
get<
bool>(
"its-beambkg-study")) {
140 if (!configcontext.
options().
get<
bool>(
"input-from-upstream")) {
145 if (configcontext.
options().
get<
bool>(
"track-extension-study")) {
147 LOGP(fatal,
"Track Extension Study needs MC!");
155 if (configcontext.
options().
get<
bool>(
"efficiency-study")) {
159 if (!configcontext.
options().
get<
bool>(
"input-from-upstream")) {
165 LOGP(info,
"No study selected, dryrunning");
172 return std::move(specs);
ConfigParamRegistry & options() const
o2::framework::DataProcessorSpec getAvgClusSizeStudy(mask_t srcTracksMask, mask_t srcClustersMask, bool useMC, std::shared_ptr< o2::steer::MCKinematicsReader > kineReader, bool itsStag)
o2::framework::DataProcessorSpec getEfficiencyStudy(mask_t srcTracksMask, mask_t srcClustersMask, bool useMC, std::shared_ptr< o2::steer::MCKinematicsReader > kineReader, bool itsStag)
o2::framework::DataProcessorSpec getPIDStudy(mask_t srcTracksMask, mask_t srcClustersMask, bool useMC, std::shared_ptr< o2::steer::MCKinematicsReader > kineReader, bool itsStag)
o2::framework::DataProcessorSpec getTrackCheckStudy(mask_t srcTracksMask, mask_t srcClustersMask, bool useMC, std::shared_ptr< o2::steer::MCKinematicsReader > kineReader, bool itsStag)
WorkflowSpec defineDataProcessing(ConfigContext const &configcontext)
void customize(std::vector< o2::framework::CallbacksPolicy > &policies)