ViewVC Help
View File | Revision Log | Show Annotations | Root Listing
root/cvsroot/UserCode/OSUT3Analysis/AnaTools/interface/OSUObjects.h
Revision: 1.1
Committed: Mon Aug 27 18:09:26 2012 UTC (12 years, 8 months ago) by ahart
Content type: text/plain
Branch: MAIN
Log Message:
First commit of OSUObjects.h.

File Contents

# User Rev Content
1 ahart 1.1 #ifndef OSU_OBJECTS
2    
3     #define OSU_OBJECTS
4    
5     #include <map>
6     #include <string>
7     #include <vector>
8    
9     #include "TH1D.h"
10     #include "TH2D.h"
11     #include "TLorentzVector.h"
12    
13     #include "FWCore/Framework/interface/EDAnalyzer.h"
14     #include "FWCore/Framework/interface/Event.h"
15     #include "FWCore/Framework/interface/EventSetup.h"
16     #include "FWCore/ParameterSet/interface/ParameterSet.h"
17     #include "FWCore/ServiceRegistry/interface/Service.h"
18     #include "DataFormats/Common/interface/Handle.h"
19     #include "CommonTools/UtilAlgos/interface/TFileService.h"
20     #include "FWCore/Framework/interface/MakerMacros.h"
21    
22     #include "ProductArea/BNcollections/interface/BNbxlumi.h"
23     #include "ProductArea/BNcollections/interface/BNelectron.h"
24     #include "ProductArea/BNcollections/interface/BNevent.h"
25     #include "ProductArea/BNcollections/interface/BNjet.h"
26     #include "ProductArea/BNcollections/interface/BNmcparticle.h"
27     #include "ProductArea/BNcollections/interface/BNmet.h"
28     #include "ProductArea/BNcollections/interface/BNmuon.h"
29     #include "ProductArea/BNcollections/interface/BNphoton.h"
30     #include "ProductArea/BNcollections/interface/BNprimaryvertex.h"
31     #include "ProductArea/BNcollections/interface/BNskimbits.h"
32     #include "ProductArea/BNcollections/interface/BNsupercluster.h"
33     #include "ProductArea/BNcollections/interface/BNtrack.h"
34     #include "ProductArea/BNcollections/interface/BNtrigger.h"
35     #include "ProductArea/BNcollections/interface/BNtrigobj.h"
36    
37     #include "OSUT3Analysis/AnaTools/interface/CutFlow.h"
38    
39     using namespace std;
40    
41     class GoodMuon : public BNmuon
42     {
43     public:
44     GoodMuon (const edm::ParameterSet &, const BNmuon &, CutFlow *);
45     ~GoodMuon ();
46    
47     const bool pass (const string &cutName) const { return cuts_.find (cutName)->second; };
48     const bool pass () const;
49     const TLorentzVector &p4 () const { return p4_; };
50    
51     private:
52     double maxEta_;
53     double minPt_;
54    
55     TLorentzVector p4_;
56     map<string, bool> cuts_;
57     };
58    
59     class GoodMuonCollection : public vector<GoodMuon>
60     {
61     public:
62     GoodMuonCollection (const edm::ParameterSet &, const edm::Handle<BNmuonCollection> &, CutFlow *);
63     ~GoodMuonCollection ();
64    
65     const unsigned size () const { return goodSize_; };
66     const vector<GoodMuon>::const_iterator leadMuon () const { return leadMuon_; };
67     const vector<GoodMuon>::const_iterator nextToLeadMuon () const { return nextToLeadMuon_; };
68     const TLorentzVector &leadP4 () const { return leadP4_; };
69     const TLorentzVector &nextToLeadP4 () const { return nextToLeadP4_; };
70     const double dimuonMass () const { return (leadP4_ + nextToLeadP4_).M (); };
71    
72     private:
73     TLorentzVector leadP4_;
74     TLorentzVector nextToLeadP4_;
75     unsigned goodSize_;
76     vector<GoodMuon>::const_iterator leadMuon_;
77     vector<GoodMuon>::const_iterator nextToLeadMuon_;
78     };
79    
80     #endif