|
ATLAS Offline Software
|
This class is a converter for the CaloTTDescrManager which is stored in the detector store.
More...
#include <CaloTTMgrDetDescrCnv.h>
|
double | phiCorr (double phi) |
|
void | ipCorr (double d0, double z0, double &d0c, double &z0c, double phi0, double eta, double pt) |
|
This class is a converter for the CaloTTDescrManager which is stored in the detector store.
This class derives from DetDescrConverter which is a converter of the DetDescrCnvSvc. This converter creates a manager object and adds descriptors and detector elements to the manager. This objects are either created or accessed from the detector store.
- Warning
- The hadronic part of the FCAL calorimeter calorimeter is constructed with 4 channels in eta. These 4 channels actually correspond to 2 channels in eta FOR EACH of the hadronic samplings, i.e. FCAL2 and FCAL3. Therefore the geometry of these channels is wrong.
Definition at line 33 of file CaloTTMgrDetDescrCnv.h.
◆ CaloTTMgrDetDescrCnv()
CaloTTMgrDetDescrCnv::CaloTTMgrDetDescrCnv |
( |
ISvcLocator * |
svcloc | ) |
|
◆ addTrack()
◆ classID()
const CLID & CaloTTMgrDetDescrCnv::classID |
( |
| ) |
|
|
static |
◆ clear()
void Converter::clear |
( |
| ) |
|
|
inlineinherited |
◆ createObj()
StatusCode CaloTTMgrDetDescrCnv::createObj |
( |
IOpaqueAddress * |
pAddr, |
|
|
DataObject *& |
pObj |
|
) |
| |
|
overridevirtual |
Implements DetDescrConverter.
Definition at line 78 of file CaloTTMgrDetDescrCnv.cxx.
80 ATH_MSG_INFO(
"in createObj: creating a CaloTTDescrManager object in the detector store");
106 SmartIF<IToolSvc> toolSvc{service(
"ToolSvc")};
110 ATH_CHECK(toolSvc->retrieveTool(
"CaloTriggerTowerService",ttSvc));
117 ATH_MSG_DEBUG(
"Initializing CaloTTMgr from values in CaloTTMgrDetDescrCnv");
119 int numberOfIdRegions=0;
120 int numberOfDescrRegions=0;
129 std::vector<Identifier>::const_iterator itId = lvl1_id->
region_begin();
130 std::vector<Identifier>::const_iterator itIdEnd = lvl1_id->
region_end();
132 for(; itId!=itIdEnd;++itId){
137 int region = lvl1_helper->
region(regId);
138 int halfNphi = (lvl1_helper->
phi_max(regId)+1)/2;
139 int nLay = lvl1_helper->
layer_max(regId)+1;
143 calo_descriptor->
set(regId);
148 }
else if( 1 == region ) {
151 }
else if( 2 == region ) {
154 }
else if( 3 == region ) {
160 caloTTMgr->
add(calo_descriptor);
167 int maxPhi=calo_descriptor->
nPhi();
171 if(!lvl1_helper->
is_tile(TTid)) {
173 int maxLay=calo_descriptor->
nLay();
174 for(
int iLay=0;iLay<maxLay;++iLay) {
178 if(lvl1_helper->
is_fcal(layId)) {
181 else if(lvl1_helper->
is_emec(layId) || lvl1_helper->
is_hec(layId)) {
189 else if(lvl1_helper->
is_emec(layId)) {
193 else if(lvl1_helper->
is_hec(layId)) {
203 double dEta=calo_descriptor->
deta();
207 double dPhi=calo_descriptor->
dphi();
223 std::vector<Identifier>
vec = ttSvc->createCellIDvecLayer(layId);
226 numberOfDescrRegions++;
227 std::vector<Identifier>::const_iterator
it =
vec.begin();
228 std::vector<Identifier>::const_iterator it_end =
vec.end();
229 for(;
it!=it_end;++
it) {
234 double cDrho=caloDDE->
dr();
235 double z =caloDDE->
z_raw();
236 double cDz =caloDDE->
dz();
239 if( (
rho+cDrho/2.)>rhoMax ) {rhoMax=
rho+cDrho/2.;}
240 if( (
z-cDz/2.)<zMin ) {zMin=
z-cDz/2.;}
241 if( (
z+cDz/2.)>zMax ) {zMax=
z+cDz/2.;}
258 caloTTMgr->
add(tt_region);
273 ATH_MSG_INFO(
" Initialized CaloTTMgr, number of descr regions is " << numberOfDescrRegions);
275 << nEmb <<
" Em Barrel "
276 << nEmec <<
" Em EC "
278 << nFcal <<
" FCAL ");
279 ATH_MSG_DEBUG(
" number of helper regions= " << numberOfIdRegions);
282 return StatusCode::SUCCESS;
◆ createRep()
StatusCode DetDescrConverter::createRep |
( |
DataObject * |
pObj, |
|
|
IOpaqueAddress *& |
pAddr |
|
) |
| |
|
virtualinherited |
◆ detStore()
◆ fillObjRefs()
StatusCode DetDescrConverter::fillObjRefs |
( |
IOpaqueAddress * |
pAddr, |
|
|
DataObject * |
pObj |
|
) |
| |
|
virtualinherited |
◆ fillRepRefs()
StatusCode DetDescrConverter::fillRepRefs |
( |
IOpaqueAddress * |
pAddr, |
|
|
DataObject * |
pObj |
|
) |
| |
|
virtualinherited |
◆ finalize()
StatusCode CaloTTMgrDetDescrCnv::finalize |
( |
| ) |
|
|
overridevirtual |
◆ initialize()
StatusCode CaloTTMgrDetDescrCnv::initialize |
( |
| ) |
|
|
overridevirtual |
◆ initMessaging()
void AthMessaging::initMessaging |
( |
| ) |
const |
|
privateinherited |
Initialize our message level and MessageSvc.
This method should only be called once.
Definition at line 39 of file AthMessaging.cxx.
◆ ipCorr()
void Converter::ipCorr |
( |
double |
d0, |
|
|
double |
z0, |
|
|
double & |
d0c, |
|
|
double & |
z0c, |
|
|
double |
phi0, |
|
|
double |
eta, |
|
|
double |
pt |
|
) |
| |
|
inlineprotectedinherited |
Definition at line 257 of file Converter.h.
261 double sd0 = (
d0 != 0 ?
d0/fabs(
d0) : 1);
262 double spt = (
pt != 0 ?
pt/fabs(
pt) : 1);
270 double rc = fabs(
pt)*15.0/(9.0*1.042);
276 double xd01,yd01,xd02,yd02;
279 xd01 = 0; yd01 =
rc+yc;
280 xd02 = 0; yd02 = -
rc+yc;
282 xd01 = xc+yc/xc*yc+sqrt(
pow((xc+yc/xc*yc),2)-xc*xc-yc*yc+rc*rc); yd01 = yc/xc*xd01;
283 xd02 = xc+yc/xc*yc-sqrt(
pow((xc+yc/xc*yc),2)-xc*xc-yc*yc+rc*rc); yd02 = yc/xc*xd02;
286 double r1 = sqrt(xd01*xd01+yd01*yd01);
287 double r2 = sqrt(xd02*xd02+yd02*yd02);
292 phiV = atan2(yd01,xd01);
294 phiV = atan2(yd02,xd02);
304 d0c = fabs(sqrt(xc*xc+yc*yc)-rc)*
sin(phiV-newphi);
307 double theta_save=
theta;
◆ msg() [1/2]
MsgStream & AthMessaging::msg |
( |
| ) |
const |
|
inlineinherited |
The standard message stream.
Returns a reference to the default message stream May not be invoked before sysInitialize() has been invoked.
Definition at line 164 of file AthMessaging.h.
◆ msg() [2/2]
MsgStream & AthMessaging::msg |
( |
const MSG::Level |
lvl | ) |
const |
|
inlineinherited |
The standard message stream.
Returns a reference to the default message stream May not be invoked before sysInitialize() has been invoked.
Definition at line 179 of file AthMessaging.h.
180 {
return msg() << lvl; }
◆ msgLvl()
bool AthMessaging::msgLvl |
( |
const MSG::Level |
lvl | ) |
const |
|
inlineinherited |
Test the output level.
- Parameters
-
lvl | The message level to test against |
- Returns
- boolean Indicating if messages at given level will be printed
- Return values
-
true | Messages at level "lvl" will be printed |
Definition at line 151 of file AthMessaging.h.
◆ phiCorr()
double Converter::phiCorr |
( |
double |
phi | ) |
|
|
inlineprotectedinherited |
Definition at line 248 of file Converter.h.
250 if (
phi < -TMath::Pi())
phi += 2*TMath::Pi();
251 if (
phi > TMath::Pi())
phi -= 2*TMath::Pi();
◆ repSvcType()
long int CaloTTMgrDetDescrCnv::repSvcType |
( |
| ) |
const |
|
overridevirtual |
◆ selectTracks() [1/3]
Definition at line 177 of file Converter.h.
179 static int hpmap[20] = { 0, 1, 2, 7, 8, 9, 3, 4, 5, 6, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19 };
184 while(muonitr!=muonend) {
186 bool hasInDet = (*muonitr)->hasInDetTrackParticle();
188 if(hasInDet) trackitr=(*muonitr)->inDetTrackParticle();
190 if(!hasInDet)
continue;
194 CLHEP::HepVector perigeeParams = measPer->parameters();
195 double pT = measPer->pT();
196 double eta = measPer->eta();
223 double dof = quality->quality->
numberDoF();
227 for (
int ih=0 ; ih<20 ; ih++ ) {
236 deta, dphi, dz0, dd0, dpT,
238 nStrawHits, nTrHits, bitmap, 0,
◆ selectTracks() [2/3]
Definition at line 111 of file Converter.h.
116 static int hpmap[20] = { 0, 1, 2, 7, 8, 9, 3, 4, 5, 6, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19 };
118 while ( trackitr!=trackend ) {
122 CLHEP::HepVector perigeeParams = measPer->parameters();
123 double pT = measPer->pT();
124 double eta = measPer->eta();
147 bool expectBL =
false;
155 for (
int ih=0 ; ih<20 ; ih++ ) {
164 deta, dphi, dz0, dd0, dpT,
166 nStrawHits, nTrHits, bitmap, 0,
◆ selectTracks() [3/3]
Definition at line 56 of file Converter.h.
61 while ( trackitr!=trackend ) {
63 double eta = (*trackitr)->param()->eta();
64 double phi = (*trackitr)->param()->phi0();
65 double z0 = (*trackitr)->param()->z0();
66 double pT = (*trackitr)->param()->pT();
67 double d0 = (*trackitr)->param()->a0();
70 double deta = (*trackitr)->param()->eeta();
71 double dphi = (*trackitr)->param()->ephi0();
72 double dz0 = (*trackitr)->param()->ez0();
73 double dpT = (*trackitr)->param()->epT();
74 double dd0 = (*trackitr)->param()->ea0();
76 int algoid = (*trackitr)->algorithmId();
78 int nBlayerHits = ((*trackitr)->HitPattern() & 0x1);
79 int nPixelHits = 2*(*trackitr)->NPixelSpacePoints();
80 int nSctHits = 2*(*trackitr)->NSCT_SpacePoints();
81 int nStrawHits = (*trackitr)->NStrawHits();
82 int nTrHits = (*trackitr)->NTRHits();
85 bool expectBL =
false;
87 unsigned hitPattern = (*trackitr)->HitPattern();
88 unsigned multiPattern = 0;
90 double chi2 = (*trackitr)->chi2();
98 deta, dphi, dz0, dd0, dpT,
100 nStrawHits, nTrHits, hitPattern, multiPattern,
◆ setLevel()
void AthMessaging::setLevel |
( |
MSG::Level |
lvl | ) |
|
|
inherited |
◆ storageType()
long CaloTTMgrDetDescrCnv::storageType |
( |
| ) |
|
|
static |
◆ tracks()
◆ ATLAS_THREAD_SAFE
std::atomic_flag m_initialized AthMessaging::ATLAS_THREAD_SAFE = ATOMIC_FLAG_INIT |
|
mutableprivateinherited |
◆ m_beamX
double Converter::m_beamX |
|
protectedinherited |
◆ m_beamY
double Converter::m_beamY |
|
protectedinherited |
◆ m_beamZ
double Converter::m_beamZ |
|
protectedinherited |
◆ m_detStore
◆ m_imsg
std::atomic<IMessageSvc*> AthMessaging::m_imsg { nullptr } |
|
mutableprivateinherited |
◆ m_lvl
std::atomic<MSG::Level> AthMessaging::m_lvl { MSG::NIL } |
|
mutableprivateinherited |
◆ m_msg_tls
boost::thread_specific_ptr<MsgStream> AthMessaging::m_msg_tls |
|
mutableprivateinherited |
MsgStream instance (a std::cout like with print-out levels)
Definition at line 132 of file AthMessaging.h.
◆ m_nm
std::string AthMessaging::m_nm |
|
privateinherited |
◆ m_tracks
The documentation for this class was generated from the following files:
def retrieve(aClass, aKey=None)
std::atomic< MSG::Level > m_lvl
Current logging level.
@ numberOfPixelHits
number of pixel layers on track with absence of hits
void ipCorr(double d0, double z0, double &d0c, double &z0c, double phi0, double eta, double pt)
Const iterator class for DataVector/DataList.
int layer_max(const Identifier regId) const
max value of phi index (-999 == failure)
@ numberOfTRTHighThresholdHits
total number of TRT hits which pass the high threshold
float phiMin() const
descriptor parameter: min value of phi
bool is_initialized(void) const
Scalar phi() const
phi method
const long DetDescr_StorageType
bool is_fcal(const Identifier id) const
Test wether given tower or layer is part of the FCAL.
Scalar eta() const
pseudorapidity method
Dummy class used to allow special convertors to be called for surfaces owned by a detector element.
float eta_min() const
descriptor parameter: min value of abs(eta)
int phi_max(const Identifier regId) const
min value of phi index (-999 == failure)
calo_descr_size calo_descriptors_size(void) const
Total number of descriptors.
Tool providing the mapping of the online and offline TriggerTower identifiers as well as the TT-cells...
This class groups all DetDescr information related to a CaloCell. Provides a generic interface for al...
Scalar theta() const
theta method
const CaloDetDescrElement * get_element(const Identifier &cellId) const
get element by its identifier
const TrackSummary * trackSummary() const
accessor function for TrackSummary.
bool is_emec(const Identifier id) const
Test wether given tower or layer is part of the EM end-cap.
int region(const Identifier id) const
return region according to :
bool is_barrel_end(const Identifier id) const
Test wether given tower or layer is part of the EM barrel END.
std::vector< size_t > vec
std::atomic< IMessageSvc * > m_imsg
MessageSvc pointer.
const ServiceHandle< StoreGateSvc > & detStore() const
Handle to DetectorStore.
float nPixelHits(const U &p)
IMessageSvc * getMessageSvc(bool quiet=false)
void set_spherical(double eta, double phi, double rho)
set coordinates of the Det Descr region – pseudo spherical system; eta is signed, rho is unsigned
@ numberOfBLayerHits
these are the hits in the 0th pixel layer?
bool is_hec(const Identifier id) const
Test wether given tower or layer is part of the HEC.
double phiCorr(double phi)
id_iterator region_end() const
end iterator over regions
Identifier layer_id(int pos_neg_z, int sampling, int region, int eta, int phi, int layer) const
build a layer identifier
ServiceHandle< StoreGateSvc > m_detStore
DataObject * asStorable(SG::DataObjectSharedPtr< T > pObject)
static const CLID & ID()
the CLID of T
static long storageType()
bool msgLvl(const MSG::Level lvl) const
Test the output level.
void set_helper(const CaloLVL1_ID *id_helper)
set the helper used to decode the TT offline identifiers
id_iterator region_begin() const
begin iterator over regions
@ numberOfSCTHits
number of SCT holes
DetDescrConverter(const CLID &myCLID, ISvcLocator *svcloc, const char *name=nullptr)
bool dPhi(const xAOD::TauJet &tau, const xAOD::TauTrack &track, double &out)
Default, invalid implementation of ClassID_traits.
const FitQuality * fitQuality() const
accessor function for FitQuality.
double chi2(TH1 *h0, TH1 *h1)
void set_cylindric_size(double deta, double dphi, double dz)
set size of the Det Descr region – pseudo cylindrical system; eta is signed, z as well (same sign)
bool is_emb(const Identifier id) const
Test wether given tower or layer is part of the EM barrel.
Class to represent and store fit qualities from track reconstruction in terms of and number of degre...
float deta() const
descriptor parameter: eta granularity
MsgStream & msg() const
The standard message stream.
void addTrack(TIDA::Track *t)
@ numberOfTRTHits
number of TRT outliers
Helper class for offline TT identifiers.
void set_cylindric(double eta, double phi, double z)
set coordinates of the Det Descr region – pseudo cylindrical system; eta is signed,...
A summary of the information contained by a track.
short nPhi() const
descriptor parameter: number of phi bins
void set_spherical_size(double deta, double dphi, double drho)
set size of the Det Descr region – pseudo spherical system; eta is signed, rho is unsigned
bool isFCAL(const xAOD::CaloCluster *cluster)
return true if the cluster (or the majority of its energy) is in the FCAL0
int sign_eta() const
descriptor parameter: sign of eta (+-1)
float z_raw() const
cell z_raw
void set(const Identifier &id)
set internal data member m_id (which is unused.
const Trk::Perigee * measuredPerigee() const
Accessor method for Perigee.
int pos_neg_z(const Identifier id) const
return pos_neg_z according to :
float r_raw() const
cell r_raw
const_iterator end() const noexcept
Return a const_iterator pointing past the end of the collection.
void add(CaloTTDescrRegion *region)
Insertion in the vector of Det Descr regions (== Trigger Towers)
DetectorType
enumerates the various detector types currently accessible from the isHit() method.
This class provides the client interface for accessing the detector description information common to...
std::string show_to_string(Identifier id, const IdContext *context=0, char sep='.') const
or provide the printout in string form
std::string m_nm
Message source name.
This class provides an interface to the geometrical description of the Calorimeter Trigger Towers.
double chiSquared() const
returns the of the overall track fit
float dphi() const
descriptor parameter: phi granularity
This class is used to build the CaloTTDescriptors and CaloTTDetDescrRegions carrying the geometry inf...
int numberDoF() const
returns the number of degrees of freedom of the overall track or vertex fit as integer
void initMessaging() const
Initialize our message level and MessageSvc.
void initialize(void)
dummy.
boost::thread_specific_ptr< MsgStream > m_msg_tls
MsgStream instance (a std::cout like with print-out levels)
This class holds the Calorimeter TriggerTower geometrical description
bool dEta(const xAOD::TauJet &tau, const xAOD::TauTrack &track, double &out)
Identifier tower_id(int pos_neg_z, int sampling, int region, int eta, int phi) const
build a tower identifier
constexpr int pow(int base, int exp) noexcept
setScale setgFexType iEta
bool is_tile(const Identifier id) const
Test wether given tower or layer is part of the Tile Calorimeter.
std::vector< TIDA::Track * > m_tracks
short nEta() const
descriptor parameter: number of eta bins
short nLay() const
descriptor parameter: number of layers
float nSiHits(const U &p)
const_iterator begin() const noexcept
Return a const_iterator pointing at the beginning of the collection.