-#include "TChain.h"\r
-#include "TTree.h"\r
-#include "TString.h"\r
-#include "TList.h"\r
-#include "TH2F.h"\r
-\r
-#include "AliAnalysisTask.h"\r
-#include "AliAnalysisManager.h"\r
-\r
-#include "AliESDEvent.h"\r
-#include "AliESDInputHandler.h"\r
-#include "AliAODEvent.h"\r
-#include "AliAODInputHandler.h"\r
-#include "AliMCEventHandler.h"\r
-#include "AliMCEvent.h"\r
-#include "AliStack.h"\r
-#include "AliESDVertex.h"\r
-\r
-#include "AliProtonFeedDownAnalysis.h"\r
-#include "AliProtonAnalysisBase.h"\r
-#include "AliProtonCorrectionAnalysisTask.h"\r
-\r
-#include "AliProtonAbsorptionCorrection.h"\r
-#include "AliProtonSpectraCorrection.h"\r
-\r
-#include <Riostream.h>\r
-\r
-ClassImp(AliProtonCorrectionAnalysisTask)\r
- \r
-//________________________________________________________________________ \r
-AliProtonCorrectionAnalysisTask::AliProtonCorrectionAnalysisTask()\r
- : AliAnalysisTask(), fESD(0), fAOD(0), fMC(0),\r
- fList(0),fProtonAnalysisBase(0),fProtonAbsorptionCorrection(0), fProtonFeedDownAnalysis(0),fProtonSpectraCorrection(0),fStatHist(0),\r
- fIsOn_AliProtonAbsorptionCorrection(0),fIsOn_AliProtonFeedDownAnalysis(0),fIsOn_AliProtonSpectraCorrection(0)\r
- {\r
- //Dummy constructor\r
- \r
-}\r
-\r
-//________________________________________________________________________\r
-AliProtonCorrectionAnalysisTask::AliProtonCorrectionAnalysisTask(const char *name) \r
- : AliAnalysisTask(name, ""), fESD(0), fAOD(0), fMC(0),\r
- fList(0),fProtonAnalysisBase(0),fProtonAbsorptionCorrection(0), fProtonFeedDownAnalysis(0),fProtonSpectraCorrection(0),fStatHist(0),\r
- fIsOn_AliProtonAbsorptionCorrection(0),fIsOn_AliProtonFeedDownAnalysis(0),fIsOn_AliProtonSpectraCorrection(0)\r
- {\r
- // Constructor\r
- \r
- // Define input and output slots here\r
- // Input slot #0 works with a TChain\r
- DefineInput(0, TChain::Class());\r
- // Output slot #0 writes into a TList container\r
- DefineOutput(0, TList::Class());\r
-}\r
-\r
-//________________________________________________________________________\r
-void AliProtonCorrectionAnalysisTask::ConnectInputData(Option_t *) \r
-{\r
- // Connect ESD or AOD here\r
- // Called once\r
- TString gAnalysisLevel = fProtonAnalysisBase->GetAnalysisLevel(); \r
- \r
- TTree* tree = dynamic_cast<TTree*> (GetInputData(0));\r
- if (!tree) \r
- {\r
- Printf("ERROR: Could not read chain from input slot 0");\r
- } \r
- else \r
- {\r
- if(gAnalysisLevel == "ESD") \r
- {\r
- AliESDInputHandler *esdH = dynamic_cast<AliESDInputHandler*> (AliAnalysisManager::GetAnalysisManager()->GetInputEventHandler()); \r
- if (!esdH) \r
- {\r
- Printf("ERROR: Could not get ESDInputHandler");\r
- } \r
- else\r
- fESD = esdH->GetEvent();\r
- AliMCEventHandler* mcH = dynamic_cast<AliMCEventHandler*> (AliAnalysisManager::GetAnalysisManager()->GetMCtruthEventHandler());\r
- if (!mcH) \r
- {\r
- Printf("ERROR: Could not retrieve MC event handler");\r
- }\r
- else\r
- fMC = mcH->MCEvent();\r
- }\r
- else if(gAnalysisLevel == "AOD") \r
- {\r
- AliAODInputHandler *aodH = dynamic_cast<AliAODInputHandler*> (AliAnalysisManager::GetAnalysisManager()->GetInputEventHandler()); \r
- if (!aodH) \r
- {\r
- Printf("ERROR: Could not get AODInputHandler");\r
- }\r
- else\r
- fAOD = aodH->GetEvent();\r
- }\r
- else\r
- Printf("Wrong analysis type: Only ESD, AOD types are allowed!");\r
- }\r
-}\r
-//________________________________________________________________________\r
-void AliProtonCorrectionAnalysisTask::CreateOutputObjects() \r
-{\r
- // Create output objects\r
- // Called once\r
- fList = new TList();\r
- if(fIsOn_AliProtonAbsorptionCorrection)\r
- {\r
- fProtonAbsorptionCorrection->GetProtonContainer()->SetName("containerProtonsAbsorptionCorrection");\r
- fList->Add(fProtonAbsorptionCorrection->GetProtonContainer());\r
- fProtonAbsorptionCorrection->GetAntiProtonContainer()->SetName("containerAntiProtonsAbsorptionCorrection");\r
- fList->Add(fProtonAbsorptionCorrection->GetAntiProtonContainer());\r
- }\r
- if(fIsOn_AliProtonFeedDownAnalysis)\r
- {\r
- fProtonFeedDownAnalysis->GetProtonContainer()->SetName("containerProtonsFeedDown");\r
- fList->Add(fProtonFeedDownAnalysis->GetProtonContainer());\r
- fProtonFeedDownAnalysis->GetAntiProtonContainer()->SetName("containerAntiProtonsFeedDown");\r
- fList->Add(fProtonFeedDownAnalysis->GetAntiProtonContainer());\r
- fList->Add(fProtonFeedDownAnalysis->GetLambdaHist());\r
- fList->Add(fProtonFeedDownAnalysis->GetLambdaweightedHist());\r
- fList->Add(fProtonFeedDownAnalysis->GetAntiLambdaHist());\r
- fList->Add(fProtonFeedDownAnalysis->GetAntiLambdaweightedHist());\r
- }\r
- if(fIsOn_AliProtonSpectraCorrection)\r
- {\r
- fProtonSpectraCorrection->GetProtonContainer()->SetName("containerProtonsSpectraCorrection");\r
- fList->Add(fProtonSpectraCorrection->GetProtonContainer());\r
- fProtonSpectraCorrection->GetProtonContainer()->SetName("containerAntiProtonsSpectraCorrection");\r
- fList->Add(fProtonSpectraCorrection->GetAntiProtonContainer());\r
- }\r
- fStatHist=new TH1F("StatsHist","StatsHist",10,-0.5,9.5);\r
- fList->Add(fStatHist);\r
- fStatHist->GetXaxis()->SetBinLabel(1,"level1cutESD");\r
- fStatHist->GetXaxis()->SetBinLabel(2,"level2cutTrigger");\r
- fStatHist->GetXaxis()->SetBinLabel(3,"level3cutVerstex");\r
- fStatHist->GetXaxis()->SetBinLabel(4,"level4cutMC");\r
-}\r
-//________________________________________________________________________\r
-void AliProtonCorrectionAnalysisTask::Exec(Option_t *) \r
-{\r
- // Main loop\r
- // Called for each event\r
- TString gAnalysisLevel =fProtonAnalysisBase->GetAnalysisLevel(); \r
- //TString gAnalysisLevel = (fProtonFeedDownAnalysis->GetProtonAnalysisBaseObject())->GetAnalysisLevel(); \r
- if(gAnalysisLevel == "ESD") \r
- {\r
- if (!fESD) \r
- {\r
- Printf("ERROR: fESD not available");\r
- return;\r
- }\r
- fStatHist->Fill(0);\r
- if(fProtonAnalysisBase->IsEventTriggered(fESD,fProtonAnalysisBase->GetTriggerMode())) \r
- {\r
- fStatHist->Fill(1);\r
- const AliESDVertex *vertex = fProtonAnalysisBase->GetVertex(fESD,fProtonAnalysisBase->GetAnalysisMode(),fProtonAnalysisBase->GetVxMax(),fProtonAnalysisBase->GetVyMax(),fProtonAnalysisBase->GetVzMax());\r
- if(vertex) \r
- {\r
- fStatHist->Fill(2);\r
- Printf("Proton ESD analysis task: There are %d tracks in this event", fESD->GetNumberOfTracks());\r
- AliStack* stack1=0x0;\r
- if(!fMC)\r
- return; \r
- stack1 = fMC->Stack();\r
- if(!stack1)\r
- return;\r
- fStatHist->Fill(3);\r
- if(fIsOn_AliProtonAbsorptionCorrection)\r
- //fProtonAbsorptionCorrection->FillAbsorptionMaps(fESD,vertex,fMC);\r
- fProtonAbsorptionCorrection->FillAbsorptionMaps(fESD,fMC);\r
- if(fIsOn_AliProtonFeedDownAnalysis)\r
- { \r
- fProtonFeedDownAnalysis->Analyze(fESD,vertex,stack1);\r
- fProtonFeedDownAnalysis->Analyze(stack1);\r
- } \r
- if(fIsOn_AliProtonSpectraCorrection)\r
- fProtonSpectraCorrection->FillCorrectionMaps(fESD,vertex,fMC);\r
-\r
- }//reconstructed vertex\r
- }//triggered event\r
- }//ESD analysis \r
- \r
- else if(gAnalysisLevel == "AOD") \r
- {\r
- if (!fAOD) \r
- {\r
- Printf("ERROR: fAOD not available");\r
- return;\r
- }\r
- Printf("Proton AOD analysis task: There are %d tracks in this event", fAOD->GetNumberOfTracks());\r
- if(fIsOn_AliProtonAbsorptionCorrection)\r
- fProtonAbsorptionCorrection->FillAbsorptionMaps(fAOD);\r
- if(fIsOn_AliProtonFeedDownAnalysis)\r
- fProtonFeedDownAnalysis->Analyze(fAOD);\r
- if(fIsOn_AliProtonSpectraCorrection)\r
- fProtonSpectraCorrection->FillCorrectionMaps(fAOD);\r
- }//AOD analysis\r
- \r
- \r
- // Post output data.\r
- PostData(0, fList);\r
-} \r
-//__________________________________________________________________________________________\r
-void AliProtonCorrectionAnalysisTask::Terminate(Option_t *) \r
-{\r
-\r
-}\r
-//___________________________________________________________________________________________\r
-void AliProtonCorrectionAnalysisTask::SetAnalysisObjectAbsorptionCorrection(AliProtonAbsorptionCorrection *const analysis) \r
-{\r
- if (analysis&&fProtonAnalysisBase)\r
- {\r
- Printf("Absorption Correection ON\n");\r
- fIsOn_AliProtonAbsorptionCorrection=kTRUE;\r
- fProtonAbsorptionCorrection = analysis;\r
- fProtonAbsorptionCorrection->SetBaseAnalysis(fProtonAnalysisBase);\r
- fProtonAbsorptionCorrection->InitAnalysisHistograms(fProtonAnalysisBase->GetNBinsX(),fProtonAnalysisBase->GetMinX(),fProtonAnalysisBase->GetMaxX(),fProtonAnalysisBase->GetNBinsY(),fProtonAnalysisBase->GetMinY(),fProtonAnalysisBase->GetMaxY());\r
- }\r
- else\r
- fIsOn_AliProtonAbsorptionCorrection=kFALSE;\r
-}\r
-//___________________________________________________________________________________________\r
-void AliProtonCorrectionAnalysisTask::SetAnalysisObjectFeedDown(AliProtonFeedDownAnalysis *const analysis) \r
-{\r
- if (analysis&&fProtonAnalysisBase)\r
- {\r
- Printf("Feed Down ON\n");\r
- fIsOn_AliProtonFeedDownAnalysis=kTRUE;\r
- fProtonFeedDownAnalysis = analysis;\r
- fProtonFeedDownAnalysis->SetBaseAnalysis(fProtonAnalysisBase);\r
- fProtonFeedDownAnalysis->InitAnalysisHistograms(fProtonAnalysisBase->GetNBinsX(),fProtonAnalysisBase->GetMinX(),fProtonAnalysisBase->GetMaxX(),fProtonAnalysisBase->GetNBinsY(),fProtonAnalysisBase->GetMinY(),fProtonAnalysisBase->GetMaxY());\r
- }\r
- else\r
- fIsOn_AliProtonFeedDownAnalysis=kFALSE;\r
-}\r
-//___________________________________________________________________________________________\r
-void AliProtonCorrectionAnalysisTask::SetAnalysisObjectSpectraCorrection(AliProtonSpectraCorrection *const analysis) \r
-{ \r
- if (analysis&&fProtonAnalysisBase)\r
- {\r
- Printf("Spectra Correection ON\n");\r
- fIsOn_AliProtonSpectraCorrection=kTRUE;\r
- fProtonSpectraCorrection= analysis;\r
- fProtonSpectraCorrection->SetBaseAnalysis(fProtonAnalysisBase);\r
- fProtonSpectraCorrection->InitAnalysisHistograms(fProtonAnalysisBase->GetNBinsX(),fProtonAnalysisBase->GetMinX(),fProtonAnalysisBase->GetMaxX(),fProtonAnalysisBase->GetNBinsY(),fProtonAnalysisBase->GetMinY(),fProtonAnalysisBase->GetMaxY());\r
- }\r
- else\r
- fIsOn_AliProtonSpectraCorrection=kFALSE;\r
-}\r
- \r
-\r
-\r
-\r
+#include "TChain.h"
+#include "TTree.h"
+#include "TString.h"
+#include "TList.h"
+#include "TH2F.h"
+
+#include "AliAnalysisTask.h"
+#include "AliAnalysisManager.h"
+
+#include "AliESDEvent.h"
+#include "AliESDInputHandler.h"
+#include "AliAODEvent.h"
+#include "AliAODInputHandler.h"
+#include "AliMCEventHandler.h"
+#include "AliMCEvent.h"
+#include "AliStack.h"
+#include "AliESDVertex.h"
+
+#include "AliProtonFeedDownAnalysis.h"
+#include "AliProtonAnalysisBase.h"
+#include "AliProtonCorrectionAnalysisTask.h"
+
+#include "AliProtonAbsorptionCorrection.h"
+#include "AliProtonSpectraCorrection.h"
+
+#include <Riostream.h>
+
+ClassImp(AliProtonCorrectionAnalysisTask)
+
+//________________________________________________________________________
+AliProtonCorrectionAnalysisTask::AliProtonCorrectionAnalysisTask()
+ : AliAnalysisTask(), fESD(0), fAOD(0), fMC(0),
+ fList(0),fProtonAnalysisBase(0),fProtonAbsorptionCorrection(0), fProtonFeedDownAnalysis(0),fProtonSpectraCorrection(0),fStatHist(0),
+ fIsOn_AliProtonAbsorptionCorrection(0),fIsOn_AliProtonFeedDownAnalysis(0),fIsOn_AliProtonSpectraCorrection(0)
+ {
+ //Dummy constructor
+
+}
+
+//________________________________________________________________________
+AliProtonCorrectionAnalysisTask::AliProtonCorrectionAnalysisTask(const char *name)
+ : AliAnalysisTask(name, ""), fESD(0), fAOD(0), fMC(0),
+ fList(0),fProtonAnalysisBase(0),fProtonAbsorptionCorrection(0), fProtonFeedDownAnalysis(0),fProtonSpectraCorrection(0),fStatHist(0),
+ fIsOn_AliProtonAbsorptionCorrection(0),fIsOn_AliProtonFeedDownAnalysis(0),fIsOn_AliProtonSpectraCorrection(0)
+ {
+ // Constructor
+
+ // Define input and output slots here
+ // Input slot #0 works with a TChain
+ DefineInput(0, TChain::Class());
+ // Output slot #0 writes into a TList container
+ DefineOutput(0, TList::Class());
+}
+
+//________________________________________________________________________
+void AliProtonCorrectionAnalysisTask::ConnectInputData(Option_t *)
+{
+ // Connect ESD or AOD here
+ // Called once
+ TString gAnalysisLevel = fProtonAnalysisBase->GetAnalysisLevel();
+
+ TTree* tree = dynamic_cast<TTree*> (GetInputData(0));
+ if (!tree)
+ {
+ Printf("ERROR: Could not read chain from input slot 0");
+ }
+ else
+ {
+ if(gAnalysisLevel == "ESD")
+ {
+ AliESDInputHandler *esdH = dynamic_cast<AliESDInputHandler*> (AliAnalysisManager::GetAnalysisManager()->GetInputEventHandler());
+ if (!esdH)
+ {
+ Printf("ERROR: Could not get ESDInputHandler");
+ }
+ else
+ fESD = esdH->GetEvent();
+ AliMCEventHandler* mcH = dynamic_cast<AliMCEventHandler*> (AliAnalysisManager::GetAnalysisManager()->GetMCtruthEventHandler());
+ if (!mcH)
+ {
+ Printf("ERROR: Could not retrieve MC event handler");
+ }
+ else
+ fMC = mcH->MCEvent();
+ }
+ else if(gAnalysisLevel == "AOD")
+ {
+ AliAODInputHandler *aodH = dynamic_cast<AliAODInputHandler*> (AliAnalysisManager::GetAnalysisManager()->GetInputEventHandler());
+ if (!aodH)
+ {
+ Printf("ERROR: Could not get AODInputHandler");
+ }
+ else
+ fAOD = aodH->GetEvent();
+ }
+ else
+ Printf("Wrong analysis type: Only ESD, AOD types are allowed!");
+ }
+}
+//________________________________________________________________________
+void AliProtonCorrectionAnalysisTask::CreateOutputObjects()
+{
+ // Create output objects
+ // Called once
+ fList = new TList();
+ if(fIsOn_AliProtonAbsorptionCorrection)
+ {
+ fProtonAbsorptionCorrection->GetProtonContainer()->SetName("containerProtonsAbsorptionCorrection");
+ fList->Add(fProtonAbsorptionCorrection->GetProtonContainer());
+ fProtonAbsorptionCorrection->GetAntiProtonContainer()->SetName("containerAntiProtonsAbsorptionCorrection");
+ fList->Add(fProtonAbsorptionCorrection->GetAntiProtonContainer());
+ }
+ if(fIsOn_AliProtonFeedDownAnalysis)
+ {
+ fProtonFeedDownAnalysis->GetProtonContainer()->SetName("containerProtonsFeedDown");
+ fList->Add(fProtonFeedDownAnalysis->GetProtonContainer());
+ fProtonFeedDownAnalysis->GetAntiProtonContainer()->SetName("containerAntiProtonsFeedDown");
+ fList->Add(fProtonFeedDownAnalysis->GetAntiProtonContainer());
+ fList->Add(fProtonFeedDownAnalysis->GetLambdaHist());
+ fList->Add(fProtonFeedDownAnalysis->GetLambdaweightedHist());
+ fList->Add(fProtonFeedDownAnalysis->GetAntiLambdaHist());
+ fList->Add(fProtonFeedDownAnalysis->GetAntiLambdaweightedHist());
+ }
+ if(fIsOn_AliProtonSpectraCorrection)
+ {
+ fProtonSpectraCorrection->GetProtonContainer()->SetName("containerProtonsSpectraCorrection");
+ fList->Add(fProtonSpectraCorrection->GetProtonContainer());
+ fProtonSpectraCorrection->GetProtonContainer()->SetName("containerAntiProtonsSpectraCorrection");
+ fList->Add(fProtonSpectraCorrection->GetAntiProtonContainer());
+ }
+ fStatHist=new TH1F("StatsHist","StatsHist",10,-0.5,9.5);
+ fList->Add(fStatHist);
+ fStatHist->GetXaxis()->SetBinLabel(1,"level1cutESD");
+ fStatHist->GetXaxis()->SetBinLabel(2,"level2cutTrigger");
+ fStatHist->GetXaxis()->SetBinLabel(3,"level3cutVerstex");
+ fStatHist->GetXaxis()->SetBinLabel(4,"level4cutMC");
+}
+//________________________________________________________________________
+void AliProtonCorrectionAnalysisTask::Exec(Option_t *)
+{
+ // Main loop
+ // Called for each event
+ TString gAnalysisLevel =fProtonAnalysisBase->GetAnalysisLevel();
+ //TString gAnalysisLevel = (fProtonFeedDownAnalysis->GetProtonAnalysisBaseObject())->GetAnalysisLevel();
+ if(gAnalysisLevel == "ESD")
+ {
+ if (!fESD)
+ {
+ Printf("ERROR: fESD not available");
+ return;
+ }
+ fStatHist->Fill(0);
+ if(fProtonAnalysisBase->IsEventTriggered(fESD,fProtonAnalysisBase->GetTriggerMode()))
+ {
+ fStatHist->Fill(1);
+ const AliESDVertex *vertex = fProtonAnalysisBase->GetVertex(fESD,fProtonAnalysisBase->GetAnalysisMode(),fProtonAnalysisBase->GetVxMax(),fProtonAnalysisBase->GetVyMax(),fProtonAnalysisBase->GetVzMax());
+ if(vertex)
+ {
+ fStatHist->Fill(2);
+ Printf("Proton ESD analysis task: There are %d tracks in this event", fESD->GetNumberOfTracks());
+ AliStack* stack1=0x0;
+ if(!fMC)
+ return;
+ stack1 = fMC->Stack();
+ if(!stack1)
+ return;
+ fStatHist->Fill(3);
+ if(fIsOn_AliProtonAbsorptionCorrection)
+ //fProtonAbsorptionCorrection->FillAbsorptionMaps(fESD,vertex,fMC);
+ fProtonAbsorptionCorrection->FillAbsorptionMaps(fESD,fMC);
+ if(fIsOn_AliProtonFeedDownAnalysis)
+ {
+ fProtonFeedDownAnalysis->Analyze(fESD,vertex,stack1);
+ fProtonFeedDownAnalysis->Analyze(stack1);
+ }
+ if(fIsOn_AliProtonSpectraCorrection)
+ fProtonSpectraCorrection->FillCorrectionMaps(fESD,vertex,fMC);
+
+ }//reconstructed vertex
+ }//triggered event
+ }//ESD analysis
+
+ else if(gAnalysisLevel == "AOD")
+ {
+ if (!fAOD)
+ {
+ Printf("ERROR: fAOD not available");
+ return;
+ }
+ Printf("Proton AOD analysis task: There are %d tracks in this event", fAOD->GetNumberOfTracks());
+ if(fIsOn_AliProtonAbsorptionCorrection)
+ fProtonAbsorptionCorrection->FillAbsorptionMaps(fAOD);
+ if(fIsOn_AliProtonFeedDownAnalysis)
+ fProtonFeedDownAnalysis->Analyze(fAOD);
+ if(fIsOn_AliProtonSpectraCorrection)
+ fProtonSpectraCorrection->FillCorrectionMaps(fAOD);
+ }//AOD analysis
+
+
+ // Post output data.
+ PostData(0, fList);
+}
+//__________________________________________________________________________________________
+void AliProtonCorrectionAnalysisTask::Terminate(Option_t *)
+{
+
+}
+//___________________________________________________________________________________________
+void AliProtonCorrectionAnalysisTask::SetAnalysisObjectAbsorptionCorrection(AliProtonAbsorptionCorrection *const analysis)
+{
+ if (analysis&&fProtonAnalysisBase)
+ {
+ Printf("Absorption Correection ON\n");
+ fIsOn_AliProtonAbsorptionCorrection=kTRUE;
+ fProtonAbsorptionCorrection = analysis;
+ fProtonAbsorptionCorrection->SetBaseAnalysis(fProtonAnalysisBase);
+ fProtonAbsorptionCorrection->InitAnalysisHistograms(fProtonAnalysisBase->GetNBinsX(),fProtonAnalysisBase->GetMinX(),fProtonAnalysisBase->GetMaxX(),fProtonAnalysisBase->GetNBinsY(),fProtonAnalysisBase->GetMinY(),fProtonAnalysisBase->GetMaxY());
+ }
+ else
+ fIsOn_AliProtonAbsorptionCorrection=kFALSE;
+}
+//___________________________________________________________________________________________
+void AliProtonCorrectionAnalysisTask::SetAnalysisObjectFeedDown(AliProtonFeedDownAnalysis *const analysis)
+{
+ if (analysis&&fProtonAnalysisBase)
+ {
+ Printf("Feed Down ON\n");
+ fIsOn_AliProtonFeedDownAnalysis=kTRUE;
+ fProtonFeedDownAnalysis = analysis;
+ fProtonFeedDownAnalysis->SetBaseAnalysis(fProtonAnalysisBase);
+ fProtonFeedDownAnalysis->InitAnalysisHistograms(fProtonAnalysisBase->GetNBinsX(),fProtonAnalysisBase->GetMinX(),fProtonAnalysisBase->GetMaxX(),fProtonAnalysisBase->GetNBinsY(),fProtonAnalysisBase->GetMinY(),fProtonAnalysisBase->GetMaxY());
+ }
+ else
+ fIsOn_AliProtonFeedDownAnalysis=kFALSE;
+}
+//___________________________________________________________________________________________
+void AliProtonCorrectionAnalysisTask::SetAnalysisObjectSpectraCorrection(AliProtonSpectraCorrection *const analysis)
+{
+ if (analysis&&fProtonAnalysisBase)
+ {
+ Printf("Spectra Correection ON\n");
+ fIsOn_AliProtonSpectraCorrection=kTRUE;
+ fProtonSpectraCorrection= analysis;
+ fProtonSpectraCorrection->SetBaseAnalysis(fProtonAnalysisBase);
+ fProtonSpectraCorrection->InitAnalysisHistograms(fProtonAnalysisBase->GetNBinsX(),fProtonAnalysisBase->GetMinX(),fProtonAnalysisBase->GetMaxX(),fProtonAnalysisBase->GetNBinsY(),fProtonAnalysisBase->GetMinY(),fProtonAnalysisBase->GetMaxY());
+ }
+ else
+ fIsOn_AliProtonSpectraCorrection=kFALSE;
+}
+
+
+
+