]> git.uio.no Git - u/mrichter/AliRoot.git/commitdiff
Update
authorrbailhac <rbailhac@f7af4fe6-9843-0410-8265-dc069ae4e863>
Tue, 25 Sep 2012 14:07:53 +0000 (14:07 +0000)
committerrbailhac <rbailhac@f7af4fe6-9843-0410-8265-dc069ae4e863>
Tue, 25 Sep 2012 14:07:53 +0000 (14:07 +0000)
PWGHF/hfe/AliAnalysisTaskHFE.cxx
PWGHF/hfe/AliAnalysisTaskHFE.h
PWGHF/hfe/macros/AddTaskHFEtpctof.C
PWGHF/hfe/macros/AddTaskHFEtpctofPbPb.C
PWGHF/hfe/macros/configs/PbPb/ConfigHFEpbpb.C
PWGHF/hfe/macros/configs/pp/ConfigHFEpid2SYS.C

index 07414ae48714cfd527e96e1372327d08fc394cc9..bb75b39c5ec3efeaca260011fb3eba3429008f54 100644 (file)
@@ -96,9 +96,9 @@ AliAnalysisTaskHFE::AliAnalysisTaskHFE():
   , fPlugins(0)
   , fFillSignalOnly(kTRUE)
   , fFillNoCuts(kFALSE)
-  , fUseFlagAOD(kTRUE)
+  , fUseFilterAOD(kTRUE)
   , fApplyCutAOD(kFALSE)
-  , fFlags(1<<4)
+  , fFilter(1<<4)
   , fBackGroundFactorApply(kFALSE)
   , fRemovePileUp(kFALSE)
   , fIdentifiedAsPileUp(kFALSE)
@@ -139,6 +139,7 @@ AliAnalysisTaskHFE::AliAnalysisTaskHFE():
   , fHistSECVTX(NULL)
   , fHistELECBACKGROUND(NULL)
   , fQACollection(NULL)
