// Connect input handlers (multi input handler is handled)
ConnectMultiHandler();
- if (fInputHandler) {
- if ((fInputHandler->GetTree())->GetBranch("ESDfriend."))
+ if (fInputHandler && fInputHandler->GetTree()) {
+ if (fInputHandler->GetTree()->GetBranch("ESDfriend."))
fESDfriend = ((AliESDInputHandler*)fInputHandler)->GetESDfriend();
fInputEvent = fInputHandler->GetEvent();
{
//
// Exec analysis of one event
-
+
ConnectMultiHandler();
-
+ AliAnalysisManager *mgr = AliAnalysisManager::GetAnalysisManager();
+ if (mgr->GetDebugLevel() > 1) {
+ if (!mgr->GetTopTasks()->FindObject(this))
+ printf(" -> Executing sub-task %s\n", GetName());
+ }
if ( fDebug >= 10)
printf("Task is active %5d\n", IsActive());
if (fDebug > 1) AliInfo("AliAnalysisTaskSE::Exec() \n");
//
- AliAODHandler* handler = dynamic_cast<AliAODHandler*>
- ((AliAnalysisManager::GetAnalysisManager())->GetOutputEventHandler());
+ AliAODHandler* handler = dynamic_cast<AliAODHandler*>(mgr->GetOutputEventHandler());
AliAODInputHandler* aodH = dynamic_cast<AliAODInputHandler*>(fInputHandler);
//
}
if ((handler->NeedsTOFHeaderReplication() || merging) && (fgTOFHeader))
{
- *fgTOFHeader = *(aod->GetTOFHeader());
+ if (aod->GetTOFHeader()) *fgTOFHeader = *(aod->GetTOFHeader());
}
- if ((handler->NeedsVZEROReplication() || merging) && (fgAODVZERO))
+ if ((handler->NeedsVZEROReplication() || merging) && (fgAODVZERO) && aod->GetVZEROData())
{
*fgAODVZERO = *(aod->GetVZEROData());
}
Double_t amp = cellsA->GetAmplitude(i) + fgAODEmcalCells->GetAmplitude(pos);
//Check if it is MC, depending on that assing the mc lable, time and e fraction
- Double_t time = 0;
+// Double_t time = 0;
Int_t mclabel =-1;
Double_t efrac = 0;
- if(cellsA->GetMCLabel(i) >= 0 && fgAODEmcalCells->GetMCLabel(i) < 0)
+ if(cellsA->GetMCLabel(i) >= 0 && fgAODEmcalCells->GetMCLabel(pos) < 0)
{
mclabel = cellsA->GetMCLabel(i) ;
- time = fgAODEmcalCells->GetTime(i) ; // Time from data
+// time = fgAODEmcalCells->GetTime(pos) ; // Time from data
if(amp > 0) efrac = cellsA->GetAmplitude(i) / amp;
}
- else if(fgAODEmcalCells->GetMCLabel(i) >= 0 && cellsA->GetMCLabel(i) < 0)
+ else if(fgAODEmcalCells->GetMCLabel(pos) >= 0 && cellsA->GetMCLabel(i) < 0)
{
- mclabel = fgAODEmcalCells->GetMCLabel(i) ;
- time = cellsA->GetTime(i) ; // Time from data
- if(amp > 0) efrac = fgAODEmcalCells->GetAmplitude(i) / amp;
+ mclabel = fgAODEmcalCells->GetMCLabel(pos) ;
+// time = cellsA->GetTime(i) ; // Time from data
+ if(amp > 0) efrac = fgAODEmcalCells->GetAmplitude(pos) / amp;
}
else
{ // take all from input
mclabel = cellsA->GetMCLabel(i) ;
- time = cellsA->GetTime(i) ;
+// time = cellsA->GetTime(i) ;
if(amp > 0) efrac = cellsA->GetAmplitude(i) / amp;
}
Int_t nn = copycells1->GetNumberOfCells();
while( nn-- ){ fgAODEmcalCells->SetCell(nn,copycells1->GetCellNumber(nn),copycells1->GetAmplitude(nn),
- copycells1->GetTime(nn),copycells1->GetMCLabel(nn),0.); }
+ copycells1->GetTime(nn),copycells1->GetMCLabel(nn),copycells1->GetEFraction(nn)); }
- fgAODEmcalCells->SetCell(nc++,cn,cellsA->GetAmplitude(i),cellsA->GetTime(i), cellsA->GetMCLabel(i),0.);
+ fgAODEmcalCells->SetCell(nc++,cn,cellsA->GetAmplitude(i),cellsA->GetTime(i), cellsA->GetMCLabel(i),1.);
delete copycells1;
}
Double_t amp = cellsP->GetAmplitude(i) + fgAODPhosCells->GetAmplitude(pos);
//Check if it is MC, depending on that assing the mc lable, time and e fraction
- Double_t time = 0;
+// Double_t time = 0;
Int_t mclabel =-1;
Double_t efrac = 0;
- if(cellsP->GetMCLabel(i) >= 0 && fgAODPhosCells->GetMCLabel(i) < 0)
+ if(cellsP->GetMCLabel(i) >= 0 && fgAODPhosCells->GetMCLabel(pos) < 0)
{
mclabel = cellsP->GetMCLabel(i) ;
- time = fgAODPhosCells->GetTime(i) ; // Time from data
+// time = fgAODPhosCells->GetTime(pos) ; // Time from data
if(amp > 0) efrac = cellsP->GetAmplitude(i) / amp;
}
- else if(fgAODPhosCells->GetMCLabel(i) >= 0 && cellsP->GetMCLabel(i) < 0)
+ else if(fgAODPhosCells->GetMCLabel(pos) >= 0 && cellsP->GetMCLabel(i) < 0)
{
- mclabel = fgAODPhosCells->GetMCLabel(i) ;
- time = cellsP->GetTime(i) ; // Time from data
- if(amp > 0) efrac = fgAODPhosCells->GetAmplitude(i) / amp;
+ mclabel = fgAODPhosCells->GetMCLabel(pos) ;
+// time = cellsP->GetTime(i) ; // Time from data
+ if(amp > 0) efrac = fgAODPhosCells->GetAmplitude(pos) / amp;
}
else
{ // take all from input
mclabel = cellsP->GetMCLabel(i) ;
- time = cellsP->GetTime(i) ;
+// time = cellsP->GetTime(i) ;
if(amp > 0) efrac = cellsP->GetAmplitude(i) / amp;
}
Int_t nn = copycells1->GetNumberOfCells();
while( nn-- ){ fgAODPhosCells->SetCell(nn,copycells1->GetCellNumber(nn),copycells1->GetAmplitude(nn),
- copycells1->GetTime(nn),copycells1->GetMCLabel(nn),0.); }
+ copycells1->GetTime(nn),copycells1->GetMCLabel(nn),copycells1->GetEFraction(nn)); }
- fgAODPhosCells->SetCell(nc++,cn,cellsP->GetAmplitude(i),cellsP->GetTime(i), cellsP->GetMCLabel(i),0.);
+ fgAODPhosCells->SetCell(nc++,cn,cellsP->GetAmplitude(i),cellsP->GetTime(i), cellsP->GetMCLabel(i),1.);
delete copycells1;
}
// Call the user analysis
- if (!fMCEventHandler) {
- if (isSelected)
- UserExec(option);
- } else {
- if (isSelected && (fMCEventHandler->InitOk()))
- UserExec(option);
- }
+ if (isSelected) UserExec(option);
// Added protection in case the derived task is not an AOD producer.
AliAnalysisDataSlot *out0 = GetOutputSlot(0);
fMultiInputHandler = dynamic_cast<AliMultiInputEventHandler *>(fInputHandler);
if (fMultiInputHandler) {
fInputHandler = dynamic_cast<AliInputEventHandler *>(fMultiInputHandler->GetFirstInputEventHandler());
- fMCEventHandler = dynamic_cast<AliMCEventHandler *>(fMultiInputHandler->GetFirstMCEventHandler());
+ fMCEventHandler = dynamic_cast<AliInputEventHandler *>(fMultiInputHandler->GetFirstMCEventHandler());
} else {
- fMCEventHandler = dynamic_cast<AliMCEventHandler *>((AliAnalysisManager::GetAnalysisManager())->GetMCtruthEventHandler());
+ fMCEventHandler = dynamic_cast<AliInputEventHandler *>((AliAnalysisManager::GetAnalysisManager())->GetMCtruthEventHandler());
}
if (fMCEventHandler) fMCEvent = fMCEventHandler->MCEvent();
}