80 likes | 177 Views
Marian Ivanov. Pass0/PassX reconstruction/calibration. Pass0/PassX schema. 1. Reconstruction/calibration – on chunk level Pass0 - for fast calibration Small difference in the rec.C – in Pass0 not all detectors involved, and not full statistic processed Pass0: 2.a Merging per run
E N D
Marian Ivanov Pass0/PassX reconstruction/calibration
Pass0/PassX schema • 1. Reconstruction/calibration – on chunk level • Pass0 - for fast calibration • Small difference in the rec.C – in Pass0 not all detectors involved, and not full statistic processed • Pass0: • 2.a Merging per run • 2.b Extraction of the OCDB entries per run • PassX (X>0) • 2.a Merging per run (common for all detectors) • 2.b Merging per predefined time interval (~week) • It is not clear if the same interval can be used for all detectors. In schema proposed by core OFFLINE, it is the case. But maybe we will need more flexibility in future. • 2.c Extraction of the OCDB entries per run range(s).
Pass0/PassX – reconstruction part • Reconstruction/Calibration jobs - chunk level - tested on the grid - two weeks of data taking • 90% success rate in first pass • 95.6 % success rate after job resubmission • In some cases memory consumption reported to be above 8 Gby • Not reproduced by test of Peter • Example syswatch log dump (/alice/data/2010/LHC10b/000115889/ESDs/pass0/10000115889041.10/syswatch.log) • Memory – Start at 1.6 Gby at event 0 – increase to the 2.1GBy • Strange steps • CPU – 3.4 s per event Event Nr Event Nr
Memory consumption - jumps • Step 1.6 Gby at the beginning +Total increase about 500MBy for 3500 events • Re-Allocation of buffers (TPC,TRD) • ??? - ITS
CPU consumption • Mean about 3 s - Total time counted • Outlyers in the local reconstruction
Pass0/PassX – Make OCDB • Procedure tested with one run • Jdl file : mergeMakeOCDB.jdl (in SVN $ALICE_ROOT/ANALYSIS/CalibMacros/MergeCalibration/ • Executable: • (mergeCalibObjects.sh) mergeMakeOCDB.sh validationMerging.sh • Steering part: • ConfigCalibTrain.C (configure OCDB pathes, mag. field) • LoadLibraries.C • merge.C • mergeCalibObjects.C • makeOCDB.C
Detector part • 3 macros for the TPC (different calibrations) – to be replaced by the compiled code: • Equivalent of the AliTPCPreprocessor.h(cxx) - • AliTPCPreprocesorOFFLINE.h(cxx) • Options: • Put it to the Release ? • Compiled macros at the beginning ?
AliTPCPreprocessorOffline • //Drift - alignment part • void CalibTimeVdrift(Char_t* file="CalibObjectsTrain1.root", Int_t ustartRun=0, Int_t uendRun=AliCDBRunRange::Infinity(),TString ocdbStorage=""); • void UpdateOCDBDrift(Int_t ustartRun, Int_t uendRun); • void AddHistoGraphs( TObjArray * vdriftArray, AliTPCcalibTime *timeDrift, Int_t minEntries); • void AddAlignmentGraphs( TObjArray * vdriftArray, AliTPCcalibTime *timeDrift); • void AddLaserGraphs( TObjArray * vdriftArray, AliTPCcalibTime *timeDrift); • void SetDefaultGraphDrift(TGraph *graph, Int_t color, Int_t style); • TGraphErrors* FilterGraphMedianAbs(TGraphErrors * graph, Float_t cut,Double_t &medianY); • TGraphErrors* FilterGraphDrift(TGraphErrors * graph, Float_t errSigmaCut, Float_t medianCutAbs); • TGraphErrors * MakeGraphFilter0(THnSparse *hisN, Int_t itime, Int_t ival, Int_t minEntries, Double_t offset=0); • //Gain part • void UpdateOCDBGain(Int_t startRunNumber, Int_t endRunNumber, const char* storagePath); • void ReadGainGlobal(Char_t* fileName="CalibObjectsTrain1.root"); • void MakeQAPlot(Float_t FPtoMIPratio); • Bool_t AnalyzeGain(Int_t startRunNumber, Int_t endRunNumber, Int_t minEntriesGaussFit = 500, Float_t FPtoMIPratio = 1.43);