test
CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
MuonInternalTrack.h
Go to the documentation of this file.
1 #ifndef __L1TMUON_INTERNALTRACK_H__
2 #define __L1TMUON_INTERNALTRACK_H__
3 //
4 // Class: L1TMuon::InternalTrack
5 //
6 // Info: This class represents (one of the) internal tracks processed
7 // by L1ITMu before sending off to the GT or whatever comes after.
8 // As such, they are similar to the L1MuRegionalCands in terms of
9 // their meaning.
10 // To exploit that we also allow these tracks to be built out of
11 // old style regional cands so we can perform studies using them
12 // in the new framework. So that debugging is easier in the case
13 // of the new track not matching it's parent, a reference to the
14 // parent track is stored.
15 //
16 // Author: L. Gray (FNAL)
17 //
18 
19 #include <iostream>
20 
24 
29 
30 //This is *not* a forward declaration, so instead full includes are above...
31 //class L1MuDTTrackCand;
32 //namespace csc {
33 // class L1Track;
34 //}
35 
36 namespace L1TMuon{
37  class InternalTrack : public L1MuRegionalCand {
38  public:
42 
46  const RPCL1LinkRef&); // for RPCs
47 
48  void setType(unsigned type) { _type = type; }
49  unsigned type_idx() const;
50 
51  // return the persistent pointer to the parent of this internal track
52  // may be null if this has no parent
53  RegionalCandBaseRef parent() const { return _parent; }
55  { _parent = parent; }
56 
58 
59  void addStub(const TriggerPrimitive& stub) ;
60 
62  { return _associatedStubs; }
63 
64  unsigned long mode() const { return (_mode & 0xffff); }
65  unsigned long dtMode() const { return (_mode & 0xf<<4*kDT )>>4*kDT; }
66  unsigned long cscMode() const { return (_mode & 0xf<<4*kCSC)>>4*kCSC; }
67  unsigned long rpcbMode() const { return (_mode & 0xf<<4*kRPCb)>>4*kRPCb; }
68  unsigned long rpcfMode() const { return (_mode & 0xf<<4*kRPCf)>>4*kRPCf; }
69 
70  void print() const;
71 
73  //struct varStorage
74  // {
75  int phi;
76  int theta;
77  int rank;
78  std::vector< std::vector<int> > deltas;
79  std::vector<int> phis, thetas;
80  float pt;
81  // } ;
83 
84 
85  private:
88  unsigned _type;
89  // this represents the mode considering all available muon detector types
90  // 0 DT 4 bits | RPCb 4 bits | CSC 4 bits | RPC f 4 bits
91  // using an unsigned long since we may want to add GEMs later
92  // so cscMode() will return only the CSC part of the tracks contributing
93  // to a CSC track (if this track was built from one)
94  unsigned long _mode;
95  //pointer to parent, if this was created from a CSC/DT/RPC track
97  //pointer to RPC-L1 link, if an rpc track
99  };
100 }
101 
102 #endif
type
Definition: HCALResponse.h:21
void print() const
print candidate
const TriggerPrimitiveStationMap & getStubs() const
unsigned long rpcbMode() const
unsigned long rpcfMode() const
unsigned long cscMode() const
void setType(unsigned type)
std::vector< int > thetas
RegionalCandBaseRef _parent
void addStub(const TriggerPrimitive &stub)
unsigned type_idx() const
std::vector< std::vector< int > > deltas
unsigned long mode() const
std::vector< int > phis
TriggerPrimitiveStationMap _associatedStubs
unsigned long dtMode() const
RegionalCandBaseRef parent() const
RPCL1LinkRef parentRPCLink() const
int phi
TEMPORARY ADDITION by G. Brown ///.
std::map< unsigned, TriggerPrimitiveCollection > TriggerPrimitiveStationMap
void setParent(const RegionalCandBaseRef &parent)