ROOT logo
/**
 * @file HLTTriggerTest.C
 * @brief Macro for testing HLT Triggers
 *
 * This macro uses the ESDMCEventPublisher to publish AliESDEvents.
 * 
 * Results are written to disk by a rootfile writer
 *
 * @author Jochen Thaeder <jochen@thaeder.de>
 * @ingroup alihlt_trigger
 */


// ---------------------------------------------------------------------------- 


/** HLTTriggerTest test macro
 *  @param nEvents Number of events which should be processed
 */
void HLTTriggerTest(Int_t nEvents=1, 
		    const Char_t* triggername="H-Barrel_pT_Single-V0001.001",
		    const Char_t* esdpath="./") {
  
  // -- Set the CDB storage location
  // ---------------------------------
  AliCDBManager * man = AliCDBManager::Instance();
  man->SetDefaultStorage("local://$ALICE_ROOT/OCDB");
  man->SetRun(120000);

  TString writerInput;
  TString globalInput;
  TString triggerInput;

  // -- Switch Logging
  // -------------------
  AliLog::SetGlobalLogLevel( AliLog::kError );
  AliHLTLogging log;
  log.SwitchAliLog(0);

  // -- Initialize HLT
  // -------------------
  AliHLTSystem gHLT;
  gHLT.SetGlobalLoggingLevel(0x7D);
  
  gHLT.LoadComponentLibraries("libESD.so");  
  gHLT.LoadComponentLibraries("libSTEER.so");  
  gHLT.LoadComponentLibraries("libSTEERBase.so");  
  gHLT.LoadComponentLibraries("libAOD.so");  
  gHLT.LoadComponentLibraries("libANALYSIS.so");  
  gHLT.LoadComponentLibraries("libANALYSISalice.so");  

  gHLT.LoadComponentLibraries("libHLTbase.so");
  gHLT.LoadComponentLibraries("libAliHLTUtil.so");

  gHLT.LoadComponentLibraries("libAliHLTMUON.so");  
  gHLT.LoadComponentLibraries("libAliHLTTPC.so");  
  gHLT.LoadComponentLibraries("libAliHLTTRD.so");  

  gHLT.LoadComponentLibraries("libAliHLTTrigger.so");  

  // ----------------------------//
  // -                         - //
  // -- Parameters            -- //
  // -                         - //
  // ----------------------------//

  TString triggerName(triggername);
  TString esdPath(esdpath);

  // ----------------------------//
  // -                         - //
  // -- Publisher  Components -- //
  // -                         - //
  // ----------------------------//

  // ------------------------------------------
  // -- The ESDMCEventPublisher   
  // ------------------------------------------
  TString publisherId("ESDMCEventPublisher");
  // ------------------------------------------
  TString publisherArg(Form("-entrytype HLTESD -datapath %s", esdPath.Data()));
  
  AliHLTConfiguration ESDMCEventPublisher(publisherId.Data(), publisherId.Data(), NULL, publisherArg.Data() );
  
  if (!triggerInput.IsNull()) triggerInput+=" ";
  triggerInput += publisherId;
    
  // ----------------------------//
  // -                         - //
  // -- Processing Components -- //
  // -                         - //
  // ----------------------------//

  // ------------------------------------------
  // -- Trigger
  // ------------------------------------------
  TString triggerId(triggerName);
  // ------------------------------------------

  TString triggerArg(Form("-triggername %s", triggerName.Data()));
  
  AliHLTConfiguration trigger(triggerId.Data(), "BarrelMultiplicityTrigger", 
			      triggerInput.Data(), triggerArg.Data()); 
  
  if (!globalInput.IsNull()) globalInput+=" ";
  globalInput += triggerId;

  if (!writerInput.IsNull()) writerInput+=" ";
  writerInput += triggerId;

  // ------------------------------------------
  // -- Global Trigger 
  // ------------------------------------------
  TString globalId("GlobalTrigger");
  // ------------------------------------------

  TString triggerArg(Form("-triggername %s", triggerName.Data()));
  
  AliHLTConfiguration global(globalId.Data(), "HLTGlobalTrigger", globalInput.Data(), ""); 
  
  if (!writerInput.IsNull()) writerInput+=" ";
  writerInput += globalId;

  // ----------------------------//
  // -                         - //
  // --    Sink Components    -- //
  // -                         - //
  // ----------------------------//
  
  TString writerArg(Form("-directory analysis -datafile trigger_%d_%s.root", nEvents, triggerName.Data() ));

  // -- The RootFileWriter 
  AliHLTConfiguration rootWriter("RootWriter", "ROOTFileWriter", writerInput.Data(), writerArg.Data() );
  
  // --------------------------- //
  // -                         - //
  // --         Run           -- //
  // -                         - //
  // --------------------------- //

  gHLT.BuildTaskList("RootWriter");
  gHLT.Run(nEvents);

  return;
}
 HLTTriggerTest.C:1
 HLTTriggerTest.C:2
 HLTTriggerTest.C:3
 HLTTriggerTest.C:4
 HLTTriggerTest.C:5
 HLTTriggerTest.C:6
 HLTTriggerTest.C:7
 HLTTriggerTest.C:8
 HLTTriggerTest.C:9
 HLTTriggerTest.C:10
 HLTTriggerTest.C:11
 HLTTriggerTest.C:12
 HLTTriggerTest.C:13
 HLTTriggerTest.C:14
 HLTTriggerTest.C:15
 HLTTriggerTest.C:16
 HLTTriggerTest.C:17
 HLTTriggerTest.C:18
 HLTTriggerTest.C:19
 HLTTriggerTest.C:20
 HLTTriggerTest.C:21
 HLTTriggerTest.C:22
 HLTTriggerTest.C:23
 HLTTriggerTest.C:24
 HLTTriggerTest.C:25
 HLTTriggerTest.C:26
 HLTTriggerTest.C:27
 HLTTriggerTest.C:28
 HLTTriggerTest.C:29
 HLTTriggerTest.C:30
 HLTTriggerTest.C:31
 HLTTriggerTest.C:32
 HLTTriggerTest.C:33
 HLTTriggerTest.C:34
 HLTTriggerTest.C:35
 HLTTriggerTest.C:36
 HLTTriggerTest.C:37
 HLTTriggerTest.C:38
 HLTTriggerTest.C:39
 HLTTriggerTest.C:40
 HLTTriggerTest.C:41
 HLTTriggerTest.C:42
 HLTTriggerTest.C:43
 HLTTriggerTest.C:44
 HLTTriggerTest.C:45
 HLTTriggerTest.C:46
 HLTTriggerTest.C:47
 HLTTriggerTest.C:48
 HLTTriggerTest.C:49
 HLTTriggerTest.C:50
 HLTTriggerTest.C:51
 HLTTriggerTest.C:52
 HLTTriggerTest.C:53
 HLTTriggerTest.C:54
 HLTTriggerTest.C:55
 HLTTriggerTest.C:56
 HLTTriggerTest.C:57
 HLTTriggerTest.C:58
 HLTTriggerTest.C:59
 HLTTriggerTest.C:60
 HLTTriggerTest.C:61
 HLTTriggerTest.C:62
 HLTTriggerTest.C:63
 HLTTriggerTest.C:64
 HLTTriggerTest.C:65
 HLTTriggerTest.C:66
 HLTTriggerTest.C:67
 HLTTriggerTest.C:68
 HLTTriggerTest.C:69
 HLTTriggerTest.C:70
 HLTTriggerTest.C:71
 HLTTriggerTest.C:72
 HLTTriggerTest.C:73
 HLTTriggerTest.C:74
 HLTTriggerTest.C:75
 HLTTriggerTest.C:76
 HLTTriggerTest.C:77
 HLTTriggerTest.C:78
 HLTTriggerTest.C:79
 HLTTriggerTest.C:80
 HLTTriggerTest.C:81
 HLTTriggerTest.C:82
 HLTTriggerTest.C:83
 HLTTriggerTest.C:84
 HLTTriggerTest.C:85
 HLTTriggerTest.C:86
 HLTTriggerTest.C:87
 HLTTriggerTest.C:88
 HLTTriggerTest.C:89
 HLTTriggerTest.C:90
 HLTTriggerTest.C:91
 HLTTriggerTest.C:92
 HLTTriggerTest.C:93
 HLTTriggerTest.C:94
 HLTTriggerTest.C:95
 HLTTriggerTest.C:96
 HLTTriggerTest.C:97
 HLTTriggerTest.C:98
 HLTTriggerTest.C:99
 HLTTriggerTest.C:100
 HLTTriggerTest.C:101
 HLTTriggerTest.C:102
 HLTTriggerTest.C:103
 HLTTriggerTest.C:104
 HLTTriggerTest.C:105
 HLTTriggerTest.C:106
 HLTTriggerTest.C:107
 HLTTriggerTest.C:108
 HLTTriggerTest.C:109
 HLTTriggerTest.C:110
 HLTTriggerTest.C:111
 HLTTriggerTest.C:112
 HLTTriggerTest.C:113
 HLTTriggerTest.C:114
 HLTTriggerTest.C:115
 HLTTriggerTest.C:116
 HLTTriggerTest.C:117
 HLTTriggerTest.C:118
 HLTTriggerTest.C:119
 HLTTriggerTest.C:120
 HLTTriggerTest.C:121
 HLTTriggerTest.C:122
 HLTTriggerTest.C:123
 HLTTriggerTest.C:124
 HLTTriggerTest.C:125
 HLTTriggerTest.C:126
 HLTTriggerTest.C:127
 HLTTriggerTest.C:128
 HLTTriggerTest.C:129
 HLTTriggerTest.C:130
 HLTTriggerTest.C:131
 HLTTriggerTest.C:132
 HLTTriggerTest.C:133
 HLTTriggerTest.C:134
 HLTTriggerTest.C:135
 HLTTriggerTest.C:136
 HLTTriggerTest.C:137
 HLTTriggerTest.C:138
 HLTTriggerTest.C:139
 HLTTriggerTest.C:140
 HLTTriggerTest.C:141
 HLTTriggerTest.C:142
 HLTTriggerTest.C:143
 HLTTriggerTest.C:144
 HLTTriggerTest.C:145
 HLTTriggerTest.C:146