CMS 3D CMS Logo

CMSSW_4_4_3_patch1/src/PhysicsTools/PatAlgos/plugins/PATObjectSelector.h

Go to the documentation of this file.
00001 //
00002 // $Id: PATObjectSelector.h,v 1.7 2010/06/17 10:08:39 gpetrucc Exp $
00003 //
00004 
00005 #ifndef PhysicsTools_PatAlgos_PATObjectSelector_h
00006 #define PhysicsTools_PatAlgos_PATObjectSelector_h
00007 
00008 #include "DataFormats/Common/interface/RefVector.h"
00009 
00010 #include "CommonTools/UtilAlgos/interface/StringCutObjectSelector.h"
00011 #include "CommonTools/UtilAlgos/interface/SingleObjectSelector.h"
00012 #include "CommonTools/UtilAlgos/interface/ObjectSelector.h"
00013 #include "CommonTools/UtilAlgos/interface/SingleElementCollectionSelector.h"
00014 
00015 #include "DataFormats/PatCandidates/interface/Electron.h"
00016 #include "DataFormats/PatCandidates/interface/Muon.h"
00017 #include "DataFormats/PatCandidates/interface/Tau.h"
00018 #include "DataFormats/PatCandidates/interface/Photon.h"
00019 #include "DataFormats/PatCandidates/interface/Jet.h"
00020 #include "DataFormats/PatCandidates/interface/MET.h"
00021 #include "DataFormats/PatCandidates/interface/PFParticle.h"
00022 #include "DataFormats/PatCandidates/interface/GenericParticle.h"
00023 #include "DataFormats/PatCandidates/interface/TriggerObjectStandAlone.h"
00024 #include "DataFormats/PatCandidates/interface/CompositeCandidate.h"
00025 
00026 #include "PhysicsTools/PatAlgos/plugins/PATJetSelector.h"
00027 
00028 #include <vector>
00029 
00030 
00031 namespace pat {
00032 
00033 
00034   typedef SingleObjectSelector<
00035               std::vector<Electron>,
00036               StringCutObjectSelector<Electron>
00037           > PATElectronSelector;
00038   typedef SingleObjectSelector<
00039               std::vector<Muon>,
00040               StringCutObjectSelector<Muon>
00041           > PATMuonSelector;
00042   typedef SingleObjectSelector<
00043               std::vector<Tau>,
00044               StringCutObjectSelector<Tau>
00045           > PATTauSelector;
00046   typedef SingleObjectSelector<
00047               std::vector<Photon>,
00048               StringCutObjectSelector<Photon>
00049           > PATPhotonSelector;
00050   /* typedef SingleObjectSelector< */
00051   /*             std::vector<Jet>, */
00052   /*             StringCutObjectSelector<Jet> */
00053   /*         > PATJetSelector; */
00054   typedef SingleObjectSelector<
00055               std::vector<MET>,
00056               StringCutObjectSelector<MET>
00057           > PATMETSelector;
00058   typedef SingleObjectSelector<
00059               std::vector<PFParticle>,
00060               StringCutObjectSelector<PFParticle>
00061           > PATPFParticleSelector;
00062   typedef SingleObjectSelector<
00063               std::vector<CompositeCandidate>,
00064               StringCutObjectSelector<CompositeCandidate, true> // true => lazy parsing => get all methods of daughters
00065           > PATCompositeCandidateSelector;
00066   typedef SingleObjectSelector<
00067               std::vector<TriggerObjectStandAlone>,
00068               StringCutObjectSelector<TriggerObjectStandAlone>
00069           > PATTriggerObjectStandAloneSelector;
00070   typedef SingleObjectSelector<
00071               std::vector<GenericParticle>,
00072               StringCutObjectSelector<GenericParticle>
00073           > PATGenericParticleSelector;
00074 
00075   typedef SingleObjectSelector<
00076               std::vector<Electron>,
00077               StringCutObjectSelector<Electron>,
00078               edm::RefVector<std::vector<Electron> >
00079           > PATElectronRefSelector;
00080   typedef SingleObjectSelector<
00081               std::vector<Muon>,
00082               StringCutObjectSelector<Muon>,
00083               edm::RefVector<std::vector<Muon> >
00084           > PATMuonRefSelector;
00085   typedef SingleObjectSelector<
00086               std::vector<Tau>,
00087               StringCutObjectSelector<Tau>,
00088               edm::RefVector<std::vector<Tau> >
00089           > PATTauRefSelector;
00090   typedef SingleObjectSelector<
00091               std::vector<Photon>,
00092               StringCutObjectSelector<Photon>,
00093               edm::RefVector<std::vector<Photon> >
00094           > PATPhotonRefSelector;
00095   typedef SingleObjectSelector<
00096               std::vector<Jet>,
00097               StringCutObjectSelector<Jet>,
00098               edm::RefVector<std::vector<Jet> >
00099           > PATJetRefSelector;
00100   typedef SingleObjectSelector<
00101               std::vector<MET>,
00102               StringCutObjectSelector<MET>,
00103               edm::RefVector<std::vector<MET> >
00104           > PATMETRefSelector;
00105   typedef SingleObjectSelector<
00106               std::vector<PFParticle>,
00107               StringCutObjectSelector<PFParticle>,
00108               edm::RefVector<std::vector<PFParticle> >
00109           > PATPFParticleRefSelector;
00110   typedef SingleObjectSelector<
00111               std::vector<GenericParticle>,
00112               StringCutObjectSelector<GenericParticle>,
00113               edm::RefVector<std::vector<GenericParticle> >
00114           > PATGenericParticleRefSelector;
00115   typedef SingleObjectSelector<
00116               std::vector<CompositeCandidate>,
00117               StringCutObjectSelector<CompositeCandidate, true>, // true => lazy parsing => get all methods of daughters
00118               edm::RefVector<std::vector<CompositeCandidate> >
00119           > PATCompositeCandidateRefSelector;
00120 
00121 
00122 
00123 }
00124 
00125 #endif