]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - PWGLF/SPECTRA/AntiprotonToProton/AliProtonCorrectionAnalysisTask.cxx
end-of-line normalization
[u/mrichter/AliRoot.git] / PWGLF / SPECTRA / AntiprotonToProton / AliProtonCorrectionAnalysisTask.cxx
index fdfb359dd021f3bcc394f0120e283f80f1e87517..2f39244c32f0e021023edc885b4086101ae456b2 100644 (file)
-#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;
+}
+  
+
+
+