-/**************************************************************************
- * Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
- * *
- * Author: The ALICE Off-line Project. *
- * Contributors are mentioned in the code where appropriate. *
- * *
- * Permission to use, copy, modify and distribute this software and its *
- * documentation strictly for non-commercial purposes is hereby granted *
- * without fee, provided that the above copyright notice appears in all *
- * copies and that both the copyright notice and this permission notice *
- * appear in the supporting documentation. The authors make no claims *
- * about the suitability of this software for any purpose. It is *
- * provided "as is" without express or implied warranty. *
- **************************************************************************/
-
-// LHC10x multiplicity config for protons and deuterons
-// author: Eulogio Serradilla <eulogio.serradilla@cern.ch>
-
-#if !defined(__CINT__) || defined(__MAKECINT__)
-#include <TSystem.h>
-#include <TROOT.h>
-#include <TString.h>
-#include <TFileMerger.h>
-#include "AliLnDriver.h"
-#endif
-
-#include "Config.h"
-
-Int_t LHC10xMult( const TString& species = "Deuteron"
- , const TString& inputDir = "~/alice/input"
- , const TString& outputDir = "~/alice/output"
- , const TString& period = "lhc10d"
- , const TString& otag = "lhc10d"
- , const TString& trkselTag = "-tpc3-nsd-moc"
- , Double_t ymax = 0.5
- , Int_t option = 2)
-{
-//
-// lhc10x multiplicity config
-// call Config_XXX for each multiplicity class
-//
-// if option = 0 then use Config_XXX_TPC
-// if option = 1 then use Config_XXX_TOF
-// if option = 2 then use Config_TPCTOF
-//
- using namespace B2mult;
- using namespace std;
-
- const Bool_t kINEL[kNmult] = { 0 };
-
- Double_t ptmin = (species=="Proton") ? 0.4 : 0.7;
- Double_t ptjoint = (species=="Proton") ? 1.0 : 1.0;
- Double_t ptmax = (species=="Proton") ? 2.0 : 2.5;
- Double_t ptpid = (species=="Proton") ? 0.4 : 1.3;
-
- if( (option<0) || (option>2) || ((species != "Proton") && (species != "Deuteron")))
- {
- cerr << "unknown species/option: " << species << "/" << option << endl;
- cerr << "species: Proton or Deuteron, options: 0 (TPC), 1 (TOF), 2 (TPCTOF)" << endl;
- exit(1);
- }
-
- TFileMerger m1,m2;
-
- TString ratio[kNmult];
- TString spectra[kNmult];
-
- for(Int_t i=0; i<kNmult; ++i)
- {
- // limit the ptmax value for deuterons
- if(species == "Deuteron") ptmax = kDtrPtMax[i];
-
- cout << endl;
- cout << "Multiplicity class : " << kMultTag[i] << endl;
- cout << "Period : " << period << endl;
-
- TString outputTag = otag + kMultTag[i];
-
- TString arg = inputDir + "\","
- + "\"" + outputDir + "\","
- + "\"" + period + "\","
- + "\"" + outputTag + "\","
- + "\"" + trkselTag + "\","
- + "\"" + kMultTag[i] + "\"," // data
- + "\"" + ""; // same simulations for all mult
-
- switch(option)
- {
- case 0:
- cout << "Config_" << species << "_TPC_LHC10x.C" << endl << endl;
- gROOT->ProcessLine(Form(".x Config_%s_TPC_LHC10x.C+g(\"%s\", %f, %d, 0, %f, %f)", species.Data(), arg.Data(), ymax, kINEL[i], ptmin, ptmax));
- break;
- case 1:
- cout << "Config_" << species << "_LHC10x.C" << endl << endl;
- gROOT->ProcessLine(Form(".x Config_%s_TOF_LHC10x.C+g(\"%s\", %f, %d, 0, %f, %f, %f)", species.Data(), arg.Data(), ymax, kINEL[i], ptmin, ptmax, ptpid));
- break;
- case 2:
- cout << "Config_TPCTOF_LHC10x.C" << endl << endl;
- gROOT->ProcessLine(Form(".x Config_TPCTOF_LHC10x.C+g(\"%s\", %f, %d, 0, \"%s\", %f, %f, %f, %f)", arg.Data(), ymax, kINEL[i], species.Data(), ptmin, ptjoint, ptmax, ptpid));
- break;
- }
-
- ratio[i] = outputDir + "/" + species + "-" + outputTag + "-Ratio.root";
- spectra[i] = outputDir + "/" + species + "-" + outputTag + "-Spectra.root";
-
- m1.AddFile(ratio[i].Data(),0);
- m2.AddFile(spectra[i].Data(),0);
- }
-
- // merge
-
- TString allRatios = outputDir + "/" + species + "-" + otag + "-Mult-Ratio.root";
- TString allSpectra = outputDir + "/" + species + "-" + otag + "-Mult-Spectra.root";
-
- m1.OutputFile(allRatios.Data());
- m2.OutputFile(allSpectra.Data());
-
- m1.Merge();
- m2.Merge();
-
- // delete tmp files
-
- for(Int_t i=0; i<kNmult; ++i)
- {
- gSystem->Exec(Form("rm -f %s", ratio[i].Data()));
- gSystem->Exec(Form("rm -f %s", spectra[i].Data()));
- }
-
- // draw output
-
- gROOT->ProcessLine(Form(".x DrawDir.C+g(\"%s\",\"Anti%s%s_Ratio_Pt\",\"\",0,4.5, 0., 1.8, \"#it{p}_{T} (GeV/c)\", \"#bar{p}/p\", 0, \"cRatio\",\"Particle ratio\")", allRatios.Data(),species.Data(),species.Data()));
-
- Double_t minYield = (species=="Proton") ? 1.1e-6 : 1.1e-8;
- Double_t maxYield = (species=="Proton") ? 4.e-1 : 7.e-4;
-
- DrawOutputSpectraMult(allSpectra, species, minYield, maxYield);
-
- return 0;
-}