//=========Total multiplicity=========//
Double_t nTotalMultiplicityMean = 100.;
Double_t nTotalMultiplicitySigma = 10.;
//=========Net charge=========//
Double_t nNetChargeMean = 0.0;
Double_t nNetChargeSigma = 3.0;
//==============Particles and spectra==============//
//Double_t gAllChargesTemperature = 0.11; //in GeV
Double_t gAllChargesTemperature = 4.5; //not temperature==>modified hagedorn
Double_t gPionPercentage = 0.8;
Double_t gPionTemperature = 0.1; //in GeV
Double_t gKaonPercentage = 0.12;
Double_t gKaonTemperature = 0.12; //in GeV
Double_t gProtonPercentage = 0.08;
Double_t gProtonTemperature = 0.2; //in GeV
//==============Particles and spectra==============//
//==============Flow values==============//
Double_t gDirectedFlow = 0.0;
Double_t gEllipticFlow = 0.2;
Double_t gTriangularFlow = 0.0;
Double_t gQuandrangularFlow = 0.0;
Double_t gPentangularFlow = 0.0;
//==============Flow values==============//
//=========Acceptance definition=========//
Double_t gEtaMin = -1.0;
Double_t gEtaMax = 1.0;
Double_t gPtMin = 0.1;
Double_t gPtMax = 20.0;
//=========Acceptance definition=========//
//=========Acceptance filter=========//
Bool_t kUseAcceptanceFilter = kFALSE;
const char *gAcceptanceFilterFile = "efficiencyALICE.root";
//=========Acceptance filter=========//
//=========Detector effects=========//
Bool_t kSimulateDetectorEffects = kTRUE;
Int_t fNumberOfInefficientSectors = 5;//inefficient secotrs in phi
Double_t fInefficiencyFactorInPhi = 0.65;//efficiency factor < 1
Int_t fNumberOfDeadSectors = 3;//number of dead sectors
Bool_t fEfficiencyDropNearEtaEdges = kTRUE;//efficiency drop in eta edges
//=========Detector effects=========//
//=========Jets=========//
Bool_t kUseJets = kFALSE;
//=========Jets=========//
//=========Dynamical Correlations=========//
Bool_t kUseDynamicalCorrelations = kFALSE;
Double_t gDynamicalCorrelationsPercentage = 0.1;
//=========Dynamical Correlations=========//
//=========bf object configuration=========//
Bool_t kRunShuffling = kFALSE;
Bool_t kRunMixing = kTRUE;
Bool_t bResonancesCut = kFALSE;
Bool_t bHBTcut = kFALSE;
Bool_t bConversionCut = kFALSE;
Bool_t bMomentumDifferenceCut = kFALSE;
TString fArgEventClass = "EventPlane";
Double_t deltaEtaMax = TMath::Abs(gEtaMax-gEtaMin);
Bool_t bVertexBinning = kFALSE;
//=========bf object configuration=========//
//=========Debug option=========//
Bool_t kUseDebug = kFALSE;
//=========Debug option=========//
// Run macro used for the toy model analysis
// Author: Panos.Christakoglou@nikhef.nl
//____________________________________________________________________
void runBalanceFunctionToyModel(Int_t nEvents = 10,
Bool_t kUseAllCharges = kTRUE) {
TStopwatch timer;
timer.Start();
// load libraries
gSystem->Load("libCore.so");
gSystem->Load("libGeom.so");
gSystem->Load("libVMC.so");
gSystem->Load("libPhysics.so");
gSystem->Load("libTree.so");
gSystem->Load("libSTEERBase");
gSystem->Load("libESD");
gSystem->Load("libAOD");
gSystem->Load("libANALYSIS");
gSystem->Load("libANALYSISalice");
gSystem->Load("libEventMixing.so");
gSystem->Load("libCORRFW");
gSystem->Load("libPWGTools");
gSystem->Load("libPWGCFebye");
//configure the bf objects
gROOT->LoadMacro("$ALICE_ROOT/PWGCF/EBYE/macros/configBalanceFunctionPsiAnalysis.C");
AliBalancePsi *bf = GetBalanceFunctionObject("MC","",0,100,kRunShuffling,bResonancesCut,bHBTcut,bConversionCut,bMomentumDifferenceCut,fArgEventClass,deltaEtaMax,bVertexBinning);
AliBalancePsi *bfm = 0x0;
if(kRunMixing)
bfm = GetBalanceFunctionObject("MC","",0,100,kRunShuffling,bResonancesCut,bHBTcut,bConversionCut,bMomentumDifferenceCut,fArgEventClass,deltaEtaMax,bVertexBinning);
//Configure the toy model object
AliAnalysisTaskToyModel *toyModelAnalysis = new AliAnalysisTaskToyModel();
if(kUseDebug) toyModelAnalysis->SetDebugFlag();
toyModelAnalysis->SetAnalysisObject(bf);
if(kRunMixing)
toyModelAnalysis->SetMixingObject(bfm);
toyModelAnalysis->SetTotalMultiplicity(nTotalMultiplicityMean,nTotalMultiplicitySigma);
toyModelAnalysis->SetNetCharge(nNetChargeMean,nNetChargeSigma);
toyModelAnalysis->SetKinematicsCutsMC(gPtMin,gPtMax,gEtaMin,gEtaMax);
if(kUseAllCharges) {
toyModelAnalysis->SetSpectraTemperatureForAllCharges(gAllChargesTemperature);
toyModelAnalysis->SetDirectedFlowForAllCharges(gDirectedFlow);
toyModelAnalysis->SetEllipticFlowForAllCharges(gEllipticFlow);
toyModelAnalysis->SetTriangularFlowForAllCharges(gTriangularFlow);
toyModelAnalysis->SetQuandrangularFlowForAllCharges(gQuandrangularFlow);
toyModelAnalysis->SetPentangularFlowForAllCharges(gPentangularFlow);
}
else {
//Pions
toyModelAnalysis->SetPionPercentage(gPionPercentage);
toyModelAnalysis->SetSpectraTemperatureForPions(gPionTemperature);
toyModelAnalysis->SetDirectedFlowForPions(gDirectedFlow);
toyModelAnalysis->SetEllipticFlowForPions(gEllipticFlow);
toyModelAnalysis->SetTriangularFlowForPions(gTriangularFlow);
toyModelAnalysis->SetQuandrangularFlowForPions(gQuandrangularFlow);
toyModelAnalysis->SetPentangularFlowForPions(gPentangularFlow);
//Kaons
toyModelAnalysis->SetKaonPercentage(gKaonPercentage);
toyModelAnalysis->SetSpectraTemperatureForKaons(gKaonTemperature);
toyModelAnalysis->SetDirectedFlowForKaons(gDirectedFlow);
toyModelAnalysis->SetEllipticFlowForKaons(gEllipticFlow);
toyModelAnalysis->SetTriangularFlowForKaons(gTriangularFlow);
toyModelAnalysis->SetQuandrangularFlowForKaons(gQuandrangularFlow);
toyModelAnalysis->SetPentangularFlowForKaons(gPentangularFlow);
//Protons
toyModelAnalysis->SetProtonPercentage(gProtonPercentage);
toyModelAnalysis->SetSpectraTemperatureForProtons(gProtonTemperature);
toyModelAnalysis->SetDirectedFlowForProtons(gDirectedFlow);
toyModelAnalysis->SetEllipticFlowForProtons(gEllipticFlow);
toyModelAnalysis->SetTriangularFlowForProtons(gTriangularFlow);
toyModelAnalysis->SetQuandrangularFlowForProtons(gQuandrangularFlow);
toyModelAnalysis->SetPentangularFlowForProtons(gPentangularFlow);
}
//Jets
if(kUseJets)
toyModelAnalysis->SetUseJets();
//Dynamical correlations
if(kUseDynamicalCorrelations)
toyModelAnalysis->SetCorrelationPercentage(gDynamicalCorrelationsPercentage);
//Acceptance filter
if(kUseAcceptanceFilter) {
TFile *gParamFile = TFile::Open(gAcceptanceFilterFile);
if((!gParamFile) || (!gParamFile->IsOpen())) {
Printf("File %s not found!!!",acceptanceFilename);
return;
}
TString gParamName;
for(Int_t iCentrality = 0; iCentrality < numberOfCentralityBins; iCentrality++) {
gParamName = "gParamCentrality0";//centrality 0-5%
TF1 *gParameterization = dynamic_cast<TF1 *>(gParamFile->Get(gParamName.Data()));
}
toyModelAnalysis->SetAcceptanceParameterization(gParameterization);
}
//Detector effects
if(kSimulateDetectorEffects)
toyModelAnalysis->SimulateDetectorEffects();
if(fNumberOfInefficientSectors) {
toyModelAnalysis->SetNumberOfInefficientSectorsInPhi(fNumberOfInefficientSectors);
toyModelAnalysis->SetInefficiencyFactor(fInefficiencyFactorInPhi);
}
if(fNumberOfDeadSectors)
toyModelAnalysis->SetNumberOfDeadSectorsInPhi(fNumberOfDeadSectors);
if(fEfficiencyDropNearEtaEdges)
toyModelAnalysis->EnableEfficiencyDropNearEtaEdges();
//Initialize and run
toyModelAnalysis->Init();
toyModelAnalysis->CreateOutputObjects();
toyModelAnalysis->Run(nEvents);
toyModelAnalysis->FinishOutput();
// Print real and CPU time used for analysis:
timer.Stop();
timer.Print();
}
runBalanceFunctionToyModel.C:1 runBalanceFunctionToyModel.C:2 runBalanceFunctionToyModel.C:3 runBalanceFunctionToyModel.C:4 runBalanceFunctionToyModel.C:5 runBalanceFunctionToyModel.C:6 runBalanceFunctionToyModel.C:7 runBalanceFunctionToyModel.C:8 runBalanceFunctionToyModel.C:9 runBalanceFunctionToyModel.C:10 runBalanceFunctionToyModel.C:11 runBalanceFunctionToyModel.C:12 runBalanceFunctionToyModel.C:13 runBalanceFunctionToyModel.C:14 runBalanceFunctionToyModel.C:15 runBalanceFunctionToyModel.C:16 runBalanceFunctionToyModel.C:17 runBalanceFunctionToyModel.C:18 runBalanceFunctionToyModel.C:19 runBalanceFunctionToyModel.C:20 runBalanceFunctionToyModel.C:21 runBalanceFunctionToyModel.C:22 runBalanceFunctionToyModel.C:23 runBalanceFunctionToyModel.C:24 runBalanceFunctionToyModel.C:25 runBalanceFunctionToyModel.C:26 runBalanceFunctionToyModel.C:27 runBalanceFunctionToyModel.C:28 runBalanceFunctionToyModel.C:29 runBalanceFunctionToyModel.C:30 runBalanceFunctionToyModel.C:31 runBalanceFunctionToyModel.C:32 runBalanceFunctionToyModel.C:33 runBalanceFunctionToyModel.C:34 runBalanceFunctionToyModel.C:35 runBalanceFunctionToyModel.C:36 runBalanceFunctionToyModel.C:37 runBalanceFunctionToyModel.C:38 runBalanceFunctionToyModel.C:39 runBalanceFunctionToyModel.C:40 runBalanceFunctionToyModel.C:41 runBalanceFunctionToyModel.C:42 runBalanceFunctionToyModel.C:43 runBalanceFunctionToyModel.C:44 runBalanceFunctionToyModel.C:45 runBalanceFunctionToyModel.C:46 runBalanceFunctionToyModel.C:47 runBalanceFunctionToyModel.C:48 runBalanceFunctionToyModel.C:49 runBalanceFunctionToyModel.C:50 runBalanceFunctionToyModel.C:51 runBalanceFunctionToyModel.C:52 runBalanceFunctionToyModel.C:53 runBalanceFunctionToyModel.C:54 runBalanceFunctionToyModel.C:55 runBalanceFunctionToyModel.C:56 runBalanceFunctionToyModel.C:57 runBalanceFunctionToyModel.C:58 runBalanceFunctionToyModel.C:59 runBalanceFunctionToyModel.C:60 runBalanceFunctionToyModel.C:61 runBalanceFunctionToyModel.C:62 runBalanceFunctionToyModel.C:63 runBalanceFunctionToyModel.C:64 runBalanceFunctionToyModel.C:65 runBalanceFunctionToyModel.C:66 runBalanceFunctionToyModel.C:67 runBalanceFunctionToyModel.C:68 runBalanceFunctionToyModel.C:69 runBalanceFunctionToyModel.C:70 runBalanceFunctionToyModel.C:71 runBalanceFunctionToyModel.C:72 runBalanceFunctionToyModel.C:73 runBalanceFunctionToyModel.C:74 runBalanceFunctionToyModel.C:75 runBalanceFunctionToyModel.C:76 runBalanceFunctionToyModel.C:77 runBalanceFunctionToyModel.C:78 runBalanceFunctionToyModel.C:79 runBalanceFunctionToyModel.C:80 runBalanceFunctionToyModel.C:81 runBalanceFunctionToyModel.C:82 runBalanceFunctionToyModel.C:83 runBalanceFunctionToyModel.C:84 runBalanceFunctionToyModel.C:85 runBalanceFunctionToyModel.C:86 runBalanceFunctionToyModel.C:87 runBalanceFunctionToyModel.C:88 runBalanceFunctionToyModel.C:89 runBalanceFunctionToyModel.C:90 runBalanceFunctionToyModel.C:91 runBalanceFunctionToyModel.C:92 runBalanceFunctionToyModel.C:93 runBalanceFunctionToyModel.C:94 runBalanceFunctionToyModel.C:95 runBalanceFunctionToyModel.C:96 runBalanceFunctionToyModel.C:97 runBalanceFunctionToyModel.C:98 runBalanceFunctionToyModel.C:99 runBalanceFunctionToyModel.C:100 runBalanceFunctionToyModel.C:101 runBalanceFunctionToyModel.C:102 runBalanceFunctionToyModel.C:103 runBalanceFunctionToyModel.C:104 runBalanceFunctionToyModel.C:105 runBalanceFunctionToyModel.C:106 runBalanceFunctionToyModel.C:107 runBalanceFunctionToyModel.C:108 runBalanceFunctionToyModel.C:109 runBalanceFunctionToyModel.C:110 runBalanceFunctionToyModel.C:111 runBalanceFunctionToyModel.C:112 runBalanceFunctionToyModel.C:113 runBalanceFunctionToyModel.C:114 runBalanceFunctionToyModel.C:115 runBalanceFunctionToyModel.C:116 runBalanceFunctionToyModel.C:117 runBalanceFunctionToyModel.C:118 runBalanceFunctionToyModel.C:119 runBalanceFunctionToyModel.C:120 runBalanceFunctionToyModel.C:121 runBalanceFunctionToyModel.C:122 runBalanceFunctionToyModel.C:123 runBalanceFunctionToyModel.C:124 runBalanceFunctionToyModel.C:125 runBalanceFunctionToyModel.C:126 runBalanceFunctionToyModel.C:127 runBalanceFunctionToyModel.C:128 runBalanceFunctionToyModel.C:129 runBalanceFunctionToyModel.C:130 runBalanceFunctionToyModel.C:131 runBalanceFunctionToyModel.C:132 runBalanceFunctionToyModel.C:133 runBalanceFunctionToyModel.C:134 runBalanceFunctionToyModel.C:135 runBalanceFunctionToyModel.C:136 runBalanceFunctionToyModel.C:137 runBalanceFunctionToyModel.C:138 runBalanceFunctionToyModel.C:139 runBalanceFunctionToyModel.C:140 runBalanceFunctionToyModel.C:141 runBalanceFunctionToyModel.C:142 runBalanceFunctionToyModel.C:143 runBalanceFunctionToyModel.C:144 runBalanceFunctionToyModel.C:145 runBalanceFunctionToyModel.C:146 runBalanceFunctionToyModel.C:147 runBalanceFunctionToyModel.C:148 runBalanceFunctionToyModel.C:149 runBalanceFunctionToyModel.C:150 runBalanceFunctionToyModel.C:151 runBalanceFunctionToyModel.C:152 runBalanceFunctionToyModel.C:153 runBalanceFunctionToyModel.C:154 runBalanceFunctionToyModel.C:155 runBalanceFunctionToyModel.C:156 runBalanceFunctionToyModel.C:157 runBalanceFunctionToyModel.C:158 runBalanceFunctionToyModel.C:159 runBalanceFunctionToyModel.C:160 runBalanceFunctionToyModel.C:161 runBalanceFunctionToyModel.C:162 runBalanceFunctionToyModel.C:163 runBalanceFunctionToyModel.C:164 runBalanceFunctionToyModel.C:165 runBalanceFunctionToyModel.C:166 runBalanceFunctionToyModel.C:167 runBalanceFunctionToyModel.C:168 runBalanceFunctionToyModel.C:169 runBalanceFunctionToyModel.C:170 runBalanceFunctionToyModel.C:171 runBalanceFunctionToyModel.C:172 runBalanceFunctionToyModel.C:173 runBalanceFunctionToyModel.C:174 runBalanceFunctionToyModel.C:175 runBalanceFunctionToyModel.C:176 runBalanceFunctionToyModel.C:177 runBalanceFunctionToyModel.C:178 runBalanceFunctionToyModel.C:179 runBalanceFunctionToyModel.C:180 runBalanceFunctionToyModel.C:181 runBalanceFunctionToyModel.C:182 runBalanceFunctionToyModel.C:183 runBalanceFunctionToyModel.C:184 runBalanceFunctionToyModel.C:185 runBalanceFunctionToyModel.C:186 runBalanceFunctionToyModel.C:187 runBalanceFunctionToyModel.C:188 runBalanceFunctionToyModel.C:189 runBalanceFunctionToyModel.C:190 runBalanceFunctionToyModel.C:191 runBalanceFunctionToyModel.C:192 runBalanceFunctionToyModel.C:193 runBalanceFunctionToyModel.C:194 runBalanceFunctionToyModel.C:195 runBalanceFunctionToyModel.C:196 runBalanceFunctionToyModel.C:197 runBalanceFunctionToyModel.C:198 runBalanceFunctionToyModel.C:199 runBalanceFunctionToyModel.C:200