CMS 3D CMS Logo

/data/refman/pasoursint/CMSSW_5_3_0/src/DataFormats/EgammaTrackReco/interface/ConversionTrack.h

Go to the documentation of this file.
00001 //--------------------------------------------------------------------------------------------------
00002 // $Id: ConversionTrack.h,v 1.6 2010/11/22 01:54:46 bendavid Exp $
00003 //
00004 // ConversionTrack
00005 //
00006 // Wrapper class holding a pointer to reco::Track plus some various arbitration flags used to
00007 // keep track of overlaps in photon conversion reconstruction.  This class is intended to be used
00008 // to build mixed collections of Track and GsfTracks from different sources and reconstruction
00009 // algorithms to be used for inclusive conversion reconstruction.
00010 //
00011 // Authors: J.Bendavid
00012 //--------------------------------------------------------------------------------------------------
00013 
00014 #ifndef EgammaReco_ConversionTrack_h
00015 #define EgammaReco_ConversionTrack_h
00016 
00017 #include "DataFormats/TrackReco/interface/TrackFwd.h"
00018 
00019 class Trajectory;
00020 namespace reco
00021 {
00022   class ConversionTrack
00023   {
00024     public:
00025       ConversionTrack() : isTrackerOnly_(false), isArbitratedEcalSeeded_(false), isArbitratedMerged_(false),
00026                           isArbitratedMergedEcalGeneral_(false) {}
00027       ConversionTrack(const TrackBaseRef &trk) : 
00028         track_(trk), isTrackerOnly_(false), isArbitratedEcalSeeded_(false), isArbitratedMerged_(false),
00029         isArbitratedMergedEcalGeneral_(false) {}
00030       virtual ~ConversionTrack() {}
00031     
00032       const reco::Track      *track()                           const { return track_.get();         }
00033       const TrackBaseRef     &trackRef()                        const { return track_;               }
00034       const edm::Ref<std::vector<Trajectory> > &trajRef()       const { return traj_;                }
00035       void                    setTrajRef(edm::Ref<std::vector<Trajectory> > tr) { traj_ = tr;        }
00036       void                    setIsTrackerOnly(bool b)                { isTrackerOnly_ = b;          }
00037       void                    setIsArbitratedEcalSeeded(bool b)       { isArbitratedEcalSeeded_ = b; }      
00038       void                    setIsArbitratedMerged(bool b)           { isArbitratedMerged_ = b;     }
00039       void                    setIsArbitratedMergedEcalGeneral(bool b) { isArbitratedMergedEcalGeneral_ = b; }      
00040       bool                    isTrackerOnly() const                   { return isTrackerOnly_;}
00041       bool                    isArbitratedEcalSeeded() const          { return isArbitratedEcalSeeded_;}
00042       bool                    isArbitratedMerged() const              { return isArbitratedMerged_;}
00043       bool                    isArbitratedMergedEcalGeneral() const   { return isArbitratedMergedEcalGeneral_;}
00044 
00045 
00046 
00047 
00048     private:
00049       TrackBaseRef        track_; //ptr to track
00050       edm::Ref<std::vector<Trajectory> > traj_;  //reference to a trajectory
00051       bool                isTrackerOnly_; //from general tracks collection
00052       bool                isArbitratedEcalSeeded_; //from in out or out-in ecal-seeded collections (arbitrated)
00053       bool                isArbitratedMerged_; //is arbitrated among all input collections
00054       bool                isArbitratedMergedEcalGeneral_; //is arbitrated among ecal-seeded and generalTracks     
00055   };
00056 }
00057 #endif