1 |
loizides |
1.1 |
//--------------------------------------------------------------------------------------------------
|
2 |
ceballos |
1.3 |
// $Id: ElectronIDMod.h,v 1.2 2008/10/23 12:23:31 ceballos Exp $
|
3 |
loizides |
1.1 |
//
|
4 |
|
|
// ElectronIDMod
|
5 |
|
|
//
|
6 |
|
|
// This Module applies electron ID criteria and exports a pointer to a collection
|
7 |
|
|
// of Good Electrons according to some specified ID scheme
|
8 |
|
|
//
|
9 |
|
|
// Authors: S.Xie
|
10 |
|
|
//--------------------------------------------------------------------------------------------------
|
11 |
|
|
|
12 |
|
|
#ifndef MITANA_TREEMOD_ELECTRONIDMOD_H
|
13 |
|
|
#define MITANA_TREEMOD_ELECTRONIDMOD_H
|
14 |
|
|
|
15 |
|
|
#include "MitAna/TreeMod/interface/BaseMod.h"
|
16 |
|
|
#include "MitAna/DataTree/interface/Collections.h"
|
17 |
|
|
|
18 |
|
|
class TH1D;
|
19 |
|
|
class TH2D;
|
20 |
|
|
|
21 |
|
|
namespace mithep
|
22 |
|
|
{
|
23 |
|
|
class ElectronIDMod : public BaseMod
|
24 |
|
|
{
|
25 |
|
|
public:
|
26 |
|
|
ElectronIDMod(const char *name="ElectronIDMod",
|
27 |
|
|
const char *title="Example analysis module with all branches");
|
28 |
|
|
~ElectronIDMod() {}
|
29 |
|
|
void SetPrintDebug(bool b) { fPrintDebug = b; }
|
30 |
|
|
void SetElectronPtMin(double p) { fElectronPtMin = p; }
|
31 |
|
|
void SetElectronIDType(TString type) { fElectronIDType = type; }
|
32 |
|
|
void SetElectronIsoType(TString type) { fElectronIsoType = type; }
|
33 |
|
|
void SetIDLikelihoodCut(Double_t cut) { fIDLikelihoodCut = cut; }
|
34 |
|
|
void SetTrackIsolationCut(Double_t cut) { fTrackIsolationCut = cut; }
|
35 |
|
|
void SetCaloIsolationCut(Double_t cut) { fCaloIsolationCut = cut; }
|
36 |
|
|
void SetEcalJurassicIsolationCut(Double_t cut) { fEcalJurassicIsolationCut = cut; }
|
37 |
|
|
void SetHcalJurassicIsolationCut(Double_t cut) { fHcalJurassicIsolationCut = cut; }
|
38 |
|
|
void SetGoodElectronsName(TString s) { fGoodElectronsName = s; }
|
39 |
|
|
protected:
|
40 |
ceballos |
1.3 |
bool fPrintDebug; //flag for printing debug output
|
41 |
|
|
TString fElectronName; //name of electron collection
|
42 |
|
|
TString fGoodElectronsName ; //name of good electrons collection
|
43 |
|
|
TString fElectronIDType; //Type of electron ID we impose
|
44 |
|
|
TString fElectronIsoType; //Type of electron Isolation we impose
|
45 |
|
|
ElectronCol *fElectrons; //!Electron branch
|
46 |
|
|
|
47 |
|
|
double fElectronPtMin; //min Pt requirement
|
48 |
|
|
double fIDLikelihoodCut; //Cut value for ID likelihood
|
49 |
|
|
double fTrackIsolationCut; //Cut value for track isolation
|
50 |
|
|
double fCaloIsolationCut; //Cut value for calo isolation
|
51 |
|
|
double fEcalJurassicIsolationCut; //Cut value for ecal jurassic isolation
|
52 |
|
|
double fHcalJurassicIsolationCut; //Cut value for hcal jurassic isolation
|
53 |
loizides |
1.1 |
|
54 |
ceballos |
1.3 |
int fNEventsProcessed; // Number of events processed
|
55 |
ceballos |
1.2 |
|
56 |
loizides |
1.1 |
void Begin();
|
57 |
|
|
void Process();
|
58 |
|
|
void SlaveBegin();
|
59 |
|
|
void SlaveTerminate();
|
60 |
|
|
void Terminate();
|
61 |
|
|
|
62 |
|
|
|
63 |
|
|
ClassDef(ElectronIDMod,1) // TAM example analysis module
|
64 |
|
|
};
|
65 |
|
|
}
|
66 |
|
|
#endif
|