ViewVC Help
View File | Revision Log | Show Annotations | Root Listing
root/cvsroot/UserCode/VHbbAnalysis/VHbbDataFormats/interface/TriggerReader.h
(Generate patch)

Comparing UserCode/VHbbAnalysis/VHbbDataFormats/interface/TriggerReader.h (file contents):
Revision 1.1 by arizzi, Fri Jul 29 15:31:50 2011 UTC vs.
Revision 1.4 by arizzi, Sat Sep 3 07:58:09 2011 UTC

# Line 13 | Line 13
13  
14   class TriggerReader {
15   public:
16 <    TriggerReader() : cacheRun(0) {}
16 >    TriggerReader(bool passAllEvents=false) : passAll(passAllEvents) {}
17      
18      void setEvent( fwlite::Event * e) {  ev=e;}
19    
20      bool accept(const std::string & triggername)
21      {
22 +     if(passAll) return true;
23       fwlite::Handle<edm::TriggerResults> hTriggerResults;
24       hTriggerResults.getByLabel(*ev,"TriggerResults","","HLT");
25  
# Line 33 | Line 34 | class TriggerReader {
34  
35  
36       std::map<std::string,size_t>::iterator nit;
37 <     if(ev->getRun().run()  != cacheRun || nameMap.find(triggername) == nameMap.end())
37 >     if(ev->getRun().run()  != cacheRun[triggername] || nameMap.find(triggername) == nameMap.end())
38       {
39 <      cacheRun=ev->getRun().run();
39 >      std::cout << "new run" << ev->getRun().run() << std::endl;
40 >      cacheRun[triggername]=ev->getRun().run();
41        edm::TriggerNames const&  triggerNames = ev->triggerNames(*hTriggerResults);
42        std::string oldiname="whatever";
43        nit=nameMap.find(triggername);
# Line 60 | Line 62 | class TriggerReader {
62        
63        }
64     }
65 +   regfree(&regex);
66      nit=nameMap.find(triggername);
67     if(nit==nameMap.end())
68      {
69       std::cout << "ERROR: trigger name not found" << std::endl;
70       edm::TriggerNames const&  triggerNames = ev->triggerNames(*hTriggerResults);
71 <     for (unsigned i = 0; i < triggerNames.size(); ++i)  std::cout << triggerNames.triggerName(i) << " is bit  " << i << "looking for: "<< triggername <<  std::endl;
72 <
71 >    // for (unsigned i = 0; i < triggerNames.size(); ++i)  std::cout << triggerNames.triggerName(i) << " is bit  " << i << "looking for: "<< triggername <<  std::endl;
72 >     nameMap[triggername]=100000000; // meaning not found in this run
73        
74       return false;
75      }
76 +   if(nit->second==100000000) return false;
77     return hTriggerResults->accept(nit->second);
78   }
79  
80   private:
81    std::map<std::string,size_t> nameMap;
82 <  unsigned int cacheRun;
82 >  std::map<std::string,size_t> cacheRun;
83 > //  unsigned int cacheRun;
84    fwlite::Event * ev;
85 +  bool passAll;
86  
87   };
88  

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines