ROOT logo
AliAnalysisTaskBadChunkID *AddTaskBadChunkID( const TString lMasterJobSessionFlag = "")
{
// Creates, configures and attaches to the train a cascades check task.
   // Get the pointer to the existing analysis manager via the static access method.
   //==============================================================================
   AliAnalysisManager *mgr = AliAnalysisManager::GetAnalysisManager();
   if (!mgr) {
      ::Error("AddTaskBadChunkID", "No analysis manager to connect to.");
      return NULL;
   }   

   // Check the analysis type using the event handlers connected to the analysis manager.
   //==============================================================================
   if (!mgr->GetInputEventHandler()) {
      ::Error("AddTaskBadChunkID", "This task requires an input event handler");
      return NULL;
   }   
   TString type = mgr->GetInputEventHandler()->GetDataType(); // can be "ESD" or "AOD"

   // Create and configure the task
	 AliAnalysisTaskBadChunkID *taskbadchunkID = new AliAnalysisTaskBadChunkID("taskbadchunkID");
   mgr->AddTask(taskbadchunkID);

   TString outputFileName = AliAnalysisManager::GetCommonFileName();
   
   outputFileName += ":BADCHUNKCHECK";
   //if (lSwitchIsNuclear) outputFileName += "_AA";
   //outputFileName += "_PP";
   if (mgr->GetMCtruthEventHandler()) outputFileName += "_MC";
   //if(lMasterJobSessionFlag.Length()) outputFileName += lMasterJobSessionFlag.Data();
   
   Printf("Set OutputFileName : \n %s\n", outputFileName.Data() );

   AliAnalysisDataContainer *coutputList = mgr->CreateContainer("clist",
							     TList::Class(),
							     AliAnalysisManager::kOutputContainer,
							     outputFileName );
   AliAnalysisDataContainer *coutputTree = mgr->CreateContainer("cTree",
							     TTree::Class(),
							     AliAnalysisManager::kOutputContainer,
							     outputFileName );

   //This one you should merge in file-resident ways...
   coutputTree->SetSpecialOutput();

   //Recommendation: Tree as a single output slot
   mgr->ConnectInput( taskbadchunkID, 0, mgr->GetCommonInputContainer());
   mgr->ConnectOutput(taskbadchunkID, 1, coutputList);
   mgr->ConnectOutput(taskbadchunkID, 2, coutputTree);
   
   return taskbadchunkID;
}   
 AddTaskBadChunkID.C:1
 AddTaskBadChunkID.C:2
 AddTaskBadChunkID.C:3
 AddTaskBadChunkID.C:4
 AddTaskBadChunkID.C:5
 AddTaskBadChunkID.C:6
 AddTaskBadChunkID.C:7
 AddTaskBadChunkID.C:8
 AddTaskBadChunkID.C:9
 AddTaskBadChunkID.C:10
 AddTaskBadChunkID.C:11
 AddTaskBadChunkID.C:12
 AddTaskBadChunkID.C:13
 AddTaskBadChunkID.C:14
 AddTaskBadChunkID.C:15
 AddTaskBadChunkID.C:16
 AddTaskBadChunkID.C:17
 AddTaskBadChunkID.C:18
 AddTaskBadChunkID.C:19
 AddTaskBadChunkID.C:20
 AddTaskBadChunkID.C:21
 AddTaskBadChunkID.C:22
 AddTaskBadChunkID.C:23
 AddTaskBadChunkID.C:24
 AddTaskBadChunkID.C:25
 AddTaskBadChunkID.C:26
 AddTaskBadChunkID.C:27
 AddTaskBadChunkID.C:28
 AddTaskBadChunkID.C:29
 AddTaskBadChunkID.C:30
 AddTaskBadChunkID.C:31
 AddTaskBadChunkID.C:32
 AddTaskBadChunkID.C:33
 AddTaskBadChunkID.C:34
 AddTaskBadChunkID.C:35
 AddTaskBadChunkID.C:36
 AddTaskBadChunkID.C:37
 AddTaskBadChunkID.C:38
 AddTaskBadChunkID.C:39
 AddTaskBadChunkID.C:40
 AddTaskBadChunkID.C:41
 AddTaskBadChunkID.C:42
 AddTaskBadChunkID.C:43
 AddTaskBadChunkID.C:44
 AddTaskBadChunkID.C:45
 AddTaskBadChunkID.C:46
 AddTaskBadChunkID.C:47
 AddTaskBadChunkID.C:48
 AddTaskBadChunkID.C:49
 AddTaskBadChunkID.C:50
 AddTaskBadChunkID.C:51
 AddTaskBadChunkID.C:52
 AddTaskBadChunkID.C:53