00001 #ifndef Demo_PFRootEvent_FWLiteJetProducer_h 00002 #define Demo_PFRootEvent_FWLiteJetProducer_h 00003 00004 #include "DataFormats/JetReco/interface/BasicJet.h" 00005 #include "DataFormats/JetReco/interface/CaloJet.h" 00006 #include "DataFormats/JetReco/interface/GenJet.h" 00007 #include "DataFormats/JetReco/interface/BasicJetCollection.h" 00008 #include "DataFormats/JetReco/interface/CaloJetCollection.h" 00009 #include "DataFormats/JetReco/interface/GenJetCollection.h" 00010 #include "DataFormats/RecoCandidate/interface/RecoCaloTowerCandidate.h" 00011 #include "RecoParticleFlow/PFRootEvent/interface/CMSIterativeConeAlgorithm.h" 00012 #include "RecoParticleFlow/PFRootEvent/interface/CMSMidpointAlgorithm.h" 00013 #include "RecoParticleFlow/PFRootEvent/interface/FastJetFWLiteWrapper.h" 00014 #include "RecoParticleFlow/PFRootEvent/interface/JetRecoTypes.h" 00015 00016 // #include "FWCore/Framework/interface/OrphanHandle.h" 00017 #include "DataFormats/Common/interface/OrphanHandle.h" 00018 // #include "DataFormats/Common/interface/ProductID.h" 00019 #include "DataFormats/Provenance/interface/ProductID.h" 00020 00021 class Utils; 00022 class FWLiteJetProducer{ 00027 public: 00029 FWLiteJetProducer(); 00031 ~FWLiteJetProducer(); 00034 void applyCuts( const reco::CandidatePtrVector& Candidates, 00035 JetReco::InputCollection* input ); 00037 void makeIterativeConeJets(const JetReco::InputCollection& fInput, 00038 JetReco::OutputCollection* fOutput); 00040 void makeFastJets(const JetReco::InputCollection& fInput, 00041 JetReco::OutputCollection* fOutput); 00043 void makeMidpointJets(const JetReco::InputCollection& fInput, 00044 JetReco::OutputCollection* fOutput); 00045 void print(); 00046 void updateParameter(); 00048 CMSIterativeConeAlgorithm* algoIC_; 00049 FastJetFWLiteWrapper algoF_; 00050 CMSMidpointAlgorithm* algoMC_; 00051 00052 // Get methods -------------------------------------------- 00054 double getmEtInputCut(){return mEtInputCut_;} 00056 double getmEInputCut(){return mEInputCut_;} 00058 double getSeedThreshold(){return seedThreshold_;} 00060 double getConeRadius(){return coneRadius_;} 00062 double getConeAreaFraction(){return coneAreaFraction_;} 00064 int getMaxPairSize(){return maxPairSize_;} 00066 int getMaxIterations(){return maxIterations_;} 00068 double getOverlapThreshold(){return overlapThreshold_;} 00070 double getPtMin (){return ptMin_ ;} 00072 double getRParam(){return rparam_;} 00074 bool getDebug(){return debug_;} 00075 00076 // Set methods -------------------------------------------- 00078 void setmEtInputCut (double amEtInputCut){mEtInputCut_=amEtInputCut;} 00080 void setmEInputCut (double amEInputCut){mEInputCut_=amEInputCut;} 00082 void setSeedThreshold(double aSeedThreshold) {seedThreshold_=aSeedThreshold;} 00084 void setConeRadius(double aConeRadius) {coneRadius_=aConeRadius;} 00086 void setConeAreaFraction(double aConeAreaFraction) {coneAreaFraction_=aConeAreaFraction;} 00088 void setMaxPairSize(int aMaxPairSize) {maxPairSize_=aMaxPairSize;} 00090 void setMaxIterations(int amaxIteration) {maxIterations_=amaxIteration;} 00092 void setOverlapThreshold(double aOverlapThreshold) {overlapThreshold_=aOverlapThreshold;} 00093 void setPtMin (double aPtMin){ptMin_=aPtMin;} 00094 void setRParam (double aRparam){rparam_=aRparam;} 00095 void setDebug(bool aDebug){debug_=aDebug;} 00096 00097 // jets parameters ---------------------------------------- 00098 private: 00100 double mEtInputCut_; 00102 double mEInputCut_ ; 00104 double seedThreshold_; 00106 double coneRadius_; 00108 double coneAreaFraction_; 00110 int maxPairSize_; 00112 int maxIterations_; 00114 double overlapThreshold_; 00115 double ptMin_; 00116 double rparam_; 00117 bool debug_; 00118 00119 }; 00120 #endif