1 |
//--------------------------------------------------------------------------------------------------
|
2 |
// $Id: GeneratorMod.h,v 1.41 2011/07/04 20:36:21 sixie Exp $
|
3 |
//
|
4 |
// GeneratorMod
|
5 |
//
|
6 |
// This module collects interesting generator information and publishes collections
|
7 |
// for subsequent modules.
|
8 |
//
|
9 |
// Authors: G.Ceballos
|
10 |
//--------------------------------------------------------------------------------------------------
|
11 |
|
12 |
#ifndef MITPHYSICS_MODS_GENERATORMOD_H
|
13 |
#define MITPHYSICS_MODS_GENERATORMOD_H
|
14 |
|
15 |
#include "MitAna/TreeMod/interface/BaseMod.h"
|
16 |
#include "MitAna/DataTree/interface/MCParticleFwd.h"
|
17 |
#include "MitAna/DataTree/interface/MetFwd.h"
|
18 |
|
19 |
class TH1D;
|
20 |
class TH2D;
|
21 |
|
22 |
namespace mithep
|
23 |
{
|
24 |
class GeneratorMod : public BaseMod
|
25 |
{
|
26 |
public:
|
27 |
GeneratorMod(const char *name="GeneratorMod",
|
28 |
const char *title="Generator information module");
|
29 |
~GeneratorMod();
|
30 |
|
31 |
Bool_t GetIsData() const { return fIsData; }
|
32 |
Bool_t GetApplyISRFilter() const { return fApplyISRFilter; }
|
33 |
Bool_t GetCopyArrays() const { return fCopyArrays; }
|
34 |
const char *GetMCAllLeptonsName() const { return fMCAllLeptonsName; }
|
35 |
const char *GetMCBosonsName() const { return fMCBosonsName; }
|
36 |
const char *GetMCISRPhotonsName() const { return fMCISRPhotonsName; }
|
37 |
const char *GetMCLeptonsName() const { return fMCLeptonsName; }
|
38 |
const char *GetMCMETName() const { return fMCMETName; }
|
39 |
const char *GetMCNeutrinosName() const { return fMCNeutrinosName; }
|
40 |
const char *GetMCPartName() const { return fMCPartName; }
|
41 |
const char *GetMCPhotonsName() const { return fMCPhotonsName; }
|
42 |
const char *GetMCQuarksName() const { return fMCQuarksName; }
|
43 |
const char *GetMCRadPhotonsName() const { return fMCRadPhotonsName; }
|
44 |
const char *GetMCTausName() const { return fMCTausName; }
|
45 |
const char *GetMCqqHsName() const { return fMCqqHsName; }
|
46 |
Bool_t GetPrintDebug() const { return fPrintDebug; }
|
47 |
void SetIsData(Bool_t b) { fIsData = b; }
|
48 |
void SetApplyISRFilter(Bool_t b) { fApplyISRFilter = b; }
|
49 |
void SetApplyVVFilter(Bool_t b) { fApplyVVFilter = b; }
|
50 |
void SetApplyVGFilter(Bool_t b) { fApplyVGFilter = b; }
|
51 |
void SetAllowWWEvents(Bool_t b) { fAllowWWEvents = b; }
|
52 |
void SetAllowWZEvents(Bool_t b) { fAllowWZEvents = b; }
|
53 |
void SetAllowZZEvents(Bool_t b) { fAllowZZEvents = b; }
|
54 |
void SetCopyArrays(Bool_t b) { fCopyArrays = b; }
|
55 |
void SetEtaLeptonMax(Double_t x) { fEtaLeptonMax = x; }
|
56 |
void SetEtaPhotonMax(Double_t x) { fEtaPhotonMax = x; }
|
57 |
void SetEtaRadPhotonMax(Double_t x) { fEtaRadPhotonMax = x; }
|
58 |
void SetMCAllLeptonsName(const char * s) { fMCAllLeptonsName = s; }
|
59 |
void SetMCBosonsName(const char *s) { fMCBosonsName = s; }
|
60 |
void SetMCISRPhotonsName(const char *s) { fMCISRPhotonsName = s; }
|
61 |
void SetMCLeptonsName(const char * s) { fMCLeptonsName = s; }
|
62 |
void SetMCMETName(const char * s) { fMCMETName = s; }
|
63 |
void SetMCNeutrinosName(const char *s) { fMCNeutrinosName = s; }
|
64 |
void SetMCPartName(const char *s) { fMCPartName = s; }
|
65 |
void SetMCPhotonsName(const char *s) { fMCPhotonsName = s; }
|
66 |
void SetMCQuarksName(const char *s) { fMCQuarksName = s; }
|
67 |
void SetMCRadPhotonsName(const char *s) { fMCRadPhotonsName = s; }
|
68 |
void SetMCTausName(const char *s) { fMCTausName = s; }
|
69 |
void SetMCqqHsName(const char *s) { fMCqqHsName = s; }
|
70 |
void SetMassMaxCut(Double_t x) { fMassMaxCut = x; }
|
71 |
void SetMassMinCut(Double_t x) { fMassMinCut = x; }
|
72 |
void SetPdgIdCut(UInt_t d) { fPdgIdCut = d; }
|
73 |
void SetPrintDebug(bool b) { fPrintDebug = b; }
|
74 |
void SetPtLeptonMin(Double_t x) { fPtLeptonMin = x; }
|
75 |
void SetPtPhotonMin(Double_t x) { fPtPhotonMin = x; }
|
76 |
void SetPtRadPhotonMin(Double_t x) { fPtRadPhotonMin = x; }
|
77 |
|
78 |
protected:
|
79 |
void Process();
|
80 |
void SlaveBegin();
|
81 |
|
82 |
Bool_t fIsData; //=true then it does nothing (def=0)
|
83 |
Bool_t fPrintDebug; //=true then print debug info (def=0)
|
84 |
Bool_t fCopyArrays; //=true then copy array content for skimming (def=0)
|
85 |
TString fMCPartName; //name of MCParticle branch
|
86 |
TString fMCMETName; //name of met coll
|
87 |
TString fMCLeptonsName; //name of lepton coll (from W/Z/H)
|
88 |
TString fMCAllLeptonsName; //name of lepton coll (all)
|
89 |
TString fMCTausName; //name of tau coll (hadronic decays)
|
90 |
TString fMCNeutrinosName; //name of neutrinos coll
|
91 |
TString fMCQuarksName; //name of quarks coll
|
92 |
TString fMCqqHsName; //name of qqH coll
|
93 |
TString fMCBosonsName; //name of bosons coll
|
94 |
TString fMCPhotonsName; //name of photons coll
|
95 |
TString fMCRadPhotonsName; //name of rad photons coll
|
96 |
TString fMCISRPhotonsName; //name of ISR photons coll
|
97 |
Double_t fPtLeptonMin; //pt min for leptons
|
98 |
Double_t fEtaLeptonMax; //eta max for leptons
|
99 |
Double_t fPtPhotonMin; //pt min for photons
|
100 |
Double_t fEtaPhotonMax; //eta max for photons
|
101 |
Double_t fPtRadPhotonMin; //pt min for rad photons
|
102 |
Double_t fEtaRadPhotonMax; //eta max for rad photons
|
103 |
UInt_t fPdgIdCut; //pdg id for particle used to select on mass (def=0)
|
104 |
Double_t fMassMinCut; //mass min for given PdgId particle
|
105 |
Double_t fMassMaxCut; //mass max for given PdgId particle
|
106 |
Bool_t fApplyISRFilter; //=true then apply ISR filter (def=0)
|
107 |
Bool_t fApplyVVFilter; //=true then apply VV filters (def=0)
|
108 |
Bool_t fApplyVGFilter; //=true then apply VG filters (def=0)
|
109 |
Bool_t fAllowWWEvents; //=true then allow WW events (def=0)
|
110 |
Bool_t fAllowWZEvents; //=true then allow WZ events (def=0)
|
111 |
Bool_t fAllowZZEvents; //=true then allow ZZ events (def=0)
|
112 |
const MCParticleCol *fParticles; //!MCParticle branch
|
113 |
TH1D *hDGenPtMin; //!histo for Pt min for leptons from W/Z
|
114 |
TH1D *hDGenMet[10]; //!histos for gen MET
|
115 |
TH1D *hDGenLeptons[40]; //!histos for W/Z/H leptons
|
116 |
TH1D *hDGenAllLeptons[20]; //!histos for all leptons
|
117 |
TH1D *hDGenTaus[20]; //!histos for taus
|
118 |
TH1D *hDGenNeutrinos[20]; //!histos for neutrinos
|
119 |
TH1D *hDGenQuarks[20]; //!histos for quarks
|
120 |
TH1D *hDGenWBF[20]; //!histos for WBF
|
121 |
TH1D *hDGenBosons[15]; //!histos for bosons
|
122 |
TH1D *hDGenPhotons[20]; //!histos for photons
|
123 |
TH1D *hDGenRadPhotons[20]; //!histos for rad photons
|
124 |
TH1D *hDGenISRPhotons[20]; //!histos for ISR photons
|
125 |
TH1D *hDVMass[20]; //!histos for auxiliar MG work
|
126 |
TH1D *hDVVMass[50]; //!histos for auxiliar VV work
|
127 |
MCParticleArr *fGenLeptons; //!copied owning array for skimming
|
128 |
MCParticleArr *fGenAllLeptons; //!copied owning array for skimming
|
129 |
MCParticleArr *fGenTaus; //!copied owning array for skimming
|
130 |
MCParticleArr *fGenNeutrinos; //!copied owning array for skimming
|
131 |
MCParticleArr *fGenQuarks; //!copied owning array for skimming
|
132 |
MCParticleArr *fGenqqHs; //!copied owning array for skimming
|
133 |
MCParticleArr *fGenBosons; //!copied owning array for skimming
|
134 |
MCParticleArr *fGenPhotons; //!copied owning array for skimming
|
135 |
MCParticleArr *fGenRadPhotons; //!copied owning array for skimming
|
136 |
MCParticleArr *fGenISRPhotons; //!copied owning array for skimming
|
137 |
|
138 |
ClassDef(GeneratorMod, 1) // Module to gather generator information
|
139 |
};
|
140 |
}
|
141 |
#endif
|