ViewVC Help
View File | Revision Log | Show Annotations | Root Listing
root/cvsroot/UserCode/lucieg/AnalyzerForTests/Analyzer/plugins/Analyzer.cc
Revision: 1.1
Committed: Thu Jul 7 16:21:20 2011 UTC (13 years, 9 months ago) by lucieg
Content type: text/plain
Branch: MAIN
CVS Tags: logger_lucieg_22Nov11-00h31m40s, logger_lucieg_11Jul11-14h37m27s, HEAD
Log Message:
resync

File Contents

# User Rev Content
1 lucieg 1.1
2     // -*- C++ -*-
3     //
4     // Package: Analyzer
5     // Class: Analyzer
6     //
7     /**\class Analyzer Analyzer.cc /Analyzer/src/Analyzer.cc
8    
9     Description: [one line class summary]
10    
11     Implementation:
12     [Notes on implementation]
13     */
14     //
15     // Original Author: "Lucie Gauthier"
16     // Created: Fri Ap 14 2011
17     // $Id: Analyzer.cc,v 1.13 2011/04/21 20:17:58 lucieg Exp $
18     //
19     //
20    
21     // user include files
22     #include "AnalyzerForTests/Analyzer/plugins/Analyzer.h"
23    
24     using namespace std;
25     using namespace edm;
26     using namespace pat;
27    
28     //
29     // constructors and destructor
30     //
31     Analyzer::Analyzer(const edm::ParameterSet& iConfig)
32    
33     {
34    
35     inputTagElectrons_
36     = iConfig.getParameter<InputTag>("patElectrons");
37    
38     inputTagCmgElectrons_
39     = iConfig.getParameter<InputTag>("cmgElectrons");
40    
41    
42     fOutputFileName_ = iConfig.getUntrackedParameter<string>("HistOutFile");
43    
44     }
45    
46    
47     Analyzer::~Analyzer()
48     {
49    
50     }
51    
52    
53     //
54     // member functions
55     //
56     // ------------ pSetup called once each job just before starting event loop ------------
57     void
58     Analyzer::beginJob()
59     {
60     //Create output file
61     outputFile_ = new TFile( fOutputFileName_.c_str(), "RECREATE" );
62    
63     }
64    
65     // ------------ method called to for each event ------------
66     void
67     Analyzer::analyze(const edm::Event& iEvent, const edm::EventSetup& iSetup)
68     {
69    
70     /*****Tree variables initialization******/
71    
72     //get some pat electrons
73     Handle<pat::ElectronCollection> eleColl;
74     iEvent.getByLabel(inputTagElectrons_, eleColl);
75    
76    
77     ElectronCollection::const_iterator ele = eleColl -> begin();
78     int eleIndex = 0;
79    
80     for(; ele != eleColl -> end(); ele++, eleIndex++){
81     // std::cout << "----------------pat ele--------------"<<endl;
82     // std::cout << "Electron ID: 95relIso=" << ele->electronID("simpleEleId95relIso")
83     // << " 90relIso=" << ele->electronID("simpleEleId90relIso")
84     // << " 85relIso=" << ele->electronID("simpleEleId85relIso")
85     // << " 80relIso=" << ele->electronID("simpleEleId80relIso")
86     // << " 70relIso=" << ele->electronID("simpleEleId70relIso")
87     // << " 60relIso=" << ele->electronID("simpleEleId60relIso") << endl
88     // << " eidVeryLoose=" << ele->electronID("eidVeryLoose")
89     // << " eidLoose=" << ele->electronID("eidLoose")
90     // << " eidMedium=" << ele->electronID("eidMedium")
91     // << " eidTight=" << ele->electronID("eidTight")
92     // << " eidSuperTight="<< ele->electronID("eidSuperTight")
93     // << std::endl;
94    
95     // std::cout << "eidLoose =" << eIDmap[&electrons[i]]<<endl;
96    
97     }// end loop
98    
99     //get some cmg ele
100     Handle<std::vector< cmg::Electron > > cmgEleColl;
101     iEvent.getByLabel(inputTagCmgElectrons_, cmgEleColl);
102     // Handle::<View<cmg::Electron> > cmgEles;
103     // iEvent.getByLabel(inputTagCmgElectrons_, cmgEles);
104    
105     std::vector< cmg::Electron >::const_iterator cmgEle = cmgEleColl -> begin();
106    
107    
108     for(; cmgEle != cmgEleColl -> end(); cmgEle++){
109    
110    
111     // // // for(unsigned int cmgEle = 0; cmgEle < cmgEleColl ->size() ; cmgEle++){
112     // // for(view::const_iterator it = cmgEleColl->begin(); it != cmgEleColl->end(); ++it) {
113     std::cout << "----------------cmg ele--------------"<<endl;
114     std::cout << "Electron ID: 95relIso=" << (*cmgEle -> sourcePtr())-> electronID("simpleEleId95relIso")
115    
116     // << " 90relIso=" << (*cmgEle -> sourcePtr())->electronID("simpleEleId90relIso")
117     // << " 90relIso=" << (*cmgEle -> sourcePtr())->electronID("simpleEleId90relIso")
118     // << " 85relIso=" << (*cmgEle -> sourcePtr())->electronID("simpleEleId85relIso")
119     // << " 80relIso=" << (*cmgEle -> sourcePtr())->electronID("simpleEleId80relIso")
120     // << " 70relIso=" << (*cmgEle -> sourcePtr())->electronID("simpleEleId70relIso")
121     // << " 60relIso=" << (*cmgEle -> sourcePtr())->electronID("simpleEleId60relIso") << endl
122     // << " eidVeryLoose=" << (*cmgEle -> sourcePtr())->electronID("eidVeryLoose")
123     // << " eidLoose=" << (*cmgEle -> sourcePtr())->electronID("eidLoose")
124     // << " eidMedium=" << (*cmgEle -> sourcePtr())->electronID("eidMedium")
125     // << " eidTight=" << (*cmgEle -> sourcePtr())->electronID("eidTight")
126     // << " eidSuperTight="<< (*cmgEle -> sourcePtr())->electronID("eidSuperTight")
127     << std::endl;
128    
129     std::cout << (*cmgEle -> sourcePtr())-> electronID("simpleEleId95relIso") << " "
130     << cmgEle -> getSelection("cuts_wp95relIso")<<endl;
131    
132    
133     }// end loop
134    
135    
136     }
137    
138    
139    
140    
141     // ------------ method called once each job just after ending the event loop ------------
142     void
143     Analyzer::endJob() {
144    
145     outputFile_ -> cd();
146     outputFile_ -> Write();
147    
148     }
149    
150     //Write this as a plug-in
151     DEFINE_FWK_MODULE(Analyzer);
152