|
|
Go to the documentation of this file. 1 #ifndef MuScleFitUtils_H
2 #define MuScleFitUtils_H
12 #include <CLHEP/Vector/LorentzVector.h>
20 #include "TGraphErrors.h"
63 static std::pair<SimTrack, SimTrack>
findBestSimuRes(
const std::vector<SimTrack>& simMuons);
64 static std::pair<MuScleFitMuon, MuScleFitMuon>
findBestRecoRes(
const std::vector<MuScleFitMuon>&
muons);
88 static double massProb(
const double&
mass,
const double& rapidity,
const int ires,
const double& massResol);
93 const double& rapidity,
94 const double& massResol,
95 const std::vector<double>& parval,
96 const bool doUseBkgrWindow,
100 const double& resEta,
101 const double& rapidity,
102 const double& massResol,
104 const bool doUseBkgrWindow,
107 static double computeWeight(
const double&
mass,
const int iev,
const bool doUseBkgrWindow =
false);
109 static double deltaPhi(
const double& phi1,
const double& phi2) {
126 static double deltaR(
const double&
eta1,
const double&
eta2,
const double& phi1,
const double& phi2) {
213 static double x[7][10000];
231 static std::vector<std::pair<lorentzVector, lorentzVector> >
SavedPair;
233 static std::vector<std::pair<lorentzVector, lorentzVector> >
genPair;
236 static std::vector<std::pair<lorentzVector, lorentzVector> >
simPair;
285 static bool checkMassWindow(
const double&
mass,
const double& leftBorder,
const double& rightBorder);
289 const double& massResol,
290 const double GLvalue[][1001][1001],
291 const double GLnorm[][1001],
302 extern "C" void likelihood(
int& npar,
double* grad,
double& fval,
double* xval,
int flag);
const HitContainer *__restrict__ const TkSoA *__restrict__ const Quality *__restrict__ const CAHitNtupletGeneratorKernelsGPU::HitToTuple *__restrict__ uint32_t int iev
static double x[7][10000]
static std::vector< double > parSmear
reco::Particle::LorentzVector lorentzVector
static std::vector< int > parScaleFix
static std::pair< lorentzVector, lorentzVector > findGenMuFromRes(const reco::GenParticleCollection *genParticles)
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...
static std::pair< MuScleFitMuon, MuScleFitMuon > findBestRecoRes(const std::vector< MuScleFitMuon > &muons)
static smearFunctionBase * smearFunction
static std::vector< double > parResolMin
static std::vector< std::vector< double > > parvalue
static bool separateRanges_
static std::vector< int > parScaleOrder
static std::vector< int > parorder
static double maxMuonEtaFirstRange_
static double computeWeight(const double &mass, const int iev, const bool doUseBkgrWindow=false)
static double deltaPhi(const double &phi1, const double &phi2)
static std::vector< int > parBgrFix
static double deltaPhiMaxCut_
static bool computeMinosErrors_
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.
static double ResHalfWidth[6]
std::vector< GenParticle > GenParticleCollection
collection of GenParticles
static CrossSectionHandler * crossSectionHandler
static int MuonTypeForCheckMassWindow
static double ResMinMass[6]
static std::vector< int > parResolOrder
static std::vector< int > parCrossSectionOrder
static lorentzVector applyScale(const lorentzVector &muon, const std::vector< double > &parval, const int charge)
static TH1D * likelihoodInLoop_
void likelihood(int &npar, double *grad, double &fval, double *xval, int flag)
static struct MuScleFitUtils::massResolComponentsStruct massResolComponents
static bool useProbsFile_
static std::vector< int > resfind
static std::vector< std::pair< lorentzVector, lorentzVector > > genPair
math::XYZTLorentzVector LorentzVector
Lorentz vector.
static bool rapidityBinsForZ_
static lorentzVector applySmearing(const lorentzVector &muon)
static unsigned int normalizationChanged_
static bool minimumShapePlots_
static std::vector< int > doCrossSectionFit
static std::vector< double > parResol
static bool normalizeLikelihoodByEventNumber_
static std::vector< double > parCrossSection
static bool debugMassResol_
virtual ~MuScleFitUtils()
static std::vector< double > parResolMax
static const unsigned int motherPdgIdArray[6]
static double deltaPhiMinCut_
static double invDimuonMass(const lorentzVector &mu1, const lorentzVector &mu2)
static scaleFunctionBase< double * > * scaleFunction
static double massResolution(const lorentzVector &mu1, const lorentzVector &mu2)
static bool startWithSimplex_
static double minMuonEtaSecondRange_
static std::vector< TGraphErrors * > fitMass(TH2F *histo)
static std::vector< double > parScale
static resolutionFunctionBase< std::vector< double > > * resolutionFunctionForVec
static double minMuonEtaFirstRange_
static std::vector< std::pair< MuScleFitMuon, MuScleFitMuon > > SavedPairMuScleFitMuons
static double massWindowHalfWidth[3][6]
bool operator()(const reco::Muon &a, const reco::Muon &b) const
static std::vector< double > parScaleMax
reco::Particle::LorentzVector lorentzVector
static std::vector< int > parfix
static std::vector< std::pair< lorentzVector, lorentzVector > > SavedPair
static double deltaR(const double &eta1, const double &eta2, const double &phi1, const double &phi2)
static double ResGamma[6]
static scaleFunctionBase< std::vector< double > > * biasFunction
static double GLNorm[6][1001]
static std::vector< int > parResolFix
static double GLZNorm[40][1001]
static std::vector< double > parBgr
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...
static TMinuit * rminPtr_
static std::vector< int > parBgrOrder
static std::vector< std::pair< MuScleFitMuon, MuScleFitMuon > > genMuscleFitPair
static std::pair< lorentzVector, lorentzVector > findSimMuFromRes(const edm::Handle< edm::HepMCProduct > &evtMC, const edm::Handle< edm::SimTrackContainer > &simTracks)
static double oldNormalization_
static std::vector< double > parBias
static scaleFunctionBase< std::vector< double > > * scaleFunctionForVec
static lorentzVector applyBias(const lorentzVector &muon, const int charge)
static double ResMaxSigma[6]
static std::vector< int > parCrossSectionFix
static std::vector< int > doBackgroundFit
static std::vector< TGraphErrors * > fitReso(TH2F *histo)
static TH1D * signalProb_
static const double muMass
static double GLZValue[40][1001][1001]
static TH1D * backgroundProb_
static double GLValue[6][1001][1001]
static int counter_resprob
static lorentzVector fromPtEtaPhiToPxPyPz(const double *ptEtaPhiE)
static double crossSection[6]
static std::vector< double > parScaleMin
static bool scaleFitNotDone_
static std::vector< int > doScaleFit
static std::vector< double > parScaleStep
Power< A, B >::type pow(const A &a, const B &b)
static std::pair< SimTrack, SimTrack > findBestSimuRes(const std::vector< SimTrack > &simMuons)
static unsigned int loopCounter
static const int backgroundFunctionsRegions
static std::vector< double > parResolStep
static resolutionFunctionBase< double * > * resolutionFunction
static std::vector< std::pair< lorentzVector, lorentzVector > > simPair
static BackgroundHandler * backgroundHandler
static void minimizeLikelihood()
static double maxMuonEtaSecondRange_
static std::vector< int > doResolFit
static std::vector< std::pair< lorentzVector, lorentzVector > > ReducedSavedPair
static double massProb(const double &mass, const double &rapidity, const int ires, const double &massResol)
static const int totalResNum