1 |
#ifndef ANGLE_TUPLE
|
2 |
#define ANGLE_TUPLE
|
3 |
|
4 |
#include <iostream>
|
5 |
#include <fstream>
|
6 |
#include <sstream>
|
7 |
|
8 |
#include "NtuplerBase.h"
|
9 |
#include "Angles.h" // ZZ angles
|
10 |
#include "KinematicsStruct.h" // ZZ & lepton kinematics
|
11 |
#include "WeightStruct.h" // weights for MC
|
12 |
#include "InfoStruct.h" // rn,evt,lumi,channel
|
13 |
#include "GenInfoStruct.h" //
|
14 |
#include "JetInfoStruct.h" // vbf variables
|
15 |
|
16 |
#define VARLIST_JETINFO "nJets/I:ptJet1/F:ptJet2/F:ptJet3/F:ptJet4/F:etaJet1/F:etaJet2/F:etaJet3/F:etaJet4/F:phiJet1/F:phiJet2/F:phiJet3/F:phiJet4/F:mvaJet1/F:mvaJet2/F:mvaJet3/F:mvaJet4/F:mjj/F:dEta/F:etaProd/F"
|
17 |
|
18 |
typedef struct {
|
19 |
Int_t nJets;
|
20 |
Float_t ptJet1,ptJet2,ptJet3,ptJet4;
|
21 |
Float_t etaJet1,etaJet2,etaJet3,etaJet4;
|
22 |
Float_t phiJet1,phiJet2,phiJet3,phiJet4;
|
23 |
Float_t mvaJet1,mvaJet2,mvaJet3,mvaJet4;
|
24 |
Float_t mjj,dEta,etaProd;
|
25 |
} JetInfoStruct;
|
26 |
|
27 |
class AngleTuple : public NtuplerBase {
|
28 |
public :
|
29 |
|
30 |
AngleTuple( const char* fname, const char* tname) : NtuplerBase(fname, tname) {
|
31 |
t->SetDirectory(f);
|
32 |
};
|
33 |
|
34 |
AngleTuple( TFile * f_rhs, const char* tname) : NtuplerBase(f_rhs, tname) {
|
35 |
f_rhs->Print();
|
36 |
t->SetDirectory(f);
|
37 |
};
|
38 |
|
39 |
void makeAngleBranch(Angles &);
|
40 |
void makeAngleBranch(const char *, Angles &);
|
41 |
void makeKinematicsBranch(KinematicsStruct &);
|
42 |
void makeKinematicsBranch(const char *, KinematicsStruct &);
|
43 |
void makeWeightBranch(WeightStruct &);
|
44 |
void makeWeightBranch(const char *,WeightStruct &);
|
45 |
void makeInfoBranch(InfoStruct &);
|
46 |
void makeInfoBranch(const char *, InfoStruct &);
|
47 |
void makeGenInfoBranch(GenInfoStruct &);
|
48 |
void makeGenInfoBranch(const char *, GenInfoStruct &);
|
49 |
void makeJetInfoBranch(JetInfoStruct &);
|
50 |
void makeJetInfoBranch(const char *, JetInfoStruct &);
|
51 |
void makeJetAngleBranches(TString varfile, map<TString,Int_t> *ints=0, map<TString,Float_t> *floats=0);
|
52 |
|
53 |
};
|
54 |
|
55 |
void fillJetInfo( vector<SimpleLepton>,
|
56 |
JetInfoStruct &,
|
57 |
ControlFlags &);
|
58 |
void fillJetAngleBranches( JetInfoStruct, // JetInfoStruct must be filled before calling this
|
59 |
EventData,
|
60 |
NtuplerBase *,
|
61 |
ControlFlags &);
|
62 |
#endif
|