1 |
//--------------------------------------------------------------------------------------------------
|
2 |
// $Id: ElectronIDMod.h,v 1.3 2008/10/06 15:50:42 ceballos Exp $
|
3 |
//
|
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 |
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 |
int fNEventsProcessed; // Number of events processed
|
47 |
|
48 |
double fElectronPtMin; //min Pt requirement
|
49 |
double fIDLikelihoodCut; //Cut value for ID likelihood
|
50 |
double fTrackIsolationCut; //Cut value for track isolation
|
51 |
double fCaloIsolationCut; //Cut value for calo isolation
|
52 |
double fEcalJurassicIsolationCut; //Cut value for ecal jurassic isolation
|
53 |
double fHcalJurassicIsolationCut; //Cut value for hcal jurassic isolation
|
54 |
|
55 |
void Begin();
|
56 |
void Process();
|
57 |
void SlaveBegin();
|
58 |
void SlaveTerminate();
|
59 |
void Terminate();
|
60 |
|
61 |
|
62 |
ClassDef(ElectronIDMod,1) // TAM example analysis module
|
63 |
};
|
64 |
}
|
65 |
#endif
|