-j y[es] Specifies whether or not the standard error stream of the job is merged into the standard output stream.
-m b|e|a|s|n,... Available for qsub, qsh, qrsh, qlogin and qalter only. Defines or redefines under which circumstances mail is to be sent to the job owner or to the users defined with the -M option described below. The option arguments have the following meaning:
Before even discussing full jet reconstruction, we need to explore what we'll call multiparticle jet reconstruction. This is the first step between the correlation studies attempted before (nucl-ex/0604018) and full jet reconstruction. The studies attempted before took 1 trigger particle (defined by pT trigger) and correlated it with other particles above some threshold pT. The multiparticle jet reconstruction will use a similar technique, but define 1+ particles as a trigger (i.e. a pT trigger defined as 10 GeV can either be one 10 GeV hadron or two 5 GeV hadrons, a 2 GeV hadron plus two 4 GeV hadrons, and so on).
There are potential advantages and disadvantages to this method. Two advantages are statistics and better Ejet resolution. You get a more direct understanding of efficiency as a function of partonic pT because you are picking up multiple hadrons in your trigger. You have a better handle on the probability of a given parton fragmenting to multiple hadrons. You also come closer to sampling actual Ejet by clustering multiple hadrons in your trigger.
One of the potential disadvantages is not having any theory for multiparticle fragmentation. The jet energy is connected to the observed hadron energy through a fragmentation function. Adding in additional particles would be considered intra-jet interaction which is not well understood theoretically.
Starting with the description of an actual jet reconstruction in p+p:You can assume the jet energy is approximately equal to the parton energy. If you do an infrared sum, you can see if theory and experiment are consistent. This is not a perfect schema though as there is "missing" energy in the form of unmeasured neutral jet particles (i.e. neutrons, neutrinos, K0Long).
- Sum all the track energies
- Sum all the calorimeter hits in a cone around a specified jet axis:
R = SQRT(Deta^2 + Dphi^2)
In addition, all of this assumes partons are fragmenting in vaccuum (pp, dAu). In Au+Au collisions, you can't do this so easily because of all the uncorrelated background. At the LHC, you could potentially do something similar to this though, because the projected jet energies would be so high (> 50 GeV). Jets would pop out far above the uncorrelated background.
Assuming that roughly 2/3 of particles in a jet are charged, and the rest are uncharged. we can start with charged tracks and worry about calorimeter towers later. Considering the interesting measurement is the fragmentation function (D(z)), we consider what has been done previously.7/21/2006
The most recent "fragmentation" function measured the particle yield as a function of zT = pT(associated)/pT(trigger). The correct fragmentation function would measure the yield as a function of z = pT(hadron)/Ejet. A full jet reconstruction would allow one to actually do this measurement. In general you would expect a modification of the fragmentation function due to energy loss, if you plot it as a function of z, since fragmentation should be independent of jet energy. This is due to the fact that your hardest fragments are shifted to a lower pT (scattering in the medium) which subsequently populates the lower z region of the fragmentation function. You would also expect an overall suppression relative to dAu for instance, in the awayside jet, as well as this shape modification.
In the aforementioned recent STAR measured D(zT), the suppression was observed, but not the expected shape modification. PHENIX claims that this could be due to a bias introduced by requiring a second particle, which then biases the trigger particle distribution. This means that D(zT) is mostly sensitive to the number distribution of the parton pT and not to D(z), the actual fragmentation function. (One way to circumvent this is to look at gamma-jet correlations to give a more direct handle on D(z) than a di-hadron measurement).
In summary, the first proposed steps are:
- Run over the same data as mvl, verifying that I know how to run over the data by generating the same histograms.
- Adjust various parameters to see how the histograms change;
const float StHiJet::mMinSeed=5;
const float StHiJet::mJetR=0.3;
const float StHiJet::mEtaCut=1;- Run over the p+p data for a controlled comparison.
- Repeat the most recent STAR analysis, using a multi-hadron trigger, such that you form a proto-jet, from which you can derive Ejet(core) -- a better approximation of the jet energy
- Measure the angular correlations for varied pT triggers and associated hadrons.
- From this dN/dzT (zT = pT(associated)/Ejet(core)) distributions can be developed for the near and away-side jets.
- Another observable that can be studied is R(AA), where the ratio of the yield in Au+Au to that in the equivalently scaled p+p collisions is defined. If there are kinematical dependencies the shape will indicate so.
- Cu+Cu analysis may be more fruitful than Au+Au, since the same hard parton scatterings occur with 2 or 3 times less overall multiplicity.
As I'm getting things sorted out, I had a couple of quick questions7/27/2006
qsub -j y -m n -o hijet_minb_cent0.o\$JOB_ID dohijet.csh micro_list/year4_minb.lis 0
The 0 at the end refers to centrality. What is the centrality numbering scheme?
I am pretty sure it is:
0: 60-80%
1: 40-60%
2: 30-40%
3: 20-30%
5: 10-20%
6: 0-10%
7: 0-80%
Exact cuts etc are defined in StRoot/StHighptPool/StHiAnalysis/Cut.cxx (and CutRc.cxx)
Also I was wondering if all the year4 data is covered in the core_jet directory?
The himicro_low,mid,high directories contain only central triggerd events (trigid 15105) from those trgsetupnames (production Po5ic) and should be more or less complete.
The minbias directory contains only P05ia productionMinbias (ca 20M events). Since then, an additional 8 or so million events with displaced vertex were produced, and the whole thing was redone with P05ic.
No need to worry about that now, I think.
However, one thing that you should probably check is whether a trigger id cut is applied when you run over those events.
For details on trigger words and event counts, see: here
In the mean time, I also processed the d+Au datasample: /eliza2/rnc/mvl/himicro/dau for this one you also need to apply a trigger-id cut (2002 or 2003).
This is the main reference set, so it is probably good to run over this one as well to check out the stats.
Need to run over dAu as a reference, see if we have enough statistics. Need trigger word cut to separate out events with high towers. So far it looks like /home/bhaag/core_jet/StRoot/StHighptPool/StHiMicroEvent/StHiMicroEvent.h and StHiMicroEvent.cxx are the only files that mentions trigger words.
One possibly useful page here. The 2003 trigger page is here .When using cons - make sure to use proper library.
For run 2 - 4 (also dAu), starver SL05c works.
To check which version you are running: env | grep STAR
Horner made a suggestion re: Bad Triggers.
If you want to talk to Marco's classes you have to check the actual code. But now I know how, you need to change the trigger check code to: event->IsTrigger(2001) || event->IsTrigger(2003) and then it will work properly.
Next steps:
Do a comparision of &Delta &phi yields for multi and single particle triggers. Want to look at sum of seed and associated slightly above > 8 GeV
Need to generate corresponding plots of dN/d&phi which should look sort of like this:
As a first pass start with a trigger > 8 GeV, and associated particles > 2, 3, 4, 5 GeV. Need to go into the code and add the desired histograms.
Had some trouble sorting out the code to produce the dN/d&phi histograms. Horner suggested the following:
lets call the histogram HistB -
You add the histogram declaration inside
void StHiJet::initHistos() {
Hist B = new TH1D("HistB","title;#Delta#phi;#frac{dN}{d(#Delta#phi)}",96,0,2*TMath::Pi());
}
but because its a class you need to declare that HistB is a pointer somewhere
- that has to go in the header file
StHiJet.h
and you should do it near the other histograms - just a line :
TH1D* HistB; // Brookie's histogram
Thats all you need to do to make sure it exists - but that was the easy part!
Now you need to fill it in the correct place (inside the loop over tracks -
because you want to work out the difference between the jet and each individual track - so you gotta do it after you found the jets)
At the beginning after teh event cuts in histofill is a loop over tracks -
the key line is the assoc.Tracks.AddLast(track) - the means this track gets
added ot the tree of interest and meets all your criteria -
the problem is that the jets haven't been found yet - so you need to use
this list a little later when you have the jets (I assume that associated here
is what I think it means?).
for (Int_t i_tr=0; i_tr < event->NTrack(); i_tr++) {
StHiMicroTrack* track = (StHiMicroTrack*) event->tracks()->At(i_tr);
if(track->FitPts()<20)continue;
if(fabs(track->DcaGl())>1.0)continue;
if(fabs(track->EtaPr())>mEtaCut)continue;
mPt->Fill(track->PtPr());
if(track->PtPr() > mMinAssoc)
assocTracks.AddLast(track);
if(track->PtPr() > mMinSeed)
seedTracks.AddLast(track);
}
later on there is this bit
for (Int_t i_assoc=0; i_assoc < n_assoc; i_assoc++) {
StHiMicroTrack *assoc_tr = (StHiMicroTrack *)assocTracks[i_assoc];
if (assoc_tr==seed_tr)
continue;
mdPhiSeedAssoc->Fill(dPhi(seed_tr->PhiPr(),assoc_tr->PhiPr()));
if (GetR(seed_tr,assoc_tr) < mJetR) {
pt_jet += assoc_tr->PtPr();
n_trk++;
}
}
and here a dn/dphi hist is filled but its teh dn/dphi between the associated
track and the seed track (not quite the jet) so you need to add this loop again
after the jets are found but with one modification - that you do the
mdPhiSeedAssoc->Fill(dPhi(seed_tr->PhiPr(),assoc_tr->PhiPr()));
as
HistB->Fill(dPhi( JETPHI ,assoc_tr->PhiPr()));
and you can drop the other junk.
I think that you can put it after this line:
mNJetPtMax->Fill(pt1, seedTracks.GetEntries());
and it should look like this:
for (Int_t i_assoc=0; i_assoc < n_assoc; i_assoc++) {
StHiMicroTrack *assoc_tr = (StHiMicroTrack *)assocTracks[i_assoc];
HistB->Fill(dPhi(phi1,assoc_tr->PhiPr())); // For jet 1
HistB->Fill(dPhi(phi1,assoc_tr->PhiPr())); // For jet 2
}
Finally figured out why my histogram HistB is coming out skewed. In the code, events were getting rejected under criteria that were too strict:
"if (pt1 > 0 && pt2 > 0) {
mPtPt->Fill(pt1,pt2);
dphi_jets = dPhi(phi1,phi2);"
Both seeds are being checked for pT > 0 which isn't necessary for my histogram, but for filling the mPtPt and dphi_jets histograms.