Belle II Software development
ARICHReconstruction Class Reference

Internal ARICH track reconstruction. More...

#include <ARICHReconstruction.h>

Public Member Functions

 ARICHReconstruction (int storePhotons=0)
 Constructor.
 
 ~ARICHReconstruction ()
 Destructor.
 
void initialize ()
 Read geometry parameters from xml and initialize class members.
 
int smearTrack (ARICHTrack &arichTrack)
 Smears track parameters ("simulate" the uncertainties of tracking).
 
void transformTrackToLocal (ARICHTrack &arichTrack, bool align)
 Transforms track parameters from global Belle2 to ARICH local frame.
 
int likelihood2 (ARICHTrack &arichTrack, const StoreArray< ARICHHit > &arichHits, ARICHLikelihood &arichLikelihood)
 Computes the value of identity likelihood function for different particle hypotheses.
 
void setTrackPositionResolution (double pRes)
 Sets track position resolution (from tracking).
 
void setTrackAngleResolution (double aRes)
 Sets track direction resolution (from tracking).
 
void useMirrorAlignment (bool align)
 Use mirror alignment or not.
 
void correctEmissionPoint (int tileID, double r)
 Correct mean emission point z position.
 

Private Member Functions

int InsideDetector (ROOT::Math::XYZVector a, int copyno)
 Returns 1 if vector "a" lies on "copyno"-th detector active surface of detector and 0 else.
 
ROOT::Math::XYZVector HitVirtualPosition (const ROOT::Math::XYZVector &hitpos, int mirrorID)
 Returns the hit virtual position, assuming that it was reflected from mirror.
 
ROOT::Math::XYZVector FastTracking (ROOT::Math::XYZVector dirf, ROOT::Math::XYZVector r, double *refind, double *z, int n, int opt)
 Calculates the intersection of the Cherenkov photon emitted from point "r" in "dirf" direction with the detector plane.
 
ROOT::Math::XYZVector FastTrackingSimple (ROOT::Math::XYZVector dirf, ROOT::Math::XYZVector r, double *refind, double *z, int n)
 Calculates the intersection of the Cherenkov photon emitted from point "r" in "dirf" direction with the detector plane.
 
int CherenkovPhoton (ROOT::Math::XYZVector r, ROOT::Math::XYZVector rh, ROOT::Math::XYZVector &rf, ROOT::Math::XYZVector &dirf, double *refind, double *z, int n, int mirrorID=0)
 Calculates the direction of photon emission.
 
bool HitsMirror (const ROOT::Math::XYZVector &pos, const ROOT::Math::XYZVector &dir, int mirrorID)
 Returns true if photon at position pos with direction dir hits mirror plate with ID mirrorID.
 
ROOT::Math::XYZVector getTrackMeanEmissionPosition (const ARICHTrack &track, int iAero)
 Returns mean emission position of Cherenkov photons from i-th aerogel layer.
 
ROOT::Math::XYZVector getTrackPositionAtZ (const ARICHTrack &track, double zout)
 Returns track direction at point with z coordinate "zout" (assumes straight track).
 
ROOT::Math::XYZVector getMirrorPoint (int mirrorID)
 Returns point on the mirror plate with id mirrorID.
 
ROOT::Math::XYZVector getMirrorNorm (int mirrorID)
 Returns normal vector of the mirror plate with id mirrorID.
 

Private Attributes

double p_mass [c_noOfHypotheses]
 particle masses
 
DBObjPtr< ARICHGeometryConfigm_arichgp
 geometry configuration parameters from the DB
 
DBObjPtr< ARICHReconstructionParm_recPars
 reconstruction parameters from the DB
 
DBObjPtr< ARICHChannelMaskm_chnMask
 map of masked channels from the DB
 
DBObjPtr< ARICHChannelMappingm_chnMap
 map x,y channels to asic channels from the DB
 
