ViewVC Help
View File | Revision Log | Show Annotations | Root Listing
root/cvsroot/UserCode/MitPhysics/Mods/src/JetCleaningMod.cc
Revision: 1.4
Committed: Fri Nov 28 09:13:50 2008 UTC (16 years, 5 months ago) by loizides
Content type: text/plain
Branch: MAIN
Changes since 1.3: +24 -80 lines
Log Message:
Finished refurbishing

File Contents

# User Rev Content
1 loizides 1.4 // $Id: JetCleaningMod.cc,v 1.3 2008/11/27 16:30:27 loizides Exp $
2 loizides 1.1
3     #include "MitPhysics/Mods/interface/JetCleaningMod.h"
4     #include "MitCommon/MathTools/interface/MathUtils.h"
5 loizides 1.3 #include "MitPhysics/Init/interface/ModNames.h"
6 loizides 1.1
7     using namespace mithep;
8    
9     ClassImp(mithep::JetCleaningMod)
10    
11     //--------------------------------------------------------------------------------------------------
12 loizides 1.4 JetCleaningMod::JetCleaningMod(const char *name, const char *title) :
13 loizides 1.1 BaseMod(name,title),
14 loizides 1.3 fCleanElectronsName(ModNames::gkCleanElectronsName),
15     fGoodJetsName(ModNames::gkGoodJetsName),
16 loizides 1.4 fCleanJetsName(ModNames::gkCleanJetsName)
17 loizides 1.1 {
18     // Constructor.
19     }
20    
21     //--------------------------------------------------------------------------------------------------
22 loizides 1.4 void JetCleaningMod::Process()
23 loizides 1.1 {
24 loizides 1.4 // Process entries of the tree.
25 loizides 1.1
26 loizides 1.4 // get input collections
27     ElectronOArr *CleanElectrons = GetObjThisEvt<ElectronOArr>(fCleanElectronsName);
28     JetOArr *GoodJets = GetObjThisEvt<JetOArr>(fGoodJetsName);
29 loizides 1.1
30 loizides 1.4 // create output collection
31     JetOArr *CleanJets = new JetOArr;
32     CleanJets->SetName(fCleanJetsName);
33 loizides 1.1
34 loizides 1.4 // Remove any jet that overlaps in eta, phi with an isolated electron.
35 loizides 1.1 for (UInt_t i=0; i<GoodJets->GetEntries(); ++i) {
36 loizides 1.4 const Jet *jet = GoodJets->At(i);
37    
38     Bool_t isElectronOverlap = false;
39 loizides 1.1
40     //Check for overlap with an electron
41 loizides 1.4 for (UInt_t j=0; j<CleanElectrons->Entries(); j++) {
42     Double_t deltaR = MathUtils::DeltaR(CleanElectrons->At(j)->Mom(),jet->Mom());
43 loizides 1.1 if (deltaR < 0.3) {
44 loizides 1.4 isElectronOverlap = kTRUE;
45 loizides 1.1 break;
46     }
47     }
48    
49 loizides 1.4 if (isElectronOverlap)
50     continue;
51 loizides 1.1
52 loizides 1.4 CleanJets->Add(jet);
53     }
54 loizides 1.1
55 loizides 1.4 // add to event for other modules to use
56     AddObjThisEvt(CleanJets);
57 loizides 1.1 }