00001
00002
00003 #ifndef XAODTRIGMUON_VERSIONS_L2STANDALONEMUON_V1_H
00004 #define XAODTRIGMUON_VERSIONS_L2STANDALONEMUON_V1_H
00005
00006
00007 extern "C" {
00008 # include <stdint.h>
00009 }
00010 #include <iosfwd>
00011
00012
00013 #include "xAODBase/IParticle.h"
00014
00015 namespace xAOD {
00016
00028 class L2StandAloneMuon_v1 : public IParticle {
00029
00030 public:
00032 L2StandAloneMuon_v1();
00033
00036
00038 virtual double pt() const;
00040 virtual double eta() const;
00042 virtual double phi() const;
00044 virtual double m() const;
00046 virtual double e() const;
00048 virtual double rapidity() const;
00049
00051 typedef TLorentzVector FourMom_t;
00052
00054 virtual const FourMom_t& p4() const;
00055
00057 virtual Type::ObjectType type() const;
00058
00060
00063
00065 void setPt( float pt );
00067 void setEta( float eta );
00069 void setPhi( float phi );
00070
00072
00075
00077 uint32_t roiWord() const;
00079 void setRoIWord( uint32_t value );
00080
00082 int sAddress() const;
00084 void setSAddress( int value );
00085
00087 float etaMS() const;
00089 void setEtaMS( float value );
00090
00092 float phiMS() const;
00094 void setPhiMS( float value );
00095
00097 float dirPhiMS() const;
00099 void setDirPhiMS( float value );
00100
00102 float rMS() const;
00104 void setRMS( float value );
00105
00107 float zMS() const;
00109 void setZMS( float value );
00110
00112 float dirZMS() const;
00114 void setDirZMS( float value );
00115
00117 float beta() const;
00119 void setBeta( float value );
00120
00122 float barrelRadius() const;
00124 void setBarrelRadius( float value );
00125
00127 float barrelSagitta() const;
00129 void setBarrelSagitta( float value );
00130
00132 float endcapAlpha() const;
00134 void setEndcapAlpha( float value );
00135
00137 float endcapBeta() const;
00139 void setEndcapBeta( float value );
00140
00142 float endcapRadius() const;
00144 void setEndcapRadius( float value );
00145
00147 float slopeInner() const;
00149 void setSlopeInner( float value );
00150
00152 float interceptInner() const;
00154 void setInterceptInner( float value );
00155
00157 float deltaR() const;
00159 void setDeltaR( float value );
00160
00162 float etaMap() const;
00164 void setEtaMap( float value );
00165
00167 float phiMap() const;
00169 void setPhiMap( float value );
00170
00172 int etaBin() const;
00174 void setEtaBin( int value );
00175
00177 int phiBin() const;
00179 void setPhiBin( int value );
00180
00182 int isTgcFailure() const;
00184 void setIsTgcFailure( int value );
00185
00187 int isRpcFailure() const;
00189 void setIsRpcFailure( int value );
00190
00192 float deltaPt() const;
00194 void setDeltaPt( float value );
00195
00197 float deltaEta() const;
00199 void setDeltaEta( float value );
00200
00202 float deltaPhi() const;
00204 void setDeltaPhi( float value );
00205
00207 float superPointR( int chamber ) const;
00209 float superPointZ( int chamber ) const;
00211 float superPointSlope( int chamber ) const;
00213 float superPointIntercept( int chamber ) const;
00215 float superPointChi2( int chamber ) const;
00217 void setSuperPoint( int chamber, float r, float z, float slope, float intercept=0., float chi2=0. );
00218
00220 uint32_t nTrackPositions() const;
00222 float trackPositionR( unsigned int n ) const;
00224 float trackPositionZ( unsigned int n ) const;
00226 float trackPositionEta( unsigned int n ) const;
00228 float trackPositionPhi( unsigned int n ) const;
00230 void setTrackPosition( float r, float z, float eta, float phi );
00231
00233 int algoId() const;
00234 void setAlgoId( int value);
00235
00237 uint32_t teId() const;
00238 void setTeId( uint32_t value);
00239
00241 uint32_t lvl1Id() const;
00242 void setLvl1Id( uint32_t value );
00243
00245 uint32_t lumiBlock() const;
00246 void setLumiBlock( uint32_t value );
00247
00249 uint32_t muonDetMask() const;
00250 void setMuonDetMask( uint32_t value );
00251
00253 uint32_t roiId() const;
00254 void setRoiId( uint32_t value );
00255
00257 uint32_t roiSystem() const;
00258 void setRoiSystem(uint32_t value);
00259
00261 uint32_t roiSubsystem() const;
00262 void setRoiSubsystem(uint32_t value);
00263
00265 uint32_t roiSector() const;
00266 void setRoiSector( uint32_t value );
00267
00269 uint32_t roiNumber() const;
00270 void setRoiNumber( uint32_t value );
00271
00273 uint32_t roiThreshold() const;
00274 void setRoiThreshold( uint32_t value );
00275
00277 uint32_t roiEta() const;
00278 void setRoiEta( uint32_t value );
00279
00281 uint32_t roiPhi() const;
00282 void setRoiPhi( uint32_t value );
00283
00285 float ptBarrelRadius() const;
00286 void setPtBarrelRadius( float value );
00287
00288 float ptBarrelSagitta() const;
00289 void setPtBarrelSagitta( float value );
00290
00291 float ptEndcapAlpha() const;
00292 void setPtEndcapAlpha( float value );
00293
00294 float ptEndcapBeta() const;
00295 void setPtEndcapBeta( float value );
00296
00297 float ptEndcapRadius() const;
00298 void setPtEndcapRadius( float value );
00299
00302 int chamberType1( int station, int sector ) const;
00303 int chamberType2( int station, int sector ) const;
00305 float roadAw( int station, int sector ) const;
00307 float roadBw( int station, int sector ) const;
00309 float zMin( int station, int sector ) const;
00310 float zMax( int station, int sector ) const;
00312 float rMin( int station, int sector ) const;
00313 float rMax( int station, int sector ) const;
00315 float etaMin( int station, int sector ) const;
00316 float etaMax( int station, int sector ) const;
00317
00319 void setChamberType1( int station, int sector, int chamberType);
00320 void setChamberType2( int station, int sector, int chamberType);
00321 void setRoad( int station, int sector, float aw, float bw );
00322 void setRegionZ( int station, int sector, float min, float max );
00323 void setRegionR( int station, int sector, float min, float max );
00324 void setRegionEta( int station, int sector, float min, float max );
00325
00327 float tgcPt() const;
00328
00329 float tgcInnEta() const;
00330 float tgcInnPhi() const;
00331 float tgcInnR() const;
00332 float tgcInnZ() const;
00333
00334 float tgcInnRhoStd() const;
00335 long tgcInnRhoN() const;
00336 float tgcInnPhiStd() const;
00337 long tgcInnPhiN() const;
00338
00339 float tgcMid1Eta() const;
00340 float tgcMid1Phi() const;
00341 float tgcMid1R() const;
00342 float tgcMid1Z() const;
00343
00344 float tgcMid2Eta() const;
00345 float tgcMid2Phi() const;
00346 float tgcMid2R() const;
00347 float tgcMid2Z() const;
00348
00349 float tgcMidRhoChi2() const;
00350 long tgcMidRhoN() const;
00351 float tgcMidPhiChi2() const;
00352 long tgcMidPhiN() const;
00353
00355 void setTgcPt( float value );
00356
00357 void setTgcInn( float eta, float phi, float r, float z );
00358 void setTgcInnF( float rhoStd, long rhoN, float phiStd, long phiN );
00359 void setTgcMid1( float eta, float phi, float r, float z );
00360 void setTgcMid2( float eta, float phi, float r, float z );
00361 void setTgcMidF( float rhoChi2, long rhoN, float phiChi2, long phiN );
00362
00364 float rpc1x() const;
00365 float rpc1y() const;
00366 float rpc1z() const;
00367
00368 float rpc2x() const;
00369 float rpc2y() const;
00370 float rpc2z() const;
00371
00372 float rpc3x() const;
00373 float rpc3y() const;
00374 float rpc3z() const;
00375
00377 void setRpc1( float x, float y, float z );
00378 void setRpc2( float x, float y, float z );
00379 void setRpc3( float x, float y, float z );
00380
00382 int extensionCapacity() const;
00383 void setExtensionCapacity( int value );
00384
00385 int robCapacity() const;
00386 void setRobCapacity( int value );
00387
00388 int csmCapacity() const;
00389 void setCsmCapacity( int value );
00390
00391 int lvl1EmuCapacity() const;
00392 void setLvl1EmuCapacity( int value );
00393
00394 int rpcHitsCapacity() const;
00395 void setRpcHitsCapacity( int value );
00396
00397 int tgcHitsCapacity() const;
00398 void setTgcHitsCapacity( int value );
00399
00400 int mdtHitsCapacity() const;
00401 void setMdtHitsCapacity( int value );
00402
00403 void setCapacities( int ext, int rob, int csm, int lvl1, int rpc, int tgc, int mdt );
00404
00406 const std::vector< uint32_t >& extension0() const;
00407 const std::vector< uint32_t >& extension1() const;
00408 const std::vector< uint32_t >& extension2() const;
00409 const std::vector< uint32_t >& extension3() const;
00410 const std::vector< uint32_t >& extension4() const;
00411 const std::vector< uint32_t >& extension5() const;
00412 const std::vector< uint32_t >& extension6() const;
00413 const std::vector< uint32_t >& extension7() const;
00414 const std::vector< uint32_t >& extension8() const;
00415 const std::vector< uint32_t >& extension9() const;
00417 void setExtension0( uint32_t value );
00418 void setExtension1( uint32_t value );
00419 void setExtension2( uint32_t value );
00420 void setExtension3( uint32_t value );
00421 void setExtension4( uint32_t value );
00422 void setExtension5( uint32_t value );
00423 void setExtension6( uint32_t value );
00424 void setExtension7( uint32_t value );
00425 void setExtension8( uint32_t value );
00426 void setExtension9( uint32_t value );
00427
00429 const std::vector< uint32_t >& lvl1Emulation() const;
00430 void setEtaPivot(uint32_t ly0, uint32_t ly1 );
00431 void setEtaLow( uint32_t ly00, uint32_t ly01, uint32_t ly10, uint32_t ly11 );
00432 void setEtaHigh( uint32_t ly00, uint32_t ly01, uint32_t ly10, uint32_t ly11 );
00433 void setPhiPivot (uint32_t ly0, uint32_t ly1 );
00434 void setPhiLow( uint32_t ly00, uint32_t ly01, uint32_t ly10, uint32_t ly11 );
00435 void setPhiHigh( uint32_t ly00, uint32_t ly01, uint32_t ly10, uint32_t ly11 );
00436
00438 const std::vector< uint32_t >& robId() const;
00439 const std::vector< uint32_t >& removedRobId() const;
00440 void setRequestedRob( uint32_t rob );
00441 void setRemovedRob( uint32_t rob );
00442
00444 const std::vector< uint32_t >& csmId() const;
00445 const std::vector< uint32_t >& csmSize() const;
00446 const std::vector< uint32_t >& csmError() const;
00447 const std::vector< uint32_t >& removedCsmId() const;
00448 void setConvertedCsm( uint32_t csm, uint32_t sz );
00449 void setCsmError( uint32_t err );
00450 void setRemovedCsm( uint32_t csm );
00451
00453 const std::vector< uint32_t >& padHitOnlineId() const;
00454 const std::vector< uint32_t >& padHitCode() const;
00455 const std::vector< float >& padHitX() const;
00456 const std::vector< float >& padHitY() const;
00457 const std::vector< float >& padHitZ() const;
00458 const std::vector< float >& padHitR() const;
00459 const std::vector< float >& padHitP() const;
00461 void setPadHit(uint32_t onlineId, uint32_t code, float x, float y, float z,
00462 float r, float p);
00463
00465 const std::vector< float >& tgcInnRhoHitPhi() const;
00466 const std::vector< float >& tgcInnRhoHitR() const;
00467 const std::vector< float >& tgcInnRhoHitZ() const;
00468 const std::vector< float >& tgcInnRhoHitWidth() const;
00469 const std::vector< uint32_t >& tgcInnRhoHitInSeg() const;
00470 const std::vector< float >& tgcInnPhiHitPhi() const;
00471 const std::vector< float >& tgcInnPhiHitR() const;
00472 const std::vector< float >& tgcInnPhiHitZ() const;
00473 const std::vector< float >& tgcInnPhiHitWidth() const;
00474 const std::vector< uint32_t >& tgcInnPhiHitInSeg() const;
00475 const std::vector< float >& tgcMidRhoHitPhi() const;
00476 const std::vector< float >& tgcMidRhoHitR() const;
00477 const std::vector< float >& tgcMidRhoHitZ() const;
00478 const std::vector< float >& tgcMidRhoHitWidth() const;
00479 const std::vector< uint32_t >& tgcMidRhoHitInSeg() const;
00480 const std::vector< float >& tgcMidPhiHitPhi() const;
00481 const std::vector< float >& tgcMidPhiHitR() const;
00482 const std::vector< float >& tgcMidPhiHitZ() const;
00483 const std::vector< float >& tgcMidPhiHitWidth() const;
00484 const std::vector< uint32_t >& tgcMidPhiHitInSeg() const;
00486 void setTgcInnRhoHit( float phi, float r, float z, float width, uint32_t in_seg );
00487 void setTgcInnPhiHit( float phi, float r, float z, float width, uint32_t in_seg );
00488 void setTgcMidRhoHit( float phi, float r, float z, float width, uint32_t in_seg );
00489 void setTgcMidPhiHit( float phi, float r, float z, float width, uint32_t in_seg );
00490
00492 uint32_t nMdtHits() const;
00493 uint32_t mdtHitOnlineId( unsigned int tube ) const;
00494 uint32_t mdtHitOfflineId( unsigned int tube ) const;
00495 uint32_t mdtHitChamber( unsigned int tube ) const;
00496 float mdtHitR( unsigned int tube ) const;
00497 float mdtHitZ( unsigned int tube ) const;
00498 float mdtHitResidual( unsigned int tube ) const;
00499 float mdtHitTime( unsigned int tube ) const;
00500 float mdtHitSpace( unsigned int tube ) const;
00501 float mdtHitSigma( unsigned int tube ) const;
00503 void setMdtHit( uint32_t onlineId, uint32_t offlineId, int chamber, float r, float z,
00504 float residual, float time, float space, float sigma );
00505
00507
00508 private:
00510 mutable FourMom_t m_p4;
00512 mutable bool m_p4Cached;
00513
00514 };
00515
00516 }
00517
00519 std::ostream& operator<< ( std::ostream& out,
00520 const xAOD::L2StandAloneMuon_v1& mu );
00521
00522 #endif // XAODTRIGMUON_VERSIONS_L2STANDALONEMUON_V1_H