CMS 3D CMS Logo

/data/doxygen/doxygen-1.7.3/gen/CMSSW_4_2_8/src/RecoParticleFlow/PFProducer/interface/PFConversionAlgo.h

Go to the documentation of this file.
00001 #ifndef PFProducer_PFConversionAlgo_H
00002 #define PFProducer_PFConversionAlgo_H
00003 
00004 #include "DataFormats/ParticleFlowReco/interface/PFBlockFwd.h"
00005 #include "DataFormats/ParticleFlowReco/interface/PFBlock.h"
00006 #include "DataFormats/ParticleFlowCandidate/interface/PFCandidate.h"
00007 #include "TMVA/Reader.h"
00008 #include <iostream>
00009 
00010 namespace reco { 
00011   class PFCandidate;
00012 }
00013 
00014 class PFConversionAlgo {
00015  public:
00016   
00017   //constructor
00018   //  PFConversionAlgo(const reco::PFBlockRef&  blockRef, std::vector<bool>&  active);
00019   PFConversionAlgo();
00020                 
00021   
00022   //destructor
00023   ~PFConversionAlgo(){;};
00024   
00025   //check candidate validity
00026   bool isConversionValidCandidate(const reco::PFBlockRef&  blockRef,
00027                                 std::vector<bool>&  active)
00028   {
00029     isvalid_=false;
00030     runPFConversion(blockRef,active);
00031     return isvalid_;
00032   };
00033   
00034   //get electron PFCandidate
00035   std::vector<reco::PFCandidate> conversionCandidates() {return conversionCandidate_;};
00036   
00037   
00038  private: 
00039   //  typedef  std::vector<std::pair< unsigned int, std::vector<unsigned int> > > AssMap;
00040 
00041   typedef  std::multimap<unsigned, std::vector<unsigned> > AssMap;
00042 
00043   void runPFConversion(const reco::PFBlockRef&  blockRef, std::vector<bool>& active);
00044 
00045   //void SetIDOutputs(const reco::PFBlock& block);
00046 
00047   bool setLinks(const reco::PFBlockRef& blockRef, AssMap& assToConv,  std::vector<bool>& active );
00048   void setCandidates(const reco::PFBlockRef& blockref, AssMap& assToConv);
00049   void setActive(const reco::PFBlockRef& blockRef, AssMap& assToConv,std::vector<bool>& active ) ;
00050 
00051   
00052   std::vector<reco::PFCandidate> conversionCandidate_;
00053   bool isvalid_;
00054 };
00055 #endif