ATLAS Offline Software
Loading...
Searching...
No Matches
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)

Variables

static dqm_algorithms::BinsDiffFromStripMedian myInstance

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 }
337if(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}
void AddToList(const int r0, const int r2, int i, int j, std::vector< std::vector< colorbin > > &ColorBinMap, std::vector< colorbin > &LookAtList)
const double r0
electron radius{cm}

◆ 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}
Scalar eta() const
pseudorapidity method

◆ 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}
Scalar phi() const
phi method

◆ 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}
float distance(const Amg::Vector3D &p1, const Amg::Vector3D &p2)
calculates the distance between two point in 3D space

◆ 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);}
double m_outstandingRatio

Variable Documentation

◆ myInstance

Definition at line 26 of file BinsDiffFromStripMedian.cxx.