This repository contains the implementation of factorial moments analysis for charged particles in two dimensions (eta and phi) for ALICE data and MC simulations.
The analysis implements intermittency analysis using factorial moments to study particle multiplicity fluctuations in heavy-ion collisions. The code supports both data and Monte Carlo (MC) analysis with various track selection criteria and quality assurance (QA) procedures.
└── main/
├── AliAnalysisTaskFM_marooz.cxx # Main analysis task implementation
├── AliAnalysisTaskFM_marooz.h # Header file with class definitions
├── AddTaskFM_marooz.C # Task configuration and setup
├── runCode.C # Main execution script
├── runLists.h # Run list definitions for different
└── utils/ # Utility scripts for offline processing
├── copyGRIDFILES.sh # File copying utility
├── merge_batches.sh # File merging after copying
├── makeFqStdDAT.C # Final factorial moments calculation
└── getFqbinDAT.C # Factorial moments extraction
└── mergeLocalOutputs.sh # File merging utility
The main analysis task class that implements factorial moments calculation. Key features:
- Track Selection: Multiple filter bit combinations (128, 768) with various quality cuts
- Quality Cuts: DCA, TPC clusters, chi2, shared clusters, etc.
- Particle Identification: PID response integration for particle type analysis
- Event Selection: Centrality, vertex, pileup rejection
- MC Support: Full Monte Carlo truth analysis capabilities
- Output: Histograms, TNtuples with factorial moments (Fq2-Fq7)
Configuration script that sets up the analysis task with various parameters:
- can implement n different cut conditions, the number should be put in header file, and definitions in ```AliAnalysisTaskFM_marooz::FillTrackInfo()
// Centrality and acceptance
Int_t _cent_min = 0, _cent_max = 5; // 0-5% centrality
Double_t _eta_min = -0.8, _eta_max = 0.8; // Pseudorapidity range
// pT bins
Int_t _n_pt_bins = 1;
Double_t _pt_bins[10] = {0.2, 2.0, ...}; // pT bin edges
// Quality cuts
Int_t _max_m_bins = 82; // Phase space binning
Bool_t _pileup_rejection = kTRUE; // Pileup rejectionContains run list definitions for different ALICE data taking periods:
namespace runLists {
std::vector<Int_t> GetRunList(Int_t period) {
if (period == 10) return { /* LHC10h runs */ };
if (period == 15) return { /* LHC15o runs */ };
if (period == 18) return { /* LHC18q/r runs */ };
}
}Supported Periods:
- 2010 (LHC10h): Pb-Pb collisions at √sNN = 2.76 TeV
- 2015 (LHC15o): Pb-Pb collisions at √sNN = 5.02 TeV
- 2018 (LHC18q/r): Pb-Pb collisions at √sNN = 5.02 TeV
Main execution script for running the analysis on the ALICE Grid:
void runCode(TString taskName = "test_ME",
Int_t _mode = 0, // 0: test, 1: full, 2: terminate, 3: merge
Int_t _nruns = 1, // Number of runs (0 for all)
Int_t period = 18) // Data period (10, 15, 18)- Mode 0 (test): Test run with limited files
- Mode 1 (full): Full production run
- Mode 2 (terminate): Terminate grid jobs
- Mode 3 (merge): Merge output files
# Test run for 2018 data
root -l -b -q 'runCode.C("test_analysis", 0, 1, 18)'
# Full production run for 2015 data
root -l -b -q 'runCode.C("production_run", 1, 0, 15)'- Event Level: Event counters, centrality distributions, vertex QA
- Track Level: DCA distributions, cluster distributions, PID information
- Kinematic: pT, η, φ distributions for different conditions
- Quality: Chi2, shared clusters, findable clusters
Factorial moments stored in TNtuples with variables:
Mult: Multiplicity per eventMbins: Number of phase space bins (M²)Av_bincontent: Average bin contentFq2etoFq7e: Factorial moments of order 2-7
- ALICE software environment (AliPhysics)
- ROOT framework
- Grid certificate for ALICE Grid access
-
Initialize ALICE environment:
alienv enter AliPhysics/latest
-
Set parameters in AddTask
-
Run the analysis:
root -l -b -q 'runCode.C("my_analysis", 0, 1, 18)'
The analysis automatically submits jobs to the ALICE Grid with:
- Data directories:
/alice/sim/2020/LHC20j6a/(2015),/alice/sim/2020/LHC20e3a/(2018) - Output: Stored in Grid output directory
- Logs: Available for debugging
- Analysis Execution: Run
runCode.Cto submit grid jobs - Data Extraction: Use
utils/getFqbinDAT.Cto extract factorial moments offline from the root files, along with sampling error. - Calculation: Use
utils/makeFqStdDAT.Cto calculate the final mean of factorial moments and their errors. creates FqStdError.dat files. - Copying: Use
utils/copyGRIDFILES.shin case you are not able to terminate grid jobs (by any reason), put the grid directory path in it, it will copy all the rootfiles in your local directory. Useutils/merge_batches.shuse aftercopyGRIDFILES.shto merge the files, so that you can have 10-20 files at the end. - Merging:
utils/mergeLocalOutputs.sh, this is to be used after running step 2, in case you have more than one output root file.
- Salman - Main implementation and analysis framework
- Date: 04-May-2025
- ALICE Collaboration analysis notes
- Factorial moments methodology papers
- ALICE software documentation