1 #ifndef EgammaCandidates_Conversion_h 2 #define EgammaCandidates_Conversion_h 50 const std::vector<math::XYZPointF>& trackPositionAtEcal ,
52 const std::vector<reco::CaloClusterPtr> & matchingBC,
54 const std::vector<math::XYZPointF> & innPoint,
55 const std::vector<math::XYZVectorF> & trackPin ,
56 const std::vector<math::XYZVectorF> & trackPout,
65 const std::vector<reco::TrackRef>& tr,
66 const std::vector<math::XYZPointF>& trackPositionAtEcal ,
68 const std::vector<reco::CaloClusterPtr> & matchingBC,
70 const std::vector<math::XYZPointF> & innPoint,
71 const std::vector<math::XYZVectorF> & trackPin ,
72 const std::vector<math::XYZVectorF> & trackPout,
80 const std::vector<reco::TrackRef>& tr,
95 std::vector<edm::RefToBase<reco::Track> >
const&
tracks()
const ;
235 case mixed:
return "mixed";
236 case pflow:
return "pflow";
243 if(
int(a) <
int(
algoSize) &&
int(a)>0)
return algoNames[
int(a)];
const reco::Vertex & conversionVertex() const
returns the reco conversion vertex
static const std::string algoNames[]
std::vector< math::XYZVectorF > theTrackPout_
P_out of tracks.
ConversionAlgorithm algo() const
bool quality(ConversionQuality q) const
void setQuality(ConversionQuality q, bool b)
const std::vector< Measurement1DFloat > & dlClosestHitToVtx() const
Vector of signed decay length with uncertainty from nearest hit on track to the conversion vtx positi...
reco::CaloClusterPtrVector caloCluster_
vector pointer to a/multiple seed CaloCluster(s)
double zOfPrimaryVertexFromTracks(const math::XYZPoint &myBeamSpot=math::XYZPoint()) const
double distOfMinimumApproach() const
std::vector< double > tracksSigned_d0() const
signed transverse impact parameter for each track
double lxy(const math::XYZPoint &myBeamSpot=math::XYZPoint()) const
static ConversionAlgorithm algoByName(const std::string &name)
double pairCotThetaSeparation() const
Delta cot(Theta) where Theta is the angle in the (y,z) plane between the two tracks. Original tracks are used.
void setConversionAlgorithm(const ConversionAlgorithm a, bool set=true)
Conversion Track algorithm/provenance.
double pairInvariantMass() const
if nTracks=2 returns the pair invariant mass. Original tracks are used here
math::XYZVectorF refittedPairMomentum() const
Conversion tracks momentum from the tracks refitted with vertex constraint.
uint8_t nSharedHits_
number of shared hits between tracks
double EoverPrefittedTracks() const
const std::vector< math::XYZVectorF > & tracksPout() const
Vector of track momentum measured at the outermost hit.
double MVAout() const
get the value of the TMVA output
ROOT::Math::DisplacementVector3D< ROOT::Math::Cartesian3D< float > > XYZVectorF
spatial vector with cartesian internal representation
const std::vector< reco::CaloClusterPtr > & bcMatchingWithTracks() const
std::vector< float > theOneLegMVA_
vectors of TMVA outputs from pflow for one leg conversions
std::string algoName() const
std::vector< math::XYZPointF > theTrackInnerPosition_
P_in of tracks.
std::vector< float > const oneLegMVA()
get the MVS output from PF for one leg conversions
unsigned int nTracks() const
Number of tracks= 0,1,2.
Conversion * clone() const
returns a clone of the candidate
math::XYZTLorentzVectorF refittedPair4Momentum() const
Conversion track pair 4-momentum from the tracks refitted with vertex constraint. ...
const std::vector< math::XYZVectorF > & tracksPin() const
Vector of track momentum measured at the innermost hit.
uint8_t algorithm_
conversion algorithm/provenance
const std::vector< math::XYZPointF > & tracksInnerPosition() const
Vector containing the position of the innermost hit of each track.
math::XYZVectorF pairMomentum() const
Conversion tracks momentum from the tracks inner momentum.
const std::vector< math::XYZPointF > & ecalImpactPosition() const
uint8_t nSharedHits() const
number of shared hits btw the two track
double dEtaTracksAtEcal() const
double dz(const math::XYZPoint &myBeamSpot=math::XYZPoint()) const
XYZPointD XYZPoint
point in space with cartesian internal representation
std::vector< math::XYZVectorF > theTrackPin_
P_in of tracks.
float theMVAout_
TMVA output.
std::vector< reco::CaloClusterPtr > theMatchingBCs_
Clusters mathing the tracks (these are not the seeds)
double lz(const math::XYZPoint &myBeamSpot=math::XYZPoint()) const
void setMVAout(const float &mva)
set the value of the TMVA output
float theMinDistOfApproach_
Distance of min approach of the two tracks.
std::vector< math::XYZPointF > thePositionAtEcal_
position at the ECAl surface of the track extrapolation
void setOneLegMVA(const std::vector< float > &mva)
set the MVS output from PF for one leg conversions
std::vector< edm::RefToBase< reco::Track > > trackToBaseRefs_
vector Track RefToBase
const std::vector< uint8_t > & nHitsBeforeVtx() const
Vector of the number of hits before the vertex along each track trajector.
std::vector< Measurement1DFloat > dlClosestHitToVtx_
signed decay length and uncertainty from nearest hit on track to conversion vertex ...
double dPhiTracksAtEcal() const
ROOT::Math::LorentzVector< ROOT::Math::PxPyPzE4D< float > > XYZTLorentzVectorF
Lorentz vector with cylindrical internal representation using pseudorapidity.
reco::Vertex theConversionVertex_
Fitted Kalman conversion vertex.
bool isConverted() const
Bool flagging objects having track size >0.
std::vector< uint8_t > nHitsBeforeVtx_
number of hits before the vertex on each trackerOnly
reco::CaloClusterPtrVector caloCluster() const
Pointer to CaloCluster (foe Egamma Conversions it points to a SuperCluster)
void setMatchingSuperCluster(const reco::CaloClusterPtrVector &sc)
double dPhiTracksAtVtx() const
std::vector< edm::RefToBase< reco::Track > > const & tracks() const
vector of track to base references
double dxy(const math::XYZPoint &myBeamSpot=math::XYZPoint()) const