]>
Commit | Line | Data |
---|---|---|
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 | 9 | class AliMCEvent; |
db6bcb0e | 10 | class AliAODJet; |
59543510 | 11 | class AliVEvent; |
519378fb | 12 | class TString; |
c74e9b54 | 13 | class TArrayI; |
c0ff24c6 | 14 | class TArrayF; |
f3050824 | 15 | class AliGenPythiaEventHeader; |
6f3f79de | 16 | class TVector3; |
955d29ba | 17 | class AliGenEventHeader; |
f3050824 | 18 | |
f3050824 | 19 | class 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 |