DBObjPtr< ARICHGlobalAlignmentm_alignp
 global alignment parameters from the DB
 
DBObjPtr< ARICHMirrorAlignmentm_mirrAlign
 global alignment parameters from the DB
 
OptionalDBObjPtr< ARICHAeroTilesAlignmentm_tileAlign
 alignment of aerogel tiles from DB
 
std::vector< ROOT::Math::XYZVector > m_mirrorPoints
 vector of points on all mirror plates
 
std::vector< ROOT::Math::XYZVector > m_mirrorNorms
 vector of normal vectors of all mirror plates
 
double m_trackPosRes
 track position resolution (from tracking)
 
double m_trackAngRes
 track direction resolution (from tracking)
 
bool m_alignMirrors
 if set to true mirror alignment constants from DB are used
 
unsigned int m_nAerogelLayers
 number of aerogel layers
 
double m_refractiveInd [c_noOfAerogels]
 refractive indices of aerogel layers
 
double m_zaero [c_noOfAerogels]
 z-positions of aerogel layers
 
double m_thickness [c_noOfAerogels]
 thicknesses of aerogel layers
 
double m_transmissionLen [c_noOfAerogels]
 transmission lengths of aerogel layers
 
double m_n0 [c_noOfAerogels]
 number of emitted photons per unit length
 
ROOT::Math::XYZVector m_anorm [c_noOfAerogels]
 normal vector of the aerogel plane
 
int m_storePhot
 set to 1 to store individual reconstructed photon information
 
double m_tilePars [124][2] = {{0}}
 array of tile parameters
 

Static Private Attributes

static const int c_noOfHypotheses = Const::ChargedStable::c_SetSize
 Number of hypotheses to loop over.
 
static const int c_noOfAerogels = 5
 Maximal number of aerogel layers to loop over.
 

Detailed Description

Internal ARICH track reconstruction.

The class contains objects and methods needed for internal ARICH track reconstruction. The main method is likelihood2, which returns the value of the likelihood function and number of expected photons for every input track and all hypotheses. For that purpose, the Cherenkov photon is generated for every track that hits the aerogel, by calling the CherenkovPhoton method. The photon is propagated (FastTracking) to the active area of the detection inside a HAPD and the intersection point with the active area is determined. Whether the photon was detected or not is determined by numerical simulation of the module's geometric acceptance.

Definition at line 47 of file ARICHReconstruction.h.

Constructor & Destructor Documentation

◆ ~ARICHReconstruction()

~ARICHReconstruction ( )
inline

Destructor.

Definition at line 59 of file ARICHReconstruction.h.

59{};

Member Function Documentation

◆ FastTrackingSimple()

ROOT::Math::XYZVector FastTrackingSimple ( ROOT::Math::XYZVector  dirf,
ROOT::Math::XYZVector  r,
double *  refind,
double *  z,
int  n 
)
private

Calculates the intersection of the Cherenkov photon emitted from point "r" in "dirf" direction with the detector plane.

(For the case of simple (beamtest) geometry.)

Parameters
[in]rVector of photon emission point.
[in]dirfDirection of photon emission.
[in]refindArray of layers refractive indices.
[in]zArray of z coordinates of borders between layers.
[in]nNumber of aerogel layers through which photon passes.

◆ useMirrorAlignment()

void useMirrorAlignment ( bool  align)
inline

Use mirror alignment or not.

Definition at line 95 of file ARICHReconstruction.h.

96 {
97 m_alignMirrors = align;
98 };
bool m_alignMirrors
if set to true mirror alignment constants from DB are used

Member Data Documentation

◆ c_noOfAerogels

const int c_noOfAerogels = 5
staticprivate

Maximal number of aerogel layers to loop over.

Definition at line 108 of file ARICHReconstruction.h.

◆ c_noOfHypotheses

const int c_noOfHypotheses = Const::ChargedStable::c_SetSize
staticprivate

Number of hypotheses to loop over.

