]>
Commit | Line | Data |
---|---|---|
1528f6d1 | 1 | #ifndef ALIV0READERV1_H |
2 | #define ALIV0READERV1_H | |
3 | ||
4 | #include "AliAnalysisTaskSE.h" | |
5 | #include "AliAODv0.h" | |
6 | #include "AliESDv0.h" | |
7 | #include "AliConversionCuts.h" | |
8 | #include "AliExternalTrackParam.h" | |
0a2b2b4b | 9 | #include "TObject.h" |
10 | #include "AliMCEvent.h" // for CF | |
11 | #include "AliESDEvent.h" | |
12 | #include "AliKFParticle.h" | |
13 | #include "TParticle.h" | |
14 | #include <vector> | |
15 | #include "AliESDpid.h" | |
16 | #include "TF1.h" | |
17 | #include "TRandom3.h" | |
18 | ||
1528f6d1 | 19 | |
20 | class AliConversionPhotonBase; | |
21 | class TRandom3; | |
22 | class AliStack; | |
23 | class TList; | |
24 | class AliKFConversionPhoton; | |
25 | class TString; | |
26 | class TClonesArray; | |
27 | class TH1F; | |
28 | class TH2F; | |
29 | class AliAODConversionPhoton; | |
30 | ||
31 | using namespace std; | |
32 | ||
33 | class AliV0ReaderV1 : public AliAnalysisTaskSE { | |
34 | ||
35 | public: | |
36 | ||
37 | AliV0ReaderV1(const char *name="V0ReaderV1"); | |
38 | virtual ~AliV0ReaderV1(); //virtual destructor | |
39 | void UserCreateOutputObjects(); | |
40 | ||
2bdd97ae | 41 | |
1528f6d1 | 42 | virtual void UserExec(Option_t *option); |
43 | virtual void Terminate(Option_t *); | |
44 | virtual void Init(); | |
45 | ||
46 | Bool_t ProcessEvent(AliVEvent *inputEvent,AliMCEvent *mcEvent=NULL); | |
47 | Bool_t IsEventSelected(){return fEventIsSelected;} | |
48 | ||
49 | // Return Reconstructed Gammas | |
50 | TClonesArray *GetReconstructedGammas(){return fConversionGammas;} | |
51 | Int_t GetNReconstructedGammas(){if(fConversionGammas){return fConversionGammas->GetEntriesFast();}else{return 0;}} | |
52 | AliConversionCuts *GetConversionCuts(){return fConversionCuts;} | |
53 | TList *GetCutHistograms(){if(fConversionCuts){return fConversionCuts->GetCutHistograms();}return NULL;} | |
54 | // Set Options | |
55 | ||
56 | void SetConversionCuts(const TString cut); | |
57 | void SetConversionCuts(AliConversionCuts *cuts){fConversionCuts=cuts;} | |
58 | void SetUseOwnXYZCalculation(Bool_t flag){fUseOwnXYZCalculation=flag;} | |
59 | void SetUseConstructGamma(Bool_t flag){fUseConstructGamma=flag;} | |
60 | void SetUseAODConversionPhoton(Bool_t b){if(b){cout<<"Setting Outputformat to AliAODConversionPhoton "<<endl;}else{cout<<"Setting Outputformat to AliKFConversionPhoton "<<endl;};kUseAODConversionPhoton=b;} | |
61 | void SetCreateAODs(Bool_t k=kTRUE){fCreateAOD=k;} | |
62 | void SetDeltaAODFilename(TString s){fDeltaAODFilename=s;} | |
63 | void SetDeltaAODBranchName(TString string) { fDeltaAODBranchName = string;AliInfo(Form("Set DeltaAOD BranchName to: %s",fDeltaAODBranchName.Data()));} | |
a280ac15 | 64 | TString GetPeriodName(){return fPeriodName;} |
1528f6d1 | 65 | |
66 | protected: | |
67 | // Reconstruct Gammas | |
68 | Bool_t ProcessESDV0s(); | |
69 | AliKFConversionPhoton *ReconstructV0(AliESDv0* fCurrentV0,Int_t currentV0Index); | |
70 | void FillAODOutput(); | |
71 | void FindDeltaAODBranchName(); | |
72 | Bool_t GetAODConversionGammas(); | |
73 | ||
74 | // Getter Functions | |
75 | ||
76 | const AliExternalTrackParam *GetExternalTrackParam(AliESDv0 *fCurrentV0,Int_t &tracklabel,Int_t charge); | |
77 | const AliExternalTrackParam *GetExternalTrackParamP(AliESDv0 *fCurrentV0,Int_t &tracklabel){return GetExternalTrackParam(fCurrentV0,tracklabel,1);}; | |
78 | const AliExternalTrackParam *GetExternalTrackParamN(AliESDv0 *fCurrentV0,Int_t &tracklabel){return GetExternalTrackParam(fCurrentV0,tracklabel,-1);}; | |
79 | AliKFParticle *GetPositiveKFParticle(AliAODv0 *fCurrentV0,Int_t fTrackLabel[2]); | |
80 | AliKFParticle *GetNegativeKFParticle(AliAODv0 *fCurrentV0,Int_t fTrackLabel[2]); | |
81 | AliKFParticle *GetPositiveKFParticle(AliESDv0 *fCurrentV0,Int_t fTrackLabel[2]); | |
82 | AliKFParticle *GetNegativeKFParticle(AliESDv0 *fCurrentV0,Int_t fTrackLabel[2]); | |
83 | ||
84 | Bool_t GetConversionPoint(const AliExternalTrackParam *pparam,const AliExternalTrackParam *nparam,Double_t convpos[3],Double_t dca[2]); | |
85 | Bool_t GetHelixCenter(const AliExternalTrackParam *track,Double_t center[2]); | |
86 | Double_t GetPsiPair(const AliESDv0* v0, const AliExternalTrackParam *positiveparam,const AliExternalTrackParam *negativeparam) const; | |
87 | ||
88 | AliConversionCuts *fConversionCuts; // Pointer to the ConversionCut Selection | |
89 | TClonesArray *fConversionGammas; // TClonesArray holding the reconstructed photons | |
90 | Bool_t fUseImprovedVertex; // set flag to improve primary vertex estimation by adding photons | |
91 | Bool_t fUseOwnXYZCalculation; //flag that determines if we use our own calculation of xyz (markus) | |
92 | Bool_t fUseConstructGamma; //flag that determines if we use ConstructGamma method from AliKF | |
93 | Bool_t kUseAODConversionPhoton; // set flag to use AOD instead of KF output format for photons | |
94 | Bool_t fCreateAOD; // set flag for AOD creation | |
95 | TString fDeltaAODBranchName;// File where Gamma Conv AOD is located, if not in default AOD | |
96 | TString fDeltaAODFilename; // set filename for delta/satellite aod | |
97 | Bool_t fEventIsSelected; | |
a280ac15 | 98 | TString fPeriodName; |
1528f6d1 | 99 | |
2bdd97ae | 100 | private: |
101 | AliV0ReaderV1(AliV0ReaderV1 &original); | |
102 | AliV0ReaderV1 &operator=(const AliV0ReaderV1 &ref); | |
103 | ||
1528f6d1 | 104 | |
a280ac15 | 105 | ClassDef(AliV0ReaderV1,2) |
1528f6d1 | 106 | }; |
107 | ||
108 | inline void AliV0ReaderV1::SetConversionCuts(const TString cut){ | |
109 | if(fConversionCuts != NULL){ | |
110 | delete fConversionCuts; | |
111 | fConversionCuts=NULL; | |
112 | } | |
113 | if(fConversionCuts == NULL){ | |
114 | fConversionCuts=new AliConversionCuts("V0ReaderCuts","V0ReaderCuts"); | |
115 | fConversionCuts->InitializeCutsFromCutString(cut.Data()); | |
116 | } | |
117 | } | |
118 | ||
119 | ||
120 | #endif |