CMS 3D CMS Logo

TrackletCalculatorDisplaced.h
Go to the documentation of this file.
1 #ifndef L1Trigger_TrackFindingTracklet_interface_TrackletCalculatorDisplaced_h
2 #define L1Trigger_TrackFindingTracklet_interface_TrackletCalculatorDisplaced_h
3 
9 
10 #include <vector>
11 
12 namespace trklet {
13 
14  class Settings;
15  class Globals;
16  class MemoryBase;
17  class Stub;
18  class L1TStub;
19 
21  public:
22  TrackletCalculatorDisplaced(std::string name, Settings const& settings, Globals* global);
23 
24  ~TrackletCalculatorDisplaced() override = default;
25 
27 
28  void addOutput(MemoryBase* memory, std::string output) override;
29  void addInput(MemoryBase* memory, std::string input) override;
30 
31  void execute(unsigned int iSector, double phimin, double phimax);
32 
33  void addDiskProj(Tracklet* tracklet, int disk);
34  bool addLayerProj(Tracklet* tracklet, int layer);
35 
36  void addProjection(int layer, int iphi, TrackletProjectionsMemory* trackletprojs, Tracklet* tracklet);
37  void addProjectionDisk(int disk, int iphi, TrackletProjectionsMemory* trackletprojs, Tracklet* tracklet);
38 
39  bool LLLSeeding(const Stub* innerFPGAStub,
40  const L1TStub* innerStub,
41  const Stub* middleFPGAStub,
42  const L1TStub* middleStub,
43  const Stub* outerFPGAStub,
44  const L1TStub* outerStub);
45  bool DDLSeeding(const Stub* innerFPGAStub,
46  const L1TStub* innerStub,
47  const Stub* middleFPGAStub,
48  const L1TStub* middleStub,
49  const Stub* outerFPGAStub,
50  const L1TStub* outerStub);
51  bool LLDSeeding(const Stub* innerFPGAStub,
52  const L1TStub* innerStub,
53  const Stub* middleFPGAStub,
54  const L1TStub* middleStub,
55  const Stub* outerFPGAStub,
56  const L1TStub* outerStub);
57 
58  void exactproj(double rproj,
59  double rinv,
60  double phi0,
61  double d0,
62  double t,
63  double z0,
64  double r0,
65  double& phiproj,
66  double& zproj,
67  double& phider,
68  double& zder);
69 
70  void exactprojdisk(double zproj,
71  double rinv,
72  double,
73  double, //phi0 and d0 are not used.
74  double t,
75  double z0,
76  double x0,
77  double y0,
78  double& phiproj,
79  double& rproj,
80  double& phider,
81  double& rder);
82 
83  void exacttracklet(double r1,
84  double z1,
85  double phi1,
86  double r2,
87  double z2,
88  double phi2,
89  double r3,
90  double z3,
91  double phi3,
92  int take3,
93  double& rinv,
94  double& phi0,
95  double& d0,
96  double& t,
97  double& z0,
98  double phiproj[N_LAYER - 2],
99  double zproj[N_LAYER - 2],
100  double phiprojdisk[N_DISK],
101  double rprojdisk[N_DISK],
102  double phider[N_LAYER - 2],
103  double zder[N_LAYER - 2],
104  double phiderdisk[N_DISK],
105  double rderdisk[N_DISK]);
106 
107  void approxproj(double halfRinv,
108  double phi0,
109  double d0,
110  double t,
111  double z0,
112  double halfRinv_0,
113  double d0_0, // zeroeth order result for higher order terms calculation
114  double rmean,
115  double& phiproj,
116  double& phiprojder,
117  double& zproj,
118  double& zprojder);
119 
120  void approxprojdisk(double halfRinv,
121  double phi0,
122  double d0,
123  double t,
124  double z0,
125  double halfRinv_0,
126  double d0_0, // zeroeth order result for higher order terms calculation
127  double zmean,
128  double& phiproj,
129  double& phiprojder,
130  double& rproj,
131  double& rprojder);
132 
133  void approxtracklet(double r1,
134  double z1,
135  double phi1,
136  double r2,
137  double z2,
138  double phi2,
139  double r3,
140  double z3,
141  double phi3,
142  bool take3,
143  unsigned ndisks,
144  double& rinv,
145  double& phi0,
146  double& d0,
147  double& t,
148  double& z0,
149  double phiproj[4],
150  double zproj[4],
151  double phider[4],
152  double zder[4],
153  double phiprojdisk[5],
154  double rprojdisk[5],
155  double phiderdisk[5],
156  double rderdisk[5]);
157 
158  private:
159  int TCIndex_;
160  int layer_;
161  int disk_;
162  unsigned int iSeed_;
163  double rproj_[N_LAYER - 2];
164  int lproj_[N_LAYER - 2];
165  double zproj_[N_DISK - 2];
166  int dproj_[N_DISK - 2];
167  double rzmeanInv_[N_DISK - 2];
168 
169  unsigned int iSector_;
170  double phimin_, phimax_;
171 
172  std::vector<double> toR_;
173  std::vector<double> toZ_;
174 
175  std::vector<AllStubsMemory*> innerallstubs_;
176  std::vector<AllStubsMemory*> middleallstubs_;
177  std::vector<AllStubsMemory*> outerallstubs_;
178  std::vector<StubTripletsMemory*> stubtriplets_;
179 
181 
182  //First index is layer/disk second is phi region
183  std::vector<std::vector<TrackletProjectionsMemory*> > trackletprojlayers_;
184  std::vector<std::vector<TrackletProjectionsMemory*> > trackletprojdisks_;
185  };
186 
187 }; // namespace trklet
188 #endif
trklet::TrackletCalculatorDisplaced::toZ_
std::vector< double > toZ_
Definition: TrackletCalculatorDisplaced.h:173
trklet::TrackletCalculatorDisplaced::outerallstubs_
std::vector< AllStubsMemory * > outerallstubs_
Definition: TrackletCalculatorDisplaced.h:177
trklet::TrackletParametersMemory
Definition: TrackletParametersMemory.h:17
input
static const std::string input
Definition: EdmProvDump.cc:48
trklet::TrackletCalculatorDisplaced::addProjection
void addProjection(int layer, int iphi, TrackletProjectionsMemory *trackletprojs, Tracklet *tracklet)
Definition: TrackletCalculatorDisplaced.cc:338
trklet::TrackletCalculatorDisplaced::innerallstubs_
std::vector< AllStubsMemory * > innerallstubs_
Definition: TrackletCalculatorDisplaced.h:175
AllStubsMemory.h
convertSQLitetoXML_cfg.output
output
Definition: convertSQLitetoXML_cfg.py:72
trklet::TrackletCalculatorDisplaced::stubtriplets_
std::vector< StubTripletsMemory * > stubtriplets_
Definition: TrackletCalculatorDisplaced.h:178
phimin
float phimin
Definition: ReggeGribovPartonMCHadronizer.h:107
trklet::TrackletCalculatorDisplaced::phimax_
double phimax_
Definition: TrackletCalculatorDisplaced.h:170
memory
Definition: HGCRecHitSoA.h:20
trklet::TrackletCalculatorDisplaced::disk_
int disk_
Definition: TrackletCalculatorDisplaced.h:161
trklet::TrackletProjectionsMemory
Definition: TrackletProjectionsMemory.h:15
trklet::Settings
Definition: Settings.h:52
trklet::L1TStub
Definition: L1TStub.h:14
trklet::TrackletCalculatorDisplaced::addLayerProj
bool addLayerProj(Tracklet *tracklet, int layer)
Definition: TrackletCalculatorDisplaced.cc:318
TrackletParametersMemory.h
trklet::TrackletCalculatorDisplaced::phimin_
double phimin_
Definition: TrackletCalculatorDisplaced.h:170
trklet::TrackletCalculatorDisplaced::middleallstubs_
std::vector< AllStubsMemory * > middleallstubs_
Definition: TrackletCalculatorDisplaced.h:176
trklet::N_DISK
constexpr int N_DISK
Definition: Settings.h:22
trklet::TrackletCalculatorDisplaced::lproj_
int lproj_[N_LAYER - 2]
Definition: TrackletCalculatorDisplaced.h:164
trklet::Globals
Definition: Globals.h:30
trklet::Tracklet
Definition: Tracklet.h:27
TrackletProjectionsMemory.h
trklet::TrackletCalculatorDisplaced::iSector_
unsigned int iSector_
Definition: TrackletCalculatorDisplaced.h:169
testProducerWithPsetDescEmpty_cfi.z2
z2
Definition: testProducerWithPsetDescEmpty_cfi.py:41
LEDCalibrationChannels.iphi
iphi
Definition: LEDCalibrationChannels.py:64
trklet::TrackletCalculatorDisplaced::approxprojdisk
void approxprojdisk(double halfRinv, double phi0, double d0, double t, double z0, double halfRinv_0, double d0_0, double zmean, double &phiproj, double &phiprojder, double &rproj, double &rprojder)
Definition: TrackletCalculatorDisplaced.cc:1793
StubTripletsMemory.h
trklet::Stub
Definition: Stub.h:18
trklet::TrackletCalculatorDisplaced::execute
void execute(unsigned int iSector, double phimin, double phimax)
Definition: TrackletCalculatorDisplaced.cc:222
trklet::TrackletCalculatorDisplaced::layer_
int layer_
Definition: TrackletCalculatorDisplaced.h:160
trklet::TrackletCalculatorDisplaced::trackletprojlayers_
std::vector< std::vector< TrackletProjectionsMemory * > > trackletprojlayers_
Definition: TrackletCalculatorDisplaced.h:183
trklet::N_LAYER
constexpr int N_LAYER
Definition: Settings.h:21
trklet::TrackletCalculatorDisplaced::rzmeanInv_
double rzmeanInv_[N_DISK - 2]
Definition: TrackletCalculatorDisplaced.h:167
trklet::TrackletCalculatorDisplaced::exacttracklet
void exacttracklet(double r1, double z1, double phi1, double r2, double z2, double phi2, double r3, double z3, double phi3, int take3, double &rinv, double &phi0, double &d0, double &t, double &z0, double phiproj[N_LAYER - 2], double zproj[N_LAYER - 2], double phiprojdisk[N_DISK], double rprojdisk[N_DISK], double phider[N_LAYER - 2], double zder[N_LAYER - 2], double phiderdisk[N_DISK], double rderdisk[N_DISK])
Definition: TrackletCalculatorDisplaced.cc:1650
HLTMuonOfflineAnalyzer_cfi.z0
z0
Definition: HLTMuonOfflineAnalyzer_cfi.py:98
phase1PixelTopology::layer
constexpr std::array< uint8_t, layerIndexSize > layer
Definition: phase1PixelTopology.h:99
trklet::TrackletCalculatorDisplaced::exactprojdisk
void exactprojdisk(double zproj, double rinv, double, double, double t, double z0, double x0, double y0, double &phiproj, double &rproj, double &phider, double &rder)
Definition: TrackletCalculatorDisplaced.cc:1612
trklet::TrackletCalculatorDisplaced::LLDSeeding
bool LLDSeeding(const Stub *innerFPGAStub, const L1TStub *innerStub, const Stub *middleFPGAStub, const L1TStub *middleStub, const Stub *outerFPGAStub, const L1TStub *outerStub)
Definition: TrackletCalculatorDisplaced.cc:1190
trklet::MemoryBase
Definition: MemoryBase.h:13
trklet::TrackletCalculatorDisplaced::addDiskProj
void addDiskProj(Tracklet *tracklet, int disk)
Definition: TrackletCalculatorDisplaced.cc:301
trklet::rinv
double rinv(double phi1, double phi2, double r1, double r2)
Definition: Util.h:49
trklet::TrackletCalculatorDisplaced::LLLSeeding
bool LLLSeeding(const Stub *innerFPGAStub, const L1TStub *innerStub, const Stub *middleFPGAStub, const L1TStub *middleStub, const Stub *outerFPGAStub, const L1TStub *outerStub)
Definition: TrackletCalculatorDisplaced.cc:372
diffTwoXMLs.r2
r2
Definition: diffTwoXMLs.py:73
trklet::TrackletCalculatorDisplaced::zproj_
double zproj_[N_DISK - 2]
Definition: TrackletCalculatorDisplaced.h:165
trklet::TrackletCalculatorDisplaced::TCIndex_
int TCIndex_
Definition: TrackletCalculatorDisplaced.h:159
trklet::TrackletCalculatorDisplaced::rproj_
double rproj_[N_LAYER - 2]
Definition: TrackletCalculatorDisplaced.h:163
trklet
Definition: AllInnerStubsMemory.h:10
AlCaHLTBitMon_QueryRunRegistry.string
string string
Definition: AlCaHLTBitMon_QueryRunRegistry.py:256
trklet::TrackletCalculatorDisplaced::iSeed_
unsigned int iSeed_
Definition: TrackletCalculatorDisplaced.h:162
trklet::TrackletCalculatorDisplaced::trackletprojdisks_
std::vector< std::vector< TrackletProjectionsMemory * > > trackletprojdisks_
Definition: TrackletCalculatorDisplaced.h:184
phimax
float phimax
Definition: ReggeGribovPartonMCHadronizer.h:106
trklet::TrackletCalculatorDisplaced::~TrackletCalculatorDisplaced
~TrackletCalculatorDisplaced() override=default
trklet::TrackletCalculatorDisplaced::approxtracklet
void approxtracklet(double r1, double z1, double phi1, double r2, double z2, double phi2, double r3, double z3, double phi3, bool take3, unsigned ndisks, double &rinv, double &phi0, double &d0, double &t, double &z0, double phiproj[4], double zproj[4], double phider[4], double zder[4], double phiprojdisk[5], double rprojdisk[5], double phiderdisk[5], double rderdisk[5])
Definition: TrackletCalculatorDisplaced.cc:1837
ProcessBase.h
trklet::TrackletCalculatorDisplaced::approxproj
void approxproj(double halfRinv, double phi0, double d0, double t, double z0, double halfRinv_0, double d0_0, double rmean, double &phiproj, double &phiprojder, double &zproj, double &zprojder)
Definition: TrackletCalculatorDisplaced.cc:1760
trklet::TrackletCalculatorDisplaced::dproj_
int dproj_[N_DISK - 2]
Definition: TrackletCalculatorDisplaced.h:166
trklet::TrackletCalculatorDisplaced::toR_
std::vector< double > toR_
Definition: TrackletCalculatorDisplaced.h:172
trklet::TrackletCalculatorDisplaced
Definition: TrackletCalculatorDisplaced.h:20
trklet::ProcessBase
Definition: ProcessBase.h:12
trklet::TrackletCalculatorDisplaced::exactproj
void exactproj(double rproj, double rinv, double phi0, double d0, double t, double z0, double r0, double &phiproj, double &zproj, double &phider, double &zder)
Definition: TrackletCalculatorDisplaced.cc:1585
diffTwoXMLs.r1
r1
Definition: diffTwoXMLs.py:53
trklet::TrackletCalculatorDisplaced::DDLSeeding
bool DDLSeeding(const Stub *innerFPGAStub, const L1TStub *innerStub, const Stub *middleFPGAStub, const L1TStub *middleStub, const Stub *outerFPGAStub, const L1TStub *outerStub)
Definition: TrackletCalculatorDisplaced.cc:794
trklet::TrackletCalculatorDisplaced::addOutput
void addOutput(MemoryBase *memory, std::string output) override
Definition: TrackletCalculatorDisplaced.cc:146
trklet::TrackletCalculatorDisplaced::trackletpars_
TrackletParametersMemory * trackletpars_
Definition: TrackletCalculatorDisplaced.h:180
Skims_PA_cff.name
name
Definition: Skims_PA_cff.py:17
trklet::TrackletCalculatorDisplaced::addInput
void addInput(MemoryBase *memory, std::string input) override
Definition: TrackletCalculatorDisplaced.cc:189
trklet::TrackletCalculatorDisplaced::TrackletCalculatorDisplaced
TrackletCalculatorDisplaced(std::string name, Settings const &settings, Globals *global)
Definition: TrackletCalculatorDisplaced.cc:16
submitPVValidationJobs.t
string t
Definition: submitPVValidationJobs.py:644
d0
static constexpr float d0
Definition: L1EGammaCrystalsEmulatorProducer.cc:85
trklet::TrackletCalculatorDisplaced::addOutputProjection
void addOutputProjection(TrackletProjectionsMemory *&outputProj, MemoryBase *memory)
Definition: TrackletCalculatorDisplaced.cc:141
trklet::TrackletCalculatorDisplaced::addProjectionDisk
void addProjectionDisk(int disk, int iphi, TrackletProjectionsMemory *trackletprojs, Tracklet *tracklet)
Definition: TrackletCalculatorDisplaced.cc:353