]> git.uio.no Git - u/mrichter/AliRoot.git/blame - PWGHF/correlationHF/AliDxHFEParticleSelectionMCEl.h
protection against efficiency value=0 (Sandro)
[u/mrichter/AliRoot.git] / PWGHF / correlationHF / AliDxHFEParticleSelectionMCEl.h
CommitLineData
d731501a 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
20class THnSparse;
21class TH1;
22
23/**
24 * @class AliDxHFEParticleSelectionMCEl
25 * Monte Carlo electron selection for D-HFE correlations, implements the specific
26 * selection criteria.
27 */
28class AliDxHFEParticleSelectionMCEl : public AliDxHFEParticleSelectionEl {
29 public:
30 /// constructor
31 AliDxHFEParticleSelectionMCEl(const char* opt="");
32 /// destructor
33 virtual ~AliDxHFEParticleSelectionMCEl();
34
dfe96b90 35 //Overload Init function from electron selection class
36 virtual int Init();
37
d731501a 38 // Setting up control objects: overloaded from AliDxHFEParticleSelection
dcf83226 39 virtual THnSparse* DefineTHnSparse();
d731501a 40
dcf83226 41 virtual int FillParticleProperties(AliVParticle* p, Double_t* date, int dimension) const;
dfe96b90 42 virtual AliVParticle* CreateParticle(AliVParticle* track);
43
d731501a 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
b4779749 62 int ParseArguments(const char* arguments);
d731501a 63 /// TODO: check if the label definitions can be used from the ToolsMC
64 static const char* fgkPDGMotherBinLabels[];
dfe96b90 65 static const char* fgkPDGBinLabels[];
66
d731501a 67 AliDxHFEToolsMC fMCTools; // MC selection tools
dfe96b90 68 TH1* fPDGnotMCElectron; //! PDG of track not MC truth electron
fad30eb8 69 TH1* fPDGNotHFMother; //! PDG of mother not HF
d731501a 70 int fOriginMother; // Holds the origin motherquark (process)
71 int fResultMC; // Holds information on check on MC
b4779749 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
fad30eb8 76 Bool_t fStoreCutStepInfo; // Whether to store which cut step is the effective one
d731501a 77
fad30eb8 78
79 ClassDef(AliDxHFEParticleSelectionMCEl, 4);
d731501a 80};
81
82#endif