Main Page
Namespaces
Classes
Package Documentation
All
Classes
Namespaces
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Properties
Friends
Macros
Groups
Pages
L1Trigger
DTTriggerPhase2
interface
InitialGrouping.h
Go to the documentation of this file.
1
#ifndef Phase2L1Trigger_DTTrigger_InitialGrouping_h
2
#define Phase2L1Trigger_DTTrigger_InitialGrouping_h
3
4
#include "
FWCore/ParameterSet/interface/ParameterSet.h
"
5
#include "
FWCore/MessageLogger/interface/MessageLogger.h
"
6
7
#include "
DataFormats/MuonDetId/interface/DTChamberId.h
"
8
#include "
DataFormats/MuonDetId/interface/DTSuperLayerId.h
"
9
#include "
DataFormats/MuonDetId/interface/DTLayerId.h
"
10
#include "
DataFormats/MuonDetId/interface/DTWireId.h
"
11
#include "
DataFormats/DTDigi/interface/DTDigiCollection.h
"
12
13
#include "
L1Trigger/DTTriggerPhase2/interface/MuonPath.h
"
14
#include "
L1Trigger/DTTriggerPhase2/interface/constants.h
"
15
16
#include "
L1Trigger/DTTriggerPhase2/interface/MotherGrouping.h
"
17
18
#include <iostream>
19
#include <fstream>
20
21
// ===============================================================================
22
// Previous definitions and declarations
23
// ===============================================================================
24
25
/*
26
Channels are labeled following next schema:
27
---------------------------------
28
| 6 | 7 | 8 | 9 |
29
---------------------------------
30
| 3 | 4 | 5 |
31
-------------------------
32
| 1 | 2 |
33
-----------------
34
| 0 |
35
---------
36
*/
37
38
namespace
dtamgrouping {
39
/* Cell's combination, following previous labeling, to obtain every possible muon's path.
40
Others cells combinations imply non straight paths */
41
constexpr
int
CHANNELS_PATH_ARRANGEMENTS
[8][4] = {
42
{0, 1, 3, 6}, {0, 1, 3, 7}, {0, 1, 4, 7}, {0, 1, 4, 8}, {0, 2, 4, 7}, {0, 2, 4, 8}, {0, 2, 5, 8}, {0, 2, 5, 9}};
43
44
/* For each of the previous cell's combinations, this array stores the associated cell's
45
displacement, relative to lower layer cell, measured in semi-cell length units */
46
47
constexpr
int
CELL_HORIZONTAL_LAYOUTS
[8][4] = {{0, -1, -2, -3},
48
{0, -1, -2, -1},
49
{0, -1, 0, -1},
50
{0, -1, 0, 1},
51
{0, 1, 0, -1},
52
{0, 1, 0, 1},
53
{0, 1, 2, 1},
54
{0, 1, 2, 3}};
55
}
// namespace dtamgrouping
56
57
// ===============================================================================
58
// Class declarations
59
// ===============================================================================
60
61
class
InitialGrouping
:
public
MotherGrouping
{
62
public
:
63
// Constructors and destructor
64
InitialGrouping
(
const
edm::ParameterSet
&
pset
,
edm::ConsumesCollector
& iC);
65
~InitialGrouping
()
override
;
66
67
// Main methods
68
void
initialise
(
const
edm::EventSetup
& iEventSetup)
override
;
69
void
run
(
edm::Event
&
iEvent
,
70
const
edm::EventSetup
& iEventSetup,
71
const
DTDigiCollection
& digis,
72
MuonPathPtrs
& outMpath)
override
;
73
void
finish
()
override
;
74
75
// Other public methods
76
77
// Public attributes
78
79
private
:
80
// Private methods
81
void
setInChannels
(
const
DTDigiCollection
* digi,
int
sl);
82
void
selectInChannels
(
int
baseCh);
83
void
resetPrvTDCTStamp
(
void
);
84
void
mixChannels
(
int
sl,
int
pathId,
MuonPathPtrs
& outMpath);
85
bool
notEnoughDataInChannels
(
void
);
86
bool
isEqualComb2Previous
(
DTPrimitives
& ptr);
87
88
// Private attributes
89
bool
debug_
;
90
91
DTPrimitives
muxInChannels_
[
cmsdt::NUM_CELLS_PER_BLOCK
];
92
DTPrimitives
channelIn_
[
cmsdt::NUM_LAYERS
][
cmsdt::NUM_CH_PER_LAYER
];
93
DTPrimitives
chInDummy_
;
94
int
prevTDCTimeStamps_
[4];
95
int
currentBaseChannel_
;
96
};
97
98
#endif
DTDigiCollection
InitialGrouping::selectInChannels
void selectInChannels(int baseCh)
Definition:
InitialGrouping.cc:118
MotherGrouping.h
MessageLogger.h
DTSuperLayerId.h
InitialGrouping::prevTDCTimeStamps_
int prevTDCTimeStamps_[4]
Definition:
InitialGrouping.h:94
dtamgrouping::CELL_HORIZONTAL_LAYOUTS
constexpr int CELL_HORIZONTAL_LAYOUTS[8][4]
Definition:
InitialGrouping.h:47
MuonPathPtrs
std::vector< MuonPathPtr > MuonPathPtrs
Definition:
MuonPath.h:128
InitialGrouping::channelIn_
DTPrimitives channelIn_[cmsdt::NUM_LAYERS][cmsdt::NUM_CH_PER_LAYER]
Definition:
InitialGrouping.h:92
TrackValidation_cff.pset
tuple pset
Definition:
TrackValidation_cff.py:591
InitialGrouping::isEqualComb2Previous
bool isEqualComb2Previous(DTPrimitives &ptr)
Definition:
InitialGrouping.cc:201
InitialGrouping::muxInChannels_
DTPrimitives muxInChannels_[cmsdt::NUM_CELLS_PER_BLOCK]
Definition:
InitialGrouping.h:91
InitialGrouping::InitialGrouping
InitialGrouping(const edm::ParameterSet &pset, edm::ConsumesCollector &iC)
Definition:
InitialGrouping.cc:14
ParameterSet.h
InitialGrouping
Definition:
InitialGrouping.h:61
cmsdt::NUM_CELLS_PER_BLOCK
constexpr int NUM_CELLS_PER_BLOCK
Definition:
constants.h:242
iEvent
int iEvent
Definition:
GenABIO.cc:224
DTDigiCollection.h
InitialGrouping::chInDummy_
DTPrimitives chInDummy_
Definition:
InitialGrouping.h:93
constants.h
InitialGrouping::resetPrvTDCTStamp
void resetPrvTDCTStamp(void)
Definition:
InitialGrouping.cc:196
InitialGrouping::debug_
bool debug_
Definition:
InitialGrouping.h:89
DTChamberId.h
edm::EventSetup
Definition:
EventSetup.h:59
dtamgrouping::CHANNELS_PATH_ARRANGEMENTS
constexpr int CHANNELS_PATH_ARRANGEMENTS[8][4]
Definition:
InitialGrouping.h:41
MuonPath.h
DTLayerId.h
InitialGrouping::initialise
void initialise(const edm::EventSetup &iEventSetup) override
Definition:
InitialGrouping.cc:39
InitialGrouping::currentBaseChannel_
int currentBaseChannel_
Definition:
InitialGrouping.h:95
cmsdt::NUM_CH_PER_LAYER
constexpr int NUM_CH_PER_LAYER
Definition:
constants.h:218
InitialGrouping::notEnoughDataInChannels
bool notEnoughDataInChannels(void)
Definition:
InitialGrouping.cc:174
InitialGrouping::run
void run(edm::Event &iEvent, const edm::EventSetup &iEventSetup, const DTDigiCollection &digis, MuonPathPtrs &outMpath) override
Definition:
InitialGrouping.cc:44
InitialGrouping::finish
void finish() override
Definition:
InitialGrouping.cc:78
DTWireId.h
MotherGrouping
Definition:
MotherGrouping.h:29
DTPrimitives
std::vector< DTPrimitive > DTPrimitives
Definition:
DTprimitive.h:53
InitialGrouping::~InitialGrouping
~InitialGrouping() override
Definition:
InitialGrouping.cc:31
edm::ParameterSet
Definition:
ParameterSet.h:47
cmsdt::NUM_LAYERS
constexpr int NUM_LAYERS
Definition:
constants.h:219
edm::Event
Definition:
Event.h:73
edm::ConsumesCollector
Definition:
ConsumesCollector.h:45
InitialGrouping::setInChannels
void setInChannels(const DTDigiCollection *digi, int sl)
Definition:
InitialGrouping.cc:83
InitialGrouping::mixChannels
void mixChannels(int sl, int pathId, MuonPathPtrs &outMpath)
Definition:
InitialGrouping.cc:216
Generated for CMSSW Reference Manual by
1.8.5