|
ATLAS Offline Software
|
Go to the documentation of this file.
5 #ifndef TILECOSMICALGS_TILEMUONFITTER_H
6 #define TILECOSMICALGS_TILEMUONFITTER_H
45 #include "GaudiKernel/ToolHandle.h"
146 , std::vector<int> & segModule, std::vector<int> & segSampling,
int index);
149 void energyInTrack(std::vector<double> & etop, std::vector<double> & ebot
150 , std::vector<IdentifierHash> &
cells,
int index);
188 void doHough(
double &rxy,
double &axy,
double &rzy,
double &azy);
265 "Input CaloCellContainer name" };
270 "Output TileCosmicMuonContainer name"};
static const CaloCell_ID::SUBCALO m_caloIndex
Property holding a SG store/key/clid from which a ReadHandle is made.
std::vector< double > m_tileDD_zLB
Z bounds of LB, loaded from Detector Description.
void setEventDefaults()
Reset variables.
Fits straight cosmic muon track to TileCal event.
int whichModule(CLHEP::Hep3Vector tempvec)
Returns module index for TVector3 input.
void buildCells()
Creates an internal cell container (just vectors) from the input CaloCellContainer.
std::vector< double > m_cellTime
Selected cell's time.
std::vector< double > m_zeroCrossingTime
Time at y=0.
void trackIntersection(std::vector< double > <op, std::vector< double > &lbot, int index)
Calculates length of track intersection with TileCal (by sampling).
int houghTrack()
Fits a straight track to the cells centers, using a Hough Transform algorithm.
void buildTileCosmicMuon(int fitok)
Selects between the two next methods.
bool eventSelection()
Checks if there are good cells on the top and bottom modules.
SG::ReadHandleKey< CaloCellContainer > m_cellContainerKey
void buildComTimeAtYequal0(int fitok)
Creates output ComTime object in StoreGate.
bool checkLBr(double x1, uint8_t s1)
Checks if x1 is within LB r coordinate bounds for sampling s1.
void cart2hough(float x1, float y1, float x2, float y2, double &raio, double &angu)
void buildComTimeAtZequal0(int fitok)
Creates output ComTime object in StoreGate.
std::vector< double > m_tileDD_radiusEB
Radial bounds of the 3 samplings in EB, loaded from Detector Description.
void calculateTimeAtZequal0()
Extrapolates cell time to z=0.
void calculateTime()
Calculates time in reference plane.
std::vector< CLHEP::Hep3Vector > m_cellPosition
Position of selected cell's center.
virtual StatusCode execute()
float dist2line(CellInfo &ci, float *pos, float *w)
std::vector< std::vector< double > > m_linePar
Vector with the fitted four track parameters.
unsigned int buildCellInfoVector()
void calculateTimeAtYequal0()
Extrapolates cell time to y=0.
std::vector< double > m_fitMinimum
Chi-square minumum.
std::vector< CellInfo > m_cellInfo
std::vector< double > m_cellEnergy
Selected cell's energy.
int whichLBr(double x1)
Returns sampling index if x1 is within LB r coordinate bounds.
std::vector< double > m_cellWeight
Selected cell's weight for fit.
Helper class for TileCal online (hardware) identifiers.
bool checkEBr(double x1, uint8_t s1)
Checks if x1 is within EB r coordinate bounds for sampling s1.
bool m_doHoughTransform
Flag to use Hough Transform instead of Fit.
bool checkEBAz(double x1)
Checks if x1 is within EBA z coordinate bounds.
Property holding a SG store/key/clid from which a WriteHandle is made.
virtual ~TileMuonFitter()
TileMuonFitter(const std::string &name, ISvcLocator *pSvcLocator)
Constructor.
bool checkLBz(double x1)
Checks if x1 is within LB z coordinate bounds.
bool guessTrack(unsigned int &index1, unsigned int &index2)
unsigned int CntCells(unsigned int index1, unsigned int index2, double &skew)
Helper class for TileCal offline identifiers.
::StatusCode StatusCode
StatusCode definition for legacy code.
SUBCALO
enumeration of sub calorimeters
std::vector< IdentifierHash > m_cellHash
Selected cell's identifier hash.
ROOT::Minuit2::TileMuonTrackDistance * m_theTrack
Auxiliary class representing the function to be minimized - weighted sum of squares of orthogonal dis...
std::vector< double > m_cellDeltaTime
Selected cell's time difference between two PMTs.
void buildTileCosmicMuonAtZequal0(int fitok)
Creates output TileCosmicMuon object in StoreGate.
bool checkEBz(double x1)
Checks if x1 is within EB z coordinate bounds.
void trackSegmentIntersection(std::vector< double > &segPath, std::vector< int > &segPartition, std::vector< int > &segModule, std::vector< int > &segSampling, int index)
Calculates length of track intersection with TileCal (by sampling and module).
Property holding a SG store/key/clid from which a WriteHandle is made.
int whichEBr(double x1)
Returns sampling index if x1 is within EB r coordinate bounds.
bool checkEBCz(double x1)
Checks if x1 is within EBC z coordinate bounds.
void buildTileCosmicMuonAtYequal0(int fitok)
Creates output TileCosmicMuon object in StoreGate.
void doHough(double &rxy, double &axy, double &rzy, double &azy)
Container class for CaloCell.
void energyInTrack(std::vector< double > &etop, std::vector< double > &ebot, std::vector< IdentifierHash > &cells, int index)
Sums up energy in TileCal cells close to the track (by sampling).
std::vector< double > m_tileDD_zEBC
Z bounds of EBC, loaded from Detector Description.
bool m_doWeighted
Flag to weigh or not the chi-square with an energy parameter.
int m_nCells
Number of cells selected for fit.
void buildComTime(int fitok)
Selects between the two next methods.
std::string m_beamType
Flag to indicate: cosmics, singlebeam or collisions.
bool isHaloMuon(double azy)
void addTrack(double aa, double bb, double cc, double dd)
void points2dir(CellInfo &ci1, CellInfo &ci2, float *w)
virtual StatusCode initialize()
bool m_doDensity
Flag defining the energy weighting parameter: energy density or plain energy.
std::vector< double > m_tileDD_zEBA
Z bounds of EBA, loaded from Detector Description.
std::vector< double > m_tileDD_radiusLB
Radial bounds of the 3 samplings in LB, loaded from Detector Description.
virtual StatusCode finalize()
const TileHWID * m_tileHWID
float selectCells(float *p, float *w)
double m_eThreshold
Cell energy threshold.
This is a "hash" representation of an Identifier. This encodes a 32 bit index which can be used to lo...
void hough2cart(double r, double a, double offset, double &aa, double &bb)
SG::WriteHandleKey< TileCosmicMuonContainer > m_cosmicMuonContainerKey
Auxiliary to TileMuonFitter. Chi-square function for Minuit.
int m_minimumCells
Minimum number of cells needed for fit.
const TileDetDescrManager * m_tileMgr
const CaloCellContainer * m_caloCells
double m_deltaTimeCut
Cell Delta Time cut.
int fitTrack()
Fits a straight track to the cell centers, using the auxiliary class TileMuonTrackDistance.
SG::WriteHandleKey< ComTime > m_comTimeKey