1 #ifndef ALIANALYSISTASKGAMMACONVERSION_H
\r
2 #define ALIANALYSISTASKGAMMACONVERSION_H
\r
4 /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
\r
5 * See cxx source for full Copyright notice */
\r
7 ////////////////////////////////////////////////
\r
8 //---------------------------------------------
\r
9 // Class used to do analysis on conversion pairs
\r
10 //---------------------------------------------
\r
11 ////////////////////////////////////////////////
\r
13 #include "AliAnalysisTaskSE.h"
\r
15 #include "AliV0Reader.h"
\r
18 class AliGammaConversionHistograms;
\r
20 class AliKFParticle;
\r
21 class AliESDInputHandler;
\r
27 class AliAnalysisTaskGammaConversion : public AliAnalysisTaskSE
\r
30 AliAnalysisTaskGammaConversion();
\r
31 AliAnalysisTaskGammaConversion(const char* name);
\r
32 virtual ~AliAnalysisTaskGammaConversion() ;// virtual destructor
\r
34 // Implementation of interface methods
\r
35 virtual void UserCreateOutputObjects();
\r
36 virtual void Init();
\r
37 virtual void LocalInit() {Init();}
\r
38 virtual void Exec(Option_t *option);
\r
39 virtual void Terminate(Option_t *option);
\r
40 virtual void ConnectInputData(Option_t *);
\r
42 void ProcessMCData();
\r
43 void ProcessV0sNoCut();
\r
45 void ProcessGammasForNeutralMesonAnalysis();
\r
46 void SetHistograms(AliGammaConversionHistograms *const histograms){fHistograms=histograms;}
\r
47 void SetDoMCTruth(Bool_t flag){fDoMCTruth=flag;}
\r
48 void SetElectronMass(Double_t electronMass){fElectronMass = electronMass;}
\r
49 void SetGammaMass(Double_t gammaMass){fGammaMass = gammaMass;}
\r
50 void SetGammaWidth(Double_t gammaWidth){fGammaWidth = gammaWidth;}
\r
51 void SetPi0Mass(Double_t pi0Mass){fPi0Mass = pi0Mass;}
\r
52 void SetPi0Width(Double_t pi0Width){fPi0Width = pi0Width;}
\r
53 void SetEtaMass(Double_t etaMass){fEtaMass = etaMass;}
\r
54 void SetEtaWidth(Double_t etaWidth){fEtaWidth = etaWidth;}
\r
55 void SetMinOpeningAngleGhostCut(Double_t ghostCut){fMinOpeningAngleGhostCut = ghostCut;}
\r
56 void SetV0Reader(AliV0Reader* const reader){fV0Reader=reader;}
\r
57 void SetCalculateBackground(Bool_t bg){fCalculateBackground=bg;}
\r
58 void CalculateBackground();
\r
59 void SetWriteNtuple(Bool_t writeNtuple){fWriteNtuple = writeNtuple;}
\r
61 Double_t GetMCOpeningAngle(TParticle* const daughter0, TParticle* const daughter1) const;
\r
62 void CheckV0Efficiency();
\r
65 //////////////////Chi_c Analysis////////////////////////////
\r
66 void GetPID(AliESDtrack *track, Stat_t &pid, Stat_t &weight);
\r
67 double GetSigmaToVertex(AliESDtrack* t);
\r
68 void ElectronBackground(TString hBg, vector <TLorentzVector> e);
\r
69 void FillAngle(TString histoName,vector <TLorentzVector> TLVeNeg, vector <TLorentzVector> TLVePos);
\r
70 void FillElectronInvMass(TString histoName, vector <TLorentzVector> NegativeElectron,
\r
71 vector <TLorentzVector> PositiveElectron);
\r
72 void FillGammaElectronInvMass(TString histoMass,TString histoDiff,vector <AliKFParticle> fKFGammas,
\r
73 vector <TLorentzVector> TLVeNeg,vector<TLorentzVector> TLVePos);
\r
74 void CleanWithAngleCuts(vector <AliESDtrack*> NegativeElectrons,
\r
75 vector <AliESDtrack*> PositiveElectrons, vector <AliKFParticle> Gammas);
\r
76 vector <TLorentzVector> GetTLorentzVector(vector <AliESDtrack*> ESDtrack);
\r
77 void ProcessGammaElectronsForChicAnalysis();
\r
78 ///////////////////////////////////////////////////////////////
\r
83 AliAnalysisTaskGammaConversion(const AliAnalysisTaskGammaConversion&); // Not implemented
\r
84 AliAnalysisTaskGammaConversion& operator=(const AliAnalysisTaskGammaConversion&); // Not implemented
\r
86 AliV0Reader* fV0Reader; // The V0 reader object
\r
88 AliStack * fStack; // pointer to the MC particle stack
\r
89 AliESDEvent* fESDEvent; //pointer to the ESDEvent
\r
90 TList * fOutputContainer ; // Histogram container
\r
92 AliGammaConversionHistograms *fHistograms; // Pointer to the histogram handling class
\r
94 Bool_t fDoMCTruth; // Flag to switch on/off MC truth
\r
96 vector<TParticle*> fMCAllGammas; // vector containing all MC gammas
\r
97 vector<TParticle*> fMCPi0s; //vector containing all MC Pi0s
\r
98 vector<TParticle*> fMCEtas; //vector containing all MC Etas
\r
99 vector<TParticle*> fMCGammaChic; //vector containing all MC Chi_c's
\r
101 vector<AliKFParticle> fKFReconstructedGammas; // vector containing all reconstructed gammas
\r
102 vector<Bool_t> fIsTrueReconstructedGammas; // vector containing information if this was a true gamma or not (follows the index of fKFReconstructedGammas)
\r
103 vector<Int_t> fElectronv1; // vector containing index of electron 1
\r
104 vector<Int_t> fElectronv2; // vector containing index of electron 2
\r
106 ///////Chi_c Analysis///////////////////////////
\r
107 vector<AliESDtrack*> fCurrentEventPosElectron; // comment here
\r
108 vector<AliESDtrack*> fPreviousEventPosElectron; //comment here
\r
109 vector<AliESDtrack*> fCurrentEventNegElectron; //comment here
\r
110 vector<AliESDtrack*> fPreviousEventNegElectron; //comment here
\r
111 vector<AliKFParticle> fKFReconstructedGammasCut; //comment here
\r
112 vector<TLorentzVector> fPreviousEventTLVNegElectron; //comment here
\r
113 vector<TLorentzVector> fPreviousEventTLVPosElectron; //comment here
\r
114 //////////////////////////////////////////////////
\r
117 Double_t fElectronMass; //electron mass
\r
118 Double_t fGammaMass; //gamma mass
\r
119 Double_t fPi0Mass; //pi0mass
\r
120 Double_t fEtaMass; //eta mass
\r
123 Double_t fGammaWidth; //gamma width cut
\r
124 Double_t fPi0Width; // pi0 width cut
\r
125 Double_t fEtaWidth; // eta width cut
\r
127 Double_t fMinOpeningAngleGhostCut; // minimum angle cut
\r
129 Bool_t fCalculateBackground; //flag to set backgrount calculation on/off
\r
130 Bool_t fWriteNtuple; // flag to set if writing to ntuple on/off
\r
131 TNtuple *fGammaNtuple; // Ntuple for gamma values
\r
132 TNtuple *fNeutralMesonNtuple;// NTuple for mesons
\r
134 Int_t fTotalNumberOfAddedNtupleEntries; // number of added ntuple entries
\r
136 ClassDef(AliAnalysisTaskGammaConversion, 3); // Analysis task for gamma conversions
\r
139 #endif //ALIANALYSISTASKGAMMA_H
\r