ViewVC Help
View File | Revision Log | Show Annotations | Root Listing
root/cvsroot/UserCode/MitAna/TreeMod/src/AnaFwkMod.cc
(Generate patch)

Comparing UserCode/MitAna/TreeMod/src/AnaFwkMod.cc (file contents):
Revision 1.15 by bendavid, Fri Mar 11 04:03:54 2011 UTC vs.
Revision 1.18 by bendavid, Wed May 30 16:23:54 2012 UTC

# Line 3 | Line 3
3   #include "MitAna/TreeMod/interface/AnaFwkMod.h"
4   #include "MitAna/DataUtil/interface/Debug.h"
5   #include "MitAna/DataTree/interface/Names.h"
6 + #include "MitAna/DataTree/interface/PileupInfo.h"
7   #include <TFile.h>
8   #include <TH1D.h>
9 + #include <TH3D.h>
10   #include <TStopwatch.h>
11   #include <TTree.h>
12  
# Line 27 | Line 29 | AnaFwkMod::AnaFwkMod(const char *name, c
29    fReload(kFALSE),
30    fCurEnt(-2),
31    fNEventsSkimmed(0),
32 <  fNEventsSkipped(0)
32 >  fNEventsSkipped(0),
33 >  fPileupInfoName("PileupInfo"),
34 >  fDoPUInfo(kFALSE),
35 >  hNPU(0),
36 >  hNPU50ns(0)
37   {
38    // Constructor.
39   }
# Line 92 | Line 98 | void AnaFwkMod::CopyAllEventHeaders()
98        return;
99      }
100      fAllHeadTree->GetEntry(fCurEnt++);
101 <    while(fCurEnt<=nemax && fAllEventHeader->Skimmed()) {
101 >    while (fCurEnt <= nemax && fAllEventHeader->Skimmed()) {
102        EventHeader *eh = fAllHeaders.AddNew();
103 <      eh->SetRunNum(fAllEventHeader->RunNum());
104 <      eh->SetEvtNum(fAllEventHeader->EvtNum());
105 <      eh->SetLumiSec(fAllEventHeader->LumiSec());
103 >      eh->SetRunNum  (fAllEventHeader->RunNum());
104 >      eh->SetEvtNum  (fAllEventHeader->EvtNum());
105 >      eh->SetLumiSec (fAllEventHeader->LumiSec());
106        eh->SetRunEntry(fAllEventHeader->RunEntry());
107 <      eh->SetSkimmed(fAllEventHeader->Skimmed());
107 >      eh->SetSkimmed (fAllEventHeader->Skimmed());
108        fAllHeadTree->GetEntry(fCurEnt++);
109      }
110 <    if ((fAllEventHeader->RunNum()!=curev->RunNum())   ||
111 <        (fAllEventHeader->EvtNum()!=curev->EvtNum())   ||
112 <        (fAllEventHeader->LumiSec()!=curev->LumiSec()) ||
113 <        (fAllEventHeader->RunEntry()!=curev->RunEntry())) {
110 >    if ((fAllEventHeader->RunNum()   != curev->RunNum())   ||
111 >        (fAllEventHeader->EvtNum()   != curev->EvtNum())   ||
112 >        (fAllEventHeader->LumiSec()  != curev->LumiSec())  ||
113 >        (fAllEventHeader->RunEntry() != curev->RunEntry())) {
114        SendError(kWarning, "CopyAllEventHeaders",
115                  "Event header information for entry %d inconsistent: "
116                  "%d==%d, %d==%d, %d==%d, %d==%d",
# Line 120 | Line 126 | void AnaFwkMod::CopyAllEventHeaders()
126      if (fCurEnt<nemax) {
127        Int_t testEnt = fCurEnt;
128        fAllHeadTree->GetEntry(testEnt++);
129 <      while(testEnt<=nemax && fAllEventHeader->Skimmed())
129 >      while (testEnt<=nemax && fAllEventHeader->Skimmed())
130          fAllHeadTree->GetEntry(testEnt++);
131        if (testEnt==nemax+1) { // need to add remaining skimmed events
132          fAllHeadTree->GetEntry(fCurEnt++);
133          while(fCurEnt<=nemax) {
134            EventHeader *eh = fAllHeaders.AddNew();
135 <          eh->SetRunNum(fAllEventHeader->RunNum());
136 <          eh->SetEvtNum(fAllEventHeader->EvtNum());
137 <          eh->SetLumiSec(fAllEventHeader->LumiSec());
135 >          eh->SetRunNum  (fAllEventHeader->RunNum());
136 >          eh->SetEvtNum  (fAllEventHeader->EvtNum());
137 >          eh->SetLumiSec (fAllEventHeader->LumiSec());
138            eh->SetRunEntry(fAllEventHeader->RunEntry());
139 <          eh->SetSkimmed(fAllEventHeader->Skimmed());
139 >          eh->SetSkimmed (fAllEventHeader->Skimmed());
140            fAllHeadTree->GetEntry(fCurEnt++);
141          }
142          if (fCurEnt != nemax+1) {
# Line 202 | Line 208 | void AnaFwkMod::Process()
208      }
209    }
210  
211 +  if (GetEventHeader()->IsMC()) {
212 +    LoadBranch(fPileupInfoName);  
213 +    Int_t npu[3] = {0,0,0};
214 +    for (UInt_t i=0; i<fPileupInfo->GetEntries(); ++i) {
215 +      const PileupInfo *puinfo = fPileupInfo->At(i);
216 +      if (puinfo->GetBunchCrossing()==0) npu[0]= puinfo->GetPU_NumInteractions();
217 +      else if (puinfo->GetBunchCrossing()==-1) npu[1] = puinfo->GetPU_NumInteractions();
218 +      else if (puinfo->GetBunchCrossing()==1) npu[2] = puinfo->GetPU_NumInteractions();
219 +    }
220 +    
221 +    hNPU->Fill(npu[0]);
222 +    hNPU50ns->Fill(npu[0],npu[1],npu[2]);
223 +  }
224 +
225 +
226    if (doPrint) {
227      fSWevent->Stop();
228      Info("Process",
# Line 210 | Line 231 | void AnaFwkMod::Process()
231           fSWevent->RealTime()/nProcessed,
232           fSWevent->CpuTime()/nProcessed);
233      fSWevent->Start();
234 <  }  
234 >  }
235 >  
236 >    
237   }
238  
239   //--------------------------------------------------------------------------------------------------
# Line 226 | Line 249 | void AnaFwkMod::SlaveBegin()
249                "Could not publish all event headers with name %s.", fAllHeaders.GetName());
250      return;
251    }
252 +  
253 +  ReqBranch(fPileupInfoName, fPileupInfo);
254 +  
255 +  hNPU = new TH1D("hNPU", "hNPU", 201, -0.5, 200.5);
256 +  AddOutput(hNPU);  
257 +  
258 +  hNPU50ns = new TH3D("hNPU50ns", "hNPU50ns", 201, -0.5, 200.5, 201, -0.5, 200.5, 201, -0.5, 200.5);
259 +  AddOutput(hNPU50ns);  
260 +  
261   }
262  
263   //--------------------------------------------------------------------------------------------------

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines