]>
Commit | Line | Data |
---|---|---|
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 | 17 | class TNtuple;\r |
3c538586 | 18 | class AliGammaConversionHistograms;\r |
19 | class AliESDv0;\r | |
20 | class AliKFParticle;\r | |
21 | class AliESDInputHandler;\r | |
22 | class AliESDEvent;\r | |
23 | class AliAODEvent;\r | |
24 | class TList;\r | |
25 | class AliStack;\r | |
26 | \r | |
27 | class 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 |