![Logo](../../ATLAS-Logo-Square-Blue-RGB.png) |
ATLAS Offline Software
|
Go to the documentation of this file.
35 m_hTrDPhiCorr(nullptr),
42 m_hPvNPriVtx(nullptr),
43 m_hPvNPileupVtx(nullptr),
50 m_hPvChiSqDoF(nullptr),
54 m_hPvNTracksAll(nullptr),
55 m_hPvNTracks(nullptr),
56 m_hPvTrackPt(nullptr),
57 m_hPvTrackEta(nullptr)
73 if(!
sc.isSuccess())
return sc;
79 return StatusCode::SUCCESS;
103 m_hTrNPt =
makeAndRegisterTH1F(al_beamspot_expert,
"trkNPt",
"Number of Tracks per event (after Pt cut);Number of tracks",100,0,1000);
148 return StatusCode::SUCCESS;
155 float beamSpotX = 0.;
156 float beamSpotY = 0.;
157 float beamSpotZ = 0.;
158 float beamTiltX = 0.;
159 float beamTiltY = 0.;
160 float scaleFactor = 1.;
166 beamSpotX = bpos.x();
167 beamSpotY = bpos.y();
168 beamSpotZ = bpos.z();
169 beamTiltX = beamSpotHandle->beamTilt(0);
170 beamTiltY = beamSpotHandle->beamTilt(1);
177 ATH_MSG_DEBUG(
"Beamspot from " << beamSpotHandle.retrieve() <<
": x0 = " << beamSpotX <<
", y0 = " << beamSpotY
178 <<
", z0 = " << beamSpotZ <<
", tiltX = " << beamTiltX
179 <<
", tiltY = " << beamTiltY);
183 if(!(trackCollection.
isValid())){
185 return StatusCode::SUCCESS;
205 float charge = perigee->charge();
206 float z0 = perigee->parameters()[
Trk::z0];
208 float d0 = perigee->parameters()[
Trk::d0];
227 float trkbeamspotx=tpb->
vx();
228 float trkbeamspoty=tpb->
vy();
229 float trkbeamspotz=tpb->
vz();
230 float beamX = (beamSpotX-trkbeamspotx) +
tan(beamTiltX-trkbeamlineTiltX) * (
z0-beamSpotZ+trkbeamspotz);
231 float beamY = (beamSpotY-trkbeamspoty) +
tan(beamTiltY-trkbeamlineTiltY) * (
z0-beamSpotZ+trkbeamspotz);
246 return StatusCode::SUCCESS;
253 if ( !(*vxIter) )
continue;
261 if ((*vxIter)->numberDoF() <= 0)
continue;
266 float x = (*vxIter)->position().x();
267 float y = (*vxIter)->position().y();
268 float z = (*vxIter)->position().z();
269 float beamX = beamSpotX +
tan(beamTiltX) * (
z-beamSpotZ);
270 float beamY = beamSpotY +
tan(beamTiltY) * (
z-beamSpotZ);
271 float beamZ = beamSpotZ;
287 for (
unsigned int trkIter=0; trkIter!=(*vxIter)->nTrackParticles(); ++trkIter) {
302 return StatusCode::SUCCESS;
308 return StatusCode::SUCCESS;
313 const char* hName,
const std::string& hTitle,
int nBins,
float minX,
float maxX) {
316 if (
mon.regHist(
h).isFailure()) {
317 ATH_MSG_WARNING (
"Unable to book histogram with name = "+std::string(hName));
324 const char* hName,
const std::string& hTitle,
325 int nBinsX,
float minX,
float maxX,
326 int nBinsY,
float minY,
float maxY) {
330 if (
mon.regHist(
h).isFailure()) {
331 ATH_MSG_WARNING (
"Unable to book histogram with name = "+std::string(hName));
virtual void Fill(const double &x, const double &y) override
float beamlineTiltY() const
Const iterator class for DataVector/DataList.
@ z
global position (cartesian)
virtual void Fill(const double &x) override
float vx() const
The x origin for the parameters.
static TH1F_LW * create(const char *name, const char *title, unsigned nbinsx, const double &xlow, const double &xup)
Gaudi::Details::PropertyBase & declareProperty(Gaudi::Property< T > &t)
Dummy class used to allow special convertors to be called for surfaces owned by a detector element.
float vz() const
The z origin for the parameters.
Scalar theta() const
theta method
const std::string & key() const
Return the StoreGate ID for the referenced object.
static Environment_t environment()
Returns the running environment of the monitoring application to help ManagedMonitorToolBase objects ...
const Trk::Perigee & perigeeParameters() const
Returns the Trk::MeasuredPerigee track parameters.
static DataType_t dataType()
Returns the data type that the monitoring application is running over to help ManagedMonitorToolBase ...
::StatusCode StatusCode
StatusCode definition for legacy code.
float beamlineTiltX() const
StatusCode initialize(bool used=true)
If this object is used as a property, then this should be called during the initialize phase.
virtual bool isValid() override final
Can the handle be successfully dereferenced?
float vy() const
The y origin for the parameters.
double error(const Amg::MatrixX &mat, int index)
return diagonal error of the matrix caller should ensure the matrix is symmetric and the index is in ...
static TH2F_LW * create(const char *name, const char *title, unsigned nbinsx, const double &xmin, const double &xmax, unsigned nbinsy, const double &ymin, const double &ymax)
double charge(const T &p)
StatusCode initialize(bool used=true)
Eigen::Matrix< double, 3, 1 > Vector3D
const_iterator end() const noexcept
Return a const_iterator pointing past the end of the collection.
#define ATH_MSG_WARNING(x)
Class describing a TrackParticle.
Handle class for reading from StoreGate.
size_type size() const noexcept
Returns the number of elements in the collection.
const_iterator begin() const noexcept
Return a const_iterator pointing at the beginning of the collection.