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
|
#ifndef MuonReco_MuonEnergy_h
#define MuonReco_MuonEnergy_h
#include "DataFormats/DetId/interface/DetId.h"
#include "DataFormats/Math/interface/Point3D.h"
#include "DataFormats/HcalDetId/interface/HcalDetId.h"
#include <vector>
namespace reco {
struct HcalMuonRecHit {
float energy;
float chi2;
float time;
HcalDetId detId;
HcalMuonRecHit() : energy(0), chi2(0), time(0) {}
};
struct MuonEnergy {
/// CaloTower based energy
/// total energy
float tower;
/// total energy in 3x3 tower shape
float towerS9;
/// ECAL crystal based energy (RecHits)
/// energy deposited in crossed ECAL crystals
float em;
/// energy deposited in 3x3 ECAL crystal shape around central crystal
float emS9;
/// energy deposited in 5x5 ECAL crystal shape around central crystal
float emS25;
/// maximal energy of ECAL crystal in the 5x5 shape
float emMax;
/// HCAL tower based energy (RecHits)
/// energy deposited in crossed HCAL towers
float had;
/// energy deposited in 3x3 HCAL tower shape around central tower
float hadS9;
/// maximal energy of HCAL tower in the 3x3 shape
float hadMax;
/// energy deposited in crossed HO towers
float ho;
/// energy deposited in 3x3 HO tower shape around central tower
float hoS9;
/// Calorimeter timing
float ecal_time;
float ecal_timeError;
float hcal_time;
float hcal_timeError;
/// Trajectory position at the calorimeter
math::XYZPointF ecal_position;
math::XYZPointF hcal_position;
/// DetId of the central ECAL crystal
DetId ecal_id;
/// DetId of the central HCAL tower with smallest depth
DetId hcal_id;
///
/// RecHits
///
/// crossed HCAL rechits
std::vector<HcalMuonRecHit> crossedHadRecHits;
MuonEnergy()
: tower(0),
towerS9(0),
em(0),
emS9(0),
emS25(0),
emMax(0),
had(0),
hadS9(0),
hadMax(0),
ho(0),
hoS9(0),
ecal_time(0),
ecal_timeError(0),
hcal_time(0),
hcal_timeError(0) {}
};
} // namespace reco
#endif
|