Skip to content

Commit 480f2ec

Browse files
author
Lucia Anna Tarasovicova
committed
pO settings, correlation cut
1 parent 87f33ea commit 480f2ec

File tree

1 file changed

+62
-28
lines changed

1 file changed

+62
-28
lines changed

PWGLF/Tasks/Strangeness/derivedcascadeanalysis.cxx

Lines changed: 62 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -13,44 +13,47 @@
1313
/// \brief Tasks processing derived data for Cascade analysis in PbPb collisions
1414
/// \author Lucia Anna Tarasovicova (lucia.anna.husova@cern.ch)
1515

16-
#include <string>
17-
#include <vector>
18-
#include "Framework/runDataProcessing.h"
19-
#include "Framework/AnalysisTask.h"
20-
#include "Framework/AnalysisDataModel.h"
21-
#include "Framework/ASoAHelpers.h"
22-
#include "Framework/O2DatabasePDGPlugin.h"
23-
#include "ReconstructionDataFormats/Track.h"
24-
#include "Common/Core/RecoDecay.h"
25-
#include "Common/Core/trackUtilities.h"
26-
#include "Common/CCDB/ctpRateFetcher.h"
27-
#include "PWGLF/DataModel/LFStrangenessTables.h"
16+
#include "MetadataHelper.h"
17+
2818
#include "PWGLF/DataModel/LFStrangenessPIDTables.h"
19+
#include "PWGLF/DataModel/LFStrangenessTables.h"
20+
21+
#include "Common/CCDB/EventSelectionParams.h"
22+
#include "Common/CCDB/TriggerAliases.h"
23+
#include "Common/CCDB/ctpRateFetcher.h"
24+
#include "Common/Core/RecoDecay.h"
2925
#include "Common/Core/TrackSelection.h"
30-
#include "Common/DataModel/TrackSelectionTables.h"
31-
#include "Common/DataModel/EventSelection.h"
26+
#include "Common/Core/trackUtilities.h"
3227
#include "Common/DataModel/Centrality.h"
28+
#include "Common/DataModel/EventSelection.h"
3329
#include "Common/DataModel/PIDResponse.h"
34-
#include "Framework/StaticFor.h"
30+
#include "Common/DataModel/TrackSelectionTables.h"
3531

36-
#include "Framework/ConfigParamSpec.h"
37-
#include "Common/CCDB/EventSelectionParams.h"
38-
#include "Common/CCDB/TriggerAliases.h"
3932
#include "CCDB/BasicCCDBManager.h"
4033
#include "CommonConstants/LHCConstants.h"
41-
#include "Framework/HistogramRegistry.h"
4234
#include "DataFormatsFT0/Digit.h"
43-
#include "DataFormatsParameters/GRPLHCIFData.h"
35+
#include "DataFormatsParameters/AggregatedRunInfo.h"
4436
#include "DataFormatsParameters/GRPECSObject.h"
37+
#include "DataFormatsParameters/GRPLHCIFData.h"
38+
#include "Framework/ASoAHelpers.h"
39+
#include "Framework/AnalysisDataModel.h"
40+
#include "Framework/AnalysisTask.h"
41+
#include "Framework/ConfigParamSpec.h"
42+
#include "Framework/HistogramRegistry.h"
43+
#include "Framework/O2DatabasePDGPlugin.h"
44+
#include "Framework/StaticFor.h"
45+
#include "Framework/runDataProcessing.h"
4546
#include "ITSMFTBase/DPLAlpideParam.h"
46-
#include "MetadataHelper.h"
47-
#include "DataFormatsParameters/AggregatedRunInfo.h"
47+
#include "ReconstructionDataFormats/Track.h"
4848

4949
#include <TFile.h>
5050
#include <TH2F.h>
51-
#include <TProfile.h>
5251
#include <TLorentzVector.h>
5352
#include <TPDGCode.h>
53+
#include <TProfile.h>
54+
55+
#include <string>
56+
#include <vector>
5457

