]> git.uio.no Git - u/mrichter/AliRoot.git/blob - PWGHF/correlationHF/AliDxHFEParticleSelectionMCEl.h
Add sigma2 jet shape and fill constituent info. for subtracted jets
[u/mrichter/AliRoot.git] / PWGHF / correlationHF / AliDxHFEParticleSelectionMCEl.h
1 //-*- Mode: C++ -*-
2 // $Id$
3
4 //* This file is property of and copyright by the ALICE Project        * 
5 //* ALICE Experiment at CERN, All rights reserved.                     *
6 //* See cxx source for full Copyright notice                           *
7
8 /// @file   AliDxHFEParticleSelectionMCEl.h
9 /// @author Hege Erdal, Matthias Richter
10 /// @date   2012-07-19
11 /// @brief  El MC selection for D-HFE correlations
12 ///
13
14 #ifndef ALIDXHFEPARTICLESELECTIONMCEL_H
15 #define ALIDXHFEPARTICLESELECTIONMCEL_H
16
17 #include "AliDxHFEParticleSelectionEl.h"
18 #include "AliDxHFEToolsMC.h"
19
20 class THnSparse;
21 class TH1;
22
23 /**
24  * @class AliDxHFEParticleSelectionMCEl
25  * Monte Carlo electron selection for D-HFE correlations, implements the specific
26  * selection criteria.
27  */
28 class AliDxHFEParticleSelectionMCEl : public AliDxHFEParticleSelectionEl {
29   public:
30   /// constructor
31   AliDxHFEParticleSelectionMCEl(const char* opt="");
32   /// destructor
33   virtual ~AliDxHFEParticleSelectionMCEl();
34
35   //Overload Init function from electron selection class
36   virtual int Init();
37
38   // Setting up control objects: overloaded from AliDxHFEParticleSelection
39   virtual THnSparse* DefineTHnSparse();
40
41   virtual int FillParticleProperties(AliVParticle* p, Double_t* date, int dimension) const;
42   virtual AliVParticle* CreateParticle(AliVParticle* track);
43
44
45   /// overloaded from AliDxHFEParticleSelection: check particle
46   virtual int IsSelected(AliVParticle* p, const AliVEvent *pEvent=NULL);
47
48   /// check MC criteria
49   int CheckMC(AliVParticle* p, const AliVEvent* pEvent);
50
51   /// clear internal memory
52   virtual void Clear(const char* option="");
53
54  protected:
55
56  private:
57   /// copy contructor prohibited
58   AliDxHFEParticleSelectionMCEl(const AliDxHFEParticleSelectionMCEl&);
59   /// assignment operator prohibited
60   AliDxHFEParticleSelectionMCEl& operator=(const AliDxHFEParticleSelectionMCEl&);
61
62   int ParseArguments(const char* arguments);
63   /// TODO: check if the label definitions can be used from the ToolsMC
64   static const char* fgkPDGMotherBinLabels[];
65   static const char* fgkPDGBinLabels[];
66                     
67   AliDxHFEToolsMC fMCTools;            // MC selection tools
68   TH1*            fPDGnotMCElectron;   //! PDG of track not MC truth electron
69   TH1*            fPDGNotHFMother;     //! PDG of mother not HF
70   int fOriginMother;                   //  Holds the origin motherquark (process)
71   int fResultMC;                       // Holds information on check on MC
72   Bool_t fUseKine;                     // Run over MC stack
73   vector<int> fMotherPDGs;             // list off mothers counted as background
74   Bool_t fUseMCReco;                   // Run over all MC reconstructed tracks
75   Int_t fSelectionStep;                // Where to stop track selection
76   Bool_t          fStoreCutStepInfo;   // Whether to store which cut step is the effective one
77
78
79   ClassDef(AliDxHFEParticleSelectionMCEl, 4);
80 };
81
82 #endif