Float_t multV0C=esdV0->GetMTotV0C();
multV0 = multV0A+multV0C;
}
-
+ if (fIsMC) multV0 = 0.85871 * multV0;
if (multV0 < fMultMin) return kFALSE;
if (multV0 > fMultMax) return kFALSE;
// cout << "ok" << endl;
ClassImp(AliAnalysisMultPbTrackHistoManager)
-const char * AliAnalysisMultPbTrackHistoManager::kStatStepNames[] = { "All Events", "After centrality selection", "After physics Selection", "After ZDC cut", "With Vertex" };
+const char * AliAnalysisMultPbTrackHistoManager::kStatStepNames[] = { "All Events", "After centrality selection", "After physics Selection", "With Vertex", "After ZDC cut" };
const char * AliAnalysisMultPbTrackHistoManager::kHistoPtEtaVzNames[] = { "hGenPtEtaVz", "hRecPtEtaVz", "hRecPtEtaVzPrim",
"hRecPtEtaVzSecWeak", "hRecPtEtaVzSecMaterial", "hRecPtEtaVzFake"};
const char * AliAnalysisMultPbTrackHistoManager::kHistoDCANames[] = { "hGenDCA", "hRecDCA", "hRecDCAPrim", "hRecDCASecWeak","hRecDCASecMaterial", "hRecDCAFake"};
AliInfo(Form("Booking histo %s",name.Data()));
h = new TH2D (name.Data(), Form("V0 vs Ntracks (%s)",kHistoPrefix[id]), 300,0,3000, 300, 0, 20000);
-
+ h->SetXTitle("N_{Tracks}");
+ h->SetYTitle("V0 Amplitude");
TH1::AddDirectory(oldStatus);
fList->Add(h);
fTrackCutsNoDCA->SetMaxDCAToVertexZPtDep();
fTriggerAnalysis = new AliTriggerAnalysis();
-
+ fTriggerAnalysis->SetAnalyzeMC(fIsMC);
}
fHistoManager->GetHistoStats()->Fill(AliAnalysisMultPbTrackHistoManager::kStatVtx);
// ZDC cut, only ZNs
- Bool_t zdcA = fTriggerAnalysis->ZDCTDCTrigger(fESD, AliTriggerAnalysis::kASide, kTRUE, kFALSE) ;
- Bool_t zdcC = fTriggerAnalysis->ZDCTDCTrigger(fESD, AliTriggerAnalysis::kCSide, kTRUE, kFALSE) ;
+ Bool_t zdcA = fTriggerAnalysis->ZDCTDCTrigger(fESD, AliTriggerAnalysis::kASide, kTRUE, kFALSE) ;
+ Bool_t zdcC = fTriggerAnalysis->ZDCTDCTrigger(fESD, AliTriggerAnalysis::kCSide, kTRUE, kFALSE) ;
- if (!(zdcA && zdcC)) return;
+ fIsMC = kTRUE;// FIXME
+ if (!(zdcA && zdcC) && (!fIsMC)) return;
fHistoManager->GetHistoStats()->Fill(AliAnalysisMultPbTrackHistoManager::kStatZDCCut);
GetHistoTracks("V0AND", "V0A & V0C")->Fill(ntracks);
GetHistoV0M ("V0AND", "V0A & V0C")->Fill(multV0);
}
+ if((c0v0A && !c0v0C) || (!c0v0A && c0v0C)) {
+ GetHistoSPD1 ("V0ONLYONE", "(V0A & !V0C) || (!V0A & V0C)")->Fill(outerLayerSPD);
+ GetHistoTracks("V0ONLYONE", "(V0A & !V0C) || (!V0A & V0C)")->Fill(ntracks);
+ GetHistoV0M ("V0ONLYONE", "(V0A & !V0C) || (!V0A & V0C)")->Fill(multV0);
+ }
if(zdcA && zdcC) {
GetHistoSPD1 ("ZDCAND", "ZDCA & ZDCC")->Fill(outerLayerSPD);
GetHistoTracks("ZDCAND", "ZDCA & ZDCC")->Fill(ntracks);
Float_t zmax = 10;
Float_t etaMin = -0.5;
Float_t etaMax = 0.5;
+Int_t gCentralityBin = -1;
#define CORRECT_2D
void correct(TString dataFolder = "./output/LHC10g2d_130844_V0M_bin_10/", TString correctionFolder = "./output/LHC10g2a_130844_V0M_bin_10/",
- Float_t zminl=-10, Float_t zmaxl=10, Float_t etaMinl = -0.5, Float_t etaMaxl=0.5, Float_t npart=381.3, Float_t scaleWeakByHand = -1) {
+ Float_t zminl=-10, Float_t zmaxl=10, Float_t etaMinl = -0.5, Float_t etaMaxl=0.5, Float_t npart=381.3, Float_t scaleWeakByHand = -1, Int_t centrBin = -1) {
- // Set vertex
+ // Set globals
zmin = zminl;
zmax = zmaxl;
etaMin = etaMinl;
etaMax = etaMaxl;
+ gCentralityBin = centrBin;
// Load stuff and set some styles
LoadLibs();
TCanvas * c1 = new TCanvas("cDCAFit", "Fit to the DCA distributions");
- c1->Divide(4,2);
+ // c1->Divide(4,2);
c1->SetLogy();
// Draw all
// hDataDCA->Draw();
// Set the components which are used in HistoSum, the static
// function for GetFunctionHistoSum
// Project onti DCA axis
- const Int_t ptBinsFit[] = {3,5,7,9,11,15,19,23,31,-1};
+ // const Int_t ptBinsFit[] = {3,5,7,9,11,15,19,23,31,-1};
+ const Int_t ptBinsFit[] = {3,20,-1};
Int_t ibinPt = -1;
while(ptBinsFit[(++ibinPt)+1]!=-1){
c1->cd(ibinPt+1);
void LoadData(TString dataFolder, TString correctionFolder){
+ TString file = "/multPbPbtracks.root";
+ if (gCentralityBin != -1 ) file.ReplaceAll(".root", Form("_%2.2d.root", gCentralityBin));
// Get histo manager for data and MC + stat histos
- TFile * fData = new TFile(dataFolder+"/multPbPbtracks.root");
- TFile * fCorr = new TFile(correctionFolder+"/multPbPbtracks.root");
+ TFile * fData = new TFile(dataFolder+file);
+ TFile * fCorr = new TFile(correctionFolder+file);
TFile * fStatData = new TFile(dataFolder+"/event_stat.root");
TFile * fStatCorr = new TFile(correctionFolder+"/event_stat.root");
// Create my own centrality selector
AliAnalysisMultPbCentralitySelector * centrSelector = new AliAnalysisMultPbCentralitySelector();
+ centrSelector->SetIsMC(isMC);
centrSelector->SetCentrTaskFiles(file1,file2); // for bookkeping only
centrSelector->SetCentralityBin(centrBin);
if (!useSingleBin) centrSelector->SetCentralityBin(0); // FIXME: ok?
const Float_t maxCentr[] = {79,247,577,1185,2155,3565,5527,8203,12167,15073,21000};
AliAnalysisTaskMultPbTracks ** tasks = AddTaskMultPbPbTracksAllCentrality("multPbPbtracks.root", cuts, centrSelector, ncentr,minCentr,maxCentr);
for(Int_t icentr = 0; icentr < ncentr; icentr++){
- cout << "1 " << tasks[icentr] << endl;
tasks[icentr]->Print();
tasks[icentr]->SetIsMC(useMCKinematics);
- cout << "2" << endl;
tasks[icentr]->SetOfflineTrigger(AliVEvent::kMB);
- cout << "3" << endl;
if(optionStr.Contains("TPC")) tasks[icentr]->SetTPCOnly();
- cout << "4" << endl;
if(useMCKinematics) tasks[icentr]->GetHistoManager()->SetSuffix("MC");
- cout << "5" << endl;
if(customSuffix!=""){
cout << "Setting custom suffix: " << customSuffix+long(icentr) << tasks[icentr] << endl;
tasks[icentr]->GetHistoManager()->SetSuffix(customSuffix+long(icentr));
- cout << "ok" << endl;
}
}
}
option="SAVE"
workers=26
analysismode=9; #SPD + field on
-centrBin=0
+centrBin=-1
centrEstimator="V0M"
runTriggerStudy=no
customSuffix=""
-a <etamin,etamax> Change eta range [default = $etaMin,$etaMax]
-p <npart> Number of participants, used only for dNdeta/npart [default=$npart]
-k <weakFrac> Scale ration secondaries from strangeness/all rec by this factor [default=$weakFactor]
+ -b <bin> Set centrality bin to be corrected. Only valid if you processed multiple
+ bins at one (it changes the suffix of the multPbPbtracks.root file). It it's -1,
+ a file without suffix is searched for. This options applyies both to the data and to the
+ MC file. [default=$centrBin]
ENDOFGUIDE
}
if [ "$correct" = "yes" ]
then
- root $ropt correct.C+\(\"$dataDir\",\"$mcDir\",$vzMin,$vzMax,$etaMin,$etaMax,$npart,$weakFactor\);
+ root $ropt correct.C+\(\"$dataDir\",\"$mcDir\",$vzMin,$vzMax,$etaMin,$etaMax,$npart,$weakFactor,$centrBin\);
fi
cout << "Init in CAF mode" << endl;
gEnv->SetValue("XSec.GSI.DelegProxy", "2");
- TProof::Open("alice-caf.cern.ch", workers>0 ? Form("workers=%d",workers) : "");
- // TProof::Open("skaf.saske.sk", workers>0 ? Form("workers=%d",workers) : "");
+ TProof * p = TProof::Open("alice-caf.cern.ch", workers>0 ? Form("workers=%d",workers) : "");
+ p->Exec("TObject *o = gEnv->GetTable()->FindObject(\"Proof.UseMergers\"); gEnv->GetTable()->Remove(o);", kTRUE);
+ //TProof::Open("skaf.saske.sk", workers>0 ? Form("workers=%d",workers) : "");
// Enable the needed package
gProof->UploadPackage("$ALICE_ROOT/STEERBase");