#include "AliLog.h"
#include "AliESDEvent.h"
#include "AliAODForwardMult.h"
-#include "AliForwardCorrectionManager.h"
#include "AliAnalysisManager.h"
#include "AliAnalysisDataSlot.h"
#include "AliAnalysisDataContainer.h"
//
// Constructor
//
+ DGUARD(fDebug, 3,"Default CTOR of AliFMDEnergyFitterTask");
}
//____________________________________________________________________
// Parameters:
// name Name of task
//
+ DGUARD(fDebug, 3,"Named CTOR of AliFMDEnergyFitterTask: %s", name);
DefineOutput(1, TList::Class());
DefineOutput(2, TList::Class());
+ fBranchNames =
+ "ESD:AliESDRun.,AliESDHeader.,AliMultiplicity.,"
+ "AliESDFMD.,SPDVertex.,PrimaryVertex.";
}
//____________________________________________________________________
// Parameters:
// o Object to copy from
//
+ DGUARD(fDebug, 3,"COPY CTOR of AliFMDEnergyFitterTask");
DefineOutput(1, TList::Class());
DefineOutput(2, TList::Class());
}
// Return:
// Reference to this object
//
+ fDebug = o.fDebug;
+ DGUARD(fDebug,3,"Assignment of AliFMDEnergyFitterTask");
if (&o == this) return *this;
AliAnalysisTaskSE::operator=(o);
// Parameters:
// dbg Debug level
//
+ fDebug = dbg;
fEventInspector.SetDebug(dbg);
fEnergyFitter.SetDebug(dbg);
}
// Initialize the task
//
//
+ DGUARD(fDebug,1,"Initialize of AliFMDEnergyFitterTask");
fFirstEvent = true;
}
//____________________________________________________________________
void
-AliFMDEnergyFitterTask::InitializeSubs()
+AliFMDEnergyFitterTask::SetupForData()
{
//
// Initialise the sub objects and stuff. Called on first event
//
//
- AliForwardCorrectionManager& fcm = AliForwardCorrectionManager::Instance();
- UShort_t sys = fEventInspector.GetCollisionSystem();
- UShort_t sNN = fEventInspector.GetEnergy();
- Short_t fld = fEventInspector.GetField();
- fcm.Init(sys, sNN, fld, 0);
- TAxis eAxis(0,0,0);
- TAxis vAxis(10,-10,10);
- fEnergyFitter.Init(eAxis);
- fEventInspector.Init(vAxis);
+ DGUARD(fDebug,1,"Initialize subs of AliFMDEnergyFitterTask");
+ TAxis eAxis(0,0,0); // Default only
+ TAxis vAxis(10,-10,10); // Default only
+ fEnergyFitter.SetupForData(eAxis);
+ fEventInspector.SetupForData(vAxis);
}
// Create output objects
//
//
+ DGUARD(fDebug,1,"Create output objects of AliFMDEnergyFitterTask");
fList = new TList;
fList->SetOwner();
- fEventInspector.DefineOutput(fList);
- fEnergyFitter.DefineOutput(fList);
+ fEventInspector.CreateOutputObjects(fList);
+ fEnergyFitter.CreateOutputObjects(fList);
PostData(1, fList);
}
// static Int_t cnt = 0;
// cnt++;
// Get the input data
+ DGUARD(fDebug,3,"Analyse event of AliFMDEnergyFitterTask");
AliMCEvent* mcevent = MCEvent();
if(mcevent) {
return;
}
+ // --- Read in the data --------------------------------------------
+ LoadBranches();
+
// On the first event, initialize the parameters
if (fFirstEvent && esd->GetESDRun()) {
fEventInspector.ReadRunDetails(esd);
// pars->PrintStatus();
fFirstEvent = false;
- InitializeSubs();
+ SetupForData();
}
Bool_t lowFlux = kFALSE;
UInt_t triggers = 0;
UShort_t ivz = 0;
- Double_t vz = 0;
+ TVector3 ip;
Double_t cent = 0;
UShort_t nClusters = 0;
UInt_t found = fEventInspector.Process(esd, triggers, lowFlux,
- ivz, vz, cent, nClusters);
+ ivz, ip, cent, nClusters);
if (found & AliFMDEventInspector::kNoEvent) return;
if (found & AliFMDEventInspector::kNoTriggers) return;
if (found & AliFMDEventInspector::kNoSPD) return;
PostData(1, fList);
}
+//____________________________________________________________________
+void
+AliFMDEnergyFitterTask::FinishTaskOutput()
+{
+ if (!fList) {
+ Warning("FinishTaskOutput", "No list defined");
+ }
+ // else {
+ // fList->ls();
+ // }
+ // if (fDebug)
+ // gDebug = 1;
+ AliAnalysisTaskSE::FinishTaskOutput();
+}
+
//____________________________________________________________________
void
AliFMDEnergyFitterTask::Terminate(Option_t*)
// Parameters:
// option Not used
//
- AliInfo(Form("Running terminate of %s", GetName()));
+ DGUARD(fDebug,1,"Processing merged output of AliFMDEnergyFitterTask");
+
TList* list = dynamic_cast<TList*>(GetOutputData(1));
if (!list) {
AliError(Form("No output list defined (%p)", GetOutputData(1)));