From IDEA to PAPER.
Repository for references, analysis codes, useful scripts and related discussions.
Software: AliPhysics@ROOT6
Main environment: AliEn World-wide Computing Grid
Local: R710.star.ustc.edu.cn (Dual-E5520 + 16* Dual-E5504)
Development and post-processing are performed on local environment (vAN-20190328_ROOT6)
. But for alien, all jobs would run on latest version after debug.
For better display of this document, please install browser extension MathJax Plugin for Github
(Chrome) or try this external page (temp and not latest). The best solution is to open preview in VS Code
with Markdown Preview Enhanced.
Author: Yìtāo WÚ
- Resource
- Background & Motivation
- Physical Object
- Datasets
- QA
- Signal Extraction
- Correction
- Systematic uncertainties
- Preliminary Result
- Publication
- Appendix - Macros & Scripts
Software: AliSW@GitHub | GitLab | AliDoc | Offline Database (OADB, OCDB) | ROOT | HEPforge |
Documents: Twiki | Public & Analysis Note | ALICE Offline | ALICE Official |
-
PID: Twiki | PIDinAnalysis | Performance | Bayesian(Indico, arXiv) | Tender |
-
EMCal & Jet: Intro. | Doc. | Trigger | Correction | Embedding |
Service: AliEn | AliMonitor | Glance | JIRA | Vidyo | CERN Account | CERN Service | CA | CERN Mail | e-groups | CERNBox | SWAN |
Tutorial:
- ALICE-analysis-tutorial: Website | Indico | Intro. | DataFlow | LEGO train | NanoAOD | EventInfo | Q-vector | TrackInfo | PID | Flow | EventMixing | Unfolding | Errors | MC, Generator | RIVET | AnaControl | PlotStyle | Visual | QAtools | Git | alice-docs | Doxygen | ML |
- ROOT & C++: Primer | Courses | Example | PEP-ROOT6 | ROOT5to6 | Python | ModernC++ | Pointers | Profiling |
- Others: AliSW tutorial | AliBuild | PCG | Debug@ALICE | Starterkit2018 |
- School & Course: INFN-ESC | Huada-QCD | Geant4-events | GSI-Summer | France-China | CERN-Summer | CERN-Fermi | Euro-Inst. | Trigger-DAQ |
Conference & Meeting: ALICE Conference |
- Indico@CERN: ALICE Week | PWG | EMCal | ITS | TPC |
- Other Indico: Indico@IHEP | Indico@USTC-PNP | Indico@IN2P3 |
- Quark Matter: QM2019 | QM2018 | QM2017 | QM2015 | QM2014 | QM2012 |
- Hard Probe: HP2018 | HP2016 | HP2015 |
- Strangeness Quark Matter: SQM2019 | SQM2017 |
- LHC Physics: LHCP2019 | LHCP2018 | LHCP2017 | LHCP2016 | LHCP2015 | LHCP2014 | LHCP2013 |
- Others: VCI
Publication: InspierHEP | CERN Document Server | HEPData | Google Scholar | Microsoft Academic | SCImago Journal Rank |
To understood the
- Baumgart, Matthew, et al. "Probing quarkonium production mechanisms with jet substructure." JHEP 1411 (2014) 003 [INSPIRE]
- LHCb Collaboration, "Study of
$J/\psi$ Production in Jets", Phys.Rev.Lett. 118 (2017) no.19, 192001 [INSPIRE] - Kang, Zhong-Bo, et al. "$J/\psi$ production and polarization within a jet." Phys.Rev.Lett. 119 (2017) no.3, 032001. [INSPIRE]
- Bain, Reggie, et al. "NRQCD Confronts LHCb Data on Quarkonium Production within Jets." Phys.Rev.Lett. 119 (2017) no.3, 032002. [INSPIRE]
- CMS Collaboration, "Production of prompt and nonprompt
$J/\psi$ mesons in jets in pp collisions at$\sqrt{s}=5.02~TeV$ ", CMS-PAS-HIN-18-012, [CDS] - Dai, Lin, et al. "Quarkonium Polarization and the Long Distance Matrix Elements Hierarchies using Jet Substructure" Phys.Rev. D96 (2017) no.3, 036020 [INSPIRE]
- Dai, Lin, et al. "Heavy quark jet fragmentation." JHEP 1809 (2018) 109 [INSPIRE]
- Dai, Lin. "Applications of QCD Effective Theories to the Physics of Jets and Quarkonium Production." PhD Diss. University of Pittsburgh, 2018. [PDF]
- Konrad Tywoniuk, "Theory Overview - J/psi production in jets" ALICE Jpsi2ee PAG workshop, April 2019 [SLIDES]
The jet fragmentation function
In proton-proton collision at
Jets are clustered using the anti-$k_{T}$ algorithm from charged tracks, with R=0.2, which provides by fastjet package.
- [ANA-646] "J/ψ measurements in pp collisions at s√ = 13 TeV using EMCal-triggered events with ALICE at LHC", Cristiane Jahnke (Munich EC, DE), 29 June, 2017
- [ANA-876] "Inclusive Jpsi production cross-section in pp collisions at 13TeV", Ingrid Mckibben Lofnes (UBergen, NO), 19 March, 2019
- [ANA-850] "Multiplicity dependence of charged jet production in pp collisions at 13 TeV", Yongzhen Hou (CCNU, CN), 21 September, 2018
- [ANA-746] "Inclusive J/psi - hadron correlations at mid-rapidty in MB and high multiplicity pp collisions at sqrt(s) = 13 TeV", Lucas Altenkamper (UBergen, NO), 26 April, 2018
- [ANA-587] "D mesons in jets in pp collisions at sqrt(s)=7 TeV", Salvatore Aiola (Yale, US), 23 January, 2017
ALICE Run2 pp 13TeV (with EMC), 2016-2018
- From DPG twiki : DataTaking | Production | RunLists-calo |
- From MonALISA: RCT (DET Status Flags - SPD + SDD + SSD + TPC + V0 + EMCal)|
- From LEGO train : DQ_pp_AOD | Jet_EMC_pp |
All datasets used is collected in Datasets/DQ_pp_AOD.C, which can be executed and accessed like DATASETS["16l_pass1"]. If not in LEGO train, the number of jobs will be limited under 1500, about 33 runs. Original run lists from DPG is stored under Datasets/DATA/.
Run Period | MB | Muon | EMCAL | N runs | INT7 | EMCEGA | EG1 | EG2 | DG1 | DG2 | Nano |
---|---|---|---|---|---|---|---|---|---|---|---|
18p | 64,723,976 | 38,946,331 | 8,206,052 | 66 | |||||||
18o | 27,495,955 | 14,997,718 | 3,506,262 | 26 | |||||||
18n* | 3,835,344 | 21,207 | 2 | ||||||||
18m | 134,624,309 | 60,378,259 | 15,669,592 | 142 | |||||||
18l | 40,366,370 | 16,800,730 | 4,118,681 | 39 | |||||||
18k | 8,764,716 | 36,793,499 | 906,769 | 10 | |||||||
18j | 96,797 | 43,361 | 9,597 | 1 | |||||||
18i* | 55,845,385 | 553,722 | 7 | ||||||||
18h | 4,251,665 | 1,834,724 | 434,065 | 2 | |||||||
18g* | 1,508,180 | 1 | |||||||||
18f | 44,009,568 | 18,923,929 | 4,653,741 | 46 | |||||||
18e | 52,440,125 | 21,328,980 | 6,170,463 | 38 | |||||||
18d | 28,079,632 | 11,969,409 | 3,317,779 | 28 | |||||||
18c* | 267,232,152 | 14,312,085 | 46 | ||||||||
18b* | 167,363,075 | 2,107,216 | 22 | ||||||||
17r | 25,356,149 | 16,306,258 | 4,554,303 | 27 | |||||||
17o | 101,301,254 | 61,352,135 | 17,350,119 | 128 | |||||||
17m* | 97,253,493 | 15,004,475 | 4,932,360 | 93 | |||||||
17l | 66,971,443 | 41,517,736 | 11,726,035 | 105 | |||||||
17k | 89,488,618 | 38,583,640 | 11,652,619 | 93 | |||||||
17j* | 41,314,510 | 163,093 | 10 | ||||||||
17i* | 54,162,665 | 14,422,733 | 4,209,950 | 56 | |||||||
17h* | 90,126,837 | 16,633,082 | 5,610,223 | 63 | |||||||
17g* | 110,598,542 | 1,620,926 | 26 | ||||||||
17f* | 12,112,114 | 106,809 | 3,583 | 5 | |||||||
17c* | 1,962,343 | 601 | 4 | ||||||||
16p | 23,175,087 | 13,077,528 | 2,570,124 | 39 | |||||||
16o* | 9,397,646 | 3,195,337 | 740,813 | 17 | |||||||
16l | 30,687,176 | 17,153,082 | 18,057,636 | 51 | |||||||
16k | 105,446,176 | 47,974,758 | 17,241,173 | 123 | |||||||
16j | 53,638,211 | 14,260,378 | 3,581,261 | 33 | |||||||
16i | 36,566,073 | 12,227,075 | 2,272,121 | 14 | |||||||
16h* | 50,404,063 | 11,696,888 | 35 | ||||||||
16g* | 19,103,014 | 2,450,982 | 8 | ||||||||
Total | 1,619,516,002 | 438,267,301 | 124,113,415 | 1,127 |
Luminosity is used to normalize the measured spectra for cross section estimation.
$$\frac{d^{2}\sigma}{dp_{T}d\eta}=\frac{1}{\mathscr{L}{int}}\frac{N{phys.obj.}}{\Delta p_{T}\Delta \eta}$$
The determinination of the integrated luminosity is based on the measurement of a reference cross section, mb\pm5%(sys.)$, while
The number of events
To check the status and performance of detectors and the agreement between data and MC. Level: Run, Event, Track, Detector, PID, Phys. Objects
- From DPG and PWG/PAG tutorial.
- From related analysis note.
Run-wise QA is generated from histograms of event, track, cluster and other levels run-by-run. Average value of variables and event counts are frequently used indexes. If possible, use THnSparse
to store variables for the convenience of post plotting.
Parameter | Description | Method |
---|---|---|
Number and fraction of events in triggers and event cuts. | ||
Average number of good tracks | ||
Average number of SPD tracklets | ||
$\bar{Z}{Vtx}, \sigma(Z){Vtx}$ | Mean and sigma value of vertex Z or (X/Y/XY) | |
Average number of vertex contributors | ||
$$ | Average value of multiplicity, includes VZERO amp. | |
Average value of event plane Q value | ||
Average number of calo clusters | ||
|
Identify bad cells/RCU | |
Dead or Hot/Warm cells | ||
Average value or distribution of selected tracks after selection, basic and PID variables |
Trigger and event cut overview histograms, like MB, Pileup, good,
Statistics of event selection (vs triggers, and in run-wise): Physics Selection (PS), trigger, event cuts, track cuts (no tracks), filtered in nano AOD (with candidates of physics objects) and corresponding reject reasons.
Event ID =
For offline trigger,use AliAnalysisTaskMultiDielectron::SetTriggerMask
instead of AliAnalysisTaskSE::SelectCollisionCandidates
, if event cuts/filter existed. And trigger class is selected by AliAnalysisTaskMultiDielectron::SetFiredTriggerName
. (PWGDQ/dielectron ONLY)
ALICE Offline Triggers
from AliVEvent.h)
EOfflineTriggerTypes | BIT(N) | Description |
---|---|---|
kMB | 0 | Minimum bias trigger in PbPb 2010-11 |
kINT1 | 0 | V0A | V0C | SPD minimum bias trigger |
kINT7 | 1 | V0AND minimum bias trigger (MB for pp) |
kMUON | 2 | Single muon trigger in pp2010-11, INT1 suite |
kHighMult | 3 | High-multiplicity SPD trigger |
kHighMultSPD | 3 | High-multiplicity SPD trigger |
kEMC1 | 4 | EMCAL trigger in pp2011, INT1 suite |
kCINT5 | 5 | V0OR minimum bias trigger |
kINT5 | 5 | V0OR minimum bias trigger |
kCMUS5 | 6 | Single muon trigger, INT5 suite |
kMUSPB | 6 | Single muon trigger in PbPb 2011 |
kINT7inMUON | 6 | INT7 in MUON or MUFAST cluster |
kMuonSingleHighPt7 | 7 | Single muon high-pt, INT7 suite |
kMUSH7 | 7 | Single muon high-pt, INT7 suite |
kMUSHPB | 7 | Single muon high-pt in PbPb 2011 |
kMuonLikeLowPt7 | 8 | Like-sign dimuon low-pt, INT7 suite |
kMUL7 | 8 | Like-sign dimuon low-pt, INT7 suite |
kMuonLikePB | 8 | Like-sign dimuon low-pt in PbPb 2011 |
kMuonUnlikeLowPt7 | 9 | Unlike-sign dimuon low-pt, INT7 suite |
kMUU7 | 9 | Unlike-sign dimuon low-pt, INT7 suite |
kMuonUnlikePB | 9 | Unlike-sign dimuon low-pt in PbPb 2011 |
kEMC7 | 10 | EMCAL/DCAL L0 trigger, INT7 suite |
kEMC8 | 10 | EMCAL/DCAL L0 trigger, INT8 suite |
kMUS7 | 11 | Single muon low-pt, INT7 suite |
kMuonSingleLowPt7 | 11 | Single muon low-pt, INT7 suite |
kPHI1 | 12 | PHOS L0 trigger in pp2011, INT1 suite |
kPHI7 | 13 | PHOS trigger, INT7 suite |
kPHI8 | 13 | PHOS trigger, INT8 suite |
kPHOSPb | 13 | PHOS trigger in PbPb 2011 |
kEMCEJE | 14 | EMCAL/DCAL L1 jet trigger |
kEMCEGA | 15 | EMCAL/DCAL L1 gamma trigger, including high and low trigger classes |
kHighMultV0 | 16 | High-multiplicity V0 trigger |
kCentral | 16 | Central trigger in PbPb 2011 |
kSemiCentral | 17 | Semicentral trigger in PbPb 2011 |
kDG | 18 | Double gap diffractive |
kDG5 | 18 | Double gap diffractive |
kZED | 19 | ZDC electromagnetic dissociation |
kSPI7 | 20 | Power interaction trigger |
kSPI | 20 | Power interaction trigger |
kINT8 | 21 | 0TVX trigger |
kMuonSingleLowPt8 | 22 | Single muon low-pt, INT8 suite |
kMuonSingleHighPt8 | 23 | Single muon high-pt, INT8 suite |
kMuonLikeLowPt8 | 24 | Like-sign dimuon low-pt, INT8 suite |
kMuonUnlikeLowPt8 | 25 | Unlike-sign dimuon low-pt, INT8 suite |
kMuonUnlikeLowPt0 | 26 | Unlike-sign dimuon low-pt, no additional L0 requirement |
kUserDefined | 27 | Set when custom trigger classes are set in AliPhysicsSelection |
kTRD | 28 | TRD trigger |
kMuonCalo | 29 | Muon-calo triggers |
kCaloOnly | 29 | MB, EMCAL and PHOS triggers in CALO or CALOFAST cluster |
Bits 30 and above are reserved for FLAGS | ||
kFastOnly | 30 | The fast cluster fired. This bit is set in to addition another trigger bit, e.g. kMB |
kAny | 0xffffffff | to accept any defined trigger |
kAnyINT | kMB | kINT7 | kINT5 | kINT8 | kSPI7. to accept any interaction (aka minimum bias) trigger |
ALICE Trigger Classes
from ALICE Trigger Coordination and CTP
Trigger Class = Trigger Condition + Trigger Cluster + Trigger Vetoes Typical trigger class name: CEMC7EGA-B-NOPF-CENTNOTRD [Decriptor]-[BC_mask]-[PF_protection]-[Cluster].
- Descriptor: combination of trigger inputs, L0+L1 (AND, OR, VETO logic is possible).
- BC mask: information about interactions (beam-beam, beam-gas, satellite, etc.).
- Past-Future protection: rejects events with multiple collisions from different bunch crossings
- Cluster: group of detectors to be readout if the trigger conditions is satisfied (ALLNOTRD, CENTNOTRD, ALL, CENT, FAST, MUON)
AOD tree structure
from AliAODEvent.h
AOD (Analysis Object Data) is skimmed data for higher-level analysis, conveted from ESD by AliAnalysisTaskESDfilter.
AODListIndex_t | Name | Description |
---|---|---|
kAODHeader | header | Event meta information, such as run number, magnetic field, diamond, trigger, etc. |
kAODTracks | tracks | Charged tracks array |
kAODVertices | vertices | Vertex array |
kAODv0 | v0s | |
kAODcascade | cascades | |
kAODTracklets | tracklets | SPD tracklets |
kAODJets | jets | |
kAODEmcalCells | emcalCells | |
kAODPhosCells | phosCells | |
kAODCaloClusters | caloClusters | EMCal, DCal, PHOS clusters array |
kAODEMCALTrigger | emcalTrigger | |
kAODPHOSTrigger | phosTrigger | |
kAODFmdClusters | fmdClusters | |
kAODPmdClusters | pmdClusters | |
kAODHMPIDrings | hmpidRings | |
kAODDimuons | dimuons | |
kAODTZERO | AliAODTZERO | |
kAODVZERO | AliAODVZERO | |
kAODZDC | AliAODZDC | |
kAODAD | AliAODAD | |
kTOFHeader | AliTOFHeader | Event time estimated by TOF |
kAODTrdTracks | trdTracks | |
- | Forward | |
- | ForwardEP | |
- | CentralClusters | |
- | MultSelection | |
- | UserInfo |
Variables on event level:
- Vertex: Z distribution and XY.
- Multiplicity, centrality and event plane.
- N candidates,
$J/\psi, jets, \eta, gamma, \pi_0$ , ... - Clusters: Numbers, Energy distribution, etc.
Parameter | Description | Std. Method | Typical value | Setup |
---|---|---|---|---|
Z postion (cm) of primary vertex | aod->GetPrimaryVertex()->GetZ() | [-50,50] / 0.1 | ||
X position (cm) | aod->GetPrimaryVertex()->GetX() | [-0.5,0.5] / 0.001 | ||
Y position (cm) | aod->GetPrimaryVertex()->GetY() | [-0.5,0.5] / 0.001 | ||
Diamond | Z position and width of the interaction point (IP) (cm) | header->GetDiamondX()/GetSigma2DiamondX() | - | |
X position and width of the interaction point (IP) (cm) | header->GetDiamondX()/GetSigma2DiamondX() | - | ||
Y position and width of the interaction point (IP) (cm) | header->GetDiamondX()/GetSigma2DiamondX() | - | ||
Number of primary vertex contributors | [0,500] / 1 | |||
Number of SPD tracklets (aod->GetMultiplicity()), by layers | spd->GetNumberOfTracklets() | [0,200] / 1 | ||
|
Correction needed for multiplicity analysis | |||
Number of ITS clusters, by layers. | spd->GetNumberOfITSClusters(lr) | [0,20000] / 1 | ||
SPD (pixel), layer 0 and 1 | [0,10000] / 1 | |||
SDD (drift), layer 2 and 3 | [0,3000] / 1 | |||
SSD (strip), layer 4 and 5 | [0,2000] / 1 | |||
Number of SPD fired chips (1200 in total), by layers. | spd->GetNumberOfFiredChips(lr) | [0,1200] / 1 | ||
Number of tracks w/ or w/o track cuts | aod->GetNumberOfTracks() | [0,4000] / 1 | ||
Amplitute of VZERO multiplicity decision as sum of 64 ch. (aod->GetVZEROData()) | vzero->GetMultiplicity(ch) | [0,2000] / 1 | ||
V0A, channel 32 - 63 | vzero->GetMultiplicityV0A(ch) | [0,2000] / 1 | ||
V0C, channel 0 - 31 | vzero->GetMultiplicityV0A(ch) | [0,2000] / 1 | ||
Centrality | Estimtor by multiplicity percentiles or impact factor | AddTaskMultSelection.C | ||
Q-vector | Event plane framework | AddTaskFlowQnVectorCorrections.C | ||
Number of calo clusters | aod->GetNumberOfCaloClusters() | [0,500] / 1 | ||
Energy distribution of calo clusters (GeV) | calo->E() | [0,300] / 0.1 |
*spd is the instance of SPD tracklets AliAODTracklets
from AliAODEvent::GetMultiplicity()
.
*Typical values and histogram setup are referred to [AN746] and fully AOD tree.
Track selection and tracking parameters. The getter methods depend on the variable manager in PWG analysis framework, while methods listed blow are standard function from basic class in AliRoot/STEER.
Track types / status flag
from AliVTrack.h
Enum | BIT(N) | Description |
---|---|---|
kITSin | 0 | |
kITSout | 1 | |
kITSrefit | 2 | |
kITSpid | 3 | |
kTPCin | 4 | |
kTPCout | 5 | |
kTPCrefit | 6 | |
kTPCpid | 7 | |
kTRDin | 8 | |
kTRDout | 9 | |
kTRDrefit | 10 | |
kTRDpid | 11 | |
kTOFin | 12 | |
kTOFout | 13 | |
kTOFrefit | 14 | |
kTOFpid | 15 | |
kHMPIDout | 16 | |
kHMPIDpid | 17 | |
kEMCALmatch | 18 | |
kTRDbackup | 19 | |
kTOFmismatch | 20 | |
kPHOSmatch | 21 | |
kITSupg | 22 | flag that in the ITSupgrade reco |
kSkipFriend | 23 | flag to skip friend storage |
kGlobalMerge | 24 | |
kMultInV0 | 25 | assumed to be belong to V0 in multiplicity estimates |
kMultSec | 26 | assumed to be secondary (due to the DCA) in multiplicity estimates |
kEmbedded | 27 | Is a track that has been embedded into the event |
kITSpureSA | 28 | |
kTRDStop | 29 | |
kESDpid | 30 | |
kTIME | 31 | |
Others | - | |
kTRDnPlanes | 6 | Not in BIT |
kEMCALNoMatch | -4096 | |
kTOFBCNA | -100 |
Track bits / pre-defined filter
from AliAODTrack.h, and the details is located in AliAnalysisTaskESDfilter and AliESDtrackCuts. As usual, the track cuts contains TPC cluster number,
$\chi^{2}$ , DCA, refit requirements and kink rejection:
AODTrkFilterBits_t | BIT(N) | Description | Detail |
---|---|---|---|
kTrkTPCOnly | 0 | Standard TPC only tracks | GetStandardTPCOnlyTrackCuts |
kTrkITSsa | 1 | ITS standalone, require ITS standalone tracks (remove pure SA) | ?SetRequireITSStandAlone(kTRUE)? |
kTrkITSConstrained | 2 | Pixel OR necessary for the electrons AND standard track cuts | SetClusterRequirementITS(kSPD, kAny) |
kTrkElectronsPID | 3 | PID for the electrons | SetTPCnSigmaCut(AliPID::kElectron, 3.5) |
kTrkGlobalNoDCA | 4 | standard cuts with very loose DCA (|xy|>2.4, |z|<3.2, 2D=kTRUE) | GetStandardITSTPCTrackCuts2011(kFALSE) |
kTrkGlobal | 5 | standard cuts with tight DCA cut, (|xy|<"0.0105+0.0350/pt^1.1", |z|<2) | GetStandardITSTPCTrackCuts2011(kTRUE) |
kTrkGlobalSDD | 6 | standard cuts with tight DCA but with requiring the first SDD cluster instead of an SPD cluster tracks selected by this cut are exclusive to those selected by the previous cut | GetStandardITSTPCTrackCuts2011(kTRUE), GetClusterRequirementITS(kSPD,kNone), GetClusterRequirementITS(kSDD,kFirst) |
kTrkTPCOnlyConstrained | 7 | Refitted TPC only tracks: TPConly information constrained to SPD vertex in the filter below | GetStandardTPCOnlyTrackCuts, esdFilter->SetTPCOnlyFilterMask(128) |
AODTrkBits_t | |||
kIsDCA | 14 | set if fPosition is the DCA and not the position of the first point | |
kUsedForVtxFit | 15 | set if this track was used to fit the vertex it is attached to | |
kUsedForPrimVtxFit | 16 | set if this track was used to fit the primary vertex | |
kIsTPCConstrained | 17 | set if this track is a SA TPC track constrained to the SPD vertex, needs to be skipped in any track loop to avoid double counting | |
kIsHybridTPCCG | 18 | set if this track can be used as a hybrid track i.e. Gbobal tracks with certain slecetion plus the TPC constrained tracks that did not pass the selection | |
kIsGlobalConstrained | 19 | set if this track is a global track constrained to the vertex, needs to be skipped in any track loop to avoid double counting | |
kIsHybridGCG | 20 | set if this track can be used as a hybrid track i.e. tracks with certain selection plus the global constraint tracks that did not pass the selection |
Parameter | Description | Std. Method | Typical Value | Setup |
---|---|---|---|---|
|
Basic kinematic variables | |||
|
trk->Pt() | [0,50] / 0.05 | ||
|
|
trk->Eta()/Phi() |
|
[-1.0,1.0] / 0.002, [0,$2\pi$] / 0.006 |
DCA | Distance of the closest approach, also known as impact parameter. | |||
Large |
trk->DCA() | [-50,50] / 1000 | ||
|
trk->ZAtDCA() | [-50,50] / 1000 | ||
TPC cluster number, 160 (max.) | trk->GetTPCncls() | [0,161] / 1 | ||
TPC findable cluster number | trk->GetTPCnclsF() | [0,161] / 1 | ||
TPC shared cluster number | trk->GetTPCnclsS() | [0,161] / 1 | ||
Crossed rows in TPC. | trk->GetTPCNCrossedRows() | [0,161] / 1 | ||
ITS cluster number, sum by layers [0,6] | trk->GetITSNcls() | [0,7] / 1 | ||
TPC cluster tracking/fitting, $\chi^{TPC}{TPC}=fChi2perNDF\times(N{cls.}^{TPC}-5)$ | trk->GetTPCchi2()/trk->GetTPCncls() | [0,100] / 0.1 | ||
ITS cluster tracking/fitting | trk->GetITSchi2() | [0,100] / 0.1 | ||
Kink | Tracks which does not have a continous particle trajectories, but show deviations due to decays or the emission of Bremsstrahlung. | |||
Refit | Fitting method, include ITS and TPC |
For electron, the particle can hit the first or the second layer of the ITS detector (kAny). This cut helps to remove electrons from gamma conversion.
The cluster QA covers general cluster and cell properties. Official QA Repository, reference task - AliAnalysisTaskClusterQA / AddTask_ClusterQA from Gamma Conversion Group. Be careful with the binning of cluster energy histograms. All histogram can be updated after triggger selection and QA or analysis cuts (pt range, track charge, etc.).
Parameter | Description | Std. Method | Typical Value | Setup |
---|---|---|---|---|
Number of cells fired in cluster | calo->GetNCells() | [0,100] / 1 | ||
Energy (GeV) vs Cell ID (0~18000) | cells->GetCellAmplitude(id) (GeV), calo->GetCellAbsId(i) | |||
Timing ( |
cells->GetCellTime(id) * 1e6 | [-0.5,1.5] / 0.01 | ||
Position (x, y, z) | Geomtry map of cluster. | calo->GetPosition(float x[3]) (convert to |
||
EMCal: |
||||
DCal: |
||||
PHOS: |
||||
Distance of cluster to others withing the same time window - cluster overlap | ||||
Cluster energy | calo->E() | [0,300] / 0.1 | ||
M02, M20, dispersion | Shower shape parameters | |||
M02, 2-nd moment along the main eigen axis. | calo->GetM02() | [0,20] / 0.1 | ||
M20, 2-nd moment along the second eigen axis. | calo->GetM20() | [0,10] / 0.01 | ||
Cluster dispersion, for shape analysis. | calo->GetDispersion() | [0,10] / 0.01 | ||
NLM | Number of local maxia, vs Ncells/E | |||
Ntracks | Number of matched tracks | calo->GetNTracksMatched() | [-0.5,9.5] / 1 | |
|
Cluster track matching | |||
Distance of track to cluster, vs |
calo->GetTrackDx/Dz() | |||
Pt dependent matching variable, vs |
*calo is the instance of AliADOCaloCluster
from AliAODEvent::GetCaloCluster(AliAODTrack::GetEMCALcluster())
if AliAODTrack::IsEMCal()
or AliAODEvent::GetCaloCluster(AliAODTrack::GetPHOScluster())
if AliAODTrack::IsPHOS()
.
*cells is the instance of AliAODCaloCells
from AliAODEvent::GetEMCALCells()/GetPHOSCells()
.
To identify bad, dead and warm/hot cells, calibrate energy and timing, caculate EFrac and compare with mean value of neighboring cells.
EFrac (Unit: %) = cells energy fraction of full cluster energy, summed over all events --> turned out to be a much better discriminator than just looking how often cells fired
Definition | EFrac | Range of EFrac or mean |
---|---|---|
Dead cell | EFrac < mean/3 | mean>80 |
- | EFrac < mean/5 | 40 < mean < 80 |
- | EFrac < mean/8 | 10 < mean < 40 |
- | EFrac < mean/10 | mean < 10 |
Warm/Hot cell | EFrac > 80 | EFrac > 2 *mean |
- | EFrac > 20 | EFrac > 3 *mean |
- | EFrac > 8 | EFrac > 4 *mean |
- | EFrac > 5 | EFrac > 5 *mean |
ADC/Energy Trigger Threshold: Twiki, this value can also be estimated with peaks in cluster energy distribution due to the pre-scale. Considering the energy resolution, energy cuts using for analysis MUST be, about 1 GeV, higher than the configured thresholds.
Period | L0 ADC |
|
L1-EG1/DG1 |
|
L1-EG2/DG2 |
|
---|---|---|---|---|---|---|
16i-k | 132 | 2.5 | 115 | 9 | 51 | 4 |
16l? | 132 | 2.5 | 78 | 6 | 51 | 4 |
16o-p | 132 | 2.5 | 115 | 9 | 51 | 4 |
*17g-r | - | - | - | ~11 | - | ~5 |
*From peak value in cluster energy distribution.
Particle identification is performed on track level with detector response for final particles, like electron, muon, pion, kaon and proton (deuton, triton, helium-3, helium-4 for special topics). Traditionally, we deploy rectangular cuts on detector response (
Definition of detector response:
Detector response/signal:
- ITS & TPC - dE/dx : Energy loss based on Bethe-Bloch curve.
- EMCal - E/p : Ratio of total energy and momentum.
- TOF -
$1/\beta$ : Time of flight. - TRD - Q : Energy loss and production of transition radiation.
- HMPID -
$\beta$ : Cenrenkov angle.
PID framework:
- AliPIDResponse: Common way with
$n\sigma$ cuts. - AliPIDCombined: To manage combination of detector response using a Bayesian approach.
Basic usage: Load macro AddTaskPIDResponse.C. Example can be found in AliAnalysisTaskPIDqa.cxx.
//input hander
AliAnalysisManager *man=AliAnalysisManager::GetAnalysisManager();
AliInputEventHandler *inputHandler=dynamic_cast<AliInputEventHandler*>(man->GetInputEventHandler());
//pid response object
fPIDResponse=inputHandler->GetPIDResponse();
// detector response
double kaonSignal = fPIDResponse->NumberOfSigmasTPC(track, AliPID::kKaon);
double pionSignal = fPIDResponse->NumberOfSigmasTPC(track, AliPID::kPion);
double protonSignal = fPIDResponse->NumberOfSigmasTPC(track, AliPID::kProton);
Bayesian approach: AliPIDCombined
// SETTING methods - UserCreateOutputObjects
// specify the detectors you want (OR syntax)
void SetDetectorMask(Int_t mask);
// specify lists of species (default: AliPID::kSPECIES=5)
void SetSelectedSpecies(Int_t selectedSpecies);
// load default TPC priors
void SetDefaultTPCPriors();
// load your own priors as a function of pt
void SetPriorDistribution(AliPID::EParticleType type,TH1F *prior);
// EXEC method - UserExec
// compute probabilities, return mask of detectors used and prob. array in bayesProbabilities
UInt_t ComputeProbabilities(const AliVTrack *track, const AliPIDResponse *response, Double_t* bayesProbabilities,Double_t* priorsOwn=NULL) const;
// Retrieve the probability to have a TPC-TOF mismatch
static Float_t GetTOFmismatchProb();
// OTHER
// Retrieve the priors used for a given track and a given detector mask
void GetPriors(const AliVTrack *track,Double_t* priors,Float_t centrality=-1,Bool_t isPPB=kFALSE) const;
// Return TPC priors histo for a given species
TH1* GetPriorDistribution(AliPID::EParticleType type) const;
PID tender only for ESD: AddTaskTender.C
// all paramerters are boolean variables
AddTaskTender(kV0, kTPC, kTOF, kTRD, kPID, kVTX, kT0, kEMCal, kPtFix);
QA Task for general purpose: AddTaskPIDqa.C
Signal or
Hybrid signal: TPC-TOF, TPC-EMCal, TRD-?
Standard setup for invariant mass spectrum: $[1.5, 5.0]/(GeV/c^2)$0.04(GeV/c^{2})$, pre-defined
Parameter | Description | Std. Method | Typical Value | Setup |
---|---|---|---|---|
Invariant mass of selected dielectron pair. |
VAR::kM | - | [1.5,5.0] / 0.04 | |
|
Basic kinematic variables | VAR::kPt | $\bar{p}{T}\sim2E{th}$ | |
|
Dielectron momentum spectrum | |||
Pseudoproper-decay-length (cm) | VAR::kPseudoProperTime | [-0.5,0.5] / 0.0001 | ||
Event level, number of dielectron after cuts | VAR::kPairs | [0,20] / 1 | ||
|
Event level, ratio of candidates and multiplicity |
*VAR
is the instance of AliDielectronVarManager
supported by PWG/dielectron
In ALICE offline software, jets are reconstructed with external package - fastjet. The input parameters contain clustering algorithm (anti-kT), jet cone raidus (R=0.2 for pp), recombination scheme (
Parameter | Description | Std. Method | Typical Value | Setup |
---|---|---|---|---|
|
Jet basic kinematic variables | JetFinder | [0,200] / 0.2 | |
Area | Jet area | JetFinder | [0,5R] / 0.01 | |
|
Use cut of 0.6*R to reduce fake jet contamination | |||
Jet UE density, Event level | RhoTask | [0,10] / 0.01 | ||
|
Jet UE density vs |
|||
|
Jet UE density vs multiplicity, Event level | |||
|
Density fluctuation, |
RC is random cone method for the fluctuation of jet UE density.
In PWGDQ, there are two analysis frameworks, dielectron and reducedTree, for general purpose of dielectron and quarkonium physics.
The core class of dielectron is AliDielectron
, which consists of event processing methods, analysis cuts/filters (event, track, leg and pair), arrays of tracks and pair candidates, histogram manager, correction framework manager, event mixing handler, track rotator and MC signal. Physics variables are processed and stored in AliDielectronVarManager
.
// To load dielectron framework
#include "AliDielectron.h"
#include "AliDielectronVarManager.h"
#include "AliDielectronVarCuts.h"
#include "AliDielectronEventCuts.h"
#include "AliDielectronPairLegCuts.h"
#include "AliDielectronTrackCuts.h"
#include "AliDielectronCF.h"
class AliDielectron;
class AliDielectronVarManager;
class AliDielectronVarCuts;
class AliDielectronEventCuts;
class AliDielectronPairLegCuts;
class AliDielectronTrackCuts;
class AliDielectronCF;
The reducedTree was created as restructuring of dielectron package in Oct 2015. With AliAnalysisTaskReducedTreeMaker
, original AOD tree woud be filtered and converted to dst tree.
The events are required to pass the physics selection (Task) and have a reconstructed vertex. For
Variable | Cut / Value |
---|---|
Offline Trigger | MB/kINT7 |
- | EMCal L1/kEMCEGA (EG1/EG2/DG1/DG2) |
Vertex type | GetPrimaryVertex() |
>1 | |
|$Z_{Vtx}$| | < 10 cm |
Physics Selection | True |
Pileup | False |
Primary vertex can be reconstructed from tracks, TPC, SPD, and GetPrimaryVertex() returns the best available.
There are two types of pileup that have to be considered:
- in-bunch: the overlap of several events from the same bunch-crossing at the interaction point (IP).
- out-of-bunch: readout time of detectors (TPC:100us, SPD:300ns) are slow than the bunch spacing (25ns).
Tools and methods for pileup rejection: Physics Selection / Past-future protection, Multi-vertexer, AliVEvent::IsPileupFromSPD.
Use track cuts to select good tracks as electron candidates, including kinematic variables, tracking result, TPC parameters and PID limitations.
- Basic strategy: Using dE/dx (from TPC) and E/p (from EMCal) to indentify electrons, and only TPC signal to exclude kaons and protons.
- Hybrid method: To add TOF or/and TRD as complements.
Variable | Cut / Value - AN646 | AN746 | AN876 |
---|---|---|---|
|
>1.0 | >1.0 | >1.0 |
[-0.9,0.9] | [-0.9,0.9] | [-0.9,0.9] | |
|
[-3,3] | [-3,3] | [-2,2] |
|
[-1,1] | [-1,1] | [-0.5,0.5] |
85 | 70 | 70 | |
[0.0,4.0] | [0.0,4.0] | [0.0,4.0] | |
- | [0.0,30.0] | [0.0,30.0] | |
TPC |
- | ||
TPC |
- | [6,9] | - |
TPC |
- | ||
TPC |
- | - | |
TPC |
- | [0.8,2.0] | - |
Reject kink | True | True | True |
SPD cluster | Any | Any | Any |
ITS+TPC refit | True | True | True |
[-2.25,3.0] | [-3.0,3.0] | [-3.0,3.0] | |
- | > 3.5 | > 3.0 | |
- | > 3.5 | > 3.0 |
EMCal cuts for ANY leg:
Out-of-bunch pileup tracks are removed according to the
For brief, RF is the ratio of event number in MB and selected triggers.
- Using ADC spectrum of the maximum energy in EMCal EG patches (4x4 towers) obtained in kINT7 (MB) events. To calculate event fraction above ADC threshold which would trigger the EMCal.
- Using EMCal cluster energy distribution. (without track cuts?)
Results from C. Jahnke's report:
16i | 16k | 16l | 16o | |
---|---|---|---|---|
EG2 | ||||
EG1 | ||||
DG2 | ||||
DG1 |
- Invariant mass spectrum. Fit with Crystal-Ball (signal) + pol2 (background) function.
- Combination of EMCal L1 trigger classes (EG1/EG2/DG1/DG2).
- Cross section vs
$p_{T}$ , after normalized with EMCal rejection factor. - Pseudo-proper decay length
$\ell_{J/\psi}=L_{xyz}m_{J/\psi}c/|p_{ee}|$ , for the seperation of prompt and non-prompt$J/\psi$ .$L_{xyz}$ is the distance between the primary and dielectron vertices. The prompt, non-prompt and background components are parameterized using data and MC events after unfolded with $_{s}\mathcal{P}lot$ technique.
Source: QA/AddTaskJetQA.C
- Refer:
- LEGO train - JE_EMC_pp
- runEMCalJetSampleTask.C
- Configuration:
- JetFinder: AddTaskEmcalJet, Wagon-PPJetFinder_charged_AKT_02/04
Parameter | Value | Description |
---|---|---|
nTrack | "usedefault" | name of track branch |
nClusters | "" | name of cluster branch |
jetAlgo | antikt_algorithm | AliJetContainer::EJetAlgo_t |
radius | 0.2 / 0.4 | Radius of jet cone on |
jetType | kChargedJet | AliJetContainer::EJetType_t |
minTrPt | 0.15 | Track pt cut (GeV/c) |
minClPt | 0.30 | Cluster energy cut (GeV) |
ghostArea | 0.01 | |
reco | pt_scheme | AliJetContainer::ERecoScheme_t |
tag | "Jet" | Jet name in container |
minJetPt | 1. | |
lockTask | kFALSE | |
bFillGhosts | kFALSE |
- Rho: AddTaskRhoSparse, Wagon-HMRhoTask_02/04
- ? Parameter in wagon can not match current macro
- runEMCalJetSampleTask.C, AliAnalysisTaskRho::AddTaskRhoNew
- DeltaPt: AddTaskDeltaPt, Wagon-HMDeltaPt_02/04
Main task:
- SpectraQA: AliAnalysisTaskEmcalJetSpectraQA
- Trigger: kINT7 (to compare results with AN-850)
- Wagon: JetSpectra/ppJetSpectra13TeV_QA
- PWGJEQA: AliAnalysisTaskPWGJEQA
- Trigger: kEMCEGA (to perform QA for
$J/\psi$ filter) - Wagon: QA/JE_QA_pp_Leticia (Last run: 20190507)
- Trigger: kEMCEGA (to perform QA for
Source: NanoAOD/YatoJpsiFilterTask.h/cxx
-
Refer:
- DielectronFilter: Use AliDielectron to select events with candidates
- NanoAODFilter/Replicator: Copy and save objects/branch in AliAODEvent.
-
Output: AliAOD.Dielectron.root
- AliAODOutputHandler: header, AliTOFHeader, AliAODVZERO
- Filter: tracks, vertices, caloClusters, tracklets, emcalTrigger, phosTrigger, emcalCells, phosCells, AliAODZDC, AliAODAD, AliAODTZERO
- NEW: dielectrons, jets02, jets04
// Access jet container by formatted name
TString jetName = AliJetContainer::GenerateJetName(jetType, jetAlgo, recoScheme, radius, partCont, clusCont, tag);
// TODO: AddJetContainer by user
// jets02 = "Jet_AKTChargedR020_tracks_pT0150_pt_scheme"
// jets04 = "Jet_AKTChargedR040_tracks_pT0150_pt_scheme"
TClonesArray* jets = dynamic_cast<TClonesArray*>(aodEv->FindListObject(jetName));
- Selection
- Trigger: AliVEvent::kEMCEGA
- Cuts definition: EMCal_loose
- Pari mass:
$[1.0, 5.0]~(GeV/c^2)$ (for background estimation) - Jet: no cuts (TODO: set by user)
- Replace daughters with
$J/\psi$ pseudo track. - Reclustering with new track array.
- Find
$J/\psi$ track in jets and calculate$p_{T}$ ratio (z).
For periods which do not have dedicated TPC splines and show a greater mismatch between data and MC. The post calibration is performed using a clear electron sample from tagged electrons from photon conversions. QA plots shows
Variable | Cut value |
---|---|
< 10 | |
[0.0, 0.05] | |
DCA | [0.0, 0.10] cm |
[-3.0, 90.0] cm | |
[0.0, 0.2] | |
ITS refit | yes |
TPC refit | no |
The calibration centers the electron band at 0, with a width of 1. The calibration maps (2D bin-by-bin) are used to re-calculate the TPC
where
Reference: alidoc | PCG-tutorial | ALICE-analysis-tutorial (Correction, Embedding) |
- Bad channel map, energy calibration, time calibration, cell-level crosstalk.
- Cluster exotics, enery non-linearity, track matching, hadronic correction and PHOS tender.
- Detector geometrical coverage and acceptance.
- Trigger, tracking reconstruction, electron identification and selection efficiency of
$e^{+}e^{-}$ pairs.
The procedure is carried out in two dimensions, z and jet
With different cut definitions.
Matching efficiency
PID cuts for electron, electron from conversion, electron efficiency, hadron rejection ...
Fitting method and errors.
Branching ratio, luminosity ...
Analysis Task|Description|Configuration|Full Path| -|-|-|-|-| -|runAnalysis.C| Physics Selection|Selects collision candidates from data runs, applying selection cuts on triggers and background rejection based on the content of the ESD|-|OADB| MultSelection|New centrality estimator||OADB| CDB Connect|Task just allowing connection to CDB (no lock)|-|PWGPP| EMCal Correction|Perform correction on bad channel, energy, timing and clusterizer.|YAML-PWGHF|PWG/EMCAL| PID response|Basic PID task|-|AliRoot PID QA|QA for PID result on full AOD|-|AliRoot -|QA/AddTaskJetQA.C| Emcal Jet|Jet finder, create jet container|kCharged, R=0.2/0.4, anti_kt|AddTaskEmcalJet| Rho|Estimate jet background by kt_algorithm||AddTaskRhoNew| DeltaPt|Jet Pt correction|RCperEv=100, MinRC2LJ=R|PWGJE/EMCALJetTasks| PWGJEQA|Performs basic QA relevant to the jet group, by run-wise, event, track, cluster and cells. AliDoc|EMCEGA|PWGJE/EMCALJetTasks| Spectra QA|Perform QA on jet spectra by multiplicity.|INT7, Jets_EMC_pp -|QA/AddTaskJpsiQA.C| MultiDielectron|Basic Analysis task for Dielectron by single event analysis with multiple cuts definition (AliDielectron) |ConfigJpsi_cj_pp.C (INT7/EG1/EG2/DG1/DG2, EMCal_strict+RAW)|QA/AddTask_cjahnke_JPsi| -|NanoAOD/AddTaskJPSIFilter.C| Jpsi Filter|Filter AOD with dielectron candidates on event level; Create branch for dielectron pairs and jets|kEMCEGA + EMCal_loose|NanoAOD/YatoJpsiFilterTask|