]> git.uio.no Git - u/mrichter/AliRoot.git/blob - PWG/EMCAL/AliEmcalMCTrackSelector.h
Merge branch 'feature-movesplit'
[u/mrichter/AliRoot.git] / PWG / EMCAL / AliEmcalMCTrackSelector.h
1 #ifndef ALIEMCALMCTRAKCSELECTOR_H
2 #define ALIEMCALMCTRAKCSELECTOR_H
3
4 class TClonesArray;
5 class TString;
6 class AliVEvent;
7 class AliMCEvent;
8 class AliNamedArrayI;
9 class AliAODMCParticle;
10
11 #include "AliAnalysisTaskSE.h"
12
13 class AliEmcalMCTrackSelector : public AliAnalysisTaskSE {
14  public:
15   AliEmcalMCTrackSelector();
16   AliEmcalMCTrackSelector(const char *name);
17   virtual ~AliEmcalMCTrackSelector();
18
19   void UserCreateOutputObjects();
20   void UserExec(Option_t *option);
21
22   void SetOnlyPhysPrim(Bool_t s)                        { fOnlyPhysPrim     = s    ; }  
23   void SetChargedMC(Bool_t c = kTRUE)                   { fChargedMC        = c    ; }
24   void SetEtaMax(Double_t e)                            { fEtaMax           = e    ; }
25   void SetRejectNK(Bool_t r = kTRUE)                    { fRejectNK         = r    ; }
26   void SetOnlyHIJING(Bool_t s)                          { fOnlyHIJING       = s    ; }
27   void SetParticlesOutName(const char *name)            { fParticlesOutName = name ; }
28
29  protected:
30   void                      ConvertMCParticles();    // for ESD analysis
31   void                      CopyMCParticles();       // for AOD analysis
32
33   TString                   fParticlesOutName;     // name of output particle array
34   Bool_t                    fOnlyPhysPrim;         // true = only physical primary particles
35   Bool_t                    fRejectNK;             // true = reject K_0^L and neutrons
36   Bool_t                    fChargedMC;            // true = only charged particles
37   Bool_t                    fOnlyHIJING;           // true = only HIJING particles
38   Double_t                  fEtaMax;               // maximum eta to accept particles
39   TString                   fParticlesMapName;     //!name of the particle map
40   Bool_t                    fInit;                 //!true = task initialized
41   TClonesArray             *fParticlesIn;          //!particle array in (AOD)
42   TClonesArray             *fParticlesOut;         //!particle array out
43   AliNamedArrayI           *fParticlesMap;         //!particle index/label
44   AliVEvent                *fEvent;                //!event
45   AliMCEvent               *fMC;                   //!MC event (ESD)
46   Bool_t                    fIsESD;                //!ESD or AOD analysis
47   Bool_t                    fDisabled;             //!Disable task if a problem occurs at initialization
48
49  private:
50   AliEmcalMCTrackSelector(const AliEmcalMCTrackSelector&);            // not implemented
51   AliEmcalMCTrackSelector &operator=(const AliEmcalMCTrackSelector&); // not implemented
52
53   ClassDef(AliEmcalMCTrackSelector, 3); // Task to select particle in MC events
54 };
55 #endif