]> git.uio.no Git - u/mrichter/AliRoot.git/commitdiff
Removed old analysis macros (replaced by AddTask... macros)
authordainese <dainese@f7af4fe6-9843-0410-8265-dc069ae4e863>
Tue, 28 Apr 2009 17:06:54 +0000 (17:06 +0000)
committerdainese <dainese@f7af4fe6-9843-0410-8265-dc069ae4e863>
Tue, 28 Apr 2009 17:06:54 +0000 (17:06 +0000)
PWG3/vertexingHF/AliAnalysisTaskSEBkgLikeSignJPSITest.C [deleted file]
PWG3/vertexingHF/AliAnalysisTaskSEBtoJPSItoEleTest.C [deleted file]
PWG3/vertexingHF/AliAnalysisTaskSECompareHFTest.C [deleted file]
PWG3/vertexingHF/AliAnalysisTaskSESelectHFTest.C [deleted file]
PWG3/vertexingHF/AliCFHeavyFlavourTask.C [deleted file]
PWG3/vertexingHF/AliCFHeavyFlavourTaskMultiVar.C [deleted file]
PWG3/vertexingHF/AliHFMassFitter.cxx
PWG3/vertexingHF/AliHFMassFitter.h

diff --git a/PWG3/vertexingHF/AliAnalysisTaskSEBkgLikeSignJPSITest.C b/PWG3/vertexingHF/AliAnalysisTaskSEBkgLikeSignJPSITest.C
deleted file mode 100644 (file)
index 4653f90..0000000
+++ /dev/null
@@ -1,71 +0,0 @@
-void AliAnalysisTaskSEBkgLikeSignJPSITest() 
-{
-  //
-  // Test macro for the AliAnalysisTaskSEBtoJPSItoEle 
-  // starting from AliAOD.root file with HF + Like Sign candidates.
-  // C.Di Giglio, carmelo.digiglio@ba.infn.it
-  //
-
-  TString analysisMode = "local"; // "local" or "grid"
-  TString inputMode    = "list"; // "list" or "xml"
-
-
-  Bool_t useParFiles=kFALSE;
-
-
-  gROOT->LoadMacro("$ALICE_ROOT/PWG3/vertexingHF/LoadLibraries.C");
-  gROOT->LoadMacro("$ALICE_ROOT/PWG3/vertexingHF/MakeAODInputChain.C");
-  LoadLibraries(useParFiles);
-
-  if(analysisMode=="grid") TGrid::Connect("alien:",0,0,"t");
-
-
-
-
-  TChain *chainAOD = 0;
-  
-  if(inputMode=="list") {
-    // Local files
-    chainAOD = MakeAODInputChain();// with this it reads ./AliAOD.root and ./AliAOD.VertexingHF.root
-    //chainAOD = MakeAODInputChain("alien:///alice/cern.ch/user/r/rbala/analysis/out_lhcw/290001/",2,2);
-  } else if(inputMode=="xml") {
-    // xml
-    chainAOD = MakeAODInputChain("collection_aod.xml","collection_aodHF.xml");
-  }
-
-  // Create the analysis manager
-  AliAnalysisManager *mgr  = new AliAnalysisManager("My Manager","My Manager");
-  mgr->SetDebugLevel(10);
-
-  // Input
-  AliAODInputHandler *inputHandler = new AliAODInputHandler();
-  mgr->SetInputEventHandler(inputHandler);
-
-  // Cdf unbinned log-likelihood fit analysis task    
-  AliAnalysisTaskSEBkgLikeSignJPSI *hfTask = new AliAnalysisTaskSEBkgLikeSignJPSI("CmpLikeSignAnalysis");
-  hfTask->SetDebugLevel(2);
-
-  mgr->AddTask(hfTask);
-
-  //
-  // Create containers for input/output
-  mgr->ConnectInput(hfTask,0,mgr->GetCommonInputContainer());
-
-  AliAnalysisDataContainer *coutput = mgr->CreateContainer("coutput",TList::Class(),
-                                                           AliAnalysisManager::kOutputContainer,
-                                                           "CmpLikeSignJPSI.root");
-
-  mgr->ConnectOutput(hfTask,1,coutput);
-
-  //
-  // Run the analysis
-  //    
-  printf("CHAIN HAS %d ENTRIES\n",(Int_t)chainAOD->GetEntries());
-  if(mgr->InitAnalysis()) {
-    mgr->PrintStatus();
-    mgr->StartAnalysis("local",chainAOD);
-  }
-
-  return;
-
-}
diff --git a/PWG3/vertexingHF/AliAnalysisTaskSEBtoJPSItoEleTest.C b/PWG3/vertexingHF/AliAnalysisTaskSEBtoJPSItoEleTest.C
deleted file mode 100644 (file)
index 60f188b..0000000
+++ /dev/null
@@ -1,94 +0,0 @@
-void AliAnalysisTaskSEBtoJPSItoEleTest() 
-{
-  //
-  // Test macro for the AliAnalysisTaskSEBtoJPSItoEle 
-  // starting from AliAOD.root file with HF + Like Sign candidates.
-  // C.Di Giglio, carmelo.digiglio@ba.infn.it
-  //
-
-  TString mode="local"; // otherwise, "grid" 
-  //TString mode="grid"; // needs definition of a proper Grid handler  
-
-  // load proper libraries
-  gSystem->Load("libTree.so");
-  gSystem->Load("libGeom.so");
-  gSystem->Load("libPhysics.so");
-  gSystem->Load("libVMC.so");
-  gSystem->Load("libSTEERBase.so");
-  gSystem->Load("libESD.so");
-  gSystem->Load("libAOD.so");
-  gSystem->Load("libANALYSIS.so");
-  gSystem->Load("libANALYSISalice.so");
-  gSystem->Load("libCORRFW.so");
-  gSystem->Load("libPWG3base.so");
-  gSystem->Load("libPWG3vertexingHF.so");
-  TChain *chain = 0;
-
-  if(mode=="local") {
-    // Local files 
-    TString treeName,fileName;
-    treeName="aodTree";
-    fileName="AliAOD.root";
-    chain = new TChain(treeName.Data());
-    chain->Add(fileName.Data());
-  } else if (mode=="grid") {
-    // Fetch files with AliEn :
-    const char *collectionfile = "Collection.xml";
-    TGrid::Connect("alien://") ;
-    TAlienCollection *coll   = TAlienCollection::Open(collectionfile);
-    chain = new TChain("aodTree");
-    while(coll->Next()) chain->Add(coll->GetTURL(""));
-  } else {
-    printf("ERROR: mode has to be \"local\" or \"grid\" \n");
-    return;
-  }
-
-  // Create the analysis manager
-  AliAnalysisManager *mgr  = new AliAnalysisManager("My Manager","My Manager");
-  mgr->SetDebugLevel(10);
-
-  // Input
-  AliAODInputHandler *inputHandler = new AliAODInputHandler();
-  inputHandler->AddFriend("AliAOD.VertexingHF.root");
-  mgr->SetInputEventHandler(inputHandler);
-
-  // Cdf unbinned log-likelihood fit analysis task    
-  AliAnalysisTaskSEBtoJPSItoEle *hfTask = new AliAnalysisTaskSEBtoJPSItoEle("CdfFitAnalysis");
-  hfTask->SetDebugLevel(2);
-
-  mgr->AddTask(hfTask);
-
-  //
-  // Create containers for input/output
-  mgr->ConnectInput(hfTask,0,mgr->GetCommonInputContainer());
-
-  // before v4-17-Release
-  /*AliAnalysisDataContainer *cinput1 = mgr->CreateContainer("cchain",TChain::Class(),
-                                                           AliAnalysisManager::kInputContainer);
-  AliAnalysisDataContainer *coutput1 = mgr->CreateContainer("tree", TTree::Class(),
-                                                            AliAnalysisManager::kOutputContainer,
-                                                            "default");
-
-  mgr->ConnectInput(hfTask,0,cinput1);
-  mgr->ConnectOutput(hfTask,0,coutput1);*/
-
-  AliAnalysisDataContainer *coutput = mgr->CreateContainer("coutput",TList::Class(),
-                                                           AliAnalysisManager::kOutputContainer,
-                                                           "CdfFit.root");
-
-  mgr->ConnectOutput(hfTask,1,coutput);
-
-  //
-  // Run the analysis
-  //    
-  printf("CHAIN HAS %d ENTRIES\n",(Int_t)chain->GetEntries());
-  if(!mgr->InitAnalysis()) return;
-
-  mgr->PrintStatus();
-
-  mgr->StartAnalysis(mode.Data(),chain);
-
-  return;
-
-}
diff --git a/PWG3/vertexingHF/AliAnalysisTaskSECompareHFTest.C b/PWG3/vertexingHF/AliAnalysisTaskSECompareHFTest.C
deleted file mode 100644 (file)
index 9d66ff1..0000000
+++ /dev/null
@@ -1,73 +0,0 @@
-void AliAnalysisTaskSECompareHFTest()\r
-{\r
-  //\r
-  // Test macro for the AliAnalysisTaskSE for heavy-flavour candidates\r
-  // association with MC truth (using MC info in AOD)\r
-  // A.Dainese, andrea.dainese@lnl.infn.it\r
-  // "grid" mode added by R.Bala, bala@to.infn.it\r
-  //\r
-\r
-  TString analysisMode = "grid"; // "local" or "grid"\r
-  TString inputMode    = "list"; // "list" or "xml"\r
-\r
-\r
-  Bool_t useParFiles=kFALSE;\r
-\r
-\r
-  gROOT->LoadMacro("$ALICE_ROOT/PWG3/vertexingHF/LoadLibraries.C");\r
-  gROOT->LoadMacro("$ALICE_ROOT/PWG3/vertexingHF/MakeAODInputChain.C");\r
-  LoadLibraries(useParFiles);\r
-\r
-  if(analysisMode=="grid") TGrid::Connect("alien:",0,0,"t");\r
-\r
-\r
-\r
-\r
-  TChain *chainAOD = 0;\r
-  \r
-  if(inputMode=="list") {\r
-    // Local files\r
-    //chainAOD = MakeAODInputChain();// with this it reads ./AliAOD.root and ./AliAOD.VertexingHF.root\r
-    chainAOD = MakeAODInputChain("alien:///alice/cern.ch/user/r/rbala/analysis/out_lhcw/290001/",2,2);\r
-  } else if(inputMode=="xml") {\r
-    // xml\r
-    chainAOD = MakeAODInputChain("collection_aod.xml","collection_aodHF.xml");\r
-  }\r
-\r
-  // Create the analysis manager\r
-  AliAnalysisManager *mgr  = new AliAnalysisManager("My Manager","My Manager");\r
-  mgr->SetDebugLevel(10);\r
-  \r
-\r
-  // Input\r
-  AliAODInputHandler *inputHandler = new AliAODInputHandler();\r
-  mgr->SetInputEventHandler(inputHandler);\r
-\r
-  \r
-  // Aanalysis task    \r
-  AliAnalysisTaskSECompareHF *hfTask = new AliAnalysisTaskSECompareHF("CompareHFAnalysis");\r
-  hfTask->SetDebugLevel(2);\r
-  mgr->AddTask(hfTask);\r
-  \r
-  //\r
-  // Create containers for input/output\r
-  AliAnalysisDataContainer *cinput = mgr->CreateContainer("cinput",TChain::Class(), \r
-                                                         AliAnalysisManager::kInputContainer);\r
-  AliAnalysisDataContainer *coutput = mgr->CreateContainer("coutput",TList::Class(),\r
-                                                          AliAnalysisManager::kOutputContainer, \r
-                                                          "CmpHF.root");\r
-  mgr->ConnectInput(hfTask,0,mgr->GetCommonInputContainer());\r
-\r
-  mgr->ConnectOutput(hfTask,1,coutput);\r
-\r
-  //\r
-  // Run the analysis\r
-  //    \r
-  printf("CHAIN HAS %d ENTRIES\n",(Int_t)chainAOD->GetEntries());\r
-  if(mgr->InitAnalysis()) {\r
-    mgr->PrintStatus();\r
-    mgr->StartAnalysis("local",chainAOD);\r
-  }\r
-\r
-  return;\r
-}\r
diff --git a/PWG3/vertexingHF/AliAnalysisTaskSESelectHFTest.C b/PWG3/vertexingHF/AliAnalysisTaskSESelectHFTest.C
deleted file mode 100644 (file)
index 2ef4bdf..0000000
+++ /dev/null
@@ -1,81 +0,0 @@
-void AliAnalysisTaskSESelectHFTest()\r
-{\r
-  //\r
-  // Test macro for the AliAnalysisTaskSE for heavy-flavour selection\r
-  // and creation of a stand-alone AOD\r
-  // A.Dainese, andrea.dainese@lnl.infn.it\r
-  //\r
-\r
-  TString analysisMode = "grid"; // "local" or "grid"\r
-  TString inputMode    = "list"; // "list" or "xml"\r
-\r
-\r
-  Bool_t useParFiles=kFALSE;\r
-\r
-  gROOT->LoadMacro("$ALICE_ROOT/PWG3/vertexingHF/LoadLibraries.C");\r
-  gROOT->LoadMacro("$ALICE_ROOT/PWG3/vertexingHF/MakeAODInputChain.C");\r
-  LoadLibraries(useParFiles);\r
-\r
-  if(analysisMode=="grid") TGrid::Connect("alien:",0,0,"t");\r
-\r
-\r
-\r
-  TChain *chainAOD = 0;\r
-  \r
-  if(inputMode=="list") {\r
-    // Local files\r
-    //chainAOD = MakeAODInputChain();// with this it reads ./AliAOD.root and ./AliAOD.VertexingHF.root\r
-    chainAOD = MakeAODInputChain("alien:///alice/cern.ch/user/r/rbala/analysis/out_lhcw/290001/",2,2);\r
-  } else if(inputMode=="xml") {\r
-    // xml\r
-    chainAOD = MakeAODInputChain("collection_aod.xml","collection_aodHF.xml");\r
-  }\r
-\r
-  // Create the analysis manager\r
-  AliAnalysisManager *mgr  = new AliAnalysisManager("My Manager","My Manager");\r
-  mgr->SetDebugLevel(10);\r
-  \r
-\r
-  // Input\r
-  AliAODInputHandler *inputHandler = new AliAODInputHandler();\r
-  //inputHandler->AddFriend("AliAOD.VertexingHF.root");\r
-  mgr->SetInputEventHandler(inputHandler);\r
-\r
-  // Output \r
-  AliAODHandler *aodHandler   = new AliAODHandler();\r
-  aodHandler->SetOutputFileName("AliAOD.VertexingHF.sa.root");\r
-  aodHandler->SetCreateNonStandardAOD();\r
-  mgr->SetOutputEventHandler(aodHandler);\r
-\r
-  \r
-  // Aanalysis task    \r
-  AliAnalysisTaskSESelectHF *hfTask = new AliAnalysisTaskSESelectHF("SelectHFAnalysis");\r
-  hfTask->SetDebugLevel(2);\r
-  mgr->AddTask(hfTask);\r
-  \r
-  //\r
-  // Create containers for input/output\r
-  mgr->ConnectInput(hfTask,0,mgr->GetCommonInputContainer());\r
-  mgr->ConnectOutput(hfTask,0,mgr->GetCommonOutputContainer());\r
-  /*\r
-  // before v4-17-Release\r
-  AliAnalysisDataContainer *cinput1 = mgr->CreateContainer("cchain",TChain::Class(), \r
-                                                          AliAnalysisManager::kInputContainer);\r
-  AliAnalysisDataContainer *coutput1 = mgr->CreateContainer("tree", TTree::Class(),\r
-                                                           AliAnalysisManager::kOutputContainer, \r
-                                                           "default");\r
-  mgr->ConnectInput(hfTask,0,cinput1);\r
-  mgr->ConnectOutput(hfTask,0,coutput1);\r
-  */\r
-\r
-  //\r
-  // Run the analysis\r
-  //    \r
-  printf("CHAIN HAS %d ENTRIES\n",(Int_t)chainAOD->GetEntries());\r
-  if(mgr->InitAnalysis()) {\r
-    mgr->PrintStatus();\r
-    mgr->StartAnalysis("local",chainAOD);\r
-  }\r
-\r
-  return;\r
-}\r
diff --git a/PWG3/vertexingHF/AliCFHeavyFlavourTask.C b/PWG3/vertexingHF/AliCFHeavyFlavourTask.C
deleted file mode 100644 (file)
index 389df97..0000000
+++ /dev/null
@@ -1,178 +0,0 @@
-//DEFINITION OF A FEW CONSTANTS
-const Double_t ymin  = -2.0 ;
-const Double_t ymax  =  2.0 ;
-const Double_t ptmin =  0.0 ;
-const Double_t ptmax =  10.0 ;
-const Int_t    mintrackrefsTPC = 2 ;
-const Int_t    mintrackrefsITS = 3 ;
-const Int_t    charge  = 1 ;
-const Int_t    PDG = 421; 
-const Int_t    minclustersTPC = 50 ;
-//----------------------------------------------------
-
-Bool_t AliCFHeavyFlavourTask()
-{
-       
-        TString analysisMode = "local"; // "local" or "grid"
-       TString inputMode    = "list"; // "list" or "xml"
-
-
-       Bool_t useParFiles=kFALSE;
-       
-   
-       //load the required libraries
-       gROOT->LoadMacro("$ALICE_ROOT/PWG3/vertexingHF/LoadLibraries.C");
-       gROOT->LoadMacro("$ALICE_ROOT/PWG3/vertexingHF/MakeAODInputChain.C");
-       LoadLibraries(useParFiles);
-       
-        if(analysisMode=="grid") TGrid::Connect("alien:",0,0,"t");
-       
-       
-       TBenchmark benchmark;
-       benchmark.Start("AliCFHeavyFlavourTask");
-       
-       AliLog::SetGlobalDebugLevel(0);
-
-
-       TChain *chainAOD = 0;
-       
-       if(inputMode=="list") {
-         // Local files
-         //chainAOD = MakeAODInputChain();// with this it reads ./AliAOD.root and ./AliAOD.VertexingHF.root
-         chainAOD = MakeAODInputChain("alien:///alice/cern.ch/user/r/rbala/analysis/out_lhcw/290001/",2,2);
-       } else if(inputMode=="xml") {
-         // xml
-         chainAOD = MakeAODInputChain("collection_aod.xml","collection_aodHF.xml");
-       }
-
-       Info("AliCFHeavyFlavourTask",Form("CHAIN HAS %d ENTRIES",(Int_t)chainAOD->GetEntries()));
-
-       //CONTAINER DEFINITION
-       Info("AliCFHeavyFlavourTask","SETUP CONTAINER");
-       //the sensitive variables (2 in this example), their indices
-       UInt_t ipt = 0;
-       UInt_t iy  = 1;
-       //Setting up the container grid... 
-       UInt_t nstep = 2 ; //number of selection steps MC 
-       const Int_t nvar   = 2 ; //number of variables on the grid:pt,y
-       const Int_t nbin1  = 8 ; //bins in pt
-       const Int_t nbin2  = 8 ; //bins in y 
-       
-       //arrays for the number of bins in each dimension
-       Int_t iBin[nvar];
-       iBin[0]=nbin1;
-       iBin[1]=nbin2;
-       
-       //arrays for lower bounds :
-       Double_t *binLim1=new Double_t[nbin1+1];
-       Double_t *binLim2=new Double_t[nbin2+1];
-       
-       //values for bin lower bounds
-       for(Int_t i=0; i<=nbin1; i++) binLim1[i]=(Double_t)ptmin + (ptmax-ptmin)/nbin1*(Double_t)i ; 
-       for(Int_t i=0; i<=nbin2; i++) binLim2[i]=(Double_t)ymin  + (ymax-ymin)  /nbin2*(Double_t)i ;
-
-       //one "container" for MC
-       AliCFContainer* container = new AliCFContainer("container","container for tracks",nstep,nvar,iBin);
-
-       //setting the bin limits
-       container -> SetBinLimits(ipt,binLim1);
-       container -> SetBinLimits(iy,binLim2);
-       
-       //CREATE THE  CUTS -----------------------------------------------
-       
-       // Gen-Level kinematic cuts
-       AliCFTrackKineCuts *mcKineCuts = new AliCFTrackKineCuts("mcKineCuts","MC-level kinematic cuts");
-       //   mcKineCuts->SetPtRange(ptmin,ptmax);
-       //   mcKineCuts->SetRapidityRange(ymin,ymax);
-       //   mcKineCuts->SetChargeMC(charge);
-       
-       //Particle-Level cuts:  
-       AliCFParticleGenCuts* mcGenCuts = new AliCFParticleGenCuts("mcGenCuts","MC particle generation cuts");
-       //mcGenCuts->SetRequireIsPrimary();
-       mcGenCuts->SetRequirePdgCode(PDG);
-       mcGenCuts->SetAODMC(1); //special flag for reading MC in AOD tree (important)
-       
-       // Rec-Level kinematic cuts
-       AliCFTrackKineCuts *recKineCuts = new AliCFTrackKineCuts("recKineCuts","rec-level kine cuts");
-       //   recKineCuts->SetPtRange(ptmin,ptmax);
-       //   recKineCuts->SetRapidityRange(ymin,ymax);
-       //   recKineCuts->SetChargeRec(charge);
-       
-       AliCFTrackQualityCuts *recQualityCuts = new AliCFTrackQualityCuts("recQualityCuts","rec-level quality cuts");
-       //recQualityCuts->SetStatus(AliESDtrack::kITSrefit);
-       
-       AliCFTrackIsPrimaryCuts *recIsPrimaryCuts = new AliCFTrackIsPrimaryCuts("recIsPrimaryCuts","rec-level isPrimary cuts");
-       //recIsPrimaryCuts->SetAODType(AliAODTrack::kPrimary);
-       
-       printf("CREATE MC KINE CUTS\n");
-       TObjArray* mcList = new TObjArray(0) ;
-       mcList->AddLast(mcKineCuts);
-       mcList->AddLast(mcGenCuts);
-       
-       printf("CREATE RECONSTRUCTION CUTS\n");
-       TObjArray* recList = new TObjArray(0) ;
-       recList->AddLast(recKineCuts);
-       recList->AddLast(recQualityCuts);
-       recList->AddLast(recIsPrimaryCuts);
-       
-       //CREATE THE INTERFACE TO CORRECTION FRAMEWORK USED IN THE TASK
-       printf("CREATE INTERFACE AND CUTS\n");
-       AliCFManager* man = new AliCFManager() ;
-       man->SetParticleContainer     (container);
-       man->SetParticleCutsList(0 , mcList); // MC
-       man->SetParticleCutsList(1 , recList); // AOD
-       
-       //CREATE THE TASK
-       printf("CREATE TASK\n");
-       // create the task
-       AliCFHeavyFlavourTask *task = new AliCFHeavyFlavourTask("AliCFHeavyFlavourTask");
-       task->SetCFManager(man); //here is set the CF manager
-       
-       //SETUP THE ANALYSIS MANAGER TO READ INPUT CHAIN AND WRITE DESIRED OUTPUTS
-       printf("CREATE ANALYSIS MANAGER\n");
-       // Make the analysis manager
-       AliAnalysisManager *mgr = new AliAnalysisManager("TestManager");
-       
-       mgr->SetAnalysisType(AliAnalysisManager::kLocalAnalysis);
-       
-       AliAODInputHandler* dataHandler = new AliAODInputHandler();
-       mgr->SetInputEventHandler(dataHandler);
-       
-       // Create and connect containers for input/output
-       
-       // ------ input data ------
-       AliAnalysisDataContainer *cinput0  = mgr->GetCommonInputContainer();
-       
-       // ----- output data -----
-       
-       //slot 0 : default output tree (by default handled by AliAnalysisTaskSE)
-       AliAnalysisDataContainer *coutput0 = mgr->CreateContainer("ctree0", TTree::Class(),AliAnalysisManager::kOutputContainer,"outputEta.root");
-       
-       //now comes user's output objects :
-       
-       // output TH1I for event counting
-       AliAnalysisDataContainer *coutput1 = mgr->CreateContainer("chist0", TH1I::Class(),AliAnalysisManager::kOutputContainer,"output.root");
-       // output Correction Framework Container (for acceptance & efficiency calculations)
-       AliAnalysisDataContainer *coutput2 = mgr->CreateContainer("ccontainer0", AliCFContainer::Class(),AliAnalysisManager::kOutputContainer,"output.root");
-       
-//     cinput0->SetData(chainAOD);
-       
-       mgr->AddTask(task);
-       mgr->ConnectInput(task,0,mgr->GetCommonInputContainer());
-       mgr->ConnectOutput(task,0,coutput0);
-       mgr->ConnectOutput(task,1,coutput1);
-       mgr->ConnectOutput(task,2,coutput2);
-       
-       printf("READY TO RUN\n");
-       //RUN !!!
-       if (mgr->InitAnalysis()) {
-               mgr->PrintStatus();
-               mgr->StartAnalysis("local",chainAOD);
-       }
-       
-       benchmark.Stop("AliCFHeavyFlavourTask");
-       benchmark.Show("AliCFHeavyFlavourTask");
-       
-       return kTRUE ;
-}
-
diff --git a/PWG3/vertexingHF/AliCFHeavyFlavourTaskMultiVar.C b/PWG3/vertexingHF/AliCFHeavyFlavourTaskMultiVar.C
deleted file mode 100644 (file)
index 19ca065..0000000
+++ /dev/null
@@ -1,277 +0,0 @@
-//DEFINITION OF A FEW CONSTANTS
-const Double_t ymin  = -2.0 ;
-const Double_t ymax  =  2.0 ;
-const Double_t ptmin_0_4 =  0.0 ;
-const Double_t ptmax_0_4 =  4.0 ;
-const Double_t ptmin_4_8 =  4.0 ;
-const Double_t ptmax_4_8 =  8.0 ;
-const Double_t ptmin_8_10 =  8.0 ;
-const Double_t ptmax_8_10 =  10.0 ;
-const Double_t cosmin = -1.;
-const Double_t cosmax =  1.;
-const Double_t cTmin = 0;  // micron
-const Double_t cTmax = 500;  // micron
-const Int_t    mintrackrefsTPC = 2 ;
-const Int_t    mintrackrefsITS = 3 ;
-const Int_t    charge  = 1 ;
-const Int_t    PDG = 421; 
-const Int_t    minclustersTPC = 50 ;
-//----------------------------------------------------
-
-Bool_t AliCFHeavyFlavourTaskMultiVar()
-{
-        TString analysisMode = "local"; // "local" or "grid"
-       TString inputMode    = "list"; // "list" or "xml"
-
-
-       Bool_t useParFiles=kFALSE;
-       
-   
-       //load the required libraries
-       gROOT->LoadMacro("$ALICE_ROOT/PWG3/vertexingHF/LoadLibraries.C");
-       gROOT->LoadMacro("$ALICE_ROOT/PWG3/vertexingHF/MakeAODInputChain.C");
-       LoadLibraries(useParFiles);
-       
-        if(analysisMode=="grid") TGrid::Connect("alien:",0,0,"t");
-       
-       
-       TBenchmark benchmark;
-       benchmark.Start("AliCFHeavyFlavourTaskMultiVar");
-       
-       AliLog::SetGlobalDebugLevel(0);
-
-
-       TChain *chainAOD = 0;
-       
-       if(inputMode=="list") {
-         // Local files
-         //chainAOD = MakeAODInputChain();// with this it reads ./AliAOD.root and ./AliAOD.VertexingHF.root
-         chainAOD = MakeAODInputChain("alien:///alice/cern.ch/user/r/rbala/analysis/out_lhcw/290001/",2,2);
-       } else if(inputMode=="xml") {
-         // xml
-         chainAOD = MakeAODInputChain("collection_aod.xml","collection_aodHF.xml");
-       }
-       
-       Info("AliCFHeavyFlavourTaskMultiVar",Form("CHAIN HAS %d ENTRIES",(Int_t)chainAOD->GetEntries()));
-
-       //CONTAINER DEFINITION
-       Info("AliCFHeavyFlavourTaskMultiVar","SETUP CONTAINER");
-       //the sensitive variables (6 in this example), their indices
-       UInt_t ipt = 0;
-       UInt_t iy  = 1;
-       UInt_t icosThetaStar  = 2;
-       UInt_t ipTpi  = 3;
-       UInt_t ipTk  = 4;
-       UInt_t icT  = 5;
-       //Setting up the container grid... 
-       UInt_t nstep = 2 ; //number of selection steps MC 
-       const Int_t nvar   = 6 ; //number of variables on the grid:pt, y, cosThetaStar, pTpi, pTk, cT 
-       const Int_t nbin0_0_4  = 8 ; //bins in pt from 0 to 4 GeV
-       const Int_t nbin0_4_8  = 4 ; //bins in pt from 4 to 8 GeV
-       const Int_t nbin0_8_10  = 1 ; //bins in pt from 8 to 10 GeV
-       const Int_t nbin1  = 8 ; //bins in y
-       const Int_t nbin2  = 8 ; //bins in cosThetaStar 
-       const Int_t nbin3_0_4  = 8 ; //bins in ptPi from 0 to 4 GeV
-       const Int_t nbin3_4_8  = 4 ; //bins in ptPi from 4 to 8 GeV
-       const Int_t nbin3_8_10  = 1 ; //bins in ptPi from 8 to 10 GeV
-       const Int_t nbin4_0_4  = 8 ; //bins in ptKa from 0 to 4 GeV
-       const Int_t nbin4_4_8  = 4 ; //bins in ptKa from 4 to 8 GeV
-       const Int_t nbin4_8_10  = 1 ; //bins in ptKa from 8 to 10 GeV
-       const Int_t nbin5  = 24 ; //bins in cT
-       
-       //arrays for the number of bins in each dimension
-       Int_t iBin[nvar];
-       iBin[0]=nbin0_0_4+nbin0_4_8+nbin0_8_10;
-       iBin[1]=nbin1;
-       iBin[2]=nbin2;
-       iBin[3]=nbin3_0_4+nbin3_4_8+nbin3_8_10;
-       iBin[4]=nbin4_0_4+nbin4_4_8+nbin4_8_10;
-       iBin[5]=nbin5;
-       
-       //arrays for lower bounds :
-       Double_t *binLim0=new Double_t[iBin[0]+1];
-       Double_t *binLim1=new Double_t[iBin[1]+1];
-       Double_t *binLim2=new Double_t[iBin[2]+1];
-       Double_t *binLim3=new Double_t[iBin[3]+1];
-       Double_t *binLim4=new Double_t[iBin[4]+1];
-       Double_t *binLim5=new Double_t[iBin[5]+1];
-       
-       // checking limits
-       if (ptmax_0_4 != ptmin_4_8) {
-               Error("AliCFHeavyFlavourTaskMultiVar","max lim 1st range != min lim 2nd range, please check!");
-       }
-       if (ptmax_4_8 != ptmin_8_10) {
-               Error("AliCFHeavyFlavourTaskMultiVar","max lim 2nd range != min lim 3rd range, please check!");
-       }
-
-       // values for bin lower bounds
-       // pt
-       for(Int_t i=0; i<=nbin0_0_4; i++) binLim0[i]=(Double_t)ptmin_0_4 + (ptmax_0_4-ptmin_0_4)/nbin0_0_4*(Double_t)i ; 
-       if (binLim0[nbin0_0_4] != ptmin_4_8)  {
-               Error("AliCFHeavyFlavourTaskMultiVar","Calculated bin lim for pt - 1st range - differs from expected!\n");
-       }
-       for(Int_t i=0; i<=nbin0_4_8; i++) binLim0[i+nbin0_0_4]=(Double_t)ptmin_4_8 + (ptmax_4_8-ptmin_4_8)/nbin0_4_8*(Double_t)i ; 
-       if (binLim0[nbin0_0_4+nbin0_4_8] != ptmin_8_10)  {
-               Error("AliCFHeavyFlavourTaskMultiVar","Calculated bin lim for pt - 2nd range - differs from expected!\n");
-       }
-       for(Int_t i=0; i<=nbin0_8_10; i++) binLim0[i+nbin0_0_4+nbin0_4_8]=(Double_t)ptmin_8_10 + (ptmax_8_10-ptmin_8_10)/nbin0_8_10*(Double_t)i ; 
-
-       // y
-       for(Int_t i=0; i<=nbin1; i++) binLim1[i]=(Double_t)ymin  + (ymax-ymin)  /nbin1*(Double_t)i ;
-
-       // cosThetaStar
-       for(Int_t i=0; i<=nbin2; i++) binLim2[i]=(Double_t)cosmin  + (cosmax-cosmin)  /nbin2*(Double_t)i ;
-
-       // ptPi
-       for(Int_t i=0; i<=nbin3_0_4; i++) binLim3[i]=(Double_t)ptmin_0_4 + (ptmax_0_4-ptmin_0_4)/nbin3_0_4*(Double_t)i ; 
-       if (binLim3[nbin3_0_4] != ptmin_4_8)  {
-               Error("AliCFHeavyFlavourTaskMultiVar","Calculated bin lim for ptPi - 1st range - differs from expected!");
-       }
-       for(Int_t i=0; i<=nbin3_4_8; i++) binLim3[i+nbin3_0_4]=(Double_t)ptmin_4_8 + (ptmax_4_8-ptmin_4_8)/nbin3_4_8*(Double_t)i ; 
-       if (binLim3[nbin3_0_4+nbin3_4_8] != ptmin_8_10)  {
-               Error("AliCFHeavyFlavourTaskMultiVar","Calculated bin lim for ptPi - 2nd range - differs from expected!\n");
-       }
-       for(Int_t i=0; i<=nbin3_8_10; i++) binLim3[i+nbin3_0_4+nbin3_4_8]=(Double_t)ptmin_8_10 + (ptmax_8_10-ptmin_8_10)/nbin3_8_10*(Double_t)i ; 
-
-       // ptKa
-       for(Int_t i=0; i<=nbin4_0_4; i++) binLim4[i]=(Double_t)ptmin_0_4 + (ptmax_0_4-ptmin_0_4)/nbin4_0_4*(Double_t)i ; 
-       if (binLim4[nbin4_0_4] != ptmin_4_8)  {
-               Error("AliCFHeavyFlavourTaskMultiVar","Calculated bin lim for ptKa - 1st range - differs from expected!");
-       }
-       for(Int_t i=0; i<=nbin4_4_8; i++) binLim4[i+nbin4_0_4]=(Double_t)ptmin_4_8 + (ptmax_4_8-ptmin_4_8)/nbin4_4_8*(Double_t)i ; 
-       if (binLim4[nbin4_0_4+nbin4_4_8] != ptmin_8_10)  {
-               Error("AliCFHeavyFlavourTaskMultiVar","Calculated bin lim for ptKa - 2nd range - differs from expected!\n");
-       }
-       for(Int_t i=0; i<=nbin4_8_10; i++) binLim4[i+nbin4_0_4+nbin4_4_8]=(Double_t)ptmin_8_10 + (ptmax_8_10-ptmin_8_10)/nbin4_8_10*(Double_t)i ; 
-
-       // cT
-       for(Int_t i=0; i<=nbin5; i++) binLim5[i]=(Double_t)cTmin  + (cTmax-cTmin)  /nbin5*(Double_t)i ;
-
-       Info("AliCFHeavyFlavourTaskMultiVar","Printing lower limits for bins in pt");
-       for (Int_t i =0; i<= iBin[0]; i++){
-               Info("AliCFHeavyFlavourTaskMultiVar",Form("i-th bin, lower limit = %f", binLim0[i]));
-       }
-       Info("Printing lower limits for bins in ptPi");
-       for (Int_t i =0; i<= iBin[3]; i++){
-               Info("AliCFHeavyFlavourTaskMultiVar",Form("i-th bin, lower limit = %f", binLim3[i]));
-       }
-       Info("Printing lower limits for bins in ptKa");
-       for (Int_t i =0; i<= iBin[4]; i++){
-               Info("AliCFHeavyFlavourTaskMultiVar",Form("i-th bin, lower limit = %f", binLim4[i]));
-       }
-
-       //one "container" for MC
-       AliCFContainer* container = new AliCFContainer("container","container for tracks",nstep,nvar,iBin);
-       //setting the bin limits
-       container -> SetBinLimits(ipt,binLim0);
-       container -> SetBinLimits(iy,binLim1);
-       container -> SetBinLimits(icosThetaStar,binLim2);
-       container -> SetBinLimits(ipTpi,binLim3);
-       container -> SetBinLimits(ipTk,binLim4);
-       container -> SetBinLimits(icT,binLim5);
-       
-       //CREATE THE  CUTS -----------------------------------------------
-       
-       // Gen-Level kinematic cuts
-       AliCFTrackKineCuts *mcKineCuts = new AliCFTrackKineCuts("mcKineCuts","MC-level kinematic cuts");
-       //   mcKineCuts->SetPtRange(ptmin,ptmax);
-       //   mcKineCuts->SetRapidityRange(ymin,ymax);
-       //   mcKineCuts->SetChargeMC(charge);
-       
-       //Particle-Level cuts:  
-       AliCFParticleGenCuts* mcGenCuts = new AliCFParticleGenCuts("mcGenCuts","MC particle generation cuts");
-       //mcGenCuts->SetRequireIsPrimary();
-       mcGenCuts->SetRequirePdgCode(PDG, kTRUE);  // kTRUE set in order to include D0_bar
-       mcGenCuts->SetAODMC(1); //special flag for reading MC in AOD tree (important)
-       
-       // Rec-Level kinematic cuts
-       AliCFTrackKineCuts *recKineCuts = new AliCFTrackKineCuts("recKineCuts","rec-level kine cuts");
-       //   recKineCuts->SetPtRange(ptmin,ptmax);
-       //   recKineCuts->SetRapidityRange(ymin,ymax);
-       //   recKineCuts->SetChargeRec(charge);
-       
-       AliCFTrackQualityCuts *recQualityCuts = new AliCFTrackQualityCuts("recQualityCuts","rec-level quality cuts");
-       //recQualityCuts->SetStatus(AliESDtrack::kITSrefit);
-       
-       AliCFTrackIsPrimaryCuts *recIsPrimaryCuts = new AliCFTrackIsPrimaryCuts("recIsPrimaryCuts","rec-level isPrimary cuts");
-       //recIsPrimaryCuts->SetAODType(AliAODTrack::kPrimary);
-       
-       printf("CREATE MC KINE CUTS\n");
-       TObjArray* mcList = new TObjArray(0) ;
-       mcList->AddLast(mcKineCuts);
-       mcList->AddLast(mcGenCuts);
-       
-       printf("CREATE RECONSTRUCTION CUTS\n");
-       TObjArray* recList = new TObjArray(0) ;
-       recList->AddLast(recKineCuts);
-       recList->AddLast(recQualityCuts);
-       recList->AddLast(recIsPrimaryCuts);
-       
-       //CREATE THE INTERFACE TO CORRECTION FRAMEWORK USED IN THE TASK
-       printf("CREATE INTERFACE AND CUTS\n");
-       AliCFManager* man = new AliCFManager() ;
-       man->SetParticleContainer     (container);
-       man->SetParticleCutsList(0 , mcList); // MC
-       man->SetParticleCutsList(1 , recList); // AOD
-       
-       //CREATE THE TASK
-       printf("CREATE TASK\n");
-       // create the task
-       AliCFHeavyFlavourTaskMultiVar *task = new AliCFHeavyFlavourTaskMultiVar("AliCFHeavyFlavourTaskMultiVar");
-       task->SetFillFromGenerated(kFALSE);
-       task->SetCFManager(man); //here is set the CF manager
-       
-       //SETUP THE ANALYSIS MANAGER TO READ INPUT CHAIN AND WRITE DESIRED OUTPUTS
-       printf("CREATE ANALYSIS MANAGER\n");
-       // Make the analysis manager
-       AliAnalysisManager *mgr = new AliAnalysisManager("TestManager");
-       
-       mgr->SetAnalysisType(AliAnalysisManager::kLocalAnalysis);
-       
-       AliAODInputHandler* dataHandler = new AliAODInputHandler();
-       mgr->SetInputEventHandler(dataHandler);
-       
-       // Create and connect containers for input/output
-       
-       // ------ input data ------
-       AliAnalysisDataContainer *cinput0  = mgr->GetCommonInputContainer();
-       
-       // ----- output data -----
-       
-       //slot 0 : default output tree (by default handled by AliAnalysisTaskSE)
-       AliAnalysisDataContainer *coutput0 = mgr->CreateContainer("ctree0", TTree::Class(),AliAnalysisManager::kOutputContainer,"output.root");
-       
-       //now comes user's output objects :
-       
-       // output TH1I for event counting
-       AliAnalysisDataContainer *coutput1 = mgr->CreateContainer("chist0", TH1I::Class(),AliAnalysisManager::kOutputContainer,"output.root");
-       // output Correction Framework Container (for acceptance & efficiency calculations)
-       AliAnalysisDataContainer *coutput2 = mgr->CreateContainer("ccontainer0", AliCFContainer::Class(),AliAnalysisManager::kOutputContainer,"output.root");
-       
-       //cinput0->SetData(chainAOD);
-       
-       mgr->AddTask(task);
-       
-       mgr->ConnectInput(task,0,mgr->GetCommonInputContainer());
-       mgr->ConnectOutput(task,0,coutput0);
-       mgr->ConnectOutput(task,1,coutput1);
-       mgr->ConnectOutput(task,2,coutput2);
-       
-       /*
-       mgr->ConnectOutput(task,0,mgr->GetCommonOutputContainer());
-       mgr->ConnectOutput(task,1,mgr->GetCommonOutputContainer());
-       mgr->ConnectOutput(task,2,mgr->GetCommonOutputContainer());
-       */
-
-       printf("READY TO RUN\n");
-       //RUN !!!
-       if (mgr->InitAnalysis()) {
-               mgr->PrintStatus();
-               mgr->StartAnalysis("local",chainAOD);
-       }
-       
-       benchmark.Stop("AliCFHeavyFlavourTaskMultiVar");
-       benchmark.Show("AliCFHeavyFlavourTaskMultiVar");
-       
-       return kTRUE ;
-}
index 3601f278870fd670f7be379a78ebe7af91caddd8..46d387bdb5749921d795369111b66c4ea8af02cd 100644 (file)
@@ -80,6 +80,52 @@ AliHFMassFitter::AliHFMassFitter (TH1F *histoToFit, Double_t minvalue, Double_t
   else  cout<<"Type of fit For Background = "<<ftypeOfFit4Bkg<<endl;
 }
 
