MURE
Loading...
Searching...
No Matches
MureGroupBin.hxx
Go to the documentation of this file.
1/*
2 This file is part of MURE,
3 Copyright (C) 2007-2021 MURE developers.
4
5 MURE is free software: you can redistribute it and/or modify
6 it under the terms of the GNU Lesser General Public License as published by
7 the Free Software Foundation, either version 3 of the License, or
8 (at your option) any later version.
9
10 MURE is distributed in the hope that it will be useful,
11 but WITHOUT ANY WARRANTY; without even the implied warranty of
12 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 GNU Lesser General Public License for more details.
14
15 You should have received a copy of the GNU Lesser General Public License
16 along with MURE. If not, see <http://www.gnu.org/licenses/>.
17*/
18
19#ifndef _MUREGROUPBIN_HXX_
20#define _MUREGROUPBIN_HXX_
21
22#include <vector>
23#include <iosfwd>
24#include <string>
25
26using namespace std;
27
28#include "MureTallyBin.hxx"
29#include "Shape.hxx"
30#include "Reaction.hxx"
31#include "Cell.hxx"
32#include "PinCell.hxx"
33#include "MCSource.hxx"
34
35class Cell;
36class PinCell;
43
58{
59 public:
60 MureGroupBin(const MureGroupBin &b);
61 MureGroupBin();
62 MureGroupBin(Cell *C);
63 MureGroupBin(PinCell *C, int layeridx);
65 MureGroupBin(MureTallyBin *theTallyBin);
66 MureGroupBin(int universe);
67 MureTallyBin *Clone() override
68 {
69 return new MureGroupBin(*this);
70 }
71 ~MureGroupBin() override;
72
73 bool IsGroupBin() override
74 {
75 return 1;
76 }
77 void Add(Cell *C);
78 void Add(PinCell *C, int layeridx);
79 void Add(Shape_ptr S);
80 void Add(MureTallyBin *theTallyBin);
81 void Add(int universe);
82 string Print(int BeforeRparenthesis = 0) override;
83 bool IsInBin(int num) override;
84 bool IsInBin(Cell *C) override;
85 bool IsInBin(Shape_ptr S) override;
86 double RescanVolume() override;
87 void UpdateTallyBinVolume() override;
88
89 protected:
90
91 vector < MureTallyBin *> fBin;
92};
93
94
95
96#endif
Header file for Cell class.
Header file for Monte-Carlo Source abstract class.
Header file for MureTallyBin abstract class.
Header file for PinCell class.
Header file for Shape class and Shape_ptr type.
A Cell is composed from a Shape and a Material.
Definition Cell.hxx:84
Define group cell or surface bin.
Definition MureGroupBin.hxx:58
MureTallyBin * Clone() override
The "Virtual Copy Constructor".
Definition MureGroupBin.hxx:67
void Add(Cell *C)
Add a Cell to a Cell type GroupBin.
Definition MureGroupBin.cxx:101
void UpdateTallyBinVolume() override
Reread all bins and assign necessary volume.
Definition MureGroupBin.cxx:323
MureGroupBin()
default constructor.
Definition MureGroupBin.cxx:45
string Print(int BeforeRparenthesis=0) override
Print the GroupBin (dummy)
Definition MureGroupBin.cxx:286
vector< MureTallyBin * > fBin
the TallyBin vector
Definition MureGroupBin.hxx:91
bool IsInBin(int num) override
whether or not the universe "num" is in the bin
Definition MureGroupBin.cxx:296
bool IsGroupBin() override
Definition MureGroupBin.hxx:73
double RescanVolume() override
Reread all bins and assign necessary volume when known.
Definition MureGroupBin.cxx:336
~MureGroupBin() override
Destructor.
Definition MureGroupBin.cxx:84
Define a general Tally Bin.
Definition MureTallyBin.hxx:62
PinCell class allows to create cylindrical cell set included as Matrioshka.
Definition PinCell.hxx:53
the namespace of the Standard C++

MURE Project, documentation generated by Doxygen 1.9.7 - Fri Jan 19 2024