Since the L3 triggered events are in general not unbiased,
e.g. the high-pt-RICH triggered events for a flow analysis,
most users will want to filter out these events to get
an unbiased data set.
Therefore a simple member function is provided which checks how the
event decision was made: unbiased, i.e. not triggered by a L3
algorithm, or biased, i.e. triggered by L3. One exception is the L3
vertex algorithm, where a bias is not seen, or exspected, for central
events. This can be checked with a similar function.
The following lines show how to filter the events for the
unbiased set in StEvent:
StEvent* myEvent; myEvent = (StEvent* )chain->GetInputDS("StEvent"); if (!myEvent) { cout <<"No StEvent found.\n"; return kStWarn; // nothing is working here! } // // Get L3 entry point // myL3Trigger = (StL3Trigger* )myEvent->l3Trigger(); if (!myL3Trigger) { cout << "No l3 found inside StEvent.\n"; cout << "That means l3 was switched off and the event is unbiased. \n"; } else { // // Get L3 event summary // const StL3EventSummary* myL3EventSummary = myL3Trigger->l3EventSummary(); if (!myL3EventSummary) { cout << "No l3 event summary found." << endl; // that's an error if this is not there, so return return kStWarn; } // // now check the event // if (myL3EventSummary->unbiasedTrigger()==false) { cout << "This event was triggered by L3. \n"; cout << "Don't take it! \n"; return kStOk; } } // // now this event is unbiased // do your analysis of this event here... //