+  , fQAAODCollection(NULL)
 {
   //
   // Dummy constructor
@@ -161,9 +162,9 @@ AliAnalysisTaskHFE::AliAnalysisTaskHFE(const char * name):
   , fPlugins(0)
   , fFillSignalOnly(kTRUE)
   , fFillNoCuts(kFALSE)
-  , fUseFlagAOD(kTRUE)
+  , fUseFilterAOD(kTRUE)
   , fApplyCutAOD(kFALSE)
-  , fFlags(1<<4)
+  , fFilter(1<<4)
   , fBackGroundFactorApply(kFALSE)
   , fRemovePileUp(kFALSE)
   , fIdentifiedAsPileUp(kFALSE)
@@ -204,6 +205,7 @@ AliAnalysisTaskHFE::AliAnalysisTaskHFE(const char * name):
   , fHistSECVTX(NULL)
   , fHistELECBACKGROUND(NULL)
   , fQACollection(0x0)
+  , fQAAODCollection(NULL)
 {
   //
   // Default constructor
@@ -232,9 +234,9 @@ AliAnalysisTaskHFE::AliAnalysisTaskHFE(const AliAnalysisTaskHFE &ref):
   , fPlugins(0)
   , fFillSignalOnly(ref.fFillSignalOnly)
   , fFillNoCuts(ref.fFillNoCuts)
-  , fUseFlagAOD(ref.fUseFlagAOD)
+  , fUseFilterAOD(ref.fUseFilterAOD)
   , fApplyCutAOD(ref.fApplyCutAOD)
-  , fFlags(ref.fFlags
+  , fFilter(ref.fFilter
   , fBackGroundFactorApply(ref.fBackGroundFactorApply)
   , fRemovePileUp(ref.fRemovePileUp)
   , fIdentifiedAsPileUp(ref.fIdentifiedAsPileUp)
@@ -275,6 +277,7 @@ AliAnalysisTaskHFE::AliAnalysisTaskHFE(const AliAnalysisTaskHFE &ref):
   , fHistSECVTX(NULL)
   , fHistELECBACKGROUND(NULL)
   , fQACollection(NULL)
+  , fQAAODCollection(NULL)
 {
   //
   // Copy Constructor
@@ -304,9 +307,9 @@ void AliAnalysisTaskHFE::Copy(TObject &o) const {
   target.fPlugins = fPlugins;
   target.fFillSignalOnly = fFillSignalOnly;
   target.fFillNoCuts = fFillNoCuts;
-  target.fUseFlagAOD = fUseFlagAOD;
+  target.fUseFilterAOD = fUseFilterAOD;
   target.fApplyCutAOD = fApplyCutAOD;
-  target.fFlags = fFlags;
+  target.fFilter = fFilter;
   target.fBackGroundFactorApply = fBackGroundFactorApply;
   target.fRemovePileUp = fRemovePileUp;
   target.fIdentifiedAsPileUp = fIdentifiedAsPileUp;
@@ -347,6 +350,7 @@ void AliAnalysisTaskHFE::Copy(TObject &o) const {
   target.fHistSECVTX = fHistSECVTX;
   target.fHistELECBACKGROUND = fHistELECBACKGROUND;
   target.fQACollection = fQACollection;
+  target.fQAAODCollection = fQAAODCollection;
 }
 
 //____________________________________________________________
@@ -386,6 +390,13 @@ void AliAnalysisTaskHFE::UserCreateOutputObjects(){
   // Called once per worker
   //
   AliDebug(3, "Creating Output Objects");
+  
+  // Make lists for Output
+  if(!fQA) fQA = new TList;
+  fQA->SetOwner();
+  if(!fOutput) fOutput = new TList;
+  fOutput->SetOwner();
+
   // Automatic determination of the analysis mode
   AliVEventHandler *inputHandler = dynamic_cast<AliVEventHandler *>(AliAnalysisManager::GetAnalysisManager()->GetInputEventHandler());
   if(!TString(inputHandler->IsA()->GetName()).CompareTo("AliAODInputHandler")){
@@ -397,8 +408,13 @@ void AliAnalysisTaskHFE::UserCreateOutputObjects(){
   }
   printf("Analysis Mode: %s Analysis\n", IsAODanalysis() ? "AOD" : "ESD");
   if(IsAODanalysis()) {
-    printf("AOD filter: %s \n", fUseFlagAOD ? "Yes" : "No");
-    if(fUseFlagAOD) printf("AOD filter used: %lu \n", fFlags);
+    printf("AOD filter: %s \n", fUseFilterAOD ? "Yes" : "No");
+    if(fUseFilterAOD) printf("AOD filter used: %d \n", fFilter);
+    // First Part: Make QA histograms
+    fQAAODCollection = new AliHFEcollection("TaskQAAOD", "QA histos from the AOD Electron Task");
+    fQAAODCollection->CreateTH1F("Filterorigin", "AOD filter of tracks at the origin", 21, -1, 20);
+    fQAAODCollection->CreateTH1F("Filterend", "AOD filter of tracks after all cuts", 21, -1, 20);
+    fQA->Add(fQAAODCollection);
   }
   printf("MC Data available %s\n", HasMCData() ? "Yes" : "No");
 
@@ -407,13 +423,6 @@ void AliAnalysisTaskHFE::UserCreateOutputObjects(){
   fTriggerAnalysis->EnableHistograms();
   fTriggerAnalysis->SetAnalyzeMC(HasMCData());
 
-
-  // Make lists for Output
-  if(!fQA) fQA = new TList;
-  fQA->SetOwner();
-  if(!fOutput) fOutput = new TList;
-  fOutput->SetOwner();
-
   // First Part: Make QA histograms
   fQACollection = new AliHFEcollection("TaskQA", "QA histos from the Electron Task");
   fQACollection->CreateTH1F("nElectronTracksEvent", "Number of Electron Candidates", 100, 0, 100);
@@ -1500,11 +1509,24 @@ void AliAnalysisTaskHFE::ProcessAOD(){
   for(Int_t itrack = 0; itrack < fAOD->GetNumberOfTracks(); itrack++){
     track = fAOD->GetTrack(itrack); mctrack = NULL;
     if(!track) continue;
-    if(fUseFlagAOD){
-      if(track->GetFlags() != fFlags) continue;  // Only process AOD tracks where the HFE is set
+    // Begining
+    Bool_t passone = kFALSE;  
+    fQAAODCollection->Fill("Filterorigin", -1);
+    for(Int_t k=0; k<20; k++) {
+      Int_t u = 1<<k;     
+      if((track->TestFilterBit(u))) {
+       fQAAODCollection->Fill("Filterorigin", k);
+       passone = kTRUE;
+      }
     }
-    //printf("Pass the flag\n");
+    //if(!passone) printf("what is the filter %d\n",track->GetFilterMap());
 
+    if(fUseFilterAOD){
+      //printf("Filter of the track  %d\n",track->GetFilterMap());
+      if(!(track->TestFilterBit(fFilter))) continue;  // Only process AOD tracks where the HFE is set
+    }
+    //printf("Pass the flag\n");
+    
     signal = kTRUE;
     if(HasMCData()){
 
@@ -1523,6 +1545,7 @@ void AliAnalysisTaskHFE::ProcessAOD(){
     }
 
     if(fApplyCutAOD) {
+      //printf("Apply cuts\n");
       // RecKine: ITSTPC cuts  
       if(!ProcessCutStep(AliHFEcuts::kStepRecKineITSTPC, track)) continue;
 
@@ -1571,7 +1594,15 @@ void AliAnalysisTaskHFE::ProcessAOD(){
     fPID->SetVarManager(fVarManager);
     if(!fPID->IsSelected(&hfetrack, fContainer, "recTrackCont", fPIDqa)) continue;    // we will do PID here as soon as possible
 
-    
+    // end AOD QA
+    fQAAODCollection->Fill("Filterend", -1);  
+    for(Int_t k=0; k<20; k++) {
+      Int_t u = 1<<k;
+      if((track->TestFilterBit(u))) {
+       fQAAODCollection->Fill("Filterend", k);
+      }
+    }
+       
     // Apply weight for background contamination
     //Double_t weightBackGround = 1.0;
     if(signal) {
index 21791a1adefe5e4eb85744a99a00aa68cac0250c..6c01f7aa2d67e48b9f01268a36be7260fdb577c0 100644 (file)
@@ -115,9 +115,9 @@ class AliAnalysisTaskHFE : public AliAnalysisTaskSE{
     void SetFillSignalOnly(Bool_t signalOnly) { fFillSignalOnly = signalOnly; }
    
     void SetFillNoCuts(Bool_t fillNoCuts) { fFillNoCuts = fillNoCuts; }
-    void SetUseFlagAOD(Bool_t useFlagAOD) { fUseFlagAOD = useFlagAOD; }
-    void SetApplyCutAOD(Bool_t applyCutAOD) { fApplyCutAOD = applyCutAOD; }
-    void SetFlags(ULong_t flags)          { fFlags = flags; }
+    void SetUseFilterAOD(Bool_t useFilterAOD) { fUseFilterAOD = useFilterAOD; }
+    void SetApplyCutAOD(Bool_t applyCutAOD)   { fApplyCutAOD = applyCutAOD; }
+    void SetFilter(UInt_t filter)             { fFilter = filter; }
     void SetRemovePileUp(Bool_t removePileUp) { fRemovePileUp = removePileUp; }
     void SetPIDPreselect(AliHFEpid * const cuts) { fPIDpreselect = cuts; };
     void SetAODAnalysis() { SetBit(kAODanalysis, kTRUE); };
@@ -172,9 +172,9 @@ class AliAnalysisTaskHFE : public AliAnalysisTaskSE{
     UShort_t fPlugins;                    // Enabled Plugins
     Bool_t fFillSignalOnly;               // Fill container only with MC Signal Tracks
     Bool_t fFillNoCuts;                   // Fill container before any cut
-    Bool_t fUseFlagAOD;                   // Use the preselected AOD track
+    Bool_t fUseFilterAOD;                   // Use the preselected AOD track
     Bool_t fApplyCutAOD;                  // Apply the analysis cut for AOD tracks
-    ULong_t fFlags;                       // reconstruction AOD status flags 
+    UInt_t fFilter;                       // filter AOD status  
     Bool_t fBackGroundFactorApply;        // Apply Background Function Subtraction,   MF: To be removed when transition to OADB container is finished
     Bool_t fRemovePileUp;                 // Remove Pile Up
     Bool_t fIdentifiedAsPileUp;           // Identified as pile-up
@@ -221,6 +221,7 @@ class AliAnalysisTaskHFE : public AliAnalysisTaskSE{
     TList *fHistSECVTX;                   //! Output container for sec. vertexing results
     TList *fHistELECBACKGROUND;           //! Output container for electron background analysis
     AliHFEcollection *fQACollection;      //! Tasks own QA collection
+    AliHFEcollection *fQAAODCollection;   //! Task own QA AOD collection
     //---------------------------------------
 
     ClassDef(AliAnalysisTaskHFE, 2)       // The electron Analysis Task
index 49b49e581aaea0298d8154e417b390cb55c0aead..fe0d936d4e6c13cd9415eca20b0be8df957ec47e 100644 (file)
@@ -1,4 +1,4 @@
-AliAnalysisTask *AddTaskHFEtpctof(Bool_t isMC,Bool_t kAnalyseTaggedTracks = kFALSE, Bool_t kMCQA = kFALSE, Bool_t kDEStep = kFALSE, Long_t aodfilter=-1, Int_t tpcCls=110,  Int_t tpcClsPID = 70, Int_t itsCls=4, Double_t dcaxy=1.0, Double_t dcaz=2.0, Double_t tpcs=0., Double_t tpcu=3., Double_t tofs=3., Double_t ipSig=3.0, Bool_t prodcut = kFALSE, Bool_t ipAbs = kFALSE, Int_t itspixelcut=AliHFEextraCuts::kBoth, Bool_t withetacorrection=kFALSE, TString listname="", Int_t ptbin=0){
+AliAnalysisTask *AddTaskHFEtpctof(Bool_t isMC,Bool_t kAnalyseTaggedTracks = kFALSE, Bool_t kMCQA = kFALSE, Bool_t kDEStep = kFALSE, Int_t aodfilter=-1, Int_t tpcCls=110,  Int_t tpcClsPID = 70, Int_t itsCls=4, Double_t dcaxy=1.0, Double_t dcaz=2.0, Double_t tpcs=0., Double_t tpcu=3., Double_t tofs=3., Double_t ipSig=3.0, Bool_t prodcut = kFALSE, Bool_t ipAbs = kFALSE, Int_t itspixelcut=AliHFEextraCuts::kAny, Bool_t withetacorrection=kFALSE, TString listname="", Int_t ptbin=0){
 
   // libraries in case
   gSystem->Load("libANALYSIS.so");
@@ -56,7 +56,7 @@ AliAnalysisTask *AddTaskHFEtpctof(Bool_t isMC,Bool_t kAnalyseTaggedTracks = kFAL
   if (inputDataType == "AOD"){
     task->SetAODAnalysis();
     task->SetFillNoCuts(kTRUE);
-    task->SetUseFlagAOD(kFALSE);
+    //task->SetUseFilterAOD(kFALSE);
     task->SetApplyCutAOD(kTRUE);
   }
   task->SelectCollisionCandidates();
index f5a915a1900e7964e937e7e58b2335f2a8fe7eba..943dfe4a59196f57487854a69b12b7353395fb6c 100644 (file)
@@ -1,4 +1,4 @@
-AliAnalysisTask *AddTaskHFEtpctofPbPb(Bool_t beauty=kTRUE, Int_t tpcCls=110,  Int_t tpcClsPID = 70, Double_t tpcClsRatio = 0.6, Double_t tpcClShared = 0.1, Int_t itsCls=4, Double_t itsChi2PerClusters=36., Double_t dcaxy=1.0, Double_t dcaz=2.0, Double_t tofs=3., Double_t ipSig=3.0, Bool_t syst = kFALSE, Int_t itspixelcut=AliHFEextraCuts::kBoth, Float_t prodlow=0., Float_t prodhigh=100., Int_t addflag=0.,Int_t etacor){
+AliAnalysisTask *AddTaskHFEtpctofPbPb(Bool_t isMC,Int_t aodfilter=-1, Int_t tpcCls=110,  Int_t tpcClsPID = 70, Double_t tpcClsRatio = 0.6, Double_t tpcClShared = 0.1, Int_t itsCls=4,Double_t itsChi2PerClusters=36.,Int_t itspixelcut=AliHFEextraCuts::kAny, Double_t dcaxy=1.0, Double_t dcaz=2.0, Double_t tofs=3., Double_t ipSig=3.0, Float_t prodlow=0., Float_t prodhigh=100., Bool_t beauty=kTRUE,Bool_t kMCQA = kFALSE, Bool_t kDEStep = kFALSE, Int_t addflag=0,Int_t etacor=0,TString listname="",){
 
   // libraries in case
   gSystem->Load("libANALYSIS.so");
@@ -7,13 +7,31 @@ AliAnalysisTask *AddTaskHFEtpctofPbPb(Bool_t beauty=kTRUE, Int_t tpcCls=110,  In
 
   //set config file name
   TString configFile("$ALICE_ROOT/PWGHF/hfe/macros/configs/PbPb/ConfigHFEpbpb.C");
-  //TString configFile("/d/alice12/bailhache/AliRootInstallations/07_06_2012/AliRoot/PWGHF/hfe/macros/configs/PbPb/ConfigHFEpbpb.C");
+  //TString configFile("/d/alice12/bailhache/AliRootInstallations/11_09_2012/AliRoot/PWGHF/hfe/macros/configs/PbPb/ConfigHFEpbpb.C");
   TString checkconfig="ConfigHFEpbpb";
   if (!gROOT->GetListOfGlobalFunctions()->FindObject(checkconfig.Data()))
     gROOT->LoadMacro(configFile.Data());
 
-  TString appendix(TString::Format("TPC%dpid%dClShared%dratio%dITS%dITSChi%dITScut%dDCAr%dz%dIP%dTOF%dProdlow%dProdhigh%daddflag%ietacor%i",
-                                  tpcCls,tpcClsPID,(Int_t)(tpcClShared*100),(Int_t)(tpcClsRatio*100),itsCls,(Int_t)itsChi2PerClusters,itspixelcut,(Int_t)dcaxy,(Int_t)dcaz,(Int_t)ipSig,(Int_t)(tofs*10),(Int_t)prodlow,(Int_t)prodhigh,addflag,etacor));
+  
+  // Name of the directory
+  Int_t itpcClsRatio = (Int_t) tpcClsRatio*10;
+  Int_t itpcClShared = (Int_t) tpcClShared*10;
+  Int_t iitsChi2PerClusters = (Int_t) itsChi2PerClusters*10;
+  Int_t idcaxy = (Int_t) dcaxy*10;
+  Int_t idcaz = (Int_t) dcaz*10;
+  Int_t itofs = (Int_t) tofs*10;
+  Int_t iipSig = (Int_t) ipSig;
+  Int_t iprodlow = (Int_t) prodlow;
+  Int_t iprodhigh = (Int_t) prodhigh*10;
+  Int_t ibeauty = 0;
+  Int_t iMCQA = 0;
+  Int_t iDEStep = 0;
+  if(beauty) ibeauty = 1;
+  if(kMCQA) iMCQA = 1;
+  if(kDEStep) iDEStep = 1;
+
+
+  TString appendix(TString::Format("a%dT%dTP%dTR%dTS%dI%dIC%dIp%dDCAx%dz%dTOF%dIP%dprodL%dH%dB%dM%dD%da%de%d",aodfilter,tpcCls,tpcClsPID,itpcClsRatio,itpcClShared,itsCls,iitsChi2PerClusters,itspixelcut,idcaxy,idcaz,itofs,iipSig,iprodlow,iprodhigh,ibeauty,iMCQA,iDEStep,addflag,etacor));
   printf("appendix %s\n", appendix.Data());
   
   AliAnalysisManager *mgr = AliAnalysisManager::GetAnalysisManager();
@@ -21,17 +39,16 @@ AliAnalysisTask *AddTaskHFEtpctofPbPb(Bool_t beauty=kTRUE, Int_t tpcCls=110,  In
   // Check the analysis type using the event handlers connected to the analysis manager.
   //==============================================================================
   if (!mgr->GetInputEventHandler()) {
-    ::Error("AddTaskEventplane", "This task requires an input event handler");
+    printf("AddTaskEventplane", "This task requires an input event handler");
     return NULL;
   }
   TString inputDataType = mgr->GetInputEventHandler()->GetDataType(); // can be "ESD" or "AOD"
 
   AliAnalysisDataContainer *cinput  = mgr->GetCommonInputContainer();
-  AliAnalysisTaskHFE *task = ConfigHFEpbpb(kFALSE,beauty,tpcCls,tpcClsPID,tpcClsRatio,tpcClShared,itsCls,itsChi2PerClusters,dcaxy,dcaz,tofs,ipSig,itspixelcut,appendix,prodlow,prodhigh,addflag,0,etacor);  
+  AliAnalysisTaskHFE *task = ConfigHFEpbpb(isMC,appendix,aodfilter,tpcCls,tpcClsPID,tpcClsRatio,tpcClShared,itsCls,itsChi2PerClusters,itspixelcut,dcaxy,dcaz,tofs,ipSig,prodlow,prodhigh,beauty,kMCQA,kDEStep,addflag,0,etacor,listname);  
 
   if (inputDataType == "AOD"){
     task->SetFillNoCuts(kTRUE);
-    task->SetUseFlagAOD(kFALSE);
     task->SetApplyCutAOD(kTRUE);
   }
 
@@ -43,7 +60,8 @@ AliAnalysisTask *AddTaskHFEtpctofPbPb(Bool_t beauty=kTRUE, Int_t tpcCls=110,  In
   containerName += appendix.Data();
 
   AliAnalysisDataContainer *cinput  = mgr->GetCommonInputContainer();
-  mgr->ConnectOutput(task,1, mgr->CreateContainer(Form("HFEtpctof_%s", appendix.Data()), TList::Class(),AliAnalysisManager::kOutputContainer,containerName.Data()));
+  mgr->ConnectOutput(task,1, mgr->CreateContainer(Form("HFE_Results_%s", appendix.Data()), TList::Class(),AliAnalysisManager::kOutputContainer,containerName.Data()));
+  mgr->ConnectOutput(task,2, mgr->CreateContainer(Form("HFE_QA_%s", appendix.Data()), TList::Class(),AliAnalysisManager::kOutputContainer,containerName.Data()));
   mgr->ConnectInput(task,0, cinput );    
 
   return NULL;
index 969b0a30d3632595fa7c0af3ed46960f4bcd4a0d..457c78d2d11078196e6f2d3417b3f794dde8adad 100644 (file)
@@ -1,6 +1,5 @@
-TF1* GetEtaCorrection(){
-  TString list=gSystem->Getenv("LIST");
-
+TF1* GetEtaCorrection(TString listname){
+  
   TString etaMap="$ALICE_ROOT/PWGDQ/dielectron/files/EtaCorrMaps.root";
   
   if (gSystem->AccessPathName(gSystem->ExpandPathName(etaMap.Data()))){
@@ -16,7 +15,7 @@ TF1* GetEtaCorrection(){
   for (Int_t i=0; i<keys->GetEntries(); ++i){
     TString kName=keys->At(i)->GetName();
     TPRegexp reg(kName);
-    if (reg.MatchB(list)){
+    if (reg.MatchB(listname)){
       printf("Using Eta Correction Function: %s\n",kName.Data());
       return (TF1*)f.Get(kName.Data());
     }
@@ -25,13 +24,22 @@ TF1* GetEtaCorrection(){
 }
 
 
-AliAnalysisTaskHFE* ConfigHFEpbpb(Bool_t useMC=kFALSE, Bool_t beauty=kFALSE,
+AliAnalysisTaskHFE* ConfigHFEpbpb(Bool_t useMC=kFALSE,
+                                 TString appendix,
+                                 Int_t aodfilter=-1,
                                  UChar_t TPCcl=70, UChar_t TPCclPID = 80, 
                                  Double_t TPCclRatio = 0.6, Double_t TPCclshared = 1.1,
                                  UChar_t ITScl=3,  Double_t ITSchi2perclusters=99999999.,
+                                 Int_t itspixelcut=AliHFEextraCuts::kFirst,
                                   Double_t dcaxy=1.0, Double_t dcaz=2.0,
-                                 Double_t TOFs=3.,Double_t IpSig=3., Int_t itspixelcut=AliHFEextraCuts::kFirst, TString appendix,
-                                 Float_t prodlow=0., Float_t prodhigh=100., Int_t addflag=0., Int_t ptbin=0, Int_t etacor=0,
+                                 Double_t TOFs=3.,
+                                 Double_t IpSig=3.,                              
+                                 Float_t prodlow=0., Float_t prodhigh=100., 
+                                 Bool_t beauty=kFALSE,
+                                 Bool_t kMCQA = kFALSE, 
+                                 Bool_t kDEStep = kFALSE,
+                                 Int_t addflag=0, Int_t ptbin=0, 
+                                 Int_t etacor=0, TString listname="",
                                  Int_t nondefaultcentr=0, Float_t* arraycentr=NULL,
                                  Double_t* tpcdEdxcut=NULL,Double_t tpcu=3.0){
   //
@@ -74,6 +82,13 @@ AliAnalysisTaskHFE* ConfigHFEpbpb(Bool_t useMC=kFALSE, Bool_t beauty=kFALSE,
   task->SetPbPbAnalysis(kTRUE);
   task->SetRemovePileUp(kFALSE);
   task->GetPIDQAManager()->SetHighResolutionHistos();
+  if(useMC) task->SetHasMCData(kTRUE); // necessary for AOD
+  printf("AOD filter %d On/OFF?\n",aodfilter);
+  if(aodfilter > 0) {
+    printf("ON AOD filter %d\n",aodfilter);
+    task->SetUseFilterAOD(kTRUE);
+    task->SetFilter(aodfilter);
+  }
  
   
   if((nondefaultcentr!=0) && arraycentr) {
@@ -169,7 +184,7 @@ AliAnalysisTaskHFE* ConfigHFEpbpb(Bool_t useMC=kFALSE, Bool_t beauty=kFALSE,
       { 
        // Apply eta correction
        AliHFEpidTPC *tpcpid = pid->GetDetPID(AliHFEpid::kTPCpid);
-       TF1 *etacorrection = GetEtaCorrection();
+       TF1 *etacorrection = GetEtaCorrection(listname);
        if(etacorrection) tpcpid->SetEtaCorrection(etacorrection);
        
       }
@@ -183,10 +198,10 @@ AliAnalysisTaskHFE* ConfigHFEpbpb(Bool_t useMC=kFALSE, Bool_t beauty=kFALSE,
   // QA
   task->SetQAOn(AliAnalysisTaskHFE::kPIDqa);
   //task->SetFillSignalOnly(kFALSE);    // for DE pluging for MC
-  task->SetQAOn(AliAnalysisTaskHFE::kMCqa);
+  if(kMCQA) task->SetQAOn(AliAnalysisTaskHFE::kMCqa);
   //task->SwitchOnPlugin(AliAnalysisTaskHFE::kIsElecBackGround);
   //task->SwitchOnPlugin(AliAnalysisTaskHFE::kSecVtx);
-  task->SwitchOnPlugin(AliAnalysisTaskHFE::kDEstep);
+  if(kDEStep) task->SwitchOnPlugin(AliAnalysisTaskHFE::kDEstep);
   if(useMC && addflag==1) task->SetDebugStreaming();
 
   task->SelectCollisionCandidates(AliVEvent::kMB | AliVEvent::kCentral | AliVEvent::kSemiCentral);
index 7ae8387ddf1384b6e46f6217df9207a6f9047fbd..f9d59d8e6a3981f7760fbac8da39bfe0c05e0186 100644 (file)
@@ -86,9 +86,11 @@ AliAnalysisTaskHFE* ConfigHFEpid2SYS(Bool_t useMC,
   task->SetRemovePileUp(kTRUE);
   task->GetPIDQAManager()->SetHighResolutionHistos();
   if(useMC) task->SetHasMCData(kTRUE); // necessary for AOD
+  printf("AOD filter %d On/OFF?\n",aodfilter);
   if(aodfilter > 0) {
-    task->SetUseFlagAOD(kTRUE);
-    task->SetFlags(aodfilter);
+    printf("ON AOD filter %d\n",aodfilter);
+    task->SetUseFilterAOD(kTRUE);
+    task->SetFilter(aodfilter);
   }