StLuminosityMaker

About StLuminosityMaker:
I wrote StLuminosityMaker to sit in the chain and calculate the observed luminosity for any trigger of the events that pass through the chain. The key ability is to be able to apply event level cuts like vertex cuts and software trigger acceptance. The luminosities are separated by run. At present, I'm not sure the cross-sections are correct. The only place I've been able to find the minbias cross-sections is from Jamie's script, but some of the values there don't agree with what's used in other places. I haven't been able to find a definitive reference.

Using StLuminosityMaker:

StLuminosityMaker can be found in StRoot/StSpinPool/StLuminosityMaker/. It needs to be put in the chain after StMuDstMaker and St_db_Maker. There is an example in the macros/ directory that shows the minimal chain to make use of all of StLuminosityMaker's options.

After instantiating StLuminosityMaker, you need to add the triggers that you're interested in. The relevant minbias trigger needs to be added first, since luminosities for other triggers depend on the minbias prescale. There is an option to get the triggers used by StTriggerFilterMaker. If that option is used, the minbias needs to be added first to StTriggerFilterMaker's list. That list will not overwrite the StLuminosityMaker list, it will be added.

You also need to select a running mode (e.g. "pp2006") or set a cross-section manually. Since I can't vouch for the cross-sections, I'd recommend setting the cross-section manually. I hope to fix this in a later version.

There is an option in StLuminosityMaker to turn on filtering, so that events that don't pass event level cuts on triggers and vertex will not be seen by later makers.

There are two ways to access the luminosity calculated by StLuminosityMaker. Both need to be done after Finish(). The first way is you can use getters to get the vectors where the luminosities, triggers, prescales, and numbers of events are stored. These vectors will only hold the information for the most recent run processed if files from multiple runs were included. The second way is to access a TClonesArray that contains a wrapper for these vectors, StLuminosityHolder. The TClonesArray will hold the information for every run processed.