5558
// constants
5659
const float ctauxiPDG = 4.91; // from PDG
@@ -76,6 +79,7 @@ struct Derivedcascadeanalysis {
7679
ConfigurableAxis axisIR{"axisIR", {510, -1, 50}, "Binning for the interaction rate (kHz)"};
7780

7881
Configurable<bool> isXi{"isXi", 1, "Apply cuts for Xi identification"};
82+
Configurable<bool> ispO{"ispO", 0, "Analyse p--O collisions"};
7983
Configurable<bool> useCentralityFT0M{"useCentralityFT0M", 0, "If true, use centFT0M"};
8084
Configurable<bool> useCentralityFT0A{"useCentralityFT0A", 0, "If true, use centFT0A"};
8185
Configurable<bool> useCentralityFT0Cvar1{"useCentralityFT0Cvar1", 0, "If true, use centFT0FT0Cvar1"};
@@ -119,6 +123,18 @@ struct Derivedcascadeanalysis {
119123
Configurable<int> maxOccupancy{"maxOccupancy", -1, "Maximal occupancy"};
120124
Configurable<float> minOccupancyFT0{"minOccupancyFT0", -1, "Minimal occupancy"};
121125
Configurable<float> maxOccupancyFT0{"maxOccupancyFT0", -1, "Maximal occupancy"};
126+
Configurable<float> globalTracksCorrelpar0Low{"globalTracksCorrelpar0Low", 81, "[0]*exp([1]*centrality)+[2], mean minus 3*sigma"};
127+
Configurable<float> globalTracksCorrelpar1Low{"globalTracksCorrelpar1Low", -0.0431016, "[0]*exp([1]*centrality)+[2], mean minus 3*sigma"};
128+
Configurable<float> globalTracksCorrelpar2Low{"globalTracksCorrelpar2Low", -6, "[0]*exp([1]*centrality)+[2], mean minus 3*sigma"};
129+
Configurable<float> globalTracksCorrelpar0High{"globalTracksCorrelpar0High", 226, "[0]*exp([1]*centrality)+[2], mean minus 3*sigma"};
130+
Configurable<float> globalTracksCorrelpar1High{"globalTracksCorrelpar1High", -0.0181686, "[0]*exp([1]*centrality)+[2], mean plus 3*sigma"};
131+
Configurable<float> globalTracksCorrelpar2High{"globalTracksCorrelpar2High", -22, "[0]*exp([1]*centrality)+[2], mean plus 3*sigma"};
132+
Configurable<float> pvContribCorrelpar0Low{"pvcontribCorrelpar0Low", 152, "[0]*exp([1]*centrality)+[2], mean minus 3*sigma"};
133+
Configurable<float> pvContribCorrelpar1Low{"pvcontribCorrelpar1Low", -0.0431016, "[0]*exp([1]*centrality)+[2], mean minus 3*sigma"};
134+
Configurable<float> pvContribCorrelpar2Low{"pvcontribCorrelpar2Low", -15.3776, "[0]*exp([1]*centrality)+[2], mean minus 3*sigma"};
135+
Configurable<float> pvContribCorrelpar0High{"pvcontribCorrelpar0High", 384.861, "[0]*exp([1]*centrality)+[2], mean minus 3*sigma"};
136+
Configurable<float> pvContribCorrelpar1High{"pvcontribCorrelpar1High", -0.0181686, "[0]*exp([1]*centrality)+[2], mean plus 3*sigma"};
137+
Configurable<float> pvContribCorrelpar2High{"pvcontribCorrelpar2High", -39, "[0]*exp([1]*centrality)+[2], mean plus 3*sigma"};
122138
} eventSelectionRun3Flags;
123139

124140
struct : ConfigurableGroup {
@@ -219,6 +235,8 @@ struct Derivedcascadeanalysis {
219235
Configurable<float> rejcomp{"rejcomp", 0.008, "Competing Cascade rejection"};
220236
Configurable<float> masswin{"masswin", 0.05, "Mass window limit"};
221237
Configurable<float> rapCut{"rapCut", 0.5, "Rapidity acceptance"};
238+
Configurable<float> minRapCut{"minRapCut", -0.845, "minimal rapidity acceptance in case of p--o"};
239+
Configurable<float> maxRapCut{"maxRapCut", 0.155, "maximal rapidity acceptance in case of p--o"};
222240
Configurable<float> etaDauCut{"etaDauCut", 0.8, "Pseudorapidity acceptance of the cascade daughters"};
223241
Configurable<int> minITSclusters{"minITSclusters", 3, "minimal number of ITS hits for the daughter tracks"};
224242
} candidateSelectionValues;
@@ -302,6 +320,10 @@ struct Derivedcascadeanalysis {
302320
histos.add("hNCrossedRowsPositive", "", kTH1F, {{400, -200, 200}});
303321
histos.add("hNCrossedRowsBachelor", "", kTH1F, {{400, -200, 200}});
304322

323+
histos.add("hPseudorapPosDaughter", "", kTH1F, {{50, -1, 1}});
324+
histos.add("hPseudorapNegDaughter", "", kTH1F, {{50, -1, 1}});
325+
histos.add("hPseudorapBachelor", "", kTH1F, {{50, -1, 1}});
326+
305327
histos.add("hEventNchCorrelationAfCuts", "hEventNchCorrelationAfCuts", kTH2F, {{5000, 0, 5000}, {5000, 0, 2500}});
306328
histos.add("hEventPVcontributorsVsCentrality", "hEventPVcontributorsVsCentrality", kTH2F, {{100, 0, 100}, {5000, 0, 5000}});
307329
histos.add("hEventGlobalTracksVsCentrality", "hEventGlobalTracksVsCentrality", kTH2F, {{100, 0, 100}, {2500, 0, 2500}});
@@ -660,9 +682,9 @@ struct Derivedcascadeanalysis {
660682
histos.fill(HIST("hEventSelection"), 11.5 /* Not at TF border */);
661683

662684
if (eventSelectionRun3Flags.doMultiplicityCorrCut) {
663-
if (coll.multNTracksGlobal() < (1343.3 * std::exp(-0.0443259 * centrality) - 50) || coll.multNTracksGlobal() > (2098.9 * std::exp(-0.0332444 * centrality)))
685+
if (coll.multNTracksGlobal() < (eventSelectionRun3Flags.globalTracksCorrelpar0Low * std::exp(eventSelectionRun3Flags.globalTracksCorrelpar1Low * centrality) + eventSelectionRun3Flags.globalTracksCorrelpar2Low) || coll.multNTracksGlobal() > (eventSelectionRun3Flags.globalTracksCorrelpar0High * std::exp(eventSelectionRun3Flags.globalTracksCorrelpar1High * centrality) + eventSelectionRun3Flags.globalTracksCorrelpar2High))
664686
return false;
665-
if (coll.multNTracksPVeta1() < (3703 * std::exp(-0.0455483 * centrality) - 150) || coll.multNTracksPVeta1() > (4937.33 * std::exp(-0.0372668 * centrality) + 20))
687+
if (coll.multNTracksPVeta1() < (eventSelectionRun3Flags.pvContribCorrelpar0Low * std::exp(eventSelectionRun3Flags.pvContribCorrelpar1Low * centrality) + eventSelectionRun3Flags.pvContribCorrelpar2Low) || coll.multNTracksPVeta1() > (eventSelectionRun3Flags.pvContribCorrelpar0High * std::exp(eventSelectionRun3Flags.pvContribCorrelpar1High * centrality) + eventSelectionRun3Flags.pvContribCorrelpar2High))
666688
return false;
667689
}
668690
if (fillHists)
@@ -826,21 +848,27 @@ struct Derivedcascadeanalysis {
826848
float cut = candidateSelectionValues.masswin;
827849
histos.fill(HIST("hCutValue"), 1, cut);
828850
cut = candidateSelectionValues.rapCut;
851+
if (ispO)
852+
cut = candidateSelectionValues.maxRapCut;
829853
histos.fill(HIST("hCutValue"), 2, cut);
830854
if (isXi) {
831855
if (std::abs(casc.mXi() - o2::constants::physics::MassXiMinus) > candidateSelectionValues.masswin) {
832856
return false;
833857
}
834858
histos.fill(HIST("hCandidate"), ++counter);
835-
if (std::abs(casc.yXi()) > candidateSelectionValues.rapCut)
859+
if (ispO && (casc.yXi() < candidateSelectionValues.minRapCut || casc.yXi() > candidateSelectionValues.maxRapCut))
860+
return false;
861+
else if (std::abs(casc.yXi()) > candidateSelectionValues.rapCut)
836862
return false;
837863
histos.fill(HIST("hCandidate"), ++counter);
838864
} else {
839865
if (std::abs(casc.mOmega() - o2::constants::physics::MassOmegaMinus) > candidateSelectionValues.masswin) {
840866
return false;
841867
}
842868
histos.fill(HIST("hCandidate"), ++counter);
843-
if (std::abs(casc.yOmega()) > candidateSelectionValues.rapCut)
869+
if (ispO && (casc.yOmega() < candidateSelectionValues.minRapCut || casc.yOmega() > candidateSelectionValues.maxRapCut))
870+
return false;
871+
else if (std::abs(casc.yOmega()) > candidateSelectionValues.rapCut)
844872
return false;
845873
histos.fill(HIST("hCandidate"), ++counter);
846874
}
@@ -1161,6 +1189,10 @@ struct Derivedcascadeanalysis {
11611189
continue;
11621190
histos.fill(HIST("hCandidate"), ++counter);
11631191

1192+
histos.fill(HIST("hPseudorapPosDaughter"), poseta);
1193+
histos.fill(HIST("hPseudorapNegDaughter"), negeta);
1194+
histos.fill(HIST("hPseudorapBachelor"), bacheta);
1195+
11641196
if (candidateSelectionFlags.doCascadeCosPaCut) {
11651197
if (!isCosPAAccepted(casc, coll.posX(), coll.posY(), coll.posZ(), candidateSelectionFlags.doPtDepCosPaCut, true))
11661198
continue;
@@ -1434,7 +1466,9 @@ struct Derivedcascadeanalysis {
14341466
else if (std::abs(cascMC.pdgCode()) == 3334)
14351467
ymc = RecoDecay::y(std::array{cascMC.pxMC(), cascMC.pyMC(), cascMC.pzMC()}, o2::constants::physics::MassOmegaMinus);
14361468

1437-
if (std::abs(ymc) > candidateSelectionValues.rapCut)
1469+
if (ispO && (ymc > candidateSelectionValues.rapCutMax || yms < candidateSelectionValues.rapCutMin))
1470+
continue;
1471+
else if (std::abs(ymc) > candidateSelectionValues.rapCut)
14381472
continue;
14391473

14401474
auto mcCollision = cascMC.template straMCCollision_as<soa::Join<aod::StraMCCollisions, aod::StraMCCollMults>>();

0 commit comments

Comments
 (0)