ViewVC Help
View File | Revision Log | Show Annotations | Root Listing
root/cvsroot/UserCode/CmsHi/JetAnalysis/modifiedFiles/PileUpSubtractor.h
Revision: 1.2
Committed: Thu Sep 15 22:59:09 2011 UTC (13 years, 7 months ago) by yilmaz
Content type: text/plain
Branch: MAIN
CVS Tags: HiForest_V02_85, HiForest_V02_84, HiForest_V02_83, HiForest_V02_82, HiForest_V02_81, HiForest_V02_80, HiForest_V02_79, HiForest_V02_78, HiForest_V02_77, HiForest_V02_76, HiForest_V02_75, HiForest_V02_74, HiForest_V02_73, HiForest_V02_72, HiForest_V02_71, HiForest_V02_70, HiForest_V02_69, HiForest_V02_68, HiForest_V02_67, HiForest_V02_66, HiForest_V02_65, HiForest_V02_64, HiForest_V02_63, HiForest_V02_62, HiForest_V02_61, HiForest_V02_60, HiForest_V02_59, HiForest_V02_58, HiForest_V02_57, HiForest_V02_56, HiForest_V02_55, HiForest_V02_54, HiForest_V02_53, HiForest_V02_52, HiForest_V02_51, HiForest_V02_50, HiForest_V02_49, HiForest_V02_48, HiForest_V02_47, HiForest_V02_46, HiForest_V02_45, HiForest_V02_44, HiForest_V02_43, HiForest_V02_42, HiForest_V02_41, HiForest_V02_40, HiForest_V02_39, HiForest_V02_38, HiForest_V02_37, HiForest_V02_36, HiForest_V02_35, HiForest_V02_34, HiForest_V02_33, HiForest_V02_32, HiForest_V02_31, HiForest_V02_30, HiForest_V02_27, HiForest_V02_26, QM_2012, HiForest_V02_25, HiForest_V02_24, HiForest_V02_23, HiForest_V02_22, HiForest_V02_21, HiForest_V02_20, HiForest_V02_19, HiForest_V02_18, HiForest_V02_17, HiForest_V02_16, HiForest_V02_15, HiForest_V02_14, HiForest_V02_13, HiForest_V02_12, HiForest_V02_11, HiForest_V02_10, HiForest_V02_09, HiForest_V02_08, HiForest_V02_07, HiForest_V02_06, HiForest_V02_05, HiForest_V02_04, HiForest_V02_03, HiForest_V02_02, HiForest_V02_01, HiForest_V02_00, hi44X_02, hi413_03, hi441_1, hi441_0, hi413_11, hi413_10, hi413_09, hi413_08, hi413_07, hi413_06, hi413_05, hi413_04, hi413_02, hi39X_01, HEAD
Branch point for: branch_44x
Changes since 1.1: +4 -0 lines
Log Message:
updates for muons

File Contents

# Content
1 #ifndef __PUSubtractor__
2 #define __PUSubtractor__
3
4 #include <vector>
5 #include "fastjet/PseudoJet.hh"
6 #include "fastjet/ClusterSequence.hh"
7 #include "fastjet/ClusterSequenceArea.hh"
8 #include "fastjet/ActiveAreaSpec.hh"
9
10 #include "FWCore/Framework/interface/Event.h"
11 #include "FWCore/Framework/interface/EventSetup.h"
12 #include "FWCore/ParameterSet/interface/ParameterSet.h"
13
14 #include "DataFormats/JetReco/interface/CaloJet.h"
15 #include "DataFormats/HcalDetId/interface/HcalDetId.h"
16 #include "DataFormats/Candidate/interface/CandidateFwd.h"
17 #include "Geometry/CaloGeometry/interface/CaloGeometry.h"
18
19 class PileUpSubtractor{
20
21 public:
22
23 typedef boost::shared_ptr<fastjet::ClusterSequence> ClusterSequencePtr;
24 typedef boost::shared_ptr<fastjet::ActiveAreaSpec> ActiveAreaSpecPtr;
25 typedef boost::shared_ptr<fastjet::RangeDefinition> RangeDefPtr;
26
27 PileUpSubtractor(const edm::ParameterSet& iConfig);
28 ~PileUpSubtractor(){;}
29
30 virtual void setAlgorithm(ClusterSequencePtr& algorithm);
31 virtual void reset(std::vector<edm::Ptr<reco::Candidate> >& input,
32 std::vector<fastjet::PseudoJet>& towers,
33 std::vector<fastjet::PseudoJet>& output);
34 virtual void setupGeometryMap(edm::Event& iEvent,const edm::EventSetup& iSetup);
35 virtual void calculatePedestal(std::vector<fastjet::PseudoJet> const & coll);
36 virtual void subtractPedestal(std::vector<fastjet::PseudoJet> & coll);
37 virtual void calculateOrphanInput(std::vector<fastjet::PseudoJet> & orphanInput);
38 virtual void offsetCorrectJets();
39 virtual double getMeanAtTower(const reco::CandidatePtr & in) const;
40 virtual double getSigmaAtTower(const reco::CandidatePtr & in) const;
41 virtual double getPileUpAtTower(const reco::CandidatePtr & in) const;
42 virtual double getPileUpEnergy(int ijet) const {return jetOffset_[ijet];}
43 virtual double getCone(double cone, double eta, double phi, double& et, double& pu);
44 int getN(const reco::CandidatePtr & in) const;
45 int getNwithJets(const reco::CandidatePtr & in) const;
46
47 int ieta(const reco::CandidatePtr & in) const;
48 int iphi(const reco::CandidatePtr & in) const;
49
50 protected:
51
52 // From jet producer
53 ClusterSequencePtr fjClusterSeq_; // fastjet cluster sequence
54 std::vector<edm::Ptr<reco::Candidate> >* inputs_; // input candidates
55 std::vector<fastjet::PseudoJet>* fjInputs_; // fastjet inputs
56 std::vector<fastjet::PseudoJet>* fjJets_; // fastjet jets
57 std::vector<fastjet::PseudoJet> fjOriginalInputs_; // to back-up unsubtracted fastjet inputs
58
59 // PU subtraction parameters
60 bool reRunAlgo_;
61 bool doAreaFastjet_;
62 bool doRhoFastjet_;
63 double jetPtMin_;
64 double puPtMin_;
65
66 double nSigmaPU_; // number of sigma for pileup
67 double radiusPU_; // pileup radius
68 ActiveAreaSpecPtr fjActiveArea_; // fastjet active area definition
69 RangeDefPtr fjRangeDef_; // range definition
70
71 CaloGeometry const * geo_; // geometry
72 int ietamax_; // maximum eta in geometry
73 int ietamin_; // minimum eta in geometry
74 std::vector<HcalDetId> allgeomid_; // all det ids in the geometry
75 std::map<int,int> geomtowers_; // map of geometry towers to det id
76 std::map<int,int> ntowersWithJets_; // number of towers with jets
77 std::map<int,double> esigma_; // energy sigma
78 std::map<int,double> emean_; // energy mean
79
80 std::vector<double> jetOffset_;
81
82 };
83
84 #include "FWCore/PluginManager/interface/PluginFactory.h"
85 namespace edm {class ParameterSet; class EventSetup; }
86 typedef edmplugin::PluginFactory<PileUpSubtractor *(const edm::ParameterSet & )> PileUpSubtractorFactory;
87
88 #endif