ATLAS Offline Software
Loading...
Searching...
No Matches
TrigRoiDescriptorCnv_p2.cxx
Go to the documentation of this file.
1/*
2 Copyright (C) 2002-2019 CERN for the benefit of the ATLAS collaboration
3*/
4
6#include <iostream>
7#include <cmath>
10
11
13 TrigRoiDescriptor* transObj,
14 MsgStream &log)
15{
16 log << MSG::DEBUG << "TrigRoiDescriptorCnv_p2::persToTrans called " << endmsg;
17
18 double phi = persObj->geom[PHI] ;
19 double eta = persObj->geom[ETA] ;
20 double zed = persObj->geom[ZED] ;
21 double phiPlus = persObj->geom[PHI] + persObj->geom[WPHI];
22 double phiMinus = persObj->geom[PHI] - persObj->geom[WPHI];
23 double etaPlus = persObj->geom[ETA] + persObj->geom[WETA];
24 double etaMinus = persObj->geom[ETA] - persObj->geom[WETA];
25 double zedPlus = persObj->geom[ZED] + persObj->geom[WZED];
26 double zedMinus = persObj->geom[ZED] - persObj->geom[WZED];
27
28 *transObj = TrigRoiDescriptor (persObj->ids[ROIWORD],
29 0,
30 persObj->ids[ROIID],
31 eta, etaMinus, etaPlus,
32 phi, phiMinus, phiPlus,
33 zed, zedMinus, zedPlus );
34
35 transObj->version (2);
36}
37
38
40 TrigRoiDescriptor_p2* persObj,
41 MsgStream &log)
42{
43 log << MSG::DEBUG << "TrigRoiDescriptorCnv_p2::transToPers called " << endmsg;
44 // log << MSG::FATAL << "TrigRoiDescriptorCnv_p1::transToPers called - do not use this converter, use more recent converter" << endmsg;
45
46 persObj->geom[PHI] = transObj->phi() ;
47 persObj->geom[ETA] = transObj->eta() ;
48 persObj->geom[ZED] = transObj->zed() ;
49
50 if ( transObj->phiPlus() > transObj->phiMinus() )
51 persObj->geom[WPHI] = 0.5*(transObj->phiPlus() - transObj->phiMinus());
52 else
53 persObj->geom[WPHI] = 0.5*(transObj->phiPlus() - transObj->phiMinus()) + M_PI;
54
55 persObj->geom[WETA] = 0.5*std::fabs( transObj->etaPlus() - transObj->etaMinus() );
56 persObj->geom[WZED] = 0.5*std::fabs( transObj->zedPlus() - transObj->zedMinus() );
57 persObj->geom[ETAPLUS] = transObj->etaPlus() ;
58 persObj->geom[ETAMINUS] = transObj->etaMinus() ;
59
60 persObj->ids[ROIID] = transObj->roiId() ;
61 persObj->ids[ROIWORD] = transObj->roiWord() ;
62}
63
#define M_PI
Scalar eta() const
pseudorapidity method
Scalar phi() const
phi method
#define endmsg
Athena::TPCnvVers::Current TrigRoiDescriptor
virtual double etaMinus() const override final
gets eta at zMinus
virtual double etaPlus() const override final
gets eta at zedPlus
virtual double zed() const override final
virtual double phi() const override final
Methods to retrieve data members.
virtual double phiMinus() const override final
gets phiMinus
virtual double zedPlus() const override final
z at the most forward end of the RoI
virtual double zedMinus() const override final
z at the most backward end of the RoI
virtual int version() const override final
versioning
virtual double eta() const override final
virtual double phiPlus() const override final
gets phiPlus
virtual void persToTrans(const TrigRoiDescriptor_p2 *persObj, TrigRoiDescriptor *transObj, MsgStream &log)
virtual void transToPers(const TrigRoiDescriptor *transObj, TrigRoiDescriptor_p2 *persObj, MsgStream &log)
nope - should be used for standalone also, perhaps need to protect the class def bits ifndef XAOD_ANA...
virtual unsigned int roiWord() const override final
virtual unsigned int roiId() const override final
these quantities probably don't need to be used any more