/* * Intensity.cpp * * Created on: Jan 24, 2012 * Author: Anastasia Karavdina */ #include "Intensity.h" Intensity::Intensity(list lAmpl) { cout<<"size of Ampl fo Intencity calc: "<::iterator it = _lAmpl.begin(); it != _lAmpl.end(); it++){ Amplitude curA =(*it); Chain ch = curA.GetChain(); double fmaxJ = ch.Jc(); if(maxJ curLya = ch.LyaFP(); for(int ci=0;ci coherent sum of amplitude 2(1,3) and 1(2,3) int tmpcode1,tmpcode2; bool calcAmpl=true; pair identpart(-1,-1);// identical particles in decay if(busy.size()==2){ if(lfpcode[busy[0]]==lfpcode[busy[1]]){//identical particles in decay identpart.first = busy[0]; identpart.second = busy[1]; } // cout<<"identpart.first="< nodouble (18,0);//TODO: this is only for 3 pi0 as f.s //cout<<"This combinations will participate in calculation:"< llfp,vector lfpcode){ vector lfp; for (list::iterator it = llfp.begin(); it != llfp.end(); it++) lfp.push_back((*it)); const int sizemj=_sizemj; const int sizelya=_sizelya; complex aCalc[sizemj][sizelya]; complex aCalc_conj[sizelya][sizemj]; vector allComb=Combinations(lfpcode); for (list::iterator it = _lAmpl.begin(); it != _lAmpl.end(); it++){ Amplitude *curA =&(*it); for(int i=0;i<=((allComb.size()/lfpcode.size())-1);i++){ vector tmpComb; tmpComb.insert(tmpComb.begin(),(allComb.begin()+i*lfpcode.size()),(allComb.begin()+(i+1)*lfpcode.size())); vector curlfp(lfp.size()); for(int ilv=0;ilv