CMS 3D CMS Logo

MuScleFitUtils.h
Go to the documentation of this file.
1 #ifndef MuScleFitUtils_H
2 #define MuScleFitUtils_H
3 
12 #include <CLHEP/Vector/LorentzVector.h>
15 // #include "SimDataFormats/HepMCProduct/interface/HepMCProduct.h"
20 #include "TGraphErrors.h"
21 #include "TH2F.h"
22 #include "TMinuit.h"
23 
29 
30 #include <vector>
31 
32 // #include "Functions.h"
33 // class biasFunctionBase<std::vector<double> >;
34 // class scaleFunctionBase<double*>;
35 template <class T>
37 template <class T>
38 class scaleFunctionBase;
39 class smearFunctionBase;
40 template <class T>
43 class BackgroundHandler;
44 
45 class SimTrack;
46 class TString;
47 class TTree;
48 
50 
52 public:
53  // Constructor
54  // ----------
56 
57  // Destructor
58  // ----------
59  virtual ~MuScleFitUtils(){};
60 
61  // Operations
62  // ----------
63  static std::pair<SimTrack, SimTrack> findBestSimuRes(const std::vector<SimTrack>& simMuons);
64  static std::pair<MuScleFitMuon, MuScleFitMuon> findBestRecoRes(const std::vector<MuScleFitMuon>& muons);
65  static std::pair<lorentzVector, lorentzVector> findGenMuFromRes(const reco::GenParticleCollection* genParticles);
66  static std::pair<lorentzVector, lorentzVector> findGenMuFromRes(const edm::HepMCProduct* evtMC);
67  static std::pair<lorentzVector, lorentzVector> findSimMuFromRes(const edm::Handle<edm::HepMCProduct>& evtMC,
69 
70  static std::vector<TGraphErrors*> fitMass(TH2F* histo);
71  static std::vector<TGraphErrors*> fitReso(TH2F* histo);
72 
73  static lorentzVector applyScale(const lorentzVector& muon, const std::vector<double>& parval, const int charge);
74  static lorentzVector applyScale(const lorentzVector& muon, double* parval, const int charge);
75  static lorentzVector applyBias(const lorentzVector& muon, const int charge);
77  static lorentzVector fromPtEtaPhiToPxPyPz(const double* ptEtaPhiE);
78 
79  static void minimizeLikelihood();
80 
81  static double invDimuonMass(const lorentzVector& mu1, const lorentzVector& mu2);
82  static double massResolution(const lorentzVector& mu1, const lorentzVector& mu2);
83  static double massResolution(const lorentzVector& mu1, const lorentzVector& mu2, const std::vector<double>& parval);
84  static double massResolution(const lorentzVector& mu1, const lorentzVector& mu2, std::unique_ptr<double> parval);
85  static double massResolution(const lorentzVector& mu1, const lorentzVector& mu2, double* parval);
86  static double massResolution(const lorentzVector& mu1, const lorentzVector& mu2, const ResolutionFunction& resolFunc);
87 
88  static double massProb(const double& mass, const double& rapidity, const int ires, const double& massResol);
89  /* static double massProb( const double & mass, const double & resEta, const double & rapidity, const double & massResol, const std::vector<double> & parval, const bool doUseBkgrWindow = false ); */
90  /* static double massProb( const double & mass, const double & resEta, const double & rapidity, const double & massResol, double * parval, const bool doUseBkgrWindow = false ); */
91  static double massProb(const double& mass,
92  const double& resEta,
93  const double& rapidity,
94  const double& massResol,
95  const std::vector<double>& parval,
96  const bool doUseBkgrWindow,
97  const double& eta1,
98  const double& eta2);
99  static double massProb(const double& mass,
100  const double& resEta,
101  const double& rapidity,
102  const double& massResol,
103  double* parval,
104  const bool doUseBkgrWindow,
105  const double& eta1,
106  const double& eta2);
107  static double computeWeight(const double& mass, const int iev, const bool doUseBkgrWindow = false);
108 
109  static double deltaPhi(const double& phi1, const double& phi2) {
110  double deltaPhi = phi1 - phi2;
111  while (deltaPhi >= TMath::Pi())
112  deltaPhi -= 2 * TMath::Pi();
113  while (deltaPhi < -TMath::Pi())
114  deltaPhi += 2 * TMath::Pi();
115  return fabs(deltaPhi);
116  }
118  static double deltaPhiNoFabs(const double& phi1, const double& phi2) {
119  double deltaPhi = phi1 - phi2;
120  while (deltaPhi >= TMath::Pi())
121  deltaPhi -= 2 * TMath::Pi();
122  while (deltaPhi < -TMath::Pi())
123  deltaPhi += 2 * TMath::Pi();
124  return deltaPhi;
125  }
126  static double deltaR(const double& eta1, const double& eta2, const double& phi1, const double& phi2) {
127  return sqrt(std::pow(eta1 - eta2, 2) + std::pow(deltaPhi(phi1, phi2), 2));
128  }
129 
130  static int debug; // debug option set by MuScleFit
131  static bool ResFound; // bool flag true if best resonance found (cuts on pt and eta)
132 
133  static const int totalResNum; // Total number of resonance: 6
134  static double massWindowHalfWidth[3][6]; // parameter set by MuScleFitUtils
135  static double ResGamma[6]; // parameter set by MuScleFitUtils
136  static double ResMass[6]; // parameter set by MuScleFitUtils
137  static double ResMinMass[6]; // parameter set by MuScleFitBase
138  static double crossSection[6];
139  static const double mMu2;
140  static const double muMass;
141 
142  // Array of the pdgId of resonances
143  static const unsigned int motherPdgIdArray[6];
144 
145  static unsigned int loopCounter; // parameter set by MuScleFit
146 
147  static int SmearType;
149  static int BiasType;
150  // No error, we take functions from the same group for scale and bias.
152  static int ResolFitType;
155  static int ScaleFitType;
158  static int BgrFitType;
159  // Three background regions:
160  // - one for the Z
161  // - one for the Upsilons
162  // - one for J/Psi and Psi2S
163  static const int backgroundFunctionsRegions;
164  // static backgroundFunctionBase * backgroundFunctionForRegion[];
165  // A background function for each resonance
166  // static backgroundFunctionBase * backgroundFunction[];
167 
168  // The Cross section handler takes care of computing the relative cross
169  // sections to be used depending on the resonances that are being fitted.
170  // This corresponds to a normalization of the signal pdf.
172 
173  // The background handler takes care of using the correct function in each
174  // window, use regions or resonance windows and rescale the fractions when needed
176 
177  // Parameters used to select whether to do a fit
178  static std::vector<int> doResolFit;
179  static std::vector<int> doScaleFit;
180  static std::vector<int> doCrossSectionFit;
181  static std::vector<int> doBackgroundFit;
182 
183  static int minuitLoop_;
184  static TH1D* likelihoodInLoop_;
185  static TH1D* signalProb_;
186  static TH1D* backgroundProb_;
187 
188  static bool duringMinos_;
189 
190  static std::vector<double> parSmear;
191  static std::vector<double> parBias;
192  static std::vector<double> parResol;
193  static std::vector<double> parResolStep;
194  static std::vector<double> parResolMin;
195  static std::vector<double> parResolMax;
196  static std::vector<double> parScale;
197  static std::vector<double> parScaleStep;
198  static std::vector<double> parScaleMin;
199  static std::vector<double> parScaleMax;
200  static std::vector<double> parCrossSection;
201  static std::vector<double> parBgr;
202  static std::vector<int> parResolFix;
203  static std::vector<int> parScaleFix;
204  static std::vector<int> parCrossSectionFix;
205  static std::vector<int> parBgrFix;
206  static std::vector<int> parResolOrder;
207  static std::vector<int> parScaleOrder;
208  static std::vector<int> parCrossSectionOrder;
209  static std::vector<int> parBgrOrder;
210  static std::vector<int> resfind;
211  static int FitStrategy;
212  static bool speedup; // parameter set by MuScleFit - whether to speedup processing
213  static double x[7][10000]; // smearing values set by MuScleFit constructor
214  static int goodmuon; // number of events with a usable resonance
215  static int counter_resprob; // number of times there are resolution problems
216  static double GLZValue[40][1001][1001]; // matrix with integral values of Lorentz * Gaussian
217  static double GLZNorm[40][1001]; // normalization values per each sigma
218  static double GLValue[6][1001][1001]; // matrix with integral values of Lorentz * Gaussian
219  static double GLNorm[6][1001]; // normalization values per each sigma
220  static double ResMaxSigma[6]; // max sigma of matrix
221  static double ResHalfWidth[6]; // halfwidth in matrix
222  static int nbins; // number of bins in matrix
223  static int MuonType; // 0, 1, 2 - 0 is GM, 1 is SM, 2 is track
224  static int MuonTypeForCheckMassWindow; // Reduced to be 0, 1 or 2. It is = MuonType when MuonType < 3, = 2 otherwise.
225 
226  static std::vector<std::vector<double> > parvalue;
227  // static std::map<unsigned int,std::vector<double> > parvalue;
228  static std::vector<int> parfix;
229  static std::vector<int> parorder;
230 
231  static std::vector<std::pair<lorentzVector, lorentzVector> > SavedPair;
232  static std::vector<std::pair<lorentzVector, lorentzVector> > ReducedSavedPair;
233  static std::vector<std::pair<lorentzVector, lorentzVector> > genPair;
234  static std::vector<std::pair<MuScleFitMuon, MuScleFitMuon> > SavedPairMuScleFitMuons;
235  static std::vector<std::pair<MuScleFitMuon, MuScleFitMuon> > genMuscleFitPair;
236  static std::vector<std::pair<lorentzVector, lorentzVector> > simPair;
237 
238  static bool scaleFitNotDone_;
239 
241  // Pointer to the minuit object
242  static TMinuit* rminPtr_;
243  // Value stored to check whether to apply a new normalization to the likelihood
244  static double oldNormalization_;
245  static unsigned int normalizationChanged_;
246 
247  // This must be set to true if using events generated with Sherpa
248  static bool sherpa_;
249 
250  // Decide whether to use the rapidity bins for the Z
251  static bool rapidityBinsForZ_;
252 
253  static int iev_;
254 
255  static bool useProbsFile_;
256 
257  // Cuts on the muons to use in the fit
258  static bool separateRanges_;
259  static double minMuonPt_;
260  static double maxMuonPt_;
261  static double minMuonEtaFirstRange_;
262  static double maxMuonEtaFirstRange_;
263  static double minMuonEtaSecondRange_;
264  static double maxMuonEtaSecondRange_;
265  static double deltaPhiMinCut_;
266  static double deltaPhiMaxCut_;
267 
268  static bool debugMassResol_;
270  double dmdpt1;
271  double dmdpt2;
272  double dmdphi1;
273  double dmdphi2;
274  double dmdcotgth1;
275  double dmdcotgth2;
277 
278  // Fit accuracy and debug parameters
279  static bool startWithSimplex_;
280  static bool computeMinosErrors_;
281  static bool minimumShapePlots_;
282 
284  // static bool checkMassWindow( const double & mass, const int ires, const double & resMass, const double & leftFactor = 1., const double & rightFactor = 1. );
285  static bool checkMassWindow(const double& mass, const double& leftBorder, const double& rightBorder);
286 
288  static double probability(const double& mass,
289  const double& massResol,
290  const double GLvalue[][1001][1001],
291  const double GLnorm[][1001],
292  const int iRes,
293  const int iY);
294 
295 protected:
296 private:
297  struct byPt {
298  bool operator()(const reco::Muon& a, const reco::Muon& b) const { return a.pt() > b.pt(); }
299  };
300 };
301 
302 extern "C" void likelihood(int& npar, double* grad, double& fval, double* xval, int flag);
303 
304 #endif
iev
const HitContainer *__restrict__ const TkSoA *__restrict__ const Quality *__restrict__ const CAHitNtupletGeneratorKernelsGPU::HitToTuple *__restrict__ uint32_t int iev
Definition: CAHitNtupletGeneratorKernelsImpl.h:544
MuScleFitUtils::x
static double x[7][10000]
Definition: MuScleFitUtils.h:213
PDWG_BPHSkim_cff.muons
muons
Definition: PDWG_BPHSkim_cff.py:47
MuScleFitUtils::parSmear
static std::vector< double > parSmear
Definition: MuScleFitUtils.h:190
lorentzVector
reco::Particle::LorentzVector lorentzVector
Definition: MuScleFitUtils.h:47
MuScleFitUtils::parScaleFix
static std::vector< int > parScaleFix
Definition: MuScleFitUtils.h:203
MuScleFitUtils::findGenMuFromRes
static std::pair< lorentzVector, lorentzVector > findGenMuFromRes(const reco::GenParticleCollection *genParticles)
Definition: MuScleFitUtils.cc:2344
MuScleFitUtils::BiasType
static int BiasType
Definition: MuScleFitUtils.h:149
MuScleFitUtils::minMuonPt_
static double minMuonPt_
Definition: MuScleFitUtils.h:259
MuScleFitUtils::deltaPhiNoFabs
static double deltaPhiNoFabs(const double &phi1, const double &phi2)
Without fabs at the end, used to have a symmetric distribution for the resolution fits and variance c...
Definition: MuScleFitUtils.h:118
MuScleFitUtils::findBestRecoRes
static std::pair< MuScleFitMuon, MuScleFitMuon > findBestRecoRes(const std::vector< MuScleFitMuon > &muons)
Definition: MuScleFitUtils.cc:315
MuScleFitUtils::smearFunction
static smearFunctionBase * smearFunction
Definition: MuScleFitUtils.h:148
MuScleFitUtils::parResolMin
static std::vector< double > parResolMin
Definition: MuScleFitUtils.h:194
Muon.h
MessageLogger.h
genParticles2HepMC_cfi.genParticles
genParticles
Definition: genParticles2HepMC_cfi.py:4
resolutionFunctionBase
Definition: Functions.h:828
MuScleFitUtils::parvalue
static std::vector< std::vector< double > > parvalue
Definition: MuScleFitUtils.h:226
MuScleFitUtils::separateRanges_
static bool separateRanges_
Definition: MuScleFitUtils.h:258
MuScleFitUtils::parScaleOrder
static std::vector< int > parScaleOrder
Definition: MuScleFitUtils.h:207
MuScleFitUtils::parorder
static std::vector< int > parorder
Definition: MuScleFitUtils.h:229
MuScleFitUtils::ResMass
static double ResMass[6]
Definition: MuScleFitUtils.h:136
BackgroundHandler
Definition: BackgroundHandler.h:32
smearFunctionBase
Definition: Functions.h:633
muon
Definition: MuonCocktails.h:17
MuScleFitUtils::BgrFitType
static int BgrFitType
Definition: MuScleFitUtils.h:158
MuScleFitUtils::duringMinos_
static bool duringMinos_
Definition: MuScleFitUtils.h:188
MuScleFitUtils::maxMuonEtaFirstRange_
static double maxMuonEtaFirstRange_
Definition: MuScleFitUtils.h:262
MuScleFitUtils::computeWeight
static double computeWeight(const double &mass, const int iev, const bool doUseBkgrWindow=false)
Definition: MuScleFitUtils.cc:1163
MuScleFitUtils::deltaPhi
static double deltaPhi(const double &phi1, const double &phi2)
Definition: MuScleFitUtils.h:109
MuScleFitUtils::massResolComponentsStruct::dmdphi1
double dmdphi1
Definition: MuScleFitUtils.h:272
MuScleFitUtils::massResolComponentsStruct::dmdcotgth2
double dmdcotgth2
Definition: MuScleFitUtils.h:275
MuScleFitUtils::parBgrFix
static std::vector< int > parBgrFix
Definition: MuScleFitUtils.h:205
MuScleFitUtils::deltaPhiMaxCut_
static double deltaPhiMaxCut_
Definition: MuScleFitUtils.h:266
MuScleFitUtils::computeMinosErrors_
static bool computeMinosErrors_
Definition: MuScleFitUtils.h:280
MuScleFitUtils::nbins
static int nbins
Definition: MuScleFitUtils.h:222
MuScleFitUtils::mMu2
static const double mMu2
Definition: MuScleFitUtils.h:139
MuScleFitUtils::checkMassWindow
static bool checkMassWindow(const double &mass, const double &leftBorder, const double &rightBorder)
Method to check if the mass value is within the mass window of the i-th resonance.
Definition: MuScleFitUtils.cc:1157
MuScleFitUtils::ResHalfWidth
static double ResHalfWidth[6]
Definition: MuScleFitUtils.h:221
reco::GenParticleCollection
std::vector< GenParticle > GenParticleCollection
collection of GenParticles
Definition: GenParticleFwd.h:13
biasFunctionBase
Definition: MuScleFitUtils.h:36
MuScleFitUtils::crossSectionHandler
static CrossSectionHandler * crossSectionHandler
Definition: MuScleFitUtils.h:171
BackgroundHandler.h
MuScleFitUtils::MuonTypeForCheckMassWindow
static int MuonTypeForCheckMassWindow
Definition: MuScleFitUtils.h:224
MuScleFitUtils::ResMinMass
static double ResMinMass[6]
Definition: MuScleFitUtils.h:137
timingPdfMaker.histo
histo
Definition: timingPdfMaker.py:279
MuScleFitUtils
Definition: MuScleFitUtils.h:51
TrackCandidateProducer_cfi.simTracks
simTracks
Definition: TrackCandidateProducer_cfi.py:15
MuScleFitUtils::parResolOrder
static std::vector< int > parResolOrder
Definition: MuScleFitUtils.h:206
MuScleFitUtils::parCrossSectionOrder
static std::vector< int > parCrossSectionOrder
Definition: MuScleFitUtils.h:208
MuScleFitUtils::speedup
static bool speedup
Definition: MuScleFitUtils.h:212
backgroundFunctionBase
Definition: Functions.h:1368
MuScleFitUtils::applyScale
static lorentzVector applyScale(const lorentzVector &muon, const std::vector< double > &parval, const int charge)
Definition: MuScleFitUtils.cc:465
MuScleFitUtils::MuScleFitUtils
MuScleFitUtils()
Definition: MuScleFitUtils.h:55
MuScleFitUtils::likelihoodInLoop_
static TH1D * likelihoodInLoop_
Definition: MuScleFitUtils.h:184
likelihood
void likelihood(int &npar, double *grad, double &fval, double *xval, int flag)
Definition: MuScleFitUtils.cc:1784
MuScleFitUtils::FitStrategy
static int FitStrategy
Definition: MuScleFitUtils.h:211
MuScleFitUtils::massResolComponents
static struct MuScleFitUtils::massResolComponentsStruct massResolComponents
Definition: MuScleFitUtils.cc:262
edm::Handle< edm::HepMCProduct >
MuScleFitUtils::useProbsFile_
static bool useProbsFile_
Definition: MuScleFitUtils.h:255
MuScleFitUtils::resfind
static std::vector< int > resfind
Definition: MuScleFitUtils.h:210
MuScleFitUtils::genPair
static std::vector< std::pair< lorentzVector, lorentzVector > > genPair
Definition: MuScleFitUtils.h:233
reco::Particle::LorentzVector
math::XYZTLorentzVector LorentzVector
Lorentz vector.
Definition: Particle.h:21
reco::Muon
Definition: Muon.h:27
MuScleFitUtils::rapidityBinsForZ_
static bool rapidityBinsForZ_
Definition: MuScleFitUtils.h:251
MuScleFitUtils::applySmearing
static lorentzVector applySmearing(const lorentzVector &muon)
Definition: MuScleFitUtils.cc:416
MuScleFitUtils::normalizationChanged_
static unsigned int normalizationChanged_
Definition: MuScleFitUtils.h:245
MuScleFitUtils::minimumShapePlots_
static bool minimumShapePlots_
Definition: MuScleFitUtils.h:281
MuScleFitUtils::doCrossSectionFit
static std::vector< int > doCrossSectionFit
Definition: MuScleFitUtils.h:180
ires
int ires[2]
Definition: CascadeWrapper.h:19
MuScleFitUtils::massResolComponentsStruct::dmdpt2
double dmdpt2
Definition: MuScleFitUtils.h:271
MuScleFitUtils::parResol
static std::vector< double > parResol
Definition: MuScleFitUtils.h:192
MuScleFitUtils::normalizeLikelihoodByEventNumber_
static bool normalizeLikelihoodByEventNumber_
Definition: MuScleFitUtils.h:240
MuScleFitUtils::parCrossSection
static std::vector< double > parCrossSection
Definition: MuScleFitUtils.h:200
MuScleFitUtils::debugMassResol_
static bool debugMassResol_
Definition: MuScleFitUtils.h:268
MuScleFitUtils::~MuScleFitUtils
virtual ~MuScleFitUtils()
Definition: MuScleFitUtils.h:59
MuScleFitUtils::parResolMax
static std::vector< double > parResolMax
Definition: MuScleFitUtils.h:195
MuonFwd.h
mathSSE::sqrt
T sqrt(T t)
Definition: SSEVec.h:19
ResolutionFunction.h
HLT_FULL_cff.eta2
eta2
Definition: HLT_FULL_cff.py:9542
GenParticleFwd.h
MuScleFitUtils::ResFound
static bool ResFound
Definition: MuScleFitUtils.h:131
MuScleFitUtils::motherPdgIdArray
static const unsigned int motherPdgIdArray[6]
Definition: MuScleFitUtils.h:143
MuScleFitUtils::deltaPhiMinCut_
static double deltaPhiMinCut_
Definition: MuScleFitUtils.h:265
MuScleFitUtils::invDimuonMass
static double invDimuonMass(const lorentzVector &mu1, const lorentzVector &mu2)
Definition: MuScleFitUtils.cc:518
MuScleFitUtils::scaleFunction
static scaleFunctionBase< double * > * scaleFunction
Definition: MuScleFitUtils.h:156
MuScleFitUtils::massResolution
static double massResolution(const lorentzVector &mu1, const lorentzVector &mu2)
MuScleFitUtils::startWithSimplex_
static bool startWithSimplex_
Definition: MuScleFitUtils.h:279
MuScleFitUtils::minMuonEtaSecondRange_
static double minMuonEtaSecondRange_
Definition: MuScleFitUtils.h:263
b
double b
Definition: hdecay.h:118
MuScleFitUtils::byPt
Definition: MuScleFitUtils.h:297
MuScleFitUtils::ResolFitType
static int ResolFitType
Definition: MuScleFitUtils.h:152
MuScleFitUtils::fitMass
static std::vector< TGraphErrors * > fitMass(TH2F *histo)
Definition: MuScleFitUtils.cc:1985
MuScleFitUtils::parScale
static std::vector< double > parScale
Definition: MuScleFitUtils.h:196
MuScleFitUtils::resolutionFunctionForVec
static resolutionFunctionBase< std::vector< double > > * resolutionFunctionForVec
Definition: MuScleFitUtils.h:154
MuScleFitUtils::minMuonEtaFirstRange_
static double minMuonEtaFirstRange_
Definition: MuScleFitUtils.h:261
HLT_FULL_cff.eta1
eta1
Definition: HLT_FULL_cff.py:9541
MuScleFitUtils::SavedPairMuScleFitMuons
static std::vector< std::pair< MuScleFitMuon, MuScleFitMuon > > SavedPairMuScleFitMuons
Definition: MuScleFitUtils.h:234
MuScleFitUtils::massWindowHalfWidth
static double massWindowHalfWidth[3][6]
Definition: MuScleFitUtils.h:134
ALCARECOTkAlJpsiMuMu_cff.charge
charge
Definition: ALCARECOTkAlJpsiMuMu_cff.py:47
MuScleFitUtils::massResolComponentsStruct::dmdcotgth1
double dmdcotgth1
Definition: MuScleFitUtils.h:274
MuScleFitUtils::byPt::operator()
bool operator()(const reco::Muon &a, const reco::Muon &b) const
Definition: MuScleFitUtils.h:298
MuScleFitUtils::debug
static int debug
Definition: MuScleFitUtils.h:130
CrossSectionHandler.h
MuScleFitUtils::parScaleMax
static std::vector< double > parScaleMax
Definition: MuScleFitUtils.h:199
a
double a
Definition: hdecay.h:119
lorentzVector
reco::Particle::LorentzVector lorentzVector
Definition: GenMuonPair.h:9
MuScleFitUtils::iev_
static int iev_
Definition: MuScleFitUtils.h:253
ResolutionFunction
Definition: ResolutionFunction.h:15
MuScleFitUtils::parfix
static std::vector< int > parfix
Definition: MuScleFitUtils.h:228
MuScleFitUtils::SavedPair
static std::vector< std::pair< lorentzVector, lorentzVector > > SavedPair
Definition: MuScleFitUtils.h:231
MuScleFitUtils::deltaR
static double deltaR(const double &eta1, const double &eta2, const double &phi1, const double &phi2)
Definition: MuScleFitUtils.h:126
MuonPair.h
MuScleFitUtils::ResGamma
static double ResGamma[6]
Definition: MuScleFitUtils.h:135
MuScleFitUtils::biasFunction
static scaleFunctionBase< std::vector< double > > * biasFunction
Definition: MuScleFitUtils.h:151
MuScleFitUtils::GLNorm
static double GLNorm[6][1001]
Definition: MuScleFitUtils.h:219
MuScleFitUtils::parResolFix
static std::vector< int > parResolFix
Definition: MuScleFitUtils.h:202
MuScleFitUtils::GLZNorm
static double GLZNorm[40][1001]
Definition: MuScleFitUtils.h:217
MuScleFitUtils::parBgr
static std::vector< double > parBgr
Definition: MuScleFitUtils.h:201
MuScleFitUtils::probability
static double probability(const double &mass, const double &massResol, const double GLvalue[][1001][1001], const double GLnorm[][1001], const int iRes, const int iY)
Computes the probability given the mass, mass resolution and the arrays with the probabilities and th...
Definition: MuScleFitUtils.cc:750
MuScleFitUtils::maxMuonPt_
static double maxMuonPt_
Definition: MuScleFitUtils.h:260
MuScleFitUtils::rminPtr_
static TMinuit * rminPtr_
Definition: MuScleFitUtils.h:242
MuScleFitUtils::parBgrOrder
static std::vector< int > parBgrOrder
Definition: MuScleFitUtils.h:209
MuScleFitUtils::genMuscleFitPair
static std::vector< std::pair< MuScleFitMuon, MuScleFitMuon > > genMuscleFitPair
Definition: MuScleFitUtils.h:235
MuScleFitUtils::findSimMuFromRes
static std::pair< lorentzVector, lorentzVector > findSimMuFromRes(const edm::Handle< edm::HepMCProduct > &evtMC, const edm::Handle< edm::SimTrackContainer > &simTracks)
Definition: MuScleFitUtils.cc:2265
MuScleFitUtils::oldNormalization_
static double oldNormalization_
Definition: MuScleFitUtils.h:244
MuScleFitUtils::parBias
static std::vector< double > parBias
Definition: MuScleFitUtils.h:191
MuScleFitUtils::scaleFunctionForVec
static scaleFunctionBase< std::vector< double > > * scaleFunctionForVec
Definition: MuScleFitUtils.h:157
MuScleFitUtils::applyBias
static lorentzVector applyBias(const lorentzVector &muon, const int charge)
Definition: MuScleFitUtils.cc:444
MuScleFitUtils::ResMaxSigma
static double ResMaxSigma[6]
Definition: MuScleFitUtils.h:220
MuScleFitUtils::parCrossSectionFix
static std::vector< int > parCrossSectionFix
Definition: MuScleFitUtils.h:204
MuScleFitUtils::massResolComponentsStruct
Definition: MuScleFitUtils.h:269
MuScleFitUtils::doBackgroundFit
static std::vector< int > doBackgroundFit
Definition: MuScleFitUtils.h:181
MuScleFitUtils::minuitLoop_
static int minuitLoop_
Definition: MuScleFitUtils.h:183
SimTrack
Definition: SimTrack.h:9
MuScleFitUtils::ScaleFitType
static int ScaleFitType
Definition: MuScleFitUtils.h:155
MuScleFitUtils::fitReso
static std::vector< TGraphErrors * > fitReso(TH2F *histo)
Definition: MuScleFitUtils.cc:2098
MuScleFitUtils::signalProb_
static TH1D * signalProb_
Definition: MuScleFitUtils.h:185
MuScleFitUtils::muMass
static const double muMass
Definition: MuScleFitUtils.h:140
MuScleFitUtils::GLZValue
static double GLZValue[40][1001][1001]
Definition: MuScleFitUtils.h:216
MuScleFitUtils::backgroundProb_
static TH1D * backgroundProb_
Definition: MuScleFitUtils.h:186
CrossSectionHandler
Definition: CrossSectionHandler.h:27
GenMuonPair.h
MuScleFitUtils::SmearType
static int SmearType
Definition: MuScleFitUtils.h:147
EgHLTOffHistBins_cfi.mass
mass
Definition: EgHLTOffHistBins_cfi.py:34
MuScleFitUtils::GLValue
static double GLValue[6][1001][1001]
Definition: MuScleFitUtils.h:218
MuScleFitUtils::counter_resprob
static int counter_resprob
Definition: MuScleFitUtils.h:215
MuScleFitUtils::fromPtEtaPhiToPxPyPz
static lorentzVector fromPtEtaPhiToPxPyPz(const double *ptEtaPhiE)
Definition: MuScleFitUtils.cc:502
MuScleFitUtils::crossSection
static double crossSection[6]
Definition: MuScleFitUtils.h:138
MuScleFitUtils::parScaleMin
static std::vector< double > parScaleMin
Definition: MuScleFitUtils.h:198
MuScleFitUtils::massResolComponentsStruct::dmdphi2
double dmdphi2
Definition: MuScleFitUtils.h:273
MuScleFitUtils::scaleFitNotDone_
static bool scaleFitNotDone_
Definition: MuScleFitUtils.h:238
MuScleFitUtils::doScaleFit
static std::vector< int > doScaleFit
Definition: MuScleFitUtils.h:179
Pi
const double Pi
Definition: CosmicMuonParameters.h:18
MuScleFitUtils::parScaleStep
static std::vector< double > parScaleStep
Definition: MuScleFitUtils.h:197
funct::pow
Power< A, B >::type pow(const A &a, const B &b)
Definition: Power.h:29
MuScleFitUtils::findBestSimuRes
static std::pair< SimTrack, SimTrack > findBestSimuRes(const std::vector< SimTrack > &simMuons)
Definition: MuScleFitUtils.cc:279
scaleFunctionBase
Definition: Functions.h:40
MuScleFitUtils::loopCounter
static unsigned int loopCounter
Definition: MuScleFitUtils.h:145
edm::HepMCProduct
Definition: HepMCProduct.h:21
HepMCProduct.h
MuScleFitUtils::backgroundFunctionsRegions
static const int backgroundFunctionsRegions
Definition: MuScleFitUtils.h:163
MuScleFitUtils::sherpa_
static bool sherpa_
Definition: MuScleFitUtils.h:248
MuScleFitUtils::parResolStep
static std::vector< double > parResolStep
Definition: MuScleFitUtils.h:193
MuScleFitUtils::resolutionFunction
static resolutionFunctionBase< double * > * resolutionFunction
Definition: MuScleFitUtils.h:153
MuScleFitUtils::massResolComponentsStruct::dmdpt1
double dmdpt1
Definition: MuScleFitUtils.h:270
MuScleFitUtils::MuonType
static int MuonType
Definition: MuScleFitUtils.h:223
SimTrackContainer.h
MuScleFitUtils::simPair
static std::vector< std::pair< lorentzVector, lorentzVector > > simPair
Definition: MuScleFitUtils.h:236
MuScleFitUtils::goodmuon
static int goodmuon
Definition: MuScleFitUtils.h:214
MuScleFitUtils::backgroundHandler
static BackgroundHandler * backgroundHandler
Definition: MuScleFitUtils.h:175
MuScleFitUtils::minimizeLikelihood
static void minimizeLikelihood()
Definition: MuScleFitUtils.cc:1197
MuScleFitUtils::maxMuonEtaSecondRange_
static double maxMuonEtaSecondRange_
Definition: MuScleFitUtils.h:264
RemoveAddSevLevel.flag
flag
Definition: RemoveAddSevLevel.py:116
MuScleFitUtils::doResolFit
static std::vector< int > doResolFit
Definition: MuScleFitUtils.h:178
MuScleFitUtils::ReducedSavedPair
static std::vector< std::pair< lorentzVector, lorentzVector > > ReducedSavedPair
Definition: MuScleFitUtils.h:232
MuScleFitUtils::massProb
static double massProb(const double &mass, const double &rapidity, const int ires, const double &massResol)
Definition: MuScleFitUtils.cc:2208
MuScleFitUtils::totalResNum
static const int totalResNum
Definition: MuScleFitUtils.h:133