+//_________________________________________________________________________
+
+AliHFMassFitter::AliHFMassFitter(const AliHFMassFitter &mfit):
+  TNamed(),
+  fhistoInvMass(mfit.fhistoInvMass),
+  fminMass(mfit.fminMass),
+  fmaxMass(mfit.fmaxMass),
+  fNbin(mfit.fNbin),
+  fWithBkg(mfit.fWithBkg),
+  ftypeOfFit4Bkg(mfit.ftypeOfFit4Bkg),
+  ftypeOfFit4Sgn(mfit.ftypeOfFit4Sgn),
+  ffactor(mfit.ffactor),
+  fntuParam(mfit.fntuParam),
+  fMass(mfit.fMass),
+  fSigmaSgn(mfit.fSigmaSgn),
+  fSideBands(mfit.fSideBands)
+
+{
+  //copy constructor
+  for(Int_t i=0;i<30;i++) fFitPars[i]=mfit.fFitPars[i];
+}
+
+//_________________________________________________________________________
+
+AliHFMassFitter& AliHFMassFitter::operator=(const AliHFMassFitter &mfit){
+
+  //assignment operator
+
+  if(&mfit == this) return *this;
+  fhistoInvMass= mfit.fhistoInvMass;
+  fminMass= mfit.fminMass;
+  fmaxMass= mfit.fmaxMass;
+  fNbin= mfit.fNbin;
+  fWithBkg= mfit.fWithBkg;
+  ftypeOfFit4Bkg= mfit.ftypeOfFit4Bkg;
+  ftypeOfFit4Sgn= mfit.ftypeOfFit4Sgn;
+  ffactor= mfit.ffactor;
+  fntuParam= mfit.fntuParam;
+  fMass= mfit.fMass;
+  fSigmaSgn= mfit.fSigmaSgn;
+  fSideBands= mfit.fSideBands;
+  for(Int_t i=0;i<30;i++) fFitPars[i]=mfit.fFitPars[i];
+
+  return *this;
+}
+
 //___________________________________________________________________________
 
 Double_t AliHFMassFitter::FitFunction4MassDistr (Double_t *x, Double_t *par){
@@ -455,7 +501,7 @@ void AliHFMassFitter::MassFitter(Bool_t draw){
     cout<<i<<"\t"<<fFitPars[i]<<endl;
     }
   */
-  /*
+  
   if(draw){
     TCanvas *canvas=new TCanvas("canvas",fhistoInvMass->GetName());
     TH1F *fhistocopy=new TH1F(*fhistoInvMass);
@@ -473,15 +519,15 @@ void AliHFMassFitter::MassFitter(Bool_t draw){
     funcmass->Draw("sames");
     
   }
-  */
+  
 }
 
 //_________________________________________________________________________
