ViewVC Help
View File | Revision Log | Show Annotations | Root Listing
root/cvsroot/UserCode/kbunkow/L1MuAnalysis/interface/L1MuAnalysisMuCandidates.h
Revision: 1.1
Committed: Fri Oct 12 16:59:41 2012 UTC (12 years, 6 months ago) by kbunkow
Content type: text/plain
Branch: MAIN
CVS Tags: HEAD
Log Message:
initiail commit

File Contents

# User Rev Content
1 kbunkow 1.1 #ifndef __L1MuAnalysis_MuCandidates_H__
2     #define __L1MuAnalysis_MuCandidates_H__
3     /*
4     * L1MuAnalysisMuCandidate.h
5     *
6     * Created on: May 25, 2012
7     * Author: Karol Bunkowski
8     */
9     #include "UserCode/L1TriggerDPG/interface/L1AnalysisGMTDataFormat.h"
10     #include "UserCode/kbunkow/L1MuAnalysis/interface/L1MuAnalysisIMuCandidate.h"
11     #include <boost/shared_ptr.hpp>
12     #include <vector>
13     #include <string>
14    
15     namespace L1MuAnalysis
16     {
17    
18     class MuCandidate: public IMuCandidate {
19     private:
20     int qual_;
21     float pt_;
22     int cha_;
23     float eta_;
24     float phi_;
25     MuConsts::Subsystem subsys_;
26     int fineEta_;
27    
28     public:
29     MuCandidate() {
30     qual_ = -1;
31     pt_ = -1;
32     cha_ = -1;
33     eta_ = -1;
34     phi_ = -1;
35     subsys_ = MuConsts::GMT;
36     fineEta_ = -1;
37     };
38    
39     virtual ~MuCandidate() {};
40    
41     virtual int getQual() {
42     return qual_;
43     }
44    
45     virtual float getPt() {
46     return pt_;
47     }
48    
49     virtual int getCha() {
50     return cha_;
51     }
52    
53     virtual float getEta() {
54     return eta_;
55     }
56    
57     virtual float getPhi() {
58     return phi_;
59     }
60    
61     virtual MuConsts::Subsystem getSubsys() {
62     return subsys_;
63     }
64    
65     /**
66     * only for DT
67     * @param bx
68     * @param idx
69     * @return
70     */
71     virtual int getFineEta() {
72     return fineEta_;
73     }
74    
75     virtual void setCha(int cha) {
76     this->cha_ = cha;
77     }
78    
79     virtual void setEta(float eta){
80     this->eta_ = eta;
81     }
82    
83     virtual void setPhi(float phi) {
84     this->phi_ = phi;
85     }
86    
87     virtual void setPt(float pt) {
88     this->pt_ = pt;
89     }
90    
91     virtual void setQual(int qual) {
92     this->qual_ = qual;
93     }
94    
95     virtual void setSubsys(MuConsts::Subsystem subsys) {
96     subsys_ = subsys;
97     }
98    
99     virtual void setFineEta(int fineEta){
100     this->fineEta_ = fineEta;
101     }
102    
103     virtual std::string toString();
104    
105     };
106    
107    
108     class GmtCandidate: public MuCandidate, IGmtCandidate {
109     private:
110     MuCandidatePtr dtCscCand_;
111     MuCandidatePtr rpcCand_;
112     public:
113     GmtCandidate() {};
114    
115     virtual ~GmtCandidate() {};
116    
117     virtual MuCandidatePtr getDtCsCcand() const {
118     return dtCscCand_;
119     }
120    
121     virtual MuCandidatePtr getRpcCand() const {
122     return rpcCand_;
123     }
124    
125     virtual void setDtCscCand(MuCandidatePtr dtCscCand) {
126     this->dtCscCand_ = dtCscCand;
127     }
128    
129     virtual void setRpcCand(MuCandidatePtr rpcCand) {
130     this->rpcCand_ = rpcCand_;
131     }
132    
133     };
134    
135     class MuCandidates;
136     typedef std::vector<MuCandidates> MuCandidatesBxVec; //each row are MuCandidates in one BX
137    
138     /**
139     * candidates of one BX
140     */
141     class MuCandidates {
142     public:
143     static const int bxOffset = 2;
144     static const int bxPerEvent = 5;
145     private:
146     std::vector<MuCandidateVec> muSubsysCandidates; //[subsys][cand]
147    
148     public :
149     MuCandidates();
150    
151     static MuCandidatesBxVec getMuCandidatesBxVec(L1Analysis::L1AnalysisGMTDataFormat* gmtData);
152    
153     //static MuCandidates getMuCandidatesBxVec(L1AnalysisGMTDataFormat* gmtData, int bx);
154    
155     static MuCandidates getMuCandidatesInL1ABx(L1Analysis::L1AnalysisGMTDataFormat* gmtData) {
156     return getMuCandidatesBxVec(gmtData)[MuCandidates::bxOffset];
157     //return getMuCandidatesBxVec(gmtData, MuCandidates::bxOffset);
158     }
159    
160     };
161    
162     }
163     #endif