using namespace std;
#include <stdlib.h>
#include <iostream>
#include "hhypPPipAlg.h"
#include "hypinfodef.h"
ClassImp(HHypPPipAlg)
HHypPPipAlg::HHypPPipAlg(Char_t *name_i, Option_t par[])
:HHypBaseAlgorithm(name_i,par)
{
fillerInclusive = NULL;
filler2 = NULL;
filler2p1 = NULL;
filler2m1 = NULL;
filler2p2 = NULL;
filler2p1m1 = NULL;
filler2m2 = NULL;
}
HHypPPipAlg::~HHypPPipAlg()
{
if (fillerInclusive)
delete fillerInclusive;
if (filler2)
delete filler2;
if (filler2p1)
delete filler2p1;
if (filler2m1)
delete filler2m1;
if (filler2p2)
delete filler2p2;
if (filler2p1m1)
delete filler2p1m1;
if (filler2m2)
delete filler2m2;
}
Bool_t HHypPPipAlg::execute()
{
if( use_InclusiveFiller){
if(exitIdx!=ERROR_IDX) exitIdx = fillerInclusive->execute();
else cerr<<" HHypPPipAlg::execute()::exitIdx : "<< exitIdx << endl;
if (exitIdx > -1) return kTRUE;
return kFALSE;
}
exitIdx = filler2->execute();
if( use_2_1){
if(exitIdx==ERROR_IDX) exitIdx = filler2m1->execute();
if(exitIdx==ERROR_IDX) exitIdx = filler2p1->execute();
}
if( use_2_2){
if(exitIdx==ERROR_IDX) exitIdx = filler2m2->execute();
if(exitIdx==ERROR_IDX) exitIdx = filler2p1m1->execute();
if(exitIdx==ERROR_IDX) exitIdx = filler2p2->execute();
}
if (exitIdx > -1) return kTRUE;
return kFALSE;
}
Bool_t HHypPPipAlg::init()
{
Bool_t flag;
use_2_1 = kFALSE;
use_2_1 = (GetOpt("ONEFAKE") != NULL);
use_2_2 = kFALSE;
use_2_2 = (GetOpt("TWOFAKES") != NULL);
use_InclusiveFiller = kFALSE;
use_InclusiveFiller = (GetOpt("use_InclusiveFiller") != NULL);
filler2 = new HHypListFiller("filler2", "filler2");
filler2->SetExitList(exitList);
filler2->AddTrack(HPidPhysicsConstants::pid("p"));
filler2->AddTrack(HPidPhysicsConstants::pid("pi+"));
flag=filler2->init();
if(use_InclusiveFiller)
{
fillerInclusive = new HHypListFillerInclusive("fillerInclusive", "fillerInclusive");
fillerInclusive->SetExitList(exitList);
fillerInclusive->AddTrack(HPidPhysicsConstants::pid("p"));
fillerInclusive->AddTrack(HPidPhysicsConstants::pid("pi+"));
flag=fillerInclusive->init();
}
if(use_2_1){
cout << "HHypPPipAlg will use option ONEFAKE" << endl;
filler2p1 = new HHypListFiller("filler2p1", "filler2p1");
filler2p1->SetExitList(exitList);
filler2p1->AddTrack(HPidPhysicsConstants::pid("p"));
filler2p1->AddTrack(HPidPhysicsConstants::pid("pi+"));
filler2p1->AddTrack(HPidPhysicsConstants::fakePos());
flag &= filler2p1->init();
filler2m1 = new HHypListFiller("filler2m1", "filler2m1");
filler2m1->SetExitList(exitList);
filler2m1->AddTrack(HPidPhysicsConstants::pid("p"));
filler2m1->AddTrack(HPidPhysicsConstants::pid("pi+"));
filler2m1->AddTrack(HPidPhysicsConstants::fakeNeg());
flag &= filler2m1->init();
}
if(use_2_2){
cout << "HHypPPipAlg will use option TWOFAKES" << endl;
filler2p2 = new HHypListFiller("filler2p2", "filler2p2");
filler2p2->SetExitList(exitList);
filler2p2->AddTrack(HPidPhysicsConstants::pid("p"));
filler2p2->AddTrack(HPidPhysicsConstants::pid("pi+"));
filler2p2->AddTrack(HPidPhysicsConstants::fakePos());
filler2p2->AddTrack(HPidPhysicsConstants::fakePos());
flag &= filler2p2->init();
filler2p1m1 = new HHypListFiller("filler2p1m1", "filler2p1m1");
filler2p1m1->SetExitList(exitList);
filler2p1m1->AddTrack(HPidPhysicsConstants::pid("p"));
filler2p1m1->AddTrack(HPidPhysicsConstants::pid("pi+"));
filler2p1m1->AddTrack(HPidPhysicsConstants::fakePos());
filler2p1m1->AddTrack(HPidPhysicsConstants::fakeNeg());
flag &= filler2p1m1->init();
filler2m2 = new HHypListFiller("filler2m2", "filler2m2");
filler2m2->SetExitList(exitList);
filler2m2->AddTrack(HPidPhysicsConstants::pid("p"));
filler2m2->AddTrack(HPidPhysicsConstants::pid("pi+"));
filler2m2->AddTrack(HPidPhysicsConstants::fakeNeg());
filler2m2->AddTrack(HPidPhysicsConstants::fakeNeg());
flag &= filler2m2->init();
}
return flag;
}
Bool_t HHypPPipAlg::reinit()
{
return kTRUE;
}
Bool_t HHypPPipAlg::finalize()
{
return kTRUE;
}
Last change: Sat May 22 12:58:04 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.