ROOT logo
#ifndef ALIDALITZELECTRONSELECTOR_H
#define ALIDALITZELECTRONSELECTOR_H

#include "AliAnalysisTaskSE.h"
#include "AliAODv0.h"
#include "AliESDv0.h"
#include "AliDalitzElectronCuts.h"
#include "AliExternalTrackParam.h"

class TRandom3;
class AliStack;
class TList;
class TString;
class TH1F;
class TH2F;

using namespace std;

class AliDalitzElectronSelector : public AliAnalysisTaskSE {

 public:

   AliDalitzElectronSelector(const char *name="ElectronSelector");
   //Uncopyable & operator=(const Uncopyable&);

   virtual ~AliDalitzElectronSelector();                            //virtual destructor
   void UserCreateOutputObjects();

   virtual void UserExec(Option_t *option);
   virtual void Terminate(Option_t *);
   virtual void Init();

   Bool_t ProcessEvent(AliVEvent *inputEvent,AliMCEvent *mcEvent=NULL);
   Bool_t IsEventSelected(){return fEventIsSelected;}

   // Return selected electron/positron array
   vector <Int_t> GetReconstructedElectronsIndex(){ return fElectronsIndex; }
   vector <Int_t> GetReconstructedPositronsIndex(){ return fPositronsIndex; }
   AliDalitzElectronCuts *GetDalitzElectronCuts(){   return fElectronCuts; }
   TList *GetCutHistograms(){ if(fElectronCuts){return fElectronCuts->GetCutHistograms();} return NULL;}
   // Set Options

   void SetDalitzElectronCuts(const TString cut);
   void SetDalitzElectronCuts(AliDalitzElectronCuts *cuts){fElectronCuts=cuts;}

 protected:
   //selected electron arrays
   
   Bool_t ProcessESDs();
   AliDalitzElectronCuts *fElectronCuts; // Pointer to the ConversionCut Selection
   vector<Int_t> fPositronsIndex;
   vector<Int_t> fElectronsIndex;
   Bool_t fEventIsSelected;

 private:
   AliDalitzElectronSelector (const AliDalitzElectronSelector&); // not implemented
   AliDalitzElectronSelector & operator=(const AliDalitzElectronSelector&); // not implemented


   
   ClassDef(AliDalitzElectronSelector,1)
      };

inline void AliDalitzElectronSelector::SetDalitzElectronCuts(const TString cut){
   if(fElectronCuts != NULL){
      delete fElectronCuts;
      fElectronCuts=NULL;
   }
   if(fElectronCuts == NULL){
      fElectronCuts=new AliDalitzElectronCuts("ElectronCuts","ElectronCuts");
      fElectronCuts->InitializeCutsFromCutString(cut.Data());
   }
}


#endif
 AliDalitzElectronSelector.h:1
 AliDalitzElectronSelector.h:2
 AliDalitzElectronSelector.h:3
 AliDalitzElectronSelector.h:4
 AliDalitzElectronSelector.h:5
 AliDalitzElectronSelector.h:6
 AliDalitzElectronSelector.h:7
 AliDalitzElectronSelector.h:8
 AliDalitzElectronSelector.h:9
 AliDalitzElectronSelector.h:10
 AliDalitzElectronSelector.h:11
 AliDalitzElectronSelector.h:12
 AliDalitzElectronSelector.h:13
 AliDalitzElectronSelector.h:14
 AliDalitzElectronSelector.h:15
 AliDalitzElectronSelector.h:16
 AliDalitzElectronSelector.h:17
 AliDalitzElectronSelector.h:18
 AliDalitzElectronSelector.h:19
 AliDalitzElectronSelector.h:20
 AliDalitzElectronSelector.h:21
 AliDalitzElectronSelector.h:22
 AliDalitzElectronSelector.h:23
 AliDalitzElectronSelector.h:24
 AliDalitzElectronSelector.h:25
 AliDalitzElectronSelector.h:26
 AliDalitzElectronSelector.h:27
 AliDalitzElectronSelector.h:28
 AliDalitzElectronSelector.h:29
 AliDalitzElectronSelector.h:30
 AliDalitzElectronSelector.h:31
 AliDalitzElectronSelector.h:32
 AliDalitzElectronSelector.h:33
 AliDalitzElectronSelector.h:34
 AliDalitzElectronSelector.h:35
 AliDalitzElectronSelector.h:36
 AliDalitzElectronSelector.h:37
 AliDalitzElectronSelector.h:38
 AliDalitzElectronSelector.h:39
 AliDalitzElectronSelector.h:40
 AliDalitzElectronSelector.h:41
 AliDalitzElectronSelector.h:42
 AliDalitzElectronSelector.h:43
 AliDalitzElectronSelector.h:44
 AliDalitzElectronSelector.h:45
 AliDalitzElectronSelector.h:46
 AliDalitzElectronSelector.h:47
 AliDalitzElectronSelector.h:48
 AliDalitzElectronSelector.h:49
 AliDalitzElectronSelector.h:50
 AliDalitzElectronSelector.h:51
 AliDalitzElectronSelector.h:52
 AliDalitzElectronSelector.h:53
 AliDalitzElectronSelector.h:54
 AliDalitzElectronSelector.h:55
 AliDalitzElectronSelector.h:56
 AliDalitzElectronSelector.h:57
 AliDalitzElectronSelector.h:58
 AliDalitzElectronSelector.h:59
 AliDalitzElectronSelector.h:60
 AliDalitzElectronSelector.h:61
 AliDalitzElectronSelector.h:62
 AliDalitzElectronSelector.h:63
 AliDalitzElectronSelector.h:64
 AliDalitzElectronSelector.h:65
 AliDalitzElectronSelector.h:66
 AliDalitzElectronSelector.h:67
 AliDalitzElectronSelector.h:68
 AliDalitzElectronSelector.h:69
 AliDalitzElectronSelector.h:70
 AliDalitzElectronSelector.h:71
 AliDalitzElectronSelector.h:72
 AliDalitzElectronSelector.h:73
 AliDalitzElectronSelector.h:74
 AliDalitzElectronSelector.h:75
 AliDalitzElectronSelector.h:76