--- /dev/null
+//=========================================================================//
+// //
+// 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;
+}
#include "AliAODMCParticle.h"
#include "AliAODMCHeader.h"
#include "AliPIDResponse.h"
+#include "AliPIDCombined.h"
#include "AliAODHeader.h"
#include "AliAODpidUtil.h"
#include "AliHelperPID.h"
//! Cleaning up
if (fThnList) delete fThnList;
if (fHelperPID) delete fHelperPID;
- // if (fEventTree) delete fEventTree;
+ if (fEventTree) delete fEventTree;
}
//---------------------------------------------------------------------------------
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");
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));
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++;
}