public class PfoSelector extends Driver
A large number of selection cuts can be adjusted to control the selection behavior for charged particles, neutral hadrons and photons. PFOs going into the far forward region of the detector are treated separately, due to the expected higher occupancy in that region.
This is an adapted version of the Marlin processor CLICPfoSelector, written by Mark Thomson.
Modifier and Type | Class and Description |
---|---|
private class |
PfoSelector.ClusterTimes
A container to hold results from the cluster times calculation.
|
class |
PfoSelector.pfoComparator
Class to compare ReconstructedParticles first based on
their type and then on their energy.
|
private class |
PfoSelector.TravelTime
A container to hold the traveling time of a particle.
|
Driver.AbortRunException, Driver.NextEventException
HLEVEL_DEFAULT, HLEVEL_FULL, HLEVEL_HIGH, HLEVEL_NORMAL, HLEVEL_OFF
Constructor and Description |
---|
PfoSelector() |
Modifier and Type | Method and Description |
---|---|
protected void |
detectorChanged(Detector detector)
Called by the framework before process method when the detector geometry changes.
|
protected PfoSelector.ClusterTimes |
getClusterTimes(Cluster cluster)
Calculates an energy weighted mean time of the cluster
and the number of hits in the cluster.
|
protected void |
print(int histogramLevel,
String message)
Helper method to write a message to the output stream if the
histogram level set for the driver is equal or higher than
the given value.
|
protected void |
print(int histogramLevel,
String message,
boolean error)
Helper method to write a message to the output stream if the
histogram level set for the driver is equal or higher than
the given value.
|
protected void |
process(EventHeader event)
Called by the framework to process an event.
|
void |
setChargedPfoLooseTimingCut(double chargedPfoLooseTimingCut) |
void |
setChargedPfoNegativeLooseTimingCut(double chargedPfoNegativeLooseTimingCut) |
void |
setChargedPfoNegativeTightTimingCut(double chargedPfoNegativeTightTimingCut) |
void |
setChargedPfoPtCut(double chargedPfoPtCut) |
void |
setChargedPfoPtCutForLooseTiming(double chargedPfoPtCutForLooseTiming) |
void |
setChargedPfoTightTimingCut(double chargedPfoTightTimingCut) |
void |
setCheckKaonCorrection(boolean checkKaonCorrection) |
void |
setCheckProtonCorrection(boolean checkProtonCorrection) |
void |
setClusterLessPfoTrackTimeCut(double clusterLessPfoTrackTimeCut) |
void |
setCorrectHitTimesForTimeOfFlight(boolean correctHitTimesForTimeOfFlight) |
void |
setFarForwardCosTheta(double farForwardCosTheta) |
void |
setForwardCosThetaForHighEnergyNeutralHadrons(double forwardCosThetaForHighEnergyNeutralHadrons) |
void |
setForwardHighEnergyNeutralHadronsEnergy(double forwardHighEnergyNeutralHadronsEnergy) |
void |
setHCalBarrelLooseTimingCut(double hCalBarrelLooseTimingCut) |
void |
setHCalBarrelTightTimingCut(double hCalBarrelTightTimingCut) |
void |
setHCalEndCapTimingFactor(double hCalEndCapTimingFactor) |
void |
setInputPfoCollection(String inputPfoCollection) |
void |
setKeepKShorts(boolean keepKShorts) |
void |
setMaxMomentumForClusterLessPfos(double maxMomentumForClusterLessPfos) |
void |
setMinECalHitsForTiming(int minECalHitsForTiming) |
void |
setMinHCalEndCapHitsForTiming(int minHCalEndCapHitsForTiming) |
void |
setMinimumEnergyForNeutronTiming(double minimumEnergyForNeutronTiming) |
void |
setMinMomentumForClusterLessPfos(double minMomentumForClusterLessPfos) |
void |
setMinPtForClusterLessPfos(double minPtForClusterLessPfos) |
void |
setNeutralFarForwardLooseTimingCut(double neutralFarForwardLooseTimingCut) |
void |
setNeutralFarForwardTightTimingCut(double neutralFarForwardTightTimingCut) |
void |
setNeutralHadronBarrelPtCutForLooseTiming(double neutralHadronBarrelPtCutForLooseTiming) |
void |
setNeutralHadronLooseTimingCut(double neutralHadronLooseTimingCut) |
void |
setNeutralHadronPtCut(double neutralHadronPtCut) |
void |
setNeutralHadronPtCutForLooseTiming(double neutralHadronPtCutForLooseTiming) |
void |
setNeutralHadronTightTimingCut(double neutralHadronTightTimingCut) |
void |
setOutputPfoCollection(String outputPfoCollection) |
void |
setPfoEnergyToDisplay(double pfoEnergyToDisplay) |
void |
setPhotonFarForwardLooseTimingCut(double photonFarForwardLooseTimingCut) |
void |
setPhotonFarForwardTightTimingCut(double photonFarForwardTightTimingCut) |
void |
setPhotonLooseTimingCut(double photonLooseTimingCut) |
void |
setPhotonPtCut(double photonPtCut) |
void |
setPhotonPtCutForLooseTiming(double photonPtCutForLooseTiming) |
void |
setPhotonTightTimingCut(double photonTightTimingCut) |
void |
setPtCutForTightTiming(double ptCutForTightTiming) |
void |
setUseClusterLessPfos(boolean useClusterLessPfos) |
void |
setUseNeutronTiming(boolean useNeutronTiming) |
protected PfoSelector.TravelTime |
timeAtEcal(Track track)
Calculates the time it took the track to reach the face
of the calorimeter.
|
add, clearStatistics, contains, drivers, endOfData, getConditionsManager, getHistogramLevel, getLogger, getName, getRandom, printStatistics, processChildren, remove, resume, setHistogramLevel, setLogLevel, setRandom, startOfData, suspend
protected String inputPfoCollection
protected String outputPfoCollection
protected boolean correctHitTimesForTimeOfFlight
protected boolean checkProtonCorrection
protected boolean checkKaonCorrection
protected boolean keepKShorts
protected boolean useNeutronTiming
protected boolean useClusterLessPfos
protected double pfoEnergyToDisplay
protected double minimumEnergyForNeutronTiming
protected double forwardCosThetaForHighEnergyNeutralHadrons
protected double forwardHighEnergyNeutralHadronsEnergy
protected double farForwardCosTheta
protected double ptCutForTightTiming
protected double photonPtCut
protected double photonPtCutForLooseTiming
protected double photonLooseTimingCut
protected double photonTightTimingCut
protected double chargedPfoPtCut
protected double chargedPfoPtCutForLooseTiming
protected double chargedPfoLooseTimingCut
protected double chargedPfoTightTimingCut
protected double chargedPfoNegativeLooseTimingCut
protected double chargedPfoNegativeTightTimingCut
protected double neutralHadronPtCut
protected double neutralHadronPtCutForLooseTiming
protected double neutralHadronLooseTimingCut
protected double neutralHadronTightTimingCut
protected double neutralFarForwardLooseTimingCut
protected double neutralFarForwardTightTimingCut
protected double photonFarForwardLooseTimingCut
protected double photonFarForwardTightTimingCut
protected double hCalBarrelLooseTimingCut
protected double hCalBarrelTightTimingCut
protected double hCalEndCapTimingFactor
protected double neutralHadronBarrelPtCutForLooseTiming
protected int minECalHitsForTiming
protected int minHCalEndCapHitsForTiming
protected double minMomentumForClusterLessPfos
protected double maxMomentumForClusterLessPfos
protected double minPtForClusterLessPfos
protected double clusterLessPfoTrackTimeCut
protected double ecalRadius
protected double ecalZ
protected double ecalPhi0
protected int ecalNumSides
protected HelixSwimmer helixSwimmer
protected List<Calorimeter.CalorimeterType> emCalorimeters
protected void detectorChanged(Detector detector)
Driver
detectorChanged
in class Driver
protected void process(EventHeader event)
Driver
super.process(event)
to cause the child processes to be executed.
In addition the process event call can throw some special exceptions:
process
in class Driver
event
- The event to be processedDriver.NextEventException
,
Driver.AbortRunException
public void setInputPfoCollection(String inputPfoCollection)
public void setOutputPfoCollection(String outputPfoCollection)
public void setCorrectHitTimesForTimeOfFlight(boolean correctHitTimesForTimeOfFlight)
public void setCheckKaonCorrection(boolean checkKaonCorrection)
public void setCheckProtonCorrection(boolean checkProtonCorrection)
public void setKeepKShorts(boolean keepKShorts)
public void setUseNeutronTiming(boolean useNeutronTiming)
public void setUseClusterLessPfos(boolean useClusterLessPfos)
public void setPfoEnergyToDisplay(double pfoEnergyToDisplay)
public void setMinimumEnergyForNeutronTiming(double minimumEnergyForNeutronTiming)
public void setForwardCosThetaForHighEnergyNeutralHadrons(double forwardCosThetaForHighEnergyNeutralHadrons)
public void setForwardHighEnergyNeutralHadronsEnergy(double forwardHighEnergyNeutralHadronsEnergy)
public void setFarForwardCosTheta(double farForwardCosTheta)
public void setPtCutForTightTiming(double ptCutForTightTiming)
public void setPhotonPtCut(double photonPtCut)
public void setPhotonPtCutForLooseTiming(double photonPtCutForLooseTiming)
public void setPhotonLooseTimingCut(double photonLooseTimingCut)
public void setPhotonTightTimingCut(double photonTightTimingCut)
public void setChargedPfoPtCut(double chargedPfoPtCut)
public void setChargedPfoPtCutForLooseTiming(double chargedPfoPtCutForLooseTiming)
public void setChargedPfoLooseTimingCut(double chargedPfoLooseTimingCut)
public void setChargedPfoTightTimingCut(double chargedPfoTightTimingCut)
public void setChargedPfoNegativeLooseTimingCut(double chargedPfoNegativeLooseTimingCut)
public void setChargedPfoNegativeTightTimingCut(double chargedPfoNegativeTightTimingCut)
public void setNeutralHadronPtCut(double neutralHadronPtCut)
public void setNeutralHadronPtCutForLooseTiming(double neutralHadronPtCutForLooseTiming)
public void setNeutralHadronLooseTimingCut(double neutralHadronLooseTimingCut)
public void setNeutralHadronTightTimingCut(double neutralHadronTightTimingCut)
public void setNeutralFarForwardLooseTimingCut(double neutralFarForwardLooseTimingCut)
public void setNeutralFarForwardTightTimingCut(double neutralFarForwardTightTimingCut)
public void setPhotonFarForwardLooseTimingCut(double photonFarForwardLooseTimingCut)
public void setPhotonFarForwardTightTimingCut(double photonFarForwardTightTimingCut)
public void setHCalBarrelLooseTimingCut(double hCalBarrelLooseTimingCut)
public void setHCalBarrelTightTimingCut(double hCalBarrelTightTimingCut)
public void setHCalEndCapTimingFactor(double hCalEndCapTimingFactor)
public void setNeutralHadronBarrelPtCutForLooseTiming(double neutralHadronBarrelPtCutForLooseTiming)
public void setMinECalHitsForTiming(int minECalHitsForTiming)
public void setMinHCalEndCapHitsForTiming(int minHCalEndCapHitsForTiming)
public void setMinMomentumForClusterLessPfos(double minMomentumForClusterLessPfos)
public void setMaxMomentumForClusterLessPfos(double maxMomentumForClusterLessPfos)
public void setMinPtForClusterLessPfos(double minPtForClusterLessPfos)
public void setClusterLessPfoTrackTimeCut(double clusterLessPfoTrackTimeCut)
protected PfoSelector.TravelTime timeAtEcal(Track track)
track
- The track which travel time should be calculatedprotected PfoSelector.ClusterTimes getClusterTimes(Cluster cluster)
cluster
- The cluster to be analysedprotected void print(int histogramLevel, String message)
histogramLevel
- The level at which the message is printedmessage
- The message, which will be printed to the streamprotected void print(int histogramLevel, String message, boolean error)
histogramLevel
- The level at which the message is printedmessage
- The message, which will be printed to the streamerror
- If true, writes to error stream instead of standardCopyright © 2016 Linear Collider Detector (LCD). All rights reserved.