#ifndef _PDECAYCHANNEL_H_
#define _PDECAYCHANNEL_H_
#include "TObject.h"
#include "TArrayI.h"
#include "TF1.h"
#include "TF2.h"
class PParticle;
using namespace std;
#include <iostream>
class PDecayChannel : public TObject {
private:
Double_t Weight;
Int_t NumOfDaughters;
TArrayI Daughters;
PDecayChannel* Next;
public:
PDecayChannel();
~PDecayChannel();
void AddChannel(PDecayChannel *n);
void AddChannel(Double_t w, Int_t d1);
void AddChannel(Double_t w, Int_t d1, Int_t d2);
void AddChannel(Double_t w, Int_t d1, Int_t d2, Int_t d3);
void AddChannel(Double_t w, Int_t d1, Int_t d2, Int_t d3, Int_t d4);
void AddChannel(Double_t w, Int_t nd, Int_t* ld);
void AddChannel(Double_t w, PParticle *d1);
void AddChannel(Double_t w, PParticle *d1, PParticle *d2);
void AddChannel(Double_t w, PParticle *d1, PParticle *d2, PParticle *d3);
void AddChannel(Double_t w, PParticle *d1, PParticle *d2, PParticle *d3, PParticle *d4);
void AddChannel(Double_t w, Int_t nd, PParticle **ld);
void AddChannel(Double_t w, const char *d1);
void AddChannel(Double_t w, const char *d1, const char *d2);
void AddChannel(Double_t w, const char *d1, const char *d2, const char *d3);
void AddChannel(Double_t w, const char *d1, const char *d2, const char *d3, const char *d4);
void AddChannel(Double_t w, Int_t nd, char **ld);
Double_t GetWeight();
Int_t *GetDaughters(int &n);
PDecayChannel *GetNext();
PDecayChannel *GetLast();
void setAngleFunction(TF1 *) {Warning("setAngleFunction", "setAngleFunction is obsolete");};
void setAngleFunction(TF2 *) {Warning("setAngleFunction", "setAngleFunction is obsolete");};
PDecayChannel *Unlink();
void Print(const Option_t *delme=NULL) const;
ClassDef(PDecayChannel, 0)
};
#endif // _PDECAYCHANNEL_H_