ViewVC Help
View File | Revision Log | Show Annotations | Root Listing
root/cvsroot/UserCode/dhidas/OSUAnalysis/Tools/test/TestNTupleEventReader.h
Revision: 1.1.1.1 (vendor branch)
Committed: Thu Dec 1 16:28:47 2011 UTC (13 years, 5 months ago) by dhidas
Content type: text/plain
Branch: dhidas, MAIN
CVS Tags: START, HEAD
Changes since 1.1: +0 -0 lines
Log Message:
osu copy modified

File Contents

# User Rev Content
1 dhidas 1.1 #include "cute/cute.h"
2     #include "cute/cute_suite.h"
3     #include <boost/scoped_ptr.hpp>
4    
5     #include "../interface/Event.h"
6     #include "../interface/TopPairEventCandidate.h"
7     #include "../interface/Readers/NTupleEventReader.h"
8     #include "InputFiles.h"
9    
10     using namespace BAT;
11    
12     struct TestNTupleEventReader {
13     private:
14     boost::scoped_ptr<NTupleEventReader> TTbarReader;
15     boost::scoped_ptr<NTupleEventReader> QCDenri1Reader;
16     boost::scoped_ptr<NTupleEventReader> QCDenri2Reader;
17     boost::scoped_ptr<NTupleEventReader> QCDenri3Reader;
18    
19     boost::scoped_ptr<NTupleEventReader> QCDbce1Reader;
20     boost::scoped_ptr<NTupleEventReader> QCDbce2Reader;
21     boost::scoped_ptr<NTupleEventReader> QCDbce3Reader;
22    
23     boost::scoped_ptr<NTupleEventReader> WjetsReader;
24     boost::scoped_ptr<NTupleEventReader> ZJetsReader;
25     boost::scoped_ptr<NTupleEventReader> TWReader;
26     boost::scoped_ptr<NTupleEventReader> TChanReader;
27     boost::scoped_ptr<NTupleEventReader> DataReader;
28     boost::scoped_ptr<NTupleEventReader> DataReader2;
29     boost::scoped_ptr<NTupleEventReader> AllMCReader;
30    
31     public:
32     TestNTupleEventReader() :
33     TTbarReader(new NTupleEventReader()),
34     QCDenri1Reader(new NTupleEventReader()),
35     QCDenri2Reader(new NTupleEventReader()),
36     QCDenri3Reader(new NTupleEventReader()),
37     QCDbce1Reader(new NTupleEventReader()),
38     QCDbce2Reader(new NTupleEventReader()),
39     QCDbce3Reader(new NTupleEventReader()),
40     WjetsReader(new NTupleEventReader()),
41     ZJetsReader(new NTupleEventReader()),
42     TWReader(new NTupleEventReader()),
43     TChanReader(new NTupleEventReader()),
44     DataReader(new NTupleEventReader()),
45     DataReader2(new NTupleEventReader()),
46     AllMCReader(new NTupleEventReader()) {
47    
48     TTbarReader->addInputFile(InputFile::ttbar);
49     QCDenri1Reader->addInputFile(InputFile::enri1);
50     QCDenri2Reader->addInputFile(InputFile::enri2);
51     QCDenri3Reader->addInputFile(InputFile::enri3);
52    
53     QCDbce1Reader->addInputFile(InputFile::bce1);
54     QCDbce2Reader->addInputFile(InputFile::bce2);
55     QCDbce3Reader->addInputFile(InputFile::bce3);
56    
57     WjetsReader->addInputFile(InputFile::wjets);
58     ZJetsReader->addInputFile(InputFile::zjets);
59     TWReader->addInputFile(InputFile::tW);
60     TChanReader->addInputFile(InputFile::tchan);
61     DataReader->addInputFile(InputFile::data);
62     DataReader->addInputFile(InputFile::data2);
63     DataReader2->addInputFile(InputFile::data2);
64     DataReader2->addInputFile(InputFile::data);
65    
66     AllMCReader->addInputFile(InputFile::ttbar);
67     AllMCReader->addInputFile(InputFile::enri1);
68     AllMCReader->addInputFile(InputFile::enri2);
69     AllMCReader->addInputFile(InputFile::enri3);
70     AllMCReader->addInputFile(InputFile::bce1);
71     AllMCReader->addInputFile(InputFile::bce2);
72     AllMCReader->addInputFile(InputFile::bce3);
73     AllMCReader->addInputFile(InputFile::wjets);
74     AllMCReader->addInputFile(InputFile::zjets);
75     AllMCReader->addInputFile(InputFile::tW);
76     AllMCReader->addInputFile(InputFile::tchan);
77     AllMCReader->addInputFile(InputFile::pj1);
78     AllMCReader->addInputFile(InputFile::pj2);
79     AllMCReader->addInputFile(InputFile::pj3);
80    
81     }
82    
83     void testTTbarType() {
84     Event currentEvent = TTbarReader->getNextEvent();
85     ASSERT_EQUAL(DataType::ttbar, currentEvent.getDataType());
86     }
87    
88     void testQCD_EMEnriched_80_to_170Type() {
89     Event currentEvent = QCDenri3Reader->getNextEvent();
90     ASSERT_EQUAL(DataType::QCD_EMEnriched_Pt80to170, currentEvent.getDataType());
91     }
92    
93     void testQCD_EMEnriched_30_to_80Type() {
94     Event currentEvent = QCDenri2Reader->getNextEvent();
95     ASSERT_EQUAL(DataType::QCD_EMEnriched_Pt30to80, currentEvent.getDataType());
96     }
97    
98     void testQCD_EMEnriched_20_to_30Type() {
99     Event currentEvent = QCDenri1Reader->getNextEvent();
100     ASSERT_EQUAL(DataType::QCD_EMEnriched_Pt20to30, currentEvent.getDataType());
101     }
102    
103     void testQCD_BCtoE_80_to_170Type() {
104     Event currentEvent = QCDbce3Reader->getNextEvent();
105     ASSERT_EQUAL(DataType::QCD_BCtoE_Pt80to170, currentEvent.getDataType());
106     }
107    
108     void testQCD_BCtoE_30_to_80Type() {
109     Event currentEvent = QCDbce2Reader->getNextEvent();
110     ASSERT_EQUAL(DataType::QCD_BCtoE_Pt30to80, currentEvent.getDataType());
111     }
112    
113     void testQCD_BCtoE_20_to_30Type() {
114     Event currentEvent = QCDbce1Reader->getNextEvent();
115     ASSERT_EQUAL(DataType::QCD_BCtoE_Pt20to30, currentEvent.getDataType());
116     }
117    
118     void testWjetsType() {
119     Event currentEvent = WjetsReader->getNextEvent();
120     ASSERT_EQUAL(DataType::Wjets, currentEvent.getDataType());
121     }
122    
123     void testZjetsType() {
124     ASSERT(ZJetsReader->hasNextEvent());
125     Event currentEvent = ZJetsReader->getNextEvent();
126     ASSERT_EQUAL(DataType::Zjets, currentEvent.getDataType());
127     }
128    
129     void testTWType() {
130     ASSERT(TWReader->hasNextEvent());
131     Event currentEvent = TWReader->getNextEvent();
132     ASSERT_EQUAL(DataType::singleTop_And_W, currentEvent.getDataType());
133     }
134    
135     void testTChanType() {
136     Event currentEvent = TChanReader->getNextEvent();
137     ASSERT_EQUAL(DataType::singleTopTChannel, currentEvent.getDataType());
138     }
139    
140     void testDataType() {
141     Event currentEvent = DataReader->getNextEvent();
142     ASSERT_EQUAL(DataType::DATA, currentEvent.getDataType());
143     }
144    
145     void testReadDataType() {
146     ASSERT(DataReader->hasNextEvent());
147     Event currentEvent = DataReader->getNextEvent();
148     ASSERT_EQUAL(true, currentEvent.isRealData());
149     }
150    
151     void testNumberOfTracksInEvent1() {
152     ASSERT(TTbarReader->hasNextEvent());
153     Event currentEvent = TTbarReader->getNextEvent();
154     ASSERT_EQUAL(0, currentEvent.Tracks().size());//Tracks deactivated
155     }
156    
157     void testNumberOfElectronsInEvent1() {
158     Event currentEvent = TTbarReader->getNextEvent();
159     ASSERT_EQUAL(2, currentEvent.Electrons().size());
160     }
161    
162     void testNumberOfJetsInEvent1() {
163     Event currentEvent = TTbarReader->getNextEvent();
164     ASSERT_EQUAL(8, currentEvent.Jets().size());
165     }
166    
167     void testNumberOfMuonsInEvent1() {
168     Event currentEvent = TTbarReader->getNextEvent();
169     ASSERT_EQUAL(1, currentEvent.Muons().size());
170     }
171    
172     void testHasNextEvent() {
173     ASSERT_EQUAL(true, TTbarReader->hasNextEvent());
174     }
175    
176     void testHasNotNextEvent() {
177     TTbarReader->skipNumberOfEvents(123456789);
178     ASSERT(TTbarReader->hasNextEvent() == false);
179     }
180    
181     void testGetProccessedNumberOfEvents() {
182     TTbarReader->getNextEvent();
183     ASSERT_EQUAL(1, TTbarReader->getNumberOfProccessedEvents());
184     TTbarReader->getNextEvent();
185     ASSERT_EQUAL(2, TTbarReader->getNumberOfProccessedEvents());
186     }
187    
188     void testGetProccessedNumberOfEventsWithSkippedEvents() {
189     TTbarReader->getNextEvent();
190     TTbarReader->skipNumberOfEvents(100);
191     ASSERT_EQUAL(1, TTbarReader->getNumberOfProccessedEvents());
192     }
193     void testSkipEvents() {
194     TTbarReader->skipNumberOfEvents(10);
195     ASSERT_EQUAL(10, TTbarReader->getCurrentLocalEventNumber());
196     }
197    
198     void testGetCurrentLocalEventNumber() {
199     ASSERT_EQUAL(0, TTbarReader->getCurrentLocalEventNumber());
200     TTbarReader->getNextEvent();
201     ASSERT_EQUAL(1, TTbarReader->getCurrentLocalEventNumber());
202     }
203    
204     void testSetMaximumNumberOfEventsWithSkippedEvents() {
205     TTbarReader->setMaximumNumberOfEvents(5);
206     TTbarReader->skipNumberOfEvents(10);
207     ASSERT(TTbarReader->hasNextEvent() == false);
208     }
209    
210     void testSetMaximumNumberOfEvents() {
211     unsigned int maxEvents = 5;
212     TTbarReader->setMaximumNumberOfEvents(maxEvents);
213     while (TTbarReader->hasNextEvent())
214     TTbarReader->getNextEvent();
215     ASSERT_EQUAL(maxEvents, TTbarReader->getNumberOfProccessedEvents());
216     }
217    
218     void testMCRunNumber() {
219     ASSERT_EQUAL(1, TTbarReader->getNextEvent().runnumber());
220     }
221    
222     void testMCLumiBlock() {
223     ASSERT_EQUAL(7, TTbarReader->getNextEvent().lumiblock());
224     }
225    
226     void testLocalEventNumber() {
227     ASSERT_EQUAL(1, TTbarReader->getNextEvent().localnumber());
228     }
229    
230     void testInitialEventWeigth() {
231     ASSERT(TTbarReader->hasNextEvent());
232     ASSERT_EQUAL(1., TTbarReader->getNextEvent().weight());
233     }
234    
235     void testPrimaryVertex() {
236     ASSERT_EQUAL(true, TTbarReader->getNextEvent().PrimaryVertex()->isGood());
237     }
238    
239     void testHLTTrigger() {
240     TopPairEventCandidate candidate = TopPairEventCandidate(TTbarReader->getNextEvent());
241     ASSERT_EQUAL(true, candidate.passesHighLevelTrigger());
242     }
243    
244     void testEventChainConstant() {
245     ASSERT_EQUAL(0, strcmp("rootTupleTree/tree", NTupleEventReader::EVENT_CHAIN));
246     }
247    
248     void testTTbarEventMET() {
249     Event event = TTbarReader->getNextEvent();
250     ASSERT_EQUAL_DELTA(69.2572,event.MET()->et(), 0.001);
251     }
252    
253     void testSeenTTbar() {
254     const boost::array<bool, DataType::NUMBER_OF_DATA_TYPES> seenTypes = TTbarReader->getSeenDatatypes();
255    
256     for (unsigned short index = 0; index < DataType::NUMBER_OF_DATA_TYPES; ++index) {
257     if (index == DataType::ttbar)
258     ASSERT_EQUAL(true, seenTypes.at(index));
259     else
260     ASSERT_EQUAL(false, seenTypes.at(index));
261     }
262     }
263    
264     void testSeenAllMC() {
265     const boost::array<bool, DataType::NUMBER_OF_DATA_TYPES> seenTypes = AllMCReader->getSeenDatatypes();
266    
267     for (unsigned short index = 0; index < DataType::NUMBER_OF_DATA_TYPES; ++index) {
268     if (index == DataType::DATA || index >= DataType::Zprime_M500GeV_W5GeV || index
269     == DataType::singleTopSChannel || index == DataType::VQQ)
270     ASSERT_EQUAL(false, seenTypes.at(index));
271     else {
272     std::string msg("index ");
273     std::stringstream stream;
274     stream << index;
275     msg += stream.str();
276     ASSERT_EQUALM(msg.c_str(), true, seenTypes.at(index));
277     }
278    
279     }
280     }
281    
282     void testAddInputFileNoFileThrowsException() {
283     boost::scoped_ptr<NTupleEventReader> reader(new NTupleEventReader());
284     ASSERT_THROWS(reader->addInputFile("dfjndkjvnvh"), NoFileFoundException);
285     }
286    
287     void testGenJetsMC() {
288     Event event = TTbarReader->getNextEvent();
289     ASSERT_EQUAL(10, event.GenJets().size());
290     }
291    
292     void testGenJetsDATA() {
293     Event event = DataReader->getNextEvent();
294     ASSERT_EQUAL(0, event.GenJets().size());
295     }
296    
297     };
298    
299     extern cute::suite make_suite_TestNTupleEventReader() {
300     cute::suite s;
301    
302     s.push_back(CUTE_SMEMFUN(TestNTupleEventReader, testTTbarType));
303    
304     s.push_back(CUTE_SMEMFUN(TestNTupleEventReader, testQCD_EMEnriched_20_to_30Type));
305     s.push_back(CUTE_SMEMFUN(TestNTupleEventReader, testQCD_EMEnriched_30_to_80Type));
306     s.push_back(CUTE_SMEMFUN(TestNTupleEventReader, testQCD_EMEnriched_80_to_170Type));
307    
308     s.push_back(CUTE_SMEMFUN(TestNTupleEventReader, testQCD_BCtoE_20_to_30Type));
309     s.push_back(CUTE_SMEMFUN(TestNTupleEventReader, testQCD_BCtoE_30_to_80Type));
310     s.push_back(CUTE_SMEMFUN(TestNTupleEventReader, testQCD_BCtoE_80_to_170Type));
311    
312     s.push_back(CUTE_SMEMFUN(TestNTupleEventReader, testWjetsType));
313     s.push_back(CUTE_SMEMFUN(TestNTupleEventReader, testZjetsType));
314     s.push_back(CUTE_SMEMFUN(TestNTupleEventReader, testTWType));
315     s.push_back(CUTE_SMEMFUN(TestNTupleEventReader, testTChanType));
316    
317     s.push_back(CUTE_SMEMFUN(TestNTupleEventReader, testDataType));
318     s.push_back(CUTE_SMEMFUN(TestNTupleEventReader, testReadDataType));
319    
320     s.push_back(CUTE_SMEMFUN(TestNTupleEventReader, testNumberOfTracksInEvent1));
321     s.push_back(CUTE_SMEMFUN(TestNTupleEventReader, testNumberOfElectronsInEvent1));
322     s.push_back(CUTE_SMEMFUN(TestNTupleEventReader, testNumberOfJetsInEvent1));
323     s.push_back(CUTE_SMEMFUN(TestNTupleEventReader, testNumberOfMuonsInEvent1));
324     s.push_back(CUTE_SMEMFUN(TestNTupleEventReader, testHasNextEvent));
325     s.push_back(CUTE_SMEMFUN(TestNTupleEventReader, testHasNotNextEvent));
326     s.push_back(CUTE_SMEMFUN(TestNTupleEventReader, testGetProccessedNumberOfEvents));
327     s.push_back(CUTE_SMEMFUN(TestNTupleEventReader, testGetProccessedNumberOfEventsWithSkippedEvents));
328     s.push_back(CUTE_SMEMFUN(TestNTupleEventReader, testSkipEvents));
329     s.push_back(CUTE_SMEMFUN(TestNTupleEventReader, testGetCurrentLocalEventNumber));
330     s.push_back(CUTE_SMEMFUN(TestNTupleEventReader, testSetMaximumNumberOfEventsWithSkippedEvents));
331     s.push_back(CUTE_SMEMFUN(TestNTupleEventReader, testSetMaximumNumberOfEvents));
332    
333     s.push_back(CUTE_SMEMFUN(TestNTupleEventReader, testMCRunNumber));
334     s.push_back(CUTE_SMEMFUN(TestNTupleEventReader, testMCLumiBlock));
335     s.push_back(CUTE_SMEMFUN(TestNTupleEventReader, testLocalEventNumber));
336     s.push_back(CUTE_SMEMFUN(TestNTupleEventReader, testInitialEventWeigth));
337     s.push_back(CUTE_SMEMFUN(TestNTupleEventReader, testPrimaryVertex));
338     s.push_back(CUTE_SMEMFUN(TestNTupleEventReader, testHLTTrigger));
339     s.push_back(CUTE_SMEMFUN(TestNTupleEventReader, testEventChainConstant));
340     s.push_back(CUTE_SMEMFUN(TestNTupleEventReader, testTTbarEventMET));
341    
342     s.push_back(CUTE_SMEMFUN(TestNTupleEventReader, testSeenTTbar));
343     s.push_back(CUTE_SMEMFUN(TestNTupleEventReader, testSeenAllMC));
344     s.push_back(CUTE_SMEMFUN(TestNTupleEventReader, testAddInputFileNoFileThrowsException));
345    
346     s.push_back(CUTE_SMEMFUN(TestNTupleEventReader, testGenJetsMC));
347     s.push_back(CUTE_SMEMFUN(TestNTupleEventReader, testGenJetsDATA));
348    
349     return s;
350     }