Spin PWG
This is a feed of Drupal items targeting the "Spin" Audience.
Polarization
I am using the final polarization numbers from run 6, released by A. Bazilevsky to the spin group on December 4, 2007. The files can be found below.
Updated Charged Pion A_{LL} predictions
No really dramatic changes here. The increased asymmetries might mean that g-g scattering is even more important than predicted originally. Of course, this goes in the wrong direction if we're looking for better agreement with our Pythia.
g-g suppression in Pythia
I'm concerned about an apparent deficit of g-g scattering events in our CDF Tune A Pythia samples. I first noticed this deficit when I was looking at MC asymmetries for pi-minus production, where the difference between asymmetries from g-g and q-g events is extreme. For reference, here is Vogelsang's prediction for the subprocess mixture for inclusive pi0 production:
Compare that to the following plot from Pythia for pi-plus production after combining partonic samples starting at 3_4:
If I add 2_3 GeV the gg contribution at low pT gets a boost, but I'm still seeing ~zero pions from g-g scattering at 8 GeV, where Vogelsang predicts 20% g-g.
Renee suggested skipping the observables and just plotting the event partonic pT. The turnover from gg to qg occurs at 3 GeV ... seems too low to me. On the other hand, the mixture is ~20% g-g at 16 GeV, which seems about right.
One other tidbit for any Pythia tuners out there. When I was running standalone Pythia to get the various partonic xsections for weighting purposes I saw a number of advisory warnings like
Advisory warning: maximum violated by 1.120D+00 in event 625
XSEC(28,1) increased to 5.982D-01
in this case, I was running the 5_7 sample. The initial max value for the q-g xsec was 5.3392D-01, and the final measured xsec was 1.515D-01. Not sure if it's significant.
Update 11-19-2007
I looked into the relationship between charged pion p_{T} and event partonic p_{T} in more detail. Here are plot of charged pion multiplicity and mean pion p_{T} versus event p_{T}:
so g-g events actually produce more charged pions per event, but these pions are all at low p_{T}. The second conclusion is reinforced by the PDF I've linked at the bottom of the page, which shows pion p_{T} spectra split by subprocess for a range of partonic p_{T} bins. The g-g events have a much steeper slope. Those plots are not normalized by the # of events per subprocess, so the conclusion about the number of pions per event is not immediately evident.
Update 11-27-2007
I tried manually rescaling the g-g scattering contribution to the PYTHIA asymmetries; it looks like increasing the g-g by a factor of 5 does a decent job of reproducing the NLO theoretical predictions:
References
Agreement Between "Polarized" Pythia and NLO pQCD
Updated Charged Pion A_{LL} predictions
Agreement Between "Polarized" Pythia and NLO pQCD
We're using an afterburner framework that turns Pythia into something like a LO polarized event generator to study any biases introduced by our triggers on A_LL measurements. This page compares the asymmetries generated by Pythia to theoretical predictions from GRSV.
Cuts
- MC and reco vz positions inside 60 cm
- |eta| of reco primary track < 1.0
- dca of associated global < 1.0
- fit points > 25
- select pions using geant ID 8 (pi-plus) or 9 (pi-minus)
No trigger requirements are imposed.
Weighting
I combined MC samples 3_4 through 55_65 using the following cross sections and event counts
xsec = {
'3_4' : 1.287, 384593
'4_5' : 3.117*10**-1, 586568
'5_7' : 1.360*10**-1, 380791
'7_9' : 2.305*10**-2, 404272
'9_11' : 5.494*10**-3, 413651
'11_15' : 2.228*10**-3, 418547
'15_25' : 3.895*10**-4, 407427
'25_35' : 1.016*10**-5, 99998
'above_35' : 5.299*10**-7, 119995
'45_55' : 2.830*10**-8, 119995
'55_65' : 1.433*10**-9 119998
}
Plots
First off, here are the asymmetries integrated over all subprocesses. The left column is pi-plus, the right column is pi-minus. The agreement for postive charges seems basically acceptable to me, but pi-minus is off by quite a lot:
If I restrict to g-g, q-g, and q-q subprocesses individually, the difference between the two is obviously in the q-g subprocess contribution (as expected):
It seems to me that the lack of agreement between our Monte Carlo and the theoretical predictions could be due in part to a lack of gg / over-abundance of qg in the subprocess mix. Here are plots of the subprocess mix from Pythia:
compare that to the prediction from Vogelsang et al. for inclusive pi0 production, where gg is the primary contributor until ~3 GeV:
In particular, only the 3_4 GeV partonic sample has more g-g than q-g at any pion p_T. I'm going to try including the 2_3 GeV sample in my studies and see if that bolsters the gg contribution.
Old Studies
Outdated or obsolete studies are archived here
Charged Pions
Charged pion analysis
DNP 2007 Inclusive Hadron Talk
Here are the powerpoint and pdf versions of my slides for DNP.
2006 Neutral Pion Update (9/27/07)
Click on the link to download my slides for the PWG meeting.
Average Partonic Pt Carried by Charged Pions
Here's a fragmentation study looking at the ratio of reconstructed charged pion p_{T} and the event partonic p_{T} in PYTHIA. Cuts are
- fabs(mcVertexZ()) < 60
- fabs(vertexZ()) < 60
- geantId() == 8 or 9 (charged pions)
- fabs(etaPr()) < 1
- fabs(dcaGl()) < 1
- fitPts() > 25
Error bars are just the errors on the mean partonic p_{T} in each reconstructed pion p_{T} bin. Next step is to look at the jet simulations to come up with a plot that is more directly comparable to a real data measurement.
Effect of Triggers on Relative Subprocess Contributions
These histograms plot the fraction of reconstructed charged pions in each pion pT bin arising from gg, qg, and qq scattering. I use the following cuts:
- fabs(mcVertexZ()) < 60
- fabs(vertexZ()) < 60
- geantId() == 8 or 9 (charged pions)
- fabs(etaPr()) < 1
- fabs(dcaGl()) < 1
- fitPts() > 25
I analyzed Pythia samples from the P05ih production in partonic pT bins 3_4 through 55_65 (excluded minbias and 2_3). The samples were weighted according to partonic x-sections and numbers of events seen and then combined. StEmcTriggerMaker provided simulations of the HT1 (96201), HT2 (96211), JP1 (96221), and JP2 (96233) triggers. Here are the results. The solid lines are MB and are identical in each plot, while the dashed lines are the yields from events passing a particular software trigger. Each image is linked to a full-resolution copy:
Conclusions
- Imposing an EMC trigger suppresses gg events and enhances qq, particularly for transverse momenta < 6 GeV/c. The effect on qg events changes with pT. The explanation is that the ratio (pion pT / partonic pT) is lower for EMC triggered events than for minimum bias.
- High threshold triggers change the subprocess composition more than low-threshold triggers.
- JP1 is the least-biased trigger according to this metric. There aren't many JP1 triggers in the real data, though, as it was typically prescaled by ~30 during the 2005 pp run. Most of the stats in the real data are in JP2.
Run 6 Relative Luminosity (Tai Sakuma)
Along with the spin sorted yields and the polarization, the relative luminosity is important piece of the spin asymmetries and is measured by BBC and ZDC.
Run 6 Inclusive Jet Cross Section (Tai Sakuma)
Inclusive Jet Cross Sections in Proton-proton collisions at √s = 200 GeV
Tai Sakuma
How to run the patched PYTHIA 6 in starsim
The most of the MC production jobs that the spin PWG requested for the di-jet analysis didn't finish successfully
Patch for a bug in PYTHIA6
This page explains how to run the patched PYHIA 6 as the event generator for starsim. The starsim has a mechanism where a user can choose a specific version of Pythia to use at run time.This feature will be used.
Patch for a bug in PYTHIA6
This patch is included in PYTHIA from PYTHIA 6.412. You don't need to apply this patch if you are using PYTHIA 6.412 or newer.
Download Patch
If you need the patch for a different version of PYTHIA, email sakuma@bnl.gov.
Single-Spin Asymmetries
pi^{-}
pi^{+}
Every measurement is absolutely consistent with zero, and I don't see a single problematic fill in this list.Cuts Summary
Run 5
Event- standard spinDB requirements
- production triggers only
- 0.2 < detEta < 0.8
- 0.1 < E_neu / E_tot < 0.9
- pt > 2
- -1 < eta < 1
- nFitPoints > 25
- |DCA_global| < 1
- -1 < nSigmaPion < 2
- pt > 3.0
- photon energies > 0.1
- asymmetry < 0.8
- 0.08 < mass < 0.25
- charged track veto
- BBC timebin in {7,8,9}
Run 6
Event- standard spinDB requirements
- production triggers + trigId 5 (L2gamma early runs)
chargedPions
- pt > 2
- -1 < eta < 1
- nFitPoints > 25
- |DCA_global| < 1
- -1 < nSigmaPion < 2
- pt > 5.2
- photon energies > 0.1
- asymmetry < 0.8
- 0.08 < mass < 0.25
- charged track veto
- BBC timebin in {7,8,9} update: timebin 6 added in 2007-07-18 production
- both SMD planes good
- hardware or software trigger in (117001, 137213, 137221, 5, 137222, 137585, 137611, 137622)
- Global dE/dx cut changing with momentum
- nFitPoints >= 15
- nDedxPoints >= 10
- nHits / nPoss >= 0.52
- track Chi2 < 4
- DCAGlobal < 2
- NEtaStrips > 1 && NPhiStrips > 1
- Primary dE/dx cut changing with momentum
- 0.3 < P/E < 1.5
- -0.01287 < PhiDist < 0.01345
- ZDist in [-5.47,1.796] (West) or [-2.706,5.322] (East)
Common Analysis Trees
Location
RCF: /star/institutions/mit/common/run6/spinTree/PDSF: /auto/pdsfdv34/starspin/common/run6/spinTree/
Anywhere: root://deltag5.lns.mit.edu//Volumes/scratch/common/run6/spinTree/spinAnalyses_runnumber.tree.root
The last option uses xrootd to access read-only files stored on an MIT server from any computer with ROOT installed. If you have an Intel Mac note that ROOT versions 5.13.06 - 5.14.00 have a bug (patched in 5.14.00/b) that prevents you from opening xrootd files.
Interactive Mode
The basic trees are readable in a simple interactive ROOT session. Each particle type is stored in a separate tree, so you need to use TTree::AddFriend to connect things together before you draw. For example: root [1] TFile::Open("root://deltag5.lns.mit.edu//Volumes/scratch/common/run6/spinTree/spinAnalyses_7156028.tree.root"); root [2] .ls TXNetFile** root://deltag5.lns.mit.edu//Volumes/scratch/common/run6/spinTree/spinAnalyses_7156028.tree.root TXNetFile* root://deltag5.lns.mit.edu//Volumes/scratch/common/run6/spinTree/spinAnalyses_7156028.tree.root KEY: TProcessID ProcessID0;1 00013b6e-72c3-1640-a0e8-e5243780beef KEY: TTree spinTree;1 Spin PWG common analysis tree KEY: TTree ConeJets;1 this can be a friend KEY: TTree ConeJetsEMC;1 this can be a friend KEY: TTree chargedPions;1 this can be a friend KEY: TTree bemcPions;1 this can be a friend root [3] spinTree->AddFriend("ConeJets"); root [4] spinTree->AddFriend("chargedPions"); root [5] spinTree->Draw("chargedPions.fE / ConeJets.fE","chargedPions.fE>0")
If you have the class definitions loaded you can also access member functions directly in the interpreter: root [6] spinTree->Draw("chargedPions.Pt() / ConeJets.Pt()","chargedPions.Pt()>0")
Batch Mode
The StSpinTreeReader class takes care of all the details of setting branch addresses for the various particles behind the scenes. It also allows you to supply a runlist and a set of triggers you're interested in, and it will only read in the events that you care about. The code lives inStRoot/StSpinPool/StSpinTree
and in the macros directory is an example showing how to configure it. Let's look at the macro step-by-step:
//create a new reader StSpinTreeReader *reader = new StSpinTreeReader(); //add some files to analyze, one at a time or in a text file reader->selectDataset("$STAR/StRoot/StSpinPool/StSpinTree/datasets/run6_rcf.dataset"); //reader->selectFile("./spinAnalyses_6119039.tree.root");
Ok, so we created a new reader and told it we'd be using the files from Run 6 stored on RCF. You can also give it specfic filenames if you'd prefer, but there's really no reason to do so. //configure the branches you're interested in (default = true) reader->connectJets = true; reader->connectNeutralJets = false; reader->connectChargedPions = true; reader->connectBemcPions = true; reader->connectEemcPions = false; reader->connectBemcElectrons = false; //optionally filter events by run and trigger //reader->selectRunList("$STAR/StRoot/StSpinPool/StSpinTree/filters/run6_jets.runlist"); reader->selectRun(7143025); //select events that passed hardware OR software trigger for any trigger in list reader->selectTrigger(137221); reader->selectTrigger(137222); reader->selectTrigger(137611); reader->selectTrigger(137622); reader->selectTrigger(5); //we can change the OR to AND by doing reader->requireDidFire = true; reader->requireShouldFire = true;
In this block we configured the reader to pick up the jets, chargedPions and BEMC pi0s from the files. We also told it that we only wanted to analyze run 7132001, and that we only cared about events triggered by BJP1, L2jet, or L2gamma in the second longitudinal running period. Finally, we required that one of those trigIds passed both the hardware and the software triggers.After that, the reader behaves pretty much like a regular TChain. The first time you call GetEntries() will be very slow (few minutes for the full dataset) as that's when the reader chains together the files and applies the TEventList with your trigger selection. Each of the particles is stored in a TClonesArray, and the StJetSkimEvent is accessible via reader->event().
StJetSkimEvent *ev = reader->event(); TClonesArray *jets = reader->jets(); TClonesArray *chargedPions = reader->chargedPions(); TClonesArray *bemcPions = reader->bemcPions(); long entries = reader->GetEntries(); for(int i=0; i
What's Included?
Common trees are produced for both Run 5 and the 2nd longitudinal period of Run 6. Here's what available:Run 5
- skimEvent
- ConeJets
- chargedPions
- bemcPions
- skimEvent
- ConeJets12
- ConeJetsEMC
- chargedPions -- see (Data Collection)
- bemcPions
- bemcElectrons
Known Issues
The first time you read a charged pion (batch or interactive) you may see some messages like Error in <tclass::new>: cannot create object of class StHelix</tclass::new>
These are harmless (somehow related to custom Streamers in the StarClassLibrary) but I haven't yet figured out how to shut them up.
42 runs need to be reprocessed for chargedPions in Run 5. Will do once Andrew gives the OK at PDSF.
40 runs need to be reprocessed for Run 6 because of MuDst problems. Murad has also mentioned some problems with missing statistics in the skimEvents and jet trees that we'll revisit at a later date.