00001
00002
00003 #ifndef XAODTRIGMUON_VERSIONS_L2STANDALONEMUON_V2_H
00004 #define XAODTRIGMUON_VERSIONS_L2STANDALONEMUON_V2_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_v2 : public IParticle {
00029
00030 public:
00032 L2StandAloneMuon_v2();
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 etaMap() const;
00149 void setEtaMap( float value );
00150
00152 float phiMap() const;
00154 void setPhiMap( float value );
00155
00157 int etaBin() const;
00159 void setEtaBin( int value );
00160
00162 int phiBin() const;
00164 void setPhiBin( int value );
00165
00167 int isTgcFailure() const;
00169 void setIsTgcFailure( int value );
00170
00172 int isRpcFailure() const;
00174 void setIsRpcFailure( int value );
00175
00177 float deltaPt() const;
00179 void setDeltaPt( float value );
00180
00182 float deltaPtParm1() const;
00183 void setDeltaPtParm1( float value );
00184
00185 float deltaPtParm2() const;
00186 void setDeltaPtParm2( float value );
00187
00188 float deltaPtParm3() const;
00189 void setDeltaPtParm3( float value );
00190
00192 float deltaEta() const;
00194 void setDeltaEta( float value );
00195
00197 float deltaPhi() const;
00199 void setDeltaPhi( float value );
00200
00202 float superPointR( int chamber ) const;
00204 float superPointZ( int chamber ) const;
00206 float superPointSlope( int chamber ) const;
00208 float superPointIntercept( int chamber ) const;
00210 float superPointChi2( int chamber ) const;
00212 void setSuperPoint( int chamber, float r, float z, float slope, float intercept=0., float chi2=0. );
00213
00215 uint32_t nTrackPositions() const;
00217 float trackPositionR( unsigned int n ) const;
00219 float trackPositionZ( unsigned int n ) const;
00221 float trackPositionEta( unsigned int n ) const;
00223 float trackPositionPhi( unsigned int n ) const;
00225 void setTrackPosition( float r, float z, float eta, float phi );
00226
00228 int algoId() const;
00229 void setAlgoId( int value);
00230
00232 uint32_t teId() const;
00233 void setTeId( uint32_t value);
00234
00236 uint32_t lvl1Id() const;
00237 void setLvl1Id( uint32_t value );
00238
00240 uint32_t lumiBlock() const;
00241 void setLumiBlock( uint32_t value );
00242
00244 uint32_t muonDetMask() const;
00245 void setMuonDetMask( uint32_t value );
00246
00248 uint32_t roiId() const;
00249 void setRoiId( uint32_t value );
00250
00252 uint32_t roiSystem() const;
00253 void setRoiSystem(uint32_t value);
00254
00256 uint32_t roiSubsystem() const;
00257 void setRoiSubsystem(uint32_t value);
00258
00260 uint32_t roiSector() const;
00261 void setRoiSector( uint32_t value );
00262
00264 uint32_t roiNumber() const;
00265 void setRoiNumber( uint32_t value );
00266
00268 uint32_t roiThreshold() const;
00269 void setRoiThreshold( uint32_t value );
00270
00272 float roiEta() const;
00273 void setRoiEta( float value );
00274
00276 float roiPhi() const;
00277 void setRoiPhi( float value );
00278
00280 float tgcPt() const;
00281 void setTgcPt( float value );
00282
00283 float ptBarrelRadius() const;
00284 void setPtBarrelRadius( float value );
00285
00286 float ptBarrelSagitta() const;
00287 void setPtBarrelSagitta( float value );
00288
00289 float ptEndcapAlpha() const;
00290 void setPtEndcapAlpha( float value );
00291
00292 float ptEndcapBeta() const;
00293 void setPtEndcapBeta( float value );
00294
00295 float ptEndcapRadius() const;
00296 void setPtEndcapRadius( float value );
00297
00298 float ptCSC() const;
00299 void setPtCSC( float value );
00300
00303 int chamberType1( int station, int sector ) const;
00304 int chamberType2( int station, int sector ) const;
00306 float roadAw( int station, int sector ) const;
00308 float roadBw( int station, int sector ) const;
00310 float zMin( int station, int sector ) const;
00311 float zMax( int station, int sector ) const;
00313 float rMin( int station, int sector ) const;
00314 float rMax( int station, int sector ) const;
00316 float etaMin( int station, int sector ) const;
00317 float etaMax( int station, int sector ) const;
00318
00320 void setChamberType1( int station, int sector, int chamberType);
00321 void setChamberType2( int station, int sector, int chamberType);
00322 void setRoad( int station, int sector, float aw, float bw );
00323 void setRegionZ( int station, int sector, float min, float max );
00324 void setRegionR( int station, int sector, float min, float max );
00325 void setRegionEta( int station, int sector, float min, float max );
00326
00328 float tgcInnEta() const;
00329 float tgcInnPhi() const;
00330 float tgcInnR() const;
00331 float tgcInnZ() const;
00332
00333 float tgcInnRhoStd() const;
00334 long tgcInnRhoN() const;
00335 float tgcInnPhiStd() const;
00336 long tgcInnPhiN() const;
00337
00338 float tgcMid1Eta() const;
00339 float tgcMid1Phi() const;
00340 float tgcMid1R() const;
00341 float tgcMid1Z() const;
00342
00343 float tgcMid2Eta() const;
00344 float tgcMid2Phi() const;
00345 float tgcMid2R() const;
00346 float tgcMid2Z() const;
00347
00348 float tgcMidRhoChi2() const;
00349 long tgcMidRhoN() const;
00350 float tgcMidPhiChi2() const;
00351 long tgcMidPhiN() const;
00352
00354 void setTgcInn( float eta, float phi, float r, float z );
00355 void setTgcInnF( float rhoStd, long rhoN, float phiStd, long phiN );
00356 void setTgcMid1( float eta, float phi, float r, float z );
00357 void setTgcMid2( float eta, float phi, float r, float z );
00358 void setTgcMidF( float rhoChi2, long rhoN, float phiChi2, long phiN );
00359
00361 float rpcFitInnPhi() const;
00362 float rpcFitInnSlope() const;
00363 float rpcFitInnOffset() const;
00364
00365 float rpcFitMidPhi() const;
00366 float rpcFitMidSlope() const;
00367 float rpcFitMidOffset() const;
00368
00369 float rpcFitOutPhi() const;
00370 float rpcFitOutSlope() const;
00371 float rpcFitOutOffset() const;
00372
00374 void setRpcFitInn( float phi, float slope, float offset );
00375 void setRpcFitMid( float phi, float slope, float offset );
00376 void setRpcFitOut( float phi, float slope, float offset );
00377
00379 int rpcHitsCapacity() const;
00380 void setRpcHitsCapacity( int value );
00381
00382 int tgcHitsCapacity() const;
00383 void setTgcHitsCapacity( int value );
00384
00385 int mdtHitsCapacity() const;
00386 void setMdtHitsCapacity( int value );
00387
00388 int cscHitsCapacity() const;
00389 void setCscHitsCapacity( int value );
00390
00391 void setCapacities( int rpc, int tgc, int mdt, int csc );
00392
00394 const std::vector< uint32_t >& rpcHitLayer() const;
00395 const std::vector< uint32_t >& rpcHitMeasuresPhi() const;
00396 const std::vector< float >& rpcHitX() const;
00397 const std::vector< float >& rpcHitY() const;
00398 const std::vector< float >& rpcHitZ() const;
00399 const std::vector< float >& rpcHitTime() const;
00400 const std::vector< float >& rpcHitDistToEtaReadout() const;
00401 const std::vector< float >& rpcHitDistToPhiReadout() const;
00402 const std::vector< std::string >& rpcHitStationName() const;
00404 void setRpcHit(uint32_t layer, uint32_t measuresPhi, float x, float y, float z,
00405 float time, float distEta, float distPhi, std::string stationName );
00406
00408 const std::vector< float >& tgcHitEta() const;
00409 const std::vector< float >& tgcHitPhi() const;
00410 const std::vector< float >& tgcHitR() const;
00411 const std::vector< float >& tgcHitZ() const;
00412 const std::vector< float >& tgcHitWidth() const;
00413 const std::vector< int >& tgcHitStationNum() const;
00414 const std::vector< bool >& tgcHitIsStrip() const;
00415 const std::vector< int >& tgcHitBCTag() const;
00416 const std::vector< bool >& tgcHitInRoad() const;
00418 void setTgcHit(float eta, float phi, float r, float z, float width,
00419 int stationNum, bool isStrip, int bcTag, bool inRoad);
00420
00422 uint32_t nMdtHits() const;
00423 uint32_t mdtHitOnlineId( unsigned int tube ) const;
00424 int mdtHitOfflineId( unsigned int tube ) const;
00425 int mdtHitIsOutlier( unsigned int tube ) const;
00426 int mdtHitChamber( unsigned int tube ) const;
00427 float mdtHitR( unsigned int tube ) const;
00428 float mdtHitZ( unsigned int tube ) const;
00429 float mdtHitPhi( unsigned int tube ) const;
00430 float mdtHitResidual( unsigned int tube ) const;
00431 float mdtHitTime( unsigned int tube ) const;
00432 float mdtHitSpace( unsigned int tube ) const;
00433 float mdtHitSigma( unsigned int tube ) const;
00435 void setMdtHit( uint32_t onlineId, int isOutier, int chamber, float r, float z, float phi,
00436 float residual, float time, float space, float sigma );
00437
00439 uint32_t nCscHits() const;
00440 int cscHitIsOutlier( unsigned int tube ) const;
00441 int cscHitChamber( unsigned int tube ) const;
00442 uint32_t cscHitStationName( unsigned int tube ) const;
00443 int cscHitStationEta( unsigned int tube ) const;
00444 int cscHitStationPhi( unsigned int tube ) const;
00445 int cscHitChamberLayer( unsigned int tube ) const;
00446 int cscHitWireLayer( unsigned int tube ) const;
00447 int cscHitMeasuresPhi( unsigned int tube ) const;
00448 int cscHitStrip( unsigned int tube ) const;
00449 float cscHitEta( unsigned int tube ) const;
00450 float cscHitPhi( unsigned int tube ) const;
00451 float cscHitR( unsigned int tube ) const;
00452 float cscHitZ( unsigned int tube ) const;
00453 int cscHitCharge( unsigned int tube ) const;
00454 float cscHitTime( unsigned int tube ) const;
00455 float cscHitResidual( unsigned int tube ) const;
00457 void setCscHit( int isOutlier, int chamber, uint32_t stationName,
00458 int stationEta, int stationPhi, int chamberLayer, int wireLayer, int measuresPhi, int strip,
00459 float eta, float phi, float r, float z, int charge, float time, float residual );
00460
00462
00463 private:
00465 mutable FourMom_t m_p4;
00467 mutable bool m_p4Cached;
00468
00469 };
00470
00471 }
00472
00474 std::ostream& operator<< ( std::ostream& out,
00475 const xAOD::L2StandAloneMuon_v2& mu );
00476
00477 #endif // XAODTRIGMUON_VERSIONS_L2STANDALONEMUON_V2_H