1 /**************************************************************************
2 * Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
4 * Author: The ALICE Off-line Project. *
5 * Contributors are mentioned in the code where appropriate. *
7 * Permission to use, copy, modify and distribute this software and its *
8 * documentation strictly for non-commercial purposes is hereby granted *
9 * without fee, provided that the above copyright notice appears in all *
10 * copies and that both the copyright notice and this permission notice *
11 * appear in the supporting documentation. The authors make no claims *
12 * about the suitability of this software for any purpose. It is *
13 * provided "as is" without express or implied warranty. *
14 **************************************************************************/
16 // Class for electrons from beauty study
17 // Counting electrons from beauty
18 // by DCA cuts, background subtraction
21 // Hongyan Yang <hongyan@physi.uni-heidelberg.de>
24 #ifndef ALIHFEDISPLACEDELECTRONS_H
25 #define ALIHFEDISPLACEDELECTRONS_H
56 class AliHFEdisplacedElectrons : public TObject{
61 kPDGelectron = kElectron,
68 }; // PDG codes to be used
70 AliHFEdisplacedElectrons(); // default constructor
71 AliHFEdisplacedElectrons(const AliHFEdisplacedElectrons &p); // copy constructor
72 AliHFEdisplacedElectrons &operator=(const AliHFEdisplacedElectrons &ref); // assignment operator
74 virtual ~AliHFEdisplacedElectrons();
77 void CreateOutputs(TList* const displacedList);
79 void FillMCOutput(AliESDEvent* fESDEvent, AliESDtrack *track, AliStack *stack);
80 void FillESDOutput(AliESDEvent* fESDEvent, AliESDtrack *track);
82 Int_t GetMCpid(AliStack* stack, Int_t label) const;
84 Bool_t HasMCData() const { return TestBit(kHasMCData); };
85 void SetHasMCData(Bool_t hasMCdata = kTRUE) { SetBit(kHasMCData,hasMCdata); };
86 void SetDebugLevel(Int_t debugLevel){ fDebugLevel = debugLevel; };
88 void PostAnalysis() const;
94 kHasMCData = BIT(15), // bitset for mc data usage
102 kEleDirectPhotonConv = 1,
108 }; // electron source index
120 }; // several constant to be used
122 UInt_t fDebugLevel; // debug level
124 Int_t ElectronFromSource(AliStack *stack, Int_t eleLabel) const;
125 Int_t ElePhotonDirect(AliStack *stack, Int_t label) const;
126 Int_t ElectronFromCharm(AliStack *stack, Int_t eleLabel) const;
127 Int_t CharmFromBeauty(AliStack *stack, Int_t charmLabel) const;
129 Int_t GetMotherLabel(AliStack *stack, Int_t label) const;
130 Float_t GetRapidity(TParticle *part) const;
131 Float_t GetTrackRapidity(AliESDtrack *track) const;
133 static const Float_t fgkDcaMinIntv[kNDcaMin]; // DCA cut min limit
134 static const Float_t fgkDcaMinPtIntv[kNPtIntv-1]; // DCA cut min limit in different pT bins
135 static const Float_t fgkPtIntv[kNPtIntv]; // all pt bins
137 static const Char_t *fgkKineVar[kNKineVar]; // particle names
138 static const Char_t *fgkKineVarTitle[kNKineVar]; // particle names
140 THnSparseF *fTHnSparseDcaMcPionInfo; //! container for MC pion part
141 THnSparseF *fTHnSparseDcaMcEleInfo; //! container for MC electron part
142 THnSparseF *fTHnSparseDcaDataEleInfo; //! container for Data electron part
144 TList *fOutputList; //! output container
145 ClassDef(AliHFEdisplacedElectrons, 0);