#include "AliLog.h"
#include "AliMCEventHandler.h"
#include "AliMultiInputEventHandler.h"
ClassImp(AliMultiInputEventHandler)
static Option_t *gCurrentMultiDataType = "ESD";
AliMultiInputEventHandler::AliMultiInputEventHandler(const Int_t size, const char *name) :
AliInputEventHandler(name, name),
fBufferSize(size),
fInputHandlers(),
fAnalysisType(0)
{
AliDebug(AliLog::kDebug + 10, "<-");
fInputHandlers.SetOwner(kTRUE);
AliDebug(AliLog::kDebug + 10, "->");
}
AliMultiInputEventHandler::~AliMultiInputEventHandler()
{
AliDebug(AliLog::kDebug + 10, "<-");
AliDebug(AliLog::kDebug + 10, "->");
}
AliVEventHandler *AliMultiInputEventHandler::InputEventHandler(const Int_t index)
{
AliDebug(AliLog::kDebug + 5, Form("<-"));
if ((index >= 0) && (index < fBufferSize)) {
return (AliVEventHandler *) fInputHandlers.At(index);
}
AliDebug(AliLog::kDebug + 5, Form("->"));
return 0;
}
void AliMultiInputEventHandler::AddInputEventHandler(AliVEventHandler*inHandler)
{
if (inHandler->InheritsFrom("AliESDInputHandler")) gCurrentMultiDataType = "ESD";
if (inHandler->InheritsFrom("AliAODInputHandler")) gCurrentMultiDataType = "AOD";
AliDebug(AliLog::kDebug + 5, Form("<-"));
AliDebug(AliLog::kDebug + 5, Form("Creating %d input event handlers ...", fBufferSize));
AliDebug(AliLog::kDebug + 5, Form("Adding input handler with index %d ...", fBufferSize));
fInputHandlers.Add(inHandler);
fBufferSize++;
AliDebug(AliLog::kDebug + 5, Form("->"));
}
Bool_t AliMultiInputEventHandler::Init(Option_t *opt)
{
fAnalysisType = opt;
AliDebug(AliLog::kDebug + 5, Form("<- \"%s\"", opt));
AliInputEventHandler *eh = 0;
TObjArrayIter next(&fInputHandlers);
while ((eh = (AliInputEventHandler *) next())) {
eh->Init(fAnalysisType);
}
AliDebug(AliLog::kDebug + 5, Form("->"));
return AliInputEventHandler::Init(opt);
}
Bool_t AliMultiInputEventHandler::Init(TTree *tree, Option_t *opt)
{
fAnalysisType = opt;
AliDebug(AliLog::kDebug + 5, Form("<- %p %s", (void *) tree, tree->GetName()));
if (!tree) {
AliError(Form("-> tree is null"));
return kFALSE;
}
AliInputEventHandler *eh = 0;
TObjArrayIter next(&fInputHandlers);
while ((eh = (AliInputEventHandler *) next())) {
eh->SetParentHandler(this);
eh->Init(tree, fAnalysisType);
}
AliDebug(AliLog::kDebug + 5, Form("->"));
return AliInputEventHandler::Init(tree, opt);
}
Bool_t AliMultiInputEventHandler::Notify()
{
AliDebug(AliLog::kDebug + 5, Form("<-"));
AliInputEventHandler *eh = 0;
TObjArrayIter next(&fInputHandlers);
while ((eh = (AliInputEventHandler *) next())) {
eh->Notify();
}
AliDebug(AliLog::kDebug + 5, Form("->"));
return AliInputEventHandler::Notify();
}
Bool_t AliMultiInputEventHandler::Notify(const char *path)
{
AliDebug(AliLog::kDebug + 5, Form("<- %s", path));
AliInputEventHandler *eh = 0;
TObjArrayIter next(&fInputHandlers);
while ((eh = (AliInputEventHandler *) next())) {
eh->Notify(path);
}
AliDebug(AliLog::kDebug + 5, Form("->"));
return AliInputEventHandler::Notify(path);
}
Bool_t AliMultiInputEventHandler::BeginEvent(Long64_t entry)
{
AliDebug(AliLog::kDebug + 5, Form("<- %lld", entry));
AliInputEventHandler *eh = 0;
TObjArrayIter next(&fInputHandlers);
while ((eh = (AliInputEventHandler *) next())) {
eh->BeginEvent(entry);
}
GetEntry();
AliDebug(AliLog::kDebug + 5, Form("->"));
return AliInputEventHandler::BeginEvent(entry);
}
Bool_t AliMultiInputEventHandler::GetEntry()
{
AliDebug(AliLog::kDebug + 5, Form("<-"));
AliInputEventHandler *eh = 0;
TObjArrayIter next(&fInputHandlers);
while ((eh = (AliInputEventHandler *) next())) {
eh->GetEntry();
}
AliDebug(AliLog::kDebug + 5, Form("->"));
return AliInputEventHandler::GetEntry();
}
Bool_t AliMultiInputEventHandler::FinishEvent()
{
AliDebug(AliLog::kDebug + 5, Form("<-"));
AliInputEventHandler *eh = 0;
TObjArrayIter next(&fInputHandlers);
while ((eh = (AliInputEventHandler *) next())) {
eh->FinishEvent();
}
AliDebug(AliLog::kDebug + 5, Form("->"));
return AliInputEventHandler::FinishEvent();
}
AliInputEventHandler *AliMultiInputEventHandler::GetFirstInputEventHandler()
{
AliDebug(AliLog::kDebug + 5, Form("<-"));
AliVEventHandler *eh = 0;
AliInputEventHandler *handler = 0;
TObjArrayIter next(&fInputHandlers);
while ((eh = (AliVEventHandler *) next())) {
handler = dynamic_cast<AliInputEventHandler *>(eh);
if (handler) return handler;
}
AliDebug(AliLog::kDebug + 5, Form("->"));
return 0;
}
AliMCEventHandler *AliMultiInputEventHandler::GetFirstMCEventHandler()
{
AliDebug(AliLog::kDebug + 5, Form("<-"));
AliVEventHandler *eh = 0;
AliMCEventHandler *handler = 0;
TObjArrayIter next(&fInputHandlers);
while ((eh = (AliVEventHandler *) next())) {
handler = dynamic_cast<AliMCEventHandler *>(eh);
if (handler) return handler;
}
AliDebug(AliLog::kDebug + 5, Form("->"));
return 0;
}
AliMultiInputEventHandler *AliMultiInputEventHandler::GetFirstMultiInputHandler()
{
AliDebug(AliLog::kDebug + 5, Form("<-"));
AliVEventHandler *eh = 0;
AliMultiInputEventHandler *handler = 0;
TObjArrayIter next(&fInputHandlers);
while ((eh = (AliVEventHandler *) next())) {
handler = dynamic_cast<AliMultiInputEventHandler *>(eh);
if (handler) return handler;
}
AliDebug(AliLog::kDebug + 5, Form("->"));
return 0;
}
Option_t *AliMultiInputEventHandler::GetDataType() const
{
return gCurrentMultiDataType;
}
UInt_t AliMultiInputEventHandler::IsEventSelected()
{
AliInputEventHandler *firstIH = dynamic_cast<AliInputEventHandler*> (GetFirstInputEventHandler());
if (firstIH) {
return firstIH->IsEventSelected();
}
return fIsSelectedResult;
}
AliPIDResponse* AliMultiInputEventHandler::GetPIDResponse()
{
AliInputEventHandler *firstIH = dynamic_cast<AliInputEventHandler*> (GetFirstInputEventHandler());
if (firstIH) {
return firstIH->GetPIDResponse();
}
return 0x0;
}
void AliMultiInputEventHandler::CreatePIDResponse(Bool_t isMC)
{
AliInputEventHandler *firstIH = dynamic_cast<AliInputEventHandler*> (GetFirstInputEventHandler());
if (firstIH) {
firstIH->CreatePIDResponse(isMC);
}
}
AliMultiInputEventHandler.cxx:1 AliMultiInputEventHandler.cxx:2 AliMultiInputEventHandler.cxx:3 AliMultiInputEventHandler.cxx:4 AliMultiInputEventHandler.cxx:5 AliMultiInputEventHandler.cxx:6 AliMultiInputEventHandler.cxx:7 AliMultiInputEventHandler.cxx:8 AliMultiInputEventHandler.cxx:9 AliMultiInputEventHandler.cxx:10 AliMultiInputEventHandler.cxx:11 AliMultiInputEventHandler.cxx:12 AliMultiInputEventHandler.cxx:13 AliMultiInputEventHandler.cxx:14 AliMultiInputEventHandler.cxx:15 AliMultiInputEventHandler.cxx:16 AliMultiInputEventHandler.cxx:17 AliMultiInputEventHandler.cxx:18 AliMultiInputEventHandler.cxx:19 AliMultiInputEventHandler.cxx:20 AliMultiInputEventHandler.cxx:21 AliMultiInputEventHandler.cxx:22 AliMultiInputEventHandler.cxx:23 AliMultiInputEventHandler.cxx:24 AliMultiInputEventHandler.cxx:25 AliMultiInputEventHandler.cxx:26 AliMultiInputEventHandler.cxx:27 AliMultiInputEventHandler.cxx:28 AliMultiInputEventHandler.cxx:29 AliMultiInputEventHandler.cxx:30 AliMultiInputEventHandler.cxx:31 AliMultiInputEventHandler.cxx:32 AliMultiInputEventHandler.cxx:33 AliMultiInputEventHandler.cxx:34 AliMultiInputEventHandler.cxx:35 AliMultiInputEventHandler.cxx:36 AliMultiInputEventHandler.cxx:37 AliMultiInputEventHandler.cxx:38 AliMultiInputEventHandler.cxx:39 AliMultiInputEventHandler.cxx:40 AliMultiInputEventHandler.cxx:41 AliMultiInputEventHandler.cxx:42 AliMultiInputEventHandler.cxx:43 AliMultiInputEventHandler.cxx:44 AliMultiInputEventHandler.cxx:45 AliMultiInputEventHandler.cxx:46 AliMultiInputEventHandler.cxx:47 AliMultiInputEventHandler.cxx:48 AliMultiInputEventHandler.cxx:49 AliMultiInputEventHandler.cxx:50 AliMultiInputEventHandler.cxx:51 AliMultiInputEventHandler.cxx:52 AliMultiInputEventHandler.cxx:53 AliMultiInputEventHandler.cxx:54 AliMultiInputEventHandler.cxx:55 AliMultiInputEventHandler.cxx:56 AliMultiInputEventHandler.cxx:57 AliMultiInputEventHandler.cxx:58 AliMultiInputEventHandler.cxx:59 AliMultiInputEventHandler.cxx:60 AliMultiInputEventHandler.cxx:61 AliMultiInputEventHandler.cxx:62 AliMultiInputEventHandler.cxx:63 AliMultiInputEventHandler.cxx:64 AliMultiInputEventHandler.cxx:65 AliMultiInputEventHandler.cxx:66 AliMultiInputEventHandler.cxx:67 AliMultiInputEventHandler.cxx:68 AliMultiInputEventHandler.cxx:69 AliMultiInputEventHandler.cxx:70 AliMultiInputEventHandler.cxx:71 AliMultiInputEventHandler.cxx:72 AliMultiInputEventHandler.cxx:73 AliMultiInputEventHandler.cxx:74 AliMultiInputEventHandler.cxx:75 AliMultiInputEventHandler.cxx:76 AliMultiInputEventHandler.cxx:77 AliMultiInputEventHandler.cxx:78 AliMultiInputEventHandler.cxx:79 AliMultiInputEventHandler.cxx:80 AliMultiInputEventHandler.cxx:81 AliMultiInputEventHandler.cxx:82 AliMultiInputEventHandler.cxx:83 AliMultiInputEventHandler.cxx:84 AliMultiInputEventHandler.cxx:85 AliMultiInputEventHandler.cxx:86 AliMultiInputEventHandler.cxx:87 AliMultiInputEventHandler.cxx:88 AliMultiInputEventHandler.cxx:89 AliMultiInputEventHandler.cxx:90 AliMultiInputEventHandler.cxx:91 AliMultiInputEventHandler.cxx:92 AliMultiInputEventHandler.cxx:93 AliMultiInputEventHandler.cxx:94 AliMultiInputEventHandler.cxx:95 AliMultiInputEventHandler.cxx:96 AliMultiInputEventHandler.cxx:97 AliMultiInputEventHandler.cxx:98 AliMultiInputEventHandler.cxx:99 AliMultiInputEventHandler.cxx:100 AliMultiInputEventHandler.cxx:101 AliMultiInputEventHandler.cxx:102 AliMultiInputEventHandler.cxx:103 AliMultiInputEventHandler.cxx:104 AliMultiInputEventHandler.cxx:105 AliMultiInputEventHandler.cxx:106 AliMultiInputEventHandler.cxx:107 AliMultiInputEventHandler.cxx:108 AliMultiInputEventHandler.cxx:109 AliMultiInputEventHandler.cxx:110 AliMultiInputEventHandler.cxx:111 AliMultiInputEventHandler.cxx:112 AliMultiInputEventHandler.cxx:113 AliMultiInputEventHandler.cxx:114 AliMultiInputEventHandler.cxx:115 AliMultiInputEventHandler.cxx:116 AliMultiInputEventHandler.cxx:117 AliMultiInputEventHandler.cxx:118 AliMultiInputEventHandler.cxx:119 AliMultiInputEventHandler.cxx:120 AliMultiInputEventHandler.cxx:121 AliMultiInputEventHandler.cxx:122 AliMultiInputEventHandler.cxx:123 AliMultiInputEventHandler.cxx:124 AliMultiInputEventHandler.cxx:125 AliMultiInputEventHandler.cxx:126 AliMultiInputEventHandler.cxx:127 AliMultiInputEventHandler.cxx:128 AliMultiInputEventHandler.cxx:129 AliMultiInputEventHandler.cxx:130 AliMultiInputEventHandler.cxx:131 AliMultiInputEventHandler.cxx:132 AliMultiInputEventHandler.cxx:133 AliMultiInputEventHandler.cxx:134 AliMultiInputEventHandler.cxx:135 AliMultiInputEventHandler.cxx:136 AliMultiInputEventHandler.cxx:137 AliMultiInputEventHandler.cxx:138 AliMultiInputEventHandler.cxx:139 AliMultiInputEventHandler.cxx:140 AliMultiInputEventHandler.cxx:141 AliMultiInputEventHandler.cxx:142 AliMultiInputEventHandler.cxx:143 AliMultiInputEventHandler.cxx:144 AliMultiInputEventHandler.cxx:145 AliMultiInputEventHandler.cxx:146 AliMultiInputEventHandler.cxx:147 AliMultiInputEventHandler.cxx:148 AliMultiInputEventHandler.cxx:149 AliMultiInputEventHandler.cxx:150 AliMultiInputEventHandler.cxx:151 AliMultiInputEventHandler.cxx:152 AliMultiInputEventHandler.cxx:153 AliMultiInputEventHandler.cxx:154 AliMultiInputEventHandler.cxx:155 AliMultiInputEventHandler.cxx:156 AliMultiInputEventHandler.cxx:157 AliMultiInputEventHandler.cxx:158 AliMultiInputEventHandler.cxx:159 AliMultiInputEventHandler.cxx:160 AliMultiInputEventHandler.cxx:161 AliMultiInputEventHandler.cxx:162 AliMultiInputEventHandler.cxx:163 AliMultiInputEventHandler.cxx:164 AliMultiInputEventHandler.cxx:165 AliMultiInputEventHandler.cxx:166 AliMultiInputEventHandler.cxx:167 AliMultiInputEventHandler.cxx:168 AliMultiInputEventHandler.cxx:169 AliMultiInputEventHandler.cxx:170 AliMultiInputEventHandler.cxx:171 AliMultiInputEventHandler.cxx:172 AliMultiInputEventHandler.cxx:173 AliMultiInputEventHandler.cxx:174 AliMultiInputEventHandler.cxx:175 AliMultiInputEventHandler.cxx:176 AliMultiInputEventHandler.cxx:177 AliMultiInputEventHandler.cxx:178 AliMultiInputEventHandler.cxx:179 AliMultiInputEventHandler.cxx:180 AliMultiInputEventHandler.cxx:181 AliMultiInputEventHandler.cxx:182 AliMultiInputEventHandler.cxx:183 AliMultiInputEventHandler.cxx:184 AliMultiInputEventHandler.cxx:185 AliMultiInputEventHandler.cxx:186 AliMultiInputEventHandler.cxx:187 AliMultiInputEventHandler.cxx:188 AliMultiInputEventHandler.cxx:189 AliMultiInputEventHandler.cxx:190 AliMultiInputEventHandler.cxx:191 AliMultiInputEventHandler.cxx:192 AliMultiInputEventHandler.cxx:193 AliMultiInputEventHandler.cxx:194 AliMultiInputEventHandler.cxx:195 AliMultiInputEventHandler.cxx:196 AliMultiInputEventHandler.cxx:197 AliMultiInputEventHandler.cxx:198 AliMultiInputEventHandler.cxx:199 AliMultiInputEventHandler.cxx:200 AliMultiInputEventHandler.cxx:201 AliMultiInputEventHandler.cxx:202 AliMultiInputEventHandler.cxx:203 AliMultiInputEventHandler.cxx:204 AliMultiInputEventHandler.cxx:205 AliMultiInputEventHandler.cxx:206 AliMultiInputEventHandler.cxx:207 AliMultiInputEventHandler.cxx:208 AliMultiInputEventHandler.cxx:209 AliMultiInputEventHandler.cxx:210 AliMultiInputEventHandler.cxx:211 AliMultiInputEventHandler.cxx:212 AliMultiInputEventHandler.cxx:213 AliMultiInputEventHandler.cxx:214 AliMultiInputEventHandler.cxx:215 AliMultiInputEventHandler.cxx:216 AliMultiInputEventHandler.cxx:217 AliMultiInputEventHandler.cxx:218 AliMultiInputEventHandler.cxx:219 AliMultiInputEventHandler.cxx:220 AliMultiInputEventHandler.cxx:221 AliMultiInputEventHandler.cxx:222 AliMultiInputEventHandler.cxx:223 AliMultiInputEventHandler.cxx:224 AliMultiInputEventHandler.cxx:225 AliMultiInputEventHandler.cxx:226 AliMultiInputEventHandler.cxx:227 AliMultiInputEventHandler.cxx:228 AliMultiInputEventHandler.cxx:229 AliMultiInputEventHandler.cxx:230 AliMultiInputEventHandler.cxx:231 AliMultiInputEventHandler.cxx:232 AliMultiInputEventHandler.cxx:233 AliMultiInputEventHandler.cxx:234 AliMultiInputEventHandler.cxx:235 AliMultiInputEventHandler.cxx:236 AliMultiInputEventHandler.cxx:237 AliMultiInputEventHandler.cxx:238 AliMultiInputEventHandler.cxx:239 AliMultiInputEventHandler.cxx:240 AliMultiInputEventHandler.cxx:241 AliMultiInputEventHandler.cxx:242 AliMultiInputEventHandler.cxx:243 AliMultiInputEventHandler.cxx:244 AliMultiInputEventHandler.cxx:245 AliMultiInputEventHandler.cxx:246 AliMultiInputEventHandler.cxx:247 AliMultiInputEventHandler.cxx:248 AliMultiInputEventHandler.cxx:249 AliMultiInputEventHandler.cxx:250 AliMultiInputEventHandler.cxx:251 AliMultiInputEventHandler.cxx:252 AliMultiInputEventHandler.cxx:253 AliMultiInputEventHandler.cxx:254 AliMultiInputEventHandler.cxx:255 AliMultiInputEventHandler.cxx:256 AliMultiInputEventHandler.cxx:257 AliMultiInputEventHandler.cxx:258 AliMultiInputEventHandler.cxx:259 AliMultiInputEventHandler.cxx:260 AliMultiInputEventHandler.cxx:261 AliMultiInputEventHandler.cxx:262 AliMultiInputEventHandler.cxx:263 AliMultiInputEventHandler.cxx:264 AliMultiInputEventHandler.cxx:265 AliMultiInputEventHandler.cxx:266 AliMultiInputEventHandler.cxx:267 AliMultiInputEventHandler.cxx:268 AliMultiInputEventHandler.cxx:269 AliMultiInputEventHandler.cxx:270 AliMultiInputEventHandler.cxx:271 AliMultiInputEventHandler.cxx:272 AliMultiInputEventHandler.cxx:273 AliMultiInputEventHandler.cxx:274 AliMultiInputEventHandler.cxx:275 AliMultiInputEventHandler.cxx:276 AliMultiInputEventHandler.cxx:277 AliMultiInputEventHandler.cxx:278 AliMultiInputEventHandler.cxx:279 AliMultiInputEventHandler.cxx:280 AliMultiInputEventHandler.cxx:281 AliMultiInputEventHandler.cxx:282 AliMultiInputEventHandler.cxx:283 AliMultiInputEventHandler.cxx:284 AliMultiInputEventHandler.cxx:285 AliMultiInputEventHandler.cxx:286 AliMultiInputEventHandler.cxx:287