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.4 by arizzi, Sat Sep 3 07:58:09 2011 UTC vs.
Revision 1.8 by arizzi, Tue Oct 4 16:23:16 2011 UTC

# Line 15 | Line 15 | class TriggerReader {
15   public:
16      TriggerReader(bool passAllEvents=false) : passAll(passAllEvents) {}
17      
18 <    void setEvent( fwlite::Event * e) {  ev=e;}
18 >    void setEvent( fwlite::Event * e,const char * process ="HLT") {
19 >     ev=e;
20 >     if(!passAll) {
21 >     hTriggerResults.getByLabel(*ev,"TriggerResults","",process);
22 >     run = ev->eventAuxiliary().id().run();
23 >     }
24 >    }
25    
26      bool accept(const std::string & triggername)
27      {
28       if(passAll) return true;
23     fwlite::Handle<edm::TriggerResults> hTriggerResults;
24     hTriggerResults.getByLabel(*ev,"TriggerResults","","HLT");
29  
30      
31       regex_t regex;
32       int reti;
33  
34  
31     reti = regcomp(&regex, triggername.c_str(), 0);
32 //     reti = regcomp(&regex, "HLT_Ele32_CaloIdVT_CaloIsoT_TrkIdT_TrkIsoT_v.*", 0);
33     if( reti ){ std::cerr << "Could not compile regex" << std::endl;}
35  
36  
37       std::map<std::string,size_t>::iterator nit;
38 <     if(ev->getRun().run()  != cacheRun[triggername] || nameMap.find(triggername) == nameMap.end())
38 >     if(run  != cacheRun[triggername] || nameMap.find(triggername) == nameMap.end())
39       {
40 <      std::cout << "new run" << ev->getRun().run() << std::endl;
41 <      cacheRun[triggername]=ev->getRun().run();
40 >
41 >     reti = regcomp(&regex, triggername.c_str(), 0);
42 > //     reti = regcomp(&regex, "HLT_Ele32_CaloIdVT_CaloIsoT_TrkIdT_TrkIsoT_v.*", 0);
43 >     if( reti ){ std::cerr << "Could not compile regex" << std::endl;}
44 >
45 >      std::cout << "new run" << run << std::endl;
46 > //      cacheRun[triggername]=ev->getRun().run();
47 >      cacheRun[triggername]=run;
48        edm::TriggerNames const&  triggerNames = ev->triggerNames(*hTriggerResults);
49        std::string oldiname="whatever";
50        nit=nameMap.find(triggername);
# Line 50 | Line 57 | class TriggerReader {
57        if(nit==nameMap.end() || ( regexec(&regex, oldiname.c_str(), 0, NULL, 0) != 0 ))   //; ! oldiname.Contains( TRegexp(triggername)) ) // changed, search it
58          {
59           std::cout << "searching " << triggername << std::endl;
60 +         nameMap[triggername]=100000000;
61           for (unsigned i = 0; i < triggerNames.size(); ++i) {
62             std::string iname(triggerNames.triggerName(i));
63        
# Line 61 | Line 69 | class TriggerReader {
69           }
70        
71        }
64   }
72     regfree(&regex);
73 +   }
74      nit=nameMap.find(triggername);
75     if(nit==nameMap.end())
76      {
77       std::cout << "ERROR: trigger name not found" << std::endl;
78 <     edm::TriggerNames const&  triggerNames = ev->triggerNames(*hTriggerResults);
78 > //     edm::TriggerNames const&  triggerNames = ev->triggerNames(*hTriggerResults);
79      // for (unsigned i = 0; i < triggerNames.size(); ++i)  std::cout << triggerNames.triggerName(i) << " is bit  " << i << "looking for: "<< triggername <<  std::endl;
80       nameMap[triggername]=100000000; // meaning not found in this run
81        
# Line 78 | Line 86 | class TriggerReader {
86   }
87  
88   private:
89 +  fwlite::Handle<edm::TriggerResults> hTriggerResults;
90    std::map<std::string,size_t> nameMap;
91    std::map<std::string,size_t> cacheRun;
92   //  unsigned int cacheRun;
93    fwlite::Event * ev;
94    bool passAll;
95 +  unsigned int run;
96  
97   };
98  

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines