CMS 3D CMS Logo

Public Member Functions | Private Attributes

reco::PFBlockElementGsfTrack Class Reference

Track Element. More...

#include <PFBlockElementGsfTrack.h>

Inheritance diagram for reco::PFBlockElementGsfTrack:
reco::PFBlockElement

List of all members.

Public Member Functions

PFBlockElementclone () const
 necessary to have the edm::OwnVector<PFBlockElement> working
void Dump (std::ostream &out=std::cout, const char *tab=" ") const
 print the object inside the element
const GsfPFRecTrackGsftrackPF () const
reco::GsfTrackRef GsftrackRef () const
GsfPFRecTrackRef GsftrackRefPF () const
bool isSecondary () const
 PFBlockElementGsfTrack (const GsfPFRecTrackRef &gsfref, const math::XYZTLorentzVector &Pin, const math::XYZTLorentzVector &Pout)
 PFBlockElementGsfTrack ()
const math::XYZTLorentzVectorPin () const
const math::XYZPointFpositionAtECALEntrance () const
const math::XYZTLorentzVectorPout () const
virtual void setTrackType (TrackType trType, bool value)
 the trackType
virtual bool trackType (TrackType trType) const

Private Attributes

reco::GsfTrackRef GsftrackRef_
 reference to the corresponding GSF track
GsfPFRecTrackRef GsftrackRefPF_
 reference to the corresponding GSF track (transient)
math::XYZTLorentzVector Pin_
 The CorrespondingKFTrackRef is needeed.
math::XYZPointF positionAtECALEntrance_
 position at ECAL entrance
math::XYZTLorentzVector Pout_
unsigned int trackType_

Detailed Description

Track Element.

this class contains a reference to a PFRecTrack

Definition at line 18 of file PFBlockElementGsfTrack.h.


Constructor & Destructor Documentation

reco::PFBlockElementGsfTrack::PFBlockElementGsfTrack ( ) [inline]

Definition at line 21 of file PFBlockElementGsfTrack.h.

Referenced by clone().

{} 
PFBlockElementGsfTrack::PFBlockElementGsfTrack ( const GsfPFRecTrackRef gsfref,
const math::XYZTLorentzVector Pin,
const math::XYZTLorentzVector Pout 
)

Definition at line 13 of file PFBlockElementGsfTrack.cc.

References reco::PFBlockElement::DEFAULT, reco::PFTrajectoryPoint::ECALEntrance, edm::Ref< C, T, F >::isNull(), reco::PFTrajectoryPoint::isValid(), reco::PFTrajectoryPoint::position(), positionAtECALEntrance_, and setTrackType().

                                                                                   : 
  PFBlockElement( GSF ),
  GsftrackRefPF_( gsfref ), 
  GsftrackRef_( gsfref->gsfTrackRef() ),
  Pin_(Pin),
  Pout_(Pout),
  trackType_(0){

  if(gsfref.isNull() )
    throw cms::Exception("NullRef")
      <<" PFBlockElementGsfTrack constructed from a null reference to PFGsfRecTrack.";
  const reco::PFTrajectoryPoint& atECAL 
    = gsfref->extrapolatedPoint( reco::PFTrajectoryPoint::ECALEntrance );
  if( atECAL.isValid() ) 
    positionAtECALEntrance_.SetCoordinates( atECAL.position().x(),
                                            atECAL.position().y(),
                                            atECAL.position().z() );

  
  setTrackType( DEFAULT, true );      
}

Member Function Documentation

PFBlockElement* reco::PFBlockElementGsfTrack::clone ( ) const [inline, virtual]

necessary to have the edm::OwnVector<PFBlockElement> working

Implements reco::PFBlockElement.

Definition at line 27 of file PFBlockElementGsfTrack.h.

References PFBlockElementGsfTrack().

{ return new PFBlockElementGsfTrack(*this); }
void reco::PFBlockElementGsfTrack::Dump ( std::ostream &  out = std::cout,
const char *  tab = " " 
) const [virtual]

print the object inside the element

Reimplemented from reco::PFBlockElement.

const GsfPFRecTrack& reco::PFBlockElementGsfTrack::GsftrackPF ( ) const [inline]

Definition at line 67 of file PFBlockElementGsfTrack.h.

References GsftrackRefPF_.

{ return *GsftrackRefPF_;}
reco::GsfTrackRef reco::PFBlockElementGsfTrack::GsftrackRef ( ) const [inline]
Returns:
reference to the corresponding GsfTrack

Definition at line 53 of file PFBlockElementGsfTrack.h.

References GsftrackRef_.

Referenced by PFElectronAlgo::SetCandidates(), PFElectronAlgo::SetIDOutputs(), and PFElectronAlgo::SetLinks().

                                        {
      return GsftrackRef_;
    }
GsfPFRecTrackRef reco::PFBlockElementGsfTrack::GsftrackRefPF ( ) const [inline]
Returns:
reference to the corresponding PFGsfRecTrack

Definition at line 48 of file PFBlockElementGsfTrack.h.

References GsftrackRefPF_.

Referenced by PFElectronAlgo::isPrimaryTrack(), PFBlockAlgo::link(), and DisplayManager::loadGPFBlocks().

                                           {
      return GsftrackRefPF_;
    }
bool reco::PFBlockElementGsfTrack::isSecondary ( ) const [inline, virtual]

Reimplemented from reco::PFBlockElement.

Definition at line 43 of file PFBlockElementGsfTrack.h.

References reco::PFBlockElement::T_FROM_GAMMACONV, and trackType().

const math::XYZTLorentzVector& reco::PFBlockElementGsfTrack::Pin ( ) const [inline]

Definition at line 69 of file PFBlockElementGsfTrack.h.

References Pin_.

{ return Pin_; }
const math::XYZPointF& reco::PFBlockElementGsfTrack::positionAtECALEntrance ( ) const [inline]
Returns:
position at ECAL entrance

Definition at line 61 of file PFBlockElementGsfTrack.h.

References positionAtECALEntrance_.

Referenced by PFElectronAlgo::SetCandidates(), PFElectronAlgo::SetIDOutputs(), and PFElectronAlgo::SetLinks().

const math::XYZTLorentzVector& reco::PFBlockElementGsfTrack::Pout ( ) const [inline]

Definition at line 70 of file PFBlockElementGsfTrack.h.

References Pout_.

Referenced by PFElectronAlgo::SetIDOutputs(), and PFElectronAlgo::SetLinks().

{ return Pout_; }
virtual void reco::PFBlockElementGsfTrack::setTrackType ( TrackType  trType,
bool  value 
) [inline, virtual]

the trackType

Reimplemented from reco::PFBlockElement.

Definition at line 38 of file PFBlockElementGsfTrack.h.

References trackType_.

Referenced by PFBlockElementGsfTrack().

                                                            {
      if(value)  trackType_ = trackType_ | (1<<trType);
      else trackType_ = trackType_ ^ (1<<trType);
    }
virtual bool reco::PFBlockElementGsfTrack::trackType ( TrackType  trType) const [inline, virtual]
Returns:
tracktype

Reimplemented from reco::PFBlockElement.

Definition at line 33 of file PFBlockElementGsfTrack.h.

References trackType_.

Referenced by isSecondary(), PFBlockAlgo::link(), and PFElectronAlgo::SetLinks().

                                                   { 
      return (trackType_>>trType) & 1; 
    }

Member Data Documentation

reference to the corresponding GSF track

Definition at line 79 of file PFBlockElementGsfTrack.h.

Referenced by GsftrackRef().

reference to the corresponding GSF track (transient)

Definition at line 76 of file PFBlockElementGsfTrack.h.

Referenced by GsftrackPF(), and GsftrackRefPF().

The CorrespondingKFTrackRef is needeed.

Definition at line 83 of file PFBlockElementGsfTrack.h.

Referenced by Pin().

position at ECAL entrance

Definition at line 89 of file PFBlockElementGsfTrack.h.

Referenced by PFBlockElementGsfTrack(), and positionAtECALEntrance().

Definition at line 84 of file PFBlockElementGsfTrack.h.

Referenced by Pout().

Definition at line 85 of file PFBlockElementGsfTrack.h.

Referenced by setTrackType(), and trackType().