]> git.uio.no Git - u/mrichter/AliRoot.git/commitdiff
Streamlining with the analyis framework:
authormorsch <morsch@f7af4fe6-9843-0410-8265-dc069ae4e863>
Thu, 25 Feb 2010 09:22:41 +0000 (09:22 +0000)
committermorsch <morsch@f7af4fe6-9843-0410-8265-dc069ae4e863>
Thu, 25 Feb 2010 09:22:41 +0000 (09:22 +0000)
- tasks derive from AliAnalysisTaskSE
- slots 0 reserved for standard I/O
- tasks have default constructor
- DefineInput, DefineOutput in non-default constructor

PWG1/TRD/macros/AddTRDcheckDET.C
PWG1/TRD/macros/AddTRDcheckESD.C
PWG1/TRD/macros/AddTRDcheckPID.C
PWG1/TRD/macros/AddTRDefficiency.C
PWG1/TRD/macros/AddTRDinfoGen.C
PWG1/TRD/macros/AddTRDresolution.C

index b2c2be57647859219060576f15a3680033ea6f2e..9bbe6669b1e9d89c365eaeb349af9deba9567d78 100644 (file)
@@ -13,20 +13,21 @@ void AddTRDcheckDET(AliAnalysisManager *mgr, Char_t *trd, AliAnalysisDataContain
   if(!(TSTBIT(map, kCheckDET))) return;
 
   AliTRDcheckDET *task = 0x0;
-  mgr->AddTask(task = new AliTRDcheckDET());
+  mgr->AddTask(task = new AliTRDcheckDET("checkDET"));
   task->SetDebugLevel(0);
   task->SetMCdata(mgr->GetMCtruthEventHandler());
   
   // Create containers for input/output
-  mgr->ConnectInput( task, 0, ci[0]);
-  mgr->ConnectInput( task, 1, ci[1]);
-  mgr->ConnectOutput(task, 0, mgr->CreateContainer(task->GetName(), TObjArray::Class(), AliAnalysisManager::kOutputContainer, "TRD.Performance.root"));
+  mgr->ConnectInput ( task, 0, mgr->GetCommonInputContainer());
+  mgr->ConnectInput ( task, 1, ci[0]);
+  mgr->ConnectInput ( task, 2, ci[1]);
+  mgr->ConnectOutput( task, 1, mgr->CreateContainer(task->GetName(), TObjArray::Class(), AliAnalysisManager::kOutputContainer, "TRD.Performance.root"));
   
 
   // CALIBRATION
   if(!(TSTBIT(map, kCalibration))) return;
   AliTRDcalibration *ctask = 0x0;
-  mgr->AddTask(ctask = new AliTRDcalibration());
+  mgr->AddTask(ctask = new AliTRDcalibration("calibration"));
   ctask->SetHisto2d(kTRUE);
   ctask->SetVector2d(kTRUE);
   ctask->SetVdriftLinear(kTRUE);
@@ -42,6 +43,7 @@ void AddTRDcheckDET(AliAnalysisManager *mgr, Char_t *trd, AliAnalysisDataContain
   ctask->SetDebugLevel(1);
 
   // Create containers for input/output
-  mgr->ConnectInput(ctask, 0, ci[0]);
-  mgr->ConnectOutput(ctask, 0, mgr->CreateContainer(ctask->GetName(), TObjArray::Class(), AliAnalysisManager::kOutputContainer, Form("TRD.Task%s.root", ctask->GetName())));
+  mgr->ConnectInput(ctask,  0, mgr->GetCommonInputContainer());
+  mgr->ConnectInput(ctask,  1, ci[0]);
+  mgr->ConnectOutput(ctask, 1, mgr->CreateContainer(ctask->GetName(), TObjArray::Class(), AliAnalysisManager::kOutputContainer, Form("TRD.Task%s.root", ctask->GetName())));
 }
index 8c2db812fd63c9195f8ee1d06258f3ed45ce5668..fb6d37628f644896e4f4dbc9e8f560d0b38926f2 100644 (file)
@@ -6,9 +6,12 @@
 
 void AddTRDcheckESD(AliAnalysisManager *mgr)
 {
-  AliTRDcheckESD *checkESD = new AliTRDcheckESD();
-  checkESD->SetMC(mgr->GetMCtruthEventHandler());
+  AliTRDcheckESD *checkESD = new AliTRDcheckESD("checkESD");
+  Bool_t hasMCtruth = (mgr->GetMCtruthEventHandler() != 0);
+  
+  checkESD->SetMC(hasMCtruth);
   mgr->AddTask(checkESD);
-  mgr->ConnectInput(checkESD, 0, mgr->GetCommonInputContainer());  mgr->ConnectOutput(checkESD, 0, mgr->CreateContainer(checkESD->GetName(), TObjArray::Class(), AliAnalysisManager::kOutputContainer, "TRD.Performance.root"));
+  mgr->ConnectInput(checkESD,  0, mgr->GetCommonInputContainer());  
+  mgr->ConnectOutput(checkESD, 1, mgr->CreateContainer(checkESD->GetName(), TObjArray::Class(), AliAnalysisManager::kOutputContainer, "TRD.Performance.root"));
 }
 
index 1a0d95cf38995c62974a76189d9bcbfb19623a6b..5fa412fddcec3ba5997af16879ac0431cada536c 100644 (file)
@@ -14,20 +14,22 @@ void AddTRDcheckPID(AliAnalysisManager *mgr, Char_t *trd, AliAnalysisDataContain
 {
   Int_t map = ParseOptions(trd);
   AliAnalysisDataContainer *ce(NULL);
-  if(TSTBIT(map, kPIDRefMaker)){
+  if(TSTBIT(map, kCheckPID)){
     AliTRDcheckPID *pid = 0x0;
-    mgr->AddTask(pid = new AliTRDcheckPID());
+    mgr->AddTask(pid = new AliTRDcheckPID("checkPID"));
     pid->SetDebugLevel(0);
     pid->SetMCdata(mgr->GetMCtruthEventHandler());
-    mgr->ConnectInput(pid, 0, ci[0]);
-    mgr->ConnectOutput(pid, 0, mgr->CreateContainer(pid->GetName(), TObjArray::Class(), AliAnalysisManager::kOutputContainer, "TRD.Performance.root"));
+    mgr->ConnectInput (pid, 0, mgr->GetCommonInputContainer());
+    mgr->ConnectInput (pid, 1, ci[0]);
+    mgr->ConnectOutput(pid, 1, mgr->CreateContainer(pid->GetName(), TObjArray::Class(), AliAnalysisManager::kOutputContainer, "TRD.Performance.root"));
 
     // define PID exchange container
     ce = mgr->CreateContainer("InfoPID", TObjArray::Class(), AliAnalysisManager::kExchangeContainer);
-    mgr->ConnectOutput(pid, 1, ce);
+    mgr->ConnectOutput(pid, 2, ce);
   }  
 
   if(TSTBIT(map, kPIDRefMaker)){
+      printf("PIDRef (2)\n");
     // TRD pid reference maker 
     AliTRDpidRefMaker *ref = new AliTRDpidRefMaker(); 
     mgr->AddTask(ref);
@@ -37,11 +39,11 @@ void AddTRDcheckPID(AliAnalysisManager *mgr, Char_t *trd, AliAnalysisDataContain
     ref->SetFriends(kTRUE);
 
     // link basic ref maker
-    mgr->ConnectInput( ref, 0, ci[0]);
-    mgr->ConnectInput( ref, 1, ci[2]);
+    mgr->ConnectInput( ref, 1, ci[0]);
+    mgr->ConnectInput( ref, 2, ci[2]);
     if(ce) mgr->ConnectInput( ref, 2, ce);
-    mgr->ConnectOutput(ref, 0, mgr->CreateContainer(Form("Moni%s", ref->GetName()), TObjArray::Class(), AliAnalysisManager::kOutputContainer, Form("TRD.Calib%s.root", ref->GetName())));
-    mgr->ConnectOutput(ref, 1, mgr->CreateContainer(ref->GetName(), TTree::Class(), AliAnalysisManager::kOutputContainer, Form("TRD.Calib%s.root", ref->GetName())));
+    mgr->ConnectOutput(ref, 1, mgr->CreateContainer(Form("Moni%s", ref->GetName()), TObjArray::Class(), AliAnalysisManager::kOutputContainer, Form("TRD.Calib%s.root", ref->GetName())));
+    mgr->ConnectOutput(ref, 2, mgr->CreateContainer(ref->GetName(), TTree::Class(), AliAnalysisManager::kOutputContainer, Form("TRD.Calib%s.root", ref->GetName())));
 
     // TRD pid reference maker LQ 
     AliTRDpidRefMakerLQ *lq = new AliTRDpidRefMakerLQ(); 
@@ -50,12 +52,12 @@ void AddTRDcheckPID(AliAnalysisManager *mgr, Char_t *trd, AliAnalysisDataContain
     AliLog::SetClassDebugLevel("AliTRDpidRefMakerLQ", 3);
     lq->SetMCdata(mgr->GetMCtruthEventHandler());
     lq->SetFriends(kTRUE);
-    mgr->ConnectInput(lq, 0, ci[0]);
-    mgr->ConnectInput(lq, 1, ci[2]);
+    mgr->ConnectInput(lq, 1, ci[0]);
+    mgr->ConnectInput(lq, 0, ci[2]);
     if(ce) mgr->ConnectInput(lq, 2, ce);
-    mgr->ConnectOutput(lq, 0, mgr->CreateContainer(Form("Moni%s", lq->GetName()), TObjArray::Class(), AliAnalysisManager::kOutputContainer, Form("TRD.Calib%s.root", ref->GetName())));
-    mgr->ConnectOutput(lq, 1, mgr->CreateContainer(lq->GetName(), TTree::Class(), AliAnalysisManager::kOutputContainer, Form("TRD.Calib%s.root", ref->GetName())));
-    mgr->ConnectOutput(lq, 2, mgr->CreateContainer("PDF", TObjArray::Class(), AliAnalysisManager::kOutputContainer, Form("TRD.Calib%s.root", lq->GetName())));
+    mgr->ConnectOutput(lq, 1, mgr->CreateContainer(Form("Moni%s", lq->GetName()), TObjArray::Class(), AliAnalysisManager::kOutputContainer, Form("TRD.Calib%s.root", ref->GetName())));
+    mgr->ConnectOutput(lq, 2, mgr->CreateContainer(lq->GetName(), TTree::Class(), AliAnalysisManager::kOutputContainer, Form("TRD.Calib%s.root", ref->GetName())));
+    mgr->ConnectOutput(lq, 3, mgr->CreateContainer("PDF", TObjArray::Class(), AliAnalysisManager::kOutputContainer, Form("TRD.Calib%s.root", lq->GetName())));
   }
 }
 
index d3ddd5443e79126423d3c29e3e09897a44d617c0..de7412e4d5d3e0a1bae24b4fced6b3e677c6ac1a 100644 (file)
@@ -15,30 +15,33 @@ void AddTRDefficiency(AliAnalysisManager *mgr, Char_t *trd, AliAnalysisDataConta
 
   Bool_t mc = mgr->GetMCtruthEventHandler();
   AliTRDefficiency *eff = 0x0;
-  mgr->AddTask(eff = new AliTRDefficiency());
+  mgr->AddTask(eff = new AliTRDefficiency("TRDefficiency"));
   eff->SetDebugLevel(0);
-  mgr->ConnectInput(eff, 0, ci[0]);
-  mgr->ConnectOutput(eff, 0, mgr->CreateContainer(eff->GetName(), TObjArray::Class(), AliAnalysisManager::kOutputContainer, "TRD.Performance.root"));
+  mgr->ConnectInput(eff, 0, mgr->GetCommonInputContainer());  
+  mgr->ConnectInput(eff,  1, ci[0]);
+  mgr->ConnectOutput(eff, 1, mgr->CreateContainer(eff->GetName(), TObjArray::Class(), AliAnalysisManager::kOutputContainer, "TRD.Performance.root"));
     
 
   // TRD combined tracking efficiency
   AliTRDefficiencyMC *effMC = 0x0;
   if(mc && TSTBIT(map, kEfficiencyMC)){
-    mgr->AddTask(effMC = new AliTRDefficiencyMC());
+    mgr->AddTask(effMC = new AliTRDefficiencyMC("TRDefficiencyMC"));
     effMC->SetDebugLevel(0);
 
     // Create containers for input/output
-    mgr->ConnectInput(effMC, 0, ci[0]);
-    mgr->ConnectOutput(effMC, 0, mgr->CreateContainer(effMC->GetName(), TObjArray::Class(), AliAnalysisManager::kOutputContainer, Form("TRD.Task%s.root", effMC->GetName())));
+    mgr->ConnectInput(effMC, 0, mgr->GetCommonInputContainer());  
+    mgr->ConnectInput(effMC, 1, ci[0]);
+    mgr->ConnectOutput(effMC, 1, mgr->CreateContainer(effMC->GetName(), TObjArray::Class(), AliAnalysisManager::kOutputContainer, Form("TRD.Task%s.root", effMC->GetName())));
   }
 
   // TRD single track selection
   if(!(TSTBIT(map, kMultiplicity))) return;
 
   AliTRDmultiplicity *mult = 0x0;
-  mgr->AddTask(mult = new AliTRDmultiplicity());
+  mgr->AddTask(mult = new AliTRDmultiplicity("TRDmultiplicity"));
   mult->SetDebugLevel(0);
-  mgr->ConnectInput(mult, 0, ci[0]);
-  mgr->ConnectOutput(mult, 0, mgr->CreateContainer(mult->GetName(), TObjArray::Class(), AliAnalysisManager::kOutputContainer, Form("TRD.Task%s.root", mult->GetName())));
+  mgr->ConnectInput(mult, 0, mgr->GetCommonInputContainer());  
+  mgr->ConnectInput(mult, 1, ci[0]);
+  mgr->ConnectOutput(mult, 1, mgr->CreateContainer(mult->GetName(), TObjArray::Class(), AliAnalysisManager::kOutputContainer, Form("TRD.Task%s.root", mult->GetName())));
 }
 
index ac6a412a2b81d0d6c6de3e4b65c1ef641a1cd76c..a25fc1c746ad6d37df34000abfae03f4abc43cff 100644 (file)
@@ -12,12 +12,16 @@ void AddTRDinfoGen(AliAnalysisManager *mgr, Char_t *trd, AliAnalysisDataContaine
 {
   Int_t map = ParseOptions(trd);
   if(!(TSTBIT(map, kInfoGen))) return;
-
+  
   //AliLog::SetClassDebugLevel("AliTRDinfoGen", 5);  
   AliTRDinfoGen *info(NULL);
-  mgr->AddTask(info = new AliTRDinfoGen());
+  info = new AliTRDinfoGen("genInfo");
+  mgr->AddTask(info);
   info->SetDebugLevel(0);
   info->SetMCdata(mgr->GetMCtruthEventHandler());
+  AliAnalysisDataContainer* cin   = mgr->CreateContainer("dummy", TObjArray::Class(), AliAnalysisManager::kInputContainer);
+  
+
   mgr->ConnectInput( info, 0, mgr->GetCommonInputContainer());
   // settings for collisions
   info->SetCollision();
@@ -31,9 +35,12 @@ void AddTRDinfoGen(AliAnalysisManager *mgr, Char_t *trd, AliAnalysisDataContaine
   }
   co[0] = mgr->CreateContainer("trackInfo", TObjArray::Class(), AliAnalysisManager::kExchangeContainer);
   co[1] = mgr->CreateContainer("eventInfo", AliTRDeventInfo::Class(), AliAnalysisManager::kExchangeContainer);
-  co[2] = mgr->CreateContainer("v0Info", TObjArray::Class(), AliAnalysisManager::kExchangeContainer);
-  mgr->ConnectOutput(info, 0, co[0]);
-  mgr->ConnectOutput(info, 1, co[1]);
-  mgr->ConnectOutput(info, 2, co[2]);
+  co[2] = mgr->CreateContainer("v0Info",    TObjArray::Class(),       AliAnalysisManager::kExchangeContainer);
+
+  mgr->ConnectInput (info, 0, mgr->GetCommonInputContainer());
+  mgr->ConnectInput (info, 1, cin  );   // Dummy to avoid orphan
+  mgr->ConnectOutput(info, 1, co[0]);
+  mgr->ConnectOutput(info, 2, co[1]);
+  mgr->ConnectOutput(info, 3, co[2]);
 }
 
index 6537c319eef76e7ff46297e143a4a5c680d7ba80..352a73f75a45e4c16812090d03eb53e54456e01a 100644 (file)
@@ -17,12 +17,13 @@ void AddTRDresolution(AliAnalysisManager *mgr, Char_t *trd, AliAnalysisDataConta
   //AliLog::SetClassDebugLevel("AliTRDresolution", 5);  
   AliTRDresolution *task(NULL);
   if(!TSTBIT(map, kResolution)) return;
-  mgr->AddTask(task = new AliTRDresolution());
+  mgr->AddTask(task = new AliTRDresolution("TRDresolution"));
   task->SetMCdata(mgr->GetMCtruthEventHandler());
   task->SetPostProcess(kFALSE);
   task->SetDebugLevel(0);
-  mgr->ConnectInput( task, 0, ci[0]);
-  mgr->ConnectOutput(task, 0, mgr->CreateContainer(task->GetName(), TObjArray::Class(), AliAnalysisManager::kOutputContainer, "TRD.Performance.root"));
+  mgr->ConnectInput(task, 0, mgr->GetCommonInputContainer());  
+  mgr->ConnectInput(task, 1, ci[0]);
+  mgr->ConnectOutput(task,1, mgr->CreateContainer(task->GetName(), TObjArray::Class(), AliAnalysisManager::kOutputContainer, "TRD.Performance.root"));
 
   // Create output containers for calibration tasks
   const Int_t nc = 4;
@@ -40,23 +41,26 @@ void AddTRDresolution(AliAnalysisManager *mgr, Char_t *trd, AliAnalysisDataConta
     AliTRDclusterResolution *taskCl(NULL);
     mgr->AddTask(taskCl = new AliTRDclusterResolution("ESD", "ESD Cluster error parameterization"));
     taskCl->SetExB();
-    mgr->ConnectInput(taskCl, 0, co[0]);
-    mgr->ConnectOutput(taskCl, 0, mgr->CreateContainer(taskCl->GetName(), TObjArray::Class(), AliAnalysisManager::kOutputContainer, "TRD.CalibClErrParam.root"));
+    mgr->ConnectInput(taskCl,  0, mgr->GetCommonInputContainer());  
+    mgr->ConnectInput(taskCl,  1, co[0]);
+    mgr->ConnectOutput(taskCl, 1, mgr->CreateContainer(taskCl->GetName(), TObjArray::Class(), AliAnalysisManager::kOutputContainer, "TRD.CalibClErrParam.root"));
 
     mgr->AddTask(taskCl = new AliTRDclusterResolution("MC", "MC Cluster error parameterization"));
     taskCl->SetExB();
-    mgr->ConnectInput(taskCl, 0, co[2]);
-    mgr->ConnectOutput(taskCl, 0, mgr->CreateContainer(taskCl->GetName(), TObjArray::Class(), AliAnalysisManager::kOutputContainer, "TRD.CalibClErrParam.root"));
+    mgr->ConnectInput(taskCl,  0, mgr->GetCommonInputContainer());  
+    mgr->ConnectInput(taskCl,  1, co[2]);
+    mgr->ConnectOutput(taskCl, 1, mgr->CreateContainer(taskCl->GetName(), TObjArray::Class(), AliAnalysisManager::kOutputContainer, "TRD.CalibClErrParam.root"));
   }
 
   // TRD alignment
   if(TSTBIT(map, kAlignment)){
     AliTRDalignmentTask *taskAl = 0x0;
-    mgr->AddTask(taskAl = new AliTRDalignmentTask());
+    mgr->AddTask(taskAl = new AliTRDalignmentTask("TRDalignment"));
     taskAl->SetDebugLevel(0);
-    mgr->ConnectInput(taskAl, 0, ci[0]);  
-    mgr->ConnectOutput(taskAl, 0, mgr->CreateContainer(Form("h%s", taskAl->GetName()), TObjArray::Class(), AliAnalysisManager::kExchangeContainer));
-    mgr->ConnectOutput(taskAl, 1, mgr->CreateContainer(task->GetName(), TTree::Class(), AliAnalysisManager::kOutputContainer, Form("TRD.Calib%s.root", task->GetName())));
+    mgr->ConnectInput(taskAl,  0, mgr->GetCommonInputContainer());  
+    mgr->ConnectInput(taskAl,  1, ci[0]);  
+    mgr->ConnectOutput(taskAl, 1, mgr->CreateContainer(Form("h%s", taskAl->GetName()), TObjArray::Class(), AliAnalysisManager::kExchangeContainer));
+    mgr->ConnectOutput(taskAl, 2, mgr->CreateContainer(task->GetName(), TTree::Class(), AliAnalysisManager::kOutputContainer, Form("TRD.Calib%s.root", task->GetName())));
   }
 }