#ifndef AliReducedParticle_H
#define AliReducedParticle_H
#include "AliLog.h"
#include "AliVParticle.h"
class AliReducedParticle : public AliVParticle
{
public:
AliReducedParticle();
AliReducedParticle(Double_t eta, Double_t phi, Double_t pt, Int_t mcLabel, Int_t trackid, Double_t impPar, Bool_t checkSoftPi);
AliReducedParticle(Double_t eta, Double_t phi, Double_t pt, Int_t mcLabel, Int_t trackid, Double_t impPar, Bool_t checkSoftPi, Short_t charge);
AliReducedParticle(Double_t eta, Double_t phi, Double_t pt, Int_t mcLabel, Int_t trackid, Double_t impPar, Bool_t checkSoftPi, Short_t charge,Double_t weight);
AliReducedParticle(Double_t eta, Double_t phi, Double_t pt, Int_t mcLabel);
AliReducedParticle(Double_t eta, Double_t phi, Double_t pt, int charge, int orginmother);
AliReducedParticle(Double_t eta, Double_t phi, Double_t pt, Double_t invmass, int ptbin, int orginmother=0);
~AliReducedParticle();
virtual Double_t Pt() const { return fpT; }
virtual Double_t Phi() const { return fPhi; }
virtual Double_t Eta() const { return fEta; }
virtual Int_t GetLabel() const { return fMcLabel; }
virtual Int_t GetID() const{return fid;}
virtual Double_t GetImpPar() const{return fImpPar;}
virtual Bool_t CheckSoftPi() const{return fCheckSoftPi;}
virtual Double_t GetInvMass() const {return fInvMass;}
virtual int GetPtBin() const {return fPtBin;}
virtual int GetOriginMother() const {return fOriginMother;}
void SetWeight(Double_t weight){fWeight=weight;}
Double_t GetWeight(){return fWeight;}
virtual Double_t Px() const { AliFatal("Not implemented"); return 0; }
virtual Double_t Py() const { AliFatal("Not implemented"); return 0; }
virtual Double_t Pz() const { AliFatal("Not implemented"); return 0; }
virtual Double_t P() const { AliFatal("Not implemented"); return 0; }
virtual Bool_t PxPyPz(Double_t[3]) const { AliFatal("Not implemented"); return 0; }
virtual Double_t Xv() const { AliFatal("Not implemented"); return 0; }
virtual Double_t Yv() const { AliFatal("Not implemented"); return 0; }
virtual Double_t Zv() const { AliFatal("Not implemented"); return 0; }
virtual Bool_t XvYvZv(Double_t[3]) const { AliFatal("Not implemented"); return 0; }
virtual Double_t OneOverPt() const { AliFatal("Not implemented"); return 0; }
virtual Double_t Theta() const { AliFatal("Not implemented"); return 0; }
virtual Double_t E() const { AliFatal("Not implemented"); return 0; }
virtual Double_t M() const { AliFatal("Not implemented"); return 0; }
virtual Double_t Y() const { AliFatal("Not implemented"); return 0; }
virtual Short_t Charge() const { return fCharge;}
virtual Int_t PdgCode() const { AliFatal("Not implemented"); return 0; }
virtual const Double_t *PID() const { AliFatal("Not implemented"); return 0; }
private:
Double_t fEta;
Double_t fPhi;
Double_t fpT;
Int_t fMcLabel;
Int_t fid;
Double_t fImpPar;
Bool_t fCheckSoftPi;
Short_t fCharge;
Double_t fInvMass;
Double_t fWeight;
int fPtBin;
int fOriginMother;
ClassDef(AliReducedParticle, 4);
};
#endif