]> git.uio.no Git - u/mrichter/AliRoot.git/commitdiff
Update from satya : HM Analysis
authorsjena <sjena@cern.ch>
Fri, 4 Jul 2014 13:28:57 +0000 (15:28 +0200)
committersjena <sjena@cern.ch>
Fri, 4 Jul 2014 13:28:57 +0000 (15:28 +0200)
PWGCF/EBYE/PIDFluctuation/macros/AddAliEbyEPidBayesTTask.C [new file with mode: 0644]
PWGCF/EBYE/PIDFluctuation/task/AliEbyEPidTTask.cxx

diff --git a/PWGCF/EBYE/PIDFluctuation/macros/AddAliEbyEPidBayesTTask.C b/PWGCF/EBYE/PIDFluctuation/macros/AddAliEbyEPidBayesTTask.C
new file mode 100644 (file)
index 0000000..db1ae45
--- /dev/null
@@ -0,0 +1,75 @@
+//=========================================================================//
+//                                                                         //
+//           Analysis AddTask for Particle Ratio Fluctuation Study         //
+//              Author: Deepika Rathee  || Satyajit Jenara                 //
+//                      drathee@cern.ch || sjena@cern.ch 
+//                        Thu Jun 19 11:44:51 CEST 2014
+//                                                                         //
+//=========================================================================//
+
+void AddAliEbyEPidBayesTTask(Double_t ptl=0.5, 
+                       Int_t AODfilterBit = 768, 
+                       Int_t pidtype = 3, 
+                       Int_t requestTofPid = 1, 
+                       Double_t nSigmaCut = 3., 
+                       Bool_t isMC = 0, 
+                       TString centralityEstimator = "V0M", 
+                       TString ctaskname = "2011") {
+
+  TString taskname = "EbyECF_";
+  taskname += ctaskname;
+  taskname += "_";
+  taskname += Form("%d",isMC);
+  taskname += "_";
+  taskname += centralityEstimator;
+  taskname += "_";
+  taskname += Form("%d",AODfilterBit);
+  
+    AliAnalysisManager *mgr = AliAnalysisManager::GetAnalysisManager();
+  if (!mgr) {
+    ::Error("AddTaskFluctuations", "No analysis manager to connect to.");
+    return NULL;
+  }
+
+  if (!mgr->GetInputEventHandler()) {
+    ::Error("AddTaskFluctuations", "This task requires an input event handler");
+    return NULL;
+  }
+  TString type = mgr->GetInputEventHandler()->GetDataType(); 
+
+  TString basefilename = AliAnalysisManager::GetCommonFileName();
+  
+
+  AliHelperPID* help = new AliHelperPID();
+  help->SetNSigmaCut(nSigmaCut);
+  help->SetPIDType(pidtype);
+  if (requestTofPid) help->SetfRequestTOFPID(requestTofPid);
+  if (ptl != 0 ) help->SetfPtTOFPID(ptl);
+  
+  if (pidtype == 3){
+    AliPIDCombined *pidc=new AliPIDCombined();
+    pidc->SetDefaultTPCPriors();
+    help->SetPIDCombined(pidc);
+  }
+  
+  AliEbyEPidTTask *taskqa;
+  taskqa = new AliEbyEPidTTask(taskname.Data());
+  taskqa->SetAODtrackCutBit(AODfilterBit);
+  taskqa->SetCentralityEstimator(centralityEstimator.Data());
+  taskqa->SetAnalysisType(isMC);
+  taskqa->SetHelperPID(help);
+  mgr->AddTask(taskqa);
+  
+  AliAnalysisDataContainer *coutqa = mgr->CreateContainer(Form("%s_QA",taskname.Data()),TList::Class(),AliAnalysisManager::kOutputContainer, Form("%s",basefilename.Data()));
+  AliAnalysisDataContainer *coutt = mgr->CreateContainer("fEventTree",TTree::Class(),AliAnalysisManager::kOutputContainer, Form("%s",basefilename.Data()));
+
+  mgr->ConnectInput(taskqa, 0, mgr->GetCommonInputContainer());
+  mgr->ConnectOutput(taskqa, 1, coutqa);
+ mgr->ConnectOutput(taskqa, 2, coutt);
+  return;
+}
index 157ddea2023f5d4aa86cbaea3c5fa1a421e70cee..31431b16230441a0252d31e90734e04b0120d49e 100644 (file)
@@ -38,6 +38,7 @@
 #include "AliAODMCParticle.h"
 #include "AliAODMCHeader.h"
 #include "AliPIDResponse.h"
+#include "AliPIDCombined.h"
 #include "AliAODHeader.h"
 #include "AliAODpidUtil.h"
 #include "AliHelperPID.h"
@@ -87,7 +88,7 @@ AliEbyEPidTTask::~AliEbyEPidTTask() {
   //!   Cleaning up
   if (fThnList)   delete fThnList;
   if (fHelperPID) delete fHelperPID;
-  //  if (fEventTree) delete fEventTree;
+  if (fEventTree) delete fEventTree;
 }
 
 //---------------------------------------------------------------------------------
@@ -102,9 +103,11 @@ void AliEbyEPidTTask::UserCreateOutputObjects() {
   for (Int_t ikey = 0; ikey < ll->GetEntries(); ikey++) {
     fThnList->Add(ll->At(ikey));
   }
-  
+  TDirectory *owd = gDirectory;
+  OpenFile(1);
   fEventTree = new TTree("fEventTree","fEventTree");
-  
+  owd->cd();
+
   fEventTree->Branch("fRunNumber",      &fRunNumber,     "fRunNumber/I");
   fEventTree->Branch("fFilterBit",      &fFilterBit,     "fFilterBit/I");
   fEventTree->Branch("fNumberOfTracks", &fNumberOfTracks,"fNumberOfTracks/I");
@@ -182,6 +185,12 @@ void AliEbyEPidTTask::UserExec( Option_t * ){
   fVertexY = vertex->GetY();
   fVertexZ = vertex->GetZ();
   
+//Default TPC priors
+  if(fHelperPID->GetPIDType()==kBayes)fHelperPID->GetPIDCombined()->SetDefaultTPCPriors();//FIXME maybe this can go in the UserCreateOutputObject?
+
+
+
+
   Int_t iTracks = 0; 
   for (Int_t itrk = 0; itrk < event->GetNumberOfTracks(); itrk++) {
     AliAODTrack* track = dynamic_cast<AliAODTrack *>(event->GetTrack(itrk));
@@ -202,14 +211,14 @@ void AliEbyEPidTTask::UserExec( Option_t * ){
     
     if (track->Charge()  < 0 ) b = -1*b;
     
-       Int_t icharge = track->Charge() > 0 ? 0 : 1;
+    //    Int_t icharge = track->Charge() > 0 ? 0 : 1;
 
     // cout << icharge << "  " << track->Charge() << endl;
 
     fTrackPt[iTracks]     = (Float_t)track->Pt();
     fTrackPhi[iTracks]    = (Float_t)track->Phi();
     fTrackEta[iTracks]    = (Float_t)track->Eta();
-    fTrackCharge[iTracks] = icharge;
+    fTrackCharge[iTracks] = track->Charge();
     fTrackPid[iTracks] = b;
     iTracks++;
   }