]> git.uio.no Git - u/mrichter/AliRoot.git/blame - PWG/Tools/AliAnalysisHelperJetTasks.h
Replace c-string by stl string in order to fix coverity defects
[u/mrichter/AliRoot.git] / PWG / Tools / AliAnalysisHelperJetTasks.h
CommitLineData
43ee6454 1//
2// Helper Class that contains a lot of
3// usefull static functions jet matchin pythia access etc.
4//
f3050824 5#ifndef ALIANALYSISHELPERJETTASKS_H
6#define ALIANALYSISHELPERJETTASKS_H
f3050824 7#include "TObject.h"
6f3f79de 8
f3050824 9class AliMCEvent;
db6bcb0e 10class AliAODJet;
59543510 11class AliVEvent;
519378fb 12class TString;
c74e9b54 13class TArrayI;
c0ff24c6 14class TArrayF;
f3050824 15class AliGenPythiaEventHeader;
6f3f79de 16class TVector3;
955d29ba 17class AliGenEventHeader;
f3050824 18
f3050824 19class AliAnalysisHelperJetTasks : public TObject {
20 public:
21 AliAnalysisHelperJetTasks() : TObject() {;}
22 virtual ~AliAnalysisHelperJetTasks(){;}
383d44fd 23
24
3dc5a1a4 25 enum {kMaxJets = 6}; // needed for array size not to fragemnt memory on the heap by many new/delete
45a11aef 26
27
28 enum { kNone = 1<<0,
29 kBunchBunch = 1<<1,
30 kBunchEmpty = 1<<2,
31 kEmptyEmpty= 1<<3,
3493c3a9 32 kV0A=1<<4,
33 kV0C=1<<5,
34 kNoV0BG=1<<6,
35 kSPDFO=1<<7,
36 kPhysicsSelection = 1<<8,
37 kVertexIn = 1<<9,
38 kIsCosmic = 1<<10,
39 kIsPileUp = 1<<11,
40 kIsMCND=1<<12,
41 kIsMCDD=1<<13,
42 kIsMCSD=1<<14,
43 kTotalSelections = (1<<15) - 1};
59543510 44
7fa8b2da 45 enum Trigger {kAcceptAll = 0,kMB1,kMB2,kMB3,kSPDGFO,kTrigger}; //
955d29ba 46 // same as in PWG0Helper
47 enum MCProcessType { kInvalidProcess = -1, kND = 0x1, kDD = 0x2, kSD = 0x4, kOnePart = 0x8 };
48
aeb249fb 49 static AliGenPythiaEventHeader* GetPythiaEventHeader(const AliMCEvent *mcEvent);
955d29ba 50 static void PrintStack(AliMCEvent *mcEvent,Int_t iFirst = 0,Int_t iLast = 0,Int_t iMaxPrint = 10);
43ee6454 51 static void GetClosestJets(const AliAODJet *genJets,
955d29ba 52 const Int_t &kGenJets,
aeb249fb 53 const AliAODJet *recJets,
955d29ba 54 const Int_t &kRecJets,
55 Int_t *iGenIndex,
56 Int_t *iRecIndex,
c74e9b54 57 Int_t iDebug = 0, Float_t maxDist = 0.3);
58
aeb249fb 59 static void GetClosestJets(const TList *genJetsList,const Int_t &kGenJets,
60 const TList *recJetsList,const Int_t &kRecJets,
c74e9b54 61 TArrayI &iGenIndex,TArrayI &iRecIndex,
62 Int_t iDebug = 0,Float_t maxDist = 0.3);
a7ac11bf 63
aeb249fb 64 static void GetJetMatching(const TList *genJetsList, const Int_t &kGenJets,
65 const TList *recJetsList, const Int_t &kRecJets,
a7ac11bf 66 TArrayI &iMatchIndex, TArrayF &fPtFraction,
739e606a 67 Int_t iDebug = 0, Float_t maxDist = 0.3, Int_t mode=1);
a7ac11bf 68
739e606a 69 static Double_t GetFractionOfJet(const AliAODJet *recJet,const AliAODJet *genJet,Int_t mode=1);
c74e9b54 70
955d29ba 71
57cd3e7c 72 static void MergeOutputDirs(const char* cFiles,const char* cPattern,const char *cOutFile,Bool_t bUpdate = false); // merges all directories containing the pattern
c6049d04 73
04152663 74 static void MergeOutput(const char* cFiles,const char* cDir = "",const char *cList = "",const char* cOutFile ="allpt.root",Bool_t bUpdate = false); // Merges the files in the input text file needs the two histograms fh1PtHard_Trials, fh1Xsec and the name of the input list
955d29ba 75 static Bool_t PythiaInfoFromFile(const char* currFile,Float_t &fXsec,Float_t &fTrials);// get the cross section and the trails either from pyxsec.root or from pysec_hists.root
1aa3886d 76 static Bool_t PrintDirectorySize(const char* currFile,Int_t iDetail = -1); // print the size of the output on a given file
aeb249fb 77 static Bool_t GetEventShapes(TVector3 &n01,const TVector3 * pTrack, Int_t nTracks, Double_t * eventShapes);
955d29ba 78
79 static MCProcessType GetPythiaEventProcessType(AliGenEventHeader* aHeader, Bool_t adebug = kFALSE);
80 static MCProcessType GetDPMjetEventProcessType(AliGenEventHeader* aHeader, Bool_t adebug = kFALSE);
81 static Int_t GetLastProcessType() { return fgLastProcessType; }
59543510 82
83 static Bool_t Selected(Bool_t bSet = kFALSE,Bool_t bNew = kTRUE); // static function to store the state of selection from service task
2c7fd246 84 static Double_t ReactionPlane(Bool_t bSet = kFALSE,Double_t fNew = 0);
40445651 85 static Int_t GetPhiBin(Double_t phi,Int_t fNRPbins);
f2dd0695 86
87 static Bool_t IsPileUp(); // Wrapper for SelectInfo with PileUp
88 static Bool_t IsCosmic(); // Wrapper for SelectInfo with cosmic
45a11aef 89 static Bool_t TestSelectInfo(UInt_t iMask); // Wrapper for testing the SelectInfo bitmask
f4132e7d 90 static Bool_t TestEventClass(Int_t iClass); // Wrapper for testing the SelectInfo bitmask
f2dd0695 91
92 static UInt_t SelectInfo(Bool_t bSet = kFALSE,UInt_t iNew = 0); // static function to store the state bitmask of the selection from service task
f4132e7d 93 static Int_t EventClass(Bool_t bSet = kFALSE,Int_t iNew = 0); // static function to store the event class of the selection from service task
59543510 94
95 // these methods have been essentially copied from PWG0/AliTriggerAnalysis and expanded to use with AOD
96 static Bool_t IsTriggerFired(const AliVEvent* aEsd, Trigger trigger);
59543510 97
f3050824 98 private:
99
955d29ba 100 static Int_t fgLastProcessType; // stores the raw value of the last process type extracted
101
739e606a 102 ClassDef(AliAnalysisHelperJetTasks, 7)
f3050824 103};
104
105#endif // ALIANALYSISHELPERJETTASKS_H