RowCutApplicationProcessor

This processor is used to select in a hit collection those hits that are not formed by pulses contained in a custom set of rows or modules This processor is meant to be used in the reconstruction chain of data from row based readout

Processor parameters

Developer information

The processor is derived from the EventModifier abstract class to be able to change the quality flag of the input hits when the ActivateFlagging parameter is set to be true. For such a reason the workhorse of this processor is the modifyEvent(EVENT::LCEvent* evt) method.

The modifyEvent(EVENT::LCEvent* evt) is basically a loop which checks if a hit is to be selected or flagged. If the user required the Subset option the output collection will be created and filled with all the hits that are not created using the modules and row listed by the user. If the user requires the flagging the processor will flag as not to be included in the track finding all those hits that were created using the list of modules and rows set by the user

To check whether a hit was created with pulses from a specific row, the processor will check the hit row data, retrieve the first pulse contained in that vector and queries GEAR for the row and module information. For performance reasons the processor will check only the first pulse in the hit raw data vector.

For a developement decision, when the isSubset parameter is set to be false, the processor will create NO OUTPUT COLLECTION. This is not a bug: the subset collection is the correct way, within LCIO, to store a copy of unmodified original data. If the isSubset parameter is set to false the developer assumes that the user only wants to flag the original set of hits.

For performance reasons, in case the user requires all the hit and rows of any module to be flagged and/or deselected using the <-1, -1> pair, which is the default behaviour when the user do not specify any value for the SkipRow parameter, the processor will simply loop over all the hits flagging them if such behaviour is required, otherwise skipping all the remaining part of the code, without requiring the GEAR information relative to the Hit.

Authors


Documentation update as of revision 3010


CategoryProcessorDev

MarlinTPC: DevProcessorRowCutApplicationProcessor (last edited 2012-02-13 20:49:17 by StefanoCaiazza)