![]() |
ATLAS Offline Software
|
Fits straight cosmic muon track to TileCal event. More...
#include <TileMuonFitter.h>
Public Member Functions | |
| TileMuonFitter (const std::string &name, ISvcLocator *pSvcLocator) | |
| Constructor. | |
| virtual | ~TileMuonFitter () |
| virtual StatusCode | initialize () override |
| virtual StatusCode | execute () override |
| virtual StatusCode | finalize () override |
| virtual bool | isClonable () const override final |
| void | buildCells () |
| Creates an internal cell container (just vectors) from the input CaloCellContainer. | |
| void | setEventDefaults () |
| Reset variables. | |
| bool | eventSelection () |
| Checks if there are good cells on the top and bottom modules. | |
| int | fitTrack () |
| Fits a straight track to the cell centers, using the auxiliary class TileMuonTrackDistance. | |
| int | houghTrack () |
| Fits a straight track to the cells centers, using a Hough Transform algorithm. | |
| void | calculateTime () |
| Calculates time in reference plane. | |
| void | calculateTimeAtYequal0 () |
| Extrapolates cell time to y=0. | |
| void | calculateTimeAtZequal0 () |
| Extrapolates cell time to z=0. | |
| void | buildTileCosmicMuon (int fitok) |
| Selects between the two next methods. | |
| void | buildTileCosmicMuonAtYequal0 (int fitok) |
| Creates output TileCosmicMuon object in StoreGate. | |
| void | buildTileCosmicMuonAtZequal0 (int fitok) |
| Creates output TileCosmicMuon object in StoreGate. | |
| void | buildComTime (int fitok) |
| Selects between the two next methods. | |
| void | buildComTimeAtYequal0 (int fitok) |
| Creates output ComTime object in StoreGate. | |
| void | buildComTimeAtZequal0 (int fitok) |
| Creates output ComTime object in StoreGate. | |
| virtual StatusCode | sysInitialize () override |
| Override sysInitialize. | |
| virtual const DataObjIDColl & | extraOutputDeps () const override |
| Return the list of extra output dependencies. | |
| ServiceHandle< StoreGateSvc > & | evtStore () |
The standard StoreGateSvc (event store) Returns (kind of) a pointer to the StoreGateSvc. | |
| const ServiceHandle< StoreGateSvc > & | detStore () const |
The standard StoreGateSvc/DetectorStore Returns (kind of) a pointer to the StoreGateSvc. | |
| virtual StatusCode | sysStart () override |
| Handle START transition. | |
| virtual std::vector< Gaudi::DataHandle * > | inputHandles () const override |
| Return this algorithm's input handles. | |
| virtual std::vector< Gaudi::DataHandle * > | outputHandles () const override |
| Return this algorithm's output handles. | |
| Gaudi::Details::PropertyBase & | declareProperty (Gaudi::Property< T, V, H > &t) |
| void | updateVHKA (Gaudi::Details::PropertyBase &) |
| MsgStream & | msg () const |
| bool | msgLvl (const MSG::Level lvl) const |
Protected Member Functions | |
| void | renounceArray (SG::VarHandleKeyArray &handlesArray) |
| remove all handles from I/O resolution | |
| std::enable_if_t< std::is_void_v< std::result_of_t< decltype(&T::renounce)(T)> > &&!std::is_base_of_v< SG::VarHandleKeyArray, T > &&std::is_base_of_v< Gaudi::DataHandle, T >, void > | renounce (T &h) |
| void | extraDeps_update_handler (Gaudi::Details::PropertyBase &ExtraDeps) |
| Add StoreName to extra input/output deps as needed. | |
Protected Attributes | |
| const TileID * | m_tileID |
| const TileHWID * | m_tileHWID |
| const TileDetDescrManager * | m_tileMgr |
| const CaloCellContainer * | m_caloCells |
| ROOT::Minuit2::TileMuonTrackDistance * | m_theTrack |
| Auxiliary class representing the function to be minimized - weighted sum of squares of orthogonal distances from track to cells) | |
| double | m_eThreshold |
| Cell energy threshold. | |
| double | m_deltaTimeCut |
| Cell Delta Time cut. | |
| bool | m_doWeighted |
| Flag to weigh or not the chi-square with an energy parameter. | |
| bool | m_doDensity |
| Flag defining the energy weighting parameter: energy density or plain energy. | |
| std::string | m_beamType |
| Flag to indicate: cosmics, singlebeam or collisions. | |
| bool | m_doHoughTransform |
| Flag to use Hough Transform instead of Fit. | |
| std::vector< double > | m_tileDD_radiusLB |
| Radial bounds of the 3 samplings in LB, loaded from Detector Description. | |
| std::vector< double > | m_tileDD_radiusEB |
| Radial bounds of the 3 samplings in EB, loaded from Detector Description. | |
| std::vector< double > | m_tileDD_zEBA |
| Z bounds of EBA, loaded from Detector Description. | |
| std::vector< double > | m_tileDD_zEBC |
| Z bounds of EBC, loaded from Detector Description. | |
| std::vector< double > | m_tileDD_zLB |
| Z bounds of LB, loaded from Detector Description. | |
| int | m_nCells |
| Number of cells selected for fit. | |
| int | m_minimumCells |
| Minimum number of cells needed for fit. | |
| std::vector< CLHEP::Hep3Vector > | m_cellPosition |
| Position of selected cell's center. | |
| std::vector< double > | m_cellEnergy |
| Selected cell's energy. | |
| std::vector< double > | m_cellWeight |
| Selected cell's weight for fit. | |
| std::vector< double > | m_cellTime |
| Selected cell's time. | |
| std::vector< double > | m_cellDeltaTime |
| Selected cell's time difference between two PMTs. | |
| std::vector< IdentifierHash > | m_cellHash |
| Selected cell's identifier hash. | |
| std::vector< std::vector< double > > | m_linePar |
| Vector with the fitted four track parameters. | |
| std::vector< double > | m_fitMinimum |
| Chi-square minumum. | |
| std::vector< double > | m_zeroCrossingTime |
| Time at y=0. | |
| double | m_meanX |
| double | m_meanY |
| double | m_meanZ |
| double | m_weightedMeanX |
| double | m_weightedMeanY |
| double | m_weightedMeanZ |
| int | m_maxBottomIndex |
| int | m_maxTopIndex |
| bool | m_reg1to2 |
| SG::ReadHandleKey< CaloCellContainer > | m_cellContainerKey |
| SG::WriteHandleKey< TileCosmicMuonContainer > | m_cosmicMuonContainerKey |
| SG::WriteHandleKey< ComTime > | m_comTimeKey {this, "ComTimeKey", "ComTimeTileMuon", "Output ComTime name"} |
Static Protected Attributes | |
| static const CaloCell_ID::SUBCALO | m_caloIndex = CaloCell_ID::TILE |
Private Types | |
| typedef ServiceHandle< StoreGateSvc > | StoreGateSvc_t |
Private Member Functions | |
| void | trackIntersection (std::vector< double > <op, std::vector< double > &lbot, int index) |
| Calculates length of track intersection with TileCal (by sampling). | |
| 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). | |
| 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). | |
| bool | checkLBz (double x1) |
| Checks if x1 is within LB z coordinate bounds. | |
| bool | checkEBz (double x1) |
| Checks if x1 is within EB z coordinate bounds. | |
| bool | checkEBAz (double x1) |
| Checks if x1 is within EBA z coordinate bounds. | |
| bool | checkEBCz (double x1) |
| Checks if x1 is within EBC z coordinate bounds. | |
| bool | checkLBr (double x1, uint8_t s1) |
| Checks if x1 is within LB r coordinate bounds for sampling s1. | |
| bool | checkEBr (double x1, uint8_t s1) |
| Checks if x1 is within EB r coordinate bounds for sampling s1. | |
| bool | checkLBr (double x1) |
| Checks if x1 is within LB r coordinate bounds for any sampling. | |
| bool | checkEBr (double x1) |
| Checks if x1 is within EB r coordinate bounds for any sampling. | |
| int | whichEBr (double x1) |
| Returns sampling index if x1 is within EB r coordinate bounds. | |
| int | whichLBr (double x1) |
| Returns sampling index if x1 is within LB r coordinate bounds. | |
| int | whichModule (CLHEP::Hep3Vector tempvec) |
| Returns module index for TVector3 input. | |
| void | cart2hough (float x1, float y1, float x2, float y2, double &raio, double &angu) |
| void | hough2cart (double r, double a, double offset, double &aa, double &bb) |
| float | dist2line (CellInfo &ci, float *pos, float *w) |
| void | points2dir (CellInfo &ci1, CellInfo &ci2, float *w) |
| unsigned int | CntCells (unsigned int index1, unsigned int index2, double &skew) |
| bool | guessTrack (unsigned int &index1, unsigned int &index2) |
| unsigned int | buildCellInfoVector () |
| float | selectCells (float *p, float *w) |
| bool | isHaloMuon (double azy) |
| void | doHough (double &rxy, double &axy, double &rzy, double &azy) |
| void | addTrack (double aa, double bb, double cc, double dd) |
| Gaudi::Details::PropertyBase & | declareGaudiProperty (Gaudi::Property< T, V, H > &hndl, const SG::VarHandleKeyType &) |
| specialization for handling Gaudi::Property<SG::VarHandleKey> | |
Private Attributes | |
| std::vector< CellInfo > | m_cellInfo |
| DataObjIDColl | m_extendedExtraObjects |
| StoreGateSvc_t | m_evtStore |
| Pointer to StoreGate (event store by default) | |
| StoreGateSvc_t | m_detStore |
| Pointer to StoreGate (detector store by default) | |
| std::vector< SG::VarHandleKeyArray * > | m_vhka |
| bool | m_varHandleArraysDeclared |
Fits straight cosmic muon track to TileCal event.
This class implements a cosmic muon track reconstruction from TileCal information only. The algorithm is described in the ATL-TILECAL-INT-2007-003 note. It uses CaloCells as input, fits a straight line to the cells, weighted with energy or energy density and outputs single track parameters. Cell timing is also used to provide the time at which the muon crossed the horizontal (y=0) plane.
Definition at line 88 of file TileMuonFitter.h.
|
privateinherited |
Definition at line 388 of file AthCommonDataStore.h.
| TileMuonFitter::TileMuonFitter | ( | const std::string & | name, |
| ISvcLocator * | pSvcLocator ) |
Constructor.
Definition at line 95 of file TileMuonFitter.cxx.
|
virtual |
Definition at line 125 of file TileMuonFitter.cxx.
|
private |
Definition at line 1885 of file TileMuonFitter.cxx.
|
private |
Definition at line 1698 of file TileMuonFitter.cxx.
| void TileMuonFitter::buildCells | ( | ) |
Creates an internal cell container (just vectors) from the input CaloCellContainer.
Throws away cells below threshold or flagged from jobOptions.
Definition at line 319 of file TileMuonFitter.cxx.
| void TileMuonFitter::buildComTime | ( | int | fitok | ) |
Selects between the two next methods.
Definition at line 1435 of file TileMuonFitter.cxx.
| void TileMuonFitter::buildComTimeAtYequal0 | ( | int | fitok | ) |
Creates output ComTime object in StoreGate.
Definition at line 1447 of file TileMuonFitter.cxx.
| void TileMuonFitter::buildComTimeAtZequal0 | ( | int | fitok | ) |
Creates output ComTime object in StoreGate.
Definition at line 1512 of file TileMuonFitter.cxx.
| void TileMuonFitter::buildTileCosmicMuon | ( | int | fitok | ) |
Selects between the two next methods.
Definition at line 668 of file TileMuonFitter.cxx.
| void TileMuonFitter::buildTileCosmicMuonAtYequal0 | ( | int | fitok | ) |
Creates output TileCosmicMuon object in StoreGate.
Definition at line 681 of file TileMuonFitter.cxx.
| void TileMuonFitter::buildTileCosmicMuonAtZequal0 | ( | int | fitok | ) |
Creates output TileCosmicMuon object in StoreGate.
Definition at line 754 of file TileMuonFitter.cxx.
| void TileMuonFitter::calculateTime | ( | ) |
Calculates time in reference plane.
Definition at line 530 of file TileMuonFitter.cxx.
| void TileMuonFitter::calculateTimeAtYequal0 | ( | ) |
Extrapolates cell time to y=0.
Definition at line 542 of file TileMuonFitter.cxx.
| void TileMuonFitter::calculateTimeAtZequal0 | ( | ) |
Extrapolates cell time to z=0.
Definition at line 605 of file TileMuonFitter.cxx.
|
private |
Definition at line 1577 of file TileMuonFitter.cxx.
|
private |
Checks if x1 is within EBA z coordinate bounds.
Definition at line 1289 of file TileMuonFitter.cxx.
|
private |
Checks if x1 is within EBC z coordinate bounds.
Definition at line 1298 of file TileMuonFitter.cxx.
|
private |
Checks if x1 is within EB r coordinate bounds for any sampling.
Definition at line 1317 of file TileMuonFitter.cxx.
|
private |
Checks if x1 is within EB r coordinate bounds for sampling s1.
Definition at line 1338 of file TileMuonFitter.cxx.
|
private |
Checks if x1 is within EB z coordinate bounds.
Definition at line 1283 of file TileMuonFitter.cxx.
|
private |
Checks if x1 is within LB r coordinate bounds for any sampling.
Definition at line 1307 of file TileMuonFitter.cxx.
|
private |
Checks if x1 is within LB r coordinate bounds for sampling s1.
Definition at line 1327 of file TileMuonFitter.cxx.
|
private |
Checks if x1 is within LB z coordinate bounds.
Definition at line 1274 of file TileMuonFitter.cxx.
|
private |
Definition at line 1643 of file TileMuonFitter.cxx.
|
inlineprivateinherited |
specialization for handling Gaudi::Property<SG::VarHandleKey>
Definition at line 156 of file AthCommonDataStore.h.
|
inlineinherited |
Definition at line 145 of file AthCommonDataStore.h.
|
inlineinherited |
The standard StoreGateSvc/DetectorStore Returns (kind of) a pointer to the StoreGateSvc.
Definition at line 95 of file AthCommonDataStore.h.
|
private |
Definition at line 1617 of file TileMuonFitter.cxx.
|
private |
Definition at line 1759 of file TileMuonFitter.cxx.
|
private |
Sums up energy in TileCal cells close to the track (by sampling).
Definition at line 1382 of file TileMuonFitter.cxx.
| bool TileMuonFitter::eventSelection | ( | ) |
Checks if there are good cells on the top and bottom modules.
If not, skips event.
Definition at line 378 of file TileMuonFitter.cxx.
|
inlineinherited |
The standard StoreGateSvc (event store) Returns (kind of) a pointer to the StoreGateSvc.
Definition at line 85 of file AthCommonDataStore.h.
|
overridevirtual |
Definition at line 253 of file TileMuonFitter.cxx.
|
protectedinherited |
Add StoreName to extra input/output deps as needed.
use the logic of the VarHandleKey to parse the DataObjID keys supplied via the ExtraInputs and ExtraOuputs Properties to add the StoreName if it's not explicitly given
|
overridevirtualinherited |
Return the list of extra output dependencies.
This list is extended to include symlinks implied by inheritance relations.
Definition at line 50 of file AthAlgorithm.cxx.
|
overridevirtual |
Definition at line 243 of file TileMuonFitter.cxx.
| int TileMuonFitter::fitTrack | ( | ) |
Fits a straight track to the cell centers, using the auxiliary class TileMuonTrackDistance.
Definition at line 435 of file TileMuonFitter.cxx.
|
private |
Definition at line 1673 of file TileMuonFitter.cxx.
|
private |
Definition at line 1603 of file TileMuonFitter.cxx.
| int TileMuonFitter::houghTrack | ( | ) |
Fits a straight track to the cells centers, using a Hough Transform algorithm.
Definition at line 1807 of file TileMuonFitter.cxx.
|
overridevirtual |
Definition at line 131 of file TileMuonFitter.cxx.
|
overridevirtualinherited |
Return this algorithm's input handles.
We override this to include handle instances from key arrays if they have not yet been declared. See comments on updateVHKA.
|
inlinefinaloverridevirtual |
Definition at line 98 of file TileMuonFitter.h.
|
private |
Definition at line 1753 of file TileMuonFitter.cxx.
|
inlineinherited |
Definition at line 24 of file AthCommonMsg.h.
|
inlineinherited |
Definition at line 30 of file AthCommonMsg.h.
|
overridevirtualinherited |
Return this algorithm's output handles.
We override this to include handle instances from key arrays if they have not yet been declared. See comments on updateVHKA.
|
inlineprotectedinherited |
Definition at line 380 of file AthCommonDataStore.h.
|
inlineprotectedinherited |
remove all handles from I/O resolution
Definition at line 364 of file AthCommonDataStore.h.
|
private |
Definition at line 1732 of file TileMuonFitter.cxx.
| void TileMuonFitter::setEventDefaults | ( | ) |
Reset variables.
Definition at line 297 of file TileMuonFitter.cxx.
|
overridevirtualinherited |
Override sysInitialize.
Override sysInitialize from the base class.
Loop through all output handles, and if they're WriteCondHandles, automatically register them and this Algorithm with the CondSvc
Scan through all outputHandles, and if they're WriteCondHandles, register them with the CondSvc
Reimplemented from AthCommonDataStore< AthCommonMsg< Algorithm > >.
Reimplemented in AthAnalysisAlgorithm, AthFilterAlgorithm, AthHistogramAlgorithm, and PyAthena::Alg.
Definition at line 66 of file AthAlgorithm.cxx.
|
overridevirtualinherited |
Handle START transition.
We override this in order to make sure that conditions handle keys can cache a pointer to the conditions container.
|
private |
Calculates length of track intersection with TileCal (by sampling).
check intersection with cylinder
Make the list of valid LB intersection points
Now let's make the list of valid EB intersection points
check intersection with vertical planes
We need to check if we need to add the horizontal point. The criterion is: is the horizontal plane crossing point within TileCal or not?
check intersection with horizontal plane
Order points according to the y coordinate, and create two different vectors, one for bottom, one for top
Now create ordered vector, adding in the horizontal plane point if needed. This must go at the top of the bottom list and at the bottom of the top list, since they are ordered according to y.
Now let's turn points into segment lengths. We take two successive points from the top or bottom stack. The segment is simply the difference between them. The region indices are checked with the midpoint. We discard this segment if its midpoint is in the LB/EB gap.
Definition at line 827 of file TileMuonFitter.cxx.
|
private |
Calculates length of track intersection with TileCal (by sampling and module).
check intersection with cylinder
Make the list of valid LB intersection points
Now let's make the list of valid EB intersection points
check intersection with vertical planes
check intersection with module planes
Order points according to the y coordinate.
Now let's turn points into segment lengths. We take two successive points from the stack. The segment is simply the difference between them. The region indices are checked with the midpoint. We discard this segment if its midpoint is in the LB/EB gap.
Definition at line 1053 of file TileMuonFitter.cxx.
|
inlineinherited |
Definition at line 308 of file AthCommonDataStore.h.
|
private |
|
private |
|
private |
Returns module index for TVector3 input.
Definition at line 1369 of file TileMuonFitter.cxx.
|
protected |
Flag to indicate: cosmics, singlebeam or collisions.
Definition at line 214 of file TileMuonFitter.h.
|
protected |
Definition at line 198 of file TileMuonFitter.h.
|
staticprotected |
Definition at line 263 of file TileMuonFitter.h.
|
protected |
Definition at line 265 of file TileMuonFitter.h.
|
protected |
Selected cell's time difference between two PMTs.
Definition at line 241 of file TileMuonFitter.h.
|
protected |
Selected cell's energy.
Definition at line 235 of file TileMuonFitter.h.
|
protected |
Selected cell's identifier hash.
Definition at line 243 of file TileMuonFitter.h.
|
private |
Definition at line 178 of file TileMuonFitter.h.
|
protected |
Position of selected cell's center.
Definition at line 233 of file TileMuonFitter.h.
|
protected |
Selected cell's time.
Definition at line 239 of file TileMuonFitter.h.
|
protected |
Selected cell's weight for fit.
Definition at line 237 of file TileMuonFitter.h.
|
protected |
Definition at line 273 of file TileMuonFitter.h.
|
protected |
Definition at line 268 of file TileMuonFitter.h.
|
protected |
Cell Delta Time cut.
Definition at line 207 of file TileMuonFitter.h.
|
privateinherited |
Pointer to StoreGate (detector store by default)
Definition at line 393 of file AthCommonDataStore.h.
|
protected |
Flag defining the energy weighting parameter: energy density or plain energy.
Definition at line 212 of file TileMuonFitter.h.
|
protected |
Flag to use Hough Transform instead of Fit.
Definition at line 216 of file TileMuonFitter.h.
|
protected |
Flag to weigh or not the chi-square with an energy parameter.
Definition at line 209 of file TileMuonFitter.h.
|
protected |
Cell energy threshold.
Definition at line 205 of file TileMuonFitter.h.
|
privateinherited |
Pointer to StoreGate (event store by default)
Definition at line 390 of file AthCommonDataStore.h.
|
privateinherited |
Definition at line 79 of file AthAlgorithm.h.
|
protected |
Chi-square minumum.
Definition at line 248 of file TileMuonFitter.h.
|
protected |
Vector with the fitted four track parameters.
Definition at line 246 of file TileMuonFitter.h.
|
protected |
Definition at line 259 of file TileMuonFitter.h.
|
protected |
Definition at line 260 of file TileMuonFitter.h.
|
protected |
Definition at line 252 of file TileMuonFitter.h.
|
protected |
Definition at line 253 of file TileMuonFitter.h.
|
protected |
Definition at line 254 of file TileMuonFitter.h.
|
protected |
Minimum number of cells needed for fit.
Definition at line 231 of file TileMuonFitter.h.
|
protected |
Number of cells selected for fit.
Definition at line 229 of file TileMuonFitter.h.
|
protected |
Definition at line 261 of file TileMuonFitter.h.
|
protected |
Auxiliary class representing the function to be minimized - weighted sum of squares of orthogonal distances from track to cells)
Definition at line 202 of file TileMuonFitter.h.
|
protected |
Radial bounds of the 3 samplings in EB, loaded from Detector Description.
Definition at line 220 of file TileMuonFitter.h.
|
protected |
Radial bounds of the 3 samplings in LB, loaded from Detector Description.
Definition at line 218 of file TileMuonFitter.h.
|
protected |
Z bounds of EBA, loaded from Detector Description.
Definition at line 222 of file TileMuonFitter.h.
|
protected |
Z bounds of EBC, loaded from Detector Description.
Definition at line 224 of file TileMuonFitter.h.
|
protected |
Z bounds of LB, loaded from Detector Description.
Definition at line 226 of file TileMuonFitter.h.
|
protected |
Definition at line 196 of file TileMuonFitter.h.
|
protected |
Definition at line 195 of file TileMuonFitter.h.
|
protected |
Definition at line 197 of file TileMuonFitter.h.
|
privateinherited |
Definition at line 399 of file AthCommonDataStore.h.
|
privateinherited |
Definition at line 398 of file AthCommonDataStore.h.
|
protected |
Definition at line 255 of file TileMuonFitter.h.
|
protected |
Definition at line 256 of file TileMuonFitter.h.
|
protected |
Definition at line 257 of file TileMuonFitter.h.
|
protected |
Time at y=0.
Definition at line 250 of file TileMuonFitter.h.