Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
18 commits
Select commit Hold shift + click to select a range
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
22 changes: 11 additions & 11 deletions CODEOWNERS
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@
/Common/Constants @shahor02
/Common/Field @shahor02
/Common/MathUtils @shahor02
/Common/SimConfig @sawenzel @benedikt-voelkel
/Common/SimConfig @sawenzel
#/Common/Topologies
#/Common/Types
/Common/Utils @sawenzel
Expand All @@ -37,10 +37,10 @@
/DataFormats/Detectors/ITSMFT @mcoquet642 @mconcas @shahor02
/DataFormats/Detectors/MUON @AliceO2Group/muon-experts @shahor02
/DataFormats/Detectors/PHOS @peressounko @kharlov
/DataFormats/Detectors/Passive @sawenzel @benedikt-voelkel
/DataFormats/Detectors/Passive @sawenzel
/DataFormats/Detectors/TOF @noferini
/DataFormats/Detectors/TPC @davidrohr @wiechula @shahor02
/DataFormats/Detectors/TRD @f3sch @bazinski @martenole @wille10
/DataFormats/Detectors/TRD @f3sch @bazinski @wille10
/DataFormats/Detectors/Upgrades @mconcas
/DataFormats/Detectors/Upgrades/ITS3 @fgrosa @arossi81
/DataFormats/Detectors/ZDC @coppedis
Expand All @@ -53,25 +53,25 @@
/DataFormats/Reconstruction @shahor02
#/DataFormats/TimeFrame
/DataFormats/common @shahor02
/DataFormats/simulation @sawenzel @benedikt-voelkel
/DataFormats/simulation @sawenzel

/Detectors/Base @sawenzel @shahor02 @benedikt-voelkel
/Detectors/Base @sawenzel @shahor02
/Detectors/Calibration @chiarazampolli @shahor02
/Detectors/CPV @peressounko @kharlov
/Detectors/EMCAL @mfasDa @jokonig
/Detectors/FIT @jotwinow @afurs @andreasmolander @arvindkhuntia @mslupeck
/Detectors/FOCAL @maxrauch @mfasDa @iarsene @matthiasrichter
/Detectors/Geometry @sawenzel @shahor02 @benedikt-voelkel
/Detectors/Geometry @sawenzel @shahor02
/Detectors/GlobalTracking @shahor02
/Detectors/GlobalTrackingWorkflow @shahor02
/Detectors/HMPID @gvolpe79
/Detectors/ITSMFT @mcoquet642 @mconcas @shahor02
/Detectors/MUON @AliceO2Group/muon-experts @shahor02
/Detectors/PHOS @peressounko @kharlov
/Detectors/Passive @sawenzel @benedikt-voelkel
/Detectors/Passive @sawenzel
/Detectors/TOF @noferini
/Detectors/TPC @davidrohr @wiechula @shahor02
/Detectors/TRD @f3sch @bazinski @martenole @wille10
/Detectors/TRD @f3sch @bazinski @wille10
/Detectors/Upgrades @mconcas
/Detectors/Upgrades/ITS3 @fgrosa @arossi81 @mconcas @f3sch
/Detectors/ZDC @coppedis
Expand Down Expand Up @@ -110,13 +110,13 @@
/GPU @davidrohr
#/GPU/Common
#/GPU/GPUTracking
/GPU/GPUTracking/TRDTracking @davidrohr @martenole
/GPU/GPUTracking/TRDTracking @davidrohr
/GPU/TPCFastTransformation @davidrohr @sgorbuno
/GPU/TPCSpaceChargeBase @davidrohr @ehellbar

/Generators @sawenzel @benedikt-voelkel
/Generators @sawenzel @jackal1-66

/Steer @sawenzel @shahor02 @benedikt-voelkel
/Steer @sawenzel @shahor02

/Testing

Expand Down
5 changes: 4 additions & 1 deletion Common/Constants/include/CommonConstants/PhysicsConstants.h
Original file line number Diff line number Diff line change
Expand Up @@ -75,7 +75,8 @@ enum Pdg {
kHyperTriton = 1010010030,
kHyperHydrogen4 = 1010010040,
kHyperHelium4 = 1010020040,
kHyperHelium5 = 1010020050
kHyperHelium5 = 1010020050,
kHyperHelium4Sigma = 1110020040
};

