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+ // / \author Dong Jo Kim (djkim@jyu.fi)
12+ // / \since Sep 2022
113
214#include " Framework/runDataProcessing.h"
315#include " Framework/AnalysisTask.h"
618#include " Framework/RunningWorkflowInfo.h"
719#include " Framework/HistogramRegistry.h"
820
9-
1021#include " Common/DataModel/EventSelection.h"
1122#include " Common/Core/TrackSelection.h"
1223#include " Common/DataModel/TrackSelectionTables.h"
@@ -22,65 +33,67 @@ using namespace o2::framework::expressions;
2233
2334#define O2_DEFINE_CONFIGURABLE (NAME, TYPE, DEFAULT, HELP ) Configurable<TYPE> NAME{#NAME, DEFAULT, HELP};
2435
25- class JFlucAnalysis {
26- public:
27- ~JFlucAnalysis (){
28- delete pcf;
29- }
30-
31- O2_DEFINE_CONFIGURABLE (etamin,double ,0.4 ," Minimal eta for tracks" );
32- O2_DEFINE_CONFIGURABLE (etamax,double ,0.8 ," Maximal eta for tracks" );
33-
34- // OutputObj<TDirectory> output{TDirectory("jflucO2","jflucO2","",0)};
35- OutputObj<TDirectory> output{" jflucO2" };
36-
37- void init (InitContext const &ic){
38- //
39- fInputList .reserve (2500 );
40-
41- pcf = new AliJFFlucAnalysis (" jflucAnalysis" );
42- pcf->SetNumBins (sizeof (jflucCentBins)/sizeof (jflucCentBins[0 ]));
43- pcf->AddFlags (AliJFFlucAnalysis::FLUC_EBE_WEIGHTING);
44-
45- output->cd ();
46- pcf->UserCreateOutputObjects ();
47- }
48-
49- // void process(aod::Collision const& collision, aod::ParticleTrack const& tracks){
50- // void process(soa::Join<aod::Collisions, aod::CentV0Ms>::iterator const& collision, aod::ParticleTrack const& tracks){
51- void process (soa::Join<aod::Collisions, aod::CollisionData>::iterator const & collision, aod::ParticleTrack const & tracks){
52- if (tracks.size () == 0 )
53- return ; // rejected event
54- fInputList .clear ();
55-
56- for (auto &track : tracks){
57- fInputList .emplace_back ();
58- PtEtaPhiEVector &t = fInputList .back ();
59-
60- // ptrack->SetLabel(ntrack);
61- // ptrack->SetParticleType(0);
62- t.SetPt (track.pt ());
63- t.SetEta (track.eta ());
64- t.SetPhi (track.phi ());
65- }
66-
67- const double fVertex [3 ] = {collision.posX (),collision.posY (),collision.posZ ()};
68-
69- pcf->Init ();
70- pcf->SetInputList (&fInputList );
71- pcf->SetEventCentralityAndBin (collision.cent (),collision.cbin ());
72- pcf->SetEventVertex (fVertex );
73- pcf->SetEtaRange (etamin,etamax);
74- pcf->UserExec (" " );
75-
76- }
77- std::vector<PtEtaPhiEVector> fInputList ;
78- AliJFFlucAnalysis *pcf;
36+ class JFlucAnalysis
37+ {
38+ public:
39+ ~JFlucAnalysis ()
40+ {
41+ delete pcf;
42+ }
43+
44+ O2_DEFINE_CONFIGURABLE (etamin, double , 0.4 , " Minimal eta for tracks" );
45+ O2_DEFINE_CONFIGURABLE (etamax, double , 0.8 , " Maximal eta for tracks" );
46+
47+ // OutputObj<TDirectory> output{TDirectory("jflucO2","jflucO2","",0)};
48+ OutputObj<TDirectory> output{" jflucO2" };
49+
50+ void init (InitContext const & ic)
51+ {
52+ //
53+ fInputList .reserve (2500 );
54+
55+ pcf = new AliJFFlucAnalysis (" jflucAnalysis" );
56+ pcf->SetNumBins (sizeof (jflucCentBins) / sizeof (jflucCentBins[0 ]));
57+ pcf->AddFlags (AliJFFlucAnalysis::FLUC_EBE_WEIGHTING);
58+
59+ output->cd ();
60+ pcf->UserCreateOutputObjects ();
61+ }
62+
63+ // void process(aod::Collision const& collision, aod::ParticleTrack const& tracks){
64+ // void process(soa::Join<aod::Collisions, aod::CentV0Ms>::iterator const& collision, aod::ParticleTrack const& tracks){
65+ void process (soa::Join<aod::Collisions, aod::CollisionData>::iterator const & collision, aod::ParticleTrack const & tracks)
66+ {
67+ if (tracks.size () == 0 )
68+ return ; // rejected event
69+ fInputList .clear ();
70+
71+ for (auto & track : tracks) {
72+ fInputList .emplace_back ();
73+ PtEtaPhiEVector& t = fInputList .back ();
74+
75+ // ptrack->SetLabel(ntrack);
76+ // ptrack->SetParticleType(0);
77+ t.SetPt (track.pt ());
78+ t.SetEta (track.eta ());
79+ t.SetPhi (track.phi ());
80+ }
81+
82+ const double fVertex [3 ] = {collision.posX (), collision.posY (), collision.posZ ()};
83+
84+ pcf->Init ();
85+ pcf->SetInputList (&fInputList );
86+ pcf->SetEventCentralityAndBin (collision.cent (), collision.cbin ());
87+ pcf->SetEventVertex (fVertex );
88+ pcf->SetEtaRange (etamin, etamax);
89+ pcf->UserExec (" " );
90+ }
91+ std::vector<PtEtaPhiEVector> fInputList ;
92+ AliJFFlucAnalysis* pcf;
7993};
8094
81- WorkflowSpec defineDataProcessing (ConfigContext const & cfgc){
82- return WorkflowSpec {
83- adaptAnalysisTask<JFlucAnalysis>(cfgc)
84- };
95+ WorkflowSpec defineDataProcessing (ConfigContext const & cfgc)
96+ {
97+ return WorkflowSpec{
98+ adaptAnalysisTask<JFlucAnalysis>(cfgc) };
8599}
86-
0 commit comments