]>
Commit | Line | Data |
---|---|---|
aec0ec32 | 1 | // |
5eb970a4 | 2 | // Class AliRsnAnalysisME |
aec0ec32 | 3 | // |
4 | // TODO | |
5 | // | |
5eb970a4 | 6 | // authors: Alberto Pulvirenti (alberto.pulvirenti@ct.infn.it) |
7 | // Martin Vala (martin.vala@cern.ch) | |
aec0ec32 | 8 | // |
9 | ||
aec0ec32 | 10 | #include "AliRsnAnalysisSE.h" |
11 | ||
12 | ClassImp(AliRsnAnalysisSE) | |
13 | ||
5eb970a4 | 14 | //_____________________________________________________________________________ |
15 | AliRsnAnalysisSE::AliRsnAnalysisSE(const char *name) : | |
16 | AliRsnVAnalysisTaskSE(name), | |
17 | fRsnAnalysisManager(), | |
e79f56bd | 18 | fPIDIndex(0), |
19 | fEvent(), | |
5eb970a4 | 20 | fESDCuts(0) |
aec0ec32 | 21 | { |
15d5fd02 | 22 | // |
aec0ec32 | 23 | // Default constructor |
15d5fd02 | 24 | // |
5eb970a4 | 25 | AliDebug(AliLog::kDebug+2,"<-"); |
26 | AliDebug(AliLog::kDebug+2,"->"); | |
aec0ec32 | 27 | } |
28 | ||
5eb970a4 | 29 | AliRsnAnalysisSE::AliRsnAnalysisSE(const AliRsnAnalysisSE& copy) : AliRsnVAnalysisTaskSE(copy), |
e79f56bd | 30 | fRsnAnalysisManager(copy.fRsnAnalysisManager), |
31 | fPIDIndex(copy.fPIDIndex), | |
32 | fEvent(copy.fEvent), | |
33 | fESDCuts(copy.fESDCuts) | |
aec0ec32 | 34 | { |
5eb970a4 | 35 | AliDebug(AliLog::kDebug+2,"<-"); |
36 | AliDebug(AliLog::kDebug+2,"->"); | |
aec0ec32 | 37 | } |
38 | ||
5eb970a4 | 39 | //_____________________________________________________________________________ |
40 | void AliRsnAnalysisSE::RsnUserCreateOutputObjects() | |
aec0ec32 | 41 | { |
5eb970a4 | 42 | AliDebug(AliLog::kDebug+2,"<-"); |
aec0ec32 | 43 | |
5eb970a4 | 44 | fOutList->Add(fRsnAnalysisManager.InitAllPairMgrs()); |
aec0ec32 | 45 | |
5eb970a4 | 46 | AliDebug(AliLog::kDebug+2,"->"); |
aec0ec32 | 47 | } |
48 | ||
5eb970a4 | 49 | void AliRsnAnalysisSE::RsnUserExec(Option_t* ) |
aec0ec32 | 50 | { |
5eb970a4 | 51 | AliDebug(AliLog::kDebug+2,"<-"); |
52 | if (fESDEvent) { | |
53 | AliDebug(AliLog::kDebug+1,Form("fESDEvent if %p",fESDEvent)); | |
54 | AliDebug(AliLog::kDebug,Form("ESD tracks %d",fESDEvent->GetNumberOfTracks())); | |
55 | } | |
56 | if (fMCEvent) { | |
57 | AliDebug(AliLog::kDebug+1,Form("fMCEvent if %p",fMCEvent)); | |
58 | AliDebug(AliLog::kDebug,Form("MC tracks %d",fMCEvent->GetNumberOfTracks())); | |
59 | } | |
60 | if (fAODEventIn) { | |
61 | AliDebug(AliLog::kDebug+1,Form("fAODEventIn if %p",fAODEventIn)); | |
62 | AliDebug(AliLog::kDebug,Form("AOD(in) tracks %d",fAODEventIn->GetNumberOfTracks())); | |
aec0ec32 | 63 | } |
64 | ||
5eb970a4 | 65 | if (fAODEventOut) { |
66 | AliDebug(AliLog::kDebug+1,Form("fAODEventOut if %p",fAODEventOut)); | |
67 | AliDebug(AliLog::kDebug,Form("AOD(out) tracks %d",fAODEventOut->GetNumberOfTracks())); | |
68 | } | |
aec0ec32 | 69 | |
5eb970a4 | 70 | // assign event |
71 | if (fAODEventOut) | |
72 | fEvent.SetRef(fAODEventOut); | |
73 | else if (fESDEvent) | |
74 | fEvent.SetRef(fESDEvent, fMCEvent); | |
75 | else | |
76 | return; | |
77 | if (fEvent.GetMultiplicity()<2) return; | |
aec0ec32 | 78 | |
5eb970a4 | 79 | // sort tracks w.r. to PID |
80 | fPIDIndex.ResetAll(fEvent.GetMultiplicity()); | |
81 | fPIDIndex.SetPriorProbability(fPrior); | |
82 | fPIDIndex.FillFromEvent(&fEvent, fESDCuts); | |
83 | fPIDIndex.SetCorrectIndexSize(); | |
aec0ec32 | 84 | |
5eb970a4 | 85 | fRsnAnalysisManager.ProcessAllPairMgrs(&fPIDIndex, &fEvent); |
aec0ec32 | 86 | |
5eb970a4 | 87 | AliDebug(AliLog::kDebug+2,"->"); |
aec0ec32 | 88 | } |
89 | ||
aec0ec32 | 90 | |
5eb970a4 | 91 | //_____________________________________________________________________________ |
92 | void AliRsnAnalysisSE::RsnTerminate(Option_t* ) | |
93 | { | |
94 | AliDebug(AliLog::kDebug+2,"<-"); | |
95 | AliDebug(AliLog::kDebug+2,"->"); | |
aec0ec32 | 96 | } |
97 | ||
5eb970a4 | 98 | //_____________________________________________________________________________ |
99 | AliRsnAnalysisManager* AliRsnAnalysisSE::GetAnalysisManager(TString name) | |
aec0ec32 | 100 | { |
5eb970a4 | 101 | if (!name.IsNull()) { |
102 | SetAnalysisManagerName(name.Data()); | |
aec0ec32 | 103 | } |
5eb970a4 | 104 | |
105 | return &fRsnAnalysisManager; | |
aec0ec32 | 106 | } |
107 | ||
aec0ec32 | 108 | |
5eb970a4 | 109 | //_____________________________________________________________________________ |
110 | void AliRsnAnalysisSE::SetPriorProbability(AliPID::EParticleType type, Double_t p) | |
111 | { | |
112 | // | |
113 | // Sets the prior probability for Realistic PID, for a | |
114 | // given particle species. | |
115 | // | |
aec0ec32 | 116 | |
5eb970a4 | 117 | if (type >= 0 && type < (Int_t)AliPID::kSPECIES) { |
118 | fPrior[type] = p; | |
15d5fd02 | 119 | } |
aec0ec32 | 120 | |
aec0ec32 | 121 | } |
922688c0 | 122 | |
5eb970a4 | 123 | //_____________________________________________________________________________ |
124 | void AliRsnAnalysisSE::DumpPriors() | |
922688c0 | 125 | { |
5eb970a4 | 126 | // |
127 | // Print all prior probabilities | |
128 | // | |
922688c0 | 129 | |
5eb970a4 | 130 | Int_t i; |
131 | for (i = 0; i < AliPID::kSPECIES; i++) { | |
132 | AliInfo(Form("Prior probability for %10s = %3.5f", AliPID::ParticleName((AliPID::EParticleType)i), fPrior[i])); | |
133 | } | |
922688c0 | 134 | } |
15d5fd02 | 135 | |
5eb970a4 | 136 | //_____________________________________________________________________________ |
137 | void AliRsnAnalysisSE::GetPriorProbability(Double_t *out) | |
15d5fd02 | 138 | { |
15d5fd02 | 139 | |
5eb970a4 | 140 | Int_t i; |
141 | for (i=0;i<AliPID::kSPECIES;i++) { | |
142 | out[i] = fPrior[i]; | |
15d5fd02 | 143 | } |
15d5fd02 | 144 | } |