ViewVC Help
View File | Revision Log | Show Annotations | Root Listing
root/cvsroot/UserCode/OSUT3Analysis/AnaTools/interface/OSUObjects.h
Revision: 1.2
Committed: Tue Aug 28 13:52:53 2012 UTC (12 years, 8 months ago) by ahart
Content type: text/plain
Branch: MAIN
CVS Tags: V02-03-02, V02-03-01, V02-03-00, V02-02-00, V02-01-01, V02-01-00, V01-01-00, V01-00-01, V01-00-00, V00-01-00, V00-00-01, mytag_0_0_0, V00-00-03, HEAD
Changes since 1.1: +5 -1 lines
Error occurred while calculating annotation data.
Log Message:
Add more size functions.

File Contents

# Content
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 goodSize () const { return goodSize_; };
66 const unsigned goodEtaSize () const { return goodEtaSize_; };
67 const unsigned goodPtSize () const { return goodPtSize_; };
68 const vector<GoodMuon>::const_iterator leadMuon () const { return leadMuon_; };
69 const vector<GoodMuon>::const_iterator nextToLeadMuon () const { return nextToLeadMuon_; };
70 const TLorentzVector &leadP4 () const { return leadP4_; };
71 const TLorentzVector &nextToLeadP4 () const { return nextToLeadP4_; };
72 const double dimuonMass () const { return (leadP4_ + nextToLeadP4_).M (); };
73
74 private:
75 TLorentzVector leadP4_;
76 TLorentzVector nextToLeadP4_;
77 unsigned goodSize_;
78 unsigned goodEtaSize_;
79 unsigned goodPtSize_;
80 vector<GoodMuon>::const_iterator leadMuon_;
81 vector<GoodMuon>::const_iterator nextToLeadMuon_;
82 };
83
84 #endif