Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Appearance settings
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 4 additions & 0 deletions 4 examples/pythia8/pythia_nuclei.cfg
Original file line number Diff line number Diff line change
@@ -1,3 +1,7 @@
#Config file to define the nuclei species that are not in vanilla pythia
1000020030:all 3He 3Hebar 1 6 0 2.8094
1000010030:all 3Tr 3Trbar 1 3 0 2.8089218
2010010020:all 2CDeuteron 2CDeuteronbar 1 3 0 3.226
# c-deuteron -> deuteron K- pi+
2010010020:tau0=0.06000000000
2010010020:addChannel = 1 .1 0 1000010020 -321 211
1 change: 1 addition & 0 deletions 1 examples/scripts/common.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@

"""
Common header for AOD python scripts
Author: Nicolo' Jacazio, nicolo.jacazio@cern.ch
"""

import argparse
Expand Down
3 changes: 2 additions & 1 deletion 3 examples/scripts/createO2tables.py
Original file line number Diff line number Diff line change
@@ -1,7 +1,8 @@
#! /usr/bin/env python3

"""
Handler to run the DelphesO2 framework and to create O2 analysis tables
Handler to run the DelphesO2 framework and to create O2 analysis tables.
Author: Nicolo' Jacazio, nicolo.jacazio@cern.ch
"""

import configparser
Expand Down
24 changes: 21 additions & 3 deletions 24 examples/scripts/default_configfile.ini
Original file line number Diff line number Diff line change
Expand Up @@ -74,23 +74,41 @@ generators = $DELPHESO2_ROOT/examples/pythia8/pythia8_XeXe.cfg
custom_gen = INPUT_FILES /tmp/AnalysisResults_*.hepmc

[GUN]
custom_gen = rpythia8-gun --pdg 421 --px 1. --py 0. --pz 0. --xProd 0. --yProd 0. --zProd 0. --config $DELPHESO2_ROOT/examples/pythia8/decays/force_hadronic_D.cfg --decay
custom_gen = rpythia8-gun --pdg 421 --px 1. --py 0. --pz 0. --xProd 0. --yProd 0. --zProd 0. --config $DELPHESO2_ROOT/examples/pythia8/decays/force_hadronic_D.cfg --decay --npart 100

[BOX_pion]
custom_gen = rpythia8-box --pdg 211 --etamin -2. --etamax 2. --phimin 0. --phimax 6.28 --pmin 0 --pmax 10 --xProd 0. --yProd 0. --zProd 0. --decay --npart 100

[BOX_proton]
custom_gen = rpythia8-box --pdg 2212 --etamin -2. --etamax 2. --phimin 0. --phimax 6.28 --pmin 0 --pmax 10 --xProd 0. --yProd 0. --zProd 0. --decay --npart 100
custom_gen = rpythia8-box --pdg 2212 --etamin -2. --etamax 2. --phimin 0. --phimax 6.28 --pmin 0 --pmax 10 --xProd 0. --yProd 0. --zProd 0. --decay --npart 100 --config $DELPHESO2_ROOT/examples/pythia8/pythia_nuclei.cfg --background-config $O2_ROOT/share/Generators/egconfig/pythia8_hi.cfg

[BOX_proton_nobkg]
custom_gen = rpythia8-box --pdg 2212 --etamin -2. --etamax 2. --phimin 0. --phimax 6.28 --pmin 0 --pmax 10 --xProd 0. --yProd 0. --zProd 0. --decay --npart 100 --config $DELPHESO2_ROOT/examples/pythia8/pythia_nuclei.cfg

[BOX_deuteron]
custom_gen = rpythia8-box --pdg 1000010020 --etamin -2. --etamax 2. --phimin 0. --phimax 6.28 --pmin 0 --pmax 10 --xProd 0. --yProd 0. --zProd 0. --decay --npart 100
custom_gen = rpythia8-box --pdg 1000010020 --etamin -2. --etamax 2. --phimin 0. --phimax 6.28 --pmin 0 --pmax 10 --xProd 0. --yProd 0. --zProd 0. --decay --npart 100 --config $DELPHESO2_ROOT/examples/pythia8/pythia_nuclei.cfg --background-config $O2_ROOT/share/Generators/egconfig/pythia8_hi.cfg

[BOX_deuteron_nobkg]
custom_gen = rpythia8-box --pdg 1000010020 --etamin -2. --etamax 2. --phimin 0. --phimax 6.28 --pmin 0 --pmax 10 --xProd 0. --yProd 0. --zProd 0. --decay --npart 100 --config $DELPHESO2_ROOT/examples/pythia8/pythia_nuclei.cfg

