|
@@ -38,6 +38,18 @@ qaUtility::qaUtility() : Nevents(-1),
|
|
|
Cut_v1_Particle_etamax(100.),
|
|
|
Cut_v1_Particle_ymin(-0.25),
|
|
|
Cut_v1_Particle_ymax(-0.15),
|
|
|
+ Cut_v1_Particle_ptmin_pi(0.0),
|
|
|
+ Cut_v1_Particle_ptmax_pi(0.5),
|
|
|
+ Cut_v1_Particle_ymin_pi(-0.25),
|
|
|
+ Cut_v1_Particle_ymax_pi(-0.15),
|
|
|
+ Cut_v1_Particle_ptmin_ka(0.2),
|
|
|
+ Cut_v1_Particle_ptmax_ka(0.9),
|
|
|
+ Cut_v1_Particle_ymin_ka(-0.25),
|
|
|
+ Cut_v1_Particle_ymax_ka(-0.15),
|
|
|
+ Cut_v1_Particle_ptmin_pr(1.0),
|
|
|
+ Cut_v1_Particle_ptmax_pr(1.5),
|
|
|
+ Cut_v1_Particle_ymin_pr(-0.25),
|
|
|
+ Cut_v1_Particle_ymax_pr(-0.15),
|
|
|
Cut_v2_Event_bmin(0.),
|
|
|
Cut_v2_Event_bmax(16.),
|
|
|
sCut_v2_Event_bCent(""),
|
|
@@ -47,7 +59,19 @@ qaUtility::qaUtility() : Nevents(-1),
|
|
|
Cut_v2_Particle_etamin(-100.),
|
|
|
Cut_v2_Particle_etamax(100.),
|
|
|
Cut_v2_Particle_ymin(-0.05),
|
|
|
- Cut_v2_Particle_ymax(0.05)
|
|
|
+ Cut_v2_Particle_ymax(0.05),
|
|
|
+ Cut_v2_Particle_ptmin_pi(0.0),
|
|
|
+ Cut_v2_Particle_ptmax_pi(0.5),
|
|
|
+ Cut_v2_Particle_ymin_pi(-0.05),
|
|
|
+ Cut_v2_Particle_ymax_pi(0.05),
|
|
|
+ Cut_v2_Particle_ptmin_ka(0.2),
|
|
|
+ Cut_v2_Particle_ptmax_ka(0.9),
|
|
|
+ Cut_v2_Particle_ymin_ka(-0.05),
|
|
|
+ Cut_v2_Particle_ymax_ka(0.05),
|
|
|
+ Cut_v2_Particle_ptmin_pr(1.0),
|
|
|
+ Cut_v2_Particle_ptmax_pr(1.5),
|
|
|
+ Cut_v2_Particle_ymin_pr(-0.05),
|
|
|
+ Cut_v2_Particle_ymax_pr(0.05)
|
|
|
{
|
|
|
}
|
|
|
|
|
@@ -107,6 +131,18 @@ Bool_t qaUtility::ReadConfig(const TString &configFileName)
|
|
|
Cut_v1_Particle_etamax = env.GetValue("Cut_v1_Particle_etamax", 0.);
|
|
|
Cut_v1_Particle_ymin = env.GetValue("Cut_v1_Particle_ymin", 0.);
|
|
|
Cut_v1_Particle_ymax = env.GetValue("Cut_v1_Particle_ymax", 0.);
|
|
|
+ Cut_v1_Particle_ptmin_pi = env.GetValue("Cut_v1_Particle_ptmin_pi", 0.);
|
|
|
+ Cut_v1_Particle_ptmax_pi = env.GetValue("Cut_v1_Particle_ptmax_pi", 0.);
|
|
|
+ Cut_v1_Particle_ymin_pi = env.GetValue("Cut_v1_Particle_ymin_pi", 0.);
|
|
|
+ Cut_v1_Particle_ymax_pi = env.GetValue("Cut_v1_Particle_ymax_pi", 0.);
|
|
|
+ Cut_v1_Particle_ptmin_ka = env.GetValue("Cut_v1_Particle_ptmin_ka", 0.);
|
|
|
+ Cut_v1_Particle_ptmax_ka = env.GetValue("Cut_v1_Particle_ptmax_ka", 0.);
|
|
|
+ Cut_v1_Particle_ymin_ka = env.GetValue("Cut_v1_Particle_ymin_ka", 0.);
|
|
|
+ Cut_v1_Particle_ymax_ka = env.GetValue("Cut_v1_Particle_ymax_ka", 0.);
|
|
|
+ Cut_v1_Particle_ptmin_pr = env.GetValue("Cut_v1_Particle_ptmin_pr", 0.);
|
|
|
+ Cut_v1_Particle_ptmax_pr = env.GetValue("Cut_v1_Particle_ptmax_pr", 0.);
|
|
|
+ Cut_v1_Particle_ymin_pr = env.GetValue("Cut_v1_Particle_ymin_pr", 0.);
|
|
|
+ Cut_v1_Particle_ymax_pr = env.GetValue("Cut_v1_Particle_ymax_pr", 0.);
|
|
|
|
|
|
Is_v2 = env.GetValue("Is_v2", 0);
|
|
|
Cut_v2_Event_bmin = env.GetValue("Cut_v2_Event_bmin", 0.);
|
|
@@ -119,6 +155,18 @@ Bool_t qaUtility::ReadConfig(const TString &configFileName)
|
|
|
Cut_v2_Particle_etamax = env.GetValue("Cut_v2_Particle_etamax", 0.);
|
|
|
Cut_v2_Particle_ymin = env.GetValue("Cut_v2_Particle_ymin", 0.);
|
|
|
Cut_v2_Particle_ymax = env.GetValue("Cut_v2_Particle_ymax", 0.);
|
|
|
+ Cut_v2_Particle_ptmin_pi = env.GetValue("Cut_v2_Particle_ptmin_pi", 0.);
|
|
|
+ Cut_v2_Particle_ptmax_pi = env.GetValue("Cut_v2_Particle_ptmax_pi", 0.);
|
|
|
+ Cut_v2_Particle_ymin_pi = env.GetValue("Cut_v2_Particle_ymin_pi", 0.);
|
|
|
+ Cut_v2_Particle_ymax_pi = env.GetValue("Cut_v2_Particle_ymax_pi", 0.);
|
|
|
+ Cut_v2_Particle_ptmin_ka = env.GetValue("Cut_v2_Particle_ptmin_ka", 0.);
|
|
|
+ Cut_v2_Particle_ptmax_ka = env.GetValue("Cut_v2_Particle_ptmax_ka", 0.);
|
|
|
+ Cut_v2_Particle_ymin_ka = env.GetValue("Cut_v2_Particle_ymin_ka", 0.);
|
|
|
+ Cut_v2_Particle_ymax_ka = env.GetValue("Cut_v2_Particle_ymax_ka", 0.);
|
|
|
+ Cut_v2_Particle_ptmin_pr = env.GetValue("Cut_v2_Particle_ptmin_pr", 0.);
|
|
|
+ Cut_v2_Particle_ptmax_pr = env.GetValue("Cut_v2_Particle_ptmax_pr", 0.);
|
|
|
+ Cut_v2_Particle_ymin_pr = env.GetValue("Cut_v2_Particle_ymin_pr", 0.);
|
|
|
+ Cut_v2_Particle_ymax_pr = env.GetValue("Cut_v2_Particle_ymax_pr", 0.);
|
|
|
|
|
|
if (!initCentrality()) return false;
|
|
|
|
|
@@ -138,7 +186,7 @@ TChain *qaUtility::initChain(const TString &inputFileName, const char *chainName
|
|
|
return chain;
|
|
|
}
|
|
|
|
|
|
-std::vector<Float_t> qaUtility::ReadBvector(std::string _input)
|
|
|
+std::vector<Float_t> qaUtility::ParseVector(std::string _input)
|
|
|
{
|
|
|
std::vector<Float_t> vB;
|
|
|
|
|
@@ -153,8 +201,8 @@ std::vector<Float_t> qaUtility::ReadBvector(std::string _input)
|
|
|
|
|
|
Bool_t qaUtility::initCentrality()
|
|
|
{
|
|
|
- Cut_v1_Event_bCent = ReadBvector(sCut_v1_Event_bCent);
|
|
|
- Cut_v2_Event_bCent = ReadBvector(sCut_v2_Event_bCent);
|
|
|
+ Cut_v1_Event_bCent = ParseVector(sCut_v1_Event_bCent);
|
|
|
+ Cut_v2_Event_bCent = ParseVector(sCut_v2_Event_bCent);
|
|
|
|
|
|
if (Cut_v1_Event_bCent.size() == 0 ||
|
|
|
Cut_v2_Event_bCent.size() == 0)
|
|
@@ -241,6 +289,11 @@ Bool_t qaUtility::Cut_Particle_refmult(qaParticle *const &particle)
|
|
|
|
|
|
Bool_t qaUtility::Cut_Particle_v1_pt(qaParticle *const &particle)
|
|
|
{
|
|
|
+ if (particle->GetEta() < Cut_v1_Particle_etamin)
|
|
|
+ return false;
|
|
|
+ if (particle->GetEta() > Cut_v1_Particle_etamax)
|
|
|
+ return false;
|
|
|
+
|
|
|
double y = 0.5 * TMath::Log( (particle->GetEnergy() + particle->GetPz())/(particle->GetEnergy() - particle->GetPz()) );
|
|
|
if (y < Cut_v1_Particle_ymin)
|
|
|
return false;
|
|
@@ -256,8 +309,64 @@ Bool_t qaUtility::Cut_Particle_v1_pt(qaParticle *const &particle)
|
|
|
return true;
|
|
|
}
|
|
|
|
|
|
+Bool_t qaUtility::Cut_Particle_v1_PID_pt(qaParticle *const &particle, Int_t _pid)
|
|
|
+{
|
|
|
+ if (particle->GetPdg() != vpdg.at(_pid) && _pid != 0 && _pid != 4)
|
|
|
+ return false;
|
|
|
+
|
|
|
+ if (particle->GetEta() < Cut_v1_Particle_etamin)
|
|
|
+ return false;
|
|
|
+ if (particle->GetEta() > Cut_v1_Particle_etamax)
|
|
|
+ return false;
|
|
|
+
|
|
|
+ // PID related kinematics cut
|
|
|
+ Double_t y = 0.5 * TMath::Log( (particle->GetEnergy() + particle->GetPz())/(particle->GetEnergy() - particle->GetPz()) );
|
|
|
+ if (_pid == 1 && y < Cut_v1_Particle_ymin_pi)
|
|
|
+ return false;
|
|
|
+ if (_pid == 1 && y > Cut_v1_Particle_ymax_pi)
|
|
|
+ return false;
|
|
|
+ if (_pid == 2 && y < Cut_v1_Particle_ymin_ka)
|
|
|
+ return false;
|
|
|
+ if (_pid == 2 && y > Cut_v1_Particle_ymax_ka)
|
|
|
+ return false;
|
|
|
+ if (_pid == 3 && y < Cut_v1_Particle_ymin_pr)
|
|
|
+ return false;
|
|
|
+ if (_pid == 3 && y > Cut_v1_Particle_ymax_pr)
|
|
|
+ return false;
|
|
|
+ if (_pid == 5 && y < Cut_v1_Particle_ymin_pi)
|
|
|
+ return false;
|
|
|
+ if (_pid == 5 && y > Cut_v1_Particle_ymax_pi)
|
|
|
+ return false;
|
|
|
+ if (_pid == 6 && y < Cut_v1_Particle_ymin_ka)
|
|
|
+ return false;
|
|
|
+ if (_pid == 6 && y > Cut_v1_Particle_ymax_ka)
|
|
|
+ return false;
|
|
|
+ if (_pid == 7 && y < Cut_v1_Particle_ymin_pr)
|
|
|
+ return false;
|
|
|
+ if (_pid == 7 && y > Cut_v1_Particle_ymax_pr)
|
|
|
+ return false;
|
|
|
+
|
|
|
+ Double_t charge = GetCharge(particle->GetPdg());
|
|
|
+ if (charge == error_code)
|
|
|
+ return false;
|
|
|
+ if (charge == 0)
|
|
|
+ return false;
|
|
|
+
|
|
|
+ if (_pid == 0 && charge < 0)
|
|
|
+ return false;
|
|
|
+ if (_pid == 4 && charge > 0)
|
|
|
+ return false;
|
|
|
+
|
|
|
+ return true;
|
|
|
+}
|
|
|
+
|
|
|
Bool_t qaUtility::Cut_Particle_v1_y(qaParticle *const &particle)
|
|
|
{
|
|
|
+ if (particle->GetEta() < Cut_v1_Particle_etamin)
|
|
|
+ return false;
|
|
|
+ if (particle->GetEta() > Cut_v1_Particle_etamax)
|
|
|
+ return false;
|
|
|
+
|
|
|
if (particle->GetPt() < Cut_v1_Particle_ptmin)
|
|
|
return false;
|
|
|
if (particle->GetPt() > Cut_v1_Particle_ptmax)
|
|
@@ -272,8 +381,63 @@ Bool_t qaUtility::Cut_Particle_v1_y(qaParticle *const &particle)
|
|
|
return true;
|
|
|
}
|
|
|
|
|
|
+Bool_t qaUtility::Cut_Particle_v1_PID_y(qaParticle *const &particle, Int_t _pid)
|
|
|
+{
|
|
|
+ if (particle->GetPdg() != vpdg.at(_pid) && _pid != 0 && _pid != 4)
|
|
|
+ return false;
|
|
|
+
|
|
|
+ if (particle->GetEta() < Cut_v1_Particle_etamin)
|
|
|
+ return false;
|
|
|
+ if (particle->GetEta() > Cut_v1_Particle_etamax)
|
|
|
+ return false;
|
|
|
+
|
|
|
+ // PID related kinematics cut
|
|
|
+ if (_pid == 1 && particle->GetPt() < Cut_v1_Particle_ptmin_pi)
|
|
|
+ return false;
|
|
|
+ if (_pid == 1 && particle->GetPt() > Cut_v1_Particle_ptmax_pi)
|
|
|
+ return false;
|
|
|
+ if (_pid == 2 && particle->GetPt() < Cut_v1_Particle_ptmin_ka)
|
|
|
+ return false;
|
|
|
+ if (_pid == 2 && particle->GetPt() > Cut_v1_Particle_ptmax_ka)
|
|
|
+ return false;
|
|
|
+ if (_pid == 3 && particle->GetPt() < Cut_v1_Particle_ptmin_pr)
|
|
|
+ return false;
|
|
|
+ if (_pid == 3 && particle->GetPt() > Cut_v1_Particle_ptmax_pr)
|
|
|
+ return false;
|
|
|
+ if (_pid == 5 && particle->GetPt() < Cut_v1_Particle_ptmin_pi)
|
|
|
+ return false;
|
|
|
+ if (_pid == 5 && particle->GetPt() > Cut_v1_Particle_ptmax_pi)
|
|
|
+ return false;
|
|
|
+ if (_pid == 6 && particle->GetPt() < Cut_v1_Particle_ptmin_ka)
|
|
|
+ return false;
|
|
|
+ if (_pid == 6 && particle->GetPt() > Cut_v1_Particle_ptmax_ka)
|
|
|
+ return false;
|
|
|
+ if (_pid == 7 && particle->GetPt() < Cut_v1_Particle_ptmin_pr)
|
|
|
+ return false;
|
|
|
+ if (_pid == 7 && particle->GetPt() > Cut_v1_Particle_ptmax_pr)
|
|
|
+ return false;
|
|
|
+
|
|
|
+ Double_t charge = GetCharge(particle->GetPdg());
|
|
|
+ if (charge == error_code)
|
|
|
+ return false;
|
|
|
+ if (charge == 0)
|
|
|
+ return false;
|
|
|
+
|
|
|
+ if (_pid == 0 && charge < 0)
|
|
|
+ return false;
|
|
|
+ if (_pid == 4 && charge > 0)
|
|
|
+ return false;
|
|
|
+
|
|
|
+ return true;
|
|
|
+}
|
|
|
+
|
|
|
Bool_t qaUtility::Cut_Particle_v2_pt(qaParticle *const &particle)
|
|
|
{
|
|
|
+ if (particle->GetEta() < Cut_v2_Particle_etamin)
|
|
|
+ return false;
|
|
|
+ if (particle->GetEta() > Cut_v2_Particle_etamax)
|
|
|
+ return false;
|
|
|
+
|
|
|
double y = 0.5 * TMath::Log( (particle->GetEnergy() + particle->GetPz())/(particle->GetEnergy() - particle->GetPz()) );
|
|
|
if (y < Cut_v2_Particle_ymin)
|
|
|
return false;
|
|
@@ -289,8 +453,64 @@ Bool_t qaUtility::Cut_Particle_v2_pt(qaParticle *const &particle)
|
|
|
return true;
|
|
|
}
|
|
|
|
|
|
+Bool_t qaUtility::Cut_Particle_v2_PID_pt(qaParticle *const &particle, Int_t _pid)
|
|
|
+{
|
|
|
+ if (particle->GetPdg() != vpdg.at(_pid) && _pid != 0 && _pid != 4)
|
|
|
+ return false;
|
|
|
+
|
|
|
+ if (particle->GetEta() < Cut_v2_Particle_etamin)
|
|
|
+ return false;
|
|
|
+ if (particle->GetEta() > Cut_v2_Particle_etamax)
|
|
|
+ return false;
|
|
|
+
|
|
|
+ // PID related kinematics cut
|
|
|
+ Double_t y = 0.5 * TMath::Log( (particle->GetEnergy() + particle->GetPz())/(particle->GetEnergy() - particle->GetPz()) );
|
|
|
+ if (_pid == 1 && y < Cut_v2_Particle_ymin_pi)
|
|
|
+ return false;
|
|
|
+ if (_pid == 1 && y > Cut_v2_Particle_ymax_pi)
|
|
|
+ return false;
|
|
|
+ if (_pid == 2 && y < Cut_v2_Particle_ymin_ka)
|
|
|
+ return false;
|
|
|
+ if (_pid == 2 && y > Cut_v2_Particle_ymax_ka)
|
|
|
+ return false;
|
|
|
+ if (_pid == 3 && y < Cut_v2_Particle_ymin_pr)
|
|
|
+ return false;
|
|
|
+ if (_pid == 3 && y > Cut_v2_Particle_ymax_pr)
|
|
|
+ return false;
|
|
|
+ if (_pid == 5 && y < Cut_v2_Particle_ymin_pi)
|
|
|
+ return false;
|
|
|
+ if (_pid == 5 && y > Cut_v2_Particle_ymax_pi)
|
|
|
+ return false;
|
|
|
+ if (_pid == 6 && y < Cut_v2_Particle_ymin_ka)
|
|
|
+ return false;
|
|
|
+ if (_pid == 6 && y > Cut_v2_Particle_ymax_ka)
|
|
|
+ return false;
|
|
|
+ if (_pid == 7 && y < Cut_v2_Particle_ymin_pr)
|
|
|
+ return false;
|
|
|
+ if (_pid == 7 && y > Cut_v2_Particle_ymax_pr)
|
|
|
+ return false;
|
|
|
+
|
|
|
+ Double_t charge = GetCharge(particle->GetPdg());
|
|
|
+ if (charge == error_code)
|
|
|
+ return false;
|
|
|
+ if (charge == 0)
|
|
|
+ return false;
|
|
|
+
|
|
|
+ if (_pid == 0 && charge < 0)
|
|
|
+ return false;
|
|
|
+ if (_pid == 4 && charge > 0)
|
|
|
+ return false;
|
|
|
+
|
|
|
+ return true;
|
|
|
+}
|
|
|
+
|
|
|
Bool_t qaUtility::Cut_Particle_v2_y(qaParticle *const &particle)
|
|
|
{
|
|
|
+ if (particle->GetEta() < Cut_v2_Particle_etamin)
|
|
|
+ return false;
|
|
|
+ if (particle->GetEta() > Cut_v2_Particle_etamax)
|
|
|
+ return false;
|
|
|
+
|
|
|
if (particle->GetPt() < Cut_v2_Particle_ptmin)
|
|
|
return false;
|
|
|
if (particle->GetPt() > Cut_v2_Particle_ptmax)
|
|
@@ -305,6 +525,56 @@ Bool_t qaUtility::Cut_Particle_v2_y(qaParticle *const &particle)
|
|
|
return true;
|
|
|
}
|
|
|
|
|
|
+Bool_t qaUtility::Cut_Particle_v2_PID_y(qaParticle *const &particle, Int_t _pid)
|
|
|
+{
|
|
|
+ if (particle->GetPdg() != vpdg.at(_pid) && _pid != 0 && _pid != 4)
|
|
|
+ return false;
|
|
|
+
|
|
|
+ if (particle->GetEta() < Cut_v2_Particle_etamin)
|
|
|
+ return false;
|
|
|
+ if (particle->GetEta() > Cut_v2_Particle_etamax)
|
|
|
+ return false;
|
|
|
+
|
|
|
+ // PID related kinematics cut
|
|
|
+ if (_pid == 1 && particle->GetPt() < Cut_v2_Particle_ptmin_pi)
|
|
|
+ return false;
|
|
|
+ if (_pid == 1 && particle->GetPt() > Cut_v2_Particle_ptmax_pi)
|
|
|
+ return false;
|
|
|
+ if (_pid == 2 && particle->GetPt() < Cut_v2_Particle_ptmin_ka)
|
|
|
+ return false;
|
|
|
+ if (_pid == 2 && particle->GetPt() > Cut_v2_Particle_ptmax_ka)
|
|
|
+ return false;
|
|
|
+ if (_pid == 3 && particle->GetPt() < Cut_v2_Particle_ptmin_pr)
|
|
|
+ return false;
|
|
|
+ if (_pid == 3 && particle->GetPt() > Cut_v2_Particle_ptmax_pr)
|
|
|
+ return false;
|
|
|
+ if (_pid == 5 && particle->GetPt() < Cut_v2_Particle_ptmin_pi)
|
|
|
+ return false;
|
|
|
+ if (_pid == 5 && particle->GetPt() > Cut_v2_Particle_ptmax_pi)
|
|
|
+ return false;
|
|
|
+ if (_pid == 6 && particle->GetPt() < Cut_v2_Particle_ptmin_ka)
|
|
|
+ return false;
|
|
|
+ if (_pid == 6 && particle->GetPt() > Cut_v2_Particle_ptmax_ka)
|
|
|
+ return false;
|
|
|
+ if (_pid == 7 && particle->GetPt() < Cut_v2_Particle_ptmin_pr)
|
|
|
+ return false;
|
|
|
+ if (_pid == 7 && particle->GetPt() > Cut_v2_Particle_ptmax_pr)
|
|
|
+ return false;
|
|
|
+
|
|
|
+ Double_t charge = GetCharge(particle->GetPdg());
|
|
|
+ if (charge == error_code)
|
|
|
+ return false;
|
|
|
+ if (charge == 0)
|
|
|
+ return false;
|
|
|
+
|
|
|
+ if (_pid == 0 && charge < 0)
|
|
|
+ return false;
|
|
|
+ if (_pid == 4 && charge > 0)
|
|
|
+ return false;
|
|
|
+
|
|
|
+ return true;
|
|
|
+}
|
|
|
+
|
|
|
Double_t qaUtility::GetCharge(Int_t pdg)
|
|
|
{
|
|
|
auto particle = (TParticlePDG *)TDatabasePDG::Instance()->GetParticle(pdg);
|