ViewVC Help
View File | Revision Log | Show Annotations | Root Listing
root/cvsroot/UserCode/dhidas/OSUAnalysis/Tools/test/TestTrackReader.h
Revision: 1.1
Committed: Thu Dec 1 16:28:47 2011 UTC (13 years, 5 months ago) by dhidas
Content type: text/plain
Branch point for: dhidas, MAIN
Log Message:
Initial revision

File Contents

# User Rev Content
1 dhidas 1.1 /*
2     * TestTrackReader.hh
3     *
4     * Created on: 20 Sep 2010
5     * Author: kreczko
6     */
7    
8     #ifndef TESTTRACKREADER_HH_
9     #define TESTTRACKREADER_HH_
10     #include "cute/cute.h"
11     #include "cute/cute_suite.h"
12    
13     #include <boost/scoped_ptr.hpp>
14     #include <boost/shared_ptr.hpp>
15    
16     #include "../interface/RecoObjects/Track.h"
17     #include "../interface/Readers/TrackReader.h"
18     #include "../interface/Readers/NTupleEventReader.h"
19     #include <iostream>
20    
21     using namespace BAT;
22    
23     struct TestTrackReader {
24     private:
25     boost::shared_ptr<TChain> input;
26     boost::scoped_ptr<TrackReader> trackReader;
27     TrackCollection tracks;
28     TrackPointer firstTrack;
29    
30     public:
31     TestTrackReader() :
32     input(new TChain(NTupleEventReader::EVENT_CHAIN)),
33     trackReader(new TrackReader(input)),
34     tracks(),
35     firstTrack() {
36    
37     input->Add(InputFile::ttbar);
38    
39     input->LoadTree(1);
40     input->SetBranchStatus("*", 0);
41     trackReader->initialise();
42     input->GetEntry(1);
43     tracks = trackReader->getTracks();
44     firstTrack = tracks.front();
45     }
46    
47     void testReadTracksSize() {
48     ASSERT_EQUAL(121, tracks.size());
49     }
50    
51     void testReadFirstTrackPhi() {
52     ASSERT_EQUAL(true, fabs(firstTrack->phi()) < 2*TMath::Pi()+0.1);
53     }
54    
55     void testFirstTrackCharge() {
56     ASSERT_EQUAL(1, fabs(firstTrack->charge()));
57     }
58    
59     void testFirstTrackD0() {
60     ASSERT_EQUAL_DELTA(0.359524, firstTrack->d0(), 0.000001);
61     }
62    
63     void testFirstTrackIsHighPurity() {
64     ASSERT_EQUAL(true, firstTrack->isHighPurity());
65     }
66    
67     void testNumberOfHighPurityTracks() {
68     unsigned int numberOfHighPurityTracks = 0;
69     for (unsigned int index = 0; index < tracks.size(); ++index) {
70     if (tracks.at(index)->isHighPurity())
71     numberOfHighPurityTracks++;
72     }
73     ASSERT_EQUAL(111, numberOfHighPurityTracks);
74     }
75    
76     };
77     extern cute::suite make_suite_TestTrackReader() {
78     cute::suite s;
79    
80     s.push_back(CUTE_SMEMFUN(TestTrackReader, testReadTracksSize));
81     s.push_back(CUTE_SMEMFUN(TestTrackReader, testReadFirstTrackPhi));
82     s.push_back(CUTE_SMEMFUN(TestTrackReader, testFirstTrackCharge));
83     s.push_back(CUTE_SMEMFUN(TestTrackReader, testFirstTrackD0));
84     s.push_back(CUTE_SMEMFUN(TestTrackReader, testFirstTrackIsHighPurity));
85     s.push_back(CUTE_SMEMFUN(TestTrackReader, testNumberOfHighPurityTracks));
86    
87     return s;
88     }
89    
90     #endif /* TESTTRACKREADER_HH_ */