/// \brief Declarations of masses for additional particles
Expand Down Expand Up @@ -124,6 +125,7 @@ constexpr double MassHyperTriton = 2.99131;
constexpr double MassHyperHydrogen4 = 3.9226;
constexpr double MassHyperHelium4 = 3.9217;
constexpr double MassHyperHelium5 = 4.841;
constexpr double MassHyperHelium4Sigma = 3.995;

/// \brief Declarations of masses for particles in ROOT PDG_t
constexpr double MassDown = 0.00467;
Expand Down Expand Up @@ -194,6 +196,7 @@ constexpr double MassKaonNeutral = MassK0;
constexpr double MassLambda = MassLambda0;
constexpr double MassHyperhydrog4 = MassHyperHydrogen4;
constexpr double MassHyperhelium4 = MassHyperHelium4;
constexpr double MassHyperhelium4sigma = MassHyperHelium4Sigma;

// Light speed
constexpr float LightSpeedCm2S = 299792458.e2; // C in cm/s
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -131,6 +131,7 @@ class Pdg(Enum):
kHyperHydrogen4 = 1010010040
kHyperHelium4 = 1010020040
kHyperHelium5 = 1010020050
kHyperHelium4Sigma = 1110020040


dbPdg = ROOT.o2.O2DatabasePDG
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -91,8 +91,8 @@ class CalibdEdxCorrection

void clear();

void writeToFile(std::string_view fileName) const;
void loadFromFile(std::string_view fileName);
void writeToFile(std::string_view fileName, std::string_view objName = "CalibdEdxCorrection") const;
void loadFromFile(std::string_view fileName, std::string_view objName = "CalibdEdxCorrection");

/// \param outFileName name of the output file
void dumpToTree(const char* outFileName = "calib_dedx.root") const;
Expand Down
8 changes: 4 additions & 4 deletions DataFormats/Detectors/TPC/src/CalibdEdxCorrection.cxx
Original file line number Diff line number Diff line change
Expand Up @@ -36,16 +36,16 @@ void CalibdEdxCorrection::clear()
mDims = -1;
}

void CalibdEdxCorrection::writeToFile(std::string_view fileName) const
void CalibdEdxCorrection::writeToFile(std::string_view fileName, std::string_view objName) const
{
std::unique_ptr<TFile> file(TFile::Open(fileName.data(), "recreate"));
file->WriteObject(this, "CalibdEdxCorrection");
file->WriteObject(this, objName.data());
}

void CalibdEdxCorrection::loadFromFile(std::string_view fileName)
void CalibdEdxCorrection::loadFromFile(std::string_view fileName, std::string_view objName)
{
std::unique_ptr<TFile> file(TFile::Open(fileName.data()));
auto tmp = file->Get<CalibdEdxCorrection>("CalibdEdxCorrection");
auto tmp = file->Get<CalibdEdxCorrection>(objName.data());
if (tmp != nullptr) {
*this = *tmp;
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -331,6 +331,19 @@ inline void O2DatabasePDG::addALICEParticles(TDatabasePDG* db)
2.5e-15, 6, "Ion", ionCode);
}

// hyper helium 4 sigma
ionCode = 1110020040;
if (!db->GetParticle(ionCode)) {
db->AddParticle("Hyperhelium4sigma", "Hyperhelium4sigma", 3.995, kFALSE,
2.5e-15, 6, "Ion", ionCode);
}
// anti-hyper helium 4 sigma
ionCode = -1110020040;
if (!db->GetParticle(ionCode)) {
db->AddParticle("AntiHyperhelium4sigma", "AntiHyperhelium4sigma", 3.995, kFALSE,
2.5e-15, 6, "Ion", ionCode);
}