Definition at line 107 of file ARICHReconstruction.h.

◆ m_alignMirrors

bool m_alignMirrors
private

if set to true mirror alignment constants from DB are used

Definition at line 124 of file ARICHReconstruction.h.

◆ m_alignp

DBObjPtr<ARICHGlobalAlignment> m_alignp
private

global alignment parameters from the DB

Definition at line 115 of file ARICHReconstruction.h.

◆ m_anorm

ROOT::Math::XYZVector m_anorm[c_noOfAerogels]
private

normal vector of the aerogel plane

Definition at line 132 of file ARICHReconstruction.h.

◆ m_arichgp

DBObjPtr<ARICHGeometryConfig> m_arichgp
private

geometry configuration parameters from the DB

Definition at line 111 of file ARICHReconstruction.h.

◆ m_chnMap

DBObjPtr<ARICHChannelMapping> m_chnMap
private

map x,y channels to asic channels from the DB

Definition at line 114 of file ARICHReconstruction.h.

◆ m_chnMask

DBObjPtr<ARICHChannelMask> m_chnMask
private

map of masked channels from the DB

Definition at line 113 of file ARICHReconstruction.h.

◆ m_mirrAlign

DBObjPtr<ARICHMirrorAlignment> m_mirrAlign
private

global alignment parameters from the DB

Definition at line 116 of file ARICHReconstruction.h.

◆ m_mirrorNorms

std::vector<ROOT::Math::XYZVector > m_mirrorNorms
private

vector of normal vectors of all mirror plates

Definition at line 120 of file ARICHReconstruction.h.

◆ m_mirrorPoints

std::vector<ROOT::Math::XYZVector > m_mirrorPoints
private

vector of points on all mirror plates

Definition at line 119 of file ARICHReconstruction.h.

◆ m_n0

double m_n0[c_noOfAerogels]
private

number of emitted photons per unit length

Definition at line 131 of file ARICHReconstruction.h.

◆ m_nAerogelLayers

unsigned int m_nAerogelLayers
private

number of aerogel layers

Definition at line 126 of file ARICHReconstruction.h.

◆ m_recPars

DBObjPtr<ARICHReconstructionPar> m_recPars
private

reconstruction parameters from the DB

Definition at line 112 of file ARICHReconstruction.h.

◆ m_refractiveInd

double m_refractiveInd[c_noOfAerogels]
private

refractive indices of aerogel layers

Definition at line 127 of file ARICHReconstruction.h.

◆ m_storePhot

int m_storePhot
private

set to 1 to store individual reconstructed photon information

Definition at line 133 of file ARICHReconstruction.h.

◆ m_thickness

double m_thickness[c_noOfAerogels]
private

thicknesses of aerogel layers

Definition at line 129 of file ARICHReconstruction.h.

◆ m_tileAlign

alignment of aerogel tiles from DB

Definition at line 117 of file ARICHReconstruction.h.

◆ m_tilePars

double m_tilePars[124][2] = {{0}}
private

array of tile parameters

Definition at line 134 of file ARICHReconstruction.h.

◆ m_trackAngRes

double m_trackAngRes
private

track direction resolution (from tracking)

Definition at line 123 of file ARICHReconstruction.h.

◆ m_trackPosRes

double m_trackPosRes
private

track position resolution (from tracking)

Definition at line 122 of file ARICHReconstruction.h.

◆ m_transmissionLen

double m_transmissionLen[c_noOfAerogels]
private

transmission lengths of aerogel layers

Definition at line 130 of file ARICHReconstruction.h.

◆ m_zaero

double m_zaero[c_noOfAerogels]
private

z-positions of aerogel layers

Definition at line 128 of file ARICHReconstruction.h.

◆ p_mass

double p_mass[c_noOfHypotheses]
private

particle masses

Definition at line 109 of file ARICHReconstruction.h.


The documentation for this class was generated from the following files: