ATLAS Offline Software
Functions
BinsDiffFromStripMedian.cxx File Reference
#include <dqm_core/AlgorithmConfig.h>
#include <dqm_algorithms/BinsDiffFromStripMedian.h>
#include <dqm_algorithms/tools/AlgorithmHelper.h>
#include <dqm_core/AlgorithmManager.h>
#include <TH1.h>
#include <TF1.h>
#include <TClass.h>
#include <cmath>
#include <format>
#include <iostream>
#include <string>

Go to the source code of this file.

Functions

bool mySortfunc (const bin &i, const bin &j)
 
bool mySortfunc_ratio (const bin &i, const bin &j)
 
void AddToList (const int r0, const int r2, int i, int j, std::vector< std::vector< colorbin > > &ColorBinMap, std::vector< colorbin > &LookAtList)
 
double CalEta (std::vector< colorbin > &LookAtList)
 
double CalPhi (std::vector< colorbin > &LookAtList)
 
double CalVal (std::vector< colorbin > &LookAtList)
 
double CalR (std::vector< colorbin > &LookAtList, double eta, double phi)
 

Function Documentation

◆ AddToList()

void AddToList ( const int  r0,
const int  r2,
int  i,
int  j,
std::vector< std::vector< colorbin > > &  ColorBinMap,
std::vector< colorbin > &  LookAtList 
)

Definition at line 304 of file BinsDiffFromStripMedian.cxx.

304  {
305 
306  if( i-r0<0 || i-r0>=(int)ColorBinMap.size()
307  || j-r2<0 ||j-r2>=(int)ColorBinMap[0].size() ) return;
308 
309  std::vector<colorbin> tmp;
310 
311  if(i-1-r0>=0 && j-1-r2>=0 && ColorBinMap[i-1-r0][j-1-r2].m_status==1){
312  tmp.push_back(ColorBinMap[i-1-r0][j-1-r2]);
313  ColorBinMap[i-1-r0][j-1-r2].m_status=0;
314  }
315  if(j-1-r2 >=0 && ColorBinMap[i-r0][j-1-r2].m_status==1){
316  tmp.push_back(ColorBinMap[i-r0][j-1-r2]);
317  ColorBinMap[i-r0][j-1-r2].m_status=0;
318  }
319  if(i+1-r0<(int)ColorBinMap.size() && j-1-r2 >=0 && ColorBinMap[i+1-r0][j-1-r2].m_status==1){
320  tmp.push_back(ColorBinMap[i+1-r0][j-1-r2]);
321  ColorBinMap[i+1-r0][j-1-r2].m_status=0;
322  }
323  if(i-1-r0>=0 && ColorBinMap[i-1-r0][j-r2].m_status==1){
324  tmp.push_back(ColorBinMap[i-1-r0][j-r2]);
325  ColorBinMap[i-1-r0][j-r2].m_status=0;
326  }
327 
328  if(i+1-r0<(int)ColorBinMap.size() && ColorBinMap[i+1-r0][j-r2].m_status==1){
329  tmp.push_back(ColorBinMap[i+1-r0][j-r2]);
330  ColorBinMap[i+1-r0][j-r2].m_status=0;
331  }
332  if(i-1-r0>=0 && j+1-r2 < (int)ColorBinMap[0].size()
333  && ColorBinMap[i-1-r0][j+1-r2].m_status==1){
334  tmp.push_back(ColorBinMap[i-1-r0][j+1-r2]);
335  ColorBinMap[i-1-r0][j+1-r2].m_status=0;
336  }
337 if(j+1-r2<(int)ColorBinMap[0].size()&& ColorBinMap[i-r0][j+1-r2].m_status==1){
338  tmp.push_back(ColorBinMap[i-r0][j+1-r2]);
339  ColorBinMap[i-r0][j+1-r2].m_status=0;
340  }
341  if(i+1-r0<(int)ColorBinMap.size() && j+1-r2<(int)ColorBinMap[0].size()&&ColorBinMap[i+1-r0][j+1-r2].m_status==1){
342  tmp.push_back(ColorBinMap[i+1-r0][j+1-r2]);
343  ColorBinMap[i+1-r0][j+1-r2].m_status=0;
344  }
345 
346  for(unsigned int k=0;k<tmp.size();k++){
347  if(tmp[k].m_color!=green){
348  LookAtList.push_back(tmp[k]);
349  AddToList(r0,r2,tmp[k].m_ix,tmp[k].m_iy,ColorBinMap,LookAtList);
350  }
351  }
352  return;
353 
354 }

◆ CalEta()

double CalEta ( std::vector< colorbin > &  LookAtList)

Definition at line 356 of file BinsDiffFromStripMedian.cxx.

356  {
357  double sumEta=0;
358  double sumN=0;
359  for(unsigned int i=0;i<LookAtList.size();i++){
360  double eta = LookAtList[i].m_eta;
361  double n = LookAtList[i].m_value;
362  sumEta += n*eta;
363  sumN +=n;
364  }
365  if(sumN!=0) return sumEta/sumN;
366  else return -99;
367 }

◆ CalPhi()

double CalPhi ( std::vector< colorbin > &  LookAtList)

Definition at line 368 of file BinsDiffFromStripMedian.cxx.

368  {
369  double sumPhi=0;
370  double sumN=0;
371  for(unsigned int i=0;i<LookAtList.size();i++){
372  double phi = LookAtList[i].m_phi;
373  double n = LookAtList[i].m_value;
374  sumPhi += n*phi;
375  sumN +=n;
376  }
377  if(sumN!=0) return sumPhi/sumN;
378  else return -99;
379 }

◆ CalR()

double CalR ( std::vector< colorbin > &  LookAtList,
double  eta,
double  phi 
)

Definition at line 388 of file BinsDiffFromStripMedian.cxx.

388  {
389  if(LookAtList.size()<2) return 0;
390  double maxR=0;
391  for(unsigned int i=0;i<LookAtList.size();i++){
392  double distance = std::sqrt(std::pow((LookAtList[i].m_eta-eta),2)+std::pow((LookAtList[i].m_phi-phi),2));
393  maxR=distance>maxR?distance:maxR;
394  }
395  return maxR;
396 }

◆ CalVal()

double CalVal ( std::vector< colorbin > &  LookAtList)

Definition at line 380 of file BinsDiffFromStripMedian.cxx.

380  {
381  double sumN=0;
382  for(unsigned int i=0;i<LookAtList.size();i++){
383  double n = LookAtList[i].m_value;
384  sumN += n;
385  }
386  return sumN;
387 }

◆ mySortfunc()

bool mySortfunc ( const bin i,
const bin j 
)

Definition at line 24 of file BinsDiffFromStripMedian.cxx.

24 {return (i.m_value > j.m_value);}

◆ mySortfunc_ratio()

bool mySortfunc_ratio ( const bin i,
const bin j 
)

Definition at line 25 of file BinsDiffFromStripMedian.cxx.

25 {return (i.m_outstandingRatio> j.m_outstandingRatio);}
phi
Scalar phi() const
phi method
Definition: AmgMatrixBasePlugin.h:67
eta
Scalar eta() const
pseudorapidity method
Definition: AmgMatrixBasePlugin.h:83
MCP::ScaleSmearParam::r2
@ r2
python.setupRTTAlg.size
int size
Definition: setupRTTAlg.py:39
lumiFormat.i
int i
Definition: lumiFormat.py:85
beamspotman.n
n
Definition: beamspotman.py:727
TRT_PAI_physicsConstants::r0
const double r0
electron radius{cm}
Definition: TRT_PAI_physicsConstants.h:22
DeMoUpdate.tmp
string tmp
Definition: DeMoUpdate.py:1167
bin::m_outstandingRatio
double m_outstandingRatio
Definition: BinsDiffFromStripMedian.h:50
green
@ green
Definition: BinsDiffFromStripMedian.h:18
bin::m_value
double m_value
Definition: BinsDiffFromStripMedian.h:49
pow
constexpr int pow(int base, int exp) noexcept
Definition: ap_fixedTest.cxx:15
Amg::distance
float distance(const Amg::Vector3D &p1, const Amg::Vector3D &p2)
calculates the distance between two point in 3D space
Definition: GeoPrimitivesHelpers.h:54
AddToList
void AddToList(const int r0, const int r2, int i, int j, std::vector< std::vector< colorbin > > &ColorBinMap, std::vector< colorbin > &LookAtList)
Definition: BinsDiffFromStripMedian.cxx:304
fitman.k
k
Definition: fitman.py:528