#include "AliAnalysisVertexingHF.h"
#include "AliESDtrack.h"
#include "AliAODMCParticle.h"
-#include "AliAnalysisTaskSE.h"
-#include "AliAnalysisTaskSEDStarSpectra.h"
#include "AliNormalizationCounter.h"
+#include "AliAODEvent.h"
+#include "AliAnalysisTaskSEDStarSpectra.h"
ClassImp(AliAnalysisTaskSEDStarSpectra)
Int_t checkOrigin = CheckOrigin(mcArray,partDSt);
if(checkOrigin==5) isPrimary=kFALSE;
AliAODMCParticle *dg0 = (AliAODMCParticle*)mcArray->At(partDSt->GetDaughter(0));
- AliAODMCParticle *dg0_1 = (AliAODMCParticle*)mcArray->At(dg0->GetDaughter(0));
+ AliAODMCParticle *dg01 = (AliAODMCParticle*)mcArray->At(dg0->GetDaughter(0));
truePt=dg0->Pt();
- xDecay=dg0_1->Xv();
- yDecay=dg0_1->Yv();
- zDecay=dg0_1->Zv();
+ xDecay=dg01->Xv();
+ yDecay=dg01->Yv();
+ zDecay=dg01->Zv();
pdgCode=TMath::Abs(partDSt->GetPdgCode());
if(!isPrimary){
trueImpParXY=GetTrueImpactParameterD0(mcHeader,mcArray,dg0)*1000.;
// rare D search ------
if(fDoSearch){
- TLorentzVector LorentzTrack1(0,0,0,0); // lorentz 4 vector
- TLorentzVector LorentzTrack2(0,0,0,0); // lorentz 4 vector
+ TLorentzVector lorentzTrack1(0,0,0,0); // lorentz 4 vector
+ TLorentzVector lorentzTrack2(0,0,0,0); // lorentz 4 vector
for (Int_t i=0; i<aodEvent->GetNTracks(); i++){
//build the D1 mass
Double_t mass = TDatabasePDG::Instance()->GetParticle(211)->Mass();
- LorentzTrack1.SetPxPyPzE( dstarD0pi->Px(),dstarD0pi->Py(), dstarD0pi->Pz(), dstarD0pi->E(413) );
- LorentzTrack2.SetPxPyPzE( aodTrack->Px(),aodTrack->Py(), aodTrack->Pz(),aodTrack->E(mass) );
+ lorentzTrack1.SetPxPyPzE( dstarD0pi->Px(),dstarD0pi->Py(), dstarD0pi->Pz(), dstarD0pi->E(413) );
+ lorentzTrack2.SetPxPyPzE( aodTrack->Px(),aodTrack->Py(), aodTrack->Pz(),aodTrack->E(mass) );
//D1 mass
- Double_t d1mass = ((LorentzTrack1+LorentzTrack2).M());
+ Double_t d1mass = ((lorentzTrack1+lorentzTrack2).M());
//mass difference - at 0.4117 and 0.4566
fDeltaMassD1->Fill(d1mass-dstarD0pi->InvMassDstarKpipi());
}
}
//___________________________________ hiostograms _______________________________________
void AliAnalysisTaskSEDStarSpectra::DefineHistograms(){
+ // Create histograms
fCEvents = new TH1F("fCEvents","conter",11,0,11);
fCEvents->SetStats(kTRUE);
}
}
//-------------------------------------------------------------------------------
-Int_t AliAnalysisTaskSEDStarSpectra::CheckOrigin(TClonesArray* arrayMC, AliAODMCParticle *mcPartCandidate) const {
+Int_t AliAnalysisTaskSEDStarSpectra::CheckOrigin(TClonesArray* arrayMC, const AliAODMCParticle *mcPartCandidate) const {
//
// checking whether the mother of the particles come from a charm or a bottom quark
//
else return 4;
}
//-------------------------------------------------------------------------------------
-Float_t AliAnalysisTaskSEDStarSpectra::GetTrueImpactParameterD0(AliAODMCHeader *mcHeader, TClonesArray* arrayMC, AliAODMCParticle *partDp) const {
+Float_t AliAnalysisTaskSEDStarSpectra::GetTrueImpactParameterD0(const AliAODMCHeader *mcHeader, TClonesArray* arrayMC, const AliAODMCParticle *partDp) const {
// true impact parameter calculation
Double_t vtxTrue[3];
/* $Id$ */
#include <TH2F.h>
-#include "TROOT.h"
-#include "TSystem.h"
#include <THnSparse.h>
#include "AliAnalysisTaskSE.h"
-#include "AliAODEvent.h"
-#include "AliRDHFCutsDStartoKpipi.h"
-#include "AliNormalizationCounter.h"
+
+class AliRDHFCutsDStartoKpipi;
+class AliNormalizationCounter;
class AliAnalysisTaskSEDStarSpectra : public AliAnalysisTaskSE
{
// histos
void FillSpectrum(AliAODRecoCascadeHF *part, Int_t isDStar, AliRDHFCutsDStartoKpipi *cuts, Int_t isSel, TList *listout);
void DefineHistograms();
- Int_t CheckOrigin(TClonesArray* arrayMC, AliAODMCParticle *mcPartCandidate) const;
+ Int_t CheckOrigin(TClonesArray* arrayMC, const AliAODMCParticle *mcPartCandidate) const;
void CreateImpactParameterHistos();
// set analysis type
Bool_t GetRareSearch() const {return fDoSearch;}
//impact par study
void SetDoImpactParameterHistos(Bool_t doImp=kTRUE){fDoImpParDstar=doImp;}
- Bool_t GetDoImpactParameterHistos(){return fDoImpParDstar;}
+ Bool_t GetDoImpactParameterHistos() const {return fDoImpParDstar;}
- Float_t GetTrueImpactParameterD0(AliAODMCHeader *mcHeader, TClonesArray* arrayMC, AliAODMCParticle *partDp) const;
+ Float_t GetTrueImpactParameterD0(const AliAODMCHeader *mcHeader, TClonesArray* arrayMC, const AliAODMCParticle *partDp) const;
private:
return;
}
//_________________________________________________________________________________________________
-Int_t AliAnalysisTaskSEDplus::CheckOrigin(TClonesArray* arrayMC, AliAODMCParticle *mcPartCandidate) const {
+Int_t AliAnalysisTaskSEDplus::CheckOrigin(TClonesArray* arrayMC, const AliAODMCParticle *mcPartCandidate) const {
//
// checking whether the mother of the particles come from a charm or a bottom quark
//
else return 4;
}
//_________________________________________________________________________________________________
-Float_t AliAnalysisTaskSEDplus::GetTrueImpactParameter(AliAODMCHeader *mcHeader, TClonesArray* arrayMC, AliAODMCParticle *partDp) const {
+Float_t AliAnalysisTaskSEDplus::GetTrueImpactParameter(const AliAODMCHeader *mcHeader, TClonesArray* arrayMC, const AliAODMCParticle *partDp) const {
// true impact parameter calculation
Double_t vtxTrue[3];
-#ifndef ALIANALYSISTASKDPLUS_H
-#define ALIANALYSISTASKDPLUS_H
+#ifndef ALIANALYSISTASKSEDPLUS_H
+#define ALIANALYSISTASKSEDPLUS_H
/* Copyright(c) 1998-2008, ALICE Experiment at CERN, All rights reserved. *
* See cxx source for full Copyright notice */
Int_t GetNBinsHistos();
void LSAnalysis(TClonesArray *arrayOppositeSign,TClonesArray *arrayLikeSign,AliAODEvent *aod,AliAODVertex *vtx1, Int_t nDplusOS);
- Int_t CheckOrigin(TClonesArray* arrayMC, AliAODMCParticle *mcPartCandidate) const;
+ Int_t CheckOrigin(TClonesArray* arrayMC, const AliAODMCParticle *mcPartCandidate) const;
void CreateLikeSignHistos();
void CreateImpactParameterHistos();
Int_t GetSignalHistoIndex(Int_t iPtBin) const { return iPtBin*3+1;}
Int_t GetBackgroundHistoIndex(Int_t iPtBin) const { return iPtBin*3+2;}
Int_t GetLSHistoIndex(Int_t iPtBin)const { return iPtBin*5;}
- Float_t GetTrueImpactParameter(AliAODMCHeader *mcHeader, TClonesArray* arrayMC, AliAODMCParticle *partDp) const;
+ Float_t GetTrueImpactParameter(const AliAODMCHeader *mcHeader, TClonesArray* arrayMC, const AliAODMCParticle *partDp) const;
enum {kMaxPtBins=20};
if(GetLambdacDaugh(motherPart,arrayMC)){lambdacLab[i]=motherLabel;continue;}
}
if(motherPdg==313 || motherPdg==2224 || motherPdg==3124){
- Int_t GmotherLabel=motherPart->GetMother();
- if(GmotherLabel<0) return 0;
- AliAODMCParticle *GmotherPart = (AliAODMCParticle*)arrayMC->At(GmotherLabel);
- if(!GmotherPart) continue;
- Int_t GmotherPdg = TMath::Abs(GmotherPart->GetPdgCode());
- if(GmotherPdg==4122) {
- if(GetLambdacDaugh(GmotherPart,arrayMC)) {lambdacLab[i]=GmotherLabel;continue;}
+ Int_t granMotherLabel=motherPart->GetMother();
+ if(granMotherLabel<0) return 0;
+ AliAODMCParticle *granMotherPart = (AliAODMCParticle*)arrayMC->At(granMotherLabel);
+ if(!granMotherPart) continue;
+ Int_t granMotherPdg = TMath::Abs(granMotherPart->GetPdgCode());
+ if(granMotherPdg==4122) {
+ if(GetLambdacDaugh(granMotherPart,arrayMC)) {lambdacLab[i]=granMotherLabel;continue;}
}
}
}
// check if the particle is a lambdac and if its decay mode is the correct one
Int_t numberOfLambdac=0;
if(TMath::Abs(part->GetPdgCode())!=4122) return kFALSE;
- Int_t daugh_tmp[2];
- daugh_tmp[0]=part->GetDaughter(0);
- daugh_tmp[1]=part->GetDaughter(1);
+ Int_t daughTmp[2];
+ daughTmp[0]=part->GetDaughter(0);
+ daughTmp[1]=part->GetDaughter(1);
Int_t nDaugh = (Int_t)part->GetNDaughters();
if(nDaugh<2) return kFALSE;
if(nDaugh>3) return kFALSE;
AliAODEvent* aod,
TClonesArray *arrMC)
{
+ // FillAPrioriConcentrations
cuts->SetUsePID(kFALSE); //Annalisa
Int_t isSelected3ProngByLc=cuts->IsSelected(part,AliRDHFCuts::kCandidate,aod);
}
//-----------------------
-Bool_t AliAnalysisTaskSELambdac::IsTrackFromPDG(AliAODTrack *daugh,
+Bool_t AliAnalysisTaskSELambdac::IsTrackFromPDG(const AliAODTrack *daugh,
TClonesArray *arrayMC,
Int_t pdgToBeCompared)
{
}
//_________________________________
-///////////////estimate primaries
-Int_t AliAnalysisTaskSELambdac::NumberPrimaries(AliAODEvent *aods)
+Int_t AliAnalysisTaskSELambdac::NumberPrimaries(const AliAODEvent *aods)
{
+// estimate primaries
Int_t counter=0;
Bool_t &flag1,Bool_t &flag2,Bool_t &flag3,
Bool_t &flag4, Bool_t &flag5, Bool_t &flag6)
{
+ // Multiplicity studies
TString fillthis="";
-#ifndef ALIANALYSISTASKLAMBDAC_H
-#define ALIANALYSISTASKLAMBDAC_H
+#ifndef ALIANALYSISTASKSELAMBDAC_H
+#define ALIANALYSISTASKSELAMBDAC_H
/* Copyright(c) 1998-2008, ALICE Experiment at CERN, All rights reserved. *
* See cxx source for full Copyright notice */
void FillMassHists(AliAODEvent *aod,AliAODRecoDecayHF3Prong *part, TClonesArray *arrayMC, AliRDHFCutsLctopKpi *cuts);
void FillVarHists(AliAODRecoDecayHF3Prong *part, TClonesArray *arrMC, AliRDHFCutsLctopKpi *cuts, /*TList *listout,*/ AliAODEvent *aod);
Bool_t Is3ProngFromPDG(AliAODRecoDecayHF3Prong *part, TClonesArray *arrMC, Int_t pdgToBeCompared=4);
- Bool_t IsTrackFromPDG(AliAODTrack *daugh, TClonesArray *arrayMC, Int_t pdgToBeCompared);
+ Bool_t IsTrackFromPDG(const AliAODTrack *daugh, TClonesArray *arrayMC, Int_t pdgToBeCompared);
Bool_t IsThereAGeneratedLc(TClonesArray *arrayMC);
- Int_t NumberPrimaries(AliAODEvent *aods);
+ Int_t NumberPrimaries(const AliAODEvent *aods);
// Implementation of interface methods
virtual void UserCreateOutputObjects();
virtual void Init();
Bool_t fUseKF; //flag to cut with KF vertexer
Bool_t fAnalysis; //apply analysis cuts
AliAnalysisVertexingHF *fVHF; // Vertexer heavy flavour (used to pass the cuts)
- Bool_t fFillVarHists;
- Bool_t fMultiplicityHists;
- Bool_t fPriorsHists;
- TH1F *fNentries;
- TList *fOutputMC;
- TList *fAPriori;
- TList *fMultiplicity;
+ Bool_t fFillVarHists; // flag for creation and fill of histograms with vars
+ Bool_t fMultiplicityHists; // flag for activation of multiplcity histos
+ Bool_t fPriorsHists; // flag for histos with priors
+ TH1F *fNentries; // histo with number of entries
+ TList *fOutputMC; // output1
+ TList *fAPriori; // output2
+ TList *fMultiplicity; // output3
//AliAODpidUtil* fUtilPid;
AliPIDResponse *fPIDResponse; //! PID response object