evtgen is hosted by Hepforge, IPPP Durham
EvtGen  2.0.0
Monte Carlo generator of particle decays, in particular the weak decays of heavy flavour particles such as B mesons.
EvtAmpSubIndex.cpp
Go to the documentation of this file.
1 
2 /***********************************************************************
3 * Copyright 1998-2020 CERN for the benefit of the EvtGen authors *
4 * *
5 * This file is part of EvtGen. *
6 * *
7 * EvtGen is free software: you can redistribute it and/or modify *
8 * it under the terms of the GNU General Public License as published by *
9 * the Free Software Foundation, either version 3 of the License, or *
10 * (at your option) any later version. *
11 * *
12 * EvtGen is distributed in the hope that it will be useful, *
13 * but WITHOUT ANY WARRANTY; without even the implied warranty of *
14 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
15 * GNU General Public License for more details. *
16 * *
17 * You should have received a copy of the GNU General Public License *
18 * along with EvtGen. If not, see <https://www.gnu.org/licenses/>. *
19 ***********************************************************************/
20 
22 
24 #include "EvtGenBase/EvtPatches.hh"
25 
26 #include <vector>
27 using std::vector;
28 
29 EvtAmpSubIndex::EvtAmpSubIndex( EvtAmpIndex* ind, std::vector<int> sub ) :
30  _ind( ind ), _sub( sub ), _size( sub.size() ), _nstate( sub.size() )
31 {
32  int i;
33 
34  for ( i = 0; i < _size; i++ ) {
35  if ( i == 0 ) {
36  _nstate[i] = 1;
37  } else {
38  _nstate[i] = _nstate[i - 1] * _ind->_ind[sub[i - 1]];
39  }
40  }
41 }
42 
44 {
45  int i;
46  int ind = 0;
47 
48  for ( i = 0; i < _size; i++ ) {
49  ind += _ind->_state[_ind->_ind[i]] * _nstate[i];
50  }
51 
52  return ind;
53 }
EvtAmpSubIndex(EvtAmpIndex *ind, std::vector< int > sub)
std::vector< int > _nstate
EvtAmpIndex * _ind
std::vector< int > _state
Definition: EvtAmpIndex.hh:41
std::vector< int > _ind
Definition: EvtAmpIndex.hh:39