[BOX_triton]
custom_gen = rpythia8-box --pdg 1000010030 --etamin -2. --etamax 2. --phimin 0. --phimax 6.28 --pmin 0 --pmax 10 --xProd 0. --yProd 0. --zProd 0. --decay --npart 100 --config $DELPHESO2_ROOT/examples/pythia8/pythia_nuclei.cfg --background-config $O2_ROOT/share/Generators/egconfig/pythia8_hi.cfg

[BOX_triton_nobkg]
custom_gen = rpythia8-box --pdg 1000010030 --etamin -2. --etamax 2. --phimin 0. --phimax 6.28 --pmin 0 --pmax 10 --xProd 0. --yProd 0. --zProd 0. --decay --npart 100 --config $DELPHESO2_ROOT/examples/pythia8/pythia_nuclei.cfg

[BOX_helium3]
custom_gen = rpythia8-box --pdg 1000020030 --etamin -2. --etamax 2. --phimin 0. --phimax 6.28 --pmin 0 --pmax 10 --xProd 0. --yProd 0. --zProd 0. --decay --npart 100 --config $DELPHESO2_ROOT/examples/pythia8/pythia_nuclei.cfg --background-config $O2_ROOT/share/Generators/egconfig/pythia8_hi.cfg

[BOX_helium3_nobkg]
custom_gen = rpythia8-box --pdg 1000020030 --etamin -2. --etamax 2. --phimin 0. --phimax 6.28 --pmin 0 --pmax 10 --xProd 0. --yProd 0. --zProd 0. --decay --npart 100 --config $DELPHESO2_ROOT/examples/pythia8/pythia_nuclei.cfg

[BOX_c_deuteron_nobkg]
custom_gen = rpythia8-box --pdg 2010010020 --etamin -2. --etamax 2. --phimin 0. --phimax 6.28 --pmin 0 --pmax 10 --xProd 0. --yProd 0. --zProd 0. --decay --npart 100 --config /home/njacazio/alice/DelphesO2/examples/pythia8/pythia_nuclei.cfg

[BOX_c_deuteron]
custom_gen = rpythia8-box --pdg 2010010020 --etamin -2. --etamax 2. --phimin 0. --phimax 6.28 --pmin 0 --pmax 10 --xProd 0. --yProd 0. --zProd 0. --decay --npart 100 --config /home/njacazio/alice/DelphesO2/examples/pythia8/pythia_nuclei.cfg --background-config $O2_ROOT/share/Generators/egconfig/pythia8_hi.cfg

[GUN_Lc_pKpi]
custom_gen = rpythia8-gun --pdg 4122 --px 1. --py 0. --pz 0. --xProd 1. --yProd 0. --zProd 0. --config $O2DPG_ROOT/MC/config/PWGHF/pythia8/decayer/force_hadronic_D_forceLcChannel1.cfg --decay

