]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - ANALYSIS/macros/AddTaskPIDResponse.C
New Analysis Tools for the MFT
[u/mrichter/AliRoot.git] / ANALYSIS / macros / AddTaskPIDResponse.C
index 1fcaef1ed7a5915b5b981fd8c05e832d985e23cd..be2ae89988ee3a632729760d21c39be702f6c55b 100644 (file)
@@ -1,6 +1,9 @@
 AliAnalysisTask *AddTaskPIDResponse(Bool_t isMC=kFALSE, Bool_t autoMCesd=kTRUE,
                                     Bool_t tuneOnData=kFALSE, Int_t recoPass=2,
-                                    Bool_t cachePID=kFALSE, TString detResponse="")
+                                    Bool_t cachePID=kFALSE, TString detResponse="",
+                                    Bool_t useTPCEtaCorrection = kTRUE,/*Please use default value! Otherwise splines can be off*/
+                                    Bool_t useTPCMultiplicityCorrection = kTRUE,/*Please use default value! Otherwise splines can be off*/
+                                    Int_t  recoDataPass = -1)
 {
 // Macro to connect a centrality selection task to an existing analysis manager.
   AliAnalysisManager *mgr = AliAnalysisManager::GetAnalysisManager();
@@ -21,10 +24,6 @@ AliAnalysisTask *AddTaskPIDResponse(Bool_t isMC=kFALSE, Bool_t autoMCesd=kTRUE,
     AliPIDResponseInputHandler *pidResponseIH = new AliPIDResponseInputHandler();
     multiInputHandler->AddInputEventHandler(pidResponseIH);
 
-    if (autoMCesd &&
-        multiInputHandler->GetFirstInputEventHandler()->IsA()==AliESDInputHandler::Class() &&
-        multiInputHandler->GetFirstMCEventHandler()
-       ) isMC=kTRUE;
     pidResponseIH->SetIsMC(isMC);
 
     return 0x0;
@@ -35,16 +34,20 @@ AliAnalysisTask *AddTaskPIDResponse(Bool_t isMC=kFALSE, Bool_t autoMCesd=kTRUE,
   printf("PIDResponse: Initialising AliAnalysisTaskPIDResponse\n");
   printf("========================================================================================\n");
   
-  if ( autoMCesd && (inputHandler->IsA() == AliESDInputHandler::Class()) ) {
-    isMC=mgr->GetMCtruthEventHandler()!=0x0;
-  }
-
   AliAnalysisTaskPIDResponse *pidTask = new AliAnalysisTaskPIDResponse("PIDResponseTask");
 //   pidTask->SelectCollisionCandidates(AliVEvent::kMB);
   pidTask->SetIsMC(isMC);
-  if(isMC&&tuneOnData) pidTask->SetTuneOnData(kTRUE,recoPass);
+  if(isMC&&tuneOnData) {
+    pidTask->SetTuneOnData(kTRUE,recoPass);
+    // tuning on MC is by default active on TPC and TOF, to enable it only on one of them use:
+    // pidTask->SetTuneOnDataMask(AliPIDResponse::kDetTPC);   
+    // pidTask->SetTuneOnDataMask(AliPIDResponse::kDetTOF);   
+  }
   pidTask->SetCachePID(cachePID);
   pidTask->SetSpecialDetectorResponse(detResponse);
+  pidTask->SetUseTPCEtaCorrection(useTPCEtaCorrection);
+  pidTask->SetUseTPCMultiplicityCorrection(useTPCMultiplicityCorrection);
+  pidTask->SetUserDataRecoPass(recoDataPass);
   mgr->AddTask(pidTask);
   
 //   AliAnalysisDataContainer *coutput1 = mgr->CreateContainer("PIDResponseQA",