ROOT logo

//**************************************************************************
//* This file is property of and copyright by the ALICE HLT Project        * 
//* ALICE Experiment at CERN, All rights reserved.                         *
//*                                                                        *
//* Primary Authors Kalliopi Kanaki <Kalliopi.Kanaki@ift.uib.no>           *
//*                  for The ALICE HLT Project.                            *
//*                                                                        *
//* Permission to use, copy, modify and distribute this software and its   *
//* documentation strictly for non-commercial purposes is hereby granted   *
//* without fee, provided that the above copyright notice appears in all   *
//* copies and that both the copyright notice and this permission notice   *
//* appear in the supporting documentation. The authors make no claims     *
//* about the suitability of this software for any purpose. It is          *
//* provided "as is" without express or implied warranty.                  *
//**************************************************************************

/** 
 * @file   noiseMapTest.C
 * @author Kalliopi.Kanaki@ift.uib.no
 * @date   
 * @brief  Test macro for noise map component in combination with histogram handler

 * Usage:
 * <pre>
 *   aliroot -b -q noiseMapTest.C | tee noiseMapTest.log
 *   aliroot -b -q noiseMapTest.C'("./")' | tee noiseMapTest.log
 * </pre>
 *
 * The macro assumes raw data to be available in the rawx folders, either
 * simulated or real data. A different input can be specified as parameter
 * <pre>
 *   aliroot -b -q noiseMapTest.C'("input.root")'
 * </pre>
 *
 * In the first section an analysis chain is defined. The scale of the
 * chain can be defined by choosing the range of sectors and partitions.
 *
 * The reconstruction is steered by the AliReconstruction object in the
 * usual way.
 *
 * @ingroup alihlt_tpc
 */

void noiseMapHistoHandler(const char* input="./"){
  
  if (!input) {
    cerr << "please specify input or run without arguments" << endl;
    return;
  }
  
  
  /////////////////////////////////////////////////////////////////////////////////////////////////
  // 
  // init the HLT system in order to define the analysis chain below
  //
  AliHLTSystem* gHLT=AliHLTPluginBase::GetInstance();

  ///////////////////////////////////////////////////////////////////////////////////////////////////
  //
  // define the analysis chain to be run
  //
    
  int iMinSlice = 35; 
  int iMaxSlice = 35;
  int iMinPart  = 0;
  int iMaxPart  = 5;

  TString rootFileWriter, histoInput;

  for (int slice=iMinSlice; slice<=iMaxSlice; slice++) {
    for (int part=iMinPart; part<=iMaxPart; part++) {
     
      TString argument, publisher, noise;
     
      // raw data publisher components
      int ddlno=768;
      if (part>1) ddlno+=72+4*slice+(part-2);
      else ddlno+=2*slice+part;
      argument.Form("-minid %d -datatype 'DDL_RAW ' 'TPC '  -dataspec 0x%02x%02x%02x%02x", ddlno, slice, slice, part, part);
      publisher.Form("DP_%02d_%d", slice, part);
      AliHLTConfiguration pubconf(publisher.Data(), "AliRawReaderPublisher", NULL, argument.Data());
      
      // noise filling
      noise.Form("NM_%02d_%d", slice, part);
      AliHLTConfiguration noiseconf(noise.Data(), "TPCNoiseMap", publisher.Data(), "");
      
      
      if (histoInput.Length()>0) histoInput+=" ";
      histoInput+=noise;
 
    }
  }
  
  //cout << "histogram handler input:   " << histoInput.Data() << endl;
  
  AliHLTConfiguration histconf("hist", "TPCHistogramHandler", histoInput.Data(),"-use-general -ignore-specification");
  //AliHLTConfiguration histconf("hist", "TPCHistogramHandler", histoInput.Data(),"-sum-noise-histograms");
  
  //root file writer component
  
  //AliHLTConfiguration rootFileconf("sink1", "ROOTFileWriter", noise.Data(), "-datafile partition");
  AliHLTConfiguration rootFileconf("sink1", "ROOTFileWriter", "hist", "-datafile TPC -concatenate-events -concatenate-blocks");
  
  
  ///////////////////////////////////////////////////////////////////////////////////////////////////
  //
  // Init and run the reconstruction
  // All but HLT reconstruction is switched off
  //
  AliReconstruction rec;
  rec.SetInput(input);
  rec.SetRunVertexFinder(kFALSE);
  rec.SetRunLocalReconstruction("HLT");
  rec.SetRunTracking("");
  rec.SetLoadAlignFromCDB(0);
  rec.SetRunQA(":");
  //rec.SetFillESD("HLT");
  rec.SetFillESD("");
  rec.SetFillTriggerESD(false);
  rec.SetOption("HLT", "libAliHLTTPC.so loglevel=0x7c chains=sink1");
  rec.Run();
}
 noiseMapHistoHandler.C:1
 noiseMapHistoHandler.C:2
 noiseMapHistoHandler.C:3
 noiseMapHistoHandler.C:4
 noiseMapHistoHandler.C:5
 noiseMapHistoHandler.C:6
 noiseMapHistoHandler.C:7
 noiseMapHistoHandler.C:8
 noiseMapHistoHandler.C:9
 noiseMapHistoHandler.C:10
 noiseMapHistoHandler.C:11
 noiseMapHistoHandler.C:12
 noiseMapHistoHandler.C:13
 noiseMapHistoHandler.C:14
 noiseMapHistoHandler.C:15
 noiseMapHistoHandler.C:16
 noiseMapHistoHandler.C:17
 noiseMapHistoHandler.C:18
 noiseMapHistoHandler.C:19
 noiseMapHistoHandler.C:20
 noiseMapHistoHandler.C:21
 noiseMapHistoHandler.C:22
 noiseMapHistoHandler.C:23
 noiseMapHistoHandler.C:24
 noiseMapHistoHandler.C:25
 noiseMapHistoHandler.C:26
 noiseMapHistoHandler.C:27
 noiseMapHistoHandler.C:28
 noiseMapHistoHandler.C:29
 noiseMapHistoHandler.C:30
 noiseMapHistoHandler.C:31
 noiseMapHistoHandler.C:32
 noiseMapHistoHandler.C:33
 noiseMapHistoHandler.C:34
 noiseMapHistoHandler.C:35
 noiseMapHistoHandler.C:36
 noiseMapHistoHandler.C:37
 noiseMapHistoHandler.C:38
 noiseMapHistoHandler.C:39
 noiseMapHistoHandler.C:40
 noiseMapHistoHandler.C:41
 noiseMapHistoHandler.C:42
 noiseMapHistoHandler.C:43
 noiseMapHistoHandler.C:44
 noiseMapHistoHandler.C:45
 noiseMapHistoHandler.C:46
 noiseMapHistoHandler.C:47
 noiseMapHistoHandler.C:48
 noiseMapHistoHandler.C:49
 noiseMapHistoHandler.C:50
 noiseMapHistoHandler.C:51
 noiseMapHistoHandler.C:52
 noiseMapHistoHandler.C:53
 noiseMapHistoHandler.C:54
 noiseMapHistoHandler.C:55
 noiseMapHistoHandler.C:56
 noiseMapHistoHandler.C:57
 noiseMapHistoHandler.C:58
 noiseMapHistoHandler.C:59
 noiseMapHistoHandler.C:60
 noiseMapHistoHandler.C:61
 noiseMapHistoHandler.C:62
 noiseMapHistoHandler.C:63
 noiseMapHistoHandler.C:64
 noiseMapHistoHandler.C:65
 noiseMapHistoHandler.C:66
 noiseMapHistoHandler.C:67
 noiseMapHistoHandler.C:68
 noiseMapHistoHandler.C:69
 noiseMapHistoHandler.C:70
 noiseMapHistoHandler.C:71
 noiseMapHistoHandler.C:72
 noiseMapHistoHandler.C:73
 noiseMapHistoHandler.C:74
 noiseMapHistoHandler.C:75
 noiseMapHistoHandler.C:76
 noiseMapHistoHandler.C:77
 noiseMapHistoHandler.C:78
 noiseMapHistoHandler.C:79
 noiseMapHistoHandler.C:80
 noiseMapHistoHandler.C:81
 noiseMapHistoHandler.C:82
 noiseMapHistoHandler.C:83
 noiseMapHistoHandler.C:84
 noiseMapHistoHandler.C:85
 noiseMapHistoHandler.C:86
 noiseMapHistoHandler.C:87
 noiseMapHistoHandler.C:88
 noiseMapHistoHandler.C:89
 noiseMapHistoHandler.C:90
 noiseMapHistoHandler.C:91
 noiseMapHistoHandler.C:92
 noiseMapHistoHandler.C:93
 noiseMapHistoHandler.C:94
 noiseMapHistoHandler.C:95
 noiseMapHistoHandler.C:96
 noiseMapHistoHandler.C:97
 noiseMapHistoHandler.C:98
 noiseMapHistoHandler.C:99
 noiseMapHistoHandler.C:100
 noiseMapHistoHandler.C:101
 noiseMapHistoHandler.C:102
 noiseMapHistoHandler.C:103
 noiseMapHistoHandler.C:104
 noiseMapHistoHandler.C:105
 noiseMapHistoHandler.C:106
 noiseMapHistoHandler.C:107
 noiseMapHistoHandler.C:108
 noiseMapHistoHandler.C:109
 noiseMapHistoHandler.C:110
 noiseMapHistoHandler.C:111
 noiseMapHistoHandler.C:112
 noiseMapHistoHandler.C:113
 noiseMapHistoHandler.C:114
 noiseMapHistoHandler.C:115
 noiseMapHistoHandler.C:116
 noiseMapHistoHandler.C:117
 noiseMapHistoHandler.C:118
 noiseMapHistoHandler.C:119
 noiseMapHistoHandler.C:120
 noiseMapHistoHandler.C:121
 noiseMapHistoHandler.C:122
 noiseMapHistoHandler.C:123
 noiseMapHistoHandler.C:124