#include <TFile.h>
#include <TPRegexp.h>
#include <AliLog.h>
#include <AliVEvent.h>
#include "AliAnalysisManager.h"
#include "AliMultiInputEventHandler.h"
#include "AliPIDResponse.h"
#include "AliPIDResponseInputHandler.h"
ClassImp(AliPIDResponseInputHandler)
AliPIDResponseInputHandler::AliPIDResponseInputHandler(const char *name) :
AliInputEventHandler(name, name),
fIsMC(kFALSE),
fPIDResponse(0x0),
fRun(0),
fOldRun(0),
fRecoPass(0),
fMCurrentMutliIH(0)
{
AliDebug(AliLog::kDebug + 10, "<-");
AliDebug(AliLog::kDebug + 10, "->");
}
AliPIDResponseInputHandler::~AliPIDResponseInputHandler()
{
AliDebug(AliLog::kDebug + 10, "<-");
AliDebug(AliLog::kDebug + 10, "->");
}
Bool_t AliPIDResponseInputHandler::Init(Option_t *opt)
{
AliDebug(AliLog::kDebug + 5, Form("<- opt=%s", opt));
AliDebug(AliLog::kDebug + 5, Form("->"));
return kTRUE;
}
Bool_t AliPIDResponseInputHandler::Init(TTree *tree, Option_t *opt)
{
AliDebug(AliLog::kDebug + 5, Form("<- %p %s opt=%s", (void *) tree, tree->GetName(), opt));
if (fParentHandler) {
TString tmp = "";
AliInputEventHandler *ih = 0;
fMCurrentMutliIH = dynamic_cast<AliMultiInputEventHandler*>(fParentHandler);
if (fMCurrentMutliIH) {
ih = fMCurrentMutliIH->GetFirstInputEventHandler();
if (ih) {
ih->CreatePIDResponse(fIsMC);
fPIDResponse = ih->GetPIDResponse();
if (!fPIDResponse) AliFatal("PIDResponse object was not created");
}
}
}
AliDebug(AliLog::kDebug + 5, Form("->"));
return kTRUE;
}
Bool_t AliPIDResponseInputHandler::Notify()
{
AliDebug(AliLog::kDebug + 5, Form("<-"));
AliDebug(AliLog::kDebug + 5, Form("->"));
return kTRUE;
}
Bool_t AliPIDResponseInputHandler::Notify(const char *path)
{
AliDebug(AliLog::kDebug + 5, Form("<- %s", path));
AliDebug(AliLog::kDebug + 5, "->");
return kTRUE;
}
Bool_t AliPIDResponseInputHandler::BeginEvent(Long64_t entry)
{
AliDebug(AliLog::kDebug + 5, Form("<- %lld", entry));
if (fParentHandler) {
TString tmp = "";
AliInputEventHandler *ih = 0;
fMCurrentMutliIH = dynamic_cast<AliMultiInputEventHandler*>(fParentHandler);
if (fMCurrentMutliIH) {
ih = fMCurrentMutliIH->GetFirstInputEventHandler();
if (ih) {
ih->CreatePIDResponse(fIsMC);
fPIDResponse = ih->GetPIDResponse();
if (!fPIDResponse) AliFatal("PIDResponse object was not created");
AliVEvent *event = ih->GetEvent();
if (!event) return kFALSE;
fRun = event->GetRunNumber();
if (fRun != fOldRun) {
SetRecoInfo();
fOldRun = fRun;
}
fPIDResponse->SetOADBPath(AliAnalysisManager::GetOADBPath());
fPIDResponse->InitialiseEvent(event,fRecoPass);
}
}
}
AliDebug(AliLog::kDebug + 5, "->");
return kTRUE;
}
Bool_t AliPIDResponseInputHandler::GetEntry()
{
AliDebug(AliLog::kDebug + 5, "<-");
AliDebug(AliLog::kDebug + 5, "->");
return kTRUE;
}
Bool_t AliPIDResponseInputHandler::FinishEvent()
{
AliDebug(AliLog::kDebug + 5, Form("<-"));
AliDebug(AliLog::kDebug + 5, Form("->"));
return kTRUE;
}
void AliPIDResponseInputHandler::SetRecoInfo()
{
fRecoPass=0;
AliVEventHandler *inputHandler=fMCurrentMutliIH->GetFirstInputEventHandler();
if (!inputHandler) return;
TTree *tree= (TTree*)inputHandler->GetTree();
TFile *file= (TFile*)tree->GetCurrentFile();
if (!file) {
AliError("Current file not found, cannot set reconstruction information");
return;
}
TString fileName(file->GetName());
if (fileName.Contains("/pass1") || fileName.Contains(".pass1")) {
fRecoPass=1;
} else if (fileName.Contains("/pass2") || fileName.Contains(".pass2")) {
fRecoPass=2;
} else if (fileName.Contains("/pass3") || fileName.Contains(".pass3")) {
fRecoPass=3;
}
fPIDResponse->SetCurrentFile(fileName.Data());
}
AliPIDResponseInputHandler.cxx:1 AliPIDResponseInputHandler.cxx:2 AliPIDResponseInputHandler.cxx:3 AliPIDResponseInputHandler.cxx:4 AliPIDResponseInputHandler.cxx:5 AliPIDResponseInputHandler.cxx:6 AliPIDResponseInputHandler.cxx:7 AliPIDResponseInputHandler.cxx:8 AliPIDResponseInputHandler.cxx:9 AliPIDResponseInputHandler.cxx:10 AliPIDResponseInputHandler.cxx:11 AliPIDResponseInputHandler.cxx:12 AliPIDResponseInputHandler.cxx:13 AliPIDResponseInputHandler.cxx:14 AliPIDResponseInputHandler.cxx:15 AliPIDResponseInputHandler.cxx:16 AliPIDResponseInputHandler.cxx:17 AliPIDResponseInputHandler.cxx:18 AliPIDResponseInputHandler.cxx:19 AliPIDResponseInputHandler.cxx:20 AliPIDResponseInputHandler.cxx:21 AliPIDResponseInputHandler.cxx:22 AliPIDResponseInputHandler.cxx:23 AliPIDResponseInputHandler.cxx:24 AliPIDResponseInputHandler.cxx:25 AliPIDResponseInputHandler.cxx:26 AliPIDResponseInputHandler.cxx:27 AliPIDResponseInputHandler.cxx:28 AliPIDResponseInputHandler.cxx:29 AliPIDResponseInputHandler.cxx:30 AliPIDResponseInputHandler.cxx:31 AliPIDResponseInputHandler.cxx:32 AliPIDResponseInputHandler.cxx:33 AliPIDResponseInputHandler.cxx:34 AliPIDResponseInputHandler.cxx:35 AliPIDResponseInputHandler.cxx:36 AliPIDResponseInputHandler.cxx:37 AliPIDResponseInputHandler.cxx:38 AliPIDResponseInputHandler.cxx:39 AliPIDResponseInputHandler.cxx:40 AliPIDResponseInputHandler.cxx:41 AliPIDResponseInputHandler.cxx:42 AliPIDResponseInputHandler.cxx:43 AliPIDResponseInputHandler.cxx:44 AliPIDResponseInputHandler.cxx:45 AliPIDResponseInputHandler.cxx:46 AliPIDResponseInputHandler.cxx:47 AliPIDResponseInputHandler.cxx:48 AliPIDResponseInputHandler.cxx:49 AliPIDResponseInputHandler.cxx:50 AliPIDResponseInputHandler.cxx:51 AliPIDResponseInputHandler.cxx:52 AliPIDResponseInputHandler.cxx:53 AliPIDResponseInputHandler.cxx:54 AliPIDResponseInputHandler.cxx:55 AliPIDResponseInputHandler.cxx:56 AliPIDResponseInputHandler.cxx:57 AliPIDResponseInputHandler.cxx:58 AliPIDResponseInputHandler.cxx:59 AliPIDResponseInputHandler.cxx:60 AliPIDResponseInputHandler.cxx:61 AliPIDResponseInputHandler.cxx:62 AliPIDResponseInputHandler.cxx:63 AliPIDResponseInputHandler.cxx:64 AliPIDResponseInputHandler.cxx:65 AliPIDResponseInputHandler.cxx:66 AliPIDResponseInputHandler.cxx:67 AliPIDResponseInputHandler.cxx:68 AliPIDResponseInputHandler.cxx:69 AliPIDResponseInputHandler.cxx:70 AliPIDResponseInputHandler.cxx:71 AliPIDResponseInputHandler.cxx:72 AliPIDResponseInputHandler.cxx:73 AliPIDResponseInputHandler.cxx:74 AliPIDResponseInputHandler.cxx:75 AliPIDResponseInputHandler.cxx:76 AliPIDResponseInputHandler.cxx:77 AliPIDResponseInputHandler.cxx:78 AliPIDResponseInputHandler.cxx:79 AliPIDResponseInputHandler.cxx:80 AliPIDResponseInputHandler.cxx:81 AliPIDResponseInputHandler.cxx:82 AliPIDResponseInputHandler.cxx:83 AliPIDResponseInputHandler.cxx:84 AliPIDResponseInputHandler.cxx:85 AliPIDResponseInputHandler.cxx:86 AliPIDResponseInputHandler.cxx:87 AliPIDResponseInputHandler.cxx:88 AliPIDResponseInputHandler.cxx:89 AliPIDResponseInputHandler.cxx:90 AliPIDResponseInputHandler.cxx:91 AliPIDResponseInputHandler.cxx:92 AliPIDResponseInputHandler.cxx:93 AliPIDResponseInputHandler.cxx:94 AliPIDResponseInputHandler.cxx:95 AliPIDResponseInputHandler.cxx:96 AliPIDResponseInputHandler.cxx:97 AliPIDResponseInputHandler.cxx:98 AliPIDResponseInputHandler.cxx:99 AliPIDResponseInputHandler.cxx:100 AliPIDResponseInputHandler.cxx:101 AliPIDResponseInputHandler.cxx:102 AliPIDResponseInputHandler.cxx:103 AliPIDResponseInputHandler.cxx:104 AliPIDResponseInputHandler.cxx:105 AliPIDResponseInputHandler.cxx:106 AliPIDResponseInputHandler.cxx:107 AliPIDResponseInputHandler.cxx:108 AliPIDResponseInputHandler.cxx:109 AliPIDResponseInputHandler.cxx:110 AliPIDResponseInputHandler.cxx:111 AliPIDResponseInputHandler.cxx:112 AliPIDResponseInputHandler.cxx:113 AliPIDResponseInputHandler.cxx:114 AliPIDResponseInputHandler.cxx:115 AliPIDResponseInputHandler.cxx:116 AliPIDResponseInputHandler.cxx:117 AliPIDResponseInputHandler.cxx:118 AliPIDResponseInputHandler.cxx:119 AliPIDResponseInputHandler.cxx:120 AliPIDResponseInputHandler.cxx:121 AliPIDResponseInputHandler.cxx:122 AliPIDResponseInputHandler.cxx:123 AliPIDResponseInputHandler.cxx:124 AliPIDResponseInputHandler.cxx:125 AliPIDResponseInputHandler.cxx:126 AliPIDResponseInputHandler.cxx:127 AliPIDResponseInputHandler.cxx:128 AliPIDResponseInputHandler.cxx:129 AliPIDResponseInputHandler.cxx:130 AliPIDResponseInputHandler.cxx:131 AliPIDResponseInputHandler.cxx:132 AliPIDResponseInputHandler.cxx:133 AliPIDResponseInputHandler.cxx:134 AliPIDResponseInputHandler.cxx:135 AliPIDResponseInputHandler.cxx:136 AliPIDResponseInputHandler.cxx:137 AliPIDResponseInputHandler.cxx:138 AliPIDResponseInputHandler.cxx:139 AliPIDResponseInputHandler.cxx:140 AliPIDResponseInputHandler.cxx:141 AliPIDResponseInputHandler.cxx:142 AliPIDResponseInputHandler.cxx:143 AliPIDResponseInputHandler.cxx:144 AliPIDResponseInputHandler.cxx:145 AliPIDResponseInputHandler.cxx:146 AliPIDResponseInputHandler.cxx:147 AliPIDResponseInputHandler.cxx:148 AliPIDResponseInputHandler.cxx:149 AliPIDResponseInputHandler.cxx:150 AliPIDResponseInputHandler.cxx:151 AliPIDResponseInputHandler.cxx:152 AliPIDResponseInputHandler.cxx:153 AliPIDResponseInputHandler.cxx:154 AliPIDResponseInputHandler.cxx:155 AliPIDResponseInputHandler.cxx:156 AliPIDResponseInputHandler.cxx:157 AliPIDResponseInputHandler.cxx:158 AliPIDResponseInputHandler.cxx:159 AliPIDResponseInputHandler.cxx:160 AliPIDResponseInputHandler.cxx:161 AliPIDResponseInputHandler.cxx:162 AliPIDResponseInputHandler.cxx:163 AliPIDResponseInputHandler.cxx:164 AliPIDResponseInputHandler.cxx:165 AliPIDResponseInputHandler.cxx:166 AliPIDResponseInputHandler.cxx:167 AliPIDResponseInputHandler.cxx:168 AliPIDResponseInputHandler.cxx:169 AliPIDResponseInputHandler.cxx:170 AliPIDResponseInputHandler.cxx:171 AliPIDResponseInputHandler.cxx:172 AliPIDResponseInputHandler.cxx:173 AliPIDResponseInputHandler.cxx:174 AliPIDResponseInputHandler.cxx:175 AliPIDResponseInputHandler.cxx:176 AliPIDResponseInputHandler.cxx:177 AliPIDResponseInputHandler.cxx:178 AliPIDResponseInputHandler.cxx:179 AliPIDResponseInputHandler.cxx:180 AliPIDResponseInputHandler.cxx:181 AliPIDResponseInputHandler.cxx:182 AliPIDResponseInputHandler.cxx:183 AliPIDResponseInputHandler.cxx:184 AliPIDResponseInputHandler.cxx:185 AliPIDResponseInputHandler.cxx:186 AliPIDResponseInputHandler.cxx:187 AliPIDResponseInputHandler.cxx:188 AliPIDResponseInputHandler.cxx:189 AliPIDResponseInputHandler.cxx:190 AliPIDResponseInputHandler.cxx:191 AliPIDResponseInputHandler.cxx:192 AliPIDResponseInputHandler.cxx:193 AliPIDResponseInputHandler.cxx:194 AliPIDResponseInputHandler.cxx:195 AliPIDResponseInputHandler.cxx:196 AliPIDResponseInputHandler.cxx:197 AliPIDResponseInputHandler.cxx:198 AliPIDResponseInputHandler.cxx:199 AliPIDResponseInputHandler.cxx:200 AliPIDResponseInputHandler.cxx:201 AliPIDResponseInputHandler.cxx:202 AliPIDResponseInputHandler.cxx:203 AliPIDResponseInputHandler.cxx:204 AliPIDResponseInputHandler.cxx:205 AliPIDResponseInputHandler.cxx:206 AliPIDResponseInputHandler.cxx:207 AliPIDResponseInputHandler.cxx:208 AliPIDResponseInputHandler.cxx:209 AliPIDResponseInputHandler.cxx:210 AliPIDResponseInputHandler.cxx:211 AliPIDResponseInputHandler.cxx:212 AliPIDResponseInputHandler.cxx:213 AliPIDResponseInputHandler.cxx:214 AliPIDResponseInputHandler.cxx:215 AliPIDResponseInputHandler.cxx:216 AliPIDResponseInputHandler.cxx:217 AliPIDResponseInputHandler.cxx:218 AliPIDResponseInputHandler.cxx:219 AliPIDResponseInputHandler.cxx:220