AmpTools
NormIntInterfaceMPI.h
Go to the documentation of this file.
1
#if !defined(NORMINTINTERFACEMPI)
2
#define NORMINTINTERFACEMPI
3
4
//******************************************************************************
5
// This file is part of AmpTools, a package for performing Amplitude Analysis
6
//
7
// Copyright Trustees of Indiana University 2010, all rights reserved
8
//
9
// This software written by Matthew Shepherd, Ryan Mitchell, and
10
// Hrayr Matevosyan at Indiana University, Bloomington
11
//
12
// Redistribution and use in source and binary forms, with or without
13
// modification, are permitted provided that the following conditions
14
// are met:
15
// 1. Redistributions of source code must retain the above copyright
16
// notice and author attribution, this list of conditions and the
17
// following disclaimer.
18
// 2. Redistributions in binary form must reproduce the above copyright
19
// notice and author attribution, this list of conditions and the
20
// following disclaimer in the documentation and/or other materials
21
// provided with the distribution.
22
// 3. Neither the name of the University nor the names of its contributors
23
// may be used to endorse or promote products derived from this software
24
// without specific prior written permission.
25
//
26
// Creation of derivative forms of this software for commercial
27
// utilization may be subject to restriction; written permission may be
28
// obtained from the Trustees of Indiana University.
29
//
30
// INDIANA UNIVERSITY AND THE AUTHORS MAKE NO REPRESENTATIONS OR WARRANTIES,
31
// EXPRESS OR IMPLIED. By way of example, but not limitation, INDIANA
32
// UNIVERSITY MAKES NO REPRESENTATIONS OR WARRANTIES OF MERCANTABILITY OR
33
// FITNESS FOR ANY PARTICULAR PURPOSE OR THAT THE USE OF THIS SOFTWARE OR
34
// DOCUMENTATION WILL NOT INFRINGE ANY PATENTS, COPYRIGHTS, TRADEMARKS,
35
// OR OTHER RIGHTS. Neither Indiana University nor the authors shall be
36
// held liable for any liability with respect to any claim by the user or
37
// any other party arising from use of the program.
38
//******************************************************************************
39
40
#include "
IUAmpTools/NormIntInterface.h
"
41
42
class
NormIntInterfaceMPI
:
public
NormIntInterface
43
{
44
45
public
:
46
47
enum
IntType
{
kNormInt
,
kAmpInt
};
48
49
NormIntInterfaceMPI
(
const
string
& normIntFile );
50
NormIntInterfaceMPI
(
DataReader
* genMCData,
DataReader
* accMCData,
51
const
IntensityManager
&
intenManager
);
52
53
~NormIntInterfaceMPI
();
54
55
// override these methods so that we can trigger a parallel recompuation
56
// of normalization integrals in the case that a parameter has changed
57
58
complex< double >
normInt
(
string
amp,
string
conjAmp,
bool
forceUseCache =
false
)
const
;
59
void
forceCacheUpdate
(
bool
normIntOnly =
false
)
const
;
60
61
private
:
62
63
void
setupMPI();
64
void
sumIntegrals(
IntType
type )
const
;
65
66
bool
m_mpiSetup;
67
68
int
m_rank;
69
int
m_numProc;
70
bool
m_isMaster;
71
};
72
73
#endif
IntensityManager
Definition:
IntensityManager.h:53
NormIntInterfaceMPI::kAmpInt
Definition:
NormIntInterfaceMPI.h:47
DataReader
Definition:
DataReader.h:57
NormIntInterface::intenManager
const IntensityManager * intenManager() const
Definition:
NormIntInterface.h:100
NormIntInterfaceMPI::normInt
complex< double > normInt(string amp, string conjAmp, bool forceUseCache=false) const
Definition:
NormIntInterfaceMPI.cc:66
NormIntInterfaceMPI::~NormIntInterfaceMPI
~NormIntInterfaceMPI()
Definition:
NormIntInterfaceMPI.cc:61
NormIntInterfaceMPI::forceCacheUpdate
void forceCacheUpdate(bool normIntOnly=false) const
Definition:
NormIntInterfaceMPI.cc:80
NormIntInterface.h
NormIntInterface
Definition:
NormIntInterface.h:54
NormIntInterfaceMPI::kNormInt
Definition:
NormIntInterfaceMPI.h:47
NormIntInterfaceMPI
Definition:
NormIntInterfaceMPI.h:42
NormIntInterfaceMPI::NormIntInterfaceMPI
NormIntInterfaceMPI(const string &normIntFile)
Definition:
NormIntInterfaceMPI.cc:57
NormIntInterfaceMPI::IntType
IntType
Definition:
NormIntInterfaceMPI.h:47
AmpTools
IUAmpToolsMPI
NormIntInterfaceMPI.h
Generated on Sun May 7 2017 06:12:49 for AmpTools by
1.8.13