forked from iLCSoft/LCTuple
-
Notifications
You must be signed in to change notification settings - Fork 4
Expand file tree
/
Copy pathJetBranches.h
More file actions
167 lines (141 loc) · 8.45 KB
/
JetBranches.h
File metadata and controls
167 lines (141 loc) · 8.45 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
/*
* =====================================================================================
*
* Filename: JetBranches.h
*
* Description: JetBranches holds branches created from a jet collection
* created by Satoru Jet Finder processor.
* JetBranches has two steerable parameters which are optionally
* set in the steering file:
* - writeExtraParameters: if set to TRUE, the fill function
* calculates some extra parameters using parameters provided
* by the jet finding algorithm. Default value is FALSE.
* See class data members for a list of extra parameters.
* - writeTaggingParameters: if set to TRUE, the fill function
* creates branches for jet parameters coming form flavor tagging
* processor. If no flavor tagging processr is used, this should
* be set to FALSE to prevent errors. Default value is FALSE.
* See class data members for a list of extra parameters.
*
* Version: 1.0
* Created: 05/26/2015 02:35:22 PM
* Revision: none
* Compiler: gcc
*
* Author: Claude Duerig, Felix Mueller, Aliakbar Ebrahimi
* Organization: DESY
*
* =====================================================================================
*/
#ifndef JetBranches_h
#define JetBranches_h 1
/* ##### HEADER FILE INCLUDES ################################################### */
#include <vector>
#include "LCTupleConf.h"
#include "UTIL/PIDHandler.h"
#include "CollectionBranches.h"
class TTree ;
namespace EVENT{
class LCCollection ;
class LCCEvent ;
}
/** JetBranches holds branches created from a ReconstructedParticle collection
*
* @author F. Gaede, DESY
* @version $Id: JetBranches.h 4433 2013-01-24 13:09:57Z boehmej $
*/
/*
* =====================================================================================
* Class: JetBranches
* Description: holds branches created by a SatoruJetFinder processor
* =====================================================================================
*/
class JetBranches : public CollectionBranches
{
public:
/* ==================== LIFECYCLE ======================================= */
JetBranches () {}; /* constructor */
JetBranches(const JetBranches&) = delete ;
JetBranches& operator=(const JetBranches&) = delete ;
virtual ~JetBranches() {} ; /* Destructor */
/* ==================== ACCESSORS ======================================= */
// Following two functions are used to access parameters set in a steering file
void writeExtraParameters(bool setextraparameters){ _writeExtraParameters = setextraparameters; };
void writeTaggingParameters(bool settaggingparameters){ _writeTaggingParameters = settaggingparameters; };
void writeDaughtersParameters(bool setdaughtersparameters){ _writeDaughtersParameters = setdaughtersparameters; };
/* ==================== MUTATORS ======================================= */
/* ==================== OPERATORS ======================================= */
virtual void initBranches( TTree* tree, const std::string& prefix="" ) ; //const char* prefix=0) ;
virtual void fill(const EVENT::LCCollection* col, EVENT::LCEvent* evt ) ;
private:
/* ==================== METHODS ======================================= */
/* ==================== DATA MEMBERS ======================================= */
bool _writeExtraParameters {} ; /* Whether to write calculated parameters */
bool _writeTaggingParameters {} ; /* Whether to write parameters from tagging processor */
bool _writeDaughtersParameters {} ; /* Whether to write daughters */
unsigned int _njet {} ; /* Number of Jets */
// Deafault jet parameters
float _jmox[ LCT_JET_MAX ] {} ; /* Jet X-Momentum */
float _jmoy[ LCT_JET_MAX ] {} ; /* Jet Y-Momentum */
float _jmoz[ LCT_JET_MAX ] {}; /* Jet Z-Momentum */
float _jmas[ LCT_JET_MAX ] {}; /* Jet Mass */
float _jene[ LCT_JET_MAX ] {}; /* Jet Energy */
float _jcha[ LCT_JET_MAX ] {}; /* Jet Charge */
float _jcov0[ LCT_JET_MAX ] {}; /* Jet Covariance matrix element 0 */
float _jcov1[ LCT_JET_MAX ] {}; /* Jet Covariance matrix element 1 */
float _jcov2[ LCT_JET_MAX ] {}; /* Jet Covariance matrix element 2 */
float _jcov3[ LCT_JET_MAX ] {}; /* Jet Covariance matrix element 3 */
float _jcov4[ LCT_JET_MAX ] {}; /* Jet Covariance matrix element 4 */
float _jcov5[ LCT_JET_MAX ] {}; /* Jet Covariance matrix element 5 */
float _jcov6[ LCT_JET_MAX ] {}; /* Jet Covariance matrix element 6 */
float _jcov7[ LCT_JET_MAX ] {}; /* Jet Covariance matrix element 7 */
float _jcov8[ LCT_JET_MAX ] {}; /* Jet Covariance matrix element 8 */
float _jcov9[ LCT_JET_MAX ] {}; /* Jet Covariance matrix element 9 */
// Used for tagging parameters
float _btag[ LCT_JET_MAX ] {}; /* ? */
float _ctag[ LCT_JET_MAX ] {}; /* ? */
float _bctag[ LCT_JET_MAX ] {}; /* ? */
float _bcat[ LCT_JET_MAX ] {}; /* ? */
float _otag[ LCT_JET_MAX ] {}; /* ? */
int algo{}; /* ? */
int ibtag{}; /* ? */
int ictag{}; /* ? */
int iotag{}; /* ? */
int ibcat{}; /* ? */
lcio::PIDHandler *pid{};
int _jnpid {}; /* ? */
// Used for extra parameters
float _jevis {}; /* Jet Visible Energy */
float _jPxvis{}; /* Jet Momentum (x-component) */
float _jPyvis{}; /* Jet Momentum (y-component) */
float _jPzvis{}; /* Jet Momentum (z-component) */
float _jPtvis{}; /* Visible transverse momentum */
float _jmom[ LCT_JET_MAX ]{} ; /* Jet Total Momentum */
float _jmmax{} ; /* Maximum mass of the Jets */
float _jcost[ LCT_JET_MAX ] {}; /* ? */
float _jTheta{}; /* ? */
float _jcosTheta{}; /* Angle between z-axis and jet */
float _jmvis{}; /* Visible mass */
float _jEmiss{}; /* Missing energy */
float _jMmiss{}; /* Missing Mass */
float _jMmissq{}; /* Missing mass squared */
unsigned int _njetpfo[ LCT_JET_MAX ] {}; /* Number of PFOs in a jet */
int _jetpfoori[ LCT_JET_MAX ][ LCT_JET_PARTICLES_MAX ] {} ; /* PFOs collection indexes for each jet */
unsigned int _ndaughters[ LCT_JET_MAX ] {}; /* Number of PFOs in a jet */
unsigned int _ntracks[ LCT_JET_MAX ] {}; /* Number of tracks in a jet */
unsigned int _nclusters[ LCT_JET_MAX ] {}; /* Number of clusters in a jet */
float _daughters_PX[ LCT_JET_MAX ][ LCT_JET_PARTICLES_MAX ] {} ; /* PFOs PX */
float _daughters_PY[ LCT_JET_MAX ][ LCT_JET_PARTICLES_MAX ] {} ; /* PFOs PY */
float _daughters_PZ[ LCT_JET_MAX ][ LCT_JET_PARTICLES_MAX ] {} ; /* PFOs PZ */
float _daughters_E[ LCT_JET_MAX ][ LCT_JET_PARTICLES_MAX ] {} ; /* PFOs E */
float _daughters_M[ LCT_JET_MAX ][ LCT_JET_PARTICLES_MAX ] {} ; /* PFOs M */
float _daughters_Q[ LCT_JET_MAX ][ LCT_JET_PARTICLES_MAX ] {} ; /* PFOs Q */
float _daughters_trackD0[ LCT_JET_MAX ][ LCT_JET_PARTICLES_MAX ] {} ; /* PFOs track D0 */
float _daughters_trackPhi[ LCT_JET_MAX ][ LCT_JET_PARTICLES_MAX ] {} ; /* PFOs track Phi */
float _daughters_trackOmega[ LCT_JET_MAX ][ LCT_JET_PARTICLES_MAX ] {} ; /* PFOs track Omega */
float _daughters_trackZ0[ LCT_JET_MAX ][ LCT_JET_PARTICLES_MAX ] {} ; /* PFOs track Z0 */
float _daughters_trackTanLambda[ LCT_JET_MAX ][ LCT_JET_PARTICLES_MAX ] {} ; /* PFOs track TanLambda */
float _daughters_trackSigmaD0[ LCT_JET_MAX ][ LCT_JET_PARTICLES_MAX ] {} ; // error on d0 from cov matrix
float _daughters_trackSigmaZ0[ LCT_JET_MAX ][ LCT_JET_PARTICLES_MAX ] {} ; // error on Z0 from cov matrix
}; /* ----- end of class JetBranches ----- */
#endif