[PWGJE] Add diffusion wake analysis#16570
Conversation
|
O2 linter results: ❌ 1 errors, |
nzardosh
left a comment
There was a problem hiding this comment.
thanks for the PR :) Please find some comments below
| { | ||
|
|
||
| // Track properties | ||
| DECLARE_SOA_COLUMN(ColID, colid, int32_t); // Collision ID |
There was a problem hiding this comment.
this should be an index coloumn
| } | ||
|
|
||
| using bcs = aod::BCs; | ||
| void process(soa::Join<aod::Collisions, aod::EvSels,aod::CentFT0Cs, aod::TPCMults, aod::QvectorFT0Cs>::iterator const& col, |
There was a problem hiding this comment.
It would be great if you could use the JE tables like JCollisions to remove as much dependency as possible on non derived formats
| testtrack::ColID, | ||
| testtrack::Charge, | ||
| testtrack::P, | ||
| testtrack::DEdx, |
There was a problem hiding this comment.
what is the purpose of this fir diffusion wake studies?
Please consider the following formatting changes to AliceO2Group#16570
| #include <Framework/ASoA.h> | ||
| #include <Framework/AnalysisDataModel.h> | ||
| #include <Framework/AnalysisHelpers.h> | ||
| #include <Framework/AnalysisTask.h> | ||
| #include <Framework/HistogramRegistry.h> | ||
| #include <Framework/HistogramSpec.h> | ||
| #include <Framework/InitContext.h> | ||
| #include <Framework/OutputObjHeader.h> | ||
| #include <Framework/runDataProcessing.h> | ||
| // For centrality: | ||
| #include "Common/DataModel/Centrality.h" | ||
| #include "Common/DataModel/EventSelection.h" | ||
| // For TPC Mult | ||
| #include "Common/DataModel/Multiplicity.h" | ||
| // For DCA and TrackSelection | ||
| #include "Common/DataModel/TrackSelectionTables.h" | ||
| // For EP | ||
| #include "Common/Core/EventPlaneHelper.h" | ||
| #include "Common/DataModel/Qvectors.h" | ||
| // For occupancy bit | ||
| #include "Common/CCDB/EventSelectionParams.h" |
There was a problem hiding this comment.
Remove all comments (or move them to the ends of lines). They block the sorting and grouping.
There was a problem hiding this comment.
Also make sure you include exactly what you use.
| o2physics_add_dpl_workflow(jet-deriveddata-producer | ||
| SOURCES derivedDataProducer.cxx | ||
| SOURCES jetDeriveddataProducer.cxx |
There was a problem hiding this comment.
These files are not modified in this PR.
vkucera
left a comment
There was a problem hiding this comment.
Fix the errors and warnings introduced by your PR.
| histos.fill(HIST("etaHistogram"), track.eta()); | ||
| histos.fill(HIST("pTHistogram"), track.pt()); | ||
|
|
||
| //------------ Translate values to less memory consuming values -------------------- |
There was a problem hiding this comment.
it is a nice idea to do this type of packing, however, I see no guards against maximum values. Are you sure no reasonable values can cause an overflow of your bits allocated for packing?
There was a problem hiding this comment.
What is the reduction factor?
| void init(InitContext const&) | ||
| { | ||
| const AxisSpec axisEta{30, -1.5, +1.5, "#eta"}; | ||
| const AxisSpec axispT{nBinsPt, 0, 10, "p_{T}"}; |
There was a problem hiding this comment.
are you sure you want pt only to be 0-10? this seems too small to me, do you mean 100 GeV?
Updated pT axis range to accommodate higher values and added overflow checks for track momentum.
Removed unused track properties and added collision index column.
Removed unused includes and commented out a declaration.
Updated data types for various variables to improve memory usage and consistency. Changed float and short types to more appropriate fixed-width integer types.
Removed commented-out block detailing track and event data compression before and after compression.
Added file documentation for clarity.
Replaced C-style casts with C++ style static_cast for type safety.
|
Revert the |
There was a problem hiding this comment.
This file is not a table definition, it's a table producer, so don't start the name with table....
| if (particlePx < 0) | ||
| substituteP |= static_cast<uint64_t>1 << uppermostBit; | ||
| if (particlePx < 0) | ||
| particlePx = (-1) * particlePx; | ||
| for (int8_t i_bit = lowermostBit; i_bit < uppermostBit; i_bit++) { | ||
| if ((particlePx & (static_cast<int64_t>1 << i_bit))) | ||
| substituteP |= static_cast<uint64_t>1 << i_bit; |
There was a problem hiding this comment.
This does not look like a valid cast syntax. Why don't you just use SETBIT?
There was a problem hiding this comment.
Because it does not compile.
Removed REPOSITORY_OSV_SCANNER from the configuration.
Removed author information from comments.
|
@wirthni Who are you? |
Replaced bitwise operations in Px, Py, and Pz calculations with bitmasking for efficiency.
I'm a bachelor's student of Nicola Wilson |
Please add your full name on your GitHub profile. Your colleagues should know who is contributing in the code. |
| histos.add("pTHistogram", "pTHistogram", kTH1F, {axispT}); | ||
| } | ||
|
|
||
| using Bcs = aod::BCs; |
There was a problem hiding this comment.
Why do you need this alias?
| soa::Join<aod::TracksIU, aod::TracksExtra, aod::TracksDCA, aod::TrackSelection> const& tracks, | ||
| Bcs const&) | ||
| { | ||
| const float maxMomentum = 173.0; |
There was a problem hiding this comment.
Where does this come from?
| // or submit itself to any jurisdiction. | ||
| /// | ||
| /// \file tableDiffWake.cxx | ||
| /// \brief This task writes a collision and track table which are further used in a diffusion wake analysis |
There was a problem hiding this comment.
Where is the analysis task?
This task aims to write tables with collisions that contain at least one high pT track. These are then used by a Bachelor student at GSI who works on diffusion wakes and wants to apply his Run 2 analysis to Run 3 data (therefore, trees are needed). To reduce memory size, some variables are stored in a different format (for example px,py,pz)