Skip to content

Commit

Permalink
Add files via upload
Browse files Browse the repository at this point in the history
  • Loading branch information
abylinkin authored Apr 21, 2024
1 parent c5e6d63 commit 363ab4e
Showing 1 changed file with 73 additions and 64 deletions.
137 changes: 73 additions & 64 deletions PWGUD/Tasks/SG_FourPi_Analyzer.cxx
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,7 @@
// \author Sasha Bylinkin, [email protected]
// \since April 2023

#include "Framework/AnalysisDataModel.h"
#include "Framework/runDataProcessing.h"
#include "Framework/AnalysisTask.h"
#include "Framework/AnalysisDataModel.h"
Expand All @@ -21,20 +22,26 @@
#include "PWGUD/Core/SGSelector.h"
#include "PWGUD/Tasks/SGTrackSelector.h"
#include "Common/DataModel/PIDResponse.h"
#include "Framework/ASoA.h"
#include "Framework/DataTypes.h"
#include "MathUtils/Utils.h"
#include "Common/DataModel/TrackSelectionTables.h"

#include <TString.h>
#include "TLorentzVector.h"
using namespace std;
using namespace o2;
using namespace o2::aod;
//using namespace o2::aod::track::v001;
using namespace o2::framework;
using namespace o2::framework::expressions;
#define mpion 0.1396
#define mkaon 0.4937
#define mproton 0.9383
struct SG_FourPi_Analyzer {
SGSelector sgSelector;
Configurable<float> FV0_cut{"FV0", 100., "FV0A threshold"};
Configurable<float> FT0A_cut{"FT0A", 100., "FT0A threshold"};
Configurable<float> FV0_cut{"FV0", 50., "FV0A threshold"};
Configurable<float> FT0A_cut{"FT0A", 150., "FT0A threshold"};
Configurable<float> FT0C_cut{"FT0C", 50., "FT0C threshold"};
Configurable<float> FDDA_cut{"FDDA", 10000., "FDDA threshold"};
Configurable<float> FDDC_cut{"FDDC", 10000., "FDDC threshold"};
Expand All @@ -45,6 +52,7 @@ struct SG_FourPi_Analyzer {

{"GapSide", "Gap Side; Entries", {HistType::kTH1F, {{4, -1.5, 2.5}}}},
{"TrueGapSide", "Gap Side; Entries", {HistType::kTH1F, {{4, -1.5, 2.5}}}},
{"ITSNCls", "ITS Clusters", {HistType::kTH1F, {{10, -.5, 9.5}}}},
{"os_4Pi_pT", "#K#Pi pT (GeV/c); Entries", {HistType::kTH1F, {{1000, 0, 10}}}},
{"os_4Pi_eTa", "#K#Pi eTa (GeV/c); Entries", {HistType::kTH1F, {{100, -2., 2.}}}},
{"os_4Pi_invm", "#K#Pi Mass (GeV/c^2); Entries", {HistType::kTH1F, {{1000, 0, 10}}}},
Expand Down Expand Up @@ -84,9 +92,9 @@ struct SG_FourPi_Analyzer {
// Single gap either side
TLorentzVector v01;
// int truegapSide = sgSelector.trueGap(collision);
// int truegapSide = sgSelector.trueGap(collision, FV0_cut, ZDC_cut);
float FIT_cut[5] = {FV0_cut, FT0A_cut, FT0C_cut, FDDA_cut, FDDC_cut};
// int truegapSide = sgSelector.trueGap(collision, *FIT_cut, ZDC_cut);
//int truegapSide = sgSelector.trueGap(collision, FV0_cut, ZDC_cut);
float FIT_cut[5]={FV0_cut, FT0A_cut, FT0C_cut, FDDA_cut, FDDC_cut};
//int truegapSide = sgSelector.trueGap(collision, *FIT_cut, ZDC_cut);
int truegapSide = sgSelector.trueGap(collision, FIT_cut[0], FIT_cut[1], FIT_cut[3], ZDC_cut);
registry.fill(HIST("GapSide"), gapSide);
registry.fill(HIST("TrueGapSide"), truegapSide);
Expand All @@ -95,69 +103,70 @@ struct SG_FourPi_Analyzer {
// Look for D0 and D0bar
float sign = 0;
for (auto t : tracks) {
TLorentzVector a;
a.SetXYZM(t.px(), t.py(), t.pz(), mpion);
if (trackselector(t)) {
sign += t.sign();
goodTracks.push_back(a);
}
//int itsNCls = t.itsNCls();
int itsNCls = t.uditsNCls();
// int itsNCls = o2::aod::track::v001::ITSNCls<track::ITSClusterSizes>;
// if (t.itsNCls()) {std::cout << t.itsClusterSizes()<<std::endl;
// registry.fill(HIST("ITSNCls"), t.itsClusterSizes());}
//if (itsNCls) {
std::cout <<t.itsClusterSizes()<<"\t"<< itsNCls<<std::endl;
registry.fill(HIST("ITSNCls"), itsNCls);
//}
TLorentzVector a;
a.SetXYZM(t.px(), t.py(), t.pz(), mpion);
if (trackselector(t)){
sign += t.sign();
goodTracks.push_back(a);
}
}
std::cout << goodTracks.size() << std::endl;
if (goodTracks.size() == 4) {
for (auto pion : goodTracks) {
v01 += pion;
}
// Apply pion hypothesis and create pairs
// Opposite sign pairs
// std::cout << goodTracks.size()<<std::endl;
if (goodTracks.size()==4) {
for (auto pion : goodTracks){
v01 += pion;
}
// Apply pion hypothesis and create pairs
// Opposite sign pairs

if (sign == 0) {
registry.fill(HIST("os_4Pi_pT"), v01.Pt());
registry.fill(HIST("os_4Pi_eTa"), v01.Eta());
if (TMath::Abs(v01.Eta() < 0.9) && v01.Pt() < .15)
registry.fill(HIST("os_4Pi_invm"), v01.M());
if (gapSide == 0) {
registry.fill(HIST("os_4Pi_pT_0"), v01.Pt());
registry.fill(HIST("os_4Pi_eTa_0"), v01.Eta());
if (TMath::Abs(v01.Eta() < 0.9) && v01.Pt() < .15)
registry.fill(HIST("os_4Pi_invm_0"), v01.M());
}
if (gapSide == 1) {
registry.fill(HIST("os_4Pi_pT_1"), v01.Pt());
registry.fill(HIST("os_4Pi_eTa_1"), v01.Eta());
if (TMath::Abs(v01.Eta() < 0.9) && v01.Pt() < .15)
registry.fill(HIST("os_4Pi_invm_1"), v01.M());
}
if (gapSide == 2) {
registry.fill(HIST("os_4Pi_pT_2"), v01.Pt());
registry.fill(HIST("os_4Pi_eTa_2"), v01.Eta());
if (TMath::Abs(v01.Eta() < 0.9) && v01.Pt() < .15)
registry.fill(HIST("os_4Pi_invm_2"), v01.M());
}
} else {
registry.fill(HIST("ss_4Pi_pT"), v01.Pt());
registry.fill(HIST("ss_4Pi_eTa"), v01.Eta());
if (TMath::Abs(v01.Eta() < 0.9) && v01.Pt() < .15)
registry.fill(HIST("ss_4Pi_invm"), v01.M());
if (gapSide == 0) {
registry.fill(HIST("ss_4Pi_pT_0"), v01.Pt());
registry.fill(HIST("ss_4Pi_eTa_0"), v01.Eta());
if (TMath::Abs(v01.Eta() < 0.9) && v01.Pt() < .15)
registry.fill(HIST("ss_4Pi_invm_0"), v01.M());
}
if (gapSide == 1) {
registry.fill(HIST("ss_4Pi_pT_1"), v01.Pt());
registry.fill(HIST("ss_4Pi_eTa_1"), v01.Eta());
if (TMath::Abs(v01.Eta() < 0.9) && v01.Pt() < .15)
registry.fill(HIST("ss_4Pi_invm_1"), v01.M());
}
if (gapSide == 2) {
registry.fill(HIST("ss_4Pi_pT_2"), v01.Pt());
registry.fill(HIST("ss_4Pi_eTa_2"), v01.Eta());
if (TMath::Abs(v01.Eta() < 0.9) && v01.Pt() < .15)
registry.fill(HIST("ss_4Pi_invm_2"), v01.M());
if (sign == 0) {
registry.fill(HIST("os_4Pi_pT"), v01.Pt());
registry.fill(HIST("os_4Pi_eTa"), v01.Eta());
if(TMath::Abs(v01.Eta()<0.9) && v01.Pt() < .15) registry.fill(HIST("os_4Pi_invm"), v01.M());
if (gapSide == 0) {
registry.fill(HIST("os_4Pi_pT_0"), v01.Pt());
registry.fill(HIST("os_4Pi_eTa_0"), v01.Eta());
if(TMath::Abs(v01.Eta()<0.9) && v01.Pt() < .15) registry.fill(HIST("os_4Pi_invm_0"), v01.M());
}
if (gapSide == 1) {
registry.fill(HIST("os_4Pi_pT_1"), v01.Pt());
registry.fill(HIST("os_4Pi_eTa_1"), v01.Eta());
if(TMath::Abs(v01.Eta()<0.9) && v01.Pt() < .15) registry.fill(HIST("os_4Pi_invm_1"), v01.M());
}
if (gapSide == 2) {
registry.fill(HIST("os_4Pi_pT_2"), v01.Pt());
registry.fill(HIST("os_4Pi_eTa_2"), v01.Eta());
if(TMath::Abs(v01.Eta()<0.9) && v01.Pt() < .15) registry.fill(HIST("os_4Pi_invm_2"), v01.M());
}
} else {
registry.fill(HIST("ss_4Pi_pT"), v01.Pt());
registry.fill(HIST("ss_4Pi_eTa"), v01.Eta());
if(TMath::Abs(v01.Eta()<0.9) && v01.Pt() < .15) registry.fill(HIST("ss_4Pi_invm"), v01.M());
if (gapSide == 0) {
registry.fill(HIST("ss_4Pi_pT_0"), v01.Pt());
registry.fill(HIST("ss_4Pi_eTa_0"), v01.Eta());
if(TMath::Abs(v01.Eta()<0.9) && v01.Pt() < .15) registry.fill(HIST("ss_4Pi_invm_0"), v01.M());
}
if (gapSide == 1) {
registry.fill(HIST("ss_4Pi_pT_1"), v01.Pt());
registry.fill(HIST("ss_4Pi_eTa_1"), v01.Eta());
if(TMath::Abs(v01.Eta()<0.9) && v01.Pt() < .15) registry.fill(HIST("ss_4Pi_invm_1"), v01.M());
}
if (gapSide == 2) {
registry.fill(HIST("ss_4Pi_pT_2"), v01.Pt());
registry.fill(HIST("ss_4Pi_eTa_2"), v01.Eta());
if(TMath::Abs(v01.Eta()<0.9) && v01.Pt() < .15) registry.fill(HIST("ss_4Pi_invm_2"), v01.M());
}
}
}
}
}
};

Expand Down

0 comments on commit 363ab4e

Please sign in to comment.