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, unsigned int iSector);
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();
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  double rproj_[N_LAYER - 2];
163  int lproj_[N_LAYER - 2];
164  double zproj_[N_DISK - 2];
165  int dproj_[N_DISK - 2];
166  double rzmeanInv_[N_DISK - 2];
167 
168  std::vector<double> toR_;
169  std::vector<double> toZ_;
170 
171  std::vector<AllStubsMemory*> innerallstubs_;
172  std::vector<AllStubsMemory*> middleallstubs_;
173  std::vector<AllStubsMemory*> outerallstubs_;
174  std::vector<StubTripletsMemory*> stubtriplets_;
175 
177 
178  //First index is layer/disk second is phi region
179  std::vector<std::vector<TrackletProjectionsMemory*> > trackletprojlayers_;
180  std::vector<std::vector<TrackletProjectionsMemory*> > trackletprojdisks_;
181  };
182 
183 }; // namespace trklet
184 #endif
trklet::TrackletCalculatorDisplaced::toZ_
std::vector< double > toZ_
Definition: TrackletCalculatorDisplaced.h:169
trklet::TrackletCalculatorDisplaced::outerallstubs_
std::vector< AllStubsMemory * > outerallstubs_
Definition: TrackletCalculatorDisplaced.h:173
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:330
trklet::TrackletCalculatorDisplaced::innerallstubs_
std::vector< AllStubsMemory * > innerallstubs_
Definition: TrackletCalculatorDisplaced.h:171
trklet::TrackletCalculatorDisplaced::TrackletCalculatorDisplaced
TrackletCalculatorDisplaced(std::string name, Settings const &settings, Globals *global, unsigned int iSector)
Definition: TrackletCalculatorDisplaced.cc:16
AllStubsMemory.h
convertSQLitetoXML_cfg.output
output
Definition: convertSQLitetoXML_cfg.py:72
trklet::TrackletCalculatorDisplaced::stubtriplets_
std::vector< StubTripletsMemory * > stubtriplets_
Definition: TrackletCalculatorDisplaced.h:174
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:31
trklet::L1TStub
Definition: L1TStub.h:12
trklet::TrackletCalculatorDisplaced::addLayerProj
bool addLayerProj(Tracklet *tracklet, int layer)
Definition: TrackletCalculatorDisplaced.cc:310
TrackletParametersMemory.h
trklet::TrackletCalculatorDisplaced::middleallstubs_
std::vector< AllStubsMemory * > middleallstubs_
Definition: TrackletCalculatorDisplaced.h:172
trklet::N_DISK
constexpr int N_DISK
Definition: Settings.h:20
trklet::TrackletCalculatorDisplaced::lproj_
int lproj_[N_LAYER - 2]
Definition: TrackletCalculatorDisplaced.h:163
trklet::Globals
Definition: Globals.h:32
trklet::Tracklet
Definition: Tracklet.h:28
TrackletProjectionsMemory.h
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:1783
StubTripletsMemory.h
trklet::Stub
Definition: Stub.h:16
trklet::TrackletCalculatorDisplaced::layer_
int layer_
Definition: TrackletCalculatorDisplaced.h:160
trklet::TrackletCalculatorDisplaced::trackletprojlayers_
std::vector< std::vector< TrackletProjectionsMemory * > > trackletprojlayers_
Definition: TrackletCalculatorDisplaced.h:179
trklet::N_LAYER
constexpr int N_LAYER
Definition: Settings.h:19
trklet::TrackletCalculatorDisplaced::rzmeanInv_
double rzmeanInv_[N_DISK - 2]
Definition: TrackletCalculatorDisplaced.h:166
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
AlCaHLTBitMon_QueryRunRegistry.string
string
Definition: AlCaHLTBitMon_QueryRunRegistry.py:256
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:1186
trklet::MemoryBase
Definition: MemoryBase.h:13
trklet::TrackletCalculatorDisplaced::addDiskProj
void addDiskProj(Tracklet *tracklet, int disk)
Definition: TrackletCalculatorDisplaced.cc:294
trklet::rinv
double rinv(double phi1, double phi2, double r1, double r2)
Definition: Util.h:173
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:364
diffTwoXMLs.r2
r2
Definition: diffTwoXMLs.py:73
trklet::TrackletCalculatorDisplaced::execute
void execute()
Definition: TrackletCalculatorDisplaced.cc:223
trklet::TrackletCalculatorDisplaced::zproj_
double zproj_[N_DISK - 2]
Definition: TrackletCalculatorDisplaced.h:164
trklet::TrackletCalculatorDisplaced::TCIndex_
int TCIndex_
Definition: TrackletCalculatorDisplaced.h:159
trklet::TrackletCalculatorDisplaced::rproj_
double rproj_[N_LAYER - 2]
Definition: TrackletCalculatorDisplaced.h:162
trklet
Definition: AllProjectionsMemory.h:9
trklet::TrackletCalculatorDisplaced::trackletprojdisks_
std::vector< std::vector< TrackletProjectionsMemory * > > trackletprojdisks_
Definition: TrackletCalculatorDisplaced.h:180
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:1827
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:1750
trklet::TrackletCalculatorDisplaced::dproj_
int dproj_[N_DISK - 2]
Definition: TrackletCalculatorDisplaced.h:165
trklet::TrackletCalculatorDisplaced::toR_
std::vector< double > toR_
Definition: TrackletCalculatorDisplaced.h:168
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:786
trklet::TrackletCalculatorDisplaced::addOutput
void addOutput(MemoryBase *memory, std::string output) override
Definition: TrackletCalculatorDisplaced.cc:149
trklet::TrackletCalculatorDisplaced::trackletpars_
TrackletParametersMemory * trackletpars_
Definition: TrackletCalculatorDisplaced.h:176
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:191
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:144
trklet::TrackletCalculatorDisplaced::addProjectionDisk
void addProjectionDisk(int disk, int iphi, TrackletProjectionsMemory *trackletprojs, Tracklet *tracklet)
Definition: TrackletCalculatorDisplaced.cc:345