ATLAS Offline Software
Loading...
Searching...
No Matches
utils.cxx File Reference
#include <string>
#include <vector>
#include <iostream>
#include <cmath>
#include <stdio.h>
#include "utils.h"
#include <algorithm>
Include dependency graph for utils.cxx:

Go to the source code of this file.

Functions

std::string choptoken (std::string &s1, const std::string &s2)
std::string chomptoken (std::string &s1, const std::string &s2)
std::string chopfirst (std::string &s1, const std::string &s2)
std::string chopends (std::string &s1, const std::string &s2)
std::string choplast (std::string &s1, const std::string &s2)
std::string chop (std::string &s1, const std::string &s2)
std::string chomp (std::string &s1, const std::string &s2)
void removespace (std::string &s, const std::string &s2)
void replace (std::string &s, const std::string &s2, const std::string &s3)
void replace (std::string &s, char c1, char c2) noexcept
void depunctuate (std::string &s)
double deltaPhi (double phi1, double phi2)
bool canopen (const std::string &s)
std::string number (const double &d, const std::string &s)
std::string number (const int &i, const std::string &s)
std::string dirname (std::string name)
std::string basename (std::string name)

Detailed Description

Author
M.Sutton
Date
Thu Jun 23 01:11:43 BST 2005

Copyright (C) 2002-2019 CERN for the benefit of the ATLAS collaboration

Definition in file utils.cxx.

Function Documentation

◆ basename()

std::string basename ( std::string name)

Definition at line 207 of file utils.cxx.

207 {
208 std::string::size_type pos = name.find( '/' );
209 while ( pos!=std::string::npos ) {
210 name = name.substr( pos+1, name.size()-pos-1 );
211 pos = name.find( '/' );
212 }
213 return name;
214}

◆ canopen()

bool canopen ( const std::string & s)

Definition at line 178 of file utils.cxx.

178 {
179 FILE* f = fopen(s.c_str(), "r");
180 if ( f ) { fclose(f); return true; }
181 return false;
182}

◆ chomp()

std::string chomp ( std::string & s1,
const std::string & s2 )

Definition at line 115 of file utils.cxx.

116{
117 std::string::size_type pos = s1.find(s2);
118 std::string s3;
119 if ( pos == std::string::npos ) {
120 s3 = std::move(s1);
121 s1.clear();
122 }
123 else {
124 s3 = s1.substr(pos+s2.size(),s1.size());
125 s1.erase(pos,s1.size());
126 }
127 return s3;
128}

◆ chomptoken()

std::string chomptoken ( std::string & s1,
const std::string & s2 )

Definition at line 47 of file utils.cxx.

48{
49 std::string s3 = "";
50 std::string::size_type pos = s1.find_last_of(s2);
51 if ( pos != std::string::npos ) {
52 s3 = s1.substr(pos, s1.size());
53 s1.erase(pos, s1.size());
54 }
55 return s3;
56}

◆ chop()

std::string chop ( std::string & s1,
const std::string & s2 )

Definition at line 98 of file utils.cxx.

99{
100 std::string::size_type pos = s1.find(s2);
101 std::string s3;
102 if ( pos == std::string::npos ) {
103 s3 = std::move(s1);
104 s1.clear();
105 }
106 else {
107 s3 = s1.substr(0, pos);
108 s1.erase(0, pos+s2.size());
109 }
110 return s3;
111}

◆ chopends()

std::string chopends ( std::string & s1,
const std::string & s2 )

Definition at line 76 of file utils.cxx.

77{
78 chopfirst(s1, s2);
79 choplast(s1, s2);
80 return s1;
81}
std::string chopfirst(std::string &s1, const std::string &s2)
Definition utils.cxx:60
std::string choplast(std::string &s1, const std::string &s2)
Definition utils.cxx:85

◆ chopfirst()

std::string chopfirst ( std::string & s1,
const std::string & s2 )

Definition at line 60 of file utils.cxx.

61{
62 std::string s3;
63 std::string::size_type pos = s1.find_first_not_of(s2);
64 if ( pos != std::string::npos ) {
65 s3 = s1.substr(0, pos);
66 s1.erase(0, pos);
67 }
68 else {
69 s3 = s1;
70 s1.clear();
71 }
72 return s3;
73}

◆ choplast()

std::string choplast ( std::string & s1,
const std::string & s2 )

Definition at line 85 of file utils.cxx.

86{
87 std::string s3 = "";
88 std::string::size_type pos = s1.find_last_not_of(s2);
89 if ( pos != std::string::npos ) {
90 s3 = s1.substr(pos+1, s1.size());
91 s1.erase(pos+1, s1.size());
92 }
93 return s3;
94}

◆ choptoken()

std::string choptoken ( std::string & s1,
const std::string & s2 )

Definition at line 34 of file utils.cxx.

35{
36 std::string s3 = "";
37 std::string::size_type pos = s1.find(s2);
38 if ( pos != std::string::npos ) {
39 s3 = s1.substr(0, pos+1);
40 s1.erase(0, pos+1);
41 }
42 return s3;
43}

◆ deltaPhi()

double deltaPhi ( double phi1,
double phi2 )

Definition at line 169 of file utils.cxx.

169 {
170 double delta = fabs(phi1-phi2);
171 delta = (delta > M_PI) ? (2.0*M_PI - delta) : delta;
172 return delta;
173}
#define M_PI

◆ depunctuate()

void depunctuate ( std::string & s)

Definition at line 157 of file utils.cxx.

158{
159 std::string::size_type pos;
160 while ( (pos = s.find(':'))!=std::string::npos ) {
161 s.erase(pos, 1);
162 }
163}

◆ dirname()

std::string dirname ( std::string name)

Definition at line 200 of file utils.cxx.

200 {
201 std::string::size_type pos = name.find_last_of( '/' );
202 if ( pos!=std::string::npos ) name.resize( pos );
203 return name;
204}

◆ number() [1/2]

std::string number ( const double & d,
const std::string & s )

Definition at line 186 of file utils.cxx.

186 {
187 char tmp[512];
188 sprintf(tmp, s.c_str(), d);
189 return tmp;
190}

◆ number() [2/2]

std::string number ( const int & i,
const std::string & s )

Definition at line 192 of file utils.cxx.

192 {
193 char tmp[512];
194 sprintf(tmp, s.c_str(), i);
195 return tmp;
196}

◆ removespace()

void removespace ( std::string & s,
const std::string & s2 )

Definition at line 132 of file utils.cxx.

133{
134 std::string::size_type pos;
135 while ( (pos = s.find(s2))!=std::string::npos ) {
136 s.erase(pos, 1);
137 }
138}

◆ replace() [1/2]

void replace ( std::string & s,
char c1,
char c2 )
noexcept

Definition at line 152 of file utils.cxx.

152 {
153 std::replace(s.begin(), s.end(), c1, c2);
154}

◆ replace() [2/2]

void replace ( std::string & s,
const std::string & s2,
const std::string & s3 )

Definition at line 142 of file utils.cxx.

143{
144 std::string::size_type pos;
145 // while ( (pos = s.find(" "))!=std::string::npos ) {
146 // s.replace(pos, 1, "-");
147 while ( (pos = s.find(s2))!=std::string::npos ) {
148 s.replace(pos, 1, s3);
149 }
150}