12#ifndef ALICEO2_HMPID_RECON_H
13#define ALICEO2_HMPID_RECON_H
17#include <Math/GenVector/Rotation3D.h>
18#include "Math/GenVector/RotationX.h"
19#include "Math/GenVector/RotationY.h"
20#include "Math/GenVector/RotationZ.h"
22#include <Math/Vector3D.h>
23#include "Math/Vector3D.h"
51 Recon() : TNamed(
"RichRec",
"RichPat"),
90 bool findPhotCkov(
double cluX,
double cluY,
double& thetaCer,
double& phiCer);
91 bool findPhotCkov2(
double cluX,
double cluY,
double& thetaCer,
double& phiCer);
98 int flagPhot(
double ckov,
const std::vector<o2::hmpid::Cluster>
clusters,
float* photChargeVec);
103 void propagate(
const TVector3 dir, TVector3&
pos,
double z)
const;
107 void refract(TVector3& dir,
double n1,
double n2)
const;
109 TVector2
tracePhot(
double ckovTh,
double ckovPh)
const;
115 void lors2Trs(TVector3 dirCkov,
double& thetaCer,
double& phiCer)
const;
116 void trs2Lors(TVector3 dirCkov,
double& thetaCer,
double& phiCer)
const;
132 double findRingExt(
double ckov,
int ch,
double xPc,
double yPc,
double thRa,
double phRa);
134 void setTrack(
double xRad,
double yRad,
double theta,
double phi)
136 fTrkDir.SetMagThetaPhi(1., theta, phi);
constexpr int p1()
constexpr to accelerate the coordinates changing
Class to store the output of the matching to HMPID.
o2::track::TrackParCov TrackParCov
void setRefIdx(double refRadIdx)
double meanIdxRad() const
static Param * instance()
double getRingAcc() const
void ckovAngle(o2::dataformats::MatchInfoHMP *match, const std::vector< o2::hmpid::Cluster > clusters, int index, double nmean, float xRa, float yRa)
o2::hmpid::Param * fParam
std::unique_ptr< int[]> fPhotClusIndex
void setTrack(double xRad, double yRad, double theta, double phi)
std::unique_ptr< double[]> fPhotPhi
bool findPhotCkov2(double cluX, double cluY, double &thetaCer, double &phiCer)
TVector2 traceForward(TVector3 dirCkov) const
bool findPhotCkov(double cluX, double cluY, double &thetaCer, double &phiCer)
double getRingArea() const
void setMip(double xmip, double ymip)
double findRingCkov(int iNclus)
double findRingExt(double ckov, int ch, double xPc, double yPc, double thRa, double phRa)
std::unique_ptr< double[]> fPhotWei
void lors2Trs(TVector3 dirCkov, double &thetaCer, double &phiCer) const
std::unique_ptr< int[]> fPhotFlag
std::unique_ptr< double[]> fPhotCkov
void refract(TVector3 &dir, double n1, double n2) const
void propagate(const TVector3 dir, TVector3 &pos, double z) const
TVector2 tracePhot(double ckovTh, double ckovPh) const
void trs2Lors(TVector3 dirCkov, double &thetaCer, double &phiCer) const
const TVector2 intWithEdge(TVector2 p1, TVector2 p2)
int flagPhot(double ckov, const std::vector< o2::hmpid::Cluster > clusters, float *photChargeVec)
void findRingGeom(double ckovAng, int level=1)
void setImpPC(double xPc, double yPc)
bool match(const std::vector< std::string > &queries, const char *pattern)
GLdouble GLdouble GLdouble z
a couple of static helper functions to create timestamp values for CCDB queries or override obsolete ...
std::vector< Cluster > clusters