void AliAnalysisTaskProtons::CreateOutputObjects() {
// Create output objects
// Called once
- char *gCutName[4] = {"Total","Triggered","Vertex","Analyzed"};
+ char *gCutName[5] = {"Total","Triggered","Offline trigger",
+ "Vertex","Analyzed"};
fHistEventStats = new TH1F("fHistEventStats",
"Event statistics;;N_{events}",
- 4,0.5,4.5);
- for(Int_t i = 1; i <= 4; i++)
+ 5,0.5,5.5);
+ for(Int_t i = 1; i <= 5; i++)
fHistEventStats->GetXaxis()->SetBinLabel(i,gCutName[i-1]);
fListAnalysis = new TList();
}
fHistEventStats->Fill(1);
+ //online trigger
if(dynamic_cast<AliProtonAnalysisBase*>(fProtonAnalysis->GetProtonAnalysisBaseObject())->IsEventTriggered(fESD,dynamic_cast<AliProtonAnalysisBase*>(fProtonAnalysis->GetProtonAnalysisBaseObject())->GetTriggerMode())) {
fHistEventStats->Fill(2);
AliDebug(1,Form("Fired trigger class: %s",fESD->GetFiredTriggerClasses().Data()));
- const AliESDVertex *vertex = dynamic_cast<AliProtonAnalysisBase*>(fProtonAnalysis->GetProtonAnalysisBaseObject())->GetVertex(fESD,dynamic_cast<AliProtonAnalysisBase*>(fProtonAnalysis->GetProtonAnalysisBaseObject())->GetAnalysisMode(),dynamic_cast<AliProtonAnalysisBase*>(fProtonAnalysis->GetProtonAnalysisBaseObject())->GetVxMax(),dynamic_cast<AliProtonAnalysisBase*>(fProtonAnalysis->GetProtonAnalysisBaseObject())->GetVyMax(),dynamic_cast<AliProtonAnalysisBase*>(fProtonAnalysis->GetProtonAnalysisBaseObject())->GetVzMax());
- fHistEventStats->Fill(3);
- if(vertex) {
- AliDebug(1,Form("Proton ESD analysis task: There are %d tracks in this event",fESD->GetNumberOfTracks()));
- //Printf("Proton ESD analysis task: There are %d tracks in this event", fESD->GetNumberOfTracks());
- fProtonAnalysis->Analyze(fESD,vertex);
+ //offline trigger
+ if(dynamic_cast<AliProtonAnalysisBase*>(fProtonAnalysis->GetProtonAnalysisBaseObject())->IsOfflineTriggerUsed()) {
+ AliPhysicsSelection *gPhysicselection = dynamic_cast<AliPhysicsSelection *>(dynamic_cast<AliProtonAnalysisBase*>(fProtonAnalysis->GetProtonAnalysisBaseObject())->GetPhysicsSelectionObject());
+ if(gPhysicselection->IsCollisionCandidate(fESD)) {
+ fHistEventStats->Fill(3);
+ AliDebug(1,Form("Fired trigger class: %s",fESD->GetFiredTriggerClasses().Data()));
+ //Reconstructed vertex
+ const AliESDVertex *vertex = dynamic_cast<AliProtonAnalysisBase*>(fProtonAnalysis->GetProtonAnalysisBaseObject())->GetVertex(fESD,dynamic_cast<AliProtonAnalysisBase*>(fProtonAnalysis->GetProtonAnalysisBaseObject())->GetAnalysisMode(),dynamic_cast<AliProtonAnalysisBase*>(fProtonAnalysis->GetProtonAnalysisBaseObject())->GetVxMax(),dynamic_cast<AliProtonAnalysisBase*>(fProtonAnalysis->GetProtonAnalysisBaseObject())->GetVyMax(),dynamic_cast<AliProtonAnalysisBase*>(fProtonAnalysis->GetProtonAnalysisBaseObject())->GetVzMax());
+ fHistEventStats->Fill(4);
+ if(vertex) {
+ AliDebug(1,Form("Proton ESD analysis task: There are %d tracks in this event",fESD->GetNumberOfTracks()));
+ fProtonAnalysis->Analyze(fESD,vertex);
+ fHistEventStats->Fill(5);
+ }//reconstructed vertex
+ }//offline trigger
+ }//usage of the offline trigger
+ else {
+ //Reconstructed vertex
+ const AliESDVertex *vertex = dynamic_cast<AliProtonAnalysisBase*>(fProtonAnalysis->GetProtonAnalysisBaseObject())->GetVertex(fESD,dynamic_cast<AliProtonAnalysisBase*>(fProtonAnalysis->GetProtonAnalysisBaseObject())->GetAnalysisMode(),dynamic_cast<AliProtonAnalysisBase*>(fProtonAnalysis->GetProtonAnalysisBaseObject())->GetVxMax(),dynamic_cast<AliProtonAnalysisBase*>(fProtonAnalysis->GetProtonAnalysisBaseObject())->GetVyMax(),dynamic_cast<AliProtonAnalysisBase*>(fProtonAnalysis->GetProtonAnalysisBaseObject())->GetVzMax());
fHistEventStats->Fill(4);
- }//reconstructed vertex
- }//triggered event
+ if(vertex) {
+ AliDebug(1,Form("Proton ESD analysis task: There are %d tracks in this event",fESD->GetNumberOfTracks()));
+ fProtonAnalysis->Analyze(fESD,vertex);
+ fHistEventStats->Fill(5);
+ }//reconstructed vertex
+ }//else
+ }//triggered event - online
}//ESD analysis
else if(gAnalysisLevel == "AOD") {
fNBinsY(0), fMinY(0), fMaxY(0),
fNBinsPt(0), fMinPt(0), fMaxPt(0),
fProtonContainer(0), fAntiProtonContainer(0),
- fHistEvents(0), fHistYPtProtons(0), fHistYPtAntiProtons(0), fHistEventStats(0),
+ fHistEvents(0), fHistYPtProtons(0), fHistYPtAntiProtons(0),
+ fHistEventStats(0),
fEffGridListProtons(0), fCorrectionListProtons2D(0),
fEfficiencyListProtons1D(0), fCorrectionListProtons1D(0),
fEffGridListAntiProtons(0), fCorrectionListAntiProtons2D(0),
fInitQAFlag(kFALSE) {
//Default constructor
if(!fInitQAFlag) InitQA();
- fHistEvents = new TH1I("fHistEvents","Analyzed events",1,0,1);
+
+ fHistEvents = new TH1I("fHistEvents","Analyzed events",2,0.5,2.5);
+ fHistEvents->GetXaxis()->SetBinLabel(1,"Analyzed events");
+ fHistEvents->GetXaxis()->SetBinLabel(2,"Events with (anti)protons");
fHistYPtProtons = new TH2D("fHistYPtProtons","Protons",
fNBinsY,fMinY,fMaxY,
fInitQAFlag(kFALSE) {
//Default constructor
if(!fInitQAFlag) InitQA();
- fHistEvents = new TH1I("fHistEvents","Analyzed events",1,0,1);
+
+ fHistEvents = new TH1I("fHistEvents","Analyzed events",2,0.5,2.5);
+ fHistEvents->GetXaxis()->SetBinLabel(1,"Analyzed events");
+ fHistEvents->GetXaxis()->SetBinLabel(2,"Events with (anti)protons");
fHistYPtProtons = new TH2D("fHistYPtProtons","Protons",
fNBinsY,gY,fNBinsPt,gPt);
fMinPt = fLowPt;
fMaxPt = fHighPt;
- fHistEvents = new TH1I("fHistEvents","Analyzed events",1,0,1);
+ fHistEvents = new TH1I("fHistEvents","Analyzed events",2,0.5,2.5);
+ fHistEvents->GetXaxis()->SetBinLabel(1,"Analyzed events");
+ fHistEvents->GetXaxis()->SetBinLabel(2,"Events with (anti)protons");
fHistYPtProtons = new TH2D("fHistYPtProtons","Protons",
fNBinsY,fMinY,fMaxY,
fMinPt = gPt[0];
fMaxPt = gPt[nbinsPt];
- fHistEvents = new TH1I("fHistEvents","Analyzed events",1,0,1);
+ fHistEvents = new TH1I("fHistEvents","Analyzed events",2,0.5,2.5);
+ fHistEvents->GetXaxis()->SetBinLabel(1,"Analyzed events");
+ fHistEvents->GetXaxis()->SetBinLabel(2,"Events with (anti)protons");
fHistYPtProtons = new TH2D("fHistYPtProtons","Protons",
fNBinsY,gY,fNBinsPt,gPt);
//Get the y histogram for protons
Int_t nAnalyzedEvents = GetNumberOfAnalyzedEvents();
- TH1D *fYProtons = (TH1D *)fHistYPtProtons->ProjectionX("fYProtons",0,fHistYPtProtons->GetYaxis()->GetNbins(),"");
- //TH1D *fYProtons = fProtonContainer->ShowProjection(0,0); //variable-step
+ //TH1D *fYProtons = (TH1D *)fHistYPtProtons->ProjectionX("fYProtons",0,fHistYPtProtons->GetYaxis()->GetNbins(),"");
+ TH1D *fYProtons = fProtonContainer->ShowProjection(0,2); //variable-step
fYProtons->SetStats(kFALSE);
fYProtons->GetYaxis()->SetTitle("(1/N_{events})(dN/dy)");
//Get the y histogram for antiprotons
Int_t nAnalyzedEvents = GetNumberOfAnalyzedEvents();
- TH1D *fYAntiProtons = (TH1D *)fHistYPtAntiProtons->ProjectionX("fYAntiProtons",0,fHistYPtAntiProtons->GetYaxis()->GetNbins(),"");
- //TH1D *fYAntiProtons = fAntiProtonContainer->ShowProjection(0,0);//variable-step
+ //TH1D *fYAntiProtons = (TH1D *)fHistYPtAntiProtons->ProjectionX("fYAntiProtons",0,fHistYPtAntiProtons->GetYaxis()->GetNbins(),"");
+ TH1D *fYAntiProtons = fAntiProtonContainer->ShowProjection(0,2);//variable-step
fYAntiProtons->SetStats(kFALSE);
fYAntiProtons->GetYaxis()->SetTitle("(1/N_{events})(dN/dy)");
//Get the Pt histogram for protons
Int_t nAnalyzedEvents = GetNumberOfAnalyzedEvents();
- TH1D *fPtProtons = (TH1D *)fHistYPtProtons->ProjectionY("fPtProtons",0,fHistYPtProtons->GetXaxis()->GetNbins(),"");
- //TH1D *fPtProtons = fProtonContainer->ShowProjection(1,0); //variable-step
+ //TH1D *fPtProtons = (TH1D *)fHistYPtProtons->ProjectionY("fPtProtons",0,fHistYPtProtons->GetXaxis()->GetNbins(),"");
+ TH1D *fPtProtons = fProtonContainer->ShowProjection(1,2); //variable-step
fPtProtons->SetStats(kFALSE);
fPtProtons->GetYaxis()->SetTitle("(1/N_{events})(dN/dP_{T})");
//Get the Pt histogram for antiprotons
Int_t nAnalyzedEvents = GetNumberOfAnalyzedEvents();
- TH1D *fPtAntiProtons = (TH1D *)fHistYPtAntiProtons->ProjectionY("fPtAntiProtons",0,fHistYPtProtons->GetXaxis()->GetNbins(),"");
- //TH1D *fPtAntiProtons = fAntiProtonContainer->ShowProjection(1,0); //variable-step
+ //TH1D *fPtAntiProtons = (TH1D *)fHistYPtAntiProtons->ProjectionY("fPtAntiProtons",0,fHistYPtProtons->GetXaxis()->GetNbins(),"");
+ TH1D *fPtAntiProtons = fAntiProtonContainer->ShowProjection(1,2); //variable-step
fPtAntiProtons->SetStats(kFALSE);
fPtAntiProtons->GetYaxis()->SetTitle("(1/N_{events})(dN/dP_{T})");
Int_t nIdentifiedProtons = 0, nIdentifiedAntiProtons = 0;
Int_t nSurvivedProtons = 0, nSurvivedAntiProtons = 0;
- fHistEvents->Fill(0); //number of analyzed events
+ fHistEvents->Fill(1); //number of analyzed events
Double_t containerInput[2] ;
Double_t gPt = 0.0, gP = 0.0;
nTracks = esd->GetNumberOfTracks();
}//combined tracking
}//track loop
+ if((nIdentifiedProtons > 0)||(nIdentifiedAntiProtons > 0))
+ fHistEvents->Fill(2); //number of analyzed events with at least one (anti)proton
+
if(fProtonAnalysisBase->GetDebugMode())
Printf("Initial number of tracks: %d | Identified (anti)protons: %d - %d | Survived (anti)protons: %d - %d",nTracks,nIdentifiedProtons,nIdentifiedAntiProtons,nSurvivedProtons,nSurvivedAntiProtons);
}
//____________________________________________________________________//
void AliProtonAnalysis::Analyze(AliAODEvent* const fAOD) {
//Main analysis part - AOD
- fHistEvents->Fill(0); //number of analyzed events
+ fHistEvents->Fill(1); //number of analyzed events
Int_t nTracks = fAOD->GetNumberOfTracks();
for(Int_t iTracks = 0; iTracks < nTracks; iTracks++) {
AliAODTrack* track = fAOD->GetTrack(iTracks);
void AliProtonAnalysis::Analyze(AliStack* const stack,
Bool_t iInclusive) {
//Main analysis part - MC
- fHistEvents->Fill(0); //number of analyzed events
+ fHistEvents->Fill(1); //number of analyzed events
Int_t nParticles = 0;
//inclusive protons -
class TCanvas;
class TList;
+#include "AliPhysicsSelection.h"
#include "AliPID.h"
class AliESDEvent;
class AliESDtrack;
Bool_t IsEventTriggered(const AliESDEvent *esd,
TriggerMode trigger = kMB2);
+ void OfflineTriggerInit(UInt_t runNumber) {
+ kUseOfflineTrigger = kTRUE;
+ fPhysicsSelection = new AliPhysicsSelection();
+ fPhysicsSelection->Initialize(runNumber);
+ }
+ Bool_t IsOfflineTriggerUsed() {return kUseOfflineTrigger;}
+ AliPhysicsSelection *GetPhysicsSelectionObject() {return fPhysicsSelection;}
Bool_t IsAccepted(AliESDEvent *esd,
const AliESDVertex *vertex,
AliESDtrack *track);
TString fProtonAnalysisLevel;//"ESD", "AOD" or "MC"
Bool_t fAnalysisMC; //kTRUE if MC analysis while reading the ESDs
TriggerMode fTriggerMode; //Trigger mode
+ Bool_t kUseOfflineTrigger; //use the offline trigger or not
+ AliPhysicsSelection *fPhysicsSelection; //Trigger selection: offline
AnalysisMode fProtonAnalysisMode; //Analysis mode: TPC-Hybrid-Global
PIDMode fProtonPIDMode; //PID mode: Bayesian-dE/dx ratio-Nsigma areas
Bool_t fAnalysisEtaMode; //run the analysis in eta or y
AliProtonAnalysis *GetProtonAnalysisObject(const char* analysisLevel = "ESD",
Bool_t kAnalyzeMC = kTRUE,
const char* esdAnalysisType = "Hybrid",
- const char* pidMode = "Bayesian") {
+ const char* pidMode = "Bayesian",
+ UInt_t runNumberForOfflineTrigger = -1) {
gROOT->LoadMacro("$ALICE_ROOT/PWG2/SPECTRA/macros/configProtonAnalysisBaseObject.C");
//Function to setup the AliProtonAnalysis object and return it
- AliProtonAnalysisBase *baseAnalysis = GetProtonAnalysisBaseObject(analysisLevel,kAnalyzeMC,esdAnalysisType,pidMode);
+ AliProtonAnalysisBase *baseAnalysis = GetProtonAnalysisBaseObject(analysisLevel,kAnalyzeMC,esdAnalysisType,pidMode,runNumberForOfflineTrigger);
AliProtonAnalysis *analysis = new AliProtonAnalysis();
analysis->SetBaseAnalysis(baseAnalysis);
AliProtonAnalysisBase *GetProtonAnalysisBaseObject(const char* analysisLevel = "ESD",\r
Bool_t kAnalyzeMC = kTRUE,\r
const char* esdAnalysisType = "Hybrid",\r
- const char* pidMode = "Bayesian") {\r
+ const char* pidMode = "Bayesian",\r
+ UInt_t runNumberForOfflineTrigger = -1) {\r
\r
//Function to setup the AliProtonAnalysisBase object and return it\r
AliProtonAnalysisBase *baseAnalysis = new AliProtonAnalysisBase();\r
if(analysisLevel == "ESD") {\r
if(kAnalyzeMC)\r
baseAnalysis->SetTriggerMode(AliProtonAnalysisBase::kMB2);\r
+ //use the offline trigger\r
+ if(runNumberForOfflineTrigger != -1)\r
+ baseAnalysis->OfflineTriggerInit(runNumberForOfflineTrigger);\r
baseAnalysis->SetMinTPCClusters(110);\r
baseAnalysis->SetMaxChi2PerTPCCluster(2.2);\r
baseAnalysis->SetMaxCov11(0.5);\r
-void drawProtonResults(const char* esdFileName) {
+void drawProtonResults(const char* analysisOutput = 0x0,
+ Bool_t kShowResults = kTRUE,
+ Bool_t kShowQAPlots = kFALSE) {
//Macro to visualize the proton ratio results
//It also visualizes the QA plots
gStyle->SetPalette(1,0);
- drawResults(esdFileName);
- drawQAPlots(esdFileName);
+ if(!analysisOutput)
+ Error("drawProtonResults::The analysis output was not defined!!!");
+ if(kShowResults) drawResults(analysisOutput);
+ if(kShowQAPlots) drawQAPlots(analysisOutput);
}
//___________________________________________________//
-void drawResults(const char* esdFileName) {
+void drawResults(const char* analysisOutput) {
//Draws the main results from the ratio analysis
gSystem->Load("libANALYSIS.so");
gSystem->Load("libANALYSISalice.so");
gSystem->Load("libPWG2spectra.so");
//Open the input file and get the objects
- /*TFile *f = TFile::Open(esdFileName);
+ /*TFile *f = TFile::Open(analysisOutput);
TList *analysisList = dynamic_cast<TList *>(f->Get("outputList"));
TH2D *gHistYPtProtons = dynamic_cast<TH2D *>(analysisList->At(0));
TH2D *gHistYPtAntiProtons = dynamic_cast<TH2D *>(analysisList->At(1));
//Create the AliProtonAnalysis object
AliProtonAnalysis *analysis = new AliProtonAnalysis();
- analysis->ReadFromFile(esdFileName);
+ analysis->ReadFromFile(analysisOutput);
TH1F *gHistEventStats = dynamic_cast<TH1F *>(analysis->GetEventStatistics());
TH2D *gHistYPtProtons = dynamic_cast<TH2D *>(analysis->GetProtonYPtHistogram());
TH2D *gHistYPtAntiProtons = dynamic_cast<TH2D *>(analysis->GetAntiProtonYPtHistogram());
}
//___________________________________________________//
-void drawQAPlots(const char* esdFileName) {
+void drawQAPlots(const char* analysisOutput) {
//Draws the QA plots from the output of the analysis
//=========================================================//
//List of cuts
//=========================================================//
//QA plots
- TFile *f = TFile::Open(esdFileName);
+ TFile *f = TFile::Open(analysisOutput);
TList *listQA = dynamic_cast<TList *>(f->Get("outputQAList"));
TList *gListGlobalQA = dynamic_cast<TList *>(listQA->At(0));
void runProtonAnalysis(Bool_t kAnalyzeMC = kTRUE,
const char* esdAnalysisType = "Hybrid",
- const char* pidMode = "Bayesian") {
+ const char* pidMode = "Bayesian",
+ Int_t runNumberForOfflineTtrigger = -1) {
//Macro to run the proton analysis tested for local, proof & GRID.
- //Local: Takes four arguments, the analysis mode, the type of the ESD
- // analysis, the PID mode and the path where the tag and ESD or
- // AOD files reside.
- //Interactive: Takes four arguments, the analysis mode, the type of the ESD
- // analysis, the PID mode and the name of the collection of tag
+ //Local: Takes six arguments, the analysis mode, a boolean to define the ESD
+ // analysis of MC data, the type of the ESD analysis, the PID mode,
+ // the run number for the offline trigger in case of real data
+ // analysis and the path where the tag and ESD or AOD files reside.
+ //Interactive: Takes six arguments, the analysis mode, a boolean to define
+ // the ESD analysis of MC data, the type of the ESD analysis,
+ // the PID mode, the run number for the offline trigger in case
+ // of real data analysis and the name of the collection of tag
// files.
- //Batch: Takes four arguments, the analysis mode, the type of the ESD
- // analysis, the PID mode and the name of the collection file with
+ //Batch: Takes six arguments, the analysis mode, a boolean to define
+ // the ESD analysis of MC data, the type of the ESD analysis,
+ // the PID mode, the run number for the offline trigger in case
+ // of real data analysis and the name of the collection file with
// the event list for each file.
- //Proof: Takes five arguments, the analysis level, the analysis mode in
- // case of ESD, the PID mode, the number of events and the dataset
- // name and .
+ //Proof: Takes eight arguments, the analysis mode, a boolean to define
+ // the ESD analysis of MC data, the type of the ESD analysis,
+ // the PID mode, the run number for the offline trigger in case
+ // of real data analysis, the number of events to be analyzed,
+ // the event number from where we start the analysis and the dataset
+ //========================================================================
//Analysis mode can be: "MC", "ESD", "AOD"
//ESD analysis type can be one of the three: "TPC", "Hybrid", "Global"
//PID mode can be one of the four: "Bayesian" (standard Bayesian approach)
runLocal("ESD",
kAnalyzeMC,
esdAnalysisType,
- pidMode,
+ pidMode, runNumberForOfflineTtrigger,
"/home/pchrist/ALICE/Baryons/Data/104070");
- //runInteractive("ESD",kAnalyzeMC, esdAnalysisType,pidMode,"tag.xml");
- //runBatch("ESD",kAnalyzeMC, esdAnalysisType,pidMode,"wn.xml");
- //runProof("ESD",kAnalyzeMC, esdAnalysisType,pidMode,
+ //runInteractive("ESD", kAnalyzeMC, esdAnalysisType, pidMode, runNumberForOfflineTtrigger, "tag.xml");
+ //runBatch("ESD", kAnalyzeMC, esdAnalysisType, pidMode, runNumberForOfflineTtrigger, "wn.xml");
+ //runProof("ESD", kAnalyzeMC, esdAnalysisType, pidMode,
+ //runNumberForOfflineTtrigger,
//500000,0,"/COMMON/COMMON/LHC09d1_0.9TeV_0.5T#esdTree");
timer.Stop();
Bool_t kAnalyzeMC = kTRUE,
const char* analysisType = 0x0,
const char* pidMode = 0x0,
+ UInt_t runNumberForOfflineTtrigger = -1,
const char* path = "/home/pchrist/ALICE/Alien/Tutorial/November2007/Tags") {
TString smode = mode;
TString outputFilename = "Protons."; outputFilename += mode;
gROOT->LoadMacro("configProtonAnalysis.C");
AliProtonAnalysis *analysis = GetProtonAnalysisObject(mode,kAnalyzeMC,
analysisType,
- pidMode);
+ pidMode,
+ runNumberForOfflineTtrigger);
//____________________________________________//
// Make the analysis manager
AliAnalysisManager *mgr = new AliAnalysisManager("protonAnalysisManager");
Bool_t kAnalyzeMC = kTRUE,
const char* analysisType = 0x0,
const char* pidMode = 0x0,
+ UInt_t runNumberForOfflineTtrigger = -1,
const char* collectionName = "tag.xml") {
gSystem->Load("libProofPlayer.so");
gROOT->LoadMacro("configProtonAnalysis.C");
AliProtonAnalysis *analysis = GetProtonAnalysisObject(mode,kAnalyzeMC,
analysisType,
- pidMode);
+ pidMode,
+ runNumberForOfflineTtrigger);
//____________________________________________//
// Make the analysis manager
AliAnalysisManager *mgr = new AliAnalysisManager("protonAnalysisManager");
Bool_t kAnalyzeMC = kTRUE,
const char* analysisType = 0x0,
const char* pidMode = 0x0,
+ UInt_t runNumberForOfflineTtrigger = -1,
const char *collectionfile = "wn.xml") {
TString smode = mode;
TString outputFilename = "Protons."; outputFilename += mode;
gROOT->LoadMacro("configProtonAnalysis.C");
AliProtonAnalysis *analysis = GetProtonAnalysisObject(mode,kAnalyzeMC,
analysisType,
- pidMode);
+ pidMode,
+ runNumberForOfflineTtrigger);
//____________________________________________//
// Make the analysis manager
AliAnalysisManager *mgr = new AliAnalysisManager("protonAnalysisManager");
Bool_t kAnalyzeMC = kTRUE,
const char* analysisType = 0x0,
const char* pidMode = 0x0,
+ UInt_t runNumberForOfflineTtrigger = -1,
Int_t stats = 0, Int_t startingPoint = 0,
const char* dataset = 0x0) {
TString smode = mode;
gROOT->LoadMacro("configProtonAnalysis.C");
AliProtonAnalysis *analysis = GetProtonAnalysisObject(mode,kAnalyzeMC,
analysisType,
- pidMode);
+ pidMode,
+ runNumberForOfflineTtrigger);
//____________________________________________//
//____________________________________________//