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
|
#ifndef DataFormats_TauReco_BaseTau_h
#define DataFormats_TauReco_BaseTau_h
/* class BaseTau
* base class
* authors: Simone Gennai (simone.gennai@cern.ch), Ludovic Houchu (Ludovic.Houchu@cern.ch)
* created: Jun 21 2007,
* revised: Sep 4 2007
*/
#include "DataFormats/Math/interface/LorentzVector.h"
#include "DataFormats/TauReco/interface/BaseTauFwd.h"
#include "DataFormats/RecoCandidate/interface/RecoCandidate.h"
#include "DataFormats/TrackReco/interface/TrackFwd.h"
#include <limits>
namespace reco {
class BaseTau : public RecoCandidate {
public:
BaseTau();
BaseTau(Charge q, const LorentzVector&, const Point& = Point(0, 0, 0));
~BaseTau() override {}
BaseTau* clone() const override;
// rec. jet Lorentz-vector combining (Tracks and neutral ECAL Island BasicClusters) or (charged hadr. PFCandidates and gamma PFCandidates)
math::XYZTLorentzVector alternatLorentzVect() const;
void setalternatLorentzVect(const math::XYZTLorentzVector&);
// leading Track
virtual reco::TrackRef leadTrack() const;
void setleadTrack(const TrackRef&);
// Tracks which passed quality cuts and are inside a tracker signal cone around leading Track
virtual const reco::TrackRefVector& signalTracks() const;
void setsignalTracks(const TrackRefVector&);
// Tracks which passed quality cuts and are inside a tracker isolation annulus around leading Track
virtual const reco::TrackRefVector& isolationTracks() const;
void setisolationTracks(const TrackRefVector&);
private:
// check overlap with another candidate
bool overlap(const Candidate&) const override;
math::XYZTLorentzVector alternatLorentzVect_;
reco::TrackRef leadTrack_;
reco::TrackRefVector signalTracks_, isolationTracks_;
};
} // namespace reco
#endif
|