//\r
// Init histograms\r
//\r
- const Int_t ptNbins = 56; \r
+ const Int_t ptNbins = 58; \r
const Double_t ptMin = 0.; \r
- const Double_t ptMax = 16.; \r
+ const Double_t ptMax = 20.; \r
\r
- Double_t binsPt[ptNbins+1] = {0.,0.05,0.1,0.15,0.2,0.25,0.3,0.35,0.4,0.45,0.5,0.55,0.6,0.65,0.7,0.75,0.8,0.85,0.9,0.95,1.0,1.1,1.2,1.3,1.4,1.5,1.6,1.7,1.8,1.9,2.0,2.2,2.4,2.6,2.8,3.0,3.2,3.4,3.6,3.8,4.0,4.5,5.0,5.5,6.0,6.5,7.0,7.5,8.0,9.0,10.0,11.0,12.0,13.0,14.0,15.0,16.0};\r
+ Double_t binsPt[ptNbins+1] = {0.,0.05,0.1,0.15,0.2,0.25,0.3,0.35,0.4,0.45,0.5,0.55,0.6,0.65,0.7,0.75,0.8,0.85,0.9,0.95,1.0,1.1,1.2,1.3,1.4,1.5,1.6,1.7,1.8,1.9,2.0,2.2,2.4,2.6,2.8,3.0,3.2,3.4,3.6,3.8,4.0,4.5,5.0,5.5,6.0,6.5,7.0,7.5,8.0,9.0,10.0,11.0,12.0,13.0,14.0,15.0,16.0,18.0, 20.};\r
\r
// \r
Int_t binsEventCount[2]={2,2};\r
\r
//nClust:chi2PerClust:nClust/nFindableClust:DCAy:DCAz:eta:phi:pt:hasStrangeMother:isPrim:polarity\r
Int_t binsRecMCTrackHist[11]={160,80,80,100,100,90,90,ptNbins, 3, 2, 2};\r
- Double_t minRecMCTrackHist[11]={0., 0., 0., -1.,-1.,-1.5, 0., ptMin, -1., 0., 0.};\r
- Double_t maxRecMCTrackHist[11]={160.,10.,1.2, 1.,1.,1.5, 2.*TMath::Pi(), ptMax, 2., 2., 2.};\r
+ Double_t minRecMCTrackHist[11]={0., 0., 0., -5.,-5.,-1.5, 0., ptMin, -1., 0., 0.};\r
+ Double_t maxRecMCTrackHist[11]={160.,10.,1.2, 5.,5.,1.5, 2.*TMath::Pi(), ptMax, 2., 2., 2.};\r
\r
fRecMCTrackHist = new THnSparseF("fRecMCTrackHist","nClust:chi2PerClust:nClust/nFindableClust:DCAy:DCAz:eta:phi:pt:kinkIdx:isPrim:polarity",11,binsRecMCTrackHist,minRecMCTrackHist,maxRecMCTrackHist);\r
fRecMCTrackHist->SetBinEdges(7,binsPt);\r
Bool_t isRecVertex = kTRUE;\r
if(evtCuts->IsRecVertexRequired()) \r
{\r
-// Bool_t bRedoTPCVertex = evtCuts->IsRedoTPCVertex();\r
- //Bool_t bUseConstraints = evtCuts->IsUseBeamSpotConstraint();\r
- //vtxESD = AlidNdPtHelper::GetVertex(esdEvent,evtCuts,accCuts,esdTrackCuts,GetAnalysisMode(),kFALSE,bRedoTPCVertex,bUseConstraints); \r
- //isRecVertex = AlidNdPtHelper::TestRecVertex(vtxESD, esdEvent->GetPrimaryVertexSPD(), GetAnalysisMode(), kFALSE);\r
- if(GetAnalysisMode() == AlidNdPtHelper::kTPC) {\r
- vtxESD = esdEvent->GetPrimaryVertexTPC();\r
- //isRecVertex = AlidNdPtHelper::TestRecVertex(vtxESD, esdEvent->GetPrimaryVertexSPD(), GetAnalysisMode(), kFALSE);\r
+ if(GetAnalysisMode() == AlidNdPtHelper::kTPC) {\r
+ vtxESD = esdEvent->GetPrimaryVertexTPC();\r
}\r
}\r
\r
AliESDtrack *track = (AliESDtrack*)allChargedTracks->At(i);\r
if(!track) continue;\r
\r
- if(!esdTrackCuts->AcceptTrack(track)) continue;\r
+ //if(!esdTrackCuts->AcceptTrack(track)) continue;\r
FillHistograms(track, stack);\r
multAll++;\r
}\r
// Fill rec vs MC information\r
//\r
Bool_t isPrim = kTRUE;\r
- Bool_t hasStrangeMother = kTRUE;\r
+ Bool_t hasStrangeMother = kFALSE;\r
\r
if(IsUseMCInfo()) {\r
if(!stack) return;\r
if(motherLabel>0) mother = stack->Particle(motherLabel); \r
if(mother) motherPdg = TMath::Abs(mother->GetPdgCode()); // take abs for visualisation only \r
Int_t mech = particle->GetUniqueID(); // production mechanism \r
+\r
+ if( (motherPdg == 3122) || (motherPdg == -3122) || (motherPdg == 310)) // lambda, antilambda, k0s\r
+ {\r
+ if( (mech == 4) || (mech == 5) ) hasStrangeMother = kTRUE;\r
+ }\r
}\r
\r
// fill histo\r
enum ParticleMode { kAllPart = 0, kMCPion, kMCKaon, kMCProton, kPlus, kMinus, kCosmic, kBackgroundTrack, kMCRest, kVZEROCase1, kVZEROCase2};
- enum OutputObject { kInvalidObject = -1, kCutAnalysis = 0, kAnalysis, kAnalysisPbPb , kCorrection, kSystematics };
+ enum OutputObject { kInvalidObject = -1, kCutAnalysis = 0, kAnalysis, kAnalysisPbPb, kCorrection, kSystematics, kCutAnalysisPbPb };
enum TrackObject { kInvalidTrackObject = -1, kAllTracks = 0, kAccTracks, kRecTracks, kMCTracks };
enum EventObject { kInvalidEventObject = -1, kAllEvents = 0, kTriggeredEvents, kAccEvents, kRecEvents, kMCEvents };
static Double_t GetStrangenessCorrFactor(const Double_t pt);
static Double_t GetLinearInterpolationValue(const Double_t x1, const Double_t y1, const Double_t x2, const Double_t y2, const Double_t pt);
- ClassDef(AlidNdPtHelper, 0);
+ ClassDef(AlidNdPtHelper, 1);
private:
AlidNdPtHelper(const AlidNdPtHelper&);
return 0;
}
+
+ Bool_t hasMC=(AliAnalysisManager::GetAnalysisManager()->GetMCtruthEventHandler()!=0x0);
+// Bool_t hasMC= kFALSE;
+
+
// Switch off all AliInfo (too much output!!!)
AliLog::SetGlobalLogLevel(AliLog::kError);
mgr->SetDebugLevel(0);
//
// Create physics trigger selection class
//
- AliPhysicsSelection *physTrigSel = new AliPhysicsSelection();
+
+
+AliPhysicsSelection *physTrigSel = new AliPhysicsSelection();
//
// Create event cuts
esdTrackCuts->SetHistogramsOn(kTRUE);
}
-
- Bool_t hasMC=(AliAnalysisManager::GetAnalysisManager()->GetMCtruthEventHandler()!=0x0);
-
//
// Create task
//
AlidNdPtTask *task = new AlidNdPtTask("AlidNdPtTask");
task->SetUseMCInfo(hasMC);
+ //TString datatype=gSystem->Getenv("CONFIG_FILE");
+ //if ( datatype == "PbPb" ){
+ // task->SelectCollisionCandidates(AliVEvent::kUserDefined);
+ //}
+ //else
+ task->SelectCollisionCandidates(AliVEvent::kMB);
+
+
+// }
+// else
+// task->SelectCollisionCandidates();
+
//
- // set analysis options from the Helper here !!!
+ // set analysis options from the Helper here
//
AlidNdPtHelper::OutputObject outputObject = AlidNdPtHelper::kAnalysisPbPb;
AlidNdPtHelper::AnalysisMode analysisMode = AlidNdPtHelper::kTPC ;
task->AddAnalysisObject( fdNdPtAnalysisPbPb );
}
+
+ // Centrality
+ task->SetUseCentrality(1); // 0=off, 1=VZERO, 2=SPD
+ task->SetUseCentralityBin(0); // Bin to be used 0,5,10,20,30,40,50,60,70,80,90,(100=SPDonly)
+ // 0 = most centrality
- // create analysis object
- if(outputObject==AlidNdPtHelper::kAnalysis)
- {
- AlidNdPtAnalysis *fdNdPtAnalysis = new AlidNdPtAnalysis("dNdPtAnalysis","dN/dPt Analysis");
- fdNdPtAnalysis->SetEventCuts(evtCuts);
- fdNdPtAnalysis->SetAcceptanceCuts(accCuts);
- fdNdPtAnalysis->SetTrackCuts(esdTrackCuts);
- fdNdPtAnalysis->SetAnalysisMode(analysisMode);
- fdNdPtAnalysis->SetParticleMode(particleMode);
- if(hasMC)
- {
- physTrigSel->SetAnalyzeMC();
- fdNdPtAnalysis->SetPhysicsTriggerSelection(physTrigSel);
- fdNdPtAnalysis->SetUseMCInfo(kTRUE);
- fdNdPtAnalysis->SetHistogramsOn(kTRUE);
- //fdNdPtAnalysis->SetHistogramsOn(kFALSE);
- }
- else { // online trigger
- fdNdPtAnalysis->SetPhysicsTriggerSelection(physTrigSel);
- }
-
- task->AddAnalysisObject( fdNdPtAnalysis );
- }
+ // Centrality
+ task->SetUseCentrality(1); // 0=off, 1=VZERO, 2=SPD
+ task->SetUseCentralityBin(0); // Bin to be used 0,5,10,20,30,40,50,60,70,80,90,(100=SPDonly)
+ // 0 = most centrality
// Add task
mgr->AddTask(task);