1. Adding sorting of the Points in point array
[u/mrichter/AliRoot.git] / PWG4 / GammaConv / AliAnalysisTaskGammaConversion.h
CommitLineData
3c538586 1#ifndef ALIANALYSISTASKGAMMACONVERSION_H\r
2#define ALIANALYSISTASKGAMMACONVERSION_H\r
3 \r
4/* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *\r
5 * See cxx source for full Copyright notice */\r
6\r
7////////////////////////////////////////////////\r
8//--------------------------------------------- \r
9// Class used to do analysis on conversion pairs\r
10//---------------------------------------------\r
11////////////////////////////////////////////////\r
12 \r
13#include "AliAnalysisTaskSE.h"\r
14#include <vector>\r
15#include "AliV0Reader.h"\r
16\r
15e046fa 17class TNtuple;\r
3c538586 18class AliGammaConversionHistograms;\r
19class AliESDv0;\r
20class AliKFParticle;\r
21class AliESDInputHandler;\r
22class AliESDEvent;\r
23class AliAODEvent;\r
24class TList;\r
25class AliStack;\r
26\r
27class AliAnalysisTaskGammaConversion : public AliAnalysisTaskSE\r
28{\r
29 public:\r
32a6d407 30 AliAnalysisTaskGammaConversion();\r
31 AliAnalysisTaskGammaConversion(const char* name);\r
32 virtual ~AliAnalysisTaskGammaConversion() ;// virtual destructor\r
3c538586 33 \r
32a6d407 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
3c538586 41 \r
32a6d407 42 void ProcessMCData();\r
43 void ProcessV0sNoCut();\r
44 void ProcessV0s();\r
45 void ProcessGammasForNeutralMesonAnalysis();\r
15e046fa 46 void SetHistograms(AliGammaConversionHistograms *const histograms){fHistograms=histograms;}\r
32a6d407 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
15e046fa 56 void SetV0Reader(AliV0Reader* const reader){fV0Reader=reader;}\r
32a6d407 57 void SetCalculateBackground(Bool_t bg){fCalculateBackground=bg;}\r
58 void CalculateBackground();\r
59 void SetWriteNtuple(Bool_t writeNtuple){fWriteNtuple = writeNtuple;}\r
60 void FillNtuple();\r
15e046fa 61 Double_t GetMCOpeningAngle(TParticle* const daughter0, TParticle* const daughter1) const;\r
f78c0011 62 void CheckV0Efficiency();\r
3c538586 63\r
00a6a31a 64\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
613bcce9 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
00a6a31a 72 void FillGammaElectronInvMass(TString histoMass,TString histoDiff,vector <AliKFParticle> fKFGammas,\r
613bcce9 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
00a6a31a 77 void ProcessGammaElectronsForChicAnalysis();\r
78 ///////////////////////////////////////////////////////////////\r
79\r
80\r
81\r
3c538586 82 private:\r
32a6d407 83 AliAnalysisTaskGammaConversion(const AliAnalysisTaskGammaConversion&); // Not implemented\r
84 AliAnalysisTaskGammaConversion& operator=(const AliAnalysisTaskGammaConversion&); // Not implemented\r
3c538586 85\r
15e046fa 86 AliV0Reader* fV0Reader; // The V0 reader object \r
3c538586 87\r
15e046fa 88 AliStack * fStack; // pointer to the MC particle stack\r
00a6a31a 89 AliESDEvent* fESDEvent; //pointer to the ESDEvent\r
32a6d407 90 TList * fOutputContainer ; // Histogram container\r
3c538586 91\r
15e046fa 92 AliGammaConversionHistograms *fHistograms; // Pointer to the histogram handling class\r
3c538586 93\r
15e046fa 94 Bool_t fDoMCTruth; // Flag to switch on/off MC truth \r
3c538586 95 \r
15e046fa 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
32a6d407 100\r
15e046fa 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
32a6d407 105\r
00a6a31a 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
115\r
32a6d407 116 //mass defines\r
15e046fa 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
32a6d407 121\r
122 // width defines\r
15e046fa 123 Double_t fGammaWidth; //gamma width cut\r
124 Double_t fPi0Width; // pi0 width cut\r
125 Double_t fEtaWidth; // eta width cut\r
32a6d407 126\r
15e046fa 127 Double_t fMinOpeningAngleGhostCut; // minimum angle cut\r
32a6d407 128\r
15e046fa 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
32a6d407 133\r
15e046fa 134 Int_t fTotalNumberOfAddedNtupleEntries; // number of added ntuple entries\r
32a6d407 135\r
00a6a31a 136 ClassDef(AliAnalysisTaskGammaConversion, 3); // Analysis task for gamma conversions\r
3c538586 137};\r
138 \r
139#endif //ALIANALYSISTASKGAMMA_H\r