1 |
//$Id:MakeNtuple.h,v 1.1 2011/07/12 Mingming Yang
|
2 |
|
3 |
#ifndef MITHGG_MODS_MAKENTUPLE_H
|
4 |
#define MITHGG_MODS_MAKENTUPLE_H
|
5 |
|
6 |
#include "MitAna/TreeMod/interface/BaseMod.h"
|
7 |
#include "MitAna/DataTree/interface/CollectionsFwd.h"
|
8 |
#include "MitAna/DataTree/interface/PileupEnergyDensityCol.h"
|
9 |
#include "MitAna/DataTree/interface/PileupInfoCol.h"
|
10 |
#include "MitPhysics/Utils/interface/PhotonTools.h"
|
11 |
#include "MitPhysics/Utils/interface/MVATools.h"
|
12 |
|
13 |
#include "MitAna/DataTree/interface/PhotonCol.h"
|
14 |
#include "MitAna/DataTree/interface/ElectronCol.h"
|
15 |
#include "MitAna/DataTree/interface/VertexCol.h"
|
16 |
#include "MitAna/DataTree/interface/TrackCol.h"
|
17 |
#include "MitAna/DataTree/interface/MCParticleCol.h"
|
18 |
#include "MitAna/DataTree/interface/MCEventInfo.h"
|
19 |
#include "MitAna/DataTree/interface/CollectionsFwd.h"
|
20 |
#include "MitAna/DataTree/interface/PileupEnergyDensityCol.h"
|
21 |
#include "MitPhysics/Utils/interface/VertexTools.h"
|
22 |
|
23 |
class TH1D;
|
24 |
class MCEventInfo;
|
25 |
class IClassifierReader;
|
26 |
class ClusteringModuleCl3d;
|
27 |
|
28 |
class TNtuple;
|
29 |
|
30 |
namespace mithep
|
31 |
{
|
32 |
class MakeNtuple : public BaseMod
|
33 |
{
|
34 |
public:
|
35 |
MakeNtuple(const char *name = "MakeNtuple", const char *title="Make Ntuple");
|
36 |
|
37 |
protected:
|
38 |
void Process();
|
39 |
void SlaveBegin();
|
40 |
|
41 |
void SetTrigObjsName(const char *name) { fTrigObjsName = name; }
|
42 |
void SetPhotonName(TString name) { fPhotonName=name; }
|
43 |
void SetPhotonsFromBranch(Bool_t b) { fPhotonsFromBranch = b; }
|
44 |
void SetIsData(Bool_t b) { fIsData = b; }
|
45 |
void SetIsSignal(Bool_t b) { fIsSignal = b; }
|
46 |
void SetOverlapCut(double c) { fOverlapCut = c; }
|
47 |
int MatchRecPhotonsToGenPhotonsReal(const Photon *photonRec);
|
48 |
void FillPhotonTree(const Photon *p,const Photon *p_accompany,const Vertex *SelVtx,const PFCandidateCol *fPFCands,Float_t GenPhotonID,Float_t GenPhotonMotherID,Float_t VtxProb, Float_t EventNum,Float_t _decayZ);
|
49 |
void FindHiggsPtAndZ(Float_t& pt, Float_t& decayZ, Float_t& mass);
|
50 |
|
51 |
Bool_t fPhotonsFromBranch;
|
52 |
Bool_t fIsData; // looking at Data (or MC)
|
53 |
Bool_t fIsSignal;
|
54 |
Bool_t fApplyElectronVeto;
|
55 |
Bool_t finvertElectronVeto;
|
56 |
TString fTrigObjsName; // name of trigger objects
|
57 |
TString fPhotonName;
|
58 |
TString fElectronName;
|
59 |
TString fTrackBranchName;
|
60 |
TString fPVName;
|
61 |
TString fPileUpDenName;
|
62 |
TString fMcEventInfoName;
|
63 |
TString fMcParticleName;
|
64 |
TString fPileupInfoName;
|
65 |
TString fBeamSpotName;
|
66 |
TString fConversionName;
|
67 |
TString fPFCandName;
|
68 |
const PhotonCol *fPhotons; //! photon from data stream
|
69 |
const ElectronCol *fElectrons;
|
70 |
const TrackCol *fTracks;
|
71 |
const VertexCol *fPV;
|
72 |
const PileupEnergyDensityCol *fPileUpDen;
|
73 |
const MCEventInfo *fMcEventInfo; //! MC event information branch
|
74 |
const PileupInfoCol *fPileupInfos; //
|
75 |
const MCParticleCol *fMcParticles;
|
76 |
const BeamSpotCol *fBeamSpot;
|
77 |
const DecayParticleCol *fConversions;
|
78 |
const PFCandidateCol *fPFCands;
|
79 |
double fPhotonPtMin;
|
80 |
double fOverlapCut; // cut to allow for rejection of overlap
|
81 |
Float_t fprocessid;
|
82 |
Float_t fNVertexesGenPile;
|
83 |
Float_t fMatchedGenPhotonID;
|
84 |
Float_t fMatchedGenPhotonMotherID;
|
85 |
TNtuple *hPhotonNtuple;
|
86 |
VertexTools fVtxTools;
|
87 |
ClassDef(MakeNtuple, 1) // Make Ntuple module
|
88 |
};
|
89 |
}
|
90 |
#endif
|