ViewVC Help
View File | Revision Log | Show Annotations | Root Listing
root/cvsroot/UserCode/MitAna/PhysicsMod/src/RunLumiSelectionMod.cc
Revision: 1.3
Committed: Sat May 29 18:10:15 2010 UTC (14 years, 11 months ago) by bendavid
Content type: text/plain
Branch: MAIN
CVS Tags: Mit_014b, Mit_014a, Mit_014
Changes since 1.2: +4 -54 lines
Log Message:
Refactor lumi selection code a bit

File Contents

# User Rev Content
1 bendavid 1.3 // $Id: RunLumiSelectionMod.cc,v 1.2 2010/05/06 17:30:17 bendavid Exp $
2 bendavid 1.1
3     #include "MitAna/PhysicsMod/interface/RunLumiSelectionMod.h"
4     #include <TTree.h>
5     #include "MitAna/DataTree/interface/Names.h"
6    
7     using namespace mithep;
8    
9     ClassImp(mithep::RunLumiSelectionMod)
10    
11     //--------------------------------------------------------------------------------------------------
12     RunLumiSelectionMod::RunLumiSelectionMod(const char *name, const char *title) :
13     BaseMod(name,title),
14     fAbort(kTRUE),
15 bendavid 1.2 fAcceptMC(kFALSE),
16 bendavid 1.1 fNEvents(0),
17     fNAcceped(0),
18     fNFailed(0),
19 bendavid 1.2 fAcceptCurrentRunLumi(kFALSE)
20 bendavid 1.1 {
21     // Constructor.
22     }
23    
24     //--------------------------------------------------------------------------------------------------
25     RunLumiSelectionMod::~RunLumiSelectionMod()
26     {
27     // Destructor.
28     }
29    
30    
31     //--------------------------------------------------------------------------------------------------
32     void RunLumiSelectionMod::BeginRun()
33     {
34    
35     }
36    
37     //--------------------------------------------------------------------------------------------------
38     void RunLumiSelectionMod::Process()
39     {
40     // Increment counters and stop further processing of an event if current run is excluded
41    
42     ++fNEvents;
43    
44 bendavid 1.2 RunLumiPairType runLumi(GetEventHeader()->RunNum(),GetEventHeader()->LumiSec());
45    
46     //check decision only if lumi section has changed
47     if (runLumi != fCurrentRunLumi) {
48     fAcceptCurrentRunLumi = kFALSE;
49     //check for MC default accept
50     if (fAcceptMC && GetEventHeader()->IsMC()) {
51     fAcceptCurrentRunLumi = kTRUE;
52     }
53     else {
54 bendavid 1.3 fAcceptCurrentRunLumi = fAcceptedRunsLumis.HasRunLumi(runLumi);
55 bendavid 1.2 }
56     fCurrentRunLumi = runLumi;
57     if (0) {
58     printf("Run %u, Lumi %u, accepted = %i\n",runLumi.first,runLumi.second,fAcceptCurrentRunLumi);
59     }
60     }
61    
62 bendavid 1.1 // take action if failed
63 bendavid 1.2 if (!fAcceptCurrentRunLumi) {
64 bendavid 1.1 ++fNFailed;
65     OnFailed();
66     if (fAbort) {
67     SkipEvent(); // abort processing of this event by sub-modules
68     }
69     return;
70     }
71    
72     // take action if accepted
73     ++fNAcceped;
74     IncNEventsProcessed();
75     OnAccepted();
76     }
77    
78     //--------------------------------------------------------------------------------------------------
79     void RunLumiSelectionMod::SlaveBegin()
80     {
81    
82     }
83    
84     //--------------------------------------------------------------------------------------------------
85     void RunLumiSelectionMod::SlaveTerminate()
86     {
87     // Save number of accepted events.
88    
89     SaveNEventsProcessed();
90     }
91 bendavid 1.2
92     //--------------------------------------------------------------------------------------------------
93     void RunLumiSelectionMod::AddJSONFile(const std::string &filepath)
94     {
95 bendavid 1.3 //pass JSON file to map object
96     fAcceptedRunsLumis.AddJSONFile(filepath);
97 bendavid 1.2 }