]> git.uio.no Git - u/mrichter/AliRoot.git/commitdiff
Minor changes in the macros/tasks
authorpchrist <pchrist@f7af4fe6-9843-0410-8265-dc069ae4e863>
Mon, 12 Jan 2009 16:34:44 +0000 (16:34 +0000)
committerpchrist <pchrist@f7af4fe6-9843-0410-8265-dc069ae4e863>
Mon, 12 Jan 2009 16:34:44 +0000 (16:34 +0000)
PWG2/AliAnalysisTaskProtons.cxx
PWG2/SPECTRA/AliProtonAnalysis.cxx
PWG2/runProtonAnalysis.C

index de5fc253e1f9cec50138c1cc80539dcc2252b1a7..703f9af5c765d007e1cfc38a055b8c6b9d1ff434 100644 (file)
@@ -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.
index 2b9a0419695745861f2e6e2fcfc8003062202f28..df2e19db5de2ba4c79fdfe51e8fbda93db9d5d21 100644 (file)
@@ -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;
index ab0c6eda8cacc151b4d5db6898f08d5f16ee79de..4cd6646df91e47b00a674162fab57f4f0a1be37b 100644 (file)
@@ -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 ");