1313// / \brief Analysis task for Lambda spin spin correlation
1414// /
1515// / \author prottay.das@cern.ch
16+ // / \author sourav.kundu@cern.ch
1617
17- #include < fairlogger/Logger.h>
18- #include < tuple>
19- #include < string>
20- #include < vector>
21- #include " Math/Vector2D.h"
22- #include " Math/Vector3D.h"
23- #include " Math/Vector4D.h"
24- #include " Math/GenVector/Boost.h"
18+ #include " PWGLF/DataModel/LFStrangenessPIDTables.h"
19+ #include " PWGLF/DataModel/LFStrangenessTables.h"
20+ #include " PWGMM/Mult/DataModel/Index.h" // for Particles2Tracks table
2521
26- #include " Framework/runDataProcessing.h"
27- #include " Framework/AnalysisTask.h"
28- #include " Framework/AnalysisDataModel.h"
29- #include " Framework/HistogramRegistry.h"
30- #include " Framework/StepTHn.h"
31- #include " Common/DataModel/PIDResponse.h"
32- #include " Common/DataModel/Multiplicity.h"
22+ #include " Common/Core/TrackSelection.h"
23+ #include " Common/Core/trackUtilities.h"
3324#include " Common/DataModel/Centrality.h"
34- #include " Common/DataModel/TrackSelectionTables.h"
3525#include " Common/DataModel/EventSelection.h"
36- #include " Common/Core/trackUtilities.h"
26+ #include " Common/DataModel/FT0Corrected.h"
27+ #include " Common/DataModel/Multiplicity.h"
28+ #include " Common/DataModel/PIDResponse.h"
29+ #include " Common/DataModel/TrackSelectionTables.h"
30+
31+ #include " CCDB/BasicCCDBManager.h"
3732#include " CommonConstants/PhysicsConstants.h"
38- #include " Common/Core/TrackSelection.h"
3933#include " Framework/ASoAHelpers.h"
34+ #include " Framework/AnalysisDataModel.h"
35+ #include " Framework/AnalysisTask.h"
36+ #include " Framework/HistogramRegistry.h"
37+ #include " Framework/StepTHn.h"
38+ #include " Framework/runDataProcessing.h"
4039#include " ReconstructionDataFormats/Track.h"
41- #include " CCDB/BasicCCDBManager.h"
42- #include " PWGLF/DataModel/LFStrangenessTables.h"
43- #include " PWGLF/DataModel/LFStrangenessPIDTables.h"
44- #include " Common/DataModel/FT0Corrected.h"
45- #include " PWGMM/Mult/DataModel/Index.h" // for Particles2Tracks table
40+
41+ #include " Math/GenVector/Boost.h"
42+ #include " Math/Vector2D.h"
43+ #include " Math/Vector3D.h"
44+ #include " Math/Vector4D.h"
45+
46+ #include < fairlogger/Logger.h>
47+
48+ #include < string>
49+ #include < tuple>
50+ #include < vector>
4651
4752using namespace o2 ;
4853using namespace o2 ::framework;
@@ -66,7 +71,6 @@ struct LfTaskLambdaSpinCorr {
6671 // mixing
6772 Configurable<int > cosCalculation{" cosCalculation" , 0 , " cos calculation" };
6873 Configurable<int > mixingCombination{" mixingCombination" , 0 , " mixing Combination" };
69- Configurable<bool > mixingEvSel{" mixingEvSel" , false , " mixingEvSel" };
7074 Configurable<int > cfgCutOccupancy{" cfgCutOccupancy" , 2000 , " Occupancy cut" };
7175 ConfigurableAxis axisVertex{" axisVertex" , {5 , -10 , 10 }, " vertex axis for bin" };
7276 ConfigurableAxis axisMultiplicityClass{" axisMultiplicityClass" , {8 , 0 , 80 }, " multiplicity percentile for bin" };
@@ -94,13 +98,13 @@ struct LfTaskLambdaSpinCorr {
9498 Configurable<float > confV0PtMin{" confV0PtMin" , 0 .f , " Minimum transverse momentum of V0" };
9599 Configurable<float > confV0PtMax{" confV0PtMax" , 0 .f , " Maximum transverse momentum of V0" };
96100 Configurable<float > confV0Rap{" confV0Rap" , 0 .8f , " Rapidity range of V0" };
97- Configurable<double > confV0DCADaughMax{" confV0DCADaughMax" , 0 .2f , " Maximum DCA between the V0 daughters" };
101+ Configurable<float > confV0DCADaughMax{" confV0DCADaughMax" , 0 .2f , " Maximum DCA between the V0 daughters" };
98102 Configurable<double > confV0CPAMin{" confV0CPAMin" , 0 .9998f , " Minimum CPA of V0" };
99103 Configurable<float > confV0TranRadV0Min{" confV0TranRadV0Min" , 1 .5f , " Minimum transverse radius" };
100104 Configurable<float > confV0TranRadV0Max{" confV0TranRadV0Max" , 100 .f , " Maximum transverse radius" };
101105 Configurable<double > cMaxV0DCA{" cMaxV0DCA" , 1.2 , " Maximum V0 DCA to PV" };
102- Configurable<double > cMinV0DCAPr{" cMinV0DCAPr" , 0.05 , " Minimum V0 daughters DCA to PV for Pr" };
103- Configurable<double > cMinV0DCAPi{" cMinV0DCAPi" , 0.05 , " Minimum V0 daughters DCA to PV for Pi" };
106+ Configurable<float > cMinV0DCAPr{" cMinV0DCAPr" , 0.05 , " Minimum V0 daughters DCA to PV for Pr" };
107+ Configurable<float > cMinV0DCAPi{" cMinV0DCAPi" , 0.05 , " Minimum V0 daughters DCA to PV for Pi" };
104108 Configurable<float > cMaxV0LifeTime{" cMaxV0LifeTime" , 20 , " Maximum V0 life time" };
105109
106110 // config for V0 daughters
@@ -610,7 +614,7 @@ struct LfTaskLambdaSpinCorr {
610614 if (additionalEvSel4 && !collision1.selection_bit (o2::aod::evsel::kNoCollInTimeRangeStandard )) {
611615 continue ;
612616 }
613- if (mixingEvSel && additionalEvSel5 && !collision1.selection_bit (o2::aod::evsel::kIsGoodITSLayersAll )) {
617+ if (additionalEvSel5 && !collision1.selection_bit (o2::aod::evsel::kIsGoodITSLayersAll )) {
614618 continue ;
615619 }
616620
@@ -620,7 +624,7 @@ struct LfTaskLambdaSpinCorr {
620624 if (additionalEvSel4 && !collision2.selection_bit (o2::aod::evsel::kNoCollInTimeRangeStandard )) {
621625 continue ;
622626 }
623- if (mixingEvSel && additionalEvSel5 && !collision2.selection_bit (o2::aod::evsel::kIsGoodITSLayersAll )) {
627+ if (additionalEvSel5 && !collision2.selection_bit (o2::aod::evsel::kIsGoodITSLayersAll )) {
624628 continue ;
625629 }
626630
@@ -795,7 +799,11 @@ struct LfTaskLambdaSpinCorr {
795799 }
796800 PROCESS_SWITCH (LfTaskLambdaSpinCorr, processME, " Process data ME" , true );
797801
798- void processDerivedData (soa::Join<aod::StraCollisions, aod::StraCents, aod::StraEvSels, aod::StraStamps>::iterator const & collision, v0Candidates const & V0s, dauTracks const &)
802+ Filter v0der = (nabs(aod::v0data::dcapostopv) > cMinV0DCAPr && nabs(aod::v0data::dcanegtopv) > cMinV0DCAPi && nabs(aod::v0data::dcaV0daughters) < confV0DCADaughMax);
803+ using v0Cand = soa::Filtered<v0Candidates>;
804+
805+ // void processDerivedData(soa::Join<aod::StraCollisions, aod::StraCents, aod::StraEvSels, aod::StraStamps>::iterator const& collision, v0Candidates const& V0s, dauTracks const&)
806+ void processDerivedData (soa::Join<aod::StraCollisions, aod::StraCents, aod::StraEvSels, aod::StraStamps>::iterator const & collision, v0Cand const & V0s, dauTracks const &)
799807 {
800808 histos.fill (HIST (" hEvtSelInfo" ), 0.5 );
801809 if (rctCut.requireRCTFlagChecker && !rctChecker (collision)) {
@@ -914,8 +922,10 @@ struct LfTaskLambdaSpinCorr {
914922 }
915923 PROCESS_SWITCH (LfTaskLambdaSpinCorr, processDerivedData, " Process derived data" , true );
916924
917- Preslice<v0Candidates> tracksPerCollisionV0Mixed = o2::aod::v0data::straCollisionId; // for derived data only
918- void processDerivedDataMixed (soa::Join<aod::StraCollisions, aod::StraCents, aod::StraEvSels, aod::StraStamps> const & collisions, v0Candidates const & V0s, dauTracks const &)
925+ // Preslice<v0Candidates> tracksPerCollisionV0Mixed = o2::aod::v0data::straCollisionId; // for derived data only
926+ Preslice<v0Cand> tracksPerCollisionV0Mixed = o2::aod::v0data::straCollisionId; // for derived data only
927+ // void processDerivedDataMixed(soa::Join<aod::StraCollisions, aod::StraCents, aod::StraEvSels, aod::StraStamps> const& collisions, v0Candidates const& V0s, dauTracks const&)
928+ void processDerivedDataMixed (soa::Join<aod::StraCollisions, aod::StraCents, aod::StraEvSels, aod::StraStamps> const & collisions, v0Cand const & V0s, dauTracks const &)
919929
920930 {
921931
@@ -954,7 +964,7 @@ struct LfTaskLambdaSpinCorr {
954964 if (additionalEvSel4 && !collision1.selection_bit (o2::aod::evsel::kNoCollInTimeRangeStandard )) {
955965 continue ;
956966 }
957- if (mixingEvSel && additionalEvSel5 && !collision1.selection_bit (o2::aod::evsel::kIsGoodITSLayersAll )) {
967+ if (additionalEvSel5 && !collision1.selection_bit (o2::aod::evsel::kIsGoodITSLayersAll )) {
958968 continue ;
959969 }
960970
@@ -964,13 +974,16 @@ struct LfTaskLambdaSpinCorr {
964974 if (additionalEvSel4 && !collision2.selection_bit (o2::aod::evsel::kNoCollInTimeRangeStandard )) {
965975 continue ;
966976 }
967- if (mixingEvSel && additionalEvSel5 && !collision2.selection_bit (o2::aod::evsel::kIsGoodITSLayersAll )) {
977+ if (additionalEvSel5 && !collision2.selection_bit (o2::aod::evsel::kIsGoodITSLayersAll )) {
968978 continue ;
969979 }
970980 auto centrality = collision1.centFT0C ();
971- auto groupV01 = V0s.sliceBy (tracksPerCollisionV0Mixed, collision1.globalIndex ());
972- auto groupV02 = V0s.sliceBy (tracksPerCollisionV0Mixed, collision1.globalIndex ());
973- auto groupV03 = V0s.sliceBy (tracksPerCollisionV0Mixed, collision2.globalIndex ());
981+ // auto groupV01 = V0s.sliceBy(tracksPerCollisionV0Mixed, collision1.globalIndex());
982+ // auto groupV02 = V0s.sliceBy(tracksPerCollisionV0Mixed, collision1.globalIndex());
983+ // auto groupV03 = V0s.sliceBy(tracksPerCollisionV0Mixed, collision2.globalIndex());
984+ auto groupV01 = V0s.sliceBy (tracksPerCollisionV0Mixed, collision1.index ());
985+ auto groupV02 = V0s.sliceBy (tracksPerCollisionV0Mixed, collision1.index ());
986+ auto groupV03 = V0s.sliceBy (tracksPerCollisionV0Mixed, collision2.index ());
974987
975988 size_t rows = groupV03.size () + 20 ;
976989 size_t cols = groupV01.size () + 20 ;
0 commit comments