-void  AliHFMassFitter::GetFitPars(Float_t *vector25) const {
+void  AliHFMassFitter::GetFitPars(Float_t *params) const {
   // Return fit parameters
 
-  for(Int_t i=0;i<25;i++){
-    vector25[i]=fFitPars[i];
+  for(Int_t i=0;i<30;i++){
+    params[i]=fFitPars[i];
   }
 }
 
@@ -730,3 +776,4 @@ void AliHFMassFitter::Significance(Double_t nOfSigma,Double_t &significance,Doub
 }
 
 //__________________________________________________________________________
+
index ed4e2a23040610599343e119f4636bf98c8b13f2..3668f57a1962f1e9698761c9e36a3817ef86b039 100644 (file)
@@ -28,9 +28,11 @@ class AliHFMassFitter : public TNamed {
   AliHFMassFitter(TH1F* histoToFit, Double_t minvalue, Double_t maxvalue, Int_t rebin=1,Int_t fittypeb=0,Int_t fittypes=0);
   virtual ~AliHFMassFitter(){if(fhistoInvMass) delete fhistoInvMass; if(fntuParam) delete fntuParam;}
 
+  AliHFMassFitter(const AliHFMassFitter &mfit);
+  AliHFMassFitter& operator=(const AliHFMassFitter &mfit);
 
   //setters
-  void     SetHisto(TH1F *histoToFit){fhistoInvMass=histoToFit;};
+  void     SetHisto(TH1F *histoToFit) {fhistoInvMass=histoToFit;}
   void     SetRangeFit(Double_t minvalue, Double_t maxvalue){fminMass=minvalue; fmaxMass=maxvalue;};
   void     SetMinRangeFit(Double_t minvalue){fminMass=minvalue;};
   void     SetMaxRangeFit(Double_t maxvalue){fmaxMass=maxvalue;};
@@ -68,7 +70,7 @@ class AliHFMassFitter : public TNamed {
 
  private:
 
-  TH1F*    fhistoInvMass;  // histogram to fit
+  TH1F    *fhistoInvMass;  // histogram to fit
   Double_t fminMass;       // lower mass limit
   Double_t fmaxMass;       // upper mass limit
   Int_t    fNbin;          // number of bins
@@ -87,3 +89,4 @@ class AliHFMassFitter : public TNamed {
 
 #endif
 
+