ViewVC Help
View File | Revision Log | Show Annotations | Root Listing
root/cvsroot/UserCode/MitPhysics/Mods/interface/GeneratorMod.h
Revision: 1.44
Committed: Fri Apr 19 15:03:39 2013 UTC (12 years ago) by ceballos
Content type: text/plain
Branch: MAIN
CVS Tags: Mit_029c
Changes since 1.43: +3 -1 lines
Log Message:
new updates

File Contents

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