#ifndef ALICFMUONRESTASK1_H
#define ALICFMUONRESTASK1_H
#include "AliAnalysisTaskSE.h"
class TH1I;
class TParticle ;
class TLorentzVector ;
class TFile ;
class AliStack ;
class AliCFManager;
class AliESDtrack;
class AliVParticle;
class AliCFMuonResTask1 : public AliAnalysisTaskSE {
public:
AliCFMuonResTask1();
AliCFMuonResTask1(const Char_t* name);
AliCFMuonResTask1& operator= (const AliCFMuonResTask1& c);
AliCFMuonResTask1(const AliCFMuonResTask1& c);
virtual ~AliCFMuonResTask1();
void UserExec(Option_t *option);
void Terminate(Option_t *);
void SetCFManager(AliCFManager* const io) {fCFManager = io;}
AliCFManager * GetCFManager() const {return fCFManager;}
void SetQAList(TList* const list) {fQAHistList = list;}
Bool_t IsReadAODData() const {return fReadAODData;}
void SetReadAODData (Bool_t flag=kTRUE) {fReadAODData=flag;}
protected:
Bool_t fReadAODData ;
AliCFManager *fCFManager ;
TList *fQAHistList ;
TH1I *fHistEventsProcessed;
Double_t fNevt ;
Float_t Imass(Float_t e1, Float_t px1, Float_t py1, Float_t pz1,
Float_t e2, Float_t px2, Float_t py2, Float_t p2) const;
Float_t Rap(Float_t e, Float_t pz) const;
Float_t Phideg(Float_t phi) const;
Double_t CostCS(Double_t px1, Double_t py1, Double_t pz1, Double_t e1, Double_t charge1,
Double_t px2, Double_t py2, Double_t pz2, Double_t e2, Double_t energy);
Double_t CostHE(Double_t px1, Double_t py1, Double_t pz1, Double_t e1, Double_t charge1,
Double_t px2, Double_t py2, Double_t pz2, Double_t e2);
Double_t PhiCS(Double_t px1, Double_t py1, Double_t pz1, Double_t e1, Double_t charge1,
Double_t px2, Double_t py2, Double_t pz2, Double_t e2, Double_t energy);
Double_t PhiHE(Double_t px1, Double_t py1, Double_t pz1, Double_t e1, Double_t charge1,
Double_t px2, Double_t py2, Double_t pz2, Double_t e2, Double_t energy);
ClassDef(AliCFMuonResTask1,1);
};
#endif