2 // Class AliRsnAnalysisME
7 // authors: Alberto Pulvirenti (alberto.pulvirenti@ct.infn.it)
8 // Martin Vala (martin.vala@cern.ch)
11 #include "AliESDEvent.h"
12 #include "AliMCEvent.h"
13 #include "AliAODEvent.h"
15 #include "AliRsnAnalysisME.h"
17 ClassImp(AliRsnAnalysisME)
19 //_____________________________________________________________________________
20 AliRsnAnalysisME::AliRsnAnalysisME(const char *name) :
21 AliRsnVAnalysisTaskME(name),
22 fRsnAnalysisManager(),
29 // Default constructor
31 AliDebug(AliLog::kDebug+2,"<-");
32 AliDebug(AliLog::kDebug+2,"->");
35 AliRsnAnalysisME::AliRsnAnalysisME(const AliRsnAnalysisME& copy) : AliRsnVAnalysisTaskME(copy),
36 fRsnAnalysisManager(copy.fRsnAnalysisManager),
37 fPIDIndex(copy.fPIDIndex),
38 fPIDIndexMix(copy.fPIDIndexMix),
40 fEventMix(copy.fEvent)
42 AliDebug(AliLog::kDebug+2,"<-");
43 AliDebug(AliLog::kDebug+2,"->");
46 //_____________________________________________________________________________
47 void AliRsnAnalysisME::RsnUserCreateOutputObjects()
52 AliLog::SetClassDebugLevel(GetName(), fLogType);
53 AliDebug(AliLog::kDebug+2,"<-");
54 // AliRsnVAnalysisTaskME::UserCreateOutputObjects();
56 // fRsnEvent = new AliRsnEvent();
57 // fRsnEvent->SetName("rsnEvents");
59 // AddAODBranch("AliRsnEvent", &fRsnEvent);
61 // fOutList = new TList();
63 // fOutList->Add(fTaskInfo.GenerateInfoList());
66 fRsnAnalysisManager.InitAllPairMgrs(fOutList);
67 // fRsnAnalysisManager.Print();
69 AliDebug(AliLog::kDebug+2,"->");
72 void AliRsnAnalysisME::RsnUserExec(Option_t*)
78 AliDebug(AliLog::kDebug+2,"<-");
80 AliDebug(AliLog::kDebug+1,Form("fESDEvent if %p",fESDEvent));
81 AliDebug(AliLog::kDebug,Form("ESD tracks %d",fESDEvent->GetNumberOfTracks()));
84 AliDebug(AliLog::kDebug+1,Form("fMCEvent if %p",fMCEvent));
85 AliDebug(AliLog::kDebug,Form("MC tracks %d",fMCEvent->GetNumberOfTracks()));
88 AliDebug(AliLog::kDebug+1,Form("fAODEvent if %p",fAODEvent));
89 AliDebug(AliLog::kDebug,Form("AOD tracks %d",fAODEvent->GetNumberOfTracks()));
92 AliAODEvent* aod1 = (AliAODEvent*)GetEvent(0);
93 AliAODEvent* aod2 = (AliAODEvent*)GetEvent(1);
97 fEventMix.SetRef(aod2);
98 if (fEvent.GetMultiplicity() < 2) return;
99 if (fEventMix.GetMultiplicity() < 2) return;
101 // sort tracks w.r. to PID
102 fPIDIndex.ResetAll(fEvent.GetMultiplicity());
103 fEvent.SetPriorProbability(fPrior);
104 fPIDIndex.FillFromEvent(&fEvent);
105 fPIDIndex.SetCorrectIndexSize();
107 fPIDIndexMix.ResetAll(fEventMix.GetMultiplicity());
108 fEventMix.SetPriorProbability(fPrior);
109 fPIDIndexMix.FillFromEvent(&fEventMix);
110 fPIDIndexMix.SetCorrectIndexSize();
112 fRsnAnalysisManager.ProcessAllPairMgrs(&fPIDIndex, &fEvent, &fPIDIndexMix, &fEventMix);
114 AliDebug(AliLog::kDebug,Form("AOD tracks %d",aod1->GetNumberOfTracks()));
115 AliDebug(AliLog::kDebug,Form("AOD tracks %d",aod2->GetNumberOfTracks()));
116 AliDebug(AliLog::kDebug+2,"->");
120 //_____________________________________________________________________________
121 void AliRsnAnalysisME::RsnTerminate(Option_t*)
127 AliDebug(AliLog::kDebug+2,"<-");
128 AliDebug(AliLog::kDebug+2,"->");
131 //_____________________________________________________________________________
132 AliRsnAnalysisManager* AliRsnAnalysisME::GetAnalysisManager(TString name)
135 // Gets all prior probabilities to out
138 if (!name.IsNull()) {
139 SetAnalysisManagerName(name.Data());
141 return &fRsnAnalysisManager;
144 //_____________________________________________________________________________
145 void AliRsnAnalysisME::SetPriorProbability(AliPID::EParticleType type, Double_t p)
148 // Sets the prior probability for Realistic PID, for a
149 // given particle species.
152 if (type >= 0 && type < (Int_t)AliPID::kSPECIES) {
158 //_____________________________________________________________________________
159 void AliRsnAnalysisME::DumpPriors()
162 // Print all prior probabilities
166 for (i = 0; i < AliPID::kSPECIES; i++) {
167 AliInfo(Form("Prior probability for %10s = %3.5f", AliPID::ParticleName((AliPID::EParticleType)i), fPrior[i]));
171 //_____________________________________________________________________________
172 void AliRsnAnalysisME::GetPriorProbability(Double_t *out) const
175 // Gets all prior probabilities to out
179 for (i=0;i<AliPID::kSPECIES;i++) {