/**
* @file
*
* @ingroup pwg2_forward_scripts
*/
/**
* Run first pass of the analysis - that is read in ESD and produce AOD
*
* @param esddir ESD input directory. Any file matching the pattern
* *AliESDs*.root are added to the chain
* @param nEvents Number of events to process. If 0 or less, then
* all events are analysed
* @param proof Run in proof mode
* @param mc Run over MC data
*
* If PROOF mode is selected, then Terminate will be run on the master node
* in any case.
*
*
* @ingroup pwg2_forward_scripts
*/
void MakeMultiplicityDistributions(const char* aoddir=".",
Int_t nEvents=-1,
const char* trig="INEL",
Double_t vzMin=-10,
Double_t vzMax=10,
Int_t lowCent= 0,
Int_t highCent= 0,
char* output="forward_multiplicity.root",
Int_t nBins= 500,
Int_t proof=0)
{
// --- Libraries to load -------------------------------------------
gROOT->Macro("$ALICE_ROOT/PWGLF/FORWARD/analysis2/scripts/LoadLibs.C");
// --- Check for proof mode, and possibly upload pars --------------
if (proof> 0) {
gROOT->LoadMacro("$ALICE_ROOT/PWGLF/FORWARD/analysis2/scripts/LoadPars.C");
LoadPars(proof);
}
// --- Our data chain ----------------------------------------------
std::cout << "making chain of files" << std::endl;
gROOT->LoadMacro("$ALICE_ROOT/PWGLF/FORWARD/analysis2/scripts/MakeChain.C");
TChain* chain = MakeChain("AOD", aoddir,true);
// If 0 or less events is select, choose all
if (nEvents <= 0) nEvents = chain->GetEntries();
// --- Creating the manager and handlers ---------------------------
AliAnalysisManager *mgr = new AliAnalysisManager("Forward Train",
"Forward Multiplicity");
if(lowCent>=highCent)
AliAnalysisManager::SetCommonFileName(output);
else{
Char_t* name = Form("%s_cent_%d_%d.root",output,lowCent, highCent);
AliAnalysisManager::SetCommonFileName(name);
}
// --- ESD input handler -------------------------------------------
AliAODInputHandler *aodInputHandler = new AliAODInputHandler();
mgr->SetInputEventHandler(aodInputHandler);
// --- Add tasks ---------------------------------------------------
// Forward
gROOT->LoadMacro("$ALICE_ROOT/PWGLF/FORWARD/analysis2/AddTaskMultiplicity.C");
AddTaskMultiplicity(trig, vzMin, vzMax, lowCent, highCent, nBins);
// --- Run the analysis --------------------------------------------
TStopwatch t;
if (!mgr->InitAnalysis()) {
Error("MakeMult", "Failed to initialize analysis train!");
return;
}
// Skip terminate if we're so requested and not in Proof or full mode
mgr->SetSkipTerminate(false);
// Some informative output
mgr->PrintStatus();
// mgr->SetDebugLevel(3);
if (mgr->GetDebugLevel() < 1 && !proof)
mgr->SetUseProgressBar(kTRUE,100);
// Run the train
t.Start();
Printf("=== RUNNING ANALYSIS ==================================");
mgr->StartAnalysis(proof ? "proof" : "local", chain, nEvents);
t.Stop();
t.Print();
}
//
// EOF
//
MakeMultiplicityDistributions.C:1 MakeMultiplicityDistributions.C:2 MakeMultiplicityDistributions.C:3 MakeMultiplicityDistributions.C:4 MakeMultiplicityDistributions.C:5 MakeMultiplicityDistributions.C:6 MakeMultiplicityDistributions.C:7 MakeMultiplicityDistributions.C:8 MakeMultiplicityDistributions.C:9 MakeMultiplicityDistributions.C:10 MakeMultiplicityDistributions.C:11 MakeMultiplicityDistributions.C:12 MakeMultiplicityDistributions.C:13 MakeMultiplicityDistributions.C:14 MakeMultiplicityDistributions.C:15 MakeMultiplicityDistributions.C:16 MakeMultiplicityDistributions.C:17 MakeMultiplicityDistributions.C:18 MakeMultiplicityDistributions.C:19 MakeMultiplicityDistributions.C:20 MakeMultiplicityDistributions.C:21 MakeMultiplicityDistributions.C:22 MakeMultiplicityDistributions.C:23 MakeMultiplicityDistributions.C:24 MakeMultiplicityDistributions.C:25 MakeMultiplicityDistributions.C:26 MakeMultiplicityDistributions.C:27 MakeMultiplicityDistributions.C:28 MakeMultiplicityDistributions.C:29 MakeMultiplicityDistributions.C:30 MakeMultiplicityDistributions.C:31 MakeMultiplicityDistributions.C:32 MakeMultiplicityDistributions.C:33 MakeMultiplicityDistributions.C:34 MakeMultiplicityDistributions.C:35 MakeMultiplicityDistributions.C:36 MakeMultiplicityDistributions.C:37 MakeMultiplicityDistributions.C:38 MakeMultiplicityDistributions.C:39 MakeMultiplicityDistributions.C:40 MakeMultiplicityDistributions.C:41 MakeMultiplicityDistributions.C:42 MakeMultiplicityDistributions.C:43 MakeMultiplicityDistributions.C:44 MakeMultiplicityDistributions.C:45 MakeMultiplicityDistributions.C:46 MakeMultiplicityDistributions.C:47 MakeMultiplicityDistributions.C:48 MakeMultiplicityDistributions.C:49 MakeMultiplicityDistributions.C:50 MakeMultiplicityDistributions.C:51 MakeMultiplicityDistributions.C:52 MakeMultiplicityDistributions.C:53 MakeMultiplicityDistributions.C:54 MakeMultiplicityDistributions.C:55 MakeMultiplicityDistributions.C:56 MakeMultiplicityDistributions.C:57 MakeMultiplicityDistributions.C:58 MakeMultiplicityDistributions.C:59 MakeMultiplicityDistributions.C:60 MakeMultiplicityDistributions.C:61 MakeMultiplicityDistributions.C:62 MakeMultiplicityDistributions.C:63 MakeMultiplicityDistributions.C:64 MakeMultiplicityDistributions.C:65 MakeMultiplicityDistributions.C:66 MakeMultiplicityDistributions.C:67 MakeMultiplicityDistributions.C:68 MakeMultiplicityDistributions.C:69 MakeMultiplicityDistributions.C:70 MakeMultiplicityDistributions.C:71 MakeMultiplicityDistributions.C:72 MakeMultiplicityDistributions.C:73 MakeMultiplicityDistributions.C:74 MakeMultiplicityDistributions.C:75 MakeMultiplicityDistributions.C:76 MakeMultiplicityDistributions.C:77 MakeMultiplicityDistributions.C:78 MakeMultiplicityDistributions.C:79 MakeMultiplicityDistributions.C:80 MakeMultiplicityDistributions.C:81 MakeMultiplicityDistributions.C:82 MakeMultiplicityDistributions.C:83 MakeMultiplicityDistributions.C:84 MakeMultiplicityDistributions.C:85 MakeMultiplicityDistributions.C:86 MakeMultiplicityDistributions.C:87 MakeMultiplicityDistributions.C:88 MakeMultiplicityDistributions.C:89 MakeMultiplicityDistributions.C:90 MakeMultiplicityDistributions.C:91 MakeMultiplicityDistributions.C:92 MakeMultiplicityDistributions.C:93 MakeMultiplicityDistributions.C:94