/* History of cvs commits:
*
* $Log$
- * Revision 1.2 2007/02/09 18:40:40 schutz
- * B\bNew version from Gustavo
+ * Revision 1.4 2007/08/17 12:40:04 schutz
+ * New analysis classes by Gustavo Conesa
*
- * Revision 1.1 2007/01/23 17:17:29 schutz
- * New Gamma package
+ * Revision 1.3.4.2 2007/07/26 10:32:09 schutz
+ * new analysis classes in the the new analysis framework
*
*
*/
//_________________________________________________________________________
-// Class for the analysis of gamma-jet correlations.
-// Basically it seaches for a prompt photon in the Calorimeters acceptance,
-// if so we construct a jet around the highest pt particle in the opposite
-// side in azimuth. This jet has to fullfill several conditions to be
-// accepted. Then the fragmentation function of this jet is constructed
-// Class created from old AliPHOSGammaPion
-
+// Class that contains the algorithm for the analysis of gamma - hadron correlations
//*-- Author: Gustavo Conesa (INFN-LNF)
-// --- ROOT system ---
-#include <TROOT.h>
-#include <TChain.h>
-#include "TTask.h"
-#include "TArrayD.h"
-#include "TChain.h"
-#include <TH2F.h>
-#include <TTree.h>
-#include "AliAnaGammaDirect.h"
+#include "AliAnaGammaCorrelation.h"
-class AliESD ;
-
-class AliAnaGammaHadron : public AliAnaGammaDirect {
+class AliAnaGammaHadron : public AliAnaGammaCorrelation {
public:
-
- AliAnaGammaHadron(const char *name) ; // default ctor
- AliAnaGammaHadron(const AliAnaGammaHadron & gj) ; // cpy ctor
+
+ AliAnaGammaHadron() ; // default ctor
+ AliAnaGammaHadron(const AliAnaGammaHadron & g) ; // cpy ctor
AliAnaGammaHadron & operator = (const AliAnaGammaHadron & g) ;//cpy assignment
virtual ~AliAnaGammaHadron() ; //virtual dtor
- virtual void Exec(Option_t * opt = "") ;
- virtual void ConnectInputData(Option_t *);
- virtual void CreateOutputObjects();
- virtual void Terminate(Option_t * opt = "");
+ TList * GetCreateOutputObjects();
- void InitParameters();
- Double_t GetAngleMaxParam(Int_t i) const {return fAngleMaxParam.At(i) ; }
- Double_t GetInvMassMaxCut() const {return fInvMassMaxCut ; }
- Double_t GetInvMassMinCut() const {return fInvMassMinCut ; }
- Double_t GetPhiMaxCut() const {return fPhiMaxCut ; }
- Double_t GetPhiMinCut() const {return fPhiMinCut ; }
- Float_t GetMinPtPion() const {return fMinPtPion ; }
-
- void Print(const Option_t * opt)const;
-
- void SetAngleMaxParam(Int_t i, Double_t par)
- {fAngleMaxParam.AddAt(par,i) ; }
- void SetMinPtPion(Float_t pt){fMinPtPion = pt; };
- void SetInvMassCutRange(Double_t invmassmin, Double_t invmassmax)
- {fInvMassMaxCut =invmassmax; fInvMassMinCut =invmassmin;}
- void SetPhiCutRange(Double_t phimin, Double_t phimax)
- {fPhiMaxCut =phimax; fPhiMinCut =phimin;}
-
- private:
+ void InitParameters();
- Bool_t IsAngleInWindow(const Float_t angle, const Float_t e);
- void MakeGammaChargedCorrelation(TClonesArray * pl, TParticle *pGamma) const ;
- void MakeGammaNeutralCorrelation(TClonesArray * pl, TParticle *pGamma) ;
-
- private:
-
- Double_t fPhiMaxCut ; //
- Double_t fPhiMinCut ; //
- Double_t fInvMassMaxCut ; // Invariant Mass cut maximum
- Double_t fInvMassMinCut ; // Invariant Masscut minimun
+ void Print(const Option_t * opt) const;
- Double_t fMinPtPion; // Minimum pt of pion
- TObjArray *fOutputContainer ; //! output data container
- TArrayD fAngleMaxParam ; //Max opening angle selection parameters
+ void MakeGammaCorrelation(TParticle *pGamma, TClonesArray * plCTS, TClonesArray * plNe) ;
+ void MakeGammaChargedCorrelation(TParticle *pGamma, TClonesArray * pl) ;
+ void MakeGammaNeutralCorrelation(TParticle *pGamma, TClonesArray * pl) ;
+ private:
+
//Histograms
-
- TH2F * fhPhiCharged ;
- TH2F * fhPhiNeutral ;
- TH2F * fhEtaCharged ;
- TH2F * fhEtaNeutral ;
- TH2F * fhDeltaPhiGammaCharged ;
- TH2F * fhDeltaPhiGammaNeutral ;
- TH2F * fhDeltaEtaGammaCharged ;
- TH2F * fhDeltaEtaGammaNeutral ;
-
- TH2F * fhCorrelationGammaNeutral ;
- TH2F * fhCorrelationGammaCharged ;
-
- TH2F * fhAnglePairAccepted ;
- TH2F * fhAnglePairNoCut ;
- TH2F * fhAnglePairAzimuthCut ;
- TH2F * fhAnglePairOpeningAngleCut ;
- TH2F * fhAnglePairAllCut ;
- TH2F * fhInvMassPairNoCut ;
- TH2F * fhInvMassPairAzimuthCut ;
- TH2F * fhInvMassPairOpeningAngleCut ;
- TH2F * fhInvMassPairAllCut ;
+ TH2F * fhPhiCharged ; //Phi distribution of charged particles
+ TH2F * fhPhiNeutral ; //Phi distribution of neutral particles
+ TH2F * fhEtaCharged ; //Eta distribution of charged particles
+ TH2F * fhEtaNeutral ; //Eta distribution of neutral particles
+ TH2F * fhDeltaPhiGammaCharged ; //Difference of charged particle phi and prompt gamma phi as function of gamma pT
+ TH2F * fhDeltaPhiGammaNeutral ; //Difference of neutral particle phi and prompt gamma phi as function of gamma pT
+ TH2F * fhDeltaEtaGammaCharged ; //Difference of charged particle eta and prompt gamma eta as function of gamma pT
+ TH2F * fhDeltaEtaGammaNeutral ; //Difference of neutral particle eta and prompt gamma eta as function of gamma pT
+ TH2F * fhDeltaPhiChargedPt ; //Difference of charged particle eta and prompt gamma eta as function of charged pT
+
+ TH2F * fhCorrelationGammaNeutral ; //Neutral hadron correlation histogram
+ TH2F * fhCorrelationGammaCharged ; //Charged hadron correlation histogram
- ClassDef(AliAnaGammaHadron,0)
+ ClassDef(AliAnaGammaHadron,1)
} ;