]> git.uio.no Git - u/mrichter/AliRoot.git/blame - PWG4/PartCorrBase/AliMCAnalysisUtils.h
AliCFGridSparse : propagate the bin labels during projections
[u/mrichter/AliRoot.git] / PWG4 / PartCorrBase / AliMCAnalysisUtils.h
CommitLineData
7cd4e982 1#ifndef ALIMCANALYSISUTILS_H
2#define ALIMCANALYSISUTILS_H
3/* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
4 * See cxx source for full Copyright notice */
5/* $Id: $ */
6
7//_________________________________________________________________________
8// Class for analysis utils for MC data
9// stored in stack or event header.
10// Contains:
11// - method to check the origin of a given track/cluster
12// - method to obtain the generated jets
13//
14//*-- Author: Gustavo Conesa (INFN-LNF)
15
16// --- ROOT system ---
c3ab95b2 17#include <TObject.h>
18#include <TString.h>
7cd4e982 19class TList ;
20
21//--- AliRoot system ---
22class AliCaloTrackReader ;
23class AliStack ;
24
25class AliMCAnalysisUtils : public TObject {
26
27public:
28
29 AliMCAnalysisUtils() ; // ctor
d151d2ee 30 AliMCAnalysisUtils(const AliMCAnalysisUtils & mcu) ; // cpy ctor
7cd4e982 31 virtual ~AliMCAnalysisUtils() ;//virtual dtor
32
d151d2ee 33private:
7b095e3b 34 AliMCAnalysisUtils & operator = (const AliMCAnalysisUtils & ) ;//cpy assignment
d151d2ee 35
36public:
37 //"Mostly" photon parent types on line 1,
38 //
39 //then "mostly" electron parent types on line 2, (e.g. electrons can
40 //come from pi0 decay)
41 //then charged particles on line 3,
42 //followed by other and unknown on line 4
43 enum mcTypes {kMCPhoton, kMCPrompt, kMCFragmentation, kMCISR, kMCPi0Decay, kMCEtaDecay, kMCOtherDecay, kMCConversion,
44 kMCElectron, kMCEFromCFromB, kMCEFromC, kMCEFromB, kMCZDecay, kMCWDecay,
45 kMCMuon, kMCPion, kMCPi0, kMCKaon, kMCEta, kMCProton,
46 kMCOther, kMCUnknown};
902aa95c 47
48 //Check only the label of the most significant particle
7cd4e982 49 Int_t CheckOrigin(const Int_t label, AliCaloTrackReader * reader, const Int_t input) ;
902aa95c 50 //Check the label of the most significant particle but do checks on the rest of the contributing labels
51 Int_t CheckOrigin(const Int_t *label, const Int_t nlabels, AliCaloTrackReader * reader, const Int_t input) ;
7cd4e982 52
902aa95c 53 Int_t CheckOriginInStack(const Int_t *labels, const Int_t nlabels, AliStack * stack) ;
54 Int_t CheckOriginInAOD (const Int_t *labels, const Int_t nlabels, TClonesArray* mcparticles) ;
55
56 void CheckOverlapped2GammaDecay(const Int_t *labels, const Int_t nlabels, const Int_t mesonIndex, AliStack * stack, Int_t & tag);
57 void CheckOverlapped2GammaDecay(const Int_t *labels, const Int_t nlabels, const Int_t mesonIndex, TClonesArray* mcparticles, Int_t & tag);
58
8dacfd76 59 TList * GetJets(AliCaloTrackReader * const reader) ;
7cd4e982 60
8dacfd76 61 void SetTagBit(Int_t &tag, const UInt_t set) const {
7cd4e982 62 // Set bit of type set (mcTypes) in tag
63 tag |= (1<<set) ;
64 }
65
66 Bool_t CheckTagBit(const Int_t tag, const UInt_t test) const {
67 // Check if in tag the bit test (mcTypes) is set.
68 if (tag & (1<<test) ) return kTRUE ;
69 else return kFALSE ;
70 }
71
72
73 void Print(const Option_t * opt)const;
74
75 void SetDebug(Int_t deb) {fDebug=deb;}
76 Int_t GetDebug() const {return fDebug;}
77
78 void SetMCGenerator(TString mcgen) {fMCGenerator=mcgen;}
79 TString GetMCGenerator() const {return fMCGenerator;}
80
81private:
82 Int_t fCurrentEvent; // Current Event
83 Int_t fDebug; // Debug level
84 TList * fJetsList; // List of jets
85 TString fMCGenerator; // MC geneator used to generate data in simulation
86
87 ClassDef(AliMCAnalysisUtils,3)
88} ;
89
90
91#endif //ALIMCANALYSISUTILS_H
92
93
94