1 |
//--------------------------------------------------------------------------------------------------
|
2 |
// $Id: NSVFit.h,v 1.5 2009/07/13 11:00:32 loizides Exp $
|
3 |
//
|
4 |
// NSVFit
|
5 |
//
|
6 |
// Basic implementation of a class that allows access to the nsv fit information for resonances that
|
7 |
// decay into tau leptons (subsequenctly decaying into electrons, muons or hadrons).
|
8 |
//
|
9 |
// Authors: R.Wolf
|
10 |
//--------------------------------------------------------------------------------------------------
|
11 |
|
12 |
#ifndef MITANA_DATATREE_NSVFIT_H
|
13 |
#define MITANA_DATATREE_NSVFIT_H
|
14 |
|
15 |
#include "MitCommon/DataFormats/interface/Vect4M.h"
|
16 |
#include "MitAna/DataTree/interface/DataObject.h"
|
17 |
|
18 |
namespace mithep
|
19 |
{
|
20 |
class NSVFit : public DataObject
|
21 |
{
|
22 |
public:
|
23 |
NSVFit() {}
|
24 |
|
25 |
Bool_t IsValid() const {return fIsValid;}
|
26 |
|
27 |
Double_t Mass() const {return fMass; }
|
28 |
Double_t MassErrUp() const {return fMassErrUp; }
|
29 |
Double_t MassErrDown() const {return fMassErrDown; }
|
30 |
|
31 |
Double_t MassMean() const {return fMassMean; }
|
32 |
Double_t MassMedian() const {return fMassMedian; }
|
33 |
Double_t MassMaximum() const {return fMassMaximum; }
|
34 |
Double_t MassMaxInterpol() const {return fMassMaxInterpol; }
|
35 |
|
36 |
FourVectorM Daughter(UInt_t i) const { return i<fDaughters.size() ? fDaughters.at(i).V() : FourVectorM(); }
|
37 |
|
38 |
|
39 |
void AddDaughter(Double_t pt, Double_t eta, Double_t phi, Double_t m);
|
40 |
void SetIsValid(Bool_t value) { fIsValid = value; }
|
41 |
void SetMass(Double_t value) { fMass = value; }
|
42 |
void SetMassErrUp(Double_t value) { fMassErrUp = value; }
|
43 |
void SetMassErrDown(Double_t value) { fMassErrDown = value; }
|
44 |
void SetMassMean(Double_t value) { fMassMean = value; }
|
45 |
void SetMassMedian(Double_t value) { fMassMaximum = value; }
|
46 |
void SetMassMaximum(Double_t value) { fMassMaximum = value; }
|
47 |
void SetMassMaxInterpol(Double_t value) { fMassMaxInterpol = value; }
|
48 |
|
49 |
protected:
|
50 |
|
51 |
Bool_t fIsValid; // determines whether the fit converged or not
|
52 |
|
53 |
Double_t fMass; // mass from fit
|
54 |
Double_t fMassErrUp; // +1 sigma error on mass from fit
|
55 |
Double_t fMassErrDown; // -1 sigma error on mass from fit
|
56 |
|
57 |
Double_t fMassMean; // mean of the mass from scan
|
58 |
Double_t fMassMedian; // median of the mass from scan
|
59 |
Double_t fMassMaximum; // maximum of the mass from scan
|
60 |
Double_t fMassMaxInterpol; // maximum of the mass from scan
|
61 |
|
62 |
std::vector<Vect4M> fDaughters; // vector of four momenta of daughters (input values to fit)
|
63 |
|
64 |
ClassDef(NSVFit,1) // NSVFit class
|
65 |
};
|
66 |
}
|
67 |
|
68 |
//--------------------------------------------------------------------------------------------------
|
69 |
inline void mithep::NSVFit::AddDaughter(Double_t pt, Double_t eta, Double_t phi, Double_t m)
|
70 |
{
|
71 |
// Set four momentum of first daughter used in fit (ordering from fit)
|
72 |
|
73 |
Vect4M buffer; buffer.Set(pt, eta, phi, m);
|
74 |
fDaughters.push_back(buffer);
|
75 |
}
|
76 |
|
77 |
#endif
|