Go to the documentation of this file. 1 #ifndef MUONERRORMATRIX_H
2 #define MUONERRORMATRIX_H
20 #include <TProfile3D.h>
52 static const TString
vars[5];
88 static const int offset[5] = {0, 5, 5 + 4, 5 + 4 + 3, 5 + 4 + 3 + 2};
TDirectory * theD
the attached root file, where the parametrization is saved
TProfile3D * Index(int i, int j)
internal method to get access to the profiles
static const std::string input
static void multiply(CurvilinearTrajectoryError &initial_error, const CurvilinearTrajectoryError &scale_error)
multiply term by term the two matrix
int Pindex(int i, int j)
internal methods to get the index of a matrix term.
TProfile3D * get(int i, int j)
actually get access to the TProfile3D used for the parametrization
TermAction theTermAction[15]
double Rms(GlobalVector &momentum, int i, int j)
internal method that retreives the error on the value of the parametrization for term i,...
std::string theCategory
log category: "MuonErrorMatrix"
void close()
close the root file attached to the class
unsigned int index(int i, int j)
static double Term(const AlgebraicSymMatrix55 &curv, int i, int j)
provide the numerical value used. sigma or correlation factor
CurvilinearTrajectoryError getFast(GlobalVector momentum)
void adjust(FreeTrajectoryState &state)
adjust the error matrix on the state
CurvilinearTrajectoryError get(GlobalVector momentum, bool convolute=true)
main method to be used. Retrieve a 5x5 symetrical matrix according to parametrization of error or sca...
action
enum type to define if the class is used as a tool or to be created
double Value(GlobalVector &momentum, int i, int j, bool convolute=true)
internal method that retreives the value of the parametrization for term i,j
void complicatedTerm(const AlgebraicSymMatrix55 &input, AlgebraicSymMatrix55 &output)
convert sigma/rho -> sigma2/COV
MuonErrorMatrix(const edm::ParameterSet &pset)
constructor from a parameter set
int findBin(TAxis *axis, double value)
method to get the bin index, taking care of under/overlow: first(1)/last(GetNbins())returned
static bool divide(CurvilinearTrajectoryError &num_error, const CurvilinearTrajectoryError &denom_error)
divide term by term the two matrix
Abs< T >::type abs(const T &t)
TProfile3D * theData_fast[5][5]
ROOT::Math::SMatrix< double, 5, 5, ROOT::Math::MatRepSym< double, 5 > > AlgebraicSymMatrix55
void simpleTerm(const AlgebraicSymMatrix55 &input, AlgebraicSymMatrix55 &output)
convert sigma2/COV -> sigma/rho
TProfile3D * theData[15]
15 TProfile, each holding he parametrization of each term of the 5x5
TermAction
decide whether to scale of to assigne terms
~MuonErrorMatrix()
destructor