ROOT logo
#ifndef ALIEMCALMCTRAKCSELECTOR_H
#define ALIEMCALMCTRAKCSELECTOR_H

class TClonesArray;
class TString;
class AliVEvent;
class AliMCEvent;
class AliNamedArrayI;
class AliAODMCParticle;

#include "AliAnalysisTaskSE.h"

class AliEmcalMCTrackSelector : public AliAnalysisTaskSE {
 public:
  AliEmcalMCTrackSelector();
  AliEmcalMCTrackSelector(const char *name);
  virtual ~AliEmcalMCTrackSelector();

  void UserCreateOutputObjects();
  void UserExec(Option_t *option);

  void SetOnlyPhysPrim(Bool_t s)                        { fOnlyPhysPrim     = s    ; }  
  void SetChargedMC(Bool_t c = kTRUE)                   { fChargedMC        = c    ; }
  void SetEtaMax(Double_t e)                            { fEtaMax           = e    ; }
  void SetRejectNK(Bool_t r = kTRUE)                    { fRejectNK         = r    ; }
  void SetOnlyHIJING(Bool_t s)                          { fOnlyHIJING       = s    ; }
  void SetParticlesOutName(const char *name)            { fParticlesOutName = name ; }

 protected:
  void                      ConvertMCParticles();    // for ESD analysis
  void                      CopyMCParticles();       // for AOD analysis

  TString                   fParticlesOutName;     // name of output particle array
  Bool_t                    fOnlyPhysPrim;         // true = only physical primary particles
  Bool_t                    fRejectNK;             // true = reject K_0^L and neutrons
  Bool_t                    fChargedMC;            // true = only charged particles
  Bool_t                    fOnlyHIJING;           // true = only HIJING particles
  Double_t                  fEtaMax;               // maximum eta to accept particles
  TString                   fParticlesMapName;     //!name of the particle map
  Bool_t                    fInit;                 //!true = task initialized
  TClonesArray             *fParticlesIn;          //!particle array in (AOD)
  TClonesArray             *fParticlesOut;         //!particle array out
  AliNamedArrayI           *fParticlesMap;         //!particle index/label
  AliVEvent                *fEvent;                //!event
  AliMCEvent               *fMC;                   //!MC event (ESD)
  Bool_t                    fIsESD;                //!ESD or AOD analysis
  Bool_t                    fDisabled;             //!Disable task if a problem occurs at initialization

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

  ClassDef(AliEmcalMCTrackSelector, 3); // Task to select particle in MC events
};
#endif
 AliEmcalMCTrackSelector.h:1
 AliEmcalMCTrackSelector.h:2
 AliEmcalMCTrackSelector.h:3
 AliEmcalMCTrackSelector.h:4
 AliEmcalMCTrackSelector.h:5
 AliEmcalMCTrackSelector.h:6
 AliEmcalMCTrackSelector.h:7
 AliEmcalMCTrackSelector.h:8
 AliEmcalMCTrackSelector.h:9
 AliEmcalMCTrackSelector.h:10
 AliEmcalMCTrackSelector.h:11
 AliEmcalMCTrackSelector.h:12
 AliEmcalMCTrackSelector.h:13
 AliEmcalMCTrackSelector.h:14
 AliEmcalMCTrackSelector.h:15
 AliEmcalMCTrackSelector.h:16
 AliEmcalMCTrackSelector.h:17
 AliEmcalMCTrackSelector.h:18
 AliEmcalMCTrackSelector.h:19
 AliEmcalMCTrackSelector.h:20
 AliEmcalMCTrackSelector.h:21
 AliEmcalMCTrackSelector.h:22
 AliEmcalMCTrackSelector.h:23
 AliEmcalMCTrackSelector.h:24
 AliEmcalMCTrackSelector.h:25
 AliEmcalMCTrackSelector.h:26
 AliEmcalMCTrackSelector.h:27
 AliEmcalMCTrackSelector.h:28
 AliEmcalMCTrackSelector.h:29
 AliEmcalMCTrackSelector.h:30
 AliEmcalMCTrackSelector.h:31
 AliEmcalMCTrackSelector.h:32
 AliEmcalMCTrackSelector.h:33
 AliEmcalMCTrackSelector.h:34
 AliEmcalMCTrackSelector.h:35
 AliEmcalMCTrackSelector.h:36
 AliEmcalMCTrackSelector.h:37
 AliEmcalMCTrackSelector.h:38
 AliEmcalMCTrackSelector.h:39
 AliEmcalMCTrackSelector.h:40
 AliEmcalMCTrackSelector.h:41
 AliEmcalMCTrackSelector.h:42
 AliEmcalMCTrackSelector.h:43
 AliEmcalMCTrackSelector.h:44
 AliEmcalMCTrackSelector.h:45
 AliEmcalMCTrackSelector.h:46
 AliEmcalMCTrackSelector.h:47
 AliEmcalMCTrackSelector.h:48
 AliEmcalMCTrackSelector.h:49
 AliEmcalMCTrackSelector.h:50
 AliEmcalMCTrackSelector.h:51
 AliEmcalMCTrackSelector.h:52
 AliEmcalMCTrackSelector.h:53
 AliEmcalMCTrackSelector.h:54
 AliEmcalMCTrackSelector.h:55