void Rec(TString file="raw.root") { // Reconstruction of RAW data from the input file raw.root // Boris Polichtchouk, 13 Mar 2008 //AliCDBManager::Instance()->SetDefaultStorage("local://$ALICE_ROOT/OCDB"); //AliCDBManager::Instance()->SetSpecificStorage("PHOS/*","local://BadMap"); AliReconstruction rec ; rec.SetRunTracking("") ; rec.SetRunVertexFinder(kFALSE) ; rec.SetRunLocalReconstruction("PHOS") ; rec.SetFillESD("PHOS") ; //Set rec. parameters different from the default ones. AliPHOSRecoParam* recEmc = new AliPHOSRecoParamEmc(); recEmc->SetSubtractPedestals(kTRUE); recEmc->SetMinE(0.01); //Minimal Digit energy recEmc->SetClusteringThreshold(0.02); //Minimal cluster seed energy recEmc->SetDecoderVersion("v1"); //Comment out to choose Max-Ped version recEmc->SetOldRCUFormat(kTRUE); AliPHOSReconstructor::SetRecoParamEmc(recEmc); rec.SetInput(file.Data()); // read RAW data rec.SetNumberOfEventsPerFile(5000); rec.Run(); }
void rec() { AliReconstruction MuonRec; MuonRec.SetInput("raw.root"); MuonRec.SetRunLocalReconstruction("MUON ITS VZERO"); MuonRec.SetRunTracking("MUON ITS VZERO"); MuonRec.SetRunVertexFinder(kTRUE); MuonRec.SetFillESD("MUON VZERO HLT"); MuonRec.SetRunQA("MUON:ALL"); MuonRec.SetDefaultStorage("alien://Folder=/alice/simulation/2008/v4-15-Release/Ideal/"); // QA reference MuonRec.SetQARefDefaultStorage("local://$ALICE_ROOT/QAref") ; // HLT MuonRec.SetSpecificStorage("HLT/ConfigMUON/DecisionComponent","alien://Folder=/alice/cern.ch/user/b/bogdan/prod2009/cdb"); MuonRec.SetSpecificStorage("HLT/ConfigMUON/HitReconstructor","alien://Folder=/alice/cern.ch/user/b/bogdan/prod2009/cdb"); MuonRec.SetSpecificStorage("HLT/ConfigMUON/MansoTrackerFSM","alien://Folder=/alice/cern.ch/user/b/bogdan/prod2009/cdb"); MuonRec.SetSpecificStorage("HLT/ConfigMUON/TriggerReconstructor","alien://Folder=/alice/cern.ch/user/b/bogdan/prod2009/cdb"); // CTP MuonRec.SetSpecificStorage("GRP/CTP/Config","alien://Folder=/alice/cern.ch/user/b/bogdan/prod2009/cdb"); // tracker masks MuonRec.SetSpecificStorage("MUON/Calib/Gains","alien://Folder=/alice/cern.ch/user/b/bogdan/prod2009/cdb/rec"); MuonRec.SetSpecificStorage("MUON/Calib/Pedestals","alien://Folder=/alice/cern.ch/user/b/bogdan/prod2009/cdb/rec"); // reconstruction parameters AliMUONRecoParam *muonRecoParam = AliMUONRecoParam::GetLowFluxParam(); muonRecoParam->SaveFullClusterInESD(kTRUE,100.); for (Int_t i = 0; i < 10; i++) { muonRecoParam->SetDefaultNonBendingReso(i, 0.1524); muonRecoParam->SetDefaultBendingReso(i, 0.05099); } //muonRecoParam->Print("FULL"); MuonRec.SetRecoParam("MUON",muonRecoParam); MuonRec.SetNumberOfEventsPerFile(500); TStopwatch timer; timer.Start(); MuonRec.Run(); timer.Stop(); timer.Print(); }
void rec() { AliReconstruction MuonRec; MuonRec.SetInput("raw.root"); MuonRec.SetRunLocalReconstruction("MUON ITS VZERO"); MuonRec.SetRunTracking("MUON ITS VZERO"); MuonRec.SetRunVertexFinder(kTRUE); MuonRec.SetFillESD("MUON VZERO HLT"); MuonRec.SetRunQA("MUON:ALL"); MuonRec.SetDefaultStorage("alien://Folder=/alice/simulation/2008/v4-15-Release/Ideal/"); // QA reference MuonRec.SetQARefDefaultStorage("local://$ALICE_ROOT/QAref") ; // GRP MuonRec.SetSpecificStorage("GRP/GRP/Data",Form("local://%s",gSystem->pwd())); // HLT MuonRec.SetSpecificStorage("HLT/ConfigMUON/DecisionComponent","alien://Folder=/alice/cern.ch/user/b/bogdan/prod2009/cdb"); MuonRec.SetSpecificStorage("HLT/ConfigMUON/HitReconstructor","alien://Folder=/alice/cern.ch/user/b/bogdan/prod2009/cdb"); MuonRec.SetSpecificStorage("HLT/ConfigMUON/MansoTrackerFSM","alien://Folder=/alice/cern.ch/user/b/bogdan/prod2009/cdb"); MuonRec.SetSpecificStorage("HLT/ConfigMUON/TriggerReconstructor","alien://Folder=/alice/cern.ch/user/b/bogdan/prod2009/cdb"); // CTP MuonRec.SetSpecificStorage("GRP/CTP/Config","alien://Folder=/alice/cern.ch/user/b/bogdan/prod2009/cdb"); // alignment MuonRec.SetSpecificStorage("MUON/Align/Data","alien://Folder=/alice/cern.ch/user/b/bogdan/prod2009/cdb/ideal"); // reconstruction parameters AliMUONRecoParam *muonRecoParam = AliMUONRecoParam::GetLowFluxParam(); muonRecoParam->SaveFullClusterInESD(kTRUE,100.); //muonRecoParam->Print("FULL"); MuonRec.SetRecoParam("MUON",muonRecoParam); MuonRec.SetNumberOfEventsPerFile(500); TStopwatch timer; timer.Start(); MuonRec.Run(); timer.Stop(); timer.Print(); }
void recTracking(Int_t type, const char *filename="data.root") { /// Set path to calibration data AliCDBManager * man = AliCDBManager::Instance(); man->SetDefaultStorage("local://$ALICE_ROOT/OCDB"); man->SetRun(0); man->SetSpecificStorage("TPC/*/*","local:///afs/cern.ch/user/m/mivanov/public/Calib"); // // Set reconstruction parameters // AliLog::SetClassDebugLevel("AliTPCclusterer",2); AliTPCRecoParam * tpcRecoParam = 0; if (type==0) tpcRecoParam = AliTPCRecoParam::GetCosmicTestParam(kTRUE); if (type>0) tpcRecoParam = AliTPCRecoParam::GetLaserTestParam(kTRUE); AliTPCReconstructor::SetRecoParam(tpcRecoParam); AliTPCReconstructor::SetStreamLevel(1); // // // AliReconstruction rec; rec.SetSpecificStorage("TPC/*/*","local:///afs/cern.ch/user/m/mivanov/public/Calib"); rec.SetLoadAlignData(""); rec.SetWriteESDfriend(kTRUE); rec.SetInput(filename); rec.SetEquipmentIdMap("EquipmentIdMap.data"); //rec.SetRunReconstruction("TPC"); rec.SetOption("TPC","PedestalSubtraction"); rec.SetRunLocalReconstruction(""); rec.SetRunTracking("TPC"); rec.SetFillESD("TPC"); rec.SetFillTriggerESD(kFALSE); rec.SetRunVertexFinder(kFALSE); rec.SetWriteAlignmentData(kTRUE); rec.Run(0); }
void histogramHandlerTest(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=0; int iMaxSlice=35; int iMinPart=0; int iMaxPart=5; TString histogramHandlerInput1; TString histogramHandlerInput2; TString histogramHandlerOutput1; TString histogramHandlerOutput2; TString rootFileWriterInput1; TString rootFileWriterInput2; for (int slice=iMinSlice; slice<=iMaxSlice; slice++) { for (int part=iMinPart; part<=iMaxPart; part++) { TString clusterFinderOutput1; TString clusterFinderOutput2; TString clusterHistoInput1; TString clusterHistoInput2; TString clusterHistoOutput1; TString clusterHistoOutput2; TString arg, publisher; // digit publisher components int ddlno=768; if (part>1) ddlno+=72+4*slice+(part-2); else ddlno+=2*slice+part; arg.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 , arg.Data()); // first clusterfinder clusterFinderOutput1.Form("CF1_%02d_%d", slice, part); AliHLTConfiguration cfconf(clusterFinderOutput1.Data(), "TPCClusterFinderDecoder", publisher.Data(), "-timebins 446");//-timebins set to simulated data if (clusterHistoInput1.Length()>0) clusterHistoInput1+=" "; clusterHistoInput1+=clusterFinderOutput1; // second clusterfinder clusterFinderOutput2.Form("CF2_%02d_%d", slice, part); AliHLTConfiguration cfconf(clusterFinderOutput2.Data(), "TPCClusterFinderDecoder", publisher.Data(), "-timebins 446");//-timebins set to simulated data if (clusterHistoInput2.Length()>0) clusterHistoInput2+=" "; clusterHistoInput2+=clusterFinderOutput2; // first cluster histo component clusterHistoOutput1.Form("CH1_%02d_%d", slice, part); AliHLTConfiguration cfconf(clusterHistoOutput1.Data(), "TPCClusterHisto", clusterHistoInput1.Data(), ""); if (histogramHandlerInput1.Length()>0) histogramHandlerInput1+=" "; histogramHandlerInput1+=clusterHistoOutput1; //second cluster histo component clusterHistoOutput2.Form("CH2_%02d_%d", slice, part); AliHLTConfiguration cfconf(clusterHistoOutput2.Data(), "TPCClusterHisto", clusterHistoInput2.Data(), ""); if (histogramHandlerInput1.Length()>0) histogramHandlerInput1+=" "; histogramHandlerInput1+=clusterHistoOutput2; if (histogramHandlerInput2.Length()>0) histogramHandlerInput2+=" "; histogramHandlerInput2+=clusterHistoOutput2; } } // first histogram handler component histogramHandlerOutput1.Form("HH1_%02d_%d", slice, part); AliHLTConfiguration cfconf(histogramHandlerOutput1.Data(), "TPCHistogramHandler", histogramHandlerInput1.Data(), "-use-general"); if (rootFileWriterInput1.Length()>0) rootFileWriterInput1+=" "; rootFileWriterInput1+=histogramHandlerOutput1; // second histogram handler component histogramHandlerOutput2.Form("HH2_%02d_%d", slice, part); AliHLTConfiguration cfconf(histogramHandlerOutput2.Data(), "TPCHistogramHandler", histogramHandlerInput2.Data(), "-use-general"); if (rootFileWriterInput2.Length()>0) rootFileWriterInput2+=" "; rootFileWriterInput2+=histogramHandlerOutput2; AliHLTConfiguration rootFileWriter1("RootFileWriter1", "ROOTFileWriter", rootFileWriterInput1.Data() , "-datafile histogramHandlerFile1"); AliHLTConfiguration rootFileWriter2("RootFileWriter2", "ROOTFileWriter", rootFileWriterInput2.Data() , "-datafile histogramHandlerFile2"); /////////////////////////////////////////////////////////////////////////////////////////////////// // // 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", "libAliHLTUtil.so libAliHLTRCU.so libAliHLTTPC.so loglevel=0x7c chains=RootFileWriter1,RootFileWriter2"); rec.Run(); }
void recCPass0(const char *filename="raw.root",Int_t nevents=-1, const char *ocdb="raw://", const char* options="?Trigger=kCalibBarrel") { if (gSystem->Getenv("ALIROOT_FORCE_COREDUMP")) { printf("ALIROOT_FORCE_COREDUMP set\n"); gSystem->ResetSignal(kSigFloatingException); gSystem->ResetSignal(kSigSegmentationViolation); } // addopt errors to account for calibration imprefection before cpass0 // 1) For TPC Double_t tpcSystematicErrors[5]={1,1.5,1./100.,1./100.,0.1}; Double_t tpcSystematicErrorClusters[2]={1.5,1.5}; Double_t tpcExtendedRoads[2]={2.5,2.5}; Double_t tpcPrimDCACuts[2] = {10.,30.}; // Y,Z TVectorD *vectpcSystematicErrors=new TVectorD(5, tpcSystematicErrors); TVectorD *vectpcSystematicErrorClusters=new TVectorD(2, tpcSystematicErrorClusters); TVectorD *vectpcExtendedRoads= new TVectorD(2, tpcExtendedRoads); TVectorD *vectpcPrimDCACuts = new TVectorD(2, tpcPrimDCACuts); const double kZOutSectorCut = 3.; // cut on clusters on wrong side of CE (added to extendedRoadZ) const double kPrimaryZ2XCut = 1.2; // cut on clusters Z/X (large eta) AliTPCReconstructor::SetSystematicError(vectpcSystematicErrors); AliTPCReconstructor::SetSystematicErrorCluster(vectpcSystematicErrorClusters); AliTPCReconstructor::SetExtendedRoads(vectpcExtendedRoads); AliTPCReconstructor::SetPrimaryDCACut(vectpcPrimDCACuts); AliTPCReconstructor::SetZOutSectorCut(kZOutSectorCut); AliTPCReconstructor::SetPrimaryZ2XCut(kPrimaryZ2XCut); // if (gSystem->Getenv("streamLevel")){ SetStreamLevel( AliTPCtracker::kStreamErrParam| AliTPCtracker::kStreamTransform); } // 2) For ITS AliITSReconstructor::SetCheckInvariant(kFALSE); // no invariant check with extended TPC errors // 3) For TOF // extra tolerance on top of default from recoparam AliTOFReconstructor::SetExtraTolerance(5.0); // 4) For TRD AliTRDReconstructor::SetExtraMaxClPerLayer(3); // to allow >6 cluster candidates per layer AliTRDReconstructor::SetExtraBoundaryTolerance(3); // relax boundary check AliTRDReconstructor::SetExtraRoadY(4); // extra road in Y AliTRDReconstructor::SetExtraRoadZ(6); // extra road in Z AliTRDReconstructor::SetExtraChi2Out(25); // extra chi2 tolerance on backpropagation // // Load some system libs for Grid and monitoring // Set the CDB storage location AliCDBManager * man = AliCDBManager::Instance(); man->SetDefaultStorage(ocdb); // Reconstruction settings AliReconstruction rec; // // do we extract the TPC recpoints in advance Int_t preclustTPC = TString(gSystem->Getenv("preclusterizeTPC")).Atoi(); Bool_t noTPCLocalRec = preclustTPC==1; if (noTPCLocalRec) printf("preclustTPC = %d: TPC local reconstruction assumed to be already done\n", preclustTPC); else printf("preclustTPC = %d: TPC local reconstruction assumed to NOT be already done\n", preclustTPC); // if (gSystem->Getenv("disableOuter")!=NULL){ TString disOuter = gSystem->Getenv("disableOuter"); TString disOuterLoc = disOuter; if (noTPCLocalRec) { disOuterLoc.ReplaceAll("TPC",""); disOuterLoc.ReplaceAll("HLT",""); } rec.SetRunReconstruction(disOuter.Data()); rec.SetRunLocalReconstruction(disOuterLoc.Data()); } else if (noTPCLocalRec) { rec.SetRunReconstruction("ALL -HLT"); rec.SetRunLocalReconstruction("ALL -TPC -HLT"); } else { rec.SetRunLocalReconstruction("ALL"); } // Upload CDB entries from the snapshot (local root file) if snapshot exist if (gSystem->AccessPathName("OCDB.root", kFileExists)==0) { rec.SetDefaultStorage("local://"); rec.SetCDBSnapshotMode("OCDB.root"); } else { // setup ocdb by custom (if any) or default settings if (gSystem->AccessPathName("localOCDBaccessConfig.C", kFileExists)==0) { gROOT->LoadMacro("localOCDBaccessConfig.C"); localOCDBaccessConfig(); }else { // default settings AliCDBManager* man = AliCDBManager::Instance(); man->SetRaw(kTRUE); } TString cdbMode = gSystem->Getenv("OCDB_SNAPSHOT_CREATE"); if (cdbMode == "kTRUE") { gROOT->LoadMacro("$ALIDPG_ROOT/MC/CreateSnapshot.C"); CreateSnapshot("OCDB.root",filename); return; } } // All friends rec.SetFractionFriends(2.0); // AliReconstruction settings - hardwired MB trigger for calibration TString newfilename = filename; newfilename += options; rec.SetInput(newfilename.Data()); // Set protection against too many events in a chunk (should not happen) if (nevents>0) rec.SetEventRange(0,nevents); // Remove recpoints after each event TString delRecPoints="TPC TRD ITS"; if (noTPCLocalRec) delRecPoints.ReplaceAll("TPC",""); rec.SetDeleteRecPoints(delRecPoints.Data()); // // Switch off the V0 finder - saves time! // rec.SetRunMultFinder(kFALSE); rec.SetRunV0Finder(kFALSE); // // QA options - all QA is off // rec.SetRunQA(":"); rec.SetRunGlobalQA(kFALSE); // AliReconstruction settings rec.SetWriteESDfriend(kTRUE); rec.SetWriteAlignmentData(); rec.SetUseTrackingErrorsForAlignment("ITS"); rec.SetCleanESD(kFALSE); // ITS options (see ALIROOT-7179) float itsErrY2[6]={0., 0., 0.1*0.1, 0.1*.1, 0.,0.}; TVectorF *vecITSErrY2 = new TVectorF(6, itsErrY2); AliITSReconstructor::SetExtraErrorY2(vecITSErrY2); //Ignore SetStopOnError rec.SetStopOnError(kFALSE); AliLog::Flush(); rec.Run(); }
void rec(const char *filename="raw.root", const char* options="") { ///////////////////////////////////////////////////////////////////////////////////////// // // Reconstruction script for RAW data // ///////////////////////////////////////////////////////////////////////////////////////// AliReconstruction rec; // Set reconstruction flags (skip detectors here if neded with -<detector name> // do we extract the TPC recpoints in advance Int_t preclustTPC = TString(gSystem->Getenv("preclusterizeTPC")).Atoi(); Bool_t noTPCLocalRec = preclustTPC==1; if (noTPCLocalRec) printf("preclustTPC = %d: TPC local reconstruction assumed to be already done\n", preclustTPC); else printf("preclustTPC = %d: TPC local reconstruction assumed to NOT be already done\n", preclustTPC); // if (noTPCLocalRec) { rec.SetRunReconstruction("ALL -HLT"); rec.SetRunLocalReconstruction("ALL -TPC -HLT"); } else { rec.SetRunLocalReconstruction("ALL"); } // Upload CDB entries from the snapshot (local root file) if snapshot exist if (gSystem->AccessPathName("OCDB.root", kFileExists)==0) { rec.SetDefaultStorage("local://"); rec.SetCDBSnapshotMode("OCDB.root"); } else { // setup ocdb by custom (if any) or default settings if (gSystem->AccessPathName("OCDBconfig.C", kFileExists)==0) { gROOT->Macro("OCDBconfig.C"); } else { // default settings AliCDBManager* man = AliCDBManager::Instance(); man->SetRaw(kTRUE); } // TString cdbMode = gSystem->Getenv("OCDB_SNAPSHOT_CREATE"); if (cdbMode == "kTRUE") { gROOT->LoadMacro("$ALIDPG_ROOT/MC/CreateSnapshot.C"); CreateSnapshot("OCDB.root",filename); return; } } // removing apparently pile-up clusters to speadup reconstruction const double kZOutSectorCut = 3.; // cut on clusters on wrong side of CE (added to extendedRoadZ) AliTPCReconstructor::SetZOutSectorCut(kZOutSectorCut); // QA options // rec.SetRunQA("Global:ESDs") ; // rec.SetRunQA(":") ; // rec.SetRunQA("ALL:ALL") ; rec.SetRunQA("Global MUON:ALL") ; rec.SetQARefDefaultStorage("local://$ALICE_ROOT/QAref") ; // AD stuff (see ALIROOT-6663) // rec.SetOption("AD", "+SaturationCorrection"); // --> not needed anymore, see https://alice.its.cern.ch/jira/browse/ALIROOT-6778 // AliReconstruction settings rec.SetWriteESDfriend(kTRUE); rec.SetWriteAlignmentData(); TString filenamewithopt = filename; filenamewithopt += options; rec.SetInput(filenamewithopt.Data()); rec.SetUseTrackingErrorsForAlignment("ITS"); // Specific AD storage, see https://alice.its.cern.ch/jira/browse/ALIROOT-6056 // rec.SetSpecificStorage("AD/Calib/TimeSlewing", "alien://Folder=/alice/simulation/2008/v4-15-Release/Ideal"); // switch off cleanESD rec.SetCleanESD(kFALSE); //Ignore SetStopOnError rec.SetStopOnError(kFALSE); // Delete recpoints // Remove recpoints after each event TString delRecPoints="TPC TRD"; if (noTPCLocalRec) delRecPoints.ReplaceAll("TPC",""); rec.SetDeleteRecPoints(delRecPoints.Data()); // // Set 0.7% as fraction of friends (Ruben, 2017-08-22) rec.SetFractionFriends(0.007); AliLog::Flush(); rec.Run(); }
/** * @file cal-hlt-tpc-offline.C * @brief Test macro for the HLT TPC offline calibration. * * The macro runs an HLT chain of TPC analysis, using the offline * algorithms and appropriate wrappers. The final output is * processed by the TPCOfflineCalibration component. * * Usage: * <pre> * aliroot -b -q cal-hlt-tpc-offline.C | tee cal-hlt-tpc-offline.log * </pre> * * The chain to be run is defined by the macro given to the parameter * 'config=' * * The macro asumes 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 cal-hlt-tpc-offline.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 * @author Jacek Otwinowski <*****@*****.**>, [email protected] */ void cal_hlt_tpc_offline(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(); //gHLT.SwitchAliLog(0); /////////////////////////////////////////////////////////////////////////////////////////////////// // // define the analysis chain to be run // bool sectorClusterer=true; // run clusterer on sector or DDL level // check if the AliRawReaderMemory supports multiple buffers TClass* info=TClass::GetClass("AliRawReaderMemory"); TList* methods=info->GetListOfAllPublicMethods(); if (sectorClusterer && !methods->FindObject("AddBuffer")) { cerr << "warning: AliRawReaderMemory does not support multiple buffers, falling back to run clusterer on DDL level" << endl; sectorClusterer=false; } int iMinSlice=0; int iMaxSlice=35; int iMinPart=0; int iMaxPart=5; int DDLNoFromSlicePatch(int, int); TString writerInput; TString trackerInput; TString calibratorInput; for (int slice=iMinSlice; slice<=iMaxSlice; slice++) { TString arg, clustererInput; for (int part=iMinPart; part<=iMaxPart; part++) { TString publisher, cf; // raw data publisher components int ddlno=DDLNoFromSlicePatch(slice, part); arg.Form("-minid %d -datatype 'DDL_RAW ' 'TPC ' -dataspec 0x%02x%02x%02x%02x -verbose", ddlno, slice, slice, part, part); publisher.Form("DP_%02d_%d", slice, part); AliHLTConfiguration pubconf(publisher.Data(), "AliRawReaderPublisher", NULL , arg.Data()); if (!sectorClusterer) { // cluster finder components cf.Form("CF_%02d_%d", slice, part); AliHLTConfiguration cfconf(cf.Data(), "TPCOfflineClusterer", publisher.Data(), ""); if (trackerInput.Length()>0) trackerInput+=" "; trackerInput+=cf; //if (writerInput.Length()>0) writerInput+=" "; //writerInput+=cf; } else { if (clustererInput.Length()>0) clustererInput+=" "; clustererInput+=publisher; } } if (sectorClusterer) { // cluster finder components cf.Form("CF_%02d", slice); AliHLTConfiguration cfconf(cf.Data(), "TPCOfflineClusterer", clustererInput.Data(), ""); if (trackerInput.Length()>0) trackerInput+=" "; trackerInput+=cf; } } // one global tracker component TString tracker; tracker.Form("Global_TR"); AliHLTConfiguration trackerconf(tracker.Data(), "TPCOfflineTrackerCalib", trackerInput.Data(), ""); if (writerInput.Length()>0) writerInput+=" "; calibratorInput+=tracker; // one global calibration component TString calibrator; calibrator.Form("Global_Calib"); AliHLTConfiguration calibconf(calibrator.Data(), "TPCOfflineCalibration", calibratorInput.Data(), ""); if (writerInput.Length()>0) writerInput+=" "; writerInput+=calibrator; // the writer configuration AliHLTConfiguration rootfwconf("sink1", "ROOTFileWriter", writerInput.Data(), "-specfmt=_%d -subdir=out_%d -idfmt=_0x%08x"); //AliHLTConfiguration esdwconf("sink1", "EsdCollector" , writerInput.Data(), "-directory hlt-tpc-offline"); /////////////////////////////////////////////////////////////////////////////////////////////////// // // Init and run the reconstruction // All but HLT reconstructio is switched off // AliReconstruction rec; rec.SetInput(input); rec.SetRunVertexFinder(kFALSE); rec.SetRunLocalReconstruction("HLT"); rec.SetRunTracking(""); rec.SetLoadAlignFromCDB(0); rec.SetFillESD(""); rec.SetRunQA(":"); rec.SetRunGlobalQA(kFALSE); rec.SetFillTriggerESD(kFALSE); rec.SetOption("HLT", "libAliHLTUtil.so libAliHLTRCU.so libANALYSIS.so libANALYSISalice.so libTPCcalib.so libAliHLTTPC.so loglevel=0x7c chains=sink1"); rec.Run(); }