jgrosseo [Wed, 4 Aug 2010 15:43:46 +0000 (15:43 +0000)]
changing offline trigger definitions once more:
removing NoTRD bit (can be checked by trigger class instead)
All triggers MB, MUON, HighMult use classes without requiring TRD pretrigger
agheata [Wed, 4 Aug 2010 14:46:36 +0000 (14:46 +0000)]
From C.Loizides: Handle manual branch loading if requested by the user (via SetAutoBranchLoading(kFALSE))
This turns off the usage of TTree::GetEntry, and uses TBranch::GetEntry. It relies on the fact that the user loads
the needed branches in his tasks on demand (via LoadBranch(brname))
This feature is disabled by default, and therefore the current use of the manager targeted at train mode persists.
The purpose is to speed up the analysis in case only a few branches are needed, and if cuts can be made based on quickly loadable information. For example, on my laptop with auto branch loading enabled takes about 8ms/event while with auto branch loading disabled (just loading the header and run info) only 0.8 ms (ie order of magnitude faster). For a more realistic case, with an actual track based analysis attached, a speed up of 2-3 was achieved.
/* should have meaningful check here, use dummy just to illustrate example*/
if (some_condition_on_event_header_or_ESDRun_object) {
return;
}
// We can load the interesting branches:
am->LoadBranch("Tracks");
// Track loop to fill a pT spectrum
printf("There are %d tracks in this event\n", fESD->GetNumberOfTracks());
... track loop
mfloris [Wed, 4 Aug 2010 13:44:20 +0000 (13:44 +0000)]
- Adding pt histograms for electrons and muons
- Adding pt histogram for "all other" particles, not listed in the enums for id parts
- Adding histogram of species contributing to primaries
- pt histogram now have variable binning, to match yields analysis
- runTaskProof: using the new CAF
pulvir [Mon, 2 Aug 2010 20:26:13 +0000 (20:26 +0000)]
- Added template class for fitting (work in progress).
- Updated the 2010 cuts after some comparison tests for bug fixing.
- Added and example macro to run with AliEn plugin
- Corrected some cuts
- Removed a bug in analysis task
jgrosseo [Mon, 2 Aug 2010 12:59:22 +0000 (12:59 +0000)]
Updating physics selection to support new MB trigger schemes and adding high multiplicity trigger
Supporting now CINT1WU, CMUS1WU, CSH1WU, CINT1, CMUS1, CSH1 triggers
Backward compatible
Major upgrade to the package, in order to speed-up the execution and remove some unnecessary features which complicate too much the preparation of configuration.
Added some new cuts used for current analysis, and some monitor analysis task in order to check some quality cuts to tune them properly.
AliRsnDaughter:
- added a TLorentzVector datamember which will contain all kinematic informations
(one for default input and another for MC if necessary)
>> removed most of the kinematic-like getters
>> access to kinematics of the track through the getter which returns this object
>> eases a lot the procedure of summing up without errors
NOTE: now the AliRsnDaughter should be able to deal also with V0s, in order to
search for *charged* resonances (this is under test, but it is basically implemented)
AliRsnPairParticle --> renamed into AliRsnMother
- added two TLorentzVector which are set from two AliRsnDaughters and two masses
assigned to them
The AliRsnCutManager (renamed class) has been reviewes as follows:
- removed the slot related to cuts on events, because it is redundant
if repeated on all AliRsnPair objects, it has been moved at the level
of the AnalysisManager
- added the possibility to specify some cuts only for the first or second daughter
so there are three different slots: common (checked for both), first and second (checked for one only)
AliRsnFunctionAxis was renamed as AliRsnValue for meaning reasons.
AliRsn Analysis tasks will contain only one analysis manager,
since the use of them in the train (which should be the default)
stores all outputs into a single file, so there is no reason to have
different analysis manager, which cause confusion when configuring the task.
AliRsnPair becam a virtual base classe for different output systems
the 'old' version which stores histograms is now AliRsnPairFunctions, and works like before.
A new possibility was added to save output as a TNtuple, with the class AliRsnPairNtuple,
which needs to be initialized just defining what values it has to store for each entry,
which are defined using the same class AliRsnValue which is used to create the AliRsnFunctions
which are used as the output for the previous version of this class.
There is the possibility to implement new output formats using this base class.
REMOVED CLASSES:
- AliRsnVManager (not needed any longer)
- AliRsnHistoDef (obsolete, not used since long time)
- AliRsnPairManager (unnecessary step more in configuration)
- AliRsnPIDDefESD (replaced by a dedicated AliRsnCut for PID)
- AliRsnAnalysisTrackEffSE (never used)
- AliRsnCutESDTrigger (better to use AliPhysicsSelection)
(Christian Klein-Boesing) This would allow to enable the population of the AOD by the ESDFilter without activating the writing. By that subsequent tasks can decide wether the standard AOD is filled or not, in case the user wants it.
AOD filling follows the new offline trigger schema. The method AliAODHandler::BeginEvent() resets filling of the AOD for the current event, while the ESD/AOD filters may set it back if the event passes their physics selection mask.
All filters must add to their UserExec mehod lines like:
// Filters must explicitely enable AOD filling in their UserExec (AG)
if (!AliAnalysisManager::GetAnalysisManager()->GetOutputEventHandler()) AliFatal("Cannot run ESD filter without an output event handler");
AliAnalysisManager::GetAnalysisManager()->GetOutputEventHandler()->SetFillAOD(kTRUE);
Note:
Changed the logic of AliAnalysisTaskSE::fOfflineTrigger for backward compatibility: if the task does not set it (stays 0) it means all events are selected. If the mask is non 0 it is AND-ed with the current event mask (as implemented with Jan-Fiete).
Again, if no event selection cuts object (like AliPhysicsSelection) is used at the level of the input handler, all events are now selected.
Implemented merging in stages. Instead of submitting one merging job per master, the plugin now sends nfiles/nperchunk+1 jobs, each merging a subset of nperchunk files.
The number of files merged in a chunk is the one set via: plugin->SetMaxMergeFiles(nperchunk)
This works only when having the plugin in SetMergeViaJDL() mode. Running the analysis with the plugin in in "terminate" mode will submit merging at stage 1. When the submitted merging jobs are in a final state, the user can rerun in "terminate" mode. This will either resubmit the jobs that failed in the previous stage or just submit jobs for the next stage.
When the current stage fulfills nfiles_for_stage_N <= nperchunk, the final merging job will also run the analysis in "terminate" mode.
The intermediate files are calles: output-Stage%02d_%04d and are NOT cleaned up in the current implementation - the user should do it.
Note: Do NOT run "terminate" mode if existing merging jobs are not yet in a final state, as this will resubmit ALL jobs that have not yet registered their output, even if these are successful.
Run scenario:
1. Analysis via plugin using:
plugin->SetMergeViaJDL();
plugin->SetMaxMergeFiles(10);
plugin->SetRunMode("full")
...
mgr->StartAnalysis("grid")
This will submit a master job which is split say in 1000 jobs, each producing output1.root, ..., outputN.root
2. All jobs finished (maybe after resubmission) even if some failed (due to corrupted inputs or whatever)
We are left with 980 successful jobs.
plugin->SetRunMode("terminate")
...
mgr->StartAnalysis("grid")
This will submit 980/10 meging jobs. The K-th job will produce for the output N the file: output-Stage01_000K.root
Wait until jobs are done, resubmit failing ones -> ALL merging jobs must succeed
3. We have now 98 Stage01 merged files. Redoing step 2 will submit 98/10+1=10 jobs stage 2.
These will produce 10 files outputN-Stage02_000K.root
4. Redoing stage 2 when these jobs finished, the plugin will submit finally a single merging job.
After merging, the job will run the analysis "terminate" phase.
marian [Wed, 28 Jul 2010 10:50:58 +0000 (10:50 +0000)]
Update for extraction of 3D cluster residual maps
- A lot of code in the AliTPCcaliAlign started to be obsolete
- To be cleaned later
+
MakeAlignCalPad.C - for E field distortion in 3D
- previously working in 2D
- name is obsolete - will be replaced in future