ionCode = 1010000020;
if (!db->GetParticle(ionCode)) {
db->AddParticle("LambdaNeutron", "LambdaNeutron", 2.054, kFALSE,
Expand Down
6 changes: 3 additions & 3 deletions Detectors/Align/src/AlignableSensor.cxx
Original file line number Diff line number Diff line change
Expand Up @@ -47,7 +47,7 @@ void AlignableSensor::dPosTraDParGeomLOC(const AlignmentPoint* pnt, double* deri
// Jacobian of position in sensor tracking frame (tra) vs sensor LOCAL frame
// parameters in TGeoHMatrix convention.
// Result is stored in array deriv as linearized matrix 6x3
const double kDelta[kNDOFGeom] = {0.1, 0.1, 0.1, 0.5, 0.5, 0.5};
const double kDelta[kNDOFGeom] = {0.1, 0.1, 0.1, 0.5 * DegToRad(), 0.5 * DegToRad(), 0.5 * DegToRad()}; // changed angles to radians
double delta[kNDOFGeom], pos0[3], pos1[3], pos2[3], pos3[3];
TGeoHMatrix matMod;
//
Expand Down Expand Up @@ -94,7 +94,7 @@ void AlignableSensor::dPosTraDParGeomLOC(const AlignmentPoint* pnt, double* deri
// Jacobian of position in sensor tracking frame (tra) vs parent volume LOCAL frame parameters.
// NO check of parentship is done!
// Result is stored in array deriv as linearized matrix 6x3
const double kDelta[kNDOFGeom] = {0.1, 0.1, 0.1, 0.5, 0.5, 0.5};
const double kDelta[kNDOFGeom] = {0.1, 0.1, 0.1, 0.5 * DegToRad(), 0.5 * DegToRad(), 0.5 * DegToRad()}; // changed angles to radians
double delta[kNDOFGeom], pos0[3], pos1[3], pos2[3], pos3[3];
TGeoHMatrix matMod;
// this is the matrix for transition from sensor to parent volume local frames: LOC=matRel*loc
Expand Down Expand Up @@ -193,7 +193,7 @@ void AlignableSensor::dPosTraDParGeomTRA(const AlignmentPoint* pnt, double* deri
// tra' = tau*tra
//
// Result is stored in array deriv as linearized matrix 6x3
const double kDelta[kNDOFGeom] = {0.1, 0.1, 0.1, 0.5, 0.5, 0.5};
const double kDelta[kNDOFGeom] = {0.1, 0.1, 0.1, 0.5 * DegToRad(), 0.5 * DegToRad(), 0.5 * DegToRad()}; // changed angles to radians
double delta[kNDOFGeom], pos0[3], pos1[3], pos2[3], pos3[3];
TGeoHMatrix matMod;
//
Expand Down
13 changes: 7 additions & 6 deletions Detectors/EMCAL/reconstruction/src/Clusterizer.cxx
Original file line number Diff line number Diff line change
Expand Up @@ -68,12 +68,13 @@ void Clusterizer<InputType>::getClusterFromNeighbours(std::vector<InputwithIndex

if (mInputMap[row + rowDiffs[dir]][column + colDiffs[dir]].mInput) {
if (!mCellMask[row + rowDiffs[dir]][column + colDiffs[dir]]) {
if (mDoEnergyGradientCut && not(mInputMap[row + rowDiffs[dir]][column + colDiffs[dir]].mInput->getEnergy() > mInputMap[row][column].mInput->getEnergy() + mGradientCut)) {
if (not(TMath::Abs(mInputMap[row + rowDiffs[dir]][column + colDiffs[dir]].mInput->getTimeStamp() - mInputMap[row][column].mInput->getTimeStamp()) > mTimeCut)) {
getClusterFromNeighbours(clusterInputs, row + rowDiffs[dir], column + colDiffs[dir]);
// Add the cell/digit to the current cluster -- if we end up here, the selected cluster fulfills the condition
clusterInputs.emplace_back(mInputMap[row + rowDiffs[dir]][column + colDiffs[dir]]);
}
if (mDoEnergyGradientCut && (mInputMap[row + rowDiffs[dir]][column + colDiffs[dir]].mInput->getEnergy() > mInputMap[row][column].mInput->getEnergy() + mGradientCut)) {
continue;
}
if (not(TMath::Abs(mInputMap[row + rowDiffs[dir]][column + colDiffs[dir]].mInput->getTimeStamp() - mInputMap[row][column].mInput->getTimeStamp()) > mTimeCut)) {
getClusterFromNeighbours(clusterInputs, row + rowDiffs[dir], column + colDiffs[dir]);
// Add the cell/digit to the current cluster -- if we end up here, the selected cluster fulfills the condition
clusterInputs.emplace_back(mInputMap[row + rowDiffs[dir]][column + colDiffs[dir]]);
}
}
}
Expand Down
2 changes: 1 addition & 1 deletion Detectors/GlobalTrackingWorkflow/study/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@
# granted to it by virtue of its status as an Intergovernmental Organization
# or submit itself to any jurisdiction.

# add_compile_options(-O0 -g -fPIC)
#add_compile_options(-O0 -g -fPIC)

o2_add_library(GlobalTrackingStudy
SOURCES src/TPCTrackStudy.cxx
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -37,10 +37,13 @@ struct TrackInfoExt {
float q2ptTPC = 0.f;
float q2ptITSTPC = 0.f;
float q2ptITSTPCTRD = 0.f;
int nClTPC = 0;
int nClITS = 0;
int pattITS = 0;
ClassDefNV(TrackInfoExt, 1);
uint16_t nClTPC = 0;
uint8_t pattITS = 0;
uint8_t nClITS = 0;
uint8_t rowMinTPC = 0;
uint8_t rowMaxTPC = 0;
uint8_t rowCountTPC = 0;
ClassDefNV(TrackInfoExt, 2);
};

} // namespace dataformats
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -46,12 +46,13 @@ struct MCTrackInfo {
int8_t parentDecID = -1;
uint8_t minTPCRow = -1;
uint8_t maxTPCRow = 0;
uint8_t nUsedPadRows = 0;
uint8_t maxTPCRowInner = 0; // highest row in the sector containing the lowest one
uint8_t minTPCRowSect = -1;
uint8_t maxTPCRowSect = -1;
int8_t nITSCl = 0;
int8_t pattITSCl = 0;
ClassDefNV(MCTrackInfo, 3);
ClassDefNV(MCTrackInfo, 4);
};

struct RecTrack {
Expand Down Expand Up @@ -127,6 +128,10 @@ struct ClResTPCCont {

int getNExt() const { return (below[0] > 1.) + (above[0] > 1.); }

float getClX() const { return xyz[0]; }
float getClY() const { return xyz[1]; }
float getClZ() const { return xyz[2]; }

float getDY() const { return xyz[1] - getYRef(); }
float getDZ() const { return xyz[2] - getZRef(); }

Expand Down Expand Up @@ -195,9 +200,14 @@ struct ClResTPC {
uint8_t row = 0;
uint8_t ncont = 0;
uint8_t flags = 0;
uint8_t sigmaTimePacked;
uint8_t sigmaPadPacked;
float qmax = 0;
float qtot = 0;
float occ = 0;
float occBin = 0;
float getSigmaPad() const { return float(sigmaPadPacked) * (1.f / 32); }
float getSigmaTime() const { return float(sigmaTimePacked) * (1.f / 32); }

std::vector<ClResTPCCont> contTracks;
int getNCont() const { return contTracks.size(); }
Expand Down
30 changes: 23 additions & 7 deletions Detectors/GlobalTrackingWorkflow/study/src/TrackMCStudy.cxx
Original file line number Diff line number Diff line change
Expand Up @@ -117,6 +117,7 @@ class TrackMCStudy : public Task
std::shared_ptr<o2::base::GRPGeomRequest> mGGCCDBRequest;
std::unique_ptr<o2::utils::TreeStreamRedirector> mDBGOut;
std::vector<float> mTBinClOcc; ///< TPC occupancy histo: i-th entry is the integrated occupancy for ~1 orbit starting from the TB = i*mNTPCOccBinLength
std::vector<float> mTBinClOccHist; //< original occupancy
std::vector<long> mIntBC; ///< interaction global BC wrt TF start
std::vector<float> mTPCOcc; ///< TPC occupancy for this interaction time
std::vector<int> mITSOcc; //< N ITS clusters in the ROF containing collision
Expand Down Expand Up @@ -620,15 +621,15 @@ void TrackMCStudy::process(const o2::globaltracking::RecoContainer& recoData)
}
}

// collect ITS/TPC cluster info for selected MC particles
fillMCClusterInfo(recoData);

// single tracks
for (auto& entry : mSelMCTracks) {
auto& trackFam = entry.second;
(*mDBGOut) << "tracks" << "tr=" << trackFam << "\n";
}

// collect ITS/TPC cluster info for selected MC particles
fillMCClusterInfo(recoData);

// decays
std::vector<TrackFamily> decFam;
for (int id = 0; id < mNCheckDecays; id++) {
Expand Down Expand Up @@ -735,6 +736,7 @@ void TrackMCStudy::fillMCClusterInfo(const o2::globaltracking::RecoContainer& re
ncontLb++;
}
const auto& clus = TPCClusterIdxStruct.clusters[sector][row][icl0];
int tbinH = int(clus.getTime() * mNTPCOccBinLengthInv); // time bin converted to slot of the occ. histo
clRes.contTracks.clear();
bool doClusRes = (params.minTPCRefsToExtractClRes > 0) && (params.rejectClustersResStat <= 0. || gRandom->Rndm() < params.rejectClustersResStat);
for (auto lbl : labels) {
Expand All @@ -749,6 +751,9 @@ void TrackMCStudy::fillMCClusterInfo(const o2::globaltracking::RecoContainer& re
if (row > mctr.maxTPCRow) {
mctr.maxTPCRow = row;
mctr.maxTPCRowSect = sector;
mctr.nUsedPadRows++;
} else if (row == 0 && mctr.nUsedPadRows == 0) {
mctr.nUsedPadRows++;
}
if (row < mctr.minTPCRow) {
mctr.minTPCRow = row;
Expand Down Expand Up @@ -838,8 +843,18 @@ void TrackMCStudy::fillMCClusterInfo(const o2::globaltracking::RecoContainer& re
clRes.qtot = clus.getQtot();
clRes.qmax = clus.getQmax();
clRes.flags = clus.getFlags();
clRes.sigmaTimePacked = clus.sigmaTimePacked;
clRes.sigmaPadPacked = clus.sigmaPadPacked;
clRes.ncont = ncontLb;
clRes.sortCont();

if (tbinH < 0) {
tbinH = 0;
} else if (tbinH >= int(mTBinClOccHist.size())) {
tbinH = (int)mTBinClOccHist.size() - 1;
}
clRes.occBin = mTBinClOccHist[tbinH];

(*mDBGOut) << "clres" << "clr=" << clRes << "\n";
}
}
Expand Down Expand Up @@ -1147,21 +1162,22 @@ void TrackMCStudy::loadTPCOccMap(const o2::globaltracking::RecoContainer& recoDa
int nTPCBins = NHBPerTF * o2::constants::lhc::LHCMaxBunches / 8, ninteg = 0;
int nTPCOccBins = nTPCBins * mNTPCOccBinLengthInv, sumBins = std::max(1, int(o2::constants::lhc::LHCMaxBunches / 8 * mNTPCOccBinLengthInv));
mTBinClOcc.resize(nTPCOccBins);
std::vector<float> mltHistTB(nTPCOccBins);
mTBinClOccHist.resize(nTPCOccBins);
float sm = 0., tb = 0.5 * mNTPCOccBinLength;
for (int i = 0; i < nTPCOccBins; i++) {
mltHistTB[i] = TPCRefitter->getParam()->GetUnscaledMult(tb);
mTBinClOccHist[i] = TPCRefitter->getParam()->GetUnscaledMult(tb);
tb += mNTPCOccBinLength;
}
for (int i = nTPCOccBins; i--;) {
sm += mltHistTB[i];
sm += mTBinClOccHist[i];
if (i + sumBins < nTPCOccBins) {
sm -= mltHistTB[i + sumBins];
sm -= mTBinClOccHist[i + sumBins];
}
mTBinClOcc[i] = sm;
}
} else {
mTBinClOcc.resize(1);
mTBinClOccHist.resize(1);
}
}

Expand Down
Loading
Loading