diff --git a/Analysis/CMakeLists.txt b/Analysis/CMakeLists.txt index 5f5ec9b76515e..da1c87a32b0b3 100644 --- a/Analysis/CMakeLists.txt +++ b/Analysis/CMakeLists.txt @@ -12,3 +12,4 @@ add_subdirectory(Core) add_subdirectory(DataModel) add_subdirectory(Tasks) add_subdirectory(Tutorials) +add_subdirectory(PWGDQ) diff --git a/Analysis/Core/CMakeLists.txt b/Analysis/Core/CMakeLists.txt index f279a753f0b93..f8e732ee91b70 100644 --- a/Analysis/Core/CMakeLists.txt +++ b/Analysis/Core/CMakeLists.txt @@ -11,10 +11,6 @@ o2_add_library(AnalysisCore SOURCES src/CorrelationContainer.cxx src/TrackSelection.cxx - src/VarManager.cxx - src/HistogramManager.cxx - src/AnalysisCut.cxx - src/AnalysisCompositeCut.cxx src/TriggerAliases.cxx src/HFConfigurables.cxx PUBLIC_LINK_LIBRARIES O2::Framework O2::AnalysisDataModel) @@ -23,10 +19,6 @@ o2_target_root_dictionary(AnalysisCore HEADERS include/AnalysisCore/CorrelationContainer.h include/AnalysisCore/TrackSelection.h include/AnalysisCore/TrackSelectionDefaults.h - include/AnalysisCore/VarManager.h - include/AnalysisCore/HistogramManager.h - include/AnalysisCore/AnalysisCut.h - include/AnalysisCore/AnalysisCompositeCut.h include/AnalysisCore/TriggerAliases.h include/AnalysisCore/MC.h include/AnalysisCore/HFConfigurables.h diff --git a/Analysis/Core/src/AnalysisCoreLinkDef.h b/Analysis/Core/src/AnalysisCoreLinkDef.h index c550c9a41d98a..18e2437504797 100644 --- a/Analysis/Core/src/AnalysisCoreLinkDef.h +++ b/Analysis/Core/src/AnalysisCoreLinkDef.h @@ -16,8 +16,4 @@ #pragma link C++ class TrackSelection + ; #pragma link C++ class TriggerAliases + ; -#pragma link C++ class VarManager + ; -#pragma link C++ class HistogramManager + ; -#pragma link C++ class AnalysisCut + ; -#pragma link C++ class AnalysisCompositeCut + ; #pragma link C++ class HFTrackIndexSkimsCreatorConfigs + ; diff --git a/Analysis/PWGDQ/CMakeLists.txt b/Analysis/PWGDQ/CMakeLists.txt new file mode 100644 index 0000000000000..06ba6b261cd49 --- /dev/null +++ b/Analysis/PWGDQ/CMakeLists.txt @@ -0,0 +1,25 @@ +# Copyright CERN and copyright holders of ALICE O2. This software is distributed +# under the terms of the GNU General Public License v3 (GPL Version 3), copied +# verbatim in the file "COPYING". +# +# See http://alice-o2.web.cern.ch/license for full licensing information. +# +# 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. + +o2_add_library(PWGDQCore + SOURCES src/VarManager.cxx + src/HistogramManager.cxx + src/AnalysisCut.cxx + src/AnalysisCompositeCut.cxx + PUBLIC_LINK_LIBRARIES O2::Framework O2::AnalysisCore) + +o2_target_root_dictionary(PWGDQCore + HEADERS include/PWGDQCore/AnalysisCut.h + include/PWGDQCore/AnalysisCompositeCut.h + include/PWGDQCore/VarManager.h + include/PWGDQCore/HistogramManager.h + include/PWGDQCore/CutsLibrary.h + include/PWGDQCore/HistogramsLibrary.h + LINKDEF src/PWGDQCoreLinkDef.h) diff --git a/Analysis/Core/include/AnalysisCore/AnalysisCompositeCut.h b/Analysis/PWGDQ/include/PWGDQCore/AnalysisCompositeCut.h similarity index 88% rename from Analysis/Core/include/AnalysisCore/AnalysisCompositeCut.h rename to Analysis/PWGDQ/include/PWGDQCore/AnalysisCompositeCut.h index cfa8a95543ed0..5da1b34dd5811 100644 --- a/Analysis/Core/include/AnalysisCore/AnalysisCompositeCut.h +++ b/Analysis/PWGDQ/include/PWGDQCore/AnalysisCompositeCut.h @@ -16,7 +16,7 @@ #ifndef AnalysisCompositeCut_H #define AnalysisCompositeCut_H -#include "AnalysisCore/AnalysisCut.h" +#include "PWGDQCore/AnalysisCut.h" #include //_________________________________________________________________________ @@ -44,8 +44,8 @@ class AnalysisCompositeCut : public AnalysisCut bool IsSelected(float* values) override; protected: - bool fOptionUseAND; // true (default): apply AND on all cuts; false: use OR - std::vector fCutList; // list of cuts + bool fOptionUseAND; // true (default): apply AND on all cuts; false: use OR + std::vector fCutList; // list of cuts std::vector fCompositeCutList; // list of composite cuts ClassDef(AnalysisCompositeCut, 2); diff --git a/Analysis/Core/include/AnalysisCore/AnalysisCut.h b/Analysis/PWGDQ/include/PWGDQCore/AnalysisCut.h similarity index 100% rename from Analysis/Core/include/AnalysisCore/AnalysisCut.h rename to Analysis/PWGDQ/include/PWGDQCore/AnalysisCut.h diff --git a/Analysis/Tasks/PWGDQ/CutsLibrary.h b/Analysis/PWGDQ/include/PWGDQCore/CutsLibrary.h similarity index 97% rename from Analysis/Tasks/PWGDQ/CutsLibrary.h rename to Analysis/PWGDQ/include/PWGDQCore/CutsLibrary.h index 6775c4aff8e38..4b34844464934 100644 --- a/Analysis/Tasks/PWGDQ/CutsLibrary.h +++ b/Analysis/PWGDQ/include/PWGDQCore/CutsLibrary.h @@ -10,9 +10,9 @@ // // Contact: iarsene@cern.ch, i.c.arsene@fys.uio.no // -#include "AnalysisCore/AnalysisCut.h" -#include "AnalysisCore/AnalysisCompositeCut.h" -#include "AnalysisCore/VarManager.h" +#include "PWGDQCore/AnalysisCut.h" +#include "PWGDQCore/AnalysisCompositeCut.h" +#include "PWGDQCore/VarManager.h" namespace o2::aod { diff --git a/Analysis/Core/include/AnalysisCore/HistogramManager.h b/Analysis/PWGDQ/include/PWGDQCore/HistogramManager.h similarity index 100% rename from Analysis/Core/include/AnalysisCore/HistogramManager.h rename to Analysis/PWGDQ/include/PWGDQCore/HistogramManager.h diff --git a/Analysis/Tasks/PWGDQ/HistogramsLibrary.h b/Analysis/PWGDQ/include/PWGDQCore/HistogramsLibrary.h similarity index 99% rename from Analysis/Tasks/PWGDQ/HistogramsLibrary.h rename to Analysis/PWGDQ/include/PWGDQCore/HistogramsLibrary.h index a888dc05ddccb..361bb3fea9edc 100644 --- a/Analysis/Tasks/PWGDQ/HistogramsLibrary.h +++ b/Analysis/PWGDQ/include/PWGDQCore/HistogramsLibrary.h @@ -10,8 +10,8 @@ // // Contact: iarsene@cern.ch, i.c.arsene@fys.uio.no // -#include "AnalysisCore/HistogramManager.h" -#include "AnalysisCore/VarManager.h" +#include "PWGDQCore/HistogramManager.h" +#include "PWGDQCore/VarManager.h" namespace o2::aod { diff --git a/Analysis/Core/include/AnalysisCore/VarManager.h b/Analysis/PWGDQ/include/PWGDQCore/VarManager.h similarity index 100% rename from Analysis/Core/include/AnalysisCore/VarManager.h rename to Analysis/PWGDQ/include/PWGDQCore/VarManager.h diff --git a/Analysis/Core/src/AnalysisCompositeCut.cxx b/Analysis/PWGDQ/src/AnalysisCompositeCut.cxx similarity index 98% rename from Analysis/Core/src/AnalysisCompositeCut.cxx rename to Analysis/PWGDQ/src/AnalysisCompositeCut.cxx index af7268aec5d12..160131d9c74f0 100644 --- a/Analysis/Core/src/AnalysisCompositeCut.cxx +++ b/Analysis/PWGDQ/src/AnalysisCompositeCut.cxx @@ -8,7 +8,7 @@ // granted to it by virtue of its status as an Intergovernmental Organization // or submit itself to any jurisdiction. -#include "AnalysisCore/AnalysisCompositeCut.h" +#include "PWGDQCore/AnalysisCompositeCut.h" ClassImp(AnalysisCompositeCut) diff --git a/Analysis/Core/src/AnalysisCut.cxx b/Analysis/PWGDQ/src/AnalysisCut.cxx similarity index 92% rename from Analysis/Core/src/AnalysisCut.cxx rename to Analysis/PWGDQ/src/AnalysisCut.cxx index 9a3a4475960c9..e6ba9a44abada 100644 --- a/Analysis/Core/src/AnalysisCut.cxx +++ b/Analysis/PWGDQ/src/AnalysisCut.cxx @@ -8,11 +8,7 @@ // granted to it by virtue of its status as an Intergovernmental Organization // or submit itself to any jurisdiction. -#include "AnalysisCore/AnalysisCut.h" - -#include -using std::cout; -using std::endl; +#include "PWGDQCore/AnalysisCut.h" ClassImp(AnalysisCut); diff --git a/Analysis/Core/src/HistogramManager.cxx b/Analysis/PWGDQ/src/HistogramManager.cxx similarity index 99% rename from Analysis/Core/src/HistogramManager.cxx rename to Analysis/PWGDQ/src/HistogramManager.cxx index 731d12925761a..eaef3413f6f41 100644 --- a/Analysis/Core/src/HistogramManager.cxx +++ b/Analysis/PWGDQ/src/HistogramManager.cxx @@ -8,7 +8,7 @@ // granted to it by virtue of its status as an Intergovernmental Organization // or submit itself to any jurisdiction. -#include "AnalysisCore/HistogramManager.h" +#include "PWGDQCore/HistogramManager.h" #include #include diff --git a/Analysis/Tasks/PWGDQ/PWGDQCoreLinkDef.h b/Analysis/PWGDQ/src/PWGDQCoreLinkDef.h similarity index 76% rename from Analysis/Tasks/PWGDQ/PWGDQCoreLinkDef.h rename to Analysis/PWGDQ/src/PWGDQCoreLinkDef.h index d2769ae13ba53..170a8b7a38bab 100644 --- a/Analysis/Tasks/PWGDQ/PWGDQCoreLinkDef.h +++ b/Analysis/PWGDQ/src/PWGDQCoreLinkDef.h @@ -11,3 +11,8 @@ #pragma link off all globals; #pragma link off all classes; #pragma link off all functions; + +#pragma link C++ class VarManager + ; +#pragma link C++ class HistogramManager + ; +#pragma link C++ class AnalysisCut + ; +#pragma link C++ class AnalysisCompositeCut + ; diff --git a/Analysis/Core/src/VarManager.cxx b/Analysis/PWGDQ/src/VarManager.cxx similarity index 99% rename from Analysis/Core/src/VarManager.cxx rename to Analysis/PWGDQ/src/VarManager.cxx index f3706347c8ceb..adfb2face737c 100644 --- a/Analysis/Core/src/VarManager.cxx +++ b/Analysis/PWGDQ/src/VarManager.cxx @@ -8,7 +8,7 @@ // granted to it by virtue of its status as an Intergovernmental Organization // or submit itself to any jurisdiction. -#include "AnalysisCore/VarManager.h" +#include "PWGDQCore/VarManager.h" #include diff --git a/Analysis/Tasks/PWGDQ/CMakeLists.txt b/Analysis/Tasks/PWGDQ/CMakeLists.txt index fa46f30e0675c..e5de4e409c570 100644 --- a/Analysis/Tasks/PWGDQ/CMakeLists.txt +++ b/Analysis/Tasks/PWGDQ/CMakeLists.txt @@ -1,42 +1,44 @@ -o2_add_library(PWGDQCore - SOURCES - PUBLIC_LINK_LIBRARIES O2::Framework O2::AnalysisCore) - -o2_target_root_dictionary(PWGDQCore - HEADERS CutsLibrary.h HistogramsLibrary.h - LINKDEF PWGDQCoreLinkDef.h) +# Copyright CERN and copyright holders of ALICE O2. This software is distributed +# under the terms of the GNU General Public License v3 (GPL Version 3), copied +# verbatim in the file "COPYING". +# +# See http://alice-o2.web.cern.ch/license for full licensing information. +# +# 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. o2_add_dpl_workflow(table-maker SOURCES tableMaker.cxx - PUBLIC_LINK_LIBRARIES O2::Framework O2::AnalysisDataModel O2::DetectorsBase O2::AnalysisCore + PUBLIC_LINK_LIBRARIES O2::Framework O2::AnalysisDataModel O2::DetectorsBase O2::AnalysisCore O2::PWGDQCore COMPONENT_NAME Analysis) o2_add_dpl_workflow(table-reader SOURCES tableReader.cxx - PUBLIC_LINK_LIBRARIES O2::Framework O2::AnalysisDataModel O2::DetectorsBase O2::AnalysisCore + PUBLIC_LINK_LIBRARIES O2::Framework O2::AnalysisDataModel O2::DetectorsBase O2::AnalysisCore O2::PWGDQCore COMPONENT_NAME Analysis) o2_add_dpl_workflow(dilepton-ee SOURCES dileptonEE.cxx - PUBLIC_LINK_LIBRARIES O2::Framework O2::AnalysisDataModel O2::DetectorsBase O2::AnalysisCore + PUBLIC_LINK_LIBRARIES O2::Framework O2::AnalysisDataModel O2::DetectorsBase O2::AnalysisCore O2::PWGDQCore COMPONENT_NAME Analysis) o2_add_dpl_workflow(dilepton-mumu SOURCES dileptonMuMu.cxx - PUBLIC_LINK_LIBRARIES O2::Framework O2::AnalysisDataModel O2::DetectorsBase O2::AnalysisCore + PUBLIC_LINK_LIBRARIES O2::Framework O2::AnalysisDataModel O2::DetectorsBase O2::AnalysisCore O2::PWGDQCore COMPONENT_NAME Analysis) o2_add_dpl_workflow(table-maker-pp SOURCES tableMaker_pp.cxx - PUBLIC_LINK_LIBRARIES O2::Framework O2::AnalysisDataModel O2::DetectorsBase O2::AnalysisCore + PUBLIC_LINK_LIBRARIES O2::Framework O2::AnalysisDataModel O2::DetectorsBase O2::AnalysisCore O2::PWGDQCore COMPONENT_NAME Analysis) o2_add_dpl_workflow(dq-filter-pp SOURCES filterPP.cxx - PUBLIC_LINK_LIBRARIES O2::Framework O2::AnalysisDataModel O2::DetectorsBase O2::AnalysisCore + PUBLIC_LINK_LIBRARIES O2::Framework O2::AnalysisDataModel O2::DetectorsBase O2::AnalysisCore O2::PWGDQCore COMPONENT_NAME Analysis) o2_add_dpl_workflow(table-maker-muon-pp SOURCES tableMakerMuon_pp.cxx - PUBLIC_LINK_LIBRARIES O2::Framework O2::AnalysisDataModel O2::DetectorsBase O2::AnalysisCore + PUBLIC_LINK_LIBRARIES O2::Framework O2::AnalysisDataModel O2::DetectorsBase O2::AnalysisCore O2::PWGDQCore COMPONENT_NAME Analysis) diff --git a/Analysis/Tasks/PWGDQ/dileptonEE.cxx b/Analysis/Tasks/PWGDQ/dileptonEE.cxx index fc93b1854afa5..d0784a184af11 100644 --- a/Analysis/Tasks/PWGDQ/dileptonEE.cxx +++ b/Analysis/Tasks/PWGDQ/dileptonEE.cxx @@ -15,10 +15,10 @@ #include "Framework/AnalysisDataModel.h" #include "Framework/ASoAHelpers.h" #include "AnalysisDataModel/ReducedInfoTables.h" -#include "AnalysisCore/VarManager.h" -#include "AnalysisCore/HistogramManager.h" -#include "AnalysisCore/AnalysisCut.h" -#include "AnalysisCore/AnalysisCompositeCut.h" +#include "PWGDQCore/VarManager.h" +#include "PWGDQCore/HistogramManager.h" +#include "PWGDQCore/AnalysisCut.h" +#include "PWGDQCore/AnalysisCompositeCut.h" #include #include #include diff --git a/Analysis/Tasks/PWGDQ/dileptonMuMu.cxx b/Analysis/Tasks/PWGDQ/dileptonMuMu.cxx index e3b9284a53f8f..b63321b201daf 100644 --- a/Analysis/Tasks/PWGDQ/dileptonMuMu.cxx +++ b/Analysis/Tasks/PWGDQ/dileptonMuMu.cxx @@ -15,10 +15,10 @@ #include "Framework/AnalysisDataModel.h" #include "Framework/ASoAHelpers.h" #include "AnalysisDataModel/ReducedInfoTables.h" -#include "AnalysisCore/VarManager.h" -#include "AnalysisCore/HistogramManager.h" -#include "AnalysisCore/AnalysisCut.h" -#include "AnalysisCore/AnalysisCompositeCut.h" +#include "PWGDQCore/VarManager.h" +#include "PWGDQCore/HistogramManager.h" +#include "PWGDQCore/AnalysisCut.h" +#include "PWGDQCore/AnalysisCompositeCut.h" #include #include #include diff --git a/Analysis/Tasks/PWGDQ/filterPP.cxx b/Analysis/Tasks/PWGDQ/filterPP.cxx index 1fb77b8e9bff6..5b5c3573f8838 100644 --- a/Analysis/Tasks/PWGDQ/filterPP.cxx +++ b/Analysis/Tasks/PWGDQ/filterPP.cxx @@ -19,12 +19,12 @@ #include "AnalysisDataModel/Centrality.h" #include "AnalysisCore/TriggerAliases.h" #include "AnalysisDataModel/ReducedInfoTables.h" -#include "AnalysisCore/VarManager.h" -#include "AnalysisCore/HistogramManager.h" -#include "AnalysisCore/AnalysisCut.h" -#include "AnalysisCore/AnalysisCompositeCut.h" -#include "CutsLibrary.h" -#include "HistogramsLibrary.h" +#include "PWGDQCore/VarManager.h" +#include "PWGDQCore/HistogramManager.h" +#include "PWGDQCore/AnalysisCut.h" +#include "PWGDQCore/AnalysisCompositeCut.h" +#include "PWGDQCore/CutsLibrary.h" +#include "PWGDQCore/HistogramsLibrary.h" #include "AnalysisDataModel/PID/PIDResponse.h" #include "AnalysisDataModel/TrackSelectionTables.h" #include diff --git a/Analysis/Tasks/PWGDQ/tableMaker.cxx b/Analysis/Tasks/PWGDQ/tableMaker.cxx index 4f9eaf2d8a788..03f6a2a6eaffb 100644 --- a/Analysis/Tasks/PWGDQ/tableMaker.cxx +++ b/Analysis/Tasks/PWGDQ/tableMaker.cxx @@ -19,10 +19,10 @@ #include "AnalysisDataModel/Centrality.h" #include "AnalysisCore/TriggerAliases.h" #include "AnalysisDataModel/ReducedInfoTables.h" -#include "AnalysisCore/VarManager.h" -#include "AnalysisCore/HistogramManager.h" -#include "AnalysisCore/AnalysisCut.h" -#include "AnalysisCore/AnalysisCompositeCut.h" +#include "PWGDQCore/VarManager.h" +#include "PWGDQCore/HistogramManager.h" +#include "PWGDQCore/AnalysisCut.h" +#include "PWGDQCore/AnalysisCompositeCut.h" #include "AnalysisDataModel/PID/PIDResponse.h" #include "AnalysisDataModel/TrackSelectionTables.h" #include diff --git a/Analysis/Tasks/PWGDQ/tableMakerMuon_pp.cxx b/Analysis/Tasks/PWGDQ/tableMakerMuon_pp.cxx index 9877a5a7f8b7f..ea4b779414549 100644 --- a/Analysis/Tasks/PWGDQ/tableMakerMuon_pp.cxx +++ b/Analysis/Tasks/PWGDQ/tableMakerMuon_pp.cxx @@ -19,10 +19,10 @@ #include "AnalysisDataModel/Centrality.h" #include "AnalysisCore/TriggerAliases.h" #include "AnalysisDataModel/ReducedInfoTables.h" -#include "AnalysisCore/VarManager.h" -#include "AnalysisCore/HistogramManager.h" -#include "AnalysisCore/AnalysisCut.h" -#include "AnalysisCore/AnalysisCompositeCut.h" +#include "PWGDQCore/VarManager.h" +#include "PWGDQCore/HistogramManager.h" +#include "PWGDQCore/AnalysisCut.h" +#include "PWGDQCore/AnalysisCompositeCut.h" #include "AnalysisDataModel/PID/PIDResponse.h" #include "AnalysisDataModel/TrackSelectionTables.h" #include diff --git a/Analysis/Tasks/PWGDQ/tableMaker_pp.cxx b/Analysis/Tasks/PWGDQ/tableMaker_pp.cxx index 68175ccbe15ae..6f4603193b33a 100644 --- a/Analysis/Tasks/PWGDQ/tableMaker_pp.cxx +++ b/Analysis/Tasks/PWGDQ/tableMaker_pp.cxx @@ -19,10 +19,10 @@ #include "AnalysisDataModel/Centrality.h" #include "AnalysisCore/TriggerAliases.h" #include "AnalysisDataModel/ReducedInfoTables.h" -#include "AnalysisCore/VarManager.h" -#include "AnalysisCore/HistogramManager.h" -#include "AnalysisCore/AnalysisCut.h" -#include "AnalysisCore/AnalysisCompositeCut.h" +#include "PWGDQCore/VarManager.h" +#include "PWGDQCore/HistogramManager.h" +#include "PWGDQCore/AnalysisCut.h" +#include "PWGDQCore/AnalysisCompositeCut.h" #include "AnalysisDataModel/PID/PIDResponse.h" #include "AnalysisDataModel/TrackSelectionTables.h" #include diff --git a/Analysis/Tasks/PWGDQ/tableReader.cxx b/Analysis/Tasks/PWGDQ/tableReader.cxx index 5dec0d394c818..e1123d058ed2e 100644 --- a/Analysis/Tasks/PWGDQ/tableReader.cxx +++ b/Analysis/Tasks/PWGDQ/tableReader.cxx @@ -15,10 +15,10 @@ #include "Framework/AnalysisDataModel.h" #include "Framework/ASoAHelpers.h" #include "AnalysisDataModel/ReducedInfoTables.h" -#include "AnalysisCore/VarManager.h" -#include "AnalysisCore/HistogramManager.h" -#include "AnalysisCore/AnalysisCut.h" -#include "AnalysisCore/AnalysisCompositeCut.h" +#include "PWGDQCore/VarManager.h" +#include "PWGDQCore/HistogramManager.h" +#include "PWGDQCore/AnalysisCut.h" +#include "PWGDQCore/AnalysisCompositeCut.h" #include #include #include diff --git a/Analysis/Tasks/reducedEventAnalysis.cxx b/Analysis/Tasks/reducedEventAnalysis.cxx deleted file mode 100644 index dde7efee16842..0000000000000 --- a/Analysis/Tasks/reducedEventAnalysis.cxx +++ /dev/null @@ -1,135 +0,0 @@ -// Copyright CERN and copyright holders of ALICE O2. This software is -// distributed under the terms of the GNU General Public License v3 (GPL -// Version 3), copied verbatim in the file "COPYING". -// -// See http://alice-o2.web.cern.ch/license for full licensing information. -// -// 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. -#include "Framework/runDataProcessing.h" -#include "Framework/AnalysisTask.h" -#include "Framework/AnalysisDataModel.h" -#include "Framework/ASoAHelpers.h" -#include "AnalysisDataModel/Multiplicity.h" -#include "AnalysisDataModel/EventSelection.h" -#include "AnalysisDataModel/Centrality.h" -#include -#include -#include -#include "TVector3.h" -#include "TLorentzVector.h" -#include -#include - -const float gkMass = 0.0005; - -using namespace o2; -using namespace o2::framework; -using namespace o2::framework::expressions; - -// This is a very simple example showing how to create an histogram -// FIXME: this should really inherit from AnalysisTask but -// we need GCC 7.4+ for that - -struct InvMassAnalysis { - // needs to be initialized with a label or an obj - // when adding an object to OutputObj later, the object name will be - // *reset* to OutputObj label - needed for correct placement in the output file - OutputObj centV0M{TH1F("centV0M", "centrality V0", 100, 0.0, 100.0)}; - OutputObj vtxZ{TH1F("vtxZ", "vtx Z", 200, -20.0, 20.0)}; - - OutputObj ptH{TH1F("pt", "pt", 100, -0.01, 10.01)}; - OutputObj ptCorr{TH2F("ptToPt", "ptToPt", 100, -0.01, 10.01, 100, -0.01, 10.01)}; - OutputObj tpcDedx{TH2F("tpcDedx", "TPC de/dx", 100, 0.0, 10.0, 100, 0.0, 200.0)}; - OutputObj itsHits{TH1I("itsHits", "ITS hits per layer", 6, -0.5, 5.5)}; - OutputObj itsHitsVsPt{TH2I("itsHitsVsPt", "ITS hits per layer", 6, -0.5, 5.5, 100, 0.0, 10.0)}; - OutputObj itsChi2{TH1I("itsChi2", "ITS chi2", 100, 0.0, 20.0)}; - OutputObj tpcChi2{TH1I("tpcChi2", "TPC chi2", 100, 0.0, 10.0)}; - OutputObj tpcCls{TH1I("tpcCls", "TPC clusters", 160, 0.0, 160.0)}; - OutputObj flagsHist{TH1I("flagsHist", "Flags", 64, -0.5, 63.5)}; - OutputObj invMassPM{TH1F("invMassPM", "Invariant mass, SEPM", 125, 0.0, 5.0)}; - OutputObj invMassPP{TH1F("invMassPP", "Invariant mass, SEPP", 125, 0.0, 5.0)}; - OutputObj invMassMM{TH1F("invMassMM", "Invariant mass, SEMM", 125, 0.0, 5.0)}; - OutputObj invMassVsPt{TH2F("invMassVsPt", "Invariant mass", 125, 0.0, 5.0, 10, 0.0, 10.0)}; - OutputObj invMassVsCentrality{TH2F("invMassVsCentrality", "Invariant mass", 125, 0.0, 5.0, 10, 0.0, 100.0)}; - OutputObj trZ{"trZ", OutputObjHandlingPolicy::QAObject}; - //Configurable ptlow{"ptlow", 1.0f, "Lower pT limit"}; - //Configurable pthigh{"pthigh", 1.0f, "Higher pT limit"}; - - float ptlow = 1.0; - float pthigh = 5.0; - Filter ptFilter = ((1.0f / aod::track::signed1Pt > ptlow) && (1.0f / aod::track::signed1Pt < pthigh)) || ((1.0f / aod::track::signed1Pt > -1.0f * pthigh) && (1.0f / aod::track::signed1Pt < -1.0f * ptlow)); - //Filter spdAnyFilter = (aod::track::itsClusterMap & (uint8_t(1)<<0)) || (aod::track::itsClusterMap & (uint8_t(1)<<1)); - float dedxLow = 75.0; - float dedxHigh = 90.0; - Filter dedxFilter = (aod::track::tpcSignal > dedxLow) && (aod::track::tpcSignal < dedxHigh); - float tpcChi2Max = 4.0; - float itsChi2Max = 36; - Filter qualityFilter = (aod::track::tpcChi2NCl < tpcChi2Max) && (aod::track::itsChi2NCl < itsChi2Max); - - void init(InitContext const&) - { - trZ.setObject(new TH1F("Z", "Z", 100, -10., 10.)); - } - - void process(soa::Join::iterator collision, soa::Filtered> const& tracks) - { - - if (!collision.sel7()) - return; - - centV0M->Fill(collision.centV0M()); - vtxZ->Fill(collision.posZ()); - - for (auto& track : tracks) { - //if (track.pt() < ptlow) - // continue; - ptH->Fill(track.pt()); - trZ->Fill(track.z()); - itsChi2->Fill(track.itsChi2NCl()); - for (int i = 0; i < 6; i++) { - if (track.itsClusterMap() & (uint8_t(1) << i)) - itsHits->Fill(i); - if (track.itsClusterMap() & (uint8_t(1) << i)) - itsHitsVsPt->Fill(i, track.pt()); - } - tpcDedx->Fill(track.tpcInnerParam(), track.tpcSignal()); - tpcChi2->Fill(track.tpcChi2NCl()); - tpcCls->Fill(track.tpcNClsFound()); - for (int i = 0; i < 64; i++) { - if (track.flags() & (uint64_t(1) << i)) - flagsHist->Fill(i); - } - } - for (auto& [t0, t1] : combinations(tracks, tracks)) { - ptCorr->Fill(t0.pt(), t1.pt()); - if (!((t0.itsClusterMap() & (uint8_t(1) << 0)) || (t0.itsClusterMap() & (uint8_t(1) << 1)))) - continue; - if (!((t1.itsClusterMap() & (uint8_t(1) << 0)) || (t1.itsClusterMap() & (uint8_t(1) << 1)))) - continue; - - TLorentzVector p1, p2, p; - p1.SetXYZM(t0.px(), t0.py(), t0.pz(), gkMass); - p2.SetXYZM(t1.px(), t1.py(), t1.pz(), gkMass); - p = p1 + p2; - - if (t0.charge() * t1.charge() < 0) { - invMassPM->Fill(p.M()); - invMassVsPt->Fill(p.M(), p.Pt()); - invMassVsCentrality->Fill(p.M(), collision.centV0M()); - } else { - if (t0.charge() > 0) - invMassPP->Fill(p.M()); - if (t0.charge() < 0) - invMassMM->Fill(p.M()); - } - } - } -}; - -WorkflowSpec defineDataProcessing(ConfigContext const&) -{ - return WorkflowSpec{ - adaptAnalysisTask("InvMassAnalysis")}; -}