1 void addInput( TString &input, const TString &add )
3 if (input.Length()>0) input+=" ";
7 void rec_hlt_tpc_its(const char* input="./")
10 if(!gSystem->AccessPathName("galice.root")){
11 cerr << "please delete the galice.root or run at different place." << endl;
16 cerr << "please specify input or run without arguments" << endl;
20 ///////////////////////////////////////////////////////////////////////////////////////////////////
22 // init the HLT system in order to define the analysis chain below
24 AliHLTSystem* gHLT=AliHLTPluginBase::GetInstance();
26 TString option="libAliHLTUtil.so libAliHLTRCU.so libAliHLTTPC.so libAliHLTGlobal.so loglevel=0x7c chains=";
31 //Bz = "-solenoidBz -5";
35 TString tpcMergerInput;
42 for (int slice=iMinSlice; slice<=iMaxSlice; slice++) {
44 for (int part=iMinPart; part<=iMaxPart; part++) {
45 TString arg, publisher, cf;
46 TString clusterHistoOutput;
47 // raw data publisher components
49 if (part>1) ddlno+=72+4*slice+(part-2);
50 else ddlno+=2*slice+part;
51 arg.Form("-minid %d -datatype 'DDL_RAW ' 'TPC ' -dataspec 0x%02x%02x%02x%02x -verbose", ddlno, slice, slice, part, part);
52 publisher.Form("DP_%02d_%d", slice, part);
53 new AliHLTConfiguration(publisher.Data(), "AliRawReaderPublisher", NULL , arg.Data());
55 cf.Form("CF_%02d_%d", slice, part);
56 new AliHLTConfiguration(cf.Data(), "TPCClusterFinder32Bit", publisher.Data(), "-release-memory");
58 addInput( trackerInput, cf);
61 tracker.Form("TR_%02d", slice);
62 new AliHLTConfiguration(tracker.Data(), "TPCCATracker", trackerInput.Data(), Bz.Data());
64 addInput( tpcMergerInput, tracker);
67 new AliHLTConfiguration("tpcMerger","TPCCAGlobalMerger",tpcMergerInput.Data(), Bz.Data());
68 addInput( esdInput, "tpcMerger");
73 Bool_t runspd=1, runsdd=1, runssd=1;
77 int minddl=0; //min ddl number for SPD
78 int maxddl=19; //max ddl number for SPD
79 int spec=0x1; //spec for ddl's
80 for(int ddlno=minddl;ddlno<=maxddl;ddlno++){
81 TString arg, publisher, cf;
82 publisher.Form("DP_%d", ddlno);
83 cf.Form("CF_%d",ddlno);
84 arg.Form("-minid %d -datatype 'DDL_RAW ' 'ISPD ' -dataspec 0x%08x -verbose",ddlno, spec);
85 new AliHLTConfiguration(publisher.Data(), "AliRawReaderPublisher", NULL , arg.Data());
86 new AliHLTConfiguration (cf.Data(), "ITSClusterFinderSPD", publisher.Data(), "");
90 AliHLTConfiguration itsVtx("itsVtx", "ITSVertexerSPD" , cfout.Data(), Bz.Data());
91 addInput( esdInput, "itsVtx");
92 addInput( histoInput, "itsVtx");
96 int minddl=256; //min ddl number for SDD
97 int maxddl=279; //max ddl number for SDD
98 int spec=0x1; //spec for ddl's
99 for(int ddlno=minddl;ddlno<=maxddl;ddlno++){
100 TString arg, publisher, cf;
101 publisher.Form("DP_%d", ddlno);
102 cf.Form("CF_%d",ddlno);
103 arg.Form("-minid %d -datatype 'DDL_RAW ' 'ISDD ' -dataspec 0x%08x -verbose",ddlno, spec);
104 AliHLTConfiguration pubconf(publisher.Data(), "AliRawReaderPublisher", NULL , arg.Data());
105 AliHLTConfiguration cfconf(cf.Data(), "ITSClusterFinderSDD", publisher.Data(), "");
106 addInput( cfout, cf);
112 minddl=512; //min ddl number for SSD
113 maxddl=527; //max ddl number for SSD
114 spec=0x1; //spec for ddl's
115 for(int ddlno=minddl;ddlno<=maxddl;ddlno++){
116 TString arg, publisher, cf;
117 publisher.Form("DP_%d", ddlno);
118 cf.Form("CF_%d",ddlno);
119 arg.Form("-minid %d -datatype 'DDL_RAW ' 'ISSD ' -dataspec 0x%08x -verbose",ddlno, spec);
120 AliHLTConfiguration pubconf(publisher.Data(), "AliRawReaderPublisher", NULL , arg.Data());
121 AliHLTConfiguration cfconf(cf.Data(), "ITSClusterFinderSSD", publisher.Data(), "");
122 addInput( cfout, cf);
127 addInput( cfout, "tpcMerger");
128 AliHLTConfiguration its("itsTracker", "ITSTracker" , cfout.Data(), Bz.Data());
129 addInput( esdInput, "itsTracker");
133 new AliHLTConfiguration ("esd-converter", "GlobalEsdConverter", esdInput.Data(), Bz.Data());
134 new AliHLTConfiguration ("globalVtx", "GlobalVertexer" , "esd-converter", "");
135 new AliHLTConfiguration ("v0Histo", "V0Histo" , "globalVtx", "");
137 addInput( histoInput, "globalVtx v0Histo");
139 new AliHLTConfiguration("histFilter", "BlockFilter", histoInput.Data(), "-datatype 'ROOTHIST' ' '");
140 new AliHLTConfiguration("histoRootFile", "ROOTFileWriter", "histFilter", "-datafile hltHisto -concatenate-events -overwrite");
142 new AliHLTConfiguration("sink-esd-file", "EsdCollector" , "globalVtx", "");
144 option+="histoRootFile,sink-esd-file";
147 ///////////////////////////////////////////////////////////////////////////////////////////////////
149 // Init and run the reconstruction
150 // All but HLT reconstructio is switched off
152 AliReconstruction rec;
155 rec.SetDefaultStorage("local://$ALICE_ROOT/OCDB");
156 // rec.SetDefaultStorage("local://$HOME/HCDB");
157 rec.SetSpecificStorage("GRP/GRP/Data",
158 Form("local://%s",gSystem->pwd()));
161 rec.SetRunVertexFinder(kFALSE);
162 rec.SetRunReconstruction("HLT");
163 rec.SetLoadAlignFromCDB(0);
165 rec.SetOption("HLT",option);
166 // switch off cleanESD
167 rec.SetCleanESD(kFALSE);
168 //rec.SetEventRange(0, 0);