Commit ff52fbc4 authored by Walter Lampl's avatar Walter Lampl Committed by Graeme Stewart
Browse files

fix uninitialized Transform3D (InDetTestBLayer-00-03-01)

parent 4ec9cf14
/*
Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
*/
#ifndef InDetTestBLayerTool_H
#define InDetTestBLayerTool_H
#include "InDetRecToolInterfaces/IInDetTestBLayerTool.h"
#include "AthenaBaseComps/AthAlgTool.h"
#include "GaudiKernel/ToolHandle.h"
#include "GaudiKernel/ServiceHandle.h"
#include "TrkParameters/TrackParameters.h"
#include "TrkEventPrimitives/ResidualPull.h"
#include "TrkToolInterfaces/IResidualPullCalculator.h"
#include "InDetTestBLayer/TrackStateOnBLayerInfo.h"
#include <vector>
#include <string>
namespace Trk { class Track; class IExtrapolator; class TrackParticleBase; class IResidualPullCalculator;}
namespace Rec { class TrackParticle; }
class IInDetConditionsSvc;
class AtlasDetectorID;
class Identifier;
class PixelID;
namespace InDet {
class InDetTestBLayerTool : virtual public IInDetTestBLayerTool, public AthAlgTool {
public:
InDetTestBLayerTool(const std::string& name,
const std::string& n, const IInterface* p);
virtual ~InDetTestBLayerTool();
virtual StatusCode initialize();
virtual StatusCode finalize();
// bool expectHitInBLayer(const Rec::TrackParticle*) const ;
virtual bool expectHitInBLayer(const Trk::TrackParticleBase*, bool recompute=false) const ;
virtual bool expectHitInBLayer(const Trk::Track*, bool recompute=false) const ;
virtual bool expectHitInBLayer(const Trk::TrackParameters* trackpar) const ;
virtual const Trk::ResidualPull* bLayerHitResidual(const Trk::Track* ) const ;
virtual const Trk::ResidualPull* bLayerHitResidual(const Trk::TrackParticleBase*) const ;
//// return false if extrapolation failed
virtual bool getTrackStateOnBlayerInfo(const Trk::TrackParticleBase*,
std::vector<TrackStateOnBLayerInfo>& infoList) const;
virtual bool getTrackStateOnBlayerInfo(const Trk::Track*,
std::vector<TrackStateOnBLayerInfo>& infoList) const;
virtual bool getTrackStateOnBlayerInfo(const Trk::TrackParameters* trackpar,
std::vector<TrackStateOnBLayerInfo>& infoList) const;
private:
bool isActive(const Trk::TrackParameters* trackpar) const ;
bool getBLayerParameters(const Trk::TrackParameters* trackpar, std::vector<const Trk::TrackParameters*>& blayerParam) const;
double getFracGood(const Trk::TrackParameters* trackpar, double phiRegionSize, double etaRegionSize) const;
/** Pointer to Extrapolator AlgTool*/
ToolHandle< Trk::IExtrapolator > m_extrapolator;
/** Handles to IConditionsSummaryServices for Pixels */
ServiceHandle <IInDetConditionsSvc> m_pixelCondSummarySvc;
/** pointer to the residual pull calculator **/
ToolHandle < Trk::IResidualPullCalculator > m_residualPullCalculator;
/** detector helper*/
const AtlasDetectorID* m_idHelper;
/**ID pixel helper*/
const PixelID* m_pixelId;
bool m_checkActiveAreas;
bool m_configured;
bool m_checkDeadRegions;
double m_phiRegionSize;
double m_etaRegionSize;
double m_goodFracCut;
bool m_checkAtLeastNearestNeighbors;
};
}// end namespace
#endif
/*
Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
*/
#ifndef TrackStateOnBLayerInfo_H
#define TrackStateOnBLayerInfo_H
#include "Identifier/Identifier.h"
// Amg
#include "GeoPrimitives/GeoPrimitives.h"
#include "EventPrimitives/EventPrimitives.h"
namespace InDet {
enum TrackStateOnBLayerType{insideGoodModule=0,
nearGoodModuleEdge=1,
insideBadModule=2,
nearBadModuleEdge=3,
unknownBLayerTrackState=4,
numberOfTrackStateOnBLayerType=5};
class TrackStateOnBLayerInfo{
public:
TrackStateOnBLayerInfo();
~TrackStateOnBLayerInfo();
inline TrackStateOnBLayerType type() const { return m_type; }
inline Identifier moduleId() const { return m_moduleId; }
inline Identifier pixelId() const { return m_pixelId; }
inline const Amg::Vector3D& globalPosition() const { return m_globalPosition; }
inline double localX() const { return m_locX; }
inline double localY() const { return m_locY; }
inline double theta() const { return m_theta; }
inline double phi() const { return m_phi; }
inline double errLocalX() const { return m_errLocX; }
inline double errLocalY() const { return m_errLocY; }
inline double distToModuleEdgePhi() const { return m_distToModEdgePhi; }
inline double distToModuleEdgeEta() const { return m_distToModEdgeEta; }
inline double goodFraction() const {return m_goodFrac;};
inline void type(TrackStateOnBLayerType a) { m_type=a; }
inline void moduleId(Identifier a) { m_moduleId=a; }
inline void pixelId(Identifier a) { m_pixelId=a; }
inline void globalPosition(Amg::Vector3D a) { m_globalPosition=a; }
inline void localX(double a) { m_locX=a; }
inline void localY(double a) { m_locY=a; }
inline void theta(double a) { m_theta=a; }
inline void phi(double a) { m_phi=a; }
inline void errLocalX(double a) { m_errLocX=a; }
inline void errLocalY(double a) { m_errLocY=a; }
inline void distToModuleEdgePhi(double a) { m_distToModEdgePhi=a; }
inline void distToModuleEdgeEta(double a) { m_distToModEdgeEta=a; }
inline void goodFraction(double a) {m_goodFrac=a;};
private:
TrackStateOnBLayerType m_type;
Identifier m_moduleId; /// duplicated: can get from pixel id
Identifier m_pixelId;
Amg::Vector3D m_globalPosition;
double m_locX;
double m_locY;
double m_errLocX;
double m_errLocY;
double m_theta;
double m_phi;
double m_distToModEdgePhi;
double m_distToModEdgeEta;
double m_goodFrac;
};
}// end namespace
#endif
package InDetTestBLayer
author Lorenzo Feligioni <Lorenzo.Feligioni@cern.ch>
use GaudiInterface GaudiInterface-* External
use AtlasPolicy AtlasPolicy-*
use AthenaBaseComps AthenaBaseComps-* Control
#use StoreGate StoreGate-* Control
use GeoPrimitives GeoPrimitives-* DetectorDescription
use EventPrimitives EventPrimitives-* Event
private
apply_tag ROOTRooFitLibs
apply_tag ROOTMathLibs
#use AtlasCLHEP AtlasCLHEP-* External
use InDetConditionsSummaryService InDetConditionsSummaryService* InnerDetector/InDetConditions
use InDetReadoutGeometry InDetReadoutGeometry-* InnerDetector/InDetDetDescr
use TrkTrack TrkTrack-* Tracking/TrkEvent
use TrkExInterfaces TrkExInterfaces-* Tracking/TrkExtrapolation
use TrkMeasurementBase TrkMeasurementBase-* Tracking/TrkEvent
use TrkGeometry TrkGeometry-* Tracking/TrkDetDescr
use TrkSurfaces TrkSurfaces-* Tracking/TrkDetDescr
use Particle Particle-* Reconstruction
use AtlasDetDescr AtlasDetDescr* DetectorDescription
use IdDictDetDescr IdDictDetDescr* DetectorDescription
use InDetIdentifier InDetIdentifier-* InnerDetector/InDetDetDescr
end_private
macro DOXYGEN_IMAGE_PATH "../doc/images"
#library InDetTestBLayer *.cxx components/*.cxx
public
use TrkParameters TrkParameters-* Tracking/TrkEvent
use InDetRecToolInterfaces InDetRecToolInterfaces-* InnerDetector/InDetRecTools
use TrkEventPrimitives TrkEventPrimitives-* Tracking/TrkEvent
use TrkToolInterfaces TrkToolInterfaces-* Tracking/TrkTools
use Identifier Identifier-* DetectorDescription
apply_pattern dual_use_library files="*.cxx"
apply_pattern declare_joboptions files="*.py"
#apply_pattern declare_runtime files="-s=../share *.root *.txt"
/*
Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
*/
#include "InDetTestBLayer/TrackStateOnBLayerInfo.h"
namespace InDet {
InDet::TrackStateOnBLayerInfo::TrackStateOnBLayerInfo(){
m_type = unknownBLayerTrackState;
m_moduleId = 0;
m_pixelId = 0;
m_locX= -99999;
m_locY= -99999;
m_errLocX= -99999;
m_errLocY= -99999;
m_theta= -99999;
m_phi= -99999;
m_distToModEdgePhi= -99999;
m_distToModEdgeEta= -99999;
}
InDet::TrackStateOnBLayerInfo::~TrackStateOnBLayerInfo(){
////....
}
} //end namespace
#include "GaudiKernel/DeclareFactoryEntries.h"
#include "InDetTestBLayer/InDetTestBLayerTool.h"
using namespace InDet ;
DECLARE_NAMESPACE_TOOL_FACTORY( InDet, InDetTestBLayerTool )
/** factory entries need to have the name of the package */
DECLARE_FACTORY_ENTRIES( InDetTestBLayer )
{
DECLARE_NAMESPACE_TOOL( InDet, inDetTestBLayerTool );
}
#include "GaudiKernel/LoadFactoryEntries.h"
LOAD_FACTORY_ENTRIES( InDetTestBLayer )
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment