]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - PWGPP/macros/AddTaskImpParRes.C
Added TRD script for automatic trending + change permissions on FMD script
[u/mrichter/AliRoot.git] / PWGPP / macros / AddTaskImpParRes.C
index 8650d6f3b31dedb6388aba1e7a5ee336d14e7575..a10989cb1718821ea2517c963e081546b8c747cb 100644 (file)
@@ -1,10 +1,22 @@
+/*AliAnalysisTaskSEImpParRes *AddTaskImpParRes(TString dirName="",
+                                            Bool_t readMC=kFALSE,
+                                            Bool_t isAOD=kTRUE,
+                                            Int_t SPDreq=1,
+                                            Int_t selPdg=-1,
+                                            Bool_t diamond=kTRUE,
+                                            Bool_t skipTrack=kTRUE,
+                                            Int_t minmult=0,
+                                            Int_t maxmult=1000000)*/
 AliAnalysisTaskSEImpParRes *AddTaskImpParRes(Bool_t readMC=kFALSE,
                                             Int_t selPdg=-1,
                                             Bool_t diamond=kTRUE,
                                             Bool_t skipTrack=kTRUE,
                                             Int_t minmult=0,
                                             Int_t maxmult=1000000,
-                                            Int_t checkSDDIsIn=1) 
+                                            Int_t checkSDDIsIn=1,
+                                            TString dirName="",
+                                            Bool_t isAOD=kFALSE,
+                                            Int_t SPDreq=1)
 {
   //
   // Configuration for the study of the impact parameter resolution
@@ -19,154 +31,179 @@ AliAnalysisTaskSEImpParRes *AddTaskImpParRes(Bool_t readMC=kFALSE,
   if (!mgr) {
     ::Error("AddTaskImpParRes", "No analysis manager to connect to.");
     return NULL;
-  }   
+  }  
+
+  AliESDtrackCuts* esdTrackCuts = new AliESDtrackCuts("d0ResAnalysisESDTrackCuts");
+  esdTrackCuts->SetRequireTPCRefit(kTRUE);
+  esdTrackCuts->SetRequireITSRefit(kTRUE);
+  switch(SPDreq){
+  case(1):
+    esdTrackCuts->SetClusterRequirementITS(AliESDtrackCuts::kSPD,AliESDtrackCuts::kFirst);
+    break;
+  case(2):
+    esdTrackCuts->SetClusterRequirementITS(AliESDtrackCuts::kSPD,AliESDtrackCuts::kBoth);
+    break;
+  case(3):
+    esdTrackCuts->SetClusterRequirementITS(AliESDtrackCuts::kSPD,AliESDtrackCuts::kAny);
+    break;
+  default:
+    esdTrackCuts->SetClusterRequirementITS(AliESDtrackCuts::kSPD,AliESDtrackCuts::kBoth);
+    break;
+    }
+  esdTrackCuts->SetMaxChi2PerClusterTPC(4);
+  //esdTrackCuts->SetMinNCrossedRowsTPC(70);
+  esdTrackCuts->SetMinNClustersTPC(70);
+
   
   // Aanalysis task    
   AliAnalysisTaskSEImpParRes *d0ResTask = new AliAnalysisTaskSEImpParRes("d0ResAnalysis");
   d0ResTask->SetDebugLevel(2);
   d0ResTask->SetReadMC(readMC);
+  d0ResTask->SetIsAOD(isAOD);
   d0ResTask->SetSelectedPdg(selPdg);
   d0ResTask->SetUseDiamond(diamond);
   d0ResTask->SetSkipTrack(skipTrack);
   d0ResTask->SetMultiplicityRange(minmult,maxmult);
-  d0ResTask->SetCheckSDDIsIn(checkSDDIsIn);
-  //d0ResTask->SetOCDBPath("alien://folder=/alice/data/2011/OCDB"); // to be commented for the QAtrain
+  d0ResTask->SetESDtrackCuts(esdTrackCuts);
   mgr->AddTask(d0ResTask);
 
   TString fname=Form("%s:ImpParRes_Performance",mgr->GetCommonFileName());
-  if(checkSDDIsIn==1) fname.Append("_wSDD"); 
-  if(checkSDDIsIn==-1) fname.Append("_woSDD"); 
   if(selPdg>0) {fname+=selPdg;}
+  fname += dirName.Data();
 
+  TString name=dirName;
   //
   // Create containers for input/output
-  AliAnalysisDataContainer *cinputd0distr = mgr->CreateContainer("cinputd0distr",TChain::Class(), 
+  AliAnalysisDataContainer *cinputd0distr = mgr->CreateContainer(Form("cinputd0distr%s",name.Data()),TChain::Class(), 
                                                                 AliAnalysisManager::kInputContainer);
 
-  AliAnalysisDataContainer *coutputd0ITSpureSARec = mgr->CreateContainer(Form("coutputd0ITSpureSARec_%d_%d",minmult,maxmult),TList::Class(), 
+  AliAnalysisDataContainer *coutputd0ITSpureSARec = mgr->CreateContainer(Form("coutputd0ITSpureSARec_%d_%d%s",minmult,maxmult,name.Data()),TList::Class(), 
                                                                   AliAnalysisManager::kOutputContainer,
                                                                   fname.Data());
 
-  AliAnalysisDataContainer *coutputd0ITSpureSASkip = mgr->CreateContainer(Form("coutputd0ITSpureSASkip_%d_%d",minmult,maxmult),TList::Class(), 
+  AliAnalysisDataContainer *coutputd0ITSpureSASkip = mgr->CreateContainer(Form("coutputd0ITSpureSASkip_%d_%d%s",minmult,maxmult,name.Data()),TList::Class(), 
                                                                   AliAnalysisManager::kOutputContainer,
                                                                   fname.Data());
 
-  AliAnalysisDataContainer *coutputd0allPointRec = mgr->CreateContainer(Form("coutputd0allPointRec_%d_%d",minmult,maxmult),TList::Class(), 
+  AliAnalysisDataContainer *coutputd0allPointRec = mgr->CreateContainer(Form("coutputd0allPointRec_%d_%d%s",minmult,maxmult,name.Data()),TList::Class(), 
                                                                   AliAnalysisManager::kOutputContainer,
                                                                   fname.Data());
   
-  AliAnalysisDataContainer *coutputd0allPointSkip = mgr->CreateContainer(Form("coutputd0allPointSkip_%d_%d",minmult,maxmult),TList::Class(), 
+  AliAnalysisDataContainer *coutputd0allPointSkip = mgr->CreateContainer(Form("coutputd0allPointSkip_%d_%d%s",minmult,maxmult,name.Data()),TList::Class(), 
                                                                   AliAnalysisManager::kOutputContainer,
                                                                   fname.Data());
  
-  AliAnalysisDataContainer *coutputd0partPointRec = mgr->CreateContainer(Form("coutputd0partPointRec_%d_%d",minmult,maxmult),TList::Class(),
+  AliAnalysisDataContainer *coutputd0partPointRec = mgr->CreateContainer(Form("coutputd0partPointRec_%d_%d%s",minmult,maxmult,name.Data()),TList::Class(),
                                                                        AliAnalysisManager::kOutputContainer,
                                                                        fname.Data());
 
-  AliAnalysisDataContainer *coutputd0partPointSkip = mgr->CreateContainer(Form("coutputd0partPointSkip_%d_%d",minmult,maxmult),TList::Class(),
+  AliAnalysisDataContainer *coutputd0partPointSkip = mgr->CreateContainer(Form("coutputd0partPointSkip_%d_%d%s",minmult,maxmult,name.Data()),TList::Class(),
                                                                        AliAnalysisManager::kOutputContainer,
                                                                        fname.Data());
 
-  AliAnalysisDataContainer *coutputd0onepointSPDRec = mgr->CreateContainer(Form("coutputd0onepointSPDRec_%d_%d",minmult,maxmult),TList::Class(),
+  AliAnalysisDataContainer *coutputd0onepointSPDRec = mgr->CreateContainer(Form("coutputd0onepointSPDRec_%d_%d%s",minmult,maxmult,name.Data()),TList::Class(),
                                                                        AliAnalysisManager::kOutputContainer,
                                                                        fname.Data());
 
-  AliAnalysisDataContainer *coutputd0onepointSPDSkip = mgr->CreateContainer(Form("coutputd0onepointSPDSkip_%d_%d",minmult,maxmult),TList::Class(),
+  AliAnalysisDataContainer *coutputd0onepointSPDSkip = mgr->CreateContainer(Form("coutputd0onepointSPDSkip_%d_%d%s",minmult,maxmult,name.Data()),TList::Class(),
                                                                        AliAnalysisManager::kOutputContainer,
                                                                        fname.Data());
 
-  AliAnalysisDataContainer *coutputd0postvTracRec = mgr->CreateContainer(Form("coutputd0postvTracRec_%d_%d",minmult,maxmult),TList::Class(),
+  AliAnalysisDataContainer *coutputd0postvTracRec = mgr->CreateContainer(Form("coutputd0postvTracRec_%d_%d%s",minmult,maxmult,name.Data()),TList::Class(),
                                                                        AliAnalysisManager::kOutputContainer,
                                                                        fname.Data());
  
  
-  AliAnalysisDataContainer *coutputd0postvTracSkip = mgr->CreateContainer(Form("coutputd0postvTracSkip_%d_%d",minmult,maxmult),TList::Class(),
+  AliAnalysisDataContainer *coutputd0postvTracSkip = mgr->CreateContainer(Form("coutputd0postvTracSkip_%d_%d%s",minmult,maxmult,name.Data()),TList::Class(),
                                                                        AliAnalysisManager::kOutputContainer,
                                                                        fname.Data());
  
-  AliAnalysisDataContainer *coutputd0negtvTracRec = mgr->CreateContainer(Form("coutputd0negtvTracRec_%d_%d",minmult,maxmult),TList::Class(),
+  AliAnalysisDataContainer *coutputd0negtvTracRec = mgr->CreateContainer(Form("coutputd0negtvTracRec_%d_%d%s",minmult,maxmult,name.Data()),TList::Class(),
                                                                        AliAnalysisManager::kOutputContainer,
                                                                        fname.Data());
  
-  AliAnalysisDataContainer *coutputd0negtvTracSkip = mgr->CreateContainer(Form("coutputd0negtvTracSkip_%d_%d",minmult,maxmult),TList::Class(),
+  AliAnalysisDataContainer *coutputd0negtvTracSkip = mgr->CreateContainer(Form("coutputd0negtvTracSkip_%d_%d%s",minmult,maxmult,name.Data()),TList::Class(),
                                                                        AliAnalysisManager::kOutputContainer,
                                                                        fname.Data());
 
-  AliAnalysisDataContainer *coutputd0pullAllpointRec = mgr->CreateContainer(Form("coutputd0pullAllpointRec_%d_%d",minmult,maxmult),TList::Class(),
+  AliAnalysisDataContainer *coutputd0pullAllpointRec = mgr->CreateContainer(Form("coutputd0pullAllpointRec_%d_%d%s",minmult,maxmult,name.Data()),TList::Class(),
                                                                        AliAnalysisManager::kOutputContainer,
                                                                        fname.Data());
 
 
-  AliAnalysisDataContainer *coutputd0pullAllpointSkip = mgr->CreateContainer(Form("coutputd0pullAllpointSkip_%d_%d",minmult,maxmult),TList::Class(),
+  AliAnalysisDataContainer *coutputd0pullAllpointSkip = mgr->CreateContainer(Form("coutputd0pullAllpointSkip_%d_%d%s",minmult,maxmult,name.Data()),TList::Class(),
                                                                        AliAnalysisManager::kOutputContainer,
                                                                        fname.Data());
 
-  AliAnalysisDataContainer *coutputd0onlyRefitRec = mgr->CreateContainer(Form("coutputd0onlyRefitRec_%d_%d",minmult,maxmult),TList::Class(),
+  AliAnalysisDataContainer *coutputd0onlyRefitRec = mgr->CreateContainer(Form("coutputd0onlyRefitRec_%d_%d%s",minmult,maxmult,name.Data()),TList::Class(),
                                                                        AliAnalysisManager::kOutputContainer,
                                                                        fname.Data());
 
-  AliAnalysisDataContainer *coutputd0onlyRefitSkip = mgr->CreateContainer(Form("coutputd0onlyRefitSkip_%d_%d",minmult,maxmult),TList::Class(),
+  AliAnalysisDataContainer *coutputd0onlyRefitSkip = mgr->CreateContainer(Form("coutputd0onlyRefitSkip_%d_%d%s",minmult,maxmult,name.Data()),TList::Class(),
                                                                        AliAnalysisManager::kOutputContainer,
                                                                        fname.Data());
 
 
-  AliAnalysisDataContainer *coutputd0sinThetaRec = mgr->CreateContainer(Form("coutputd0sinThetaRec_%d_%d",minmult,maxmult),TList::Class(),
+  AliAnalysisDataContainer *coutputd0sinThetaRec = mgr->CreateContainer(Form("coutputd0sinThetaRec_%d_%d%s",minmult,maxmult,name.Data()),TList::Class(),
                                                                        AliAnalysisManager::kOutputContainer,
                                                                        fname.Data());
 
 
-  AliAnalysisDataContainer *coutputd0sinThetaSkip = mgr->CreateContainer(Form("coutputd0sinThetaSkip_%d_%d",minmult,maxmult),TList::Class(),
+  AliAnalysisDataContainer *coutputd0sinThetaSkip = mgr->CreateContainer(Form("coutputd0sinThetaSkip_%d_%d%s",minmult,maxmult,name.Data()),TList::Class(),
                                                                        AliAnalysisManager::kOutputContainer,
                                                                        fname.Data());
 
 
- AliAnalysisDataContainer *coutputd0allPointTrue = mgr->CreateContainer(Form("coutputd0allPointTrue_%d_%d",minmult,maxmult),TList::Class(),
+ AliAnalysisDataContainer *coutputd0allPointTrue = mgr->CreateContainer(Form("coutputd0allPointTrue_%d_%d%s",minmult,maxmult,name.Data()),TList::Class(),
                                                                        AliAnalysisManager::kOutputContainer,
                                                                        fname.Data());
 
- AliAnalysisDataContainer *coutputd0postvTracTrue = mgr->CreateContainer(Form("coutputd0postvTracTrue_%d_%d",minmult,maxmult),TList::Class(),
+ AliAnalysisDataContainer *coutputd0postvTracTrue = mgr->CreateContainer(Form("coutputd0postvTracTrue_%d_%d%s",minmult,maxmult,name.Data()),TList::Class(),
                                                                        AliAnalysisManager::kOutputContainer,
                                                                        fname.Data());
 
- AliAnalysisDataContainer *coutputd0negtvTracTrue = mgr->CreateContainer(Form("coutputd0negtvTracTrue_%d_%d",minmult,maxmult),TList::Class(),
+ AliAnalysisDataContainer *coutputd0negtvTracTrue = mgr->CreateContainer(Form("coutputd0negtvTracTrue_%d_%d%s",minmult,maxmult,name.Data()),TList::Class(),
                                                                        AliAnalysisManager::kOutputContainer,
                                                                        fname.Data());
 
- AliAnalysisDataContainer *coutputd0pullAllpointTrue = mgr->CreateContainer(Form("coutputd0pullAllpointTrue_%d_%d",minmult,maxmult),TList::Class(),
+ AliAnalysisDataContainer *coutputd0pullAllpointTrue = mgr->CreateContainer(Form("coutputd0pullAllpointTrue_%d_%d%s",minmult,maxmult,name.Data()),TList::Class(),
                                                                        AliAnalysisManager::kOutputContainer,
                                                                        fname.Data());
 
 
- AliAnalysisDataContainer *coutputd0phiAllpointSkip = mgr->CreateContainer(Form("coutputd0phiAllpointSkip_%d_%d",minmult,maxmult),TList::Class(),
+ AliAnalysisDataContainer *coutputd0phiAllpointSkip = mgr->CreateContainer(Form("coutputd0phiAllpointSkip_%d_%d%s",minmult,maxmult,name.Data()),TList::Class(),
                                                                        AliAnalysisManager::kOutputContainer,
                                                                        fname.Data());
 
- AliAnalysisDataContainer *coutputd0phiPostvtracSkip = mgr->CreateContainer(Form("coutputd0phiPostvtracSkip_%d_%d",minmult,maxmult),TList::Class(),
+ AliAnalysisDataContainer *coutputd0phiPostvtracSkip = mgr->CreateContainer(Form("coutputd0phiPostvtracSkip_%d_%d%s",minmult,maxmult,name.Data()),TList::Class(),
                                                                        AliAnalysisManager::kOutputContainer,
                                                                        fname.Data());
  
- AliAnalysisDataContainer *coutputd0phiNegtvtracSkip = mgr->CreateContainer(Form("coutputd0phiNegtvtracSkip_%d_%d",minmult,maxmult),TList::Class(),
+ AliAnalysisDataContainer *coutputd0phiNegtvtracSkip = mgr->CreateContainer(Form("coutputd0phiNegtvtracSkip_%d_%d%s",minmult,maxmult,name.Data()),TList::Class(),
                                                                            AliAnalysisManager::kOutputContainer,
                                                                          fname.Data());
 
  
-  AliAnalysisDataContainer *coutputd0PID = mgr->CreateContainer(Form("coutputd0PID_%d_%d",minmult,maxmult),TList::Class(),
+  AliAnalysisDataContainer *coutputd0PID = mgr->CreateContainer(Form("coutputd0PID_%d_%d%s",minmult,maxmult,name.Data()),TList::Class(),
                                                                        AliAnalysisManager::kOutputContainer,
                                                                        fname.Data());
  
-  AliAnalysisDataContainer *coutputd0Pt = mgr->CreateContainer(Form("coutputd0Pt_%d_%d",minmult,maxmult),TList::Class(),
+  AliAnalysisDataContainer *coutputd0Pt = mgr->CreateContainer(Form("coutputd0Pt_%d_%d%s",minmult,maxmult,name.Data()),TList::Class(),
                                                                        AliAnalysisManager::kOutputContainer,
                                                                        fname.Data());
  
-  AliAnalysisDataContainer *coutputNentries = mgr->CreateContainer(Form("coutputNentries_%d_%d",minmult,maxmult),TH1F::Class(),
+  AliAnalysisDataContainer *coutputNentries = mgr->CreateContainer(Form("coutputNentries_%d_%d%s",minmult,maxmult,name.Data()),TH1F::Class(),
                                                                     AliAnalysisManager::kOutputContainer, 
                                                                   fname.Data());
 
-  AliAnalysisDataContainer *coutputEstimVtx = mgr->CreateContainer(Form("coutputEstimVtx_%d_%d",minmult,maxmult),TH1F::Class(),
+  AliAnalysisDataContainer *coutputEstimVtx = mgr->CreateContainer(Form("coutputEstimVtx_%d_%d%s",minmult,maxmult,name.Data()),TH1F::Class(),
                                                                     AliAnalysisManager::kOutputContainer, 
                                                                   fname.Data());
 
+  AliAnalysisDataContainer *coutputd0withESDTC = mgr->CreateContainer(Form("coutputd0withESDTC_%d_%d%s",minmult,maxmult,name.Data()),TList::Class(),
+                                                                       AliAnalysisManager::kOutputContainer,
+                                                                       fname.Data());
+
   // Attach input  
   mgr->ConnectInput(d0ResTask,0,mgr->GetCommonInputContainer()); 
   // Attack output
@@ -199,6 +236,7 @@ AliAnalysisTaskSEImpParRes *AddTaskImpParRes(Bool_t readMC=kFALSE,
   mgr->ConnectOutput(d0ResTask,27,coutputd0Pt);
   mgr->ConnectOutput(d0ResTask,28,coutputNentries);
   mgr->ConnectOutput(d0ResTask,29,coutputEstimVtx);
+  mgr->ConnectOutput(d0ResTask,30,coutputd0withESDTC);
 
   return d0ResTask;
 }