Kelly:
[u/mrichter/AliRoot.git] / HLT / TPCLib / macros / noiseMapHistoHandler.C
1
2 //**************************************************************************
3 //* This file is property of and copyright by the ALICE HLT Project        * 
4 //* ALICE Experiment at CERN, All rights reserved.                         *
5 //*                                                                        *
6 //* Primary Authors Kalliopi Kanaki <Kalliopi.Kanaki@ift.uib.no>           *
7 //*                  for The ALICE HLT Project.                            *
8 //*                                                                        *
9 //* Permission to use, copy, modify and distribute this software and its   *
10 //* documentation strictly for non-commercial purposes is hereby granted   *
11 //* without fee, provided that the above copyright notice appears in all   *
12 //* copies and that both the copyright notice and this permission notice   *
13 //* appear in the supporting documentation. The authors make no claims     *
14 //* about the suitability of this software for any purpose. It is          *
15 //* provided "as is" without express or implied warranty.                  *
16 //**************************************************************************
17
18 /** 
19  * @file   noiseMapTest.C
20  * @author Kalliopi.Kanaki@ift.uib.no
21  * @date   
22  * @brief  Test macro for noise map component in combination with histogram handler
23
24  * Usage:
25  * <pre>
26  *   aliroot -b -q noiseMapTest.C | tee noiseMapTest.log
27  *   aliroot -b -q noiseMapTest.C'("./")' | tee noiseMapTest.log
28  * </pre>
29  *
30  * The macro assumes raw data to be available in the rawx folders, either
31  * simulated or real data. A different input can be specified as parameter
32  * <pre>
33  *   aliroot -b -q noiseMapTest.C'("input.root")'
34  * </pre>
35  *
36  * In the first section an analysis chain is defined. The scale of the
37  * chain can be defined by choosing the range of sectors and partitions.
38  *
39  * The reconstruction is steered by the AliReconstruction object in the
40  * usual way.
41  *
42  * @ingroup alihlt_tpc
43  */
44
45 void noiseMapHistoHandler(const char* input="./"){
46   
47   if (!input) {
48     cerr << "please specify input or run without arguments" << endl;
49     return;
50   }
51   
52   
53   /////////////////////////////////////////////////////////////////////////////////////////////////
54   // 
55   // init the HLT system in order to define the analysis chain below
56   //
57   gSystem->Load("libHLTrec.so");
58   AliHLTSystem* gHLT=AliHLTReconstructorBase::GetInstance();
59
60   ///////////////////////////////////////////////////////////////////////////////////////////////////
61   //
62   // define the analysis chain to be run
63   //
64     
65   int iMinSlice = 35; 
66   int iMaxSlice = 35;
67   int iMinPart  = 0;
68   int iMaxPart  = 5;
69
70   TString rootFileWriter, histoInput;
71
72   for (int slice=iMinSlice; slice<=iMaxSlice; slice++) {
73     for (int part=iMinPart; part<=iMaxPart; part++) {
74      
75       TString argument, publisher, noise;
76      
77       // raw data publisher components
78       int ddlno=768;
79       if (part>1) ddlno+=72+4*slice+(part-2);
80       else ddlno+=2*slice+part;
81       argument.Form("-minid %d -datatype 'DDL_RAW ' 'TPC '  -dataspec 0x%02x%02x%02x%02x", ddlno, slice, slice, part, part);
82       publisher.Form("DP_%02d_%d", slice, part);
83       AliHLTConfiguration pubconf(publisher.Data(), "AliRawReaderPublisher", NULL, argument.Data());
84       
85       // noise filling
86       noise.Form("NM_%02d_%d", slice, part);
87       AliHLTConfiguration noiseconf(noise.Data(), "TPCNoiseMap", publisher.Data(), "");
88       
89       
90       if (histoInput.Length()>0) histoInput+=" ";
91       histoInput+=noise;
92  
93     }
94   }
95   
96   //cout << "histogram handler input:   " << histoInput.Data() << endl;
97   
98   AliHLTConfiguration histconf("hist", "TPCHistogramHandler", histoInput.Data(),"-use-general -ignore-specification");
99   //AliHLTConfiguration histconf("hist", "TPCHistogramHandler", histoInput.Data(),"-sum-noise-histograms");
100   
101   //root file writer component
102   
103   //AliHLTConfiguration rootFileconf("sink1", "ROOTFileWriter", noise.Data(), "-datafile partition");
104   AliHLTConfiguration rootFileconf("sink1", "ROOTFileWriter", "hist", "-datafile TPC -concatenate-events -concatenate-blocks");
105   
106   
107   ///////////////////////////////////////////////////////////////////////////////////////////////////
108   //
109   // Init and run the reconstruction
110   // All but HLT reconstruction is switched off
111   //
112   AliReconstruction rec;
113   rec.SetInput(input);
114   rec.SetRunVertexFinder(kFALSE);
115   rec.SetRunLocalReconstruction("HLT");
116   rec.SetRunTracking("");
117   rec.SetLoadAlignFromCDB(0);
118   rec.SetRunQA(":");
119   //rec.SetFillESD("HLT");
120   rec.SetFillESD("");
121   rec.SetFillTriggerESD(false);
122   rec.SetOption("HLT", "libAliHLTTPC.so loglevel=0x7c chains=sink1");
123   rec.Run();
124 }