2 /// \file AddTaskMuonAlignment.C
3 /// \brief Macro to add an AliMUONAlignmentTask to an analysis train
5 /// \author Javier Castillo, CEA/Saclay - Irfu/SPhN
6 /// \author Hugo Pereira Da Costa, CEA/Saclay - Irfu/SPhN
8 AliMUONAlignmentTask *AddTaskMuonAlignment(
9 TString oldAlignmentOCDB,
10 TString newAlignmentOCDB,
11 Bool_t doAlignment = kTRUE,
12 Bool_t writeRecords = kTRUE,
13 Bool_t readRecords = kFALSE
17 /// Creates a Muon Alignment task and adds it to the analysis manager.
19 // Get the pointer to the existing analysis manager via the static access method.
20 AliAnalysisManager *analysisManager = AliAnalysisManager::GetAnalysisManager();
21 if( !analysisManager )
23 ::Error("AddTaskMuonAlignment", "No analysis manager to connect to.");
27 // get input event handler and check type
28 TString type = analysisManager->GetInputEventHandler()->GetDataType();
32 // when reading records, AOD are required
33 if (!type.Contains( "AOD" ) )
35 Error("AddTaskMuonRefit", "AOD input handler needed!");
41 // ESDs are required otherwise
42 if( !type.Contains( "ESD" ) )
44 Error("AddTaskMuonRefit", "AOD input handler needed!");
50 // Create the task, add it to the manager and configure it.
51 AliMUONAlignmentTask *muonAlign = new AliMUONAlignmentTask( "AliMUONAlignmentTask" );
52 muonAlign->SetOldAlignStorage( oldAlignmentOCDB );
53 muonAlign->SetNewAlignStorage( newAlignmentOCDB );
54 muonAlign->SetLoadOCDBOnce( kTRUE );
55 muonAlign->SetReadRecords( readRecords );
56 muonAlign->SetDoAlignment( doAlignment );
57 muonAlign->SetWriteRecords( writeRecords );
58 muonAlign->SetMergeAlignmentCDBs( kTRUE );
59 muonAlign->SetUnbias( kFALSE );
61 analysisManager->AddTask(muonAlign);
64 analysisManager->ConnectInput(muonAlign, 0, analysisManager->GetCommonInputContainer());
66 // when writting records, also connect output
68 { analysisManager->ConnectOutput(muonAlign, 0, analysisManager->GetCommonOutputContainer()); }
70 // return created task