#include <DalitzArea.h>
Definition at line 21 of file DalitzArea.h.
◆ DalitzArea() [1/3]
DalitzArea::DalitzArea |
( |
| ) |
|
Definition at line 16 of file DalitzArea.cpp.
void makeCoordinateMap() const
std::map< DalitzCoordKey, DalitzCoordinate * > _coords
◆ DalitzArea() [2/3]
Definition at line 63 of file DalitzArea.cpp.
78 cout <<
"DalitzArea::DalitzArea:" 79 <<
"\n Sorry, can only deal with 3 and 4 body decays. " 80 <<
"\n Please improve me so I can deal with decays like this: " 82 cout <<
" I'll crash now." << endl;
83 throw "DalitzArea: \"I'm no superman\"";
void makeCoordinateMap() const
std::map< DalitzCoordKey, DalitzCoordinate * > _coords
◆ DalitzArea() [3/3]
DalitzArea::DalitzArea |
( |
const DalitzArea & |
other | ) |
|
Definition at line 30 of file DalitzArea.cpp.
void makeCoordinateMap() const
std::map< DalitzCoordKey, DalitzCoordinate * > _coords
◆ ~DalitzArea()
DalitzArea::~DalitzArea |
( |
| ) |
|
|
virtual |
◆ compatiblePattern()
Definition at line 185 of file DalitzArea.cpp.
188 for(
unsigned int i=0; i <
_pat.
size(); i++){
189 if( abs(
_pat[i]) != abs(p[i]))
return false;
unsigned int size() const
◆ encloseInPhaseSpaceArea()
void DalitzArea::encloseInPhaseSpaceArea |
( |
double |
safetyFactor = 1.0 | ) |
|
Definition at line 147 of file DalitzArea.cpp.
149 for(map<DalitzCoordKey, DalitzCoordinate*>::const_iterator
152 double psMin =
_pat.
sijMin(it->first)/safetyFactor;
153 double psMax =
_pat.
sijMax(it->first)*safetyFactor;
155 if(it->second->min() < psMin){
156 it->second->setMin(psMin);
158 if(it->second->max() > psMax){
159 it->second->setMax(psMax);
double sijMax(const MINT::PolymorphVector< int > &indices) const
void makeCoordinateMap() const
std::map< DalitzCoordKey, DalitzCoordinate * > _coords
double sijMin(const MINT::PolymorphVector< int > &indices) const
◆ isInside() [1/3]
Definition at line 214 of file DalitzArea.cpp.
221 for(map<DalitzCoordKey, DalitzCoordinate* >::const_iterator
224 double val = evt.
sij(it->first);
225 if(val < it->
second->min() || val >= it->second->max())
return false;
virtual double sij(const MINT::PolymorphVector< int > &indices) const =0
void makeCoordinateMap() const
bool compatiblePattern(const DalitzEventPattern &p) const
std::map< DalitzCoordKey, DalitzCoordinate * > _coords
static const double second
virtual const DalitzEventPattern & eventPattern() const =0
◆ isInside() [2/3]
Definition at line 230 of file DalitzArea.cpp.
234 double val = dc.
val();
void makeCoordinateMap() const
std::map< DalitzCoordKey, DalitzCoordinate * > _coords
◆ isInside() [3/3]
bool DalitzArea::isInside |
( |
const std::vector< DalitzCoordinate > & |
dcList | ) |
const |
Definition at line 241 of file DalitzArea.cpp.
242 for(
unsigned int i=0; i < dcList.size(); i++){
bool isInside(const IDalitzEvent &evt) const
◆ make3Event()
Definition at line 328 of file DalitzArea.cpp.
330 cout <<
" ERROR DalitzArea::make3Event(): I don't work, yet. " 331 <<
"\n Please improve me. Sorry, will have to crash, now" 333 throw "no making 3 body events in DalitzArea, yet";
◆ make4Event()
Definition at line 349 of file DalitzArea.cpp.
MINT::counted_ptr< DalitzEvent > makeEventForOwner() const
◆ makeCoordinateMap()
void DalitzArea::makeCoordinateMap |
( |
| ) |
const |
|
private |
Definition at line 110 of file DalitzArea.cpp.
std::map< DalitzCoordKey, DalitzCoordinate * > _coords
◆ makeEventForOwner() [1/2]
Definition at line 319 of file DalitzArea.cpp.
322 cout <<
"ERROR in DalitzArea::makeEvent() can only make events" 323 <<
" with 3 or 4 daughters. You want : " <<
_pat
MINT::counted_ptr< DalitzEvent > make3Event() const
MINT::counted_ptr< DalitzEvent > make4Event() const
◆ makeEventForOwner() [2/2]
counted_ptr< DalitzEvent > DalitzArea::makeEventForOwner |
( |
double |
scale0, |
|
|
double |
scale1, |
|
|
double |
scale2, |
|
|
double |
scale3, |
|
|
double |
scale4 |
|
) |
| const |
Definition at line 273 of file DalitzArea.cpp.
293 if(c4b.phaseSpaceFactor() <=0){
294 if(
false)cout <<
" for \n " 295 << t01 <<
"( " <<
_t01 <<
"), \n " 296 << s12 <<
"( " <<
_s12 <<
"), \n " 297 << s23 <<
"( " <<
_s23 <<
"), \n " 298 << s34 <<
"( " <<
_s34 <<
"), \n " 299 << t40 <<
"( " <<
_t40 <<
"), \n " 300 <<
" outside phase space!! " 306 cout <<
"WARNING DalitzArea::make4Event()" 307 <<
" making the event failed at 'new DalitzEvent(...)'" 308 <<
" this shouldn't really happen." 312 if(evt->phaseSpace() <= 0){
◆ makeMiMa()
void DalitzArea::makeMiMa |
( |
| ) |
|
|
private |
Definition at line 129 of file DalitzArea.cpp.
130 double safetyFactor=1;
double sijMax(const MINT::PolymorphVector< int > &indices) const
double sijMin(const MINT::PolymorphVector< int > &indices) const
void setMinMax(double min, double max)
◆ operator=()
Definition at line 49 of file DalitzArea.cpp.
void makeCoordinateMap() const
std::map< DalitzCoordKey, DalitzCoordinate * > _coords
◆ print()
void DalitzArea::print |
( |
std::ostream & |
os = std::cout | ) |
const |
Definition at line 452 of file DalitzArea.cpp.
454 os <<
"Area size: " <<
size();
455 for(std::map<DalitzCoordKey, DalitzCoordinate*>::const_iterator
459 os <<
"\n " << *(it->second);
void makeCoordinateMap() const
std::map< DalitzCoordKey, DalitzCoordinate * > _coords
◆ setAllLimitsToPhaseSpaceArea()
void DalitzArea::setAllLimitsToPhaseSpaceArea |
( |
double |
safetyFactor = 1.0 | ) |
|
Definition at line 165 of file DalitzArea.cpp.
167 for(map<DalitzCoordKey, DalitzCoordinate*>::const_iterator
170 double psMin =
_pat.
sijMin(it->first)/safetyFactor;
171 double psMax =
_pat.
sijMax(it->first)*safetyFactor;
173 it->second->setMin(psMin);
174 it->second->setMax(psMax);
double sijMax(const MINT::PolymorphVector< int > &indices) const
void makeCoordinateMap() const
std::map< DalitzCoordKey, DalitzCoordinate * > _coords
double sijMin(const MINT::PolymorphVector< int > &indices) const
◆ setCoordinate()
Definition at line 358 of file DalitzArea.cpp.
360 map<DalitzCoordKey, DalitzCoordinate*>::iterator it =
_coords.find(c);
362 cout <<
"ERROR: DalitzArea::setCoordinate failed to set coordinate " std::map< DalitzCoordKey, DalitzCoordinate * > _coords
◆ setPattern()
Definition at line 89 of file DalitzArea.cpp.
94 cout <<
"DalitzArea::DalitzArea:" 95 <<
"\n Sorry, can only deal with 3 or 4 body decays. " 96 <<
"\n Please improve me so I can deal with decays like this: " 98 cout <<
" I'll crash now." << endl;
99 throw "DalitzArea: \"I'm no superman\"";
void makeCoordinateMap() const
◆ setRnd()
bool DalitzArea::setRnd |
( |
TRandom * |
rnd = gRandom | ) |
|
◆ size()
double DalitzArea::size |
( |
| ) |
const |
Definition at line 251 of file DalitzArea.cpp.
262 for(map<DalitzCoordKey, DalitzCoordinate*>::const_iterator it =
_coords.begin();
267 p *= (it->second->max() - it->second->min());
void makeCoordinateMap() const
std::map< DalitzCoordKey, DalitzCoordinate * > _coords
unsigned int size() const
◆ split_in_all_dim_3body()
std::vector< DalitzArea > DalitzArea::split_in_all_dim_3body |
( |
int |
n = 2 | ) |
const |
|
private |
Definition at line 389 of file DalitzArea.cpp.
390 std::vector<DalitzArea> v;
395 std::vector<DalitzCoordinate> vs12 =
_s12.
split(n);
396 std::vector<DalitzCoordinate> vs23 =
_s23.
split(n);
398 for(
unsigned int i12 = 0; i12 < vs12.size(); i12++){
399 for(
unsigned int i23 = 0; i23 < vs23.size(); i23++){
402 na.setCoordinate(vs12[i12]);
403 na.setCoordinate(vs23[i23]);
std::vector< DalitzCoordinate > split(int n) const
◆ split_in_all_dim_4body()
std::vector< DalitzArea > DalitzArea::split_in_all_dim_4body |
( |
int |
n = 2 | ) |
const |
|
private |
Definition at line 411 of file DalitzArea.cpp.
414 std::vector<DalitzArea> v;
420 std::vector<DalitzCoordinate> vt01 =
_t01.
split(n);
421 std::vector<DalitzCoordinate> vs12 =
_s12.
split(n);
422 std::vector<DalitzCoordinate> vs23 =
_s23.
split(n);
423 std::vector<DalitzCoordinate> vs34 =
_s34.
split(n);
424 std::vector<DalitzCoordinate> vt40 =
_t40.
split(n);
426 for(
unsigned int i01 = 0; i01 < vt01.size(); i01++){
427 for(
unsigned int i12 = 0; i12 < vs12.size(); i12++){
428 for(
unsigned int i23 = 0; i23 < vs23.size(); i23++){
429 for(
unsigned int i34 = 0; i34 < vs34.size(); i34++){
430 for(
unsigned int i40 = 0; i40 < vt40.size(); i40++){
433 na.setCoordinate(vt01[i01]);
434 na.setCoordinate(vs12[i12]);
435 na.setCoordinate(vs23[i23]);
436 na.setCoordinate(vs34[i34]);
437 na.setCoordinate(vt40[i40]);
446 cout <<
"after splitting, n = " << v.size() << endl;
std::vector< DalitzCoordinate > split(int n) const
◆ split_in_all_dimensions()
std::vector< DalitzArea > DalitzArea::split_in_all_dimensions |
( |
int |
n = 2 | ) |
const |
Definition at line 371 of file DalitzArea.cpp.
372 std::vector<DalitzArea> v;
380 cout <<
"ERROR in DalitzArea::split_in_all_dimensions" 382 <<
"\n\t Won't split, will return original box." std::vector< DalitzArea > split_in_all_dim_4body(int n=2) const
std::vector< DalitzArea > split_in_all_dim_3body(int n=2) const
◆ _coords
◆ _madeCMap
bool DalitzArea::_madeCMap |
|
mutableprivate |
◆ _pat
◆ _rnd
TRandom* DalitzArea::_rnd |
|
private |
◆ _s12
◆ _s23
◆ _s34
◆ _t01
◆ _t40
The documentation for this class was generated from the following files: