using namespace std;
#include <stdlib.h>
#include <iostream>
#include "hhypPPEpEmXAlg.h"
#include "hypinfodef.h"
ClassImp(HHypPPEpEmXAlg)
HHypPPEpEmXAlg::HHypPPEpEmXAlg(Char_t *name_i, Option_t par[])
:HHypBaseAlgorithm(name_i,par)
{
filler = NULL;
filler4 = NULL;
filler4p1 = NULL;
filler4m1 = NULL;
filler4p2 = NULL;
filler4p1m1 = NULL;
filler4m2 = NULL;
}
HHypPPEpEmXAlg::~HHypPPEpEmXAlg()
{
if (filler)
delete filler;
if (filler4)
delete filler4;
if (filler4p1)
delete filler4p1;
if (filler4m1)
delete filler4m1;
if (filler4p2)
delete filler4p2;
if (filler4p1m1)
delete filler4p1m1;
if (filler4m2)
delete filler4m2;
}
Bool_t HHypPPEpEmXAlg::execute()
{
if( use_InclusiveFiller){
if(exitIdx!=ERROR_IDX) exitIdx = filler->execute();
else cerr << "HHypPEpEmXAlg::execute() : exitIdx = "<< exitIdx;
if (exitIdx > -1) return kTRUE;
return kFALSE;
}
exitIdx = filler4->execute();
if( use_4_1){
if(exitIdx==ERROR_IDX) exitIdx = filler4m1->execute();
if(exitIdx==ERROR_IDX) exitIdx = filler4p1->execute();
}
if( use_4_2){
if(exitIdx==ERROR_IDX) exitIdx = filler4m2->execute();
if(exitIdx==ERROR_IDX) exitIdx = filler4p1m1->execute();
if(exitIdx==ERROR_IDX) exitIdx = filler4p2->execute();
}
if (exitIdx > -1) return kTRUE;
return kFALSE;
}
Bool_t HHypPPEpEmXAlg::init()
{
Bool_t flag;
f=0;
miss_none=kFALSE;
miss_none = (GetOpt("miss_none") != NULL);
miss_gamma=kFALSE;
miss_gamma = (GetOpt("miss_gamma") != NULL);
miss_pi0=kFALSE;
miss_pi0 = (GetOpt("miss_pi0") != NULL);
use_InclusiveFiller = kFALSE;
use_InclusiveFiller = (GetOpt("use_InclusiveFiller") != NULL);
if( use_InclusiveFiller ){
filler = new HHypListFillerInclusive("filler", "filler");
filler->AddTrack(HPidPhysicsConstants::pid("p"));
filler->AddTrack(HPidPhysicsConstants::pid("p"));
filler->AddTrack(HPidPhysicsConstants::pid("e+"));
filler->AddTrack(HPidPhysicsConstants::pid("e-"));
flag = filler->init();
return flag;
}
use_4_1 = kFALSE;
use_4_1 = (GetOpt("ONEFAKE") != NULL);
use_4_2 = kFALSE;
use_4_2 = (GetOpt("TWOFAKES") != NULL);
filler4 = new HHypListFiller("filler4", "filler4");
filler4->SetExitList(exitList);
filler4->AddTrack(HPidPhysicsConstants::pid("p"));
filler4->AddTrack(HPidPhysicsConstants::pid("p"));
filler4->AddTrack(HPidPhysicsConstants::pid("e+"));
filler4->AddTrack(HPidPhysicsConstants::pid("e-"));
if(miss_gamma) filler4->AddOneMissing(HPidPhysicsConstants::pid("g"));
if(miss_pi0) filler4->AddOneMissing(HPidPhysicsConstants::pid("pi0"));
if(miss_none) filler4->AddOneMissing(HPidPhysicsConstants::pid("dummy"));
flag=filler4->init();
if(use_4_1){
cout << "HHypPPEpEmXAlg will use option ONEFAKE" << endl;
filler4p1 = new HHypListFiller("filler4p1", "filler4p1");
filler4p1->SetExitList(exitList);
filler4p1->AddTrack(HPidPhysicsConstants::pid("p"));
filler4p1->AddTrack(HPidPhysicsConstants::pid("p"));
filler4p1->AddTrack(HPidPhysicsConstants::pid("e+"));
filler4p1->AddTrack(HPidPhysicsConstants::pid("e-"));
filler4p1->AddTrack(HPidPhysicsConstants::fakePos());
if(miss_gamma) filler4p1->AddOneMissing(HPidPhysicsConstants::pid("g"));
if(miss_pi0) filler4p1->AddOneMissing(HPidPhysicsConstants::pid("pi0"));
if(miss_none) filler4p1->AddOneMissing(HPidPhysicsConstants::pid("dummy"));
flag &= filler4p1->init();
filler4m1 = new HHypListFiller("filler4m1", "filler4m1");
filler4m1->SetExitList(exitList);
filler4m1->AddTrack(HPidPhysicsConstants::pid("p"));
filler4m1->AddTrack(HPidPhysicsConstants::pid("p"));
filler4m1->AddTrack(HPidPhysicsConstants::pid("e+"));
filler4m1->AddTrack(HPidPhysicsConstants::pid("e-"));
filler4m1->AddTrack(HPidPhysicsConstants::fakeNeg());
if(miss_gamma) filler4m1->AddOneMissing(HPidPhysicsConstants::pid("g"));
if(miss_pi0) filler4m1->AddOneMissing(HPidPhysicsConstants::pid("pi0"));
if(miss_none) filler4m1->AddOneMissing(HPidPhysicsConstants::pid("dummy"));
flag &= filler4m1->init();
}
if(use_4_2){
cout << "HHypPPEpEmXAlg will use option TWOFAKES" << endl;
filler4p2 = new HHypListFiller("filler4p2", "filler4p2");
filler4p2->SetExitList(exitList);
filler4p2->AddTrack(HPidPhysicsConstants::pid("p"));
filler4p2->AddTrack(HPidPhysicsConstants::pid("p"));
filler4p2->AddTrack(HPidPhysicsConstants::pid("e+"));
filler4p2->AddTrack(HPidPhysicsConstants::pid("e-"));
filler4p2->AddTrack(HPidPhysicsConstants::fakePos());
filler4p2->AddTrack(HPidPhysicsConstants::fakePos());
if(miss_gamma) filler4p2->AddOneMissing(HPidPhysicsConstants::pid("g"));
if(miss_pi0) filler4p2->AddOneMissing(HPidPhysicsConstants::pid("pi0"));
if(miss_none) filler4p2->AddOneMissing(HPidPhysicsConstants::pid("dummy"));
flag &= filler4p2->init();
filler4p1m1 = new HHypListFiller("filler4p1m1", "filler4p1m1");
filler4p1m1->SetExitList(exitList);
filler4p1m1->AddTrack(HPidPhysicsConstants::pid("p"));
filler4p1m1->AddTrack(HPidPhysicsConstants::pid("p"));
filler4p1m1->AddTrack(HPidPhysicsConstants::pid("e+"));
filler4p1m1->AddTrack(HPidPhysicsConstants::pid("e-"));
filler4p1m1->AddTrack(HPidPhysicsConstants::fakePos());
filler4p1m1->AddTrack(HPidPhysicsConstants::fakeNeg());
if(miss_gamma) filler4p1m1->AddOneMissing(HPidPhysicsConstants::pid("g"));
if(miss_pi0) filler4p1m1->AddOneMissing(HPidPhysicsConstants::pid("pi0"));
if(miss_none) filler4p1m1->AddOneMissing(HPidPhysicsConstants::pid("dummy"));
flag &= filler4p1m1->init();
filler4m2 = new HHypListFiller("filler4m2", "filler4m2");
filler4m2->SetExitList(exitList);
filler4m2->AddTrack(HPidPhysicsConstants::pid("p"));
filler4m2->AddTrack(HPidPhysicsConstants::pid("p"));
filler4m2->AddTrack(HPidPhysicsConstants::pid("e+"));
filler4m2->AddTrack(HPidPhysicsConstants::pid("e-"));
filler4m2->AddTrack(HPidPhysicsConstants::fakeNeg());
filler4m2->AddTrack(HPidPhysicsConstants::fakeNeg());
if(miss_gamma) filler4m2->AddOneMissing(HPidPhysicsConstants::pid("g"));
if(miss_pi0) filler4m2->AddOneMissing(HPidPhysicsConstants::pid("pi0"));
if(miss_none) filler4m2->AddOneMissing(HPidPhysicsConstants::pid("dummy"));
flag &= filler4m2->init();
}
return flag;
}
Bool_t HHypPPEpEmXAlg::reinit()
{
return kTRUE;
}
Bool_t HHypPPEpEmXAlg::finalize()
{
if(filler4) filler4->finalize();
if(filler4m1) filler4m1->finalize();
if(filler4p1) filler4p1->finalize();
if(filler4m2) filler4m2->finalize();
if(filler4p1m1) filler4p1m1->finalize();
if(filler4p2) filler4p2->finalize();
if(f){
f->Write();
f->Close();
delete f;
f=0;
}
return kTRUE;
}
Last change: Sat May 22 12:57:57 2010
Last generated: 2010-05-22 12:57
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.