/usr/share/doc/siscone-doc-html/html/devel/geom__2d_8cpp_source.html is in siscone-doc-html 2.0.6-1.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 | <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.3.1"/>
<title>SISCone: siscone/geom_2d.cpp Source File</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
<td style="padding-left: 0.5em;">
<div id="projectname">SISCone
 <span id="projectnumber">2.0.6</span>
</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.3.1 -->
<div id="navrow1" class="tabs">
<ul class="tablist">
<li><a href="index.html"><span>Main Page</span></a></li>
<li><a href="annotated.html"><span>Classes</span></a></li>
<li class="current"><a href="files.html"><span>Files</span></a></li>
</ul>
</div>
<div id="navrow2" class="tabs2">
<ul class="tablist">
<li><a href="files.html"><span>File List</span></a></li>
<li><a href="globals.html"><span>File Members</span></a></li>
</ul>
</div>
<div id="nav-path" class="navpath">
<ul>
<li class="navelem"><a class="el" href="dir_1331b0450b50de117660f97bbea14878.html">siscone</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
<div class="headertitle">
<div class="title">geom_2d.cpp</div> </div>
</div><!--header-->
<div class="contents">
<div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> </div>
<div class="line"><a name="l00002"></a><span class="lineno"> 2</span> <span class="comment">// File: geom_2d.cpp //</span></div>
<div class="line"><a name="l00003"></a><span class="lineno"> 3</span> <span class="comment">// Description: source file for two-dimensional geometry tools //</span></div>
<div class="line"><a name="l00004"></a><span class="lineno"> 4</span> <span class="comment">// This file is part of the SISCone project. //</span></div>
<div class="line"><a name="l00005"></a><span class="lineno"> 5</span> <span class="comment">// For more details, see http://projects.hepforge.org/siscone //</span></div>
<div class="line"><a name="l00006"></a><span class="lineno"> 6</span> <span class="comment">// //</span></div>
<div class="line"><a name="l00007"></a><span class="lineno"> 7</span> <span class="comment">// Copyright (c) 2006 Gavin Salam and Gregory Soyez //</span></div>
<div class="line"><a name="l00008"></a><span class="lineno"> 8</span> <span class="comment">// //</span></div>
<div class="line"><a name="l00009"></a><span class="lineno"> 9</span> <span class="comment">// This program is free software; you can redistribute it and/or modify //</span></div>
<div class="line"><a name="l00010"></a><span class="lineno"> 10</span> <span class="comment">// it under the terms of the GNU General Public License as published by //</span></div>
<div class="line"><a name="l00011"></a><span class="lineno"> 11</span> <span class="comment">// the Free Software Foundation; either version 2 of the License, or //</span></div>
<div class="line"><a name="l00012"></a><span class="lineno"> 12</span> <span class="comment">// (at your option) any later version. //</span></div>
<div class="line"><a name="l00013"></a><span class="lineno"> 13</span> <span class="comment">// //</span></div>
<div class="line"><a name="l00014"></a><span class="lineno"> 14</span> <span class="comment">// This program is distributed in the hope that it will be useful, //</span></div>
<div class="line"><a name="l00015"></a><span class="lineno"> 15</span> <span class="comment">// but WITHOUT ANY WARRANTY; without even the implied warranty of //</span></div>
<div class="line"><a name="l00016"></a><span class="lineno"> 16</span> <span class="comment">// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the //</span></div>
<div class="line"><a name="l00017"></a><span class="lineno"> 17</span> <span class="comment">// GNU General Public License for more details. //</span></div>
<div class="line"><a name="l00018"></a><span class="lineno"> 18</span> <span class="comment">// //</span></div>
<div class="line"><a name="l00019"></a><span class="lineno"> 19</span> <span class="comment">// You should have received a copy of the GNU General Public License //</span></div>
<div class="line"><a name="l00020"></a><span class="lineno"> 20</span> <span class="comment">// along with this program; if not, write to the Free Software //</span></div>
<div class="line"><a name="l00021"></a><span class="lineno"> 21</span> <span class="comment">// Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA //</span></div>
<div class="line"><a name="l00022"></a><span class="lineno"> 22</span> <span class="comment">// //</span></div>
<div class="line"><a name="l00023"></a><span class="lineno"> 23</span> <span class="comment">// $Revision:: 171 $//</span></div>
<div class="line"><a name="l00024"></a><span class="lineno"> 24</span> <span class="comment">// $Date:: 2007-06-19 16:26:05 +0200 (Tue, 19 Jun 2007) $//</span></div>
<div class="line"><a name="l00026"></a><span class="lineno"> 26</span> <span class="comment"></span></div>
<div class="line"><a name="l00027"></a><span class="lineno"> 27</span> <span class="preprocessor">#include "geom_2d.h"</span></div>
<div class="line"><a name="l00028"></a><span class="lineno"> 28</span> <span class="preprocessor">#include <algorithm></span></div>
<div class="line"><a name="l00029"></a><span class="lineno"> 29</span> </div>
<div class="line"><a name="l00030"></a><span class="lineno"> 30</span> <span class="keyword">namespace </span>siscone{</div>
<div class="line"><a name="l00031"></a><span class="lineno"> 31</span> </div>
<div class="line"><a name="l00032"></a><span class="lineno"> 32</span> <span class="preprocessor">#define PHI_RANGE_MASK 0xFFFFFFFF</span></div>
<div class="line"><a name="l00033"></a><span class="lineno"> 33</span> <span class="preprocessor"></span></div>
<div class="line"><a name="l00034"></a><span class="lineno"> 34</span> <span class="comment">/*********************************************************</span></div>
<div class="line"><a name="l00035"></a><span class="lineno"> 35</span> <span class="comment"> * class Ceta_phi_range implementation *</span></div>
<div class="line"><a name="l00036"></a><span class="lineno"> 36</span> <span class="comment"> * class for holding a covering range in eta-phi *</span></div>
<div class="line"><a name="l00037"></a><span class="lineno"> 37</span> <span class="comment"> * *</span></div>
<div class="line"><a name="l00038"></a><span class="lineno"> 38</span> <span class="comment"> * This class deals with ranges in the eta-phi plane. It *</span></div>
<div class="line"><a name="l00039"></a><span class="lineno"> 39</span> <span class="comment"> * implements methods to test if two ranges overlap and *</span></div>
<div class="line"><a name="l00040"></a><span class="lineno"> 40</span> <span class="comment"> * to take the union of two overlapping intervals. *</span></div>
<div class="line"><a name="l00041"></a><span class="lineno"> 41</span> <span class="comment"> *********************************************************/</span></div>
<div class="line"><a name="l00042"></a><span class="lineno"> 42</span> </div>
<div class="line"><a name="l00043"></a><span class="lineno"> 43</span> <span class="keyword">using namespace </span>std;</div>
<div class="line"><a name="l00044"></a><span class="lineno"> 44</span> </div>
<div class="line"><a name="l00045"></a><span class="lineno"> 45</span> <span class="comment">// static member default init</span></div>
<div class="line"><a name="l00046"></a><span class="lineno"> 46</span> <span class="comment">//----------------------------</span></div>
<div class="line"><a name="l00047"></a><span class="lineno"> 47</span> <span class="keywordtype">double</span> <a class="code" href="classsiscone_1_1Ceta__phi__range.html#a91ade04c3634644750ac91767567700b" title="minimal value for eta">Ceta_phi_range::eta_min</a> = -100.0;</div>
<div class="line"><a name="l00048"></a><span class="lineno"> 48</span> <span class="keywordtype">double</span> <a class="code" href="classsiscone_1_1Ceta__phi__range.html#a67ccb1d3c4fab1489abb175e360f2c86" title="maximal value for eta">Ceta_phi_range::eta_max</a> = 100.0;</div>
<div class="line"><a name="l00049"></a><span class="lineno"> 49</span> </div>
<div class="line"><a name="l00050"></a><span class="lineno"> 50</span> <span class="comment">// default ctor</span></div>
<div class="line"><a name="l00051"></a><span class="lineno"> 51</span> <span class="comment">//--------------</span></div>
<div class="line"><a name="l00052"></a><span class="lineno"><a class="code" href="classsiscone_1_1Ceta__phi__range.html#adbf5cbebd39bd43b64af1703edc5854e"> 52</a></span> <a class="code" href="classsiscone_1_1Ceta__phi__range.html#adbf5cbebd39bd43b64af1703edc5854e" title="default ctor">Ceta_phi_range::Ceta_phi_range</a>(){</div>
<div class="line"><a name="l00053"></a><span class="lineno"> 53</span>  eta_range = 0;</div>
<div class="line"><a name="l00054"></a><span class="lineno"> 54</span>  phi_range = 0;</div>
<div class="line"><a name="l00055"></a><span class="lineno"> 55</span> }</div>
<div class="line"><a name="l00056"></a><span class="lineno"> 56</span> </div>
<div class="line"><a name="l00057"></a><span class="lineno"> 57</span> <span class="comment">// ctor with initialisation</span></div>
<div class="line"><a name="l00058"></a><span class="lineno"> 58</span> <span class="comment">// we initialise with a centre (in eta,phi) and a radius</span></div>
<div class="line"><a name="l00059"></a><span class="lineno"> 59</span> <span class="comment">// - c_eta eta coordinate of the centre</span></div>
<div class="line"><a name="l00060"></a><span class="lineno"> 60</span> <span class="comment">// - c_phi phi coordinate of the centre</span></div>
<div class="line"><a name="l00061"></a><span class="lineno"> 61</span> <span class="comment">// - R radius</span></div>
<div class="line"><a name="l00062"></a><span class="lineno"> 62</span> <span class="comment">//-------------------------------------------------------</span></div>
<div class="line"><a name="l00063"></a><span class="lineno"><a class="code" href="classsiscone_1_1Ceta__phi__range.html#ab9d2472b886a5d183442809d44d2cb5e"> 63</a></span> <a class="code" href="classsiscone_1_1Ceta__phi__range.html#adbf5cbebd39bd43b64af1703edc5854e" title="default ctor">Ceta_phi_range::Ceta_phi_range</a>(<span class="keywordtype">double</span> c_eta, <span class="keywordtype">double</span> c_phi, <span class="keywordtype">double</span> R){</div>
<div class="line"><a name="l00064"></a><span class="lineno"> 64</span>  <span class="comment">// determination of the eta range</span></div>
<div class="line"><a name="l00065"></a><span class="lineno"> 65</span>  <span class="comment">//-------------------------------</span></div>
<div class="line"><a name="l00066"></a><span class="lineno"> 66</span>  <span class="keywordtype">double</span> xmin = max(c_eta-R,eta_min+0.0001);</div>
<div class="line"><a name="l00067"></a><span class="lineno"> 67</span>  <span class="keywordtype">double</span> xmax = min(c_eta+R,eta_max-0.0001);</div>
<div class="line"><a name="l00068"></a><span class="lineno"> 68</span> </div>
<div class="line"><a name="l00069"></a><span class="lineno"> 69</span>  <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> cell_min = get_eta_cell(xmin);</div>
<div class="line"><a name="l00070"></a><span class="lineno"> 70</span>  <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> cell_max = get_eta_cell(xmax);</div>
<div class="line"><a name="l00071"></a><span class="lineno"> 71</span> </div>
<div class="line"><a name="l00072"></a><span class="lineno"> 72</span>  <span class="comment">// warning: if cell_max==2^31, 2*cell_max==0 hence, </span></div>
<div class="line"><a name="l00073"></a><span class="lineno"> 73</span>  <span class="comment">// even if the next formula is formally (2*cell_max-cell_min),</span></div>
<div class="line"><a name="l00074"></a><span class="lineno"> 74</span>  <span class="comment">// expressing it as (cell_max-cell_min)+cell_max is safe.</span></div>
<div class="line"><a name="l00075"></a><span class="lineno"> 75</span>  eta_range = (cell_max-cell_min)+cell_max;</div>
<div class="line"><a name="l00076"></a><span class="lineno"> 76</span> </div>
<div class="line"><a name="l00077"></a><span class="lineno"> 77</span>  <span class="comment">// determination of the phi range</span></div>
<div class="line"><a name="l00078"></a><span class="lineno"> 78</span>  <span class="comment">// !! taking care of periodicity !!</span></div>
<div class="line"><a name="l00079"></a><span class="lineno"> 79</span>  <span class="comment">//---------------------------------</span></div>
<div class="line"><a name="l00080"></a><span class="lineno"> 80</span>  xmin = phi_in_range(c_phi-R);</div>
<div class="line"><a name="l00081"></a><span class="lineno"> 81</span>  xmax = phi_in_range(c_phi+R);</div>
<div class="line"><a name="l00082"></a><span class="lineno"> 82</span> </div>
<div class="line"><a name="l00083"></a><span class="lineno"> 83</span>  cell_min = get_phi_cell(xmin);</div>
<div class="line"><a name="l00084"></a><span class="lineno"> 84</span>  cell_max = get_phi_cell(xmax);</div>
<div class="line"><a name="l00085"></a><span class="lineno"> 85</span> </div>
<div class="line"><a name="l00086"></a><span class="lineno"> 86</span>  <span class="comment">// Also, if the interval goes through pi, inversion is needed</span></div>
<div class="line"><a name="l00087"></a><span class="lineno"> 87</span>  <span class="keywordflow">if</span> (xmax>xmin)</div>
<div class="line"><a name="l00088"></a><span class="lineno"> 88</span>  phi_range = (cell_max-cell_min)+cell_max;</div>
<div class="line"><a name="l00089"></a><span class="lineno"> 89</span>  <span class="keywordflow">else</span> {</div>
<div class="line"><a name="l00090"></a><span class="lineno"> 90</span>  phi_range = (cell_min==cell_max) </div>
<div class="line"><a name="l00091"></a><span class="lineno"> 91</span>  ? PHI_RANGE_MASK</div>
<div class="line"><a name="l00092"></a><span class="lineno"> 92</span>  : ((PHI_RANGE_MASK^(cell_min-cell_max)) + cell_max);</div>
<div class="line"><a name="l00093"></a><span class="lineno"> 93</span>  }</div>
<div class="line"><a name="l00094"></a><span class="lineno"> 94</span> }</div>
<div class="line"><a name="l00095"></a><span class="lineno"> 95</span> </div>
<div class="line"><a name="l00096"></a><span class="lineno"> 96</span> <span class="comment">// assignment of range</span></div>
<div class="line"><a name="l00097"></a><span class="lineno"> 97</span> <span class="comment">// - r range to assign to current one</span></div>
<div class="line"><a name="l00098"></a><span class="lineno"> 98</span> <span class="comment">//---------------------------------------</span></div>
<div class="line"><a name="l00099"></a><span class="lineno"><a class="code" href="classsiscone_1_1Ceta__phi__range.html#aa1174dd81d42192271d6880cfdafff4f"> 99</a></span> <a class="code" href="classsiscone_1_1Ceta__phi__range.html" title="class for holding a covering range in eta-phi">Ceta_phi_range</a>& <a class="code" href="classsiscone_1_1Ceta__phi__range.html#aa1174dd81d42192271d6880cfdafff4f" title="assignment of range">Ceta_phi_range::operator = </a>(<span class="keyword">const</span> <a class="code" href="classsiscone_1_1Ceta__phi__range.html" title="class for holding a covering range in eta-phi">Ceta_phi_range</a> &r){</div>
<div class="line"><a name="l00100"></a><span class="lineno"> 100</span>  eta_range = r.<a class="code" href="classsiscone_1_1Ceta__phi__range.html#a0b945ebbe0fd2e8bd043fee02ab7bcb3" title="eta range as a binary coding of covered cells">eta_range</a>;</div>
<div class="line"><a name="l00101"></a><span class="lineno"> 101</span>  phi_range = r.<a class="code" href="classsiscone_1_1Ceta__phi__range.html#aeee6f7554e13e52b27c133c163b9e2da" title="phi range as a binary coding of covered cells">phi_range</a>;</div>
<div class="line"><a name="l00102"></a><span class="lineno"> 102</span> </div>
<div class="line"><a name="l00103"></a><span class="lineno"> 103</span>  <span class="keywordflow">return</span> *<span class="keyword">this</span>;</div>
<div class="line"><a name="l00104"></a><span class="lineno"> 104</span> }</div>
<div class="line"><a name="l00105"></a><span class="lineno"> 105</span> </div>
<div class="line"><a name="l00106"></a><span class="lineno"> 106</span> <span class="comment">// add a particle to the range</span></div>
<div class="line"><a name="l00107"></a><span class="lineno"> 107</span> <span class="comment">// - eta eta coordinate of the particle</span></div>
<div class="line"><a name="l00108"></a><span class="lineno"> 108</span> <span class="comment">// - phi phi coordinate of the particle</span></div>
<div class="line"><a name="l00109"></a><span class="lineno"> 109</span> <span class="comment">// \return 0 on success, 1 on error</span></div>
<div class="line"><a name="l00110"></a><span class="lineno"> 110</span> <span class="comment">//----------------------------------------</span></div>
<div class="line"><a name="l00111"></a><span class="lineno"><a class="code" href="classsiscone_1_1Ceta__phi__range.html#a90a689538d155ec7a6c2fe79bb240f64"> 111</a></span> <span class="keywordtype">int</span> <a class="code" href="classsiscone_1_1Ceta__phi__range.html#a90a689538d155ec7a6c2fe79bb240f64" title="add a particle to the range">Ceta_phi_range::add_particle</a>(<span class="keyword">const</span> <span class="keywordtype">double</span> eta, <span class="keyword">const</span> <span class="keywordtype">double</span> phi){</div>
<div class="line"><a name="l00112"></a><span class="lineno"> 112</span>  <span class="comment">// deal with the eta coordinate</span></div>
<div class="line"><a name="l00113"></a><span class="lineno"> 113</span>  eta_range |= get_eta_cell(eta);</div>
<div class="line"><a name="l00114"></a><span class="lineno"> 114</span> </div>
<div class="line"><a name="l00115"></a><span class="lineno"> 115</span>  <span class="comment">// deal with the phi coordinate</span></div>
<div class="line"><a name="l00116"></a><span class="lineno"> 116</span>  phi_range |= get_phi_cell(phi);</div>
<div class="line"><a name="l00117"></a><span class="lineno"> 117</span> </div>
<div class="line"><a name="l00118"></a><span class="lineno"> 118</span>  <span class="keywordflow">return</span> 0;</div>
<div class="line"><a name="l00119"></a><span class="lineno"> 119</span> }</div>
<div class="line"><a name="l00120"></a><span class="lineno"> 120</span> </div>
<div class="line"><a name="l00121"></a><span class="lineno"> 121</span> </div>
<div class="line"><a name="l00122"></a><span class="lineno"> 122</span> <span class="comment">// test overlap</span></div>
<div class="line"><a name="l00123"></a><span class="lineno"> 123</span> <span class="comment">// - r1 first range</span></div>
<div class="line"><a name="l00124"></a><span class="lineno"> 124</span> <span class="comment">// - r2 second range</span></div>
<div class="line"><a name="l00125"></a><span class="lineno"> 125</span> <span class="comment">// return true if overlap, false otherwise.</span></div>
<div class="line"><a name="l00126"></a><span class="lineno"> 126</span> <span class="comment">//------------------------------------------</span></div>
<div class="line"><a name="l00127"></a><span class="lineno"> 127</span> <span class="keywordtype">bool</span> is_range_overlap(<span class="keyword">const</span> <a class="code" href="classsiscone_1_1Ceta__phi__range.html" title="class for holding a covering range in eta-phi">Ceta_phi_range</a> &r1, <span class="keyword">const</span> <a class="code" href="classsiscone_1_1Ceta__phi__range.html" title="class for holding a covering range in eta-phi">Ceta_phi_range</a> &r2){</div>
<div class="line"><a name="l00128"></a><span class="lineno"> 128</span>  <span class="comment">// check overlap in eta AND phi</span></div>
<div class="line"><a name="l00129"></a><span class="lineno"> 129</span>  <span class="keywordflow">return</span> ((r1.<a class="code" href="classsiscone_1_1Ceta__phi__range.html#a0b945ebbe0fd2e8bd043fee02ab7bcb3" title="eta range as a binary coding of covered cells">eta_range</a> & r2.<a class="code" href="classsiscone_1_1Ceta__phi__range.html#a0b945ebbe0fd2e8bd043fee02ab7bcb3" title="eta range as a binary coding of covered cells">eta_range</a>) && (r1.<a class="code" href="classsiscone_1_1Ceta__phi__range.html#aeee6f7554e13e52b27c133c163b9e2da" title="phi range as a binary coding of covered cells">phi_range</a> & r2.<a class="code" href="classsiscone_1_1Ceta__phi__range.html#aeee6f7554e13e52b27c133c163b9e2da" title="phi range as a binary coding of covered cells">phi_range</a>));</div>
<div class="line"><a name="l00130"></a><span class="lineno"> 130</span> }</div>
<div class="line"><a name="l00131"></a><span class="lineno"> 131</span> </div>
<div class="line"><a name="l00132"></a><span class="lineno"> 132</span> <span class="comment">// compute union</span></div>
<div class="line"><a name="l00133"></a><span class="lineno"> 133</span> <span class="comment">// Note: we assume that the two intervals overlap</span></div>
<div class="line"><a name="l00134"></a><span class="lineno"> 134</span> <span class="comment">// - r1 first range</span></div>
<div class="line"><a name="l00135"></a><span class="lineno"> 135</span> <span class="comment">// - r2 second range</span></div>
<div class="line"><a name="l00136"></a><span class="lineno"> 136</span> <span class="comment">// \return union of the two ranges</span></div>
<div class="line"><a name="l00137"></a><span class="lineno"> 137</span> <span class="comment">//------------------------------------------</span></div>
<div class="line"><a name="l00138"></a><span class="lineno"> 138</span> <span class="keyword">const</span> Ceta_phi_range range_union (<span class="keyword">const</span> Ceta_phi_range &r1, <span class="keyword">const</span> Ceta_phi_range &r2){</div>
<div class="line"><a name="l00139"></a><span class="lineno"> 139</span>  Ceta_phi_range tmp;</div>
<div class="line"><a name="l00140"></a><span class="lineno"> 140</span> </div>
<div class="line"><a name="l00141"></a><span class="lineno"> 141</span>  <span class="comment">// compute union in eta</span></div>
<div class="line"><a name="l00142"></a><span class="lineno"> 142</span>  tmp.<a class="code" href="classsiscone_1_1Ceta__phi__range.html#a0b945ebbe0fd2e8bd043fee02ab7bcb3" title="eta range as a binary coding of covered cells">eta_range</a> = r1.eta_range | r2.eta_range;</div>
<div class="line"><a name="l00143"></a><span class="lineno"> 143</span> </div>
<div class="line"><a name="l00144"></a><span class="lineno"> 144</span>  <span class="comment">// compute union in phi</span></div>
<div class="line"><a name="l00145"></a><span class="lineno"> 145</span>  tmp.phi_range = r1.phi_range | r2.phi_range;</div>
<div class="line"><a name="l00146"></a><span class="lineno"> 146</span> </div>
<div class="line"><a name="l00147"></a><span class="lineno"> 147</span>  <span class="keywordflow">return</span> tmp;</div>
<div class="line"><a name="l00148"></a><span class="lineno"> 148</span> }</div>
<div class="line"><a name="l00149"></a><span class="lineno"> 149</span> </div>
<div class="line"><a name="l00150"></a><span class="lineno"> 150</span> }</div>
</div><!-- fragment --></div><!-- contents -->
<address style="align: right;"><small>
The <a href="http://projects.hepforge.org/siscone" target="_top">
SISCone</a> project has been developed by
<a href="http://www.lpthe.jussieu.fr/~salam" target="_top">
Gavin Salam</a> and
<a href="http://www.theo.phys.ulg.ac.be/~soyez" target="_top">
Gregory Soyez</a><br>
Documentation generated on Mon May 6 2013 11:30:35 for SISCone by
<a href="http://www.doxygen.org/index.html">Doxygen</a> 1.8.3.1
</small>
</address>
</body>
</html>
|