]> git.uio.no Git - u/mrichter/AliRoot.git/blob - PWGGA/GammaConv/AliPrimaryPionSelector.h
- changes in ConversionCuts in order to make cut on photon quality possible on AODs...
[u/mrichter/AliRoot.git] / PWGGA / GammaConv / AliPrimaryPionSelector.h
1 #ifndef ALIPRIMARYPIONSELECTOR_H
2 #define ALIPRIMARYPIONSELECTOR_H
3
4 #include "AliAnalysisTaskSE.h"
5 #include "AliAODv0.h"
6 #include "AliESDv0.h"
7 #include "AliPrimaryPionCuts.h"
8 #include "AliExternalTrackParam.h"
9
10 class TRandom3;
11 class AliStack;
12 class TList;
13 class TString;
14 class TH1F;
15 class TH2F;
16
17 using namespace std;
18
19 class AliPrimaryPionSelector : public AliAnalysisTaskSE {
20
21  public:
22
23    AliPrimaryPionSelector(const char *name="PionSelector");
24    //Uncopyable & operator=(const Uncopyable&);
25
26    virtual ~AliPrimaryPionSelector();                            //virtual destructor
27    void UserCreateOutputObjects();
28
29    virtual void UserExec(Option_t *option);
30    virtual void Terminate(Option_t *);
31    virtual void Init();
32
33    Bool_t ProcessEvent(AliVEvent *inputEvent,AliMCEvent *mcEvent=NULL);
34    Bool_t IsEventSelected(){return fEventIsSelected;}
35
36    // Return selected electron/positron array
37    vector <Int_t> GetReconstructedNegPionIndex(){ return fNegPionsIndex; }
38    vector <Int_t> GetReconstructedPosPionIndex(){ return fPosPionsIndex; }
39    AliPrimaryPionCuts *GetPrimaryPionCuts(){   return fPionCuts; }
40    TList *GetCutHistograms(){ if(fPionCuts){return fPionCuts->GetCutHistograms();} return NULL;}
41    // Set Options
42
43    void SetPrimaryPionCuts(const TString cut);
44    void SetPrimaryPionCuts(AliPrimaryPionCuts *cuts){fPionCuts=cuts;}
45
46  protected:
47    //selected electron arrays
48    
49    Bool_t ProcessESDs();
50    AliPrimaryPionCuts *fPionCuts; // Pointer to the ConversionCut Selection
51    vector<Int_t> fPosPionsIndex;
52    vector<Int_t> fNegPionsIndex;
53    Bool_t fEventIsSelected;
54
55  private:
56    AliPrimaryPionSelector (const AliPrimaryPionSelector&); // not implemented
57    AliPrimaryPionSelector & operator=(const AliPrimaryPionSelector&); // not implemented
58
59
60    
61    ClassDef(AliPrimaryPionSelector,1)
62       };
63
64 inline void AliPrimaryPionSelector::SetPrimaryPionCuts(const TString cut){
65    if(fPionCuts != NULL){
66       delete fPionCuts;
67       fPionCuts=NULL;
68    }
69    if(fPionCuts == NULL){
70       fPionCuts=new AliPrimaryPionCuts("ElectronCuts","ElectronCuts");
71       fPionCuts->InitializeCutsFromCutString(cut.Data());
72    }
73 }
74
75
76 #endif