|
14 | 14 | // This code loops over photons and makes pairs for neutral mesons analyses. |
15 | 15 | // Please write to: daiki.sekihata@cern.ch |
16 | 16 |
|
| 17 | +#ifndef PWGEM_PHOTONMESON_CORE_PI0ETATOGAMMAGAMMA_H_ |
| 18 | +#define PWGEM_PHOTONMESON_CORE_PI0ETATOGAMMAGAMMA_H_ |
| 19 | + |
17 | 20 | #include <cstring> |
18 | 21 | #include <iterator> |
| 22 | +#include <string> |
| 23 | +#include <map> |
| 24 | +#include <vector> |
| 25 | +#include <tuple> |
| 26 | +#include <utility> |
19 | 27 |
|
20 | 28 | #include "TString.h" |
21 | 29 | #include "Math/Vector4D.h" |
@@ -91,14 +99,17 @@ struct Pi0EtaToGammaGamma { |
91 | 99 | ConfigurableAxis ConfEPBins{"ConfEPBins", {VARIABLE_WIDTH, -M_PI / 2, -M_PI / 4, 0.0f, +M_PI / 4, +M_PI / 2}, "Mixing bins - event plane angle"}; |
92 | 100 |
|
93 | 101 | EMEventCut fEMEventCut; |
94 | | - Configurable<float> cfgZvtxMax{"cfgZvtxMax", 10.f, "max. Zvtx"}; |
95 | | - Configurable<bool> cfgRequireSel8{"cfgRequireSel8", true, "require sel8 in event cut"}; |
96 | | - Configurable<bool> cfgRequireFT0AND{"cfgRequireFT0AND", true, "require FT0AND in event cut"}; |
97 | | - Configurable<bool> cfgRequireNoTFB{"cfgRequireNoTFB", false, "require No time frame border in event cut"}; |
98 | | - Configurable<bool> cfgRequireNoITSROFB{"cfgRequireNoITSROFB", false, "require no ITS readout frame border in event cut"}; |
99 | | - Configurable<bool> cfgRequireNoSameBunchPileup{"cfgRequireNoSameBunchPileup", false, "require no same bunch pileup in event cut"}; |
100 | | - Configurable<bool> cfgRequireVertexITSTPC{"cfgRequireVertexITSTPC", false, "require Vertex ITSTPC in event cut"}; // ITS-TPC matched track contributes PV. |
101 | | - Configurable<bool> cfgRequireGoodZvtxFT0vsPV{"cfgRequireGoodZvtxFT0vsPV", false, "require good Zvtx between FT0 vs. PV in event cut"}; |
| 102 | + struct : ConfigurableGroup { |
| 103 | + std::string prefix = "eventcut_group"; |
| 104 | + Configurable<float> cfgZvtxMax{"cfgZvtxMax", 10.f, "max. Zvtx"}; |
| 105 | + Configurable<bool> cfgRequireSel8{"cfgRequireSel8", true, "require sel8 in event cut"}; |
| 106 | + Configurable<bool> cfgRequireFT0AND{"cfgRequireFT0AND", true, "require FT0AND in event cut"}; |
| 107 | + Configurable<bool> cfgRequireNoTFB{"cfgRequireNoTFB", false, "require No time frame border in event cut"}; |
| 108 | + Configurable<bool> cfgRequireNoITSROFB{"cfgRequireNoITSROFB", false, "require no ITS readout frame border in event cut"}; |
| 109 | + Configurable<bool> cfgRequireNoSameBunchPileup{"cfgRequireNoSameBunchPileup", false, "require no same bunch pileup in event cut"}; |
| 110 | + Configurable<bool> cfgRequireVertexITSTPC{"cfgRequireVertexITSTPC", false, "require Vertex ITSTPC in event cut"}; // ITS-TPC matched track contributes PV. |
| 111 | + Configurable<bool> cfgRequireGoodZvtxFT0vsPV{"cfgRequireGoodZvtxFT0vsPV", false, "require good Zvtx between FT0 vs. PV in event cut"}; |
| 112 | + } eventcuts; |
102 | 113 |
|
103 | 114 | V0PhotonCut fV0PhotonCut; |
104 | 115 | struct : ConfigurableGroup { |
@@ -253,14 +264,14 @@ struct Pi0EtaToGammaGamma { |
253 | 264 | void DefineEMEventCut() |
254 | 265 | { |
255 | 266 | fEMEventCut = EMEventCut("fEMEventCut", "fEMEventCut"); |
256 | | - fEMEventCut.SetRequireSel8(cfgRequireSel8); |
257 | | - fEMEventCut.SetRequireFT0AND(cfgRequireFT0AND); |
258 | | - fEMEventCut.SetZvtxRange(-cfgZvtxMax, +cfgZvtxMax); |
259 | | - fEMEventCut.SetRequireNoTFB(cfgRequireNoTFB); |
260 | | - fEMEventCut.SetRequireNoITSROFB(cfgRequireNoITSROFB); |
261 | | - fEMEventCut.SetRequireNoSameBunchPileup(cfgRequireNoSameBunchPileup); |
262 | | - fEMEventCut.SetRequireVertexITSTPC(cfgRequireVertexITSTPC); |
263 | | - fEMEventCut.SetRequireGoodZvtxFT0vsPV(cfgRequireGoodZvtxFT0vsPV); |
| 267 | + fEMEventCut.SetRequireSel8(eventcuts.cfgRequireSel8); |
| 268 | + fEMEventCut.SetRequireFT0AND(eventcuts.cfgRequireFT0AND); |
| 269 | + fEMEventCut.SetZvtxRange(-eventcuts.cfgZvtxMax, +eventcuts.cfgZvtxMax); |
| 270 | + fEMEventCut.SetRequireNoTFB(eventcuts.cfgRequireNoTFB); |
| 271 | + fEMEventCut.SetRequireNoITSROFB(eventcuts.cfgRequireNoITSROFB); |
| 272 | + fEMEventCut.SetRequireNoSameBunchPileup(eventcuts.cfgRequireNoSameBunchPileup); |
| 273 | + fEMEventCut.SetRequireVertexITSTPC(eventcuts.cfgRequireVertexITSTPC); |
| 274 | + fEMEventCut.SetRequireGoodZvtxFT0vsPV(eventcuts.cfgRequireGoodZvtxFT0vsPV); |
264 | 275 | } |
265 | 276 |
|
266 | 277 | void DefinePCMCut() |
@@ -855,16 +866,4 @@ struct Pi0EtaToGammaGamma { |
855 | 866 | void processDummy(MyCollisions const&) {} |
856 | 867 | PROCESS_SWITCH(Pi0EtaToGammaGamma, processDummy, "Dummy function", true); |
857 | 868 | }; |
858 | | - |
859 | | -WorkflowSpec defineDataProcessing(ConfigContext const& cfgc) |
860 | | -{ |
861 | | - return WorkflowSpec{ |
862 | | - adaptAnalysisTask<Pi0EtaToGammaGamma<PairType::kPCMPCM, MyV0Photons, aod::V0Legs>>(cfgc, TaskName{"pi0eta-to-gammagamma-pcmpcm"}), |
863 | | - adaptAnalysisTask<Pi0EtaToGammaGamma<PairType::kPCMDalitzEE, MyV0Photons, aod::V0Legs, MyPrimaryElectrons>>(cfgc, TaskName{"pi0eta-to-gammagamma-pcmdalitzee"}), |
864 | | - adaptAnalysisTask<Pi0EtaToGammaGamma<PairType::kPCMDalitzMuMu, MyV0Photons, aod::V0Legs, MyPrimaryMuons>>(cfgc, TaskName{"pi0eta-to-gammagamma-pcmdalitzmumu"}), |
865 | | - adaptAnalysisTask<Pi0EtaToGammaGamma<PairType::kEMCEMC, MyEMCClusters, aod::SkimEMCMTs>>(cfgc, TaskName{"pi0eta-to-gammagamma-emcemc"}), |
866 | | - adaptAnalysisTask<Pi0EtaToGammaGamma<PairType::kPHOSPHOS, MyPHOSClusters>>(cfgc, TaskName{"pi0eta-to-gammagamma-phosphos"}), |
867 | | - // adaptAnalysisTask<Pi0EtaToGammaGamma2<PairType::kPCMEMC, MyV0Photons, aod::V0Legs, MyEMCClusters, aod::SkimEMCMTs>>(cfgc, TaskName{"pi0eta-to-gammagamma-pcmemc"}), |
868 | | - // adaptAnalysisTask<Pi0EtaToGammaGamma2<PairType::kPCMPHOS, MyV0Photons, aod::V0Legs, MyPHOSClusters>>(cfgc, TaskName{"pi0eta-to-gammagamma-pcmphos"}), |
869 | | - }; |
870 | | -} |
| 869 | +#endif // PWGEM_PHOTONMESON_CORE_PI0ETATOGAMMAGAMMA_H_ |
0 commit comments