LCFIVertex  0.7.2
Public Member Functions | Protected Member Functions | Protected Attributes | List of all members
RPCutProcessor Class Reference

Cuts ReconstuctedParticles(RPs) from a collection (or from a list of RPs held by another RP) based on several cut criteria. More...

#include <RPCutProcessor.h>

Inheritance diagram for RPCutProcessor:
Inheritance graph
[legend]
Collaboration diagram for RPCutProcessor:
Collaboration graph
[legend]

Public Member Functions

virtual Processor * newProcessor ()
 
virtual void init ()
 
virtual void processRunHeader (LCRunHeader *run)
 
virtual void processEvent (LCEvent *evt)
 
virtual void check (LCEvent *evt)
 
virtual void end ()
 

Protected Member Functions

bool _Chi2OverDOFFail (ReconstructedParticle *RPTrack)
 
bool _D0Fail (ReconstructedParticle *RPTrack)
 
bool _D0ErrFail (ReconstructedParticle *RPTrack)
 
bool _Z0Fail (ReconstructedParticle *RPTrack)
 
bool _Z0ErrFail (ReconstructedParticle *RPTrack)
 
bool _PTFail (ReconstructedParticle *RPTrack)
 
bool _DetectorHitsFail (ReconstructedParticle *RPTrack, std::map< std::string, int > SubdetectorIndex)
 
bool _MCPIDFail (lcio::ReconstructedParticle *RPTrack, UTIL::LCRelationNavigator *pMCRelationNavigator)
 
bool _BadParametersFail (lcio::ReconstructedParticle *RPTrack)
 
bool _MCVertexFail (lcio::ReconstructedParticle *RPTrack, UTIL::LCRelationNavigator *pMCRelationNavigator)
 

Protected Attributes

std::string _InRCPColName
 
std::string _TrackColName
 
std::string _OutRCPColName
 
bool _WriteNewCollection
 
bool _SubParticleLists
 
bool _Chi2OverDOFEnable
 
bool _Chi2OverDOFCutLowerThan
 
float _Chi2OverDOFCutValue
 
bool _D0Enable
 
bool _D0CutLowerThan
 
float _D0CutValue
 
bool _D0ErrEnable
 
bool _D0ErrCutLowerThan
 
float _D0ErrCutValue
 
bool _Z0Enable
 
bool _Z0CutLowerThan
 
float _Z0CutValue
 
bool _Z0ErrEnable
 
bool _Z0ErrCutLowerThan
 
float _Z0ErrCutValue
 
bool _PTEnable
 
bool _PTCutLowerThan
 
float _PTCutValue
 
bool _MonteCarloPIDEnable
 
std::vector< int > _MonteCarloPIDsToCut
 
std::string _MonteCarloRelationColName
 
bool _BadParametersEnable
 
bool _DetectorHitsEnable
 
std::vector< std::string > _DetectorHitsBoundaryDetectorNames
 
std::vector< int > _DetectorHitsBoundaryCuts
 
std::vector< std::string > _DetectorHitsRegion1DetectorNames
 
std::vector< int > _DetectorHitsRegion1Cuts
 
std::vector< std::string > _DetectorHitsRegion2DetectorNames
 
std::vector< int > _DetectorHitsRegion2Cuts
 
std::vector< std::string > _DetectorNames
 
bool _MCVertexEnable
 
const gear::VXDParameters * _VxdPar
 
double _BeamPipeInnerRadius
 
double _BeamPipeOuterRadius
 
double _BeamPipeHalfZ
 
double _CutDistance
 
int _nRun
 
int _nEvt
 

Detailed Description

Cuts ReconstuctedParticles(RPs) from a collection (or from a list of RPs held by another RP) based on several cut criteria.

Input

Name Type Represents
InputRCPCollection ReconstructedParticle Collection to be cut

Output

Name Type Represents
OutputRCPCollection ReconstructedParticle If WriteNewCollection=true contains the RPs that passed the cuts.

Description

Based on several criteria this processor removes RPs from a collection, or if SubParticleLists = true then it removes RPs held by RPs in a collection.
Depending on WriteNewCollection, the Output is either the original collection with the RPs removed, or a new collection with the input collection remaining untouched.
NOTE - A track is cut if its ReconstructedParticle has no Track objects attached.
Most cuts follow a standard set of parameters:

a1_{CutName}Enable If true the cut is enabled
a2_{CutName}CutLowerThan If true RPs with a value lower than the cut value are cut, if false those higher than the cut value are cut.
a3_{CutName}CutValue The value of the cut

(The letter and number index prefixed to each parameter are to ensure they stay together in the output of Marlin -x) The cuts that follow this scheme are:

NameDescription
Chi2OverDOFChi squared over degrees of freedom (Track::gethi2())
D0Track D0 (Track::getD0())
D0ErrD0 Covariance (Track::getCovMatrix()[0])
Z0Track Z0 (Track::getZ0())
Z0ErrZ0 Covariance (Track::getCovMatrix()[9])
PTTrack Pt (rPhi projection of Track::getMomentum())

Subdetector hits

The cut on subdetector hits relies on information in Track::getSubdetectorHitNumbers() this is an array. The processor is told what order the detectors are in this array by parameter "g2_SubDetectorNames" which is the sting names of the detectors in the same order. The other parameters then use these names.

MC PID of Parents

This cut uses MC information provided by the MCParticleRelation collection to cut particles whose parents have a PID in the list provided by parameter "h2_CutPIDS"

Bad parameters cut

If enabled by "i1_BadParametersEnable" this cut removes tracks with nan covariances and parameters.

MC Vertex cut

Experimental MC Cut - most likely removed in next release

Author
Ben Jeffery (b.jef.nosp@m.fery.nosp@m.1@phy.nosp@m.sics.nosp@m..ox.a.nosp@m.c.uk)

Definition at line 75 of file RPCutProcessor.h.


The documentation for this class was generated from the following files: