X-Git-Url: http://git.uio.no/git/?p=u%2Fmrichter%2FAliRoot.git;a=blobdiff_plain;f=PWG4%2FGammaConv%2FAliAnalysisTaskGammaConversion.h;h=286116511fb2f3066da3f211aa1a692da81027b4;hp=d83bda5a5b299eae245ad01d65684221bf8277d9;hb=d7d7e825994f835510ecd78a9d272ab03e352030;hpb=00a6a31a4ceda5c03727cbe36061f029d72a2b7b diff --git a/PWG4/GammaConv/AliAnalysisTaskGammaConversion.h b/PWG4/GammaConv/AliAnalysisTaskGammaConversion.h index d83bda5a5b2..286116511fb 100644 --- a/PWG4/GammaConv/AliAnalysisTaskGammaConversion.h +++ b/PWG4/GammaConv/AliAnalysisTaskGammaConversion.h @@ -1,139 +1,190 @@ -#ifndef ALIANALYSISTASKGAMMACONVERSION_H -#define ALIANALYSISTASKGAMMACONVERSION_H - -/* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. * - * See cxx source for full Copyright notice */ - -//////////////////////////////////////////////// -//--------------------------------------------- -// Class used to do analysis on conversion pairs -//--------------------------------------------- -//////////////////////////////////////////////// - -#include "AliAnalysisTaskSE.h" -#include -#include "AliV0Reader.h" - -class TNtuple; -class AliGammaConversionHistograms; -class AliESDv0; -class AliKFParticle; -class AliESDInputHandler; -class AliESDEvent; -class AliAODEvent; -class TList; -class AliStack; - -class AliAnalysisTaskGammaConversion : public AliAnalysisTaskSE -{ - public: - AliAnalysisTaskGammaConversion(); - AliAnalysisTaskGammaConversion(const char* name); - virtual ~AliAnalysisTaskGammaConversion() ;// virtual destructor - - // Implementation of interface methods - virtual void UserCreateOutputObjects(); - virtual void Init(); - virtual void LocalInit() {Init();} - virtual void Exec(Option_t *option); - virtual void Terminate(Option_t *option); - virtual void ConnectInputData(Option_t *); - - void ProcessMCData(); - void ProcessV0sNoCut(); - void ProcessV0s(); - void ProcessGammasForNeutralMesonAnalysis(); - void SetHistograms(AliGammaConversionHistograms *const histograms){fHistograms=histograms;} - void SetDoMCTruth(Bool_t flag){fDoMCTruth=flag;} - void SetElectronMass(Double_t electronMass){fElectronMass = electronMass;} - void SetGammaMass(Double_t gammaMass){fGammaMass = gammaMass;} - void SetGammaWidth(Double_t gammaWidth){fGammaWidth = gammaWidth;} - void SetPi0Mass(Double_t pi0Mass){fPi0Mass = pi0Mass;} - void SetPi0Width(Double_t pi0Width){fPi0Width = pi0Width;} - void SetEtaMass(Double_t etaMass){fEtaMass = etaMass;} - void SetEtaWidth(Double_t etaWidth){fEtaWidth = etaWidth;} - void SetMinOpeningAngleGhostCut(Double_t ghostCut){fMinOpeningAngleGhostCut = ghostCut;} - void SetV0Reader(AliV0Reader* const reader){fV0Reader=reader;} - void SetCalculateBackground(Bool_t bg){fCalculateBackground=bg;} - void CalculateBackground(); - void SetWriteNtuple(Bool_t writeNtuple){fWriteNtuple = writeNtuple;} - void FillNtuple(); - Double_t GetMCOpeningAngle(TParticle* const daughter0, TParticle* const daughter1) const; - void CheckV0Efficiency(); - - - //////////////////Chi_c Analysis//////////////////////////// - void GetPID(AliESDtrack *track, Stat_t &pid, Stat_t &weight); - double GetSigmaToVertex(AliESDtrack* t); - void ElectronBackground(TString hBg, vector e); - void FillAngle(TString histoName,vector TLVeNeg, vector TLVePos); - void FillElectronInvMass(TString histoName, vector NegativeElectron, - vector PositiveElectron); - void FillGammaElectronInvMass(TString histoMass,TString histoDiff,vector fKFGammas, - vector TLVeNeg,vector TLVePos); - void CleanWithAngleCuts(vector NegativeElectrons, - vector PositiveElectrons, vector Gammas); - vector GetTLorentzVector(vector ESDtrack); - void ProcessGammaElectronsForChicAnalysis(); - /////////////////////////////////////////////////////////////// - - - - private: - AliAnalysisTaskGammaConversion(const AliAnalysisTaskGammaConversion&); // Not implemented - AliAnalysisTaskGammaConversion& operator=(const AliAnalysisTaskGammaConversion&); // Not implemented - - AliV0Reader* fV0Reader; // The V0 reader object - - AliStack * fStack; // pointer to the MC particle stack - AliESDEvent* fESDEvent; //pointer to the ESDEvent - TList * fOutputContainer ; // Histogram container - - AliGammaConversionHistograms *fHistograms; // Pointer to the histogram handling class - - Bool_t fDoMCTruth; // Flag to switch on/off MC truth - - vector fMCAllGammas; // vector containing all MC gammas - vector fMCPi0s; //vector containing all MC Pi0s - vector fMCEtas; //vector containing all MC Etas - vector fMCGammaChic; //vector containing all MC Chi_c's - - vector fKFReconstructedGammas; // vector containing all reconstructed gammas - vector fIsTrueReconstructedGammas; // vector containing information if this was a true gamma or not (follows the index of fKFReconstructedGammas) - vector fElectronv1; // vector containing index of electron 1 - vector fElectronv2; // vector containing index of electron 2 - - ///////Chi_c Analysis/////////////////////////// - vector fCurrentEventPosElectron; // comment here - vector fPreviousEventPosElectron; //comment here - vector fCurrentEventNegElectron; //comment here - vector fPreviousEventNegElectron; //comment here - vector fKFReconstructedGammasCut; //comment here - vector fPreviousEventTLVNegElectron; //comment here - vector fPreviousEventTLVPosElectron; //comment here - ////////////////////////////////////////////////// - - //mass defines - Double_t fElectronMass; //electron mass - Double_t fGammaMass; //gamma mass - Double_t fPi0Mass; //pi0mass - Double_t fEtaMass; //eta mass - - // width defines - Double_t fGammaWidth; //gamma width cut - Double_t fPi0Width; // pi0 width cut - Double_t fEtaWidth; // eta width cut - - Double_t fMinOpeningAngleGhostCut; // minimum angle cut - - Bool_t fCalculateBackground; //flag to set backgrount calculation on/off - Bool_t fWriteNtuple; // flag to set if writing to ntuple on/off - TNtuple *fGammaNtuple; // Ntuple for gamma values - TNtuple *fNeutralMesonNtuple;// NTuple for mesons - - Int_t fTotalNumberOfAddedNtupleEntries; // number of added ntuple entries - - ClassDef(AliAnalysisTaskGammaConversion, 3); // Analysis task for gamma conversions -}; - -#endif //ALIANALYSISTASKGAMMA_H +#ifndef ALIANALYSISTASKGAMMACONVERSION_H +#define ALIANALYSISTASKGAMMACONVERSION_H + +/* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. * + * See cxx source for full Copyright notice */ + +//////////////////////////////////////////////// +//--------------------------------------------- +// Class used to do analysis on conversion pairs +//--------------------------------------------- +//////////////////////////////////////////////// + +#include "AliAnalysisTaskSE.h" +#include +#include "AliV0Reader.h" +#include "AliGammaConversionAODObject.h" + +class TNtuple; +class AliGammaConversionHistograms; +class AliESDv0; +class AliKFParticle; +class AliESDInputHandler; +class AliESDEvent; +class AliAODEvent; +class TList; +class AliStack; +class AliESDtrackCuts; + + +class AliAnalysisTaskGammaConversion : public AliAnalysisTaskSE +{ + public: + AliAnalysisTaskGammaConversion(); + AliAnalysisTaskGammaConversion(const char* name); + virtual ~AliAnalysisTaskGammaConversion() ;// virtual destructor + + // Implementation of interface methods + virtual void UserCreateOutputObjects(); + virtual void Init(); + virtual void LocalInit() {Init();} + virtual void Exec(Option_t *option); + virtual void Terminate(Option_t *option); + virtual void ConnectInputData(Option_t *); + + void ProcessMCData(); + void ProcessV0sNoCut(); + void ProcessV0s(); + void ProcessGammasForNeutralMesonAnalysis(); + + // AOD + TString GetAODBranchName() const {return fAODBranchName;} + void SetAODBranchName(TString name) {fAODBranchName = name ;} + void FillAODWithConversionGammas(); + // end AOD + + + // for GammaJetAnalysis + void ProcessGammasForGammaJetAnalysis(); + void CreateListOfChargedParticles(); + Double_t GetMinimumDistanceToCharge(Int_t); + void CalculateJetCone(Int_t,Int_t); + Int_t GetIndexHighestPtGamma(); + void SetESDtrackCuts(); + // end of Gamma Jet + + void SetMinPtForGammaJet(Double_t minPtForGammaJet){fMinPtForGammaJet=minPtForGammaJet;} + void SetMinIsoConeSize(Double_t minIsoConeSize){fMinIsoConeSize=minIsoConeSize;} + void SetMinPtIsoCone(Double_t minPtIsoCone){fMinPtIsoCone=minPtIsoCone;} + void SetMinPtGamChargedCorr(Double_t minPtGamChargedCorr){fMinPtGamChargedCorr=minPtGamChargedCorr;} + void SetMinPtJetCone(Double_t minPtJetCone){fMinPtJetCone=minPtJetCone;} + + void SetHistograms(AliGammaConversionHistograms *const histograms){fHistograms=histograms;} + void SetDoMCTruth(Bool_t flag){fDoMCTruth=flag;} + void SetDoNeutralMeson(Bool_t flag){fDoNeutralMeson=flag;} + void SetDoJet(Bool_t flag){fDoJet=flag;} + void SetDoChic(Bool_t flag){fDoChic=flag;} + + void SetElectronMass(Double_t electronMass){fElectronMass = electronMass;} + void SetGammaMass(Double_t gammaMass){fGammaMass = gammaMass;} + void SetGammaWidth(Double_t gammaWidth){fGammaWidth = gammaWidth;} + void SetPi0Mass(Double_t pi0Mass){fPi0Mass = pi0Mass;} + void SetPi0Width(Double_t pi0Width){fPi0Width = pi0Width;} + void SetEtaMass(Double_t etaMass){fEtaMass = etaMass;} + void SetEtaWidth(Double_t etaWidth){fEtaWidth = etaWidth;} + void SetMinOpeningAngleGhostCut(Double_t ghostCut){fMinOpeningAngleGhostCut = ghostCut;} + void SetV0Reader(AliV0Reader* const reader){fV0Reader=reader;} + void SetCalculateBackground(Bool_t bg){fCalculateBackground=bg;} + void CalculateBackground(); + void SetWriteNtuple(Bool_t writeNtuple){fWriteNtuple = writeNtuple;} + void FillNtuple(); + Double_t GetMCOpeningAngle(TParticle* const daughter0, TParticle* const daughter1) const; + void CheckV0Efficiency(); + + + //////////////////Chi_c Analysis//////////////////////////// + void GetPID(AliESDtrack *track, Stat_t &pid, Stat_t &weight); + double GetSigmaToVertex(AliESDtrack* t); + void ElectronBackground(TString hBg, vector e); + void FillAngle(TString histoName,vector tlVeNeg, vector tlVePos); + void FillElectronInvMass(TString histoName, vector negativeElectron, + vector positiveElectron); + void FillGammaElectronInvMass(TString histoMass,TString histoDiff,vector fKFGammas, + vector tlVeNeg,vector tlVePos); + void CleanWithAngleCuts(vector negativeElectrons, + vector positiveElectrons, vector gammas); + vector GetTLorentzVector(vector esdTrack); + void ProcessGammaElectronsForChicAnalysis(); + /////////////////////////////////////////////////////////////// + + + + private: + AliAnalysisTaskGammaConversion(const AliAnalysisTaskGammaConversion&); // Not implemented + AliAnalysisTaskGammaConversion& operator=(const AliAnalysisTaskGammaConversion&); // Not implemented + + AliV0Reader* fV0Reader; // The V0 reader object + + AliStack * fStack; // pointer to the MC particle stack + AliESDEvent* fESDEvent; //pointer to the ESDEvent + TList * fOutputContainer ; // Histogram container + + AliGammaConversionHistograms *fHistograms; // Pointer to the histogram handling class + + Bool_t fDoMCTruth; // Flag to switch on/off MC truth + Bool_t fDoNeutralMeson; + Bool_t fDoJet; + Bool_t fDoChic; + + vector fMCAllGammas; // vector containing all MC gammas + vector fMCPi0s; //vector containing all MC Pi0s + vector fMCEtas; //vector containing all MC Etas + vector fMCGammaChic; //vector containing all MC Chi_c's + + vector fKFReconstructedGammas; // vector containing all reconstructed gammas + vector fIsTrueReconstructedGammas; // vector containing information if this was a true gamma or not (follows the index of fKFReconstructedGammas) + vector fElectronv1; // vector containing index of electron 1 + vector fElectronv2; // vector containing index of electron 2 + + ///////Chi_c Analysis/////////////////////////// + vector fCurrentEventPosElectron; // comment here + vector fPreviousEventPosElectron; //comment here + vector fCurrentEventNegElectron; //comment here + vector fPreviousEventNegElectron; //comment here + vector fKFReconstructedGammasCut; //comment here + vector fPreviousEventTLVNegElectron; //comment here + vector fPreviousEventTLVPosElectron; //comment here + ////////////////////////////////////////////////// + + //mass defines + Double_t fElectronMass; //electron mass + Double_t fGammaMass; //gamma mass + Double_t fPi0Mass; //pi0mass + Double_t fEtaMass; //eta mass + + // width defines + Double_t fGammaWidth; //gamma width cut + Double_t fPi0Width; // pi0 width cut + Double_t fEtaWidth; // eta width cut + + Double_t fMinOpeningAngleGhostCut; // minimum angle cut + + AliESDtrackCuts* fEsdTrackCuts; // Object containing the parameters of the esd track cuts + + Bool_t fCalculateBackground; //flag to set backgrount calculation on/off + Bool_t fWriteNtuple; // flag to set if writing to ntuple on/off + TNtuple *fGammaNtuple; // Ntuple for gamma values + TNtuple *fNeutralMesonNtuple;// NTuple for mesons + + Int_t fTotalNumberOfAddedNtupleEntries; // number of added ntuple entries + + vector fChargedParticles; + vector fChargedParticlesId; + + Double_t fGammaPtHighest; + Double_t fMinPtForGammaJet; + Double_t fMinIsoConeSize; + Double_t fMinPtIsoCone; + Double_t fMinPtGamChargedCorr; + Double_t fMinPtJetCone; + Int_t fLeadingChargedIndex; + + TClonesArray* fAODBranch ; //! selected particles branch + TString fAODBranchName; // New AOD branch name + + vector fAODObjects; + + ClassDef(AliAnalysisTaskGammaConversion, 4); // Analysis task for gamma conversions +}; + +#endif //ALIANALYSISTASKGAMMA_H