ViewVC Help
View File | Revision Log | Show Annotations | Root Listing
root/cvsroot/UserCode/L1RpcTriggerAnalysis/interface/RPCDetIdUtil.h
Revision: 1.4
Committed: Fri May 17 13:02:11 2013 UTC (11 years, 11 months ago) by konec
Content type: text/plain
Branch: MAIN
CVS Tags: Artur_11_07_2013_B, Artur_11_07_2013_A, Artur_11_07_2013, Artur_28_06_2013, HEAD
Changes since 1.3: +6 -5 lines
Log Message:
*** empty log message ***

File Contents

# User Rev Content
1 konec 1.1 #ifndef L1RpcTriggerAnalysis_RPCDetIdUtil_H
2     #define L1RpcTriggerAnalysis_RPCDetIdUtil_H
3    
4     #include "DataFormats/MuonDetId/interface/RPCDetId.h"
5     #include <iostream>
6 konec 1.4 #include <ostream>
7 konec 1.3 #include <cmath>
8 konec 1.4 namespace edm { class EventSetup; }
9 konec 1.1
10     class RPCDetIdUtil{
11     public:
12     RPCDetIdUtil( const RPCDetId & rpcDet) : theRpcDet(rpcDet) { }
13 konec 1.4 RPCDetIdUtil( uint32_t rawId) : theRpcDet( RPCDetId(rawId) ) { }
14 konec 1.1
15     bool isBarrel() const { return (theRpcDet.region()==0); }
16    
17 konec 1.2 unsigned int barrelLayer() const {
18     return theRpcDet.station() <=2 ?
19     2*( theRpcDet.station()-1)+ theRpcDet.layer()
20     : theRpcDet.station()+2;
21     }
22     unsigned int endcapLayer() const {
23     return theRpcDet.station();
24     }
25 konec 1.1 unsigned int layer() const {
26 konec 1.2 return isBarrel() ? barrelLayer() : endcapLayer();
27     }
28    
29 konec 1.4 //WARNING - use eta of DetUnit position, not muon direction
30 konec 1.2 unsigned int layer(float eta) const {
31     if (fabs(eta) < 0.83) {
32     return barrelLayer();
33     } else if ( fabs(eta) < 0.93) {
34     if ( isBarrel() && (barrelLayer() < 6)) return barrelLayer();
35     } else if ( fabs(eta) < 1.04) {
36     if ( isBarrel() && (barrelLayer()==1)) return 1;
37     if ( isBarrel() && (barrelLayer()==2)) return 2;
38     if ( isBarrel() && (barrelLayer()==3)) return 3;
39     if ( isBarrel() && (barrelLayer()==4)) return 4;
40     // if ( isBarrel() && (barrelLayer()==5)) return 5;
41     if (!isBarrel() && endcapLayer()==1 ) return 5;
42     } else if ( fabs(eta)<1.14) {
43     if ( isBarrel() && (barrelLayer() < 3)) return barrelLayer();
44     if (!isBarrel() && endcapLayer()==1) return 3;
45     if (!isBarrel() && endcapLayer()==2) return 4;
46     } else if ( fabs(eta)<1.24) {
47     if ( isBarrel() && (barrelLayer() == 1)) return 1;
48     if (!isBarrel()) return endcapLayer();
49     } else return theRpcDet.station();
50     return 0;
51 konec 1.1 }
52    
53     int part() {
54     return isBarrel() ? theRpcDet.ring() :
55     (theRpcDet.region()==1 ? theRpcDet.ring()+1 : -theRpcDet.ring()-1);
56     }
57    
58     RPCDetId rpdDetIt() { return theRpcDet; }
59    
60 konec 1.4 void print(const edm::EventSetup& es);
61 konec 1.1
62     private:
63     RPCDetId theRpcDet;
64 konec 1.4 friend std::ostream & operator<< (std::ostream &out, const RPCDetIdUtil &o);
65 konec 1.1 };
66     #endif