 |
DAS
3.0
Das Analysis System
|
|
void | _initialise_tiles () |
|
int | _tile_index (int ieta, int iphi) const |
|
void | _bj_remove_from_tiles (TiledJet *const jet) |
|
int | _tile_index (const double eta, const double phi) const |
|
void | _tj_set_jetinfo (TiledJet *const jet, const int _jets_index) |
|
void | _print_tiles (TiledJet *briefjets) const |
|
void | _add_neighbours_to_tile_union (const int tile_index, std::vector< int > &tile_union, int &n_near_tiles) const |
|
void | _add_untagged_neighbours_to_tile_union (const int tile_index, std::vector< int > &tile_union, int &n_near_tiles) |
|
void | _add_untagged_neighbours_to_tile_union_using_max_info (const TiledJet *const jet, std::vector< int > &tile_union, int &n_near_tiles) |
|
void | _update_jetX_jetI_NN (TiledJet *jetX, TiledJet *jetI, std::vector< TiledJet * > &jets_for_minheap) |
|
void | _set_NN (TiledJet *jetI, std::vector< TiledJet * > &jets_for_minheap) |
|
template<class J > |
double | _bj_diJ (const J *const jet) const |
|
template<class J > |
void | _bj_set_jetinfo (J *const jetA, const int _jets_index) const |
|
template<class J > |
double | _bj_dist (const J *const jetA, const J *const jetB) const |
|
template<class J > |
double | _bj_dist_not_periodic (const J *const jetA, const J *const jetB) const |
|
◆ LazyTiling9Alt()
◆ _add_neighbours_to_tile_union()
void _add_neighbours_to_tile_union |
( |
const int |
tile_index, |
|
|
std::vector< int > & |
tile_union, |
|
|
int & |
n_near_tiles |
|
) |
| const |
|
protected |
5886 near_tile !=
_tiles[tile_index].end_tiles; near_tile++){
5887 tile_union[n_near_tiles] = near_tile->first - &
_tiles[0];
◆ _add_untagged_neighbours_to_tile_union()
void _add_untagged_neighbours_to_tile_union |
( |
const int |
tile_index, |
|
|
std::vector< int > & |
tile_union, |
|
|
int & |
n_near_tiles |
|
) |
| |
|
inlineprotected |
5895 near_tile !=
_tiles[tile_index].end_tiles; near_tile++){
5896 if (! (near_tile->first)->tagged) {
5897 (near_tile->first)->tagged =
true;
5898 tile_union[n_near_tiles] = near_tile->first - &
_tiles[0];
◆ _add_untagged_neighbours_to_tile_union_using_max_info()
void _add_untagged_neighbours_to_tile_union_using_max_info |
( |
const TiledJet *const |
jet, |
|
|
std::vector< int > & |
tile_union, |
|
|
int & |
n_near_tiles |
|
) |
| |
|
inlineprotected |
5908 if ((near_tile->first)->tagged)
continue;
5910 if (dist > (near_tile->first)->max_NN_dist)
continue;
5911 (near_tile->first)->tagged =
true;
5912 tile_union[n_near_tiles] = near_tile->first - &
_tiles[0];
◆ _bj_diJ()
double _bj_diJ |
( |
const J *const |
jet | ) |
const |
|
inlineprotected |
923 double kt2 = jet->kt2;
924 if (jet->NN != NULL) {
if (jet->NN->kt2 < kt2) {kt2 = jet->NN->kt2;}}
925 return jet->NN_dist * kt2;
◆ _bj_dist()
double _bj_dist |
( |
const J *const |
jetA, |
|
|
const J *const |
jetB |
|
) |
| const |
|
inlineprotected |
938 double dphi = std::abs(jetA->phi - jetB->phi);
939 double deta = (jetA->eta - jetB->eta);
940 if (dphi >
pi) {dphi =
twopi - dphi;}
941 return dphi*dphi + deta*deta;
◆ _bj_dist_not_periodic()
double _bj_dist_not_periodic |
( |
const J *const |
jetA, |
|
|
const J *const |
jetB |
|
) |
| const |
|
inlineprotected |
945 double dphi = jetA->phi - jetB->phi;
946 double deta = (jetA->eta - jetB->eta);
947 return dphi*dphi + deta*deta;
◆ _bj_remove_from_tiles()
void _bj_remove_from_tiles |
( |
TiledJet *const |
jet | ) |
|
|
protected |
5866 if (jet->
next != NULL) {
◆ _bj_set_jetinfo()
void _bj_set_jetinfo |
( |
J *const |
jetA, |
|
|
const int |
_jets_index |
|
) |
| const |
|
inlineprotected |
929 jetA->eta =
_jets[_jets_index].rap();
930 jetA->phi =
_jets[_jets_index].phi_02pi();
932 jetA->_jets_index = _jets_index;
◆ _initialise_tiles()
void _initialise_tiles |
( |
| ) |
|
|
protected |
5753 double default_size = max(0.1,
_Rparam);
5759 const double maxrap = 7.0;
5760 for(
unsigned int i = 0; i <
_jets.size(); i++) {
5762 if (abs(
eta) < maxrap) {
5773 vector<bool> use_periodic_delta_phi(
_n_tiles_phi,
false);
5775 fill(use_periodic_delta_phi.begin(), use_periodic_delta_phi.end(),
true);
5777 use_periodic_delta_phi[0] =
true;
◆ _print_tiles()
void _print_tiles |
( |
TiledJet * |
briefjets | ) |
const |
|
protected |
5871 for (vector<Tile>::const_iterator tile =
_tiles.begin();
5872 tile <
_tiles.end(); tile++) {
5873 cout <<
"Tile " << tile -
_tiles.begin()<<
" = ";
5875 for (
TiledJet * jetI = tile->head; jetI != NULL; jetI = jetI->
next) {
5876 list.push_back(jetI-briefjets);
5878 sort(list.begin(),list.end());
5879 for (
unsigned int i = 0; i < list.size(); i++) {cout <<
" "<<list[i];}
◆ _set_NN()
5948 jets_for_minheap.push_back(jetI);}
5951 near_tile != tile_ptr->
end_tiles; near_tile++) {
5952 if (jetI->
NN_dist < (tile_ptr->*(near_tile->second))(jetI))
continue;
5953 for (
TiledJet * jetJ = (near_tile->first)->head;
5954 jetJ != NULL; jetJ = jetJ->
next) {
5956 if (dist < jetI->NN_dist && jetJ != jetI) {
◆ _tile_index() [1/2]
int _tile_index |
( |
const double |
eta, |
|
|
const double |
phi |
|
) |
| const |
|
protected |
◆ _tile_index() [2/2]
int _tile_index |
( |
int |
ieta, |
|
|
int |
iphi |
|
) |
| const |
|
inlineprotected |
◆ _tj_set_jetinfo()
void _tj_set_jetinfo |
( |
TiledJet *const |
jet, |
|
|
const int |
_jets_index |
|
) |
| |
|
inlineprotected |
5851 _bj_set_jetinfo<>(jet, _jets_index);
◆ _update_jetX_jetI_NN()
5926 if (dist < jetI->NN_dist) {
5932 jets_for_minheap.push_back(jetI);
5936 if (dist < jetX->NN_dist) {
◆ run()
5963 int n =
_jets.size();
5965 TiledJet * jetA = briefjets, * jetB;
5968 for (
int i = 0; i< n; i++) {
5973 vector<Tile>::iterator tile;
5974 for (tile =
_tiles.begin(); tile !=
_tiles.end(); tile++) {
5975 for (jetA = tile->head; jetA != NULL; jetA = jetA->
next) {
5976 for (jetB = tile->head; jetB != jetA; jetB = jetB->next) {
5978 if (dist < jetA->NN_dist) {jetA->
NN_dist = dist; jetA->
NN = jetB;}
5979 if (dist < jetB->NN_dist) {jetB->
NN_dist = dist; jetB->NN = jetA;}
5982 for (jetA = tile->head; jetA != NULL; jetA = jetA->
next) {
5983 if (jetA->
NN_dist > tile->max_NN_dist) tile->max_NN_dist = jetA->
NN_dist;
5986 for (tile =
_tiles.begin(); tile !=
_tiles.end(); tile++) {
5987 if (tile->use_periodic_delta_phi) {
5989 RTileFnPair != tile->end_tiles; RTileFnPair++) {
5990 Tile *RTile = RTileFnPair->first;
5991 for (jetA = tile->head; jetA != NULL; jetA = jetA->
next) {
5992 double dist_to_tile = ((*tile).*(RTileFnPair->second))(jetA);
5993 bool relevant_for_jetA = dist_to_tile <= jetA->
NN_dist;
5994 bool relevant_for_RTile = dist_to_tile <= RTile->
max_NN_dist;
5995 if (relevant_for_jetA || relevant_for_RTile) {
5996 for (jetB = RTile->
head; jetB != NULL; jetB = jetB->
next) {
5998 if (dist < jetA->NN_dist) {jetA->
NN_dist = dist; jetA->
NN = jetB;}
5999 if (dist < jetB->NN_dist) {jetB->
NN_dist = dist; jetB->NN = jetA;}
6006 RTileFnPair != tile->end_tiles; RTileFnPair++) {
6007 Tile *RTile = RTileFnPair->first;
6008 for (jetA = tile->head; jetA != NULL; jetA = jetA->
next) {
6009 double dist_to_tile = ((*tile).*(RTileFnPair->second))(jetA);
6010 bool relevant_for_jetA = dist_to_tile <= jetA->
NN_dist;
6011 bool relevant_for_RTile = dist_to_tile <= RTile->
max_NN_dist;
6012 if (relevant_for_jetA || relevant_for_RTile) {
6013 for (jetB = RTile->
head; jetB != NULL; jetB = jetB->
next) {
6015 if (dist < jetA->NN_dist) {jetA->
NN_dist = dist; jetA->
NN = jetB;}
6016 if (dist < jetB->NN_dist) {jetB->
NN_dist = dist; jetB->NN = jetA;}
6023 for (tile =
_tiles.begin(); tile !=
_tiles.end(); tile++) {
6024 tile->max_NN_dist = 0;
6025 for (jetA = tile->head; jetA != NULL; jetA = jetA->
next) {
6026 if (jetA->
NN_dist > tile->max_NN_dist) tile->max_NN_dist = jetA->
NN_dist;
6029 vector<double> diJs(n);
6030 for (
int i = 0; i < n; i++) {
6031 diJs[i] =
_bj_diJ(&briefjets[i]);
6035 vector<TiledJet *> jets_for_minheap;
6036 jets_for_minheap.reserve(n);
6037 int history_location = n-1;
6039 double diJ_min = minheap.minval() *
_invR2;
6040 jetA = head + minheap.minloc();
6044 if (jetA < jetB) {
std::swap(jetA,jetB);}
6055 minheap.remove(jetA-head);
6056 int n_near_tiles = 0;
6058 tile_union, n_near_tiles);
6061 tile_union,n_near_tiles);
6062 jetB->label_minheap_update_needed();
6063 jets_for_minheap.push_back(jetB);
6068 near_tile_fn_pair != jetB_tile.
end_tiles; near_tile_fn_pair++) {
6069 Tile * near_tile = near_tile_fn_pair->first;
6070 double dist_to_tile = (jetB_tile.*(near_tile_fn_pair->second))(jetB);
6071 bool relevant_for_jetB = dist_to_tile <= jetB->NN_dist;
6072 bool relevant_for_near_tile = dist_to_tile <= near_tile->
max_NN_dist;
6073 bool relevant = relevant_for_jetB || relevant_for_near_tile;
6077 if (jetI->NN == jetA || jetI->NN == jetB)
_set_NN(jetI, jets_for_minheap);
6080 near_tile->
tagged =
false;
6090 for (
int itile = 0; itile < n_near_tiles; itile++) {
6091 Tile * tile_ptr = &
_tiles[tile_union[itile]];
6092 if (!tile_ptr->
tagged)
continue;
6093 tile_ptr->
tagged =
false;
6095 if (jetI->NN == jetA || (jetI->NN == jetB && jetB != NULL)) {
6096 _set_NN(jetI, jets_for_minheap);
6100 while (jets_for_minheap.size() > 0) {
6101 TiledJet * jetI = jets_for_minheap.back();
6102 jets_for_minheap.pop_back();
6103 minheap.update(jetI-head,
_bj_diJ(jetI));
◆ _cs
◆ _invR2
◆ _jets
◆ _jets_for_minheap
std::vector<TiledJet *> _jets_for_minheap |
|
protected |
◆ _n_tiles_phi
◆ _R2
◆ _Rparam
◆ _tile_half_size_eta
double _tile_half_size_eta |
|
protected |
◆ _tile_half_size_phi
double _tile_half_size_phi |
|
protected |
◆ _tile_size_eta
◆ _tile_size_phi
◆ _tiles
◆ _tiles_eta_max
◆ _tiles_eta_min
◆ _tiles_ieta_max
◆ _tiles_ieta_min
The documentation for this class was generated from the following file:
- /builds/cms-analysis/general/DasAnalysisSystem/Core/Installer/Core/JetObservables/src/fjcore.cc
double distance_to_right(const TiledJet *jet) const
Definition: fjcore.cc:858
double distance_to_top(const TiledJet *jet) const
Definition: fjcore.cc:866
Definition: fjcore.cc:829
void _bj_remove_from_tiles(TiledJet *const jet)
Definition: fjcore.cc:5859
double max_NN_dist
Definition: fjcore.cc:851
double phi
Definition: fjcore.cc:831
double eta_min
Definition: fjcore.cc:852
double _tiles_eta_min
Definition: fjcore.cc:900
double distance_to_left(const TiledJet *jet) const
Definition: fjcore.cc:854
int _n_tiles_phi
Definition: fjcore.cc:903
std::pair< Tile *, DistToTileFn > TileFnPair
Definition: fjcore.cc:843
Definition: fjcore.cc:647
double distance_to_right_bottom(const TiledJet *jet) const
Definition: fjcore.cc:885
FJCORE_BEGIN_NAMESPACE const double pi
Definition: fjcore.hh:191
Definition: fjcore.cc:840
double distance_to_bottom(const TiledJet *jet) const
Definition: fjcore.cc:862
double distance_to_left_top(const TiledJet *jet) const
Definition: fjcore.cc:870
void label_minheap_update_done()
Definition: fjcore.cc:836
double _tile_size_eta
Definition: fjcore.cc:901
void _set_NN(TiledJet *jetI, std::vector< TiledJet * > &jets_for_minheap)
Definition: fjcore.cc:5942
void _tj_set_jetinfo(TiledJet *const jet, const int _jets_index)
Definition: fjcore.cc:5849
void _initialise_tiles()
Definition: fjcore.cc:5752
int _tiles_ieta_min
Definition: fjcore.cc:903
double phi_min
Definition: fjcore.cc:852
double phi_max
Definition: fjcore.cc:852
TileFnPair * RH_tiles
Definition: fjcore.cc:846
double NN_dist
Definition: fjcore.cc:831
void plugin_record_iB_recombination(int jet_i, double diB)
Definition: fjcore.hh:1450
double _Rparam
Definition: fjcore.cc:899
int _jets_index
Definition: fjcore.cc:833
double _R2
Definition: fjcore.cc:899
double _bj_diJ(const J *const jet) const
Definition: fjcore.cc:922
TiledJet * next
Definition: fjcore.cc:832
bool tagged
Definition: fjcore.cc:849
int tile_index
Definition: fjcore.cc:833
void _add_untagged_neighbours_to_tile_union_using_max_info(const TiledJet *const jet, std::vector< int > &tile_union, int &n_near_tiles)
Definition: fjcore.cc:5903
TileFnPair * surrounding_tiles
Definition: fjcore.cc:845
FJCORE_BEGIN_NAMESPACE const double tile_edge_security_margin
Definition: fjcore.cc:828
bool minheap_update_needed() const
Definition: fjcore.cc:837
TiledJet * head
Definition: fjcore.cc:848
const std::vector< PseudoJet > & _jets
Definition: fjcore.cc:897
double distance_to_right_top(const TiledJet *jet) const
Definition: fjcore.cc:880
void plugin_record_ij_recombination(int jet_i, int jet_j, double dij, int &newjet_k)
Definition: fjcore.hh:1442
TiledJet * previous
Definition: fjcore.cc:832
TileFnPair * end_tiles
Definition: fjcore.cc:847
double eta_max
Definition: fjcore.cc:852
double distance_to_centre(const TiledJet *) const
Definition: fjcore.cc:853
void swap(SharedPtr< T > &a, SharedPtr< T > &b)
Definition: fjcore.hh:412
void _update_jetX_jetI_NN(TiledJet *jetX, TiledJet *jetI, std::vector< TiledJet * > &jets_for_minheap)
Definition: fjcore.cc:5924
double _tile_half_size_phi
Definition: fjcore.cc:902
const std::vector< PseudoJet > & jets() const
Definition: fjcore.hh:1673
double _tiles_eta_max
Definition: fjcore.cc:900
std::vector< Tile > _tiles
Definition: fjcore.cc:898
double R() const
Definition: fjcore.hh:1149
double _bj_dist(const J *const jetA, const J *const jetB) const
Definition: fjcore.cc:936
double _invR2
Definition: fjcore.cc:899
double jet_scale_for_algorithm(const PseudoJet &jet) const
Definition: fjcore.cc:1656
double _tile_half_size_eta
Definition: fjcore.cc:902
bool use_periodic_delta_phi
Definition: fjcore.cc:850
void label_minheap_update_needed()
Definition: fjcore.cc:835
int _tiles_ieta_max
Definition: fjcore.cc:903
TiledJet * NN
Definition: fjcore.cc:832
int _tile_index(int ieta, int iphi) const
Definition: fjcore.cc:906
const double twopi
Definition: fjcore.hh:192
double _tile_size_phi
Definition: fjcore.cc:901
double _bj_dist_not_periodic(const J *const jetA, const J *const jetB) const
Definition: fjcore.cc:943
double eta
Definition: fjcore.cc:831
double distance_to_left_bottom(const TiledJet *jet) const
Definition: fjcore.cc:875
const JetDefinition & jet_def() const
Definition: fjcore.hh:1437
TileFnPair begin_tiles[n_tile_neighbours]
Definition: fjcore.cc:844
ClusterSequence & _cs
Definition: fjcore.cc:896
const int n_tile_neighbours
Definition: fjcore.cc:839
eta
DeepAK8/ParticleNet tagging.
Definition: jmarExample.py:19