1111#include " Framework/AnalysisTask.h"
1212#include " Framework/AnalysisDataModel.h"
1313#include " Framework/ASoAHelpers.h"
14+
15+ #include " Analysis/EventSelection.h"
16+ #include " Analysis/Centrality.h"
1417#include " Analysis/StepTHn.h"
1518#include " Analysis/CorrelationContainer.h"
1619
@@ -53,13 +56,13 @@ struct ATask {
5356
5457struct CorrelationTask {
5558
56- // Input definitions
57- using myTracks = soa::Join<aod::Tracks, aod::EtaPhi>;
58-
59- // Filters
59+ // Filters and input definitions
6060#define MYFILTER
6161#ifdef MYFILTER
6262 Filter trackFilter = (aod::etaphi::eta2 > -0 .8f ) && (aod::etaphi::eta2 < 0 .8f ) && (aod::etaphi::pt2 > 1 .0f );
63+ using myTracks = soa::Filtered<soa::Join<aod::Tracks, aod::EtaPhi>>;
64+ #else
65+ using myTracks = soa::Join<aod::Tracks, aod::EtaPhi>;
6366#endif
6467
6568 // Output definitions
@@ -134,24 +137,23 @@ struct CorrelationTask {
134137 }
135138 }
136139
137- // Version with explicit nested loop
138- #ifdef MYFILTER
139- void process (aod::Collision const & collision, aod::BCs const & bcs, aod::Run2V0s const & vzeros, soa::Filtered<soa::Join<aod::Tracks, aod::EtaPhi>> const & tracks)
140- #else
141- void process (aod::Collision const & collision, aod::Run2V0s const & vzeros, soa::Join<aod::Tracks, aod::EtaPhi> const & tracks)
142- #endif
140+ // Version with explicit nested loop
141+ void process (soa::Join<aod::Collisions, aod::EvSels, aod::Cents>::iterator const & collision, aod::BCs const & bcs, aod::Run2V0s const & vzeros, myTracks const & tracks)
143142 {
144- LOGF (info, " Tracks for collision: %d | Trigger mask: %lld" , tracks.size (), collision.bc ().triggerMask ());
143+ LOGF (info, " Tracks for collision: %d | Trigger mask: %lld | INT7: %d | V0M: %.1f " , tracks.size (), collision.bc ().triggerMask (), collision. sel7 (), collision. centV0M ());
145144 // for (auto& vzero : vzeros)
146145 // if (vzero.bc() == collision.bc())
147146 // LOGF(info, "V0: %f %f", vzero.adc()[0], vzero.adc()[1]);
148147
148+ if (!collision.sel7 ())
149+ return ;
150+
149151 int bSign = 1 ; // TODO magnetic field from CCDB
150152 const float pTCut = 1.0 ;
151153
152154 for (auto track1 = tracks.begin (); track1 != tracks.end (); ++track1) {
153155
154- #ifdef MYFILTER
156+ #ifndef MYFILTER
155157 if (track1.pt2 () < pTCut)
156158 continue ;
157159 if (track1.eta2 () < -0.8 || track1.eta2 () > 0.8 )
@@ -165,14 +167,14 @@ struct CorrelationTask {
165167
166168 double eventValues[3 ];
167169 eventValues[0 ] = track1.pt2 ();
168- eventValues[1 ] = 0 ; // collision.v0mult ();
170+ eventValues[1 ] = collision.centV0M ();
169171 eventValues[2 ] = collision.posZ ();
170172
171173 same->getEventHist ()->Fill (eventValues, CorrelationContainer::kCFStepReconstructed );
172174 // mixed->getEventHist()->Fill(eventValues, CorrelationContainer::kCFStepReconstructed);
173175
174176 for (auto track2 = track1 + 1 ; track2 != tracks.end (); ++track2) {
175- #ifdef MYFILTER
177+ #ifndef MYFILTER
176178 if (track2.pt2 () < pTCut)
177179 continue ;
178180 if (track2.eta2 () < -0.8 || track2.eta2 () > 0.8 )
@@ -195,7 +197,7 @@ struct CorrelationTask {
195197 values[0 ] = track1.eta2 () - track2.eta2 ();
196198 values[1 ] = track1.pt2 ();
197199 values[2 ] = track2.pt2 ();
198- values[3 ] = 0 ; // collision.v0mult ();
200+ values[3 ] = collision.centV0M ();
199201
200202 values[4 ] = track1.phi2 () - track2.phi2 ();
201203 if (values[4 ] > 1.5 * TMath::Pi ())
0 commit comments