33 #include "TDatabasePDG.h" 
   34 #include "TParticlePDG.h" 
   72     fParticlePDG=TDatabasePDG::Instance()->GetParticle(pdgType.c_str());
 
  101     fParticlePDG=TDatabasePDG::Instance()->GetParticle(pdgcode);
 
  122   fParticlePDG=TDatabasePDG::Instance()->GetParticle(pdgType.c_str());
 
  129   fParticlePDG=TDatabasePDG::Instance()->GetParticle(pdgcode);
 
  136   fDaughterPDG.push_back(TDatabasePDG::Instance()->GetParticle(dtype.c_str()));
 
  143   fDaughterPDG.push_back(TDatabasePDG::Instance()->GetParticle(pdgcode));
 
  170   cout <<
"]("<<
fName<<
")";
 
  246       for (
int i=0; 
i<3; 
i++) {
 
  251       if (lp[0]!=lp[1] && lp[1]!=lp[2] && lp[0]!=lp[2]) {
 
  253         tmpL.
Combine(fDList[0],fDList[1]);
 
  257       else if (lp[0]!=lp[1] || lp[1]!=lp[2] || lp[0]!=lp[2]) {
 
  259         if (lp[0]==lp[1] && lp[0]!=lp[2]) {id1=0; id2=2;}
 
  260         if (lp[0]==lp[2] && lp[0]!=lp[1]) {id1=0; id2=1;}
 
  261         if (lp[1]==lp[2] && lp[0]!=lp[1]) {id1=1; id2=0;}
 
  264         if (id1!=-1 && id2!=-1) {
 
  266           tmpL.
Combine(fDList[id1],fDList[id1]);
 
  289         for (Int_t comb_i=0; comb_i<endpos; ++comb_i) {
 
  290           for (Int_t comb_j=comb_i+1; comb_j<endpos; ++comb_j) {
 
  291             for (Int_t comb_k=comb_j+1; comb_k<endpos; ++comb_k) {
 
  292               if (    !l1[comb_i]->Overlaps( l1[comb_j] )
 
  293                       && !l1[comb_j]->Overlaps( l1[comb_k] )
 
  294                       && !l1[comb_i]->Overlaps( l1[comb_k] )  ) {
 
  295                 vl=l1[comb_i]->P4()+l1[comb_j]->P4()+l1[comb_k]->P4();
 
  296                 charge=l1[comb_i]->Charge()+l1[comb_j]->Charge()+l1[comb_k]->Charge();
 
  301                   c.
SetMarker(l1[comb_i]->GetMarker(0)|l1[comb_j]->GetMarker(0)|l1[comb_k]->GetMarker(0),0);
 
  302                   c.
SetMarker(l1[comb_i]->GetMarker(1)|l1[comb_j]->GetMarker(1)|l1[comb_k]->GetMarker(1),1);
 
  303                   c.
SetMarker(l1[comb_i]->GetMarker(2)|l1[comb_j]->GetMarker(2)|l1[comb_k]->GetMarker(2),2);
 
  304                   c.
SetMarker(l1[comb_i]->GetMarker(3)|l1[comb_j]->GetMarker(3)|l1[comb_k]->GetMarker(3),3);
 
  350   } 
else { 
return ""; }
 
PndListProvider(std::string name, std::string pdgType="")
void AddDaughterLinkSimple(const RhoCandidate *, bool verbose=true)
RhoMinusParticleSelector * fMinusSel
void SetType(std::string pdgType)
void Append(const RhoCandidate *c)
void AddDecayProduct(std::string dname)
RhoMassParticleSelector * fMassSel
std::vector< PndListProvider * > fDaughterPointers
virtual ~PndListProvider()
void Combine(RhoCandList &l1, RhoCandList &l2)
RhoPlusParticleSelector * fPlusSel
void SetMassSelector(double mean, double width)
ArgVector fDaughterListNames
void Select(RhoParticleSelectorBase *pidmgr)
void AddDaughterPointer(PndListProvider *p)
Int_t GetNumberOfTracks() const 
std::string GetDecayProdName(int i)
int GetDaughterType(int i)
void SetCandList(RhoCandList &cl)
std::vector< TParticlePDG * > fDaughterPDG
void Put(const RhoCandidate *, Int_t i=-1)
void SetMarker(UInt_t l, UInt_t m)
void AddDaughterType(std::string dtype)
TParticlePDG * fParticlePDG
void GetCandList(RhoCandList &tl)