void run(Char_t* data, Long64_t nev = -1, Long64_t offset = 0, Bool_t debug = kFALSE, Int_t runMode = 0, Bool_t isMC = 0,
Int_t centrBin = 0, const char * centrEstimator = "VOM", Int_t useOtherCentralityCut = 0, Int_t trackMin=0, Int_t trackMax=10000,
- const char* option = "",TString customSuffix = "", Int_t workers = -1)
+ const char* option = "",TString customSuffix = "", Int_t workers = -1, Bool_t useSingleBin=kTRUE)
{
// runMode:
//
// physics selection
gROOT->ProcessLine(".L $ALICE_ROOT/ANALYSIS/macros/AddTaskPhysicsSelection.C");
- physicsSelectionTask = AddTaskPhysicsSelection(isMC,0);//FIXME
- // FIXME!!
- // if(!isMC) {
- // AliPhysicsSelection * physSel = physicsSelectionTask->GetPhysicsSelection();
- // // physSel->AddCollisionTriggerClass("+CTRUE-B-NOPF-ALL");
- // physSel->AddCollisionTriggerClass("+CMBAC-B-NOPF-ALL");
- // physSel->AddCollisionTriggerClass("+CMBS1C-B-NOPF-ALL");
- // physSel->AddCollisionTriggerClass("+CMBS1A-B-NOPF-ALL");
- // physSel->AddBGTriggerClass("+CMBAC-C-NOPF-ALL");
- // physSel->AddBGTriggerClass("+CMBS1C-C-NOPF-ALL");
- // physSel->AddBGTriggerClass("+CMBS1A-C-NOPF-ALL");
- // physSel->AddBGTriggerClass("+CMBAC-A-NOPF-ALL");
- // physSel->AddBGTriggerClass("+CMBS1C-A-NOPF-ALL");
- // physSel->AddBGTriggerClass("+CMBS1A-A-NOPF-ALL");
- // physSel->AddBGTriggerClass("+CMBAC-E-NOPF-ALL");
- // physSel->AddBGTriggerClass("+CMBS1C-E-NOPF-ALL");
- // physSel->AddBGTriggerClass("+CMBS1A-E-NOPF-ALL");
- // // physSel->AddBGTriggerClass ("+C0SM1-E-NOPF-ALL");
- // }
+ physicsSelectionTask = AddTaskPhysicsSelection(isMC);
// Centrality
AliCentralitySelectionTask *taskCentr = new AliCentralitySelectionTask("CentralitySelection");
// const char * file1 = "$ALICE_ROOT/ANALYSIS/macros/AliCentralityBy1D_137161_GLAU.root";
// const char * file2 = "$ALICE_ROOT/ANALYSIS/macros/test_AliCentralityByFunction.root";
- taskCentr->SetPercentileFile (file1);
- taskCentr->SetPercentileFile2(file2);
- //FIXME
+ // taskCentr->SetPercentileFile (file1);
+ // taskCentr->SetPercentileFile2(file2);
+ //FIXME: include back centrality estimator
// mgr->AddTask(taskCentr);
// mgr->ConnectInput (taskCentr,0, mgr->GetCommonInputContainer());
// 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?
centrSelector->SetCentralityEstimator(centrEstimator);
- // FIXME!!!
- //centrSelector->SetIsMC(isMC,1500,2300);
- cout << "SETTING" << endl;
if(useOtherCentralityCut == 1){
- cout << "SETTING MULT" << endl;
+ cout << "Setting centrality by MULT" << endl;
centrSelector->SetUseMultRange();
centrSelector->SetMultRange(trackMin,trackMax);
}
if(useOtherCentralityCut == 2){
- cout << "SETTING V0" << endl;
+ cout << "Setting centrality by V0" << endl;
centrSelector->SetUseV0Range();
centrSelector->SetMultRange(trackMin,trackMax);
}
+ if(useOtherCentralityCut == 3){
+ cout << "Setting centrality by SPD outer" << endl;
+ centrSelector->SetUseSPDOuterRange();
+ centrSelector->SetMultRange(trackMin,trackMax);
+ }
// Parse option strings
TString optionStr(option);
Bool_t doSave = kFALSE;
TString optionStr(option);
if (optionStr.Contains("SAVE"))
- {
- optionStr = optionStr(0,optionStr.Index("SAVE")) + optionStr(optionStr.Index("SAVE")+4, optionStr.Length());
- doSave = kTRUE;
- }
+ {
+ optionStr = optionStr(0,optionStr.Index("SAVE")) + optionStr(optionStr.Index("SAVE")+4, optionStr.Length());
+ doSave = kTRUE;
+ }
- AliESDtrackCuts * cuts = AliESDtrackCuts::GetStandardITSTPCTrackCuts2010(kTRUE);
+ AliESDtrackCuts * cuts = AliESDtrackCuts::GetStandardITSTPCTrackCuts2010(kFALSE);
TString pathsuffix = "";
- // cuts->SetPtRange(0.15,0.2);// FIXME pt cut
- // const char * pathsuffix = "_pt_015_020_nofakes";
+
+ if(!useSingleBin) pathsuffix += "_AllCentr";
+
+ if (optionStr.Contains("DCA")) {
+ delete cuts;
+ // cuts = AliESDtrackCuts::GetStandardITSPureSATrackCuts2009();
+ cout << ">>>> USING DCA cut" << endl;
+ cuts = AliESDtrackCuts::GetStandardITSTPCTrackCuts2010(kFALSE);
+ pathsuffix+="_DCAcut";
+ }
if (optionStr.Contains("ITSsa")) {
delete cuts;
cuts = AliESDtrackCuts::GetStandardITSPureSATrackCuts2009();
cout << ">>>> USING ITS sa tracks" << endl;
- pathsuffix="ITSsa";
+ pathsuffix+="_ITSsa";
}
if (optionStr.Contains("TPC")) {
delete cuts;
cuts = AliESDtrackCuts::GetStandardTPCOnlyTrackCuts();
cout << ">>>> USING TPC only tracks" << endl;
- pathsuffix="TPC";
+ pathsuffix+="_TPC";
}
Bool_t useMCKinematics = isMC;
if (optionStr.Contains("NOMCKIN")) {
cout << ">>>> Ignoring MC kinematics" << endl;
useMCKinematics=kFALSE;
+ pathsuffix+="_NOMCKIN";
}
+ AliLog::SetClassDebugLevel("AliESDtrackCuts", AliLog::kDebug);// FIXME
+ cuts->DefineHistograms();
// load my task
- gROOT->ProcessLine(".L $ALICE_ROOT/PWG0/multPbPb/AddTaskMultPbPbTracks.C");
- AliAnalysisTaskMultPbTracks * task = AddTaskMultPbPbTracks("multPbPbtracks.root", cuts, centrSelector); // kTRUE enables DCA cut
- task->SetIsMC(useMCKinematics);
- task->SetOfflineTrigger(AliVEvent::kMB);
- // if (isMC) {
- // task->SetOfflineTrigger(AliVEvent::kMB);
- // } else {
- // task->SetOfflineTrigger(AliVEvent::kUserDefined);
- // }
- if(useMCKinematics) task->GetHistoManager()->SetSuffix("MC");
- if(customSuffix!=""){
- cout << "Setting custom suffix: " << customSuffix << endl;
- task->GetHistoManager()->SetSuffix(customSuffix);
+ if (useSingleBin) {
+ gROOT->ProcessLine(".L $ALICE_ROOT/PWG0/multPbPb/AddTaskMultPbPbTracks.C");
+ AliAnalysisTaskMultPbTracks * task = AddTaskMultPbPbTracks("multPbPbtracks.root", cuts, centrSelector);
+ task->SetIsMC(useMCKinematics);
+ task->SetOfflineTrigger(AliVEvent::kMB);
+ if(optionStr.Contains("TPC")) task->SetTPCOnly();
+ if(useMCKinematics) task->GetHistoManager()->SetSuffix("MC");
+ if(customSuffix!=""){
+ cout << "Setting custom suffix: " << customSuffix << endl;
+ task->GetHistoManager()->SetSuffix(customSuffix);
+ }
+ } else {
+ gROOT->ProcessLine(".L $ALICE_ROOT/PWG0/multPbPb/AddTaskMultPbPbTracksAllCentrality.C");
+ centrSelector->SetUseV0Range(kTRUE);
+ Int_t ncentr = 11;
+
+ const Float_t minCentr[] = {0 ,79 ,239,559 ,1165,2135,3555,5525,8213 ,12191,15079};
+ const Float_t maxCentr[] = {79,239,559,1165,2135,3555,5525,8213,12191,15079,21000};
+ AliAnalysisTaskMultPbTracks ** tasks = AddTaskMultPbPbTracksAllCentrality("multPbPbtracks.root", cuts, centrSelector, ncentr,minCentr,maxCentr);
+ for(Int_t icentr = 0; icentr < ncentr; icentr++){
+ tasks[icentr]->Print();
+ cout << "MC KINEMATICS:" << useMCKinematics << endl;
+
+ tasks[icentr]->SetIsMC(useMCKinematics);
+ tasks[icentr]->SetOfflineTrigger(AliVEvent::kMB);
+ if(optionStr.Contains("TPC")) tasks[icentr]->SetTPCOnly();
+ if(useMCKinematics) tasks[icentr]->GetHistoManager()->SetSuffix("MC");
+ if(customSuffix!=""){
+ cout << "Setting custom suffix: " << customSuffix+long(icentr) << endl;
+ tasks[icentr]->GetHistoManager()->SetSuffix(customSuffix+long(icentr));
+ }
+ }
}
- // task->SelectCollisionCandidates(AliVEvent::kUserDefined);
+ // Init and run the analy
if (!mgr->InitAnalysis()) return;
-
+
mgr->PrintStatus();
if (runMode == kMyRunModeLocal ) {
pathsuffix = pathsuffix + "_TrackRange_" + long(trackMin) + "_" + long(trackMax);
} else if(useOtherCentralityCut==2){
pathsuffix = pathsuffix + "_V0Range_" + long(trackMin) + "_" + long(trackMax);
+ } else if(useOtherCentralityCut==3){
+ pathsuffix = pathsuffix + "_SPDOutRange_" + long(trackMin) + "_" + long(trackMax);
}
pathsuffix += customSuffix;
if (doSave) MoveOutput(data, pathsuffix.Data());
+ // FIXME
+ TFile * f = new TFile("cuts.root", "recreate");
+ cuts->SaveHistograms();
+ f->Close();
}
TString fileName = "multPbPbtracks.root";
gSystem->mkdir(path, kTRUE);
gSystem->Rename(fileName, path + "/" + fileName);
+ for(Int_t ibin = 0; ibin < 20; ibin++){
+ TString fileBin = fileName;
+ fileBin.ReplaceAll(".root",Form("_%2.2d.root",ibin));
+ gSystem->Rename(fileBin, path + "/" + fileBin);
+ }
+
gSystem->Rename("event_stat.root", path + "/event_stat.root");
Printf(">>>>> Moved files to %s", path.Data());
}
if (runMode == kMyRunModeCAF)
- {
- 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) : "");
+ {
+ cout << "Init in CAF mode" << endl;
- // Enable the needed package
- gProof->UploadPackage("$ALICE_ROOT/STEERBase");
- gProof->EnablePackage("$ALICE_ROOT/STEERBase");
- gProof->UploadPackage("$ALICE_ROOT/ESD");
- gProof->EnablePackage("$ALICE_ROOT/ESD");
- gProof->UploadPackage("$ALICE_ROOT/AOD");
- gProof->EnablePackage("$ALICE_ROOT/AOD");
- gProof->UploadPackage("$ALICE_ROOT/ANALYSIS");
- gProof->EnablePackage("$ALICE_ROOT/ANALYSIS");
- gProof->UploadPackage("$ALICE_ROOT/ANALYSISalice");
- gProof->EnablePackage("$ALICE_ROOT/ANALYSISalice");
- gProof->UploadPackage("$ALICE_ROOT/PWG0base");
- gProof->EnablePackage("$ALICE_ROOT/PWG0base");
- gROOT->ProcessLine(gSystem->ExpandPathName(".include $ALICE_ROOT/PWG0/multPb"));
- gROOT->ProcessLine(gSystem->ExpandPathName(".include $ALICE_ROOT/PWG1/background"));
- }
+ //gEnv->SetValue("XSec.GSI.DelegProxy", "2");
+ TProof * p = TProof::Open("alice-caf.cern.ch", workers>0 ? Form("workers=%d",workers) : "");
+ // TProof * p = TProof::Open("skaf.saske.sk", workers>0 ? Form("workers=%d",workers) : "");
+ p->Exec("TObject *o = gEnv->GetTable()->FindObject(\"Proof.UseMergers\"); gEnv->GetTable()->Remove(o);", kTRUE);
+
+ // gProof->EnablePackage("VO_ALICE@AliRoot::v4-21-17b-AN");
+ // gSystem->Load("libCore.so");
+ // gSystem->Load("libTree.so");
+ // gSystem->Load("libGeom.so");
+ // gSystem->Load("libVMC.so");
+ // gSystem->Load("libPhysics.so");
+ // gSystem->Load("libSTEERBase");
+ // gSystem->Load("libESD");
+ // gSystem->Load("libAOD");
+ // gSystem->Load("libANALYSIS");
+ // gSystem->Load("libOADB");
+ // gSystem->Load("libANALYSISalice");
+
+ // Enable the needed package
+ gProof->UploadPackage("$ALICE_ROOT/obj/STEERBase");
+ gProof->EnablePackage("$ALICE_ROOT/obj/STEERBase");
+ gProof->UploadPackage("$ALICE_ROOT/obj/ESD");
+ gProof->EnablePackage("$ALICE_ROOT/obj/ESD");
+ gProof->UploadPackage("$ALICE_ROOT/obj/AOD");
+ gProof->EnablePackage("$ALICE_ROOT/obj/AOD");
+ gProof->UploadPackage("$ALICE_ROOT/obj/ANALYSIS");
+ gProof->EnablePackage("$ALICE_ROOT/obj/ANALYSIS");
+ gProof->UploadPackage("$ALICE_ROOT/obj/OADB");
+ gProof->EnablePackage("$ALICE_ROOT/obj/OADB");
+ gProof->UploadPackage("$ALICE_ROOT/obj/ANALYSISalice");
+ gProof->EnablePackage("$ALICE_ROOT/obj/ANALYSISalice");
+ gProof->UploadPackage("$ALICE_ROOT/obj/PWG0base");
+ gProof->EnablePackage("$ALICE_ROOT/obj/PWG0base");
+ gROOT->ProcessLine(gSystem->ExpandPathName(".include $ALICE_ROOT/PWG0/multPb"));
+ gROOT->ProcessLine(gSystem->ExpandPathName(".include $ALICE_ROOT/PWG1/background"));
+ }
else
- {
- cout << "Init in Local or Grid mode" << endl;
- gSystem->Load("libCore.so");
- gSystem->Load("libTree.so");
- gSystem->Load("libGeom.so");
- gSystem->Load("libVMC.so");
- gSystem->Load("libPhysics.so");
- gSystem->Load("libSTEERBase");
- gSystem->Load("libESD");
- gSystem->Load("libAOD");
- gSystem->Load("libANALYSIS");
- gSystem->Load("libANALYSISalice");
- // Use AliRoot includes to compile our task
- gROOT->ProcessLine(".include $ALICE_ROOT/include");
-
- // gSystem->Load("libVMC");
- // gSystem->Load("libTree");
- // gSystem->Load("libSTEERBase");
- // gSystem->Load("libESD");
- // gSystem->Load("libAOD");
- // gSystem->Load("libANALYSIS");
- // gSystem->Load("libANALYSISalice");
- // gSystem->Load("libPWG0base");
+ {
+ cout << "Init in Local or Grid mode" << endl;
+ gSystem->Load("libCore.so");
+ gSystem->Load("libTree.so");
+ gSystem->Load("libGeom.so");
+ gSystem->Load("libVMC.so");
+ gSystem->Load("libPhysics.so");
+ gSystem->Load("libSTEERBase");
+ gSystem->Load("libESD");
+ gSystem->Load("libAOD");
+ gSystem->Load("libANALYSIS");
+ gSystem->Load("libOADB");
+ gSystem->Load("libANALYSISalice");
+ // Use AliRoot includes to compile our task
+ gROOT->ProcessLine(".include $ALICE_ROOT/include");
+
+ // gSystem->Load("libVMC");
+ // gSystem->Load("libTree");
+ // gSystem->Load("libSTEERBase");
+ // gSystem->Load("libESD");
+ // gSystem->Load("libAOD");
+ // gSystem->Load("libANALYSIS");
+ // gSystem->Load("libANALYSISalice");
+ // gSystem->Load("libPWG0base");
- gROOT->ProcessLine(gSystem->ExpandPathName(".include $ALICE_ROOT/PWG0/multPb"));
- gROOT->ProcessLine(gSystem->ExpandPathName(".include $ALICE_ROOT/PWG1/background"));
- // gROOT->ProcessLine(gSystem->ExpandPathName(".include $ALICE_ROOT/PWG1/background/"));
- }
+ gROOT->ProcessLine(gSystem->ExpandPathName(".include $ALICE_ROOT/PWG0/multPb"));
+ gROOT->ProcessLine(gSystem->ExpandPathName(".include $ALICE_ROOT/PWG1/background"));
+ // gROOT->ProcessLine(gSystem->ExpandPathName(".include $ALICE_ROOT/PWG1/background/"));
+ }
// Load helper classes
TIterator * iter = listToLoad->MakeIterator();
TObjString * name = 0;