using namespace std;
#include <stdlib.h>
#include <iostream>
#include "hhypPPPipPimGammaAlg.h"
#include "hypinfodef.h"
ClassImp(HHypPPPipPimGammaAlg)
HHypPPPipPimGammaAlg::HHypPPPipPimGammaAlg(Char_t *name_i, Option_t par[])
:HHypBaseAlgorithm(name_i,par)
{
}
HHypPPPipPimGammaAlg::~HHypPPPipPimGammaAlg()
{
}
Bool_t HHypPPPipPimGammaAlg::execute()
{
if (!beam) {
cerr << algoName << " needs beam particle! " << endl;
return kFALSE;
}
mylist->CombIteratorReset();
while (mylist->CombIterator()) {
TLorentzVector proton1 = mylist->getTLorentzVector("p", 1);
TLorentzVector proton2 = mylist->getTLorentzVector("p", 2);
TLorentzVector pip = mylist->getTLorentzVector("pi+", 1);
TLorentzVector pim = mylist->getTLorentzVector("pi-", 1);
Double_t t1 = 0;
Double_t pt = 0;
Double_t pl = 0;
if (mylist->getIterStatus() == kTRUE) {
TLorentzVector pp_miss = (*beam) - (proton1 + proton2);
TLorentzVector pippim_invmass = (pip + pim);
TLorentzVector miss4 = (*beam) - (proton1 + proton2 + pip + pim);
if (miss4.M2() > 6000 || miss4.M2() < -6000)
mylist->removeComb();
else {
miss4.Boost(0.0, 0.0, -(*beam).Beta() );
pt= miss4.Pt();
pl= miss4.Pz();
t1 = ( (pt*pt)/2 ) + ( (pl-26)*(pl-26) );
if (t1 < 4500)
mylist->removeComb();
}
}
}
if (exitIdx > -1)
return kTRUE;
return kFALSE;
}
Bool_t HHypPPPipPimGammaAlg::init()
{
return kTRUE;
}
Bool_t HHypPPPipPimGammaAlg::reinit()
{
return kTRUE;
}
Bool_t HHypPPPipPimGammaAlg::finalize()
{
return kTRUE;
}
Last change: Sat May 22 12:58:00 2010
Last generated: 2010-05-22 12:58
This page has been automatically generated. If you have any comments or suggestions about the page layout send a mail to ROOT support, or contact the developers with any questions or problems regarding ROOT.