From da8c4c1c05b867ebf75fb369b7afb680e91f92dd Mon Sep 17 00:00:00 2001 From: pchrist Date: Mon, 12 Jan 2009 16:34:44 +0000 Subject: [PATCH] Minor changes in the macros/tasks --- PWG2/AliAnalysisTaskProtons.cxx | 10 +- PWG2/SPECTRA/AliProtonAnalysis.cxx | 6 +- PWG2/runProtonAnalysis.C | 244 ++++++++++++++++------------- 3 files changed, 145 insertions(+), 115 deletions(-) diff --git a/PWG2/AliAnalysisTaskProtons.cxx b/PWG2/AliAnalysisTaskProtons.cxx index de5fc253e1f..703f9af5c76 100644 --- a/PWG2/AliAnalysisTaskProtons.cxx +++ b/PWG2/AliAnalysisTaskProtons.cxx @@ -112,7 +112,7 @@ void AliAnalysisTaskProtons::CreateOutputObjects() { if(fProtonAnalysisMode == kTPC) { fProtonAnalysis->InitAnalysisHistograms(10, -0.5, 0.5, 16, 0.5, 0.9); fProtonAnalysis->UseTPCOnly(); - fProtonAnalysis->SetTPCpid(); + //fProtonAnalysis->SetTPCpid(); fProtonAnalysis->SetMinTPCClusters(100); fProtonAnalysis->SetMaxChi2PerTPCCluster(2.2); fProtonAnalysis->SetMaxCov11(0.5); @@ -149,7 +149,7 @@ void AliAnalysisTaskProtons::CreateOutputObjects() { } //Combined tracking else if(fProtonAnalysisMode == kGlobal) { - fProtonAnalysis->InitAnalysisHistograms(10, -0.5, 0.5, 16, 0.5, 0.9); + fProtonAnalysis->InitAnalysisHistograms(20, -1.0, 1.0, 48, 0.3, 1.5); fProtonAnalysis->SetMinTPCClusters(110); fProtonAnalysis->SetMaxChi2PerTPCCluster(2.2); fProtonAnalysis->SetMaxCov11(0.5); @@ -181,7 +181,9 @@ void AliAnalysisTaskProtons::CreateOutputObjects() { else fProtonAnalysis->SetPriorProbabilities(partFrac); }//ESD analysis - + else if(fAnalysisType == "MC") + fProtonAnalysis->InitAnalysisHistograms(10, -0.5, 0.5, 16, 0.5, 0.9); + fList = new TList(); fList->Add(fProtonAnalysis->GetProtonYPtHistogram()); fList->Add(fProtonAnalysis->GetAntiProtonYPtHistogram()); @@ -233,7 +235,7 @@ void AliAnalysisTaskProtons::Exec(Option_t *) { return; } Printf("Proton MC analysis task: There are %d primaries in this event", stack->GetNprimary()); - fProtonAnalysis->Analyze(stack); + fProtonAnalysis->Analyze(stack,kFALSE);//kTRUE in case of inclusive measurement }//MC analysis // Post output data. diff --git a/PWG2/SPECTRA/AliProtonAnalysis.cxx b/PWG2/SPECTRA/AliProtonAnalysis.cxx index 2b9a0419695..df2e19db5de 100644 --- a/PWG2/SPECTRA/AliProtonAnalysis.cxx +++ b/PWG2/SPECTRA/AliProtonAnalysis.cxx @@ -709,7 +709,8 @@ void AliProtonAnalysis::Analyze(AliAODEvent* fAOD) { } //____________________________________________________________________// -void AliProtonAnalysis::Analyze(AliStack* stack, Bool_t iInclusive) { +void AliProtonAnalysis::Analyze(AliStack* stack, + Bool_t iInclusive) { //Main analysis part - MC fHistEvents->Fill(0); //number of analyzed events @@ -722,6 +723,9 @@ void AliProtonAnalysis::Analyze(AliStack* stack, Bool_t iInclusive) { TParticle *particle = stack->Particle(i); if(!particle) continue; + //in case of inclusive protons reject the secondaries from hadronic inter. + if(particle->GetUniqueID() == 13) continue; + if(TMath::Abs(particle->Eta()) > 1.0) continue; if((particle->Pt() > fMaxPt)||(particle->Pt() < fMinPt)) continue; if((Rapidity(particle->Px(),particle->Py(),particle->Pz()) > fMaxY)||(Rapidity(particle->Px(),particle->Py(),particle->Pz()) < fMinY)) continue; diff --git a/PWG2/runProtonAnalysis.C b/PWG2/runProtonAnalysis.C index ab0c6eda8ca..4cd6646df91 100644 --- a/PWG2/runProtonAnalysis.C +++ b/PWG2/runProtonAnalysis.C @@ -1,71 +1,69 @@ -void runProtonAnalysis() { +void runProtonAnalysis(const char* esdAnalysisType = "TPC",) { + //Macro to run the proton analysis tested for local, proof & GRID. + //Local: Takes three arguments, the analysis mode, the type of the ESD + // analysis and the path where the tag and ESD or AOD files reside. + //Interactive: Takes three arguments, the analysis mode, the type of the ESD + // analysis and the name of the collection of tag files. + //Batch: Takes three arguments, the analysis mode, the type of the ESD + // analysis and the name of the collection file with the event list + // for each file. + //Proof: Takes four arguments, the analysis mode, the number of events, + // the dataset name and the analysis type in case of ESD. + + //Analysis mode can be: "MC", "ESD", "AOD" + //ESD analysis type can be one of the three: "TPC", "Hybrid", "Global" TStopwatch timer; timer.Start(); - //runLocal("ESD"); - //runInteractive("ESD"); - //runBatch("ESD"); - - runProof("ESD",200000,"/COMMON/COMMON/LHC08c11_10TeV_0.5T"); //use data sets - //runProof("ESD",200); //use ascii files + //runLocal("ESD",esdAnalysisType,"/home/pchrist/ALICE/Alien/Tutorial/November2007/Tags"); + //runInteractive("ESD",esdAnalysisType,"tag.xml"); + //runBatch("ESD",esdAnalysisType,"wn.xml"); + runProof("MC", + 200000, + "/COMMON/COMMON/LHC08c11_10TeV_0.5T", + esdAnalysisType); timer.Stop(); timer.Print(); } //_________________________________________________// -void runLocal(const char* mode = "ESD") { +void runLocal(const char* mode = "ESD", + const char* analysisType = 0x0, + const char* path = "/home/pchrist/ALICE/Alien/Tutorial/November2007/Tags") { TStopwatch timer; timer.Start(); - gSystem->Load("libTree.so"); + + TString smode = mode; + TString outputFilename = "Protons."; outputFilename += mode; + if(analysisType) { + outputFilename += "."; outputFilename += analysisType; + } + outputFilename += ".root"; + //____________________________________________________// - //_____________Setting up STEERBase.par_______________// + //_____________Setting up the par files_______________// //____________________________________________________// setupPar("STEERBase"); gSystem->Load("libSTEERBase.so"); - - //____________________________________________________// - //_____________Setting up ESD.par_____________________// - //____________________________________________________// setupPar("ESD"); gSystem->Load("libVMC.so"); gSystem->Load("libESD.so"); - - //____________________________________________________// - //_____________Setting up AOD.par_____________________// - //____________________________________________________// setupPar("AOD"); gSystem->Load("libAOD.so"); - - //_________________________________________________________// - //_____________Setting up ANALYSIS.par_____________________// - //_________________________________________________________// setupPar("ANALYSIS"); gSystem->Load("libANALYSIS.so"); - - //_________________________________________________________// - //___________Setting up ANALYSISalice.par__________________// - //_________________________________________________________// setupPar("ANALYSISalice"); gSystem->Load("libANALYSISalice.so"); - - //__________________________________________________// - //___________Setting up CORRFW.par__________________// - //__________________________________________________// setupPar->UploadPackage("CORRFW.par"); gSystem->EnablePackage("CORRFW"); - - //____________________________________________________________// - //_____________Setting up PWG2spectra.par_____________________// - //____________________________________________________________// setupPar("PWG2spectra"); gSystem->Load("libPWG2spectra.so"); - - gROOT->LoadMacro("AliAnalysisTaskProtons.cxx++"); + //____________________________________________________// //____________________________________________// AliTagAnalysis *tagAnalysis = new AliTagAnalysis("ESD"); - tagAnalysis->ChainLocalTags("/home/pchrist/ALICE/Alien/Tutorial/November2007/Tags"); + tagAnalysis->ChainLocalTags(path); AliRunTagCuts *runCuts = new AliRunTagCuts(); AliLHCTagCuts *lhcCuts = new AliLHCTagCuts(); @@ -76,6 +74,8 @@ void runLocal(const char* mode = "ESD") { chain = tagAnalysis->QueryTags(runCuts,lhcCuts,detCuts,evCuts); chain->SetBranchStatus("*Calo*",0); + //____________________________________________// + gROOT->LoadMacro("AliAnalysisTaskProtons.cxx++"); //____________________________________________// // Make the analysis manager AliAnalysisManager *mgr = new AliAnalysisManager("TestManager"); @@ -90,8 +90,20 @@ void runLocal(const char* mode = "ESD") { // 1st Proton task AliAnalysisTaskProtons *taskProtons = new AliAnalysisTaskProtons("TaskProtons"); taskProtons->SetType(mode); - taskProtons->SetTriggerMode(AliAnalysisTaskProtonsQA::kMB2); - taskProtons->SetAnalysisMode(AliAnalysisTaskProtonsQA::kTPC); + taskProtons->SetTriggerMode(AliAnalysisTaskProtons::kMB2); + switch(analysisType) { + case "TPC": + taskProtons->SetAnalysisMode(AliAnalysisTaskProtons::kTPC); + break; + case "Hybrid": + taskProtons->SetAnalysisMode(AliAnalysisTaskProtons::kHybrid); + break; + case "Global": + taskProtons->SetAnalysisMode(AliAnalysisTaskProtons::kGlobal); + break; + default: + break; + } taskProtons->SetAcceptedVertexDiamond(5.,5.,15.); //Momentum dependent priors /*TFile *f = TFile::Open("PriorProb/PriorProbabilities.root "); @@ -114,7 +126,7 @@ void runLocal(const char* mode = "ESD") { AliAnalysisDataContainer *coutput1 = mgr->CreateContainer("outputList1", TList::Class(), AliAnalysisManager::kOutputCont - "Protons.ESD.root"); + outputFilename.Data()); //____________________________________________// mgr->ConnectInput(taskProtons,0,cinput1); @@ -128,58 +140,42 @@ void runLocal(const char* mode = "ESD") { } //_________________________________________________// -void runInteractive(const char* mode = "ESD") { +void runInteractive(const char* mode = "ESD", + const char* analysisType = 0x0, + const char* collectionName = "tag.xml") { TStopwatch timer; timer.Start(); gSystem->Load("libProofPlayer.so"); + TString smode = mode; + TString outputFilename = "Protons."; outputFilename += mode; + if(analysisType) { + outputFilename += "."; outputFilename += analysisType; + } + outputFilename += ".root"; + printf("*** Connect to AliEn ***\n"); TGrid::Connect("alien://"); //____________________________________________________// - //_____________Setting up STEERBase.par_______________// + //_____________Setting up the par files_______________// //____________________________________________________// setupPar("STEERBase"); gSystem->Load("libSTEERBase.so"); - - //____________________________________________________// - //_____________Setting up ESD.par_____________________// - //____________________________________________________// setupPar("ESD"); gSystem->Load("libVMC.so"); gSystem->Load("libESD.so"); - - //____________________________________________________// - //_____________Setting up AOD.par_____________________// - //____________________________________________________// setupPar("AOD"); gSystem->Load("libAOD.so"); - - //_________________________________________________________// - //_____________Setting up ANALYSIS.par_____________________// - //_________________________________________________________// setupPar("ANALYSIS"); gSystem->Load("libANALYSIS.so"); - - //_________________________________________________________// - //___________Setting up ANALYSISalice.par__________________// - //_________________________________________________________// setupPar("ANALYSISalice"); gSystem->Load("libANALYSISalice.so"); - - //__________________________________________________// - //___________Setting up CORRFW.par__________________// - //__________________________________________________// setupPar->UploadPackage("CORRFW.par"); gSystem->EnablePackage("CORRFW"); - - //____________________________________________________________// - //_____________Setting up PWG2spectra.par_____________________// - //____________________________________________________________// setupPar("PWG2spectra"); gSystem->Load("libPWG2spectra.so"); - - gROOT->LoadMacro("AliAnalysisTaskProtons.cxx++"); + //____________________________________________________// //____________________________________________// AliTagAnalysis *tagAnalysis = new AliTagAnalysis("ESD"); @@ -190,13 +186,15 @@ void runInteractive(const char* mode = "ESD") { AliEventTagCuts *evCuts = new AliEventTagCuts(); //grid tags - TAlienCollection* coll = TAlienCollection::Open("tag.xml"); + TAlienCollection* coll = TAlienCollection::Open(collectionName); TGridResult* TagResult = coll->GetGridResult("",0,0); tagAnalysis->ChainGridTags(TagResult); TChain* chain = 0x0; chain = tagAnalysis->QueryTags(runCuts,lhcCuts,detCuts,evCuts); chain->SetBranchStatus("*Calo*",0); - + + //____________________________________________// + gROOT->LoadMacro("AliAnalysisTaskProtons.cxx++"); //____________________________________________// // Make the analysis manager AliAnalysisManager *mgr = new AliAnalysisManager("TestManager"); @@ -211,8 +209,20 @@ void runInteractive(const char* mode = "ESD") { // 1st Proton task AliAnalysisTaskProtons *taskProtons = new AliAnalysisTaskProtons("TaskProtons"); taskProtons->SetType(mode); - taskProtons->SetTriggerMode(AliAnalysisTaskProtonsQA::kMB2); - taskProtons->SetAnalysisMode(AliAnalysisTaskProtonsQA::kTPC); + taskProtons->SetTriggerMode(AliAnalysisTaskProtons::kMB2); + switch(analysisType) { + case "TPC": + taskProtons->SetAnalysisMode(AliAnalysisTaskProtons::kTPC); + break; + case "Hybrid": + taskProtons->SetAnalysisMode(AliAnalysisTaskProtons::kHybrid); + break; + case "Global": + taskProtons->SetAnalysisMode(AliAnalysisTaskProtons::kGlobal); + break; + default: + break; + } taskProtons->SetAcceptedVertexDiamond(5.,5.,15.); //Momentum dependent priors /*TFile *f = TFile::Open("PriorProb/PriorProbabilities.root "); @@ -235,7 +245,7 @@ void runInteractive(const char* mode = "ESD") { AliAnalysisDataContainer *coutput1 = mgr->CreateContainer("outputList1", TList::Class(), AliAnalysisManager::kOutputCont - "Protons.ESD.root"); + outputFilename.Data()); //____________________________________________// mgr->ConnectInput(taskProtons,0,cinput1); @@ -249,60 +259,42 @@ void runInteractive(const char* mode = "ESD") { } //_________________________________________________// -void runBatch(const char* mode = "ESD") { +void runBatch(const char* mode = "ESD", + const char* analysisType = 0x0, + const char *collectionfile = "wn.xml") { TStopwatch timer; timer.Start(); + TString smode = mode; + TString outputFilename = "Protons."; outputFilename += mode; + if(analysisType) { + outputFilename += "."; outputFilename += analysisType; + } + outputFilename += ".root"; + printf("*** Connect to AliEn ***\n"); TGrid::Connect("alien://"); gSystem->Load("libProofPlayer.so"); //____________________________________________________// - //_____________Setting up STEERBase.par_______________// + //_____________Setting up the par files_______________// //____________________________________________________// setupPar("STEERBase"); gSystem->Load("libSTEERBase.so"); - - //____________________________________________________// - //_____________Setting up ESD.par_____________________// - //____________________________________________________// setupPar("ESD"); gSystem->Load("libVMC.so"); gSystem->Load("libESD.so"); - - //____________________________________________________// - //_____________Setting up AOD.par_____________________// - //____________________________________________________// setupPar("AOD"); gSystem->Load("libAOD.so"); - - //_________________________________________________________// - //_____________Setting up ANALYSIS.par_____________________// - //_________________________________________________________// setupPar("ANALYSIS"); gSystem->Load("libANALYSIS.so"); - - //_________________________________________________________// - //___________Setting up ANALYSISalice.par__________________// - //_________________________________________________________// setupPar("ANALYSISalice"); gSystem->Load("libANALYSISalice.so"); - - //__________________________________________________// - //___________Setting up CORRFW.par__________________// - //__________________________________________________// setupPar->UploadPackage("CORRFW.par"); gSystem->EnablePackage("CORRFW"); - - //____________________________________________________________// - //_____________Setting up PWG2spectra.par_____________________// - //____________________________________________________________// setupPar("PWG2spectra"); gSystem->Load("libPWG2spectra.so"); - - //ANALYSIS PART - gROOT->LoadMacro("AliAnalysisTaskProtons.cxx++"); - const char *collectionfile = "wn.xml"; + //____________________________________________________// //____________________________________________// //Usage of event tags @@ -311,6 +303,8 @@ void runBatch(const char* mode = "ESD") { chain = tagAnalysis->GetChainFromCollection(collectionfile,"esdTree"); chain->SetBranchStatus("*Calo*",0); + //____________________________________________// + gROOT->LoadMacro("AliAnalysisTaskProtons.cxx++"); //____________________________________________// // Make the analysis manager AliAnalysisManager *mgr = new AliAnalysisManager("TestManager"); @@ -325,8 +319,20 @@ void runBatch(const char* mode = "ESD") { // 1st Proton task AliAnalysisTaskProtons *taskProtons = new AliAnalysisTaskProtons("TaskProtons"); taskProtons->SetType(mode); - taskProtons->SetTriggerMode(AliAnalysisTaskProtonsQA::kMB2); - taskProtons->SetAnalysisMode(AliAnalysisTaskProtonsQA::kTPC); + taskProtons->SetTriggerMode(AliAnalysisTaskProtons::kMB2); + switch(analysisType) { + case "TPC": + taskProtons->SetAnalysisMode(AliAnalysisTaskProtons::kTPC); + break; + case "Hybrid": + taskProtons->SetAnalysisMode(AliAnalysisTaskProtons::kHybrid); + break; + case "Global": + taskProtons->SetAnalysisMode(AliAnalysisTaskProtons::kGlobal); + break; + default: + break; + } taskProtons->SetAcceptedVertexDiamond(5.,5.,15.); //Momentum dependent priors /*TFile *f = TFile::Open("PriorProb/PriorProbabilities.root "); @@ -347,7 +353,7 @@ void runBatch(const char* mode = "ESD") { TChain::Class(),AliAnalysisManager::kInputContainer); AliAnalysisDataContainer *coutput1 = mgr->CreateContainer("outputList1", TList::Class(),AliAnalysisManager::kOutputCont - "Protons.ESD.root"); + outputFilename.Data()); //____________________________________________// mgr->ConnectInput(taskProtons,0,cinput1); @@ -361,14 +367,18 @@ void runBatch(const char* mode = "ESD") { } //_________________________________________________// -void runProof(const char* mode = "ESD", +void runProof(const char* mode = "ESD", Int_t stats = 0, - const char* dataset = 0x0) { + const char* dataset = 0x0, + const char* analysisType = 0x0) { TStopwatch timer; timer.Start(); TString smode = mode; TString outputFilename = "Protons."; outputFilename += mode; + if(analysisType) { + outputFilename += "."; outputFilename += analysisType; + } outputFilename += ".root"; printf("****** Connect to PROOF *******\n"); @@ -391,7 +401,9 @@ void runProof(const char* mode = "ESD", gProof->UploadPackage("PWG2spectra.par"); gProof->EnablePackage("PWG2spectra"); + //____________________________________________// gProof->Load("AliAnalysisTaskProtons.cxx++"); + //____________________________________________// //____________________________________________// // Make the analysis manager @@ -406,8 +418,20 @@ void runProof(const char* mode = "ESD", // 1st Proton task AliAnalysisTaskProtons *taskProtons = new AliAnalysisTaskProtons("TaskProtons"); taskProtons->SetType(mode); - taskProtons->SetTriggerMode(AliAnalysisTaskProtonsQA::kMB2); - taskProtons->SetAnalysisMode(AliAnalysisTaskProtonsQA::kTPC); + taskProtons->SetTriggerMode(AliAnalysisTaskProtons::kMB2); + switch(analysisType) { + case "TPC": + taskProtons->SetAnalysisMode(AliAnalysisTaskProtons::kTPC); + break; + case "Hybrid": + taskProtons->SetAnalysisMode(AliAnalysisTaskProtons::kHybrid); + break; + case "Global": + taskProtons->SetAnalysisMode(AliAnalysisTaskProtons::kGlobal); + break; + default: + break; + } taskProtons->SetAcceptedVertexDiamond(5.,5.,15.); //Momentum dependent priors /*TFile *f = TFile::Open("PriorProb/PriorProbabilities.root "); -- 2.43.0