Expand Down
3 changes: 3 additions & 0 deletions 3 src/TrackSmearer.cc
Original file line number Diff line number Diff line change
Expand Up @@ -135,6 +135,9 @@ TrackSmearer::smearTrack(O2Track &o2track, int pid, float nch)
{

auto pt = o2track.getPt();
if (abs(pid) == 1000020030) {
pt *= 2.f;
}
auto eta = o2track.getEta();
auto lutEntry = getLUTEntry(pid, nch, 0., eta, pt);
if (!lutEntry || !lutEntry->valid) return false;
Expand Down
95 changes: 30 additions & 65 deletions 95 src/lutWrite_aod.cc
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,8 @@
/// @author: Nicolo' Jacazio
/// @email: nicolo.jacazio@cern.ch

/// \brief LUT writer with the AnalysisResults from AODs as input

#include "TCanvas.h"
#include "TDatabasePDG.h"
#include "TFile.h"
Expand All @@ -12,32 +14,23 @@
#include "TProfile2D.h"
#include "TProfile3D.h"
#include "TVectorD.h"
#include "fwdRes/fwdRes.C"
#include "DetectorK/DetectorK.h"
#include "lutCovm.hh"
#include <Riostream.h>

void diagonalise(lutEntry_t& lutEntry);

bool fwdSolve(float* covm, float pt = 0.1, float eta = 0.0,
float mass = 0.13957000)
{
if (fwdRes(covm, pt, eta, mass) < 0)
return false;
return true;
}
#include "lutWrite.cc"

void lutWrite_aod(const char* filename = "/tmp/lutCovm.pi.aod.dat",
int pdg = 211,
float field = 0.2, int layer = 0, int what = 0,
int efftype = 0,
const char* infilename = "/tmp/AnalysisResults_LUT.root",
float minPt = 0.f,
float maxPt = 80.f,
float minEta = -4.f,
float maxEta = 4.f)
int pdg = 211,
float field = 0.2, int layer = 0, int what = 0,
int efftype = 0,
const char* infilename = "/tmp/AnalysisResults_LUT.root",
float minPt = 0.f,
float maxPt = 80.f,
float minEta = -4.f,
float maxEta = 4.f)
{

std::map<int, std::string> partname{ { 11, "electron" }, { 13, "muon" }, { 211, "pion" }, { 321, "kaon" }, { 2212, "proton" } };
std::map<int, std::string> partname{{11, "electron"}, {13, "muon"}, {211, "pion"}, {321, "kaon"}, {2212, "proton"}};
const std::string dn = "alice3-lutmaker-" + partname[pdg];

// Get the input from the analysis results
Expand All @@ -55,23 +48,23 @@ void lutWrite_aod(const char* filename = "/tmp/lutCovm.pi.aod.dat",
return;
}
// d->ls();
std::map<std::string, TH1F*> h{ { "eta", nullptr }, { "pt", nullptr } };
std::map<std::string, TProfile2D*> m{ { "CovMat_cYY", nullptr },
{ "CovMat_cZY", nullptr },
{ "CovMat_cZZ", nullptr },
{ "CovMat_cSnpY", nullptr },
{ "CovMat_cSnpZ", nullptr },
{ "CovMat_cSnpSnp", nullptr },
{ "CovMat_cTglY", nullptr },
{ "CovMat_cTglZ", nullptr },
{ "CovMat_cTglSnp", nullptr },
{ "CovMat_cTglTgl", nullptr },
{ "CovMat_c1PtY", nullptr },
{ "CovMat_c1PtZ", nullptr },
{ "CovMat_c1PtSnp", nullptr },
{ "CovMat_c1PtTgl", nullptr },
{ "CovMat_c1Pt21Pt2", nullptr },
{ "Efficiency", nullptr } };
std::map<std::string, TH1F*> h{{"eta", nullptr}, {"pt", nullptr}};
std::map<std::string, TProfile2D*> m{{"CovMat_cYY", nullptr},
{"CovMat_cZY", nullptr},
{"CovMat_cZZ", nullptr},
{"CovMat_cSnpY", nullptr},
{"CovMat_cSnpZ", nullptr},
{"CovMat_cSnpSnp", nullptr},
{"CovMat_cTglY", nullptr},
{"CovMat_cTglZ", nullptr},
{"CovMat_cTglSnp", nullptr},
{"CovMat_cTglTgl", nullptr},
{"CovMat_c1PtY", nullptr},
{"CovMat_c1PtZ", nullptr},
{"CovMat_c1PtSnp", nullptr},
{"CovMat_c1PtTgl", nullptr},
{"CovMat_c1Pt21Pt2", nullptr},
{"Efficiency", nullptr}};

struct binning {
int n = 0;
Expand Down Expand Up @@ -288,31 +281,3 @@ void lutWrite_aod(const char* filename = "/tmp/lutCovm.pi.aod.dat",
can->cd(2);
hetacalls->Draw("HIST");
}

void diagonalise(lutEntry_t& lutEntry)
{
// Printf(" --- diagonalise: pt = %f, eta = %f", lutEntry.pt, lutEntry.eta);
TMatrixDSym m(5);
double fcovm[5][5];
for (int i = 0, k = 0; i < 5; ++i)
for (int j = 0; j < i + 1; ++j, ++k) {
fcovm[i][j] = lutEntry.covm[k];
fcovm[j][i] = lutEntry.covm[k];
}
m.SetMatrixArray((double*)fcovm);
TMatrixDSymEigen eigen(m);
// eigenvalues vector
TVectorD eigenVal = eigen.GetEigenValues();
for (int i = 0; i < 5; ++i)
lutEntry.eigval[i] = eigenVal[i];
// eigenvectors matrix
TMatrixD eigenVec = eigen.GetEigenVectors();
for (int i = 0; i < 5; ++i)
for (int j = 0; j < 5; ++j)
lutEntry.eigvec[i][j] = eigenVec[i][j];
// inverse eigenvectors matrix
eigenVec.Invert();
for (int i = 0; i < 5; ++i)
for (int j = 0; j < 5; ++j)
lutEntry.eiginv[i][j] = eigenVec[i][j];
}
Morty Proxy This is a proxified and sanitized view of the page, visit original site.