39 #include <TParticle.h>
40 #include <TParticlePDG.h>
44 #include <THnSparse.h>
47 #include <TDatabasePDG.h>
48 #include <AliAnalysisDataSlot.h>
49 #include <AliAnalysisDataContainer.h>
51 #include "AliMCEvent.h"
52 #include "AliAnalysisManager.h"
53 #include "AliAODMCHeader.h"
54 #include "AliAODHandler.h"
56 #include "AliExternalTrackParam.h"
57 #include "AliAODVertex.h"
58 #include "AliAODRecoDecay.h"
62 #include "AliESDtrack.h"
63 #include "AliAODTrack.h"
65 #include "AliAODMCParticle.h"
66 #include "AliAnalysisTaskSE.h"
70 #include "AliInputEventHandler.h"
71 #include "AliESDtrackCuts.h"
72 #include "AliNeutralTrackParam.h"
90 fUseOnTheFlyV0(kFALSE),
91 fIsEventSelected(kFALSE),
92 fWriteVariableTree(kFALSE),
94 fCandidateVariables(),
97 fAdditionalChecks(kFALSE),
98 fTrackRotation(kFALSE),
100 fMinAngleForRot(5*TMath::Pi()/6),
101 fMaxAngleForRot(7*TMath::Pi()/6),
105 fPtMinToFillTheTree(0.),
106 fPtMaxToFillTheTree(999.),
107 fUseTPCPIDtoFillTree(kFALSE),
114 Double_t mLcPDG = TDatabasePDG::Instance()->GetParticle(4122)->Mass();
122 Bool_t writeVariableTree, Bool_t additionalChecks, Bool_t trackRotation, Bool_t useTPCpid, Char_t sign) :
123 AliAnalysisTaskSE(name),
131 fUseOnTheFlyV0(useOnTheFly),
132 fIsEventSelected(kFALSE),
133 fWriteVariableTree(writeVariableTree),
135 fCandidateVariables(),
138 fAdditionalChecks(additionalChecks),
139 fTrackRotation(trackRotation),
141 fMinAngleForRot(5*TMath::Pi()/6),
142 fMaxAngleForRot(7*TMath::Pi()/6),
146 fPtMinToFillTheTree(0.),
147 fPtMaxToFillTheTree(999.),
148 fUseTPCPIDtoFillTree(useTPCpid),
154 Info(
"AliAnalysisTaskSELc2V0bachelor",
"Calling Constructor");
161 Double_t mLcPDG = TDatabasePDG::Instance()->GetParticle(4122)->Mass();
165 DefineOutput(1,TList::Class());
166 DefineOutput(2,AliNormalizationCounter::Class());
167 DefineOutput(3,AliRDHFCutsLctoV0::Class());
168 if (!writeVariableTree) {
169 DefineOutput(4,TList::Class());
170 DefineOutput(5,TList::Class());
172 DefineOutput(6,TList::Class());
176 DefineOutput(4,TTree::Class());
188 Info(
"~AliAnalysisTaskSELc2V0bachelor",
"Calling Destructor");
234 if (fDebug > 1) AliInfo(
"Init");
246 AliError(
"NO EVENT FOUND!");
250 AliAODEvent* aodEvent =
dynamic_cast<AliAODEvent*
>(fInputEvent);
251 TClonesArray *arrayLctopKos=0;
253 if (!aodEvent && AODEvent() && IsStandardAOD()) {
256 aodEvent =
dynamic_cast<AliAODEvent*
> (AODEvent());
259 AliAODHandler* aodHandler = (AliAODHandler*)
260 ((AliAnalysisManager::GetAnalysisManager())->GetOutputEventHandler());
262 if (aodHandler->GetExtensions()) {
263 AliAODExtension *ext = (AliAODExtension*)aodHandler->GetExtensions()->FindObject(
"AliAOD.VertexingHF.root");
264 AliAODEvent *aodFromExt = ext->GetAOD();
265 arrayLctopKos=(TClonesArray*)aodFromExt->GetList()->FindObject(
"CascadesHF");
268 arrayLctopKos=(TClonesArray*)aodEvent->GetList()->FindObject(
"CascadesHF");
277 fVtx1 = (AliAODVertex*)aodEvent->GetPrimaryVertex();
286 fBzkG = (Double_t)aodEvent->GetMagneticField();
287 if (TMath::Abs(
fBzkG)<0.001)
return;
290 if (!arrayLctopKos) {
291 AliInfo(
"Could not find array of HF cascades, skipping the event");
294 if (arrayLctopKos->GetEntriesFast()) {
295 AliInfo(Form(
"Found %d cascades",arrayLctopKos->GetEntriesFast()));
301 TClonesArray *mcArray = 0;
302 AliAODMCHeader *mcHeader=0;
306 mcArray =
dynamic_cast<TClonesArray*
>(aodEvent->FindListObject(AliAODMCParticle::StdBranchName()));
308 AliError(
"Could not find Monte-Carlo in AOD");
314 mcHeader = (AliAODMCHeader*)aodEvent->GetList()->FindObject(AliAODMCHeader::StdBranchName());
316 AliError(
"AliAnalysisTaskSELc2V0bachelor::UserExec: MC header branch not found!\n");
321 Double_t zMCVertex = mcHeader->GetVtxZ();
323 AliDebug(2,Form(
"Event rejected: abs(zVtxMC)=%f > fAnalCuts->GetMaxVtxZ()=%f",zMCVertex,
fAnalCuts->
GetMaxVtxZ()));
330 Int_t runnumber = aodEvent->GetRunNumber();
331 if (aodEvent->GetTriggerMask() == 0 && (runnumber >= 195344 && runnumber <= 195677)){
332 AliDebug(3,
"Event rejected because of null trigger mask");
338 if (
fVtx1->GetNContributors()>0)
344 Int_t nSelectedAnal = 0;
377 AliAnalysisTaskSE::Terminate();
379 fOutput =
dynamic_cast<TList*
> (GetOutputData(1));
381 AliError(
"fOutput not available");
387 fOutputAll =
dynamic_cast<TList*
> (GetOutputData(4));
389 AliError(
"fOutputAll not available");
395 AliError(
"fOutputPIDBach not available");
402 AliError(
"fOutputPIDBachTR not available");
410 AliError(
"fVariablesTree not available");
420 AliInfo(Form(
"CreateOutputObjects of task %s\n", GetName()));
467 TClonesArray *mcArray,
468 Int_t &nSelectedAnal,
474 Int_t pdgCand = 4122;
475 Int_t pdgDgLctoV0bachelor[2]={2212,310};
476 Int_t pdgDgV0toDaughters[2]={211,211};
479 Int_t nCascades= arrayLctopKos->GetEntriesFast();
481 AliInfo(
"Could not find cascades, skipping the event");
485 for (Int_t iLctopK0S = 0; iLctopK0S<nCascades; iLctopK0S++) {
487 ((TH1F*)(
fOutput->FindObject(
"hCandidateSelection")))->Fill(0);
492 AliDebug(2,Form(
"Cascade %d doens't exist, skipping",iLctopK0S));
496 Bool_t unsetvtx=kFALSE;
502 if (!lcK0Spr->GetSecondaryVtx()) {
503 AliInfo(
"No secondary vertex");
507 if (lcK0Spr->GetNDaughters()!=2) {
508 AliDebug(2,Form(
"Cascade %d has not 2 daughters (nDaughters=%d)",iLctopK0S,lcK0Spr->GetNDaughters()));
512 if ( (
fSign == 0 && lcK0Spr->Charge()<0) ||
513 (
fSign == 1 && lcK0Spr->Charge()>0) ) {
514 AliDebug(2,Form(
"Charge of the cascade %d is different with respect to the required one",iLctopK0S));
518 AliAODv0 * v0part =
dynamic_cast<AliAODv0*
>(lcK0Spr->
Getv0());
519 AliAODTrack * bachPart =
dynamic_cast<AliAODTrack*
>(lcK0Spr->
GetBachelor());
520 if (!v0part || !bachPart) {
521 AliDebug(2,Form(
"Cascade %d has no V0 or no bachelor object",iLctopK0S));
525 if (!v0part->GetSecondaryVtx()) {
526 AliDebug(2,Form(
"No secondary vertex for V0 by cascade %d",iLctopK0S));
530 if (v0part->GetNDaughters()!=2) {
531 AliDebug(2,Form(
"current V0 has not 2 daughters (onTheFly=%d, nDaughters=%d)",v0part->GetOnFlyStatus(),v0part->GetNDaughters()));
537 if (!v0Neg || !v0Pos) {
538 AliDebug(2,Form(
"V0 by cascade %d has no V0positive of V0negative object",iLctopK0S));
542 ((TH1F*)(
fOutput->FindObject(
"hCandidateSelection")))->Fill(1);
544 if (v0Pos->Charge() == v0Neg->Charge())
continue;
546 ((TH1F*)(
fOutput->FindObject(
"hCandidateSelection")))->Fill(2);
555 Int_t mcLabel = lcK0Spr->
MatchToMC(pdgCand,pdgDgLctoV0bachelor[1],pdgDgLctoV0bachelor,pdgDgV0toDaughters,mcArray,kTRUE);
557 AliDebug(2,Form(
" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~cascade number %d (total cascade number = %d)", iLctopK0S,nCascades));
559 AliAODMCParticle *partLc =
dynamic_cast<AliAODMCParticle*
>(mcArray->At(mcLabel));
561 pdgCode = partLc->GetPdgCode();
562 if (pdgCode<0) AliDebug(2,Form(
" ¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯ MClabel=%d ~~~~~~~~~~ pdgCode=%d", mcLabel, pdgCode));
563 pdgCode = TMath::Abs(pdgCode);
567 AliDebug(2,Form(
"No MC candidate (cascade number %d -total cascade number = %d -)", iLctopK0S,nCascades));
573 nSelectedAnal, cutsAnal,
580 AliDebug(2, Form(
"Found %d Reco particles that are Lc!!", nSelectedAnal));
588 Int_t &nSelectedAnal,
590 TClonesArray *mcArray)
598 AliAODTrack *bachelor = (AliAODTrack*)part->
GetBachelor();
599 Double_t momBach = bachelor->P();
601 AliAODv0 * v0part = (AliAODv0*)part->
Getv0();
602 Bool_t onFlyV0 = v0part->GetOnFlyStatus();
652 Double_t invmassK0S = v0part->MassK0Short();
653 Double_t mk0sPDG = TDatabasePDG::Instance()->GetParticle(310)->Mass();
654 Double_t nSigmaTPCpr=-999.;
656 if ( !onFlyV0 && isInCascadeWindow &&
672 Int_t pdgCand1 = 4122;
673 Int_t pdgDgLctoV0bachelor1[2]={2212,310};
674 Int_t pdgDgV0toDaughters1[2]={211,211};
675 Int_t mcLabel1=part->
MatchToMC(pdgCand1,pdgDgLctoV0bachelor1[1],pdgDgLctoV0bachelor1,pdgDgV0toDaughters1,mcArray,kTRUE);
676 AliDebug(2,Form(
" Found true MC candidate: Lc->pK0S(%d) - onTheFly=%1d",mcLabel1,onFlyV0));
680 Double_t nSigmaTPCpr=-999.;
682 Double_t nSigmaTOFpr=-999.;
685 Double_t nSigmaTPCpi=-999.;
687 Double_t nSigmaTOFpi=-999.;
690 Double_t nSigmaTPCka=-999.;
692 Double_t nSigmaTOFka=-999.;
697 fillthis=
"histArmPodK0S";
700 fillthis=
"histArmPodLc";
709 fillthis=
"histArmPodK0SOffline";
712 fillthis=
"histArmPodLcOffline";
716 if (isCandidateSelectedCuts) {
717 fillthis=
"histoprotonBachSigmaVspTOF";
718 ((TH2F*)(
fOutput->FindObject(fillthis)))->Fill(momBach,nSigmaTOFpr);
719 fillthis=
"histoprotonBachSigmaVspTPC";
720 ((TH2F*)(
fOutput->FindObject(fillthis)))->Fill(momBach,nSigmaTPCpr);
728 fillthis=
"histArmPodK0SSgn";
731 fillthis=
"histArmPodLcSgn";
740 fillthis=
"histArmPodK0SOfflineSgn";
743 fillthis=
"histArmPodLcOfflineSgn";
747 if (isCandidateSelectedCuts) {
748 fillthis=
"histoprotonBachSigmaVspTOFsgn";
749 ((TH2F*)(
fOutput->FindObject(fillthis)))->Fill(momBach,nSigmaTOFpr);
750 fillthis=
"histoprotonBachSigmaVspTPCsgn";
751 ((TH2F*)(
fOutput->FindObject(fillthis)))->Fill(momBach,nSigmaTPCpr);
759 fillthis=
"histArmPodK0SBkg";
762 fillthis=
"histArmPodLcBkg";
771 fillthis=
"histArmPodK0SOfflineBkg";
774 fillthis=
"histArmPodLcOfflineBkg";
778 if (isCandidateSelectedCuts) {
779 fillthis=
"histoprotonBachSigmaVspTOFbkg";
780 ((TH2F*)(
fOutput->FindObject(fillthis)))->Fill(momBach,nSigmaTOFpr);
781 fillthis=
"histoprotonBachSigmaVspTPCbkg";
782 ((TH2F*)(
fOutput->FindObject(fillthis)))->Fill(momBach,nSigmaTPCpr);
796 Double_t mLcPDG = TDatabasePDG::Instance()->GetParticle(4122)->Mass();
797 Double_t mK0SPDG = TDatabasePDG::Instance()->GetParticle(310)->Mass();
798 Double_t mMinLambdaPDG = TDatabasePDG::Instance()->GetParticle(2212)->Mass()+
799 TDatabasePDG::Instance()->GetParticle(211)->Mass();
801 TString nameHisto=
" ", nameHistoSgn=
" ", nameHistoBkg=
" ";
802 TString titleHisto=
" ", titleHistoSgn=
" ", titleHistoBkg=
" ";
805 Double_t *binLimpTLc=
new Double_t[11+1];
820 Double_t *binLimpTprong=
new Double_t[41+1];
821 binLimpTprong[ 0]= 0.0;
822 binLimpTprong[ 1]= 0.1;
823 binLimpTprong[ 2]= 0.2;
824 binLimpTprong[ 3]= 0.3;
825 binLimpTprong[ 4]= 0.4;
826 binLimpTprong[ 5]= 0.5;
827 binLimpTprong[ 6]= 0.6;
828 binLimpTprong[ 7]= 0.7;
829 binLimpTprong[ 8]= 0.8;
830 binLimpTprong[ 9]= 0.9;
831 binLimpTprong[10]= 1.0;
832 binLimpTprong[11]= 1.2;
833 binLimpTprong[12]= 1.4;
834 binLimpTprong[13]= 1.6;
835 binLimpTprong[14]= 1.8;
836 binLimpTprong[15]= 2.0;
837 binLimpTprong[16]= 2.2;
838 binLimpTprong[17]= 2.4;
839 binLimpTprong[18]= 2.6;
840 binLimpTprong[19]= 2.8;
841 binLimpTprong[20]= 3.0;
842 binLimpTprong[21]= 3.5;
843 binLimpTprong[22]= 4.0;
844 binLimpTprong[23]= 4.5;
845 binLimpTprong[24]= 5.0;
846 binLimpTprong[25]= 5.5;
847 binLimpTprong[26]= 6.0;
848 binLimpTprong[27]= 6.5;
849 binLimpTprong[28]= 7.0;
850 binLimpTprong[29]= 7.5;
851 binLimpTprong[30]= 8.0;
852 binLimpTprong[31]= 9.0;
853 binLimpTprong[32]=10.0;
854 binLimpTprong[33]=11.0;
855 binLimpTprong[34]=12.0;
856 binLimpTprong[35]=13.0;
857 binLimpTprong[36]=14.0;
858 binLimpTprong[37]=15.0;
859 binLimpTprong[38]=20.0;
860 binLimpTprong[39]=25.0;
861 binLimpTprong[40]=30.0;
862 binLimpTprong[41]=35.0;
867 nameHisto=
"histK0SMass";
868 titleHisto=
"K^{0}_{S} invariant mass VS p_{T}; p_{T}(#Lambda_{c}) [GeV/c]; m_{inv}(#pi^{+},#pi^{-}) [GeV/c^{2}]; Entries";
869 TH2F* spectrumK0SMass =
new TH2F(nameHisto.Data(),titleHisto.Data(),11,binLimpTLc,1000,mK0SPDG-0.050,mK0SPDG+0.050);
872 nameHisto=
"histLcMassByK0S";
873 titleHisto=
"#Lambda_{c} invariant mass (by K^{0}_{S}) vs p_{T}; m_{inv}(p,K^{0}_{S}) [GeV/c^{2}]; p_{T}(#Lambda_{c}) [GeV/c]";
874 TH2F* spectrumLcMassByK0S =
new TH2F(nameHisto.Data(),titleHisto.Data(),1000,mLcPDG-0.250,mLcPDG+0.250,11,binLimpTLc);
876 nameHisto=
"histpK0Svsp";
877 titleHisto=
"p(K^{0}_{S}) vs p(p); p(p) [GeV/c]; p(K^{0}_{S}) [GeV/c]";
878 TH2F* momentumDistributionK0Svsp =
new TH2F(nameHisto.Data(),titleHisto.Data(),41,binLimpTprong,41,binLimpTprong);
880 nameHisto=
"histArmPodK0S";
881 titleHisto=
"V0-candidate Armenteros-Podolanski distribution; #frac{p_{L}^{+}-p_{L}^{-}}{p_{L}^{+}+p_{L}^{-}}; p_{T}^{+} [GeV/c]";
882 TH2F* armenterosPodK0S =
new TH2F(nameHisto.Data(),titleHisto.Data(),200,-1.,1.,300,0.,0.3);
884 nameHisto=
"histArmPodLc";
885 titleHisto=
"#Lambda_{c}-candidate Armenteros-Podolanski distribution; #frac{p_{L}^{+}-p_{L}^{-}}{p_{L}^{+}+p_{L}^{-}}; p_{T}^{+} [GeV/c]";
886 TH2F* armenterosPodLc =
new TH2F(nameHisto.Data(),titleHisto.Data(),200,-4.,4.,800,0.,1.6);
888 TH2F* allspectrumK0SMass = (TH2F*)spectrumK0SMass->Clone();
889 TH2F* allspectrumLcMassByK0S = (TH2F*)spectrumLcMassByK0S->Clone();
890 TH2F* allmomentumDistributionK0Svsp = (TH2F*)momentumDistributionK0Svsp->Clone();
891 TH2F* allArmenterosPodK0S = (TH2F*)armenterosPodK0S->Clone();
892 TH2F* allArmenterosPodLc = (TH2F*)armenterosPodLc->Clone();
894 TH2F* pidBachspectrumK0SMass = (TH2F*)spectrumK0SMass->Clone();
895 TH2F* pidBachspectrumLcMassByK0S = (TH2F*)spectrumLcMassByK0S->Clone();
896 TH2F* pidBachmomentumDistributionK0Svsp = (TH2F*)momentumDistributionK0Svsp->Clone();
897 TH2F* pidBachArmenterosPodK0S = (TH2F*)armenterosPodK0S->Clone();
898 TH2F* pidBachArmenterosPodLc = (TH2F*)armenterosPodLc->Clone();
902 fOutputAll->Add(allmomentumDistributionK0Svsp);
912 nameHisto=
"histArmPodK0S0";
913 titleHisto=
"V0-candidate Armenteros-Podolanski distribution; #frac{p_{L}^{+}-p_{L}^{-}}{p_{L}^{+}+p_{L}^{-}}; p_{T}^{+} [GeV/c]";
914 TH2F* armenterosPodK0S0 =
new TH2F(nameHisto.Data(),titleHisto.Data(),200,-1.,1.,300,0.,0.3);
915 nameHisto=
"histArmPodLc0";
916 titleHisto=
"#Lambda_{c}-candidate Armenteros-Podolanski distribution; #frac{p_{L}^{+}-p_{L}^{-}}{p_{L}^{+}+p_{L}^{-}}; p_{T}^{+} [GeV/c]";
917 TH2F* armenterosPodLc0 =
new TH2F(nameHisto.Data(),titleHisto.Data(),200,-4.,4.,800,0.,1.6);
923 TH2F* pidBachTRspectrumLcMassByK0S = (TH2F*)spectrumLcMassByK0S->Clone();
929 nameHisto=
"histptK0S";
930 titleHisto=
"p_{T}(K^{0}_{S}) vs p_{T}(#Lambda_{c}); p_{T}(#Lambda_{c}) [GeV/c]; p_{T}(K^{0}_{S}) [GeV/c]; Entries";
931 TH2F* ptK0S =
new TH2F(nameHisto.Data(),titleHisto.Data(),11,binLimpTLc,41,binLimpTprong);
934 titleHisto=
"p_{T}(p) vs p_{T}(#Lambda_{c}); p_{T}(#Lambda_{c}) [GeV/c]; p_{T}(p) [GeV/c]; Entries";
935 TH2F* ptP =
new TH2F(nameHisto.Data(),titleHisto.Data(),11,binLimpTLc,41,binLimpTprong);
937 nameHisto=
"histptPip";
938 titleHisto=
"p_{T}(#pi^{+}) vs p_{T}(#Lambda_{c}); p_{T}(#Lambda_{c}) [GeV/c]; p_{T}(#pi^{+}) [GeV/c]; Entries";
939 TH2F* ptPiP =
new TH2F(nameHisto.Data(),titleHisto.Data(),11,binLimpTLc,41,binLimpTprong);
941 nameHisto=
"histptPim";
942 titleHisto=
"p_{T}(#pi^{-}) vs p_{T}(#Lambda_{c}); p_{T}(#Lambda_{c}) [GeV/c]; p_{T}(#pi^{-}) [GeV/c]; Entries";
943 TH2F* ptPiM =
new TH2F(nameHisto.Data(),titleHisto.Data(),11,binLimpTLc,41,binLimpTprong);
945 nameHisto=
"histLambdaMass";
946 titleHisto=
"m_{inv}(p,#pi^{-}) vs p_{T}(#Lambda_{c}); p_{T}(#Lambda_{c}) [GeV/c]; m_{inv}(p,#pi^{-}) [GeV/c^{2}]; Entries";
947 TH2F* massLambda =
new TH2F(nameHisto.Data(),titleHisto.Data(),11,binLimpTLc,1000,mMinLambdaPDG,mMinLambdaPDG+0.5);
949 nameHisto=
"histLambdaBarMass";
950 titleHisto=
"m_{inv}(#bar{p},#pi^{+}) vs p_{T}(#Lambda_{c}); p_{T}(#Lambda_{c}) [GeV/c]; m_{inv}(#bar{p},#pi^{+}) [GeV/c^{2}]; Entries";
951 TH2F* massLambdaBar =
new TH2F(nameHisto.Data(),titleHisto.Data(),11,binLimpTLc,1000,mMinLambdaPDG,mMinLambdaPDG+0.5);
953 nameHisto=
"histGammaMass";
954 titleHisto=
"m_{inv}(e^{+},e^{-}) vs p_{T}(#Lambda_{c}); p_{T}(#Lambda_{c}) [GeV/c]; m_{inv}(e^{+},e^{-}) [GeV/c^{2}]; Entries";
955 TH2F* massGamma =
new TH2F(nameHisto.Data(),titleHisto.Data(),11,binLimpTLc,100,0.,1.);
957 nameHisto=
"histD0K0S";
958 titleHisto=
"d_{0}(K^{0}_{S}) vs p_{T}(#Lambda_{c}); p_{T}(#Lambda_{c}) [GeV/c]; d_{0}(K^{0}_{S}) [#sigmas]; Entries";
959 TH2F* d0K0S =
new TH2F(nameHisto.Data(),titleHisto.Data(),11,binLimpTLc,1000,-1.,1.);
962 titleHisto=
"d_{0}(p) vs p_{T}(#Lambda_{c}); p_{T}(#Lambda_{c}) [GeV/c]; d_{0}(p) [cm]; Entries";
963 TH2F* d0P =
new TH2F(nameHisto.Data(),titleHisto.Data(),11,binLimpTLc,1000,-1.,1.);
965 nameHisto=
"histCosPAK0S";
966 titleHisto=
"K^{0}_{S} cosine of pointing angle wrt primary vertex vs p_{T}(#Lambda_{c}); p_{T}(#Lambda_{c}) [GeV/c]; cosine; Entries";
967 TH2F *cosPAK0S =
new TH2F(nameHisto.Data(),titleHisto.Data(),41,binLimpTprong,100,0.99,1.);
969 TH2F* allptK0S = (TH2F*)ptK0S->Clone();
970 TH2F* allptP = (TH2F*)ptP->Clone();
971 TH2F* allptPiP = (TH2F*)ptPiP->Clone();
972 TH2F* allptPiM = (TH2F*)ptPiM->Clone();
973 TH2F* allmassLambda = (TH2F*)massLambda->Clone();
974 TH2F* allmassLambdaBar = (TH2F*)massLambdaBar->Clone();
975 TH2F* allmassGamma = (TH2F*)massGamma->Clone();
976 TH2F* alld0K0S = (TH2F*)d0K0S->Clone();
977 TH2F* alld0P = (TH2F*)d0P->Clone();
978 TH2F* allcosPAK0S = (TH2F*)cosPAK0S->Clone();
980 TH2F* pidptK0S = (TH2F*)ptK0S->Clone();
981 TH2F* pidptP = (TH2F*)ptP->Clone();
982 TH2F* pidptPiP = (TH2F*)ptPiP->Clone();
983 TH2F* pidptPiM = (TH2F*)ptPiM->Clone();
984 TH2F* pidmassLambda = (TH2F*)massLambda->Clone();
985 TH2F* pidmassLambdaBar = (TH2F*)massLambdaBar->Clone();
986 TH2F* pidmassGamma = (TH2F*)massGamma->Clone();
987 TH2F* pidd0K0S = (TH2F*)d0K0S->Clone();
988 TH2F* pidd0P = (TH2F*)d0P->Clone();
989 TH2F* pidcosPAK0S = (TH2F*)cosPAK0S->Clone();
1015 TH2F* pidTRptK0S = (TH2F*)ptK0S->Clone();
1016 TH2F* pidTRptP = (TH2F*)ptP->Clone();
1017 TH2F* pidTRptPiP = (TH2F*)ptPiP->Clone();
1018 TH2F* pidTRptPiM = (TH2F*)ptPiM->Clone();
1019 TH2F* pidTRmassLambda = (TH2F*)massLambda->Clone();
1020 TH2F* pidTRmassLambdaBar = (TH2F*)massLambdaBar->Clone();
1021 TH2F* pidTRmassGamma = (TH2F*)massGamma->Clone();
1022 TH2F* pidTRcosPAK0S = (TH2F*)cosPAK0S->Clone();
1037 nameHisto=
"histK0SMassOffline";
1038 titleHisto=
"K^{0}_{S} invariant mass VS p_{T}; p_{T}(#Lambda_{c}) [GeV/c]; m_{inv}(#pi^{+},#pi^{-}) [GeV/c^{2}]; Entries";
1039 TH2F* spectrumK0SMassOffline =
new TH2F(nameHisto.Data(),titleHisto.Data(),11,binLimpTLc,1000,mK0SPDG-0.050,mK0SPDG+0.050);
1042 nameHisto=
"histLcMassByK0SOffline";
1043 titleHisto=
"#Lambda_{c} invariant mass (by K^{0}_{S}) vs p_{T}; m_{inv}(p,K^{0}_{S}) [GeV/c^{2}]; p_{T}(#Lambda_{c}) [GeV/c]";
1044 TH2F* spectrumLcMassOfflineByK0S =
new TH2F(nameHisto.Data(),titleHisto.Data(),1000,mLcPDG-0.250,mLcPDG+0.250,11,binLimpTLc);
1046 nameHisto=
"histpK0SvspOffline";
1047 titleHisto=
"p(K^{0}_{S}) vs p(p); p(p) [GeV/c]; p(K^{0}_{S}) [GeV/c]";
1048 TH2F* momentumDistributionK0SvspOffline =
new TH2F(nameHisto.Data(),titleHisto.Data(),41,binLimpTprong,41,binLimpTprong);
1050 nameHisto=
"histArmPodK0SOffline";
1051 titleHisto=
"V0-candidate Armenteros-Podolanski distribution; #frac{p_{L}^{+}-p_{L}^{-}}{p_{L}^{+}+p_{L}^{-}}; p_{T}^{+} [GeV/c]";
1052 TH2F* armenterosPodK0SOffline =
new TH2F(nameHisto.Data(),titleHisto.Data(),200,-1.,1.,300,0.,0.3);
1054 nameHisto=
"histArmPodLcOffline";
1055 titleHisto=
"#Lambda_{c}-candidate Armenteros-Podolanski distribution; #frac{p_{L}^{+}-p_{L}^{-}}{p_{L}^{+}+p_{L}^{-}}; p_{T}^{+} [GeV/c]";
1056 TH2F* armenterosPodLcOffline =
new TH2F(nameHisto.Data(),titleHisto.Data(),200,-4.,4.,800,0.,1.6);
1058 TH2F* allspectrumK0SMassOffline = (TH2F*)spectrumK0SMassOffline->Clone();
1059 TH2F* allspectrumLcMassOfflineByK0S = (TH2F*)spectrumLcMassOfflineByK0S->Clone();
1060 TH2F* allmomentumDistributionK0SvspOffline = (TH2F*)momentumDistributionK0SvspOffline->Clone();
1061 TH2F* allArmenterosPodK0SOffline = (TH2F*)armenterosPodK0SOffline->Clone();
1062 TH2F* allArmenterosPodLcOffline = (TH2F*)armenterosPodLcOffline->Clone();
1064 TH2F* pidBachspectrumK0SMassOffline = (TH2F*)spectrumK0SMassOffline->Clone();
1065 TH2F* pidBachspectrumLcMassOfflineByK0S = (TH2F*)spectrumLcMassOfflineByK0S->Clone();
1066 TH2F* pidBachmomentumDistributionK0SvspOffline = (TH2F*)momentumDistributionK0SvspOffline->Clone();
1067 TH2F* pidBachArmenterosPodK0SOffline = (TH2F*)armenterosPodK0SOffline->Clone();
1068 TH2F* pidBachArmenterosPodLcOffline = (TH2F*)armenterosPodLcOffline->Clone();
1071 fOutputAll->Add(allspectrumLcMassOfflineByK0S);
1072 fOutputAll->Add(allmomentumDistributionK0SvspOffline);
1082 nameHisto=
"histArmPodK0SOffline0";
1083 titleHisto=
"V0-candidate Armenteros-Podolanski distribution; #frac{p_{L}^{+}-p_{L}^{-}}{p_{L}^{+}+p_{L}^{-}}; p_{T}^{+} [GeV/c]";
1084 TH2F* armenterosPodK0SOffline0 =
new TH2F(nameHisto.Data(),titleHisto.Data(),200,-1.,1.,300,0.,0.3);
1085 nameHisto=
"histArmPodLcOffline0";
1086 titleHisto=
"#Lambda_{c}-candidate Armenteros-Podolanski distribution; #frac{p_{L}^{+}-p_{L}^{-}}{p_{L}^{+}+p_{L}^{-}}; p_{T}^{+} [GeV/c]";
1087 TH2F* armenterosPodLcOffline0 =
new TH2F(nameHisto.Data(),titleHisto.Data(),200,-4.,4.,800,0.,1.6);
1092 TH2F* pidBachTRspectrumLcMassOfflineByK0S = (TH2F*)spectrumLcMassOfflineByK0S->Clone();
1099 nameHisto=
"histptK0SOffline";
1100 titleHisto=
"p_{T}(K^{0}_{S}) vs p_{T}(#Lambda_{c}); p_{T}(#Lambda_{c}) [GeV/c]; p_{T}(K^{0}_{S}) [GeV/c]; Entries";
1101 TH2F* ptK0SOffline =
new TH2F(nameHisto.Data(),titleHisto.Data(),11,binLimpTLc,41,binLimpTprong);
1103 nameHisto=
"histptPOffline";
1104 titleHisto=
"p_{T}(p) vs p_{T}(#Lambda_{c}); p_{T}(#Lambda_{c}) [GeV/c]; p_{T}(p) [GeV/c]; Entries";
1105 TH2F* ptPOffline =
new TH2F(nameHisto.Data(),titleHisto.Data(),11,binLimpTLc,41,binLimpTprong);
1107 nameHisto=
"histptPipOffline";
1108 titleHisto=
"p_{T}(#pi^{+}) vs p_{T}(#Lambda_{c}); p_{T}(#Lambda_{c}) [GeV/c]; p_{T}(#pi^{+}) [GeV/c]; Entries";
1109 TH2F* ptPiPOffline =
new TH2F(nameHisto.Data(),titleHisto.Data(),11,binLimpTLc,41,binLimpTprong);
1111 nameHisto=
"histptPimOffline";
1112 titleHisto=
"p_{T}(#pi^{-}) vs p_{T}(#Lambda_{c}); p_{T}(#Lambda_{c}) [GeV/c]; p_{T}(#pi^{-}) [GeV/c]; Entries";
1113 TH2F* ptPiMOffline =
new TH2F(nameHisto.Data(),titleHisto.Data(),11,binLimpTLc,41,binLimpTprong);
1115 nameHisto=
"histLambdaMassOffline";
1116 titleHisto=
"m_{inv}(p,#pi^{-}) vs p_{T}(#Lambda_{c}); p_{T}(#Lambda_{c}) [GeV/c]; m_{inv}(p,#pi^{-}) [GeV/c^{2}]; Entries";
1117 TH2F* massLambdaOffline =
new TH2F(nameHisto.Data(),titleHisto.Data(),11,binLimpTLc,1000,mMinLambdaPDG,mMinLambdaPDG+0.5);
1119 nameHisto=
"histLambdaBarMassOffline";
1120 titleHisto=
"m_{inv}(#bar{p},#pi^{+}) vs p_{T}(#Lambda_{c}); p_{T}(#Lambda_{c}) [GeV/c]; m_{inv}(#bar{p},#pi^{+}) [GeV/c^{2}]; Entries";
1121 TH2F* massLambdaBarOffline =
new TH2F(nameHisto.Data(),titleHisto.Data(),11,binLimpTLc,1000,mMinLambdaPDG,mMinLambdaPDG+0.5);
1123 nameHisto=
"histGammaMassOffline";
1124 titleHisto=
"m_{inv}(e^{+},e^{-}) vs p_{T}(#Lambda_{c}); p_{T}(#Lambda_{c}) [GeV/c]; m_{inv}(e^{+},e^{-}) [GeV/c^{2}]; Entries";
1125 TH2F* massGammaOffline =
new TH2F(nameHisto.Data(),titleHisto.Data(),11,binLimpTLc,100,0.,1.);
1127 nameHisto=
"histD0K0SOffline";
1128 titleHisto=
"d_{0}(K^{0}_{S}) vs p_{T}(#Lambda_{c}); p_{T}(#Lambda_{c}) [GeV/c]; d_{0}(K^{0}_{S}) [#sigmas]; Entries";
1129 TH2F* d0K0SOffline =
new TH2F(nameHisto.Data(),titleHisto.Data(),11,binLimpTLc,1000,-1.,1.);
1131 nameHisto=
"histD0POffline";
1132 titleHisto=
"d_{0}(p) vs p_{T}(#Lambda_{c}); p_{T}(#Lambda_{c}) [GeV/c]; d_{0}(p) [cm]; Entries";
1133 TH2F* d0POffline =
new TH2F(nameHisto.Data(),titleHisto.Data(),11,binLimpTLc,1000,-1.,1.);
1135 nameHisto=
"histCosPAK0SOffline";
1136 titleHisto=
"K^{0}_{S} cosine of pointing angle wrt primary vertex vs p_{T}(#Lambda_{c}); p_{T}(#Lambda_{c}) [GeV/c]; cosine; Entries";
1137 TH2F *cosPAK0SOffline =
new TH2F(nameHisto.Data(),titleHisto.Data(),41,binLimpTprong,100,0.99,1.);
1139 TH2F* allptK0SOffline = (TH2F*)ptK0SOffline->Clone();
1140 TH2F* allptPOffline = (TH2F*)ptPOffline->Clone();
1141 TH2F* allptPiPOffline = (TH2F*)ptPiPOffline->Clone();
1142 TH2F* allptPiMOffline = (TH2F*)ptPiMOffline->Clone();
1143 TH2F* allmassLambdaOffline = (TH2F*)massLambdaOffline->Clone();
1144 TH2F* allmassLambdaBarOffline = (TH2F*)massLambdaBarOffline->Clone();
1145 TH2F* allmassGammaOffline = (TH2F*)massGammaOffline->Clone();
1146 TH2F* alld0K0SOffline = (TH2F*)d0K0SOffline->Clone();
1147 TH2F* alld0POffline = (TH2F*)d0POffline->Clone();
1148 TH2F* allcosPAK0SOffline = (TH2F*)cosPAK0SOffline->Clone();
1150 TH2F* pidptK0SOffline = (TH2F*)ptK0SOffline->Clone();
1151 TH2F* pidptPOffline = (TH2F*)ptPOffline->Clone();
1152 TH2F* pidptPiPOffline = (TH2F*)ptPiPOffline->Clone();
1153 TH2F* pidptPiMOffline = (TH2F*)ptPiMOffline->Clone();
1154 TH2F* pidmassLambdaOffline = (TH2F*)massLambdaOffline->Clone();
1155 TH2F* pidmassLambdaBarOffline = (TH2F*)massLambdaBarOffline->Clone();
1156 TH2F* pidmassGammaOffline = (TH2F*)massGammaOffline->Clone();
1157 TH2F* pidd0K0SOffline = (TH2F*)d0K0SOffline->Clone();
1158 TH2F* pidd0POffline = (TH2F*)d0POffline->Clone();
1159 TH2F* pidcosPAK0SOffline = (TH2F*)cosPAK0SOffline->Clone();
1185 TH2F* pidTRptK0SOffline = (TH2F*)ptK0SOffline->Clone();
1186 TH2F* pidTRptPOffline = (TH2F*)ptPOffline->Clone();
1187 TH2F* pidTRptPiPOffline = (TH2F*)ptPiPOffline->Clone();
1188 TH2F* pidTRptPiMOffline = (TH2F*)ptPiMOffline->Clone();
1189 TH2F* pidTRmassLambdaOffline = (TH2F*)massLambdaOffline->Clone();
1190 TH2F* pidTRmassLambdaBarOffline = (TH2F*)massLambdaBarOffline->Clone();
1191 TH2F* pidTRmassGammaOffline = (TH2F*)massGammaOffline->Clone();
1192 TH2F* pidTRcosPAK0SOffline = (TH2F*)cosPAK0SOffline->Clone();
1212 nameHistoSgn=
"histK0SMassSgn";
1213 nameHistoBkg=
"histK0SMassBkg";
1214 titleHistoSgn=
"K^{0}_{S} - sgn: invariant mass VS p_{T} - MC; p_{T}(#Lambda_{c}) [GeV/c]; m_{inv}(#pi^{+},#pi^{-}) [GeV/c^{2}]; Entries";
1215 titleHistoBkg=
"K^{0}_{S} - bkg: invariant mass VS p_{T} - MC; p_{T}(#Lambda_{c}) [GeV/c]; m_{inv}(#pi^{+},#pi^{-}) [GeV/c^{2}]; Entries";
1216 TH2F* spectrumK0SMassSgn =
new TH2F(nameHistoSgn.Data(),titleHistoSgn.Data(),11,binLimpTLc,1000,mK0SPDG-0.050,mK0SPDG+0.050);
1217 TH2F* spectrumK0SMassBkg =
new TH2F(nameHistoBkg.Data(),titleHistoBkg.Data(),11,binLimpTLc,1000,mK0SPDG-0.050,mK0SPDG+0.050);
1219 nameHistoSgn=
"histLcMassByK0SSgn";
1220 nameHistoBkg=
"histLcMassByK0SBkg";
1221 titleHistoSgn=
"#Lambda_{c} - sgn: invariant mass (by K^{0}_{S}) vs p_{T} - MC; m_{inv}(p,K^{0}_{S}) [GeV/c^{2}]; p_{T}(#Lambda_{c}) [GeV/c]";
1222 titleHistoBkg=
"#Lambda_{c} - bkg: invariant mass (by K^{0}_{S}) vs p_{T} - MC; m_{inv}(p,K^{0}_{S}) [GeV/c^{2}]; p_{T}(#Lambda_{c}) [GeV/c]";
1223 TH2F* spectrumLcMassByK0SSgn =
new TH2F(nameHistoSgn.Data(),titleHistoSgn.Data(),1000,mLcPDG-0.250,mLcPDG+0.250,11,binLimpTLc);
1224 TH2F* spectrumLcMassByK0SBkg =
new TH2F(nameHistoBkg.Data(),titleHistoBkg.Data(),1000,mLcPDG-0.250,mLcPDG+0.250,11,binLimpTLc);
1226 nameHistoSgn=
"histpK0SvspSgn";
1227 nameHistoBkg=
"histpK0SvspBkg";
1228 titleHistoSgn=
"#Lambda_{c} - sgn: K^{0}_{S} vs p Total Momentum Distribution - MC; p(p) [GeV/c]; p(K^{0}_{S}) [GeV/c]";
1229 titleHistoBkg=
"#Lambda_{c} - bkg: K^{0}_{S} vs p Total Momentum Distribution - MC; p(p) [GeV/c]; p(K^{0}_{S}) [GeV/c]";
1230 TH2F* momentumDistributionK0SvspSgn =
new TH2F(nameHistoSgn.Data(),titleHistoSgn.Data(),41,binLimpTprong,41,binLimpTprong);
1231 TH2F* momentumDistributionK0SvspBkg =
new TH2F(nameHistoBkg.Data(),titleHistoBkg.Data(),41,binLimpTprong,41,binLimpTprong);
1234 nameHistoSgn=
"histArmPodK0SSgn";
1235 nameHistoBkg=
"histArmPodK0SBkg";
1236 titleHistoSgn=
"V0-candidate Armenteros-Podolanski distribution (sgn); #frac{p_{L}^{+}-p_{L}^{-}}{p_{L}^{+}+p_{L}^{-}}; p_{T}^{+} [GeV/c]";
1237 titleHistoBkg=
"V0-candidate Armenteros-Podolanski distribution (bkg); #frac{p_{L}^{+}-p_{L}^{-}}{p_{L}^{+}+p_{L}^{-}}; p_{T}^{+} [GeV/c]";
1238 TH2F* armenterosPodK0SSgn =
new TH2F(nameHistoSgn.Data(),titleHistoSgn.Data(),200,-1.,1.,300,0.,0.3);
1239 TH2F* armenterosPodK0SBkg =
new TH2F(nameHistoBkg.Data(),titleHistoBkg.Data(),200,-1.,1.,300,0.,0.3);
1241 nameHistoSgn=
"histArmPodLcSgn";
1242 nameHistoBkg=
"histArmPodLcBkg";
1243 titleHistoSgn=
"#Lambda_{c}-candidate Armenteros-Podolanski distribution (sgn); #frac{p_{L}^{+}-p_{L}^{-}}{p_{L}^{+}+p_{L}^{-}}; p_{T}^{+} [GeV/c]";
1244 titleHistoBkg=
"#Lambda_{c}-candidate Armenteros-Podolanski distribution (bkg); #frac{p_{L}^{+}-p_{L}^{-}}{p_{L}^{+}+p_{L}^{-}}; p_{T}^{+} [GeV/c]";
1245 TH2F* armenterosPodLcSgn =
new TH2F(nameHistoSgn.Data(),titleHistoSgn.Data(),200,-4.,4.,800,0.,1.6);
1246 TH2F* armenterosPodLcBkg =
new TH2F(nameHistoBkg.Data(),titleHistoBkg.Data(),200,-4.,4.,800,0.,1.6);
1248 TH2F* allspectrumK0SMassSgn = (TH2F*)spectrumK0SMassSgn->Clone();
1249 TH2F* allspectrumK0SMassBkg = (TH2F*)spectrumK0SMassBkg->Clone();
1250 TH2F* allspectrumLcMassByK0SSgn = (TH2F*)spectrumLcMassByK0SSgn->Clone();
1251 TH2F* allspectrumLcMassByK0SBkg = (TH2F*)spectrumLcMassByK0SBkg->Clone();
1252 TH2F* allmomentumDistributionK0SvspSgn = (TH2F*)momentumDistributionK0SvspSgn->Clone();
1253 TH2F* allmomentumDistributionK0SvspBkg = (TH2F*)momentumDistributionK0SvspBkg->Clone();
1254 TH2F* allArmenterosPodK0SSgn = (TH2F*)armenterosPodK0SSgn->Clone();
1255 TH2F* allArmenterosPodK0SBkg = (TH2F*)armenterosPodK0SBkg->Clone();
1256 TH2F* allArmenterosPodLcSgn = (TH2F*)armenterosPodLcSgn->Clone();
1257 TH2F* allArmenterosPodLcBkg = (TH2F*)armenterosPodLcBkg->Clone();
1259 TH2F* pidBachspectrumK0SMassSgn = (TH2F*)spectrumK0SMassSgn->Clone();
1260 TH2F* pidBachspectrumK0SMassBkg = (TH2F*)spectrumK0SMassBkg->Clone();
1261 TH2F* pidBachspectrumLcMassByK0SSgn = (TH2F*)spectrumLcMassByK0SSgn->Clone();
1262 TH2F* pidBachspectrumLcMassByK0SBkg = (TH2F*)spectrumLcMassByK0SBkg->Clone();
1263 TH2F* pidBachmomentumDistributionK0SvspSgn = (TH2F*)momentumDistributionK0SvspSgn->Clone();
1264 TH2F* pidBachmomentumDistributionK0SvspBkg = (TH2F*)momentumDistributionK0SvspBkg->Clone();
1265 TH2F* pidBachArmenterosPodK0SSgn = (TH2F*)armenterosPodK0SSgn->Clone();
1266 TH2F* pidBachArmenterosPodK0SBkg = (TH2F*)armenterosPodK0SBkg->Clone();
1267 TH2F* pidBachArmenterosPodLcSgn = (TH2F*)armenterosPodLcSgn->Clone();
1268 TH2F* pidBachArmenterosPodLcBkg = (TH2F*)armenterosPodLcBkg->Clone();
1274 fOutputAll->Add(allmomentumDistributionK0SvspSgn);
1275 fOutputAll->Add(allmomentumDistributionK0SvspBkg);
1292 nameHistoSgn=
"histArmPodK0SSgn0";
1293 nameHistoBkg=
"histArmPodK0SBkg0";
1294 titleHistoSgn=
"V0-candidate Armenteros-Podolanski distribution (sgn); #frac{p_{L}^{+}-p_{L}^{-}}{p_{L}^{+}+p_{L}^{-}}; p_{T}^{+} [GeV/c]";
1295 titleHistoBkg=
"V0-candidate Armenteros-Podolanski distribution (bkg); #frac{p_{L}^{+}-p_{L}^{-}}{p_{L}^{+}+p_{L}^{-}}; p_{T}^{+} [GeV/c]";
1296 TH2F* armenterosPodK0SSgn0 =
new TH2F(nameHistoSgn.Data(),titleHistoSgn.Data(),200,-1.,1.,300,0.,0.3);
1297 TH2F* armenterosPodK0SBkg0 =
new TH2F(nameHistoBkg.Data(),titleHistoBkg.Data(),200,-1.,1.,300,0.,0.3);
1300 nameHistoSgn=
"histArmPodLcSgn0";
1301 nameHistoBkg=
"histArmPodLcBkg0";
1302 titleHistoSgn=
"#Lambda_{c}-candidate Armenteros-Podolanski distribution (sgn); #frac{p_{L}^{+}-p_{L}^{-}}{p_{L}^{+}+p_{L}^{-}}; p_{T}^{+} [GeV/c]";
1303 titleHistoBkg=
"#Lambda_{c}-candidate Armenteros-Podolanski distribution (bkg); #frac{p_{L}^{+}-p_{L}^{-}}{p_{L}^{+}+p_{L}^{-}}; p_{T}^{+} [GeV/c]";
1304 TH2F* armenterosPodLcSgn0 =
new TH2F(nameHistoSgn.Data(),titleHistoSgn.Data(),200,-4.,4.,800,0.,1.6);
1305 TH2F* armenterosPodLcBkg0 =
new TH2F(nameHistoBkg.Data(),titleHistoBkg.Data(),200,-4.,4.,800,0.,1.6);
1310 TH2F* pidBachTRspectrumLcMassByK0SSgn = (TH2F*)spectrumLcMassByK0SSgn->Clone();
1311 TH2F* pidBachTRspectrumLcMassByK0SBkg = (TH2F*)spectrumLcMassByK0SBkg->Clone();
1318 nameHistoSgn=
"histptK0SSgn";
1319 nameHistoBkg=
"histptK0SBkg";
1320 titleHistoSgn=
"p_{T}(K^{0}_{S}) vs p_{T}(#Lambda_{c}); p_{T}(#Lambda_{c}) [GeV/c]; p_{T}(K^{0}_{S}) [GeV/c]; Entries";
1321 titleHistoBkg=
"p_{T}(K^{0}_{S}) vs p_{T}(#Lambda_{c}); p_{T}(#Lambda_{c}) [GeV/c]; p_{T}(K^{0}_{S}) [GeV/c]; Entries";
1322 TH2F* ptK0SSgn =
new TH2F(nameHistoSgn.Data(),titleHistoSgn.Data(),11,binLimpTLc,41,binLimpTprong);
1323 TH2F* ptK0SBkg =
new TH2F(nameHistoBkg.Data(),titleHistoBkg.Data(),11,binLimpTLc,41,binLimpTprong);
1325 nameHistoSgn=
"histptPSgn";
1326 nameHistoBkg=
"histptPBkg";
1327 titleHistoSgn=
"p_{T}(p) vs p_{T}(#Lambda_{c}); p_{T}(#Lambda_{c}) [GeV/c]; p_{T}(p) [GeV/c]; Entries";
1328 titleHistoBkg=
"p_{T}(p) vs p_{T}(#Lambda_{c}); p_{T}(#Lambda_{c}) [GeV/c]; p_{T}(p) [GeV/c]; Entries";
1329 TH2F* ptPSgn =
new TH2F(nameHistoSgn.Data(),titleHistoSgn.Data(),11,binLimpTLc,41,binLimpTprong);
1330 TH2F* ptPBkg =
new TH2F(nameHistoBkg.Data(),titleHistoBkg.Data(),11,binLimpTLc,41,binLimpTprong);
1332 nameHistoSgn=
"histptPipSgn";
1333 nameHistoBkg=
"histptPipBkg";
1334 titleHistoSgn=
"p_{T}(#pi^{+}) vs p_{T}(#Lambda_{c}); p_{T}(#Lambda_{c}) [GeV/c]; p_{T}(#pi^{+}) [GeV/c]; Entries";
1335 titleHistoBkg=
"p_{T}(#pi^{+}) vs p_{T}(#Lambda_{c}); p_{T}(#Lambda_{c}) [GeV/c]; p_{T}(#pi^{+}) [GeV/c]; Entries";
1336 TH2F* ptPiPSgn =
new TH2F(nameHistoSgn.Data(),titleHistoSgn.Data(),11,binLimpTLc,41,binLimpTprong);
1337 TH2F* ptPiPBkg =
new TH2F(nameHistoBkg.Data(),titleHistoBkg.Data(),11,binLimpTLc,41,binLimpTprong);
1339 nameHistoSgn=
"histptPimSgn";
1340 nameHistoBkg=
"histptPimBkg";
1341 titleHistoSgn=
"p_{T}(#pi^{-}) vs p_{T}(#Lambda_{c}); p_{T}(#Lambda_{c}) [GeV/c]; p_{T}(#pi^{-}) [GeV/c]; Entries";
1342 titleHistoBkg=
"p_{T}(#pi^{-}) vs p_{T}(#Lambda_{c}); p_{T}(#Lambda_{c}) [GeV/c]; p_{T}(#pi^{-}) [GeV/c]; Entries";
1343 TH2F* ptPiMSgn =
new TH2F(nameHistoSgn.Data(),titleHistoSgn.Data(),11,binLimpTLc,41,binLimpTprong);
1344 TH2F* ptPiMBkg =
new TH2F(nameHistoBkg.Data(),titleHistoBkg.Data(),11,binLimpTLc,41,binLimpTprong);
1346 nameHistoSgn=
"histLambdaMassSgn";
1347 nameHistoBkg=
"histLambdaMassBkg";
1348 titleHistoSgn=
"m_{inv}(p,#pi^{-}) vs p_{T}(#Lambda_{c}); p_{T}(#Lambda_{c}) [GeV/c]; m_{inv}(p,#pi^{-}) [GeV/c^{2}]; Entries";
1349 titleHistoBkg=
"m_{inv}(p,#pi^{-}) vs p_{T}(#Lambda_{c}); p_{T}(#Lambda_{c}) [GeV/c]; m_{inv}(p,#pi^{-}) [GeV/c^{2}]; Entries";
1350 TH2F* massLambdaSgn =
new TH2F(nameHistoSgn.Data(),titleHistoSgn.Data(),11,binLimpTLc,1000,mMinLambdaPDG,mMinLambdaPDG+0.5);
1351 TH2F* massLambdaBkg =
new TH2F(nameHistoBkg.Data(),titleHistoBkg.Data(),11,binLimpTLc,1000,mMinLambdaPDG,mMinLambdaPDG+0.5);
1353 nameHistoSgn=
"histLambdaBarMassSgn";
1354 nameHistoBkg=
"histLambdaBarMassBkg";
1355 titleHistoSgn=
"m_{inv}(#bar{p},#pi^{+}) vs p_{T}(#Lambda_{c}); p_{T}(#Lambda_{c}) [GeV/c]; m_{inv}(#bar{p},#pi^{+}) [GeV/c^{2}]; Entries";
1356 titleHistoBkg=
"m_{inv}(#bar{p},#pi^{+}) vs p_{T}(#Lambda_{c}); p_{T}(#Lambda_{c}) [GeV/c]; m_{inv}(#bar{p},#pi^{+}) [GeV/c^{2}]; Entries";
1357 TH2F* massLambdaBarSgn =
new TH2F(nameHistoSgn.Data(),titleHistoSgn.Data(),11,binLimpTLc,1000,mMinLambdaPDG,mMinLambdaPDG+0.5);
1358 TH2F* massLambdaBarBkg =
new TH2F(nameHistoBkg.Data(),titleHistoBkg.Data(),11,binLimpTLc,1000,mMinLambdaPDG,mMinLambdaPDG+0.5);
1360 nameHistoSgn=
"histGammaMassSgn";
1361 nameHistoBkg=
"histGammaMassBkg";
1362 titleHistoSgn=
"m_{inv}(e^{+},e^{-}) vs p_{T}(#Lambda_{c}); p_{T}(#Lambda_{c}) [GeV/c]; m_{inv}(e^{+},e^{-}) [GeV/c^{2}]; Entries";
1363 titleHistoBkg=
"m_{inv}(e^{+},e^{-}) vs p_{T}(#Lambda_{c}); p_{T}(#Lambda_{c}) [GeV/c]; m_{inv}(e^{+},e^{-}) [GeV/c^{2}]; Entries";
1364 TH2F* massGammaSgn =
new TH2F(nameHistoSgn.Data(),titleHistoSgn.Data(),11,binLimpTLc,100,0.,1.);
1365 TH2F* massGammaBkg =
new TH2F(nameHistoBkg.Data(),titleHistoBkg.Data(),11,binLimpTLc,100,0.,1.);
1367 nameHistoSgn=
"histD0K0SSgn";
1368 nameHistoBkg=
"histD0K0SBkg";
1369 titleHistoSgn=
"d_{0}(K^{0}_{S}) vs p_{T}(#Lambda_{c}); p_{T}(#Lambda_{c}) [GeV/c]; d_{0}(K^{0}_{S}) [#sigmas]; Entries";
1370 titleHistoBkg=
"d_{0}(K^{0}_{S}) vs p_{T}(#Lambda_{c}); p_{T}(#Lambda_{c}) [GeV/c]; d_{0}(K^{0}_{S}) [#sigmas]; Entries";
1371 TH2F* d0K0SSgn =
new TH2F(nameHistoSgn.Data(),titleHistoSgn.Data(),11,binLimpTLc,1000,-1.,1.);
1372 TH2F* d0K0SBkg =
new TH2F(nameHistoBkg.Data(),titleHistoBkg.Data(),11,binLimpTLc,1000,-1.,1.);
1374 nameHistoSgn=
"histD0PSgn";
1375 nameHistoBkg=
"histD0PBkg";
1376 titleHistoSgn=
"d_{0}(p) vs p_{T}(#Lambda_{c}); p_{T}(#Lambda_{c}) [GeV/c]; d_{0}(p) [cm]; Entries";
1377 titleHistoBkg=
"d_{0}(p) vs p_{T}(#Lambda_{c}); p_{T}(#Lambda_{c}) [GeV/c]; d_{0}(p) [cm]; Entries";
1378 TH2F* d0PSgn =
new TH2F(nameHistoSgn.Data(),titleHistoSgn.Data(),11,binLimpTLc,1000,-1.,1.);
1379 TH2F* d0PBkg =
new TH2F(nameHistoBkg.Data(),titleHistoBkg.Data(),11,binLimpTLc,1000,-1.,1.);
1381 nameHistoSgn=
"histCosPAK0SSgn";
1382 nameHistoBkg=
"histCosPAK0SBkg";
1383 titleHistoSgn=
"K^{0}_{S} cosine of pointing angle wrt primary vertex vs p_{T}(#Lambda_{c}); p_{T}(#Lambda_{c}) [GeV/c]; cosine; Entries";
1384 titleHistoBkg=
"K^{0}_{S} cosine of pointing angle wrt primary vertex vs p_{T}(#Lambda_{c}); p_{T}(#Lambda_{c}) [GeV/c]; cosine; Entries";
1385 TH2F *cosPAK0SSgn =
new TH2F(nameHistoSgn.Data(),titleHistoSgn.Data(),41,binLimpTprong,100,0.99,1.);
1386 TH2F *cosPAK0SBkg =
new TH2F(nameHistoBkg.Data(),titleHistoBkg.Data(),41,binLimpTprong,100,0.99,1.);
1388 TH2F* allptK0SSgn = (TH2F*)ptK0SSgn->Clone();
1389 TH2F* allptK0SBkg = (TH2F*)ptK0SBkg->Clone();
1390 TH2F* allptPSgn = (TH2F*)ptPSgn->Clone();
1391 TH2F* allptPBkg = (TH2F*)ptPBkg->Clone();
1392 TH2F* allptPiPSgn = (TH2F*)ptPiPSgn->Clone();
1393 TH2F* allptPiPBkg = (TH2F*)ptPiPBkg->Clone();
1394 TH2F* allptPiMSgn = (TH2F*)ptPiMSgn->Clone();
1395 TH2F* allptPiMBkg = (TH2F*)ptPiMBkg->Clone();
1396 TH2F* allmassLambdaSgn = (TH2F*)massLambdaSgn->Clone();
1397 TH2F* allmassLambdaBkg = (TH2F*)massLambdaBkg->Clone();
1398 TH2F* allmassLambdaBarSgn = (TH2F*)massLambdaBarSgn->Clone();
1399 TH2F* allmassLambdaBarBkg = (TH2F*)massLambdaBarBkg->Clone();
1400 TH2F* allmassGammaSgn = (TH2F*)massGammaSgn->Clone();
1401 TH2F* allmassGammaBkg = (TH2F*)massGammaBkg->Clone();
1402 TH2F* alld0K0SSgn = (TH2F*)d0K0SSgn->Clone();
1403 TH2F* alld0K0SBkg = (TH2F*)d0K0SBkg->Clone();
1404 TH2F* alld0PSgn = (TH2F*)d0PSgn->Clone();
1405 TH2F* alld0PBkg = (TH2F*)d0PBkg->Clone();
1406 TH2F* allcosPAK0SSgn = (TH2F*)cosPAK0SSgn->Clone();
1407 TH2F* allcosPAK0SBkg = (TH2F*)cosPAK0SBkg->Clone();
1409 TH2F* pidptK0SSgn = (TH2F*)ptK0SSgn->Clone();
1410 TH2F* pidptK0SBkg = (TH2F*)ptK0SBkg->Clone();
1411 TH2F* pidptPSgn = (TH2F*)ptPSgn->Clone();
1412 TH2F* pidptPBkg = (TH2F*)ptPBkg->Clone();
1413 TH2F* pidptPiPSgn = (TH2F*)ptPiPSgn->Clone();
1414 TH2F* pidptPiPBkg = (TH2F*)ptPiPBkg->Clone();
1415 TH2F* pidptPiMSgn = (TH2F*)ptPiMSgn->Clone();
1416 TH2F* pidptPiMBkg = (TH2F*)ptPiMBkg->Clone();
1417 TH2F* pidmassLambdaSgn = (TH2F*)massLambdaSgn->Clone();
1418 TH2F* pidmassLambdaBkg = (TH2F*)massLambdaBkg->Clone();
1419 TH2F* pidmassLambdaBarSgn = (TH2F*)massLambdaBarSgn->Clone();
1420 TH2F* pidmassLambdaBarBkg = (TH2F*)massLambdaBarBkg->Clone();
1421 TH2F* pidmassGammaSgn = (TH2F*)massGammaSgn->Clone();
1422 TH2F* pidmassGammaBkg = (TH2F*)massGammaBkg->Clone();
1423 TH2F* pidd0K0SSgn = (TH2F*)d0K0SSgn->Clone();
1424 TH2F* pidd0K0SBkg = (TH2F*)d0K0SBkg->Clone();
1425 TH2F* pidd0PSgn = (TH2F*)d0PSgn->Clone();
1426 TH2F* pidd0PBkg = (TH2F*)d0PBkg->Clone();
1427 TH2F* pidcosPAK0SSgn = (TH2F*)cosPAK0SSgn->Clone();
1428 TH2F* pidcosPAK0SBkg = (TH2F*)cosPAK0SBkg->Clone();
1474 TH2F* pidTRptK0SSgn = (TH2F*)ptK0SSgn->Clone();
1475 TH2F* pidTRptK0SBkg = (TH2F*)ptK0SBkg->Clone();
1476 TH2F* pidTRptPSgn = (TH2F*)ptPSgn->Clone();
1477 TH2F* pidTRptPBkg = (TH2F*)ptPBkg->Clone();
1478 TH2F* pidTRptPiPSgn = (TH2F*)ptPiPSgn->Clone();
1479 TH2F* pidTRptPiPBkg = (TH2F*)ptPiPBkg->Clone();
1480 TH2F* pidTRptPiMSgn = (TH2F*)ptPiMSgn->Clone();
1481 TH2F* pidTRptPiMBkg = (TH2F*)ptPiMBkg->Clone();
1482 TH2F* pidTRmassLambdaSgn = (TH2F*)massLambdaSgn->Clone();
1483 TH2F* pidTRmassLambdaBkg = (TH2F*)massLambdaBkg->Clone();
1484 TH2F* pidTRmassLambdaBarSgn = (TH2F*)massLambdaBarSgn->Clone();
1485 TH2F* pidTRmassLambdaBarBkg = (TH2F*)massLambdaBarBkg->Clone();
1486 TH2F* pidTRmassGammaSgn = (TH2F*)massGammaSgn->Clone();
1487 TH2F* pidTRmassGammaBkg = (TH2F*)massGammaBkg->Clone();
1488 TH2F* pidTRcosPAK0SSgn = (TH2F*)cosPAK0SSgn->Clone();
1489 TH2F* pidTRcosPAK0SBkg = (TH2F*)cosPAK0SBkg->Clone();
1513 nameHistoSgn=
"histK0SMassOfflineSgn";
1514 nameHistoBkg=
"histK0SMassOfflineBkg";
1515 titleHistoSgn=
"K^{0}_{S} - sgn: invariant mass VS p_{T} - MC; p_{T}(#Lambda_{c}) [GeV/c]; m_{inv}(#pi^{+},#pi^{-}) [GeV/c^{2}]; Entries";
1516 titleHistoBkg=
"K^{0}_{S} - bkg: invariant mass VS p_{T} - MC; p_{T}(#Lambda_{c}) [GeV/c]; m_{inv}(#pi^{+},#pi^{-}) [GeV/c^{2}]; Entries";
1517 TH2F* spectrumK0SMassOfflineSgn =
new TH2F(nameHistoSgn.Data(),titleHistoSgn.Data(),11,binLimpTLc,1000,mK0SPDG-0.050,mK0SPDG+0.050);
1518 TH2F* spectrumK0SMassOfflineBkg =
new TH2F(nameHistoBkg.Data(),titleHistoBkg.Data(),11,binLimpTLc,1000,mK0SPDG-0.050,mK0SPDG+0.050);
1520 nameHistoSgn=
"histLcMassByK0SOfflineSgn";
1521 nameHistoBkg=
"histLcMassByK0SOfflineBkg";
1522 titleHistoSgn=
"#Lambda_{c} - sgn: invariant mass (by K^{0}_{S}) vs p_{T} - MC; m_{inv}(p,K^{0}_{S}) [GeV/c^{2}]; p_{T}(#Lambda_{c}) [GeV/c]";
1523 titleHistoBkg=
"#Lambda_{c} - bkg: invariant mass (by K^{0}_{S}) vs p_{T} - MC; m_{inv}(p,K^{0}_{S}) [GeV/c^{2}]; p_{T}(#Lambda_{c}) [GeV/c]";
1524 TH2F* spectrumLcMassOfflineByK0SSgn =
new TH2F(nameHistoSgn.Data(),titleHistoSgn.Data(),1000,mLcPDG-0.250,mLcPDG+0.250,11,binLimpTLc);
1525 TH2F* spectrumLcMassOfflineByK0SBkg =
new TH2F(nameHistoBkg.Data(),titleHistoBkg.Data(),1000,mLcPDG-0.250,mLcPDG+0.250,11,binLimpTLc);
1527 nameHistoSgn=
"histpK0SvspOfflineSgn";
1528 nameHistoBkg=
"histpK0SvspOfflineBkg";
1529 titleHistoSgn=
"#Lambda_{c} - sgn: K^{0}_{S} vs p Total Momentum Distribution - Offline - MC; p(p) [GeV/c]; p(K^{0}_{S}) [GeV/c]";
1530 titleHistoBkg=
"#Lambda_{c} - bkg: K^{0}_{S} vs p Total Momentum Distribution - Offline - MC; p(p) [GeV/c]; p(K^{0}_{S}) [GeV/c]";
1531 TH2F* momentumDistributionK0SvspOfflineSgn =
new TH2F(nameHistoSgn.Data(),titleHistoSgn.Data(),41,binLimpTprong,41,binLimpTprong);
1532 TH2F* momentumDistributionK0SvspOfflineBkg =
new TH2F(nameHistoBkg.Data(),titleHistoBkg.Data(),41,binLimpTprong,41,binLimpTprong);
1535 nameHistoSgn=
"histArmPodK0SOfflineSgn";
1536 nameHistoBkg=
"histArmPodK0SOfflineBkg";
1537 titleHistoSgn=
"V0-candidate Armenteros-Podolanski distribution (sgn) -offline-; #frac{p_{L}^{+}-p_{L}^{-}}{p_{L}^{+}+p_{L}^{-}}; p_{T}^{+} [GeV/c]";
1538 titleHistoBkg=
"V0-candidate Armenteros-Podolanski distribution (bkg) -offline-; #frac{p_{L}^{+}-p_{L}^{-}}{p_{L}^{+}+p_{L}^{-}}; p_{T}^{+} [GeV/c]";
1539 TH2F* armenterosPodK0SOfflineSgn =
new TH2F(nameHistoSgn.Data(),titleHistoSgn.Data(),200,-1.,1.,300,0.,0.3);
1540 TH2F* armenterosPodK0SOfflineBkg =
new TH2F(nameHistoBkg.Data(),titleHistoSgn.Data(),200,-1.,1.,300,0.,0.3);
1542 nameHistoSgn=
"histArmPodLcOfflineSgn";
1543 nameHistoBkg=
"histArmPodLcOfflineBkg";
1544 titleHistoSgn=
"#Lambda_{c}-candidate Armenteros-Podolanski distribution (sgn) -offline-; #frac{p_{L}^{+}-p_{L}^{-}}{p_{L}^{+}+p_{L}^{-}}; p_{T}^{+} [GeV/c]";
1545 titleHistoBkg=
"#Lambda_{c}-candidate Armenteros-Podolanski distribution (bkg) -offline-; #frac{p_{L}^{+}-p_{L}^{-}}{p_{L}^{+}+p_{L}^{-}}; p_{T}^{+} [GeV/c]";
1546 TH2F* armenterosPodLcOfflineSgn =
new TH2F(nameHistoSgn.Data(),titleHistoSgn.Data(),200,-4.,4.,800,0.,1.6);
1547 TH2F* armenterosPodLcOfflineBkg =
new TH2F(nameHistoBkg.Data(),titleHistoSgn.Data(),200,-4.,4.,800,0.,1.6);
1550 TH2F* allspectrumK0SMassOfflineSgn = (TH2F*)spectrumK0SMassOfflineSgn->Clone();
1551 TH2F* allspectrumK0SMassOfflineBkg = (TH2F*) spectrumK0SMassOfflineBkg->Clone();
1552 TH2F* allspectrumLcMassOfflineByK0SSgn = (TH2F*)spectrumLcMassOfflineByK0SSgn->Clone();
1553 TH2F* allspectrumLcMassOfflineByK0SBkg = (TH2F*) spectrumLcMassOfflineByK0SBkg->Clone();
1554 TH2F* allmomentumDistributionK0SvspOfflineSgn = (TH2F*)momentumDistributionK0SvspOfflineSgn->Clone();
1555 TH2F* allmomentumDistributionK0SvspOfflineBkg = (TH2F*)momentumDistributionK0SvspOfflineBkg->Clone();
1556 TH2F* allArmenterosPodK0SOfflineSgn = (TH2F*)armenterosPodK0SOfflineSgn->Clone();
1557 TH2F* allArmenterosPodK0SOfflineBkg = (TH2F*)armenterosPodK0SOfflineBkg->Clone();
1558 TH2F* allArmenterosPodLcOfflineSgn = (TH2F*)armenterosPodLcOfflineSgn->Clone();
1559 TH2F* allArmenterosPodLcOfflineBkg = (TH2F*)armenterosPodLcOfflineBkg->Clone();
1561 TH2F* pidBachspectrumLcMassOfflineByK0SSgn = (TH2F*)spectrumLcMassOfflineByK0SSgn->Clone();
1562 TH2F* pidBachspectrumLcMassOfflineByK0SBkg = (TH2F*) spectrumLcMassOfflineByK0SBkg->Clone();
1563 TH2F* pidBachspectrumK0SMassOfflineSgn = (TH2F*)spectrumK0SMassOfflineSgn->Clone();
1564 TH2F* pidBachspectrumK0SMassOfflineBkg = (TH2F*) spectrumK0SMassOfflineBkg->Clone();
1565 TH2F* pidBachmomentumDistributionK0SvspOfflineSgn = (TH2F*)momentumDistributionK0SvspOfflineSgn->Clone();
1566 TH2F* pidBachmomentumDistributionK0SvspOfflineBkg = (TH2F*)momentumDistributionK0SvspOfflineBkg->Clone();
1567 TH2F* pidBachArmenterosPodK0SOfflineSgn = (TH2F*)armenterosPodK0SOfflineSgn->Clone();
1568 TH2F* pidBachArmenterosPodK0SOfflineBkg = (TH2F*)armenterosPodK0SOfflineBkg->Clone();
1569 TH2F* pidBachArmenterosPodLcOfflineSgn = (TH2F*)armenterosPodLcOfflineSgn->Clone();
1570 TH2F* pidBachArmenterosPodLcOfflineBkg = (TH2F*)armenterosPodLcOfflineBkg->Clone();
1572 fOutputAll->Add(allspectrumK0SMassOfflineSgn);
1573 fOutputAll->Add(allspectrumK0SMassOfflineBkg);
1574 fOutputAll->Add(allspectrumLcMassOfflineByK0SSgn);
1575 fOutputAll->Add(allspectrumLcMassOfflineByK0SBkg);
1576 fOutputAll->Add(allmomentumDistributionK0SvspOfflineSgn);
1577 fOutputAll->Add(allmomentumDistributionK0SvspOfflineBkg);
1578 fOutputAll->Add(allArmenterosPodK0SOfflineSgn);
1579 fOutputAll->Add(allArmenterosPodK0SOfflineBkg);
1580 fOutputAll->Add(allArmenterosPodLcOfflineSgn);
1581 fOutputAll->Add(allArmenterosPodLcOfflineBkg);
1587 fOutputPIDBach->Add(pidBachmomentumDistributionK0SvspOfflineSgn);
1588 fOutputPIDBach->Add(pidBachmomentumDistributionK0SvspOfflineBkg);
1594 nameHistoSgn=
"histArmPodK0SOfflineSgn0";
1595 nameHistoBkg=
"histArmPodK0SOfflineBkg0";
1596 titleHistoSgn=
"V0-candidate Armenteros-Podolanski distribution (sgn) -offline-; #frac{p_{L}^{+}-p_{L}^{-}}{p_{L}^{+}+p_{L}^{-}}; p_{T}^{+} [GeV/c]";
1597 titleHistoBkg=
"V0-candidate Armenteros-Podolanski distribution (bkg) -offline-; #frac{p_{L}^{+}-p_{L}^{-}}{p_{L}^{+}+p_{L}^{-}}; p_{T}^{+} [GeV/c]";
1598 TH2F* armenterosPodK0SOfflineSgn0 =
new TH2F(nameHistoSgn.Data(),titleHistoSgn.Data(),200,-1.,1.,300,0.,0.3);
1599 TH2F* armenterosPodK0SOfflineBkg0 =
new TH2F(nameHistoBkg.Data(),titleHistoSgn.Data(),200,-1.,1.,300,0.,0.3);
1600 nameHistoSgn=
"histArmPodLcOfflineSgn0";
1601 nameHistoBkg=
"histArmPodLcOfflineBkg0";
1602 titleHistoSgn=
"#Lambda_{c}-candidate Armenteros-Podolanski distribution (sgn) -offline-; #frac{p_{L}^{+}-p_{L}^{-}}{p_{L}^{+}+p_{L}^{-}}; p_{T}^{+} [GeV/c]";
1603 titleHistoBkg=
"#Lambda_{c}-candidate Armenteros-Podolanski distribution (bkg) -offline-; #frac{p_{L}^{+}-p_{L}^{-}}{p_{L}^{+}+p_{L}^{-}}; p_{T}^{+} [GeV/c]";
1604 TH2F* armenterosPodLcOfflineSgn0 =
new TH2F(nameHistoSgn.Data(),titleHistoSgn.Data(),200,-4.,4.,800,0.,1.6);
1605 TH2F* armenterosPodLcOfflineBkg0 =
new TH2F(nameHistoBkg.Data(),titleHistoSgn.Data(),200,-4.,4.,800,0.,1.6);
1606 fOutputAll->Add(armenterosPodK0SOfflineSgn0);
1607 fOutputAll->Add(armenterosPodK0SOfflineBkg0);
1612 TH2F* pidBachTRspectrumLcMassOfflineByK0SSgn = (TH2F*)spectrumLcMassOfflineByK0SSgn->Clone();
1613 TH2F* pidBachTRspectrumLcMassOfflineByK0SBkg = (TH2F*) spectrumLcMassOfflineByK0SBkg->Clone();
1621 nameHistoSgn=
"histptK0SOfflineSgn";
1622 nameHistoBkg=
"histptK0SOfflineBkg";
1623 titleHistoSgn=
"p_{T}(K^{0}_{S}) vs p_{T}(#Lambda_{c}); p_{T}(#Lambda_{c}) [GeV/c]; p_{T}(K^{0}_{S}) [GeV/c]; Entries";
1624 titleHistoBkg=
"p_{T}(K^{0}_{S}) vs p_{T}(#Lambda_{c}); p_{T}(#Lambda_{c}) [GeV/c]; p_{T}(K^{0}_{S}) [GeV/c]; Entries";
1625 TH2F* ptK0SOfflineSgn =
new TH2F(nameHistoSgn.Data(),titleHistoSgn.Data(),11,binLimpTLc,41,binLimpTprong);
1626 TH2F* ptK0SOfflineBkg =
new TH2F(nameHistoBkg.Data(),titleHistoBkg.Data(),11,binLimpTLc,41,binLimpTprong);
1628 nameHistoSgn=
"histptPOfflineSgn";
1629 nameHistoBkg=
"histptPOfflineBkg";
1630 titleHistoSgn=
"p_{T}(p) vs p_{T}(#Lambda_{c}); p_{T}(#Lambda_{c}) [GeV/c]; p_{T}(p) [GeV/c]; Entries";
1631 titleHistoBkg=
"p_{T}(p) vs p_{T}(#Lambda_{c}); p_{T}(#Lambda_{c}) [GeV/c]; p_{T}(p) [GeV/c]; Entries";
1632 TH2F* ptPOfflineSgn =
new TH2F(nameHistoSgn.Data(),titleHistoSgn.Data(),11,binLimpTLc,41,binLimpTprong);
1633 TH2F* ptPOfflineBkg =
new TH2F(nameHistoBkg.Data(),titleHistoBkg.Data(),11,binLimpTLc,41,binLimpTprong);
1635 nameHistoSgn=
"histptPipOfflineSgn";
1636 nameHistoBkg=
"histptPipOfflineBkg";
1637 titleHistoSgn=
"p_{T}(#pi^{+}) vs p_{T}(#Lambda_{c}); p_{T}(#Lambda_{c}) [GeV/c]; p_{T}(#pi^{+}) [GeV/c]; Entries";
1638 titleHistoBkg=
"p_{T}(#pi^{+}) vs p_{T}(#Lambda_{c}); p_{T}(#Lambda_{c}) [GeV/c]; p_{T}(#pi^{+}) [GeV/c]; Entries";
1639 TH2F* ptPiPOfflineSgn =
new TH2F(nameHistoSgn.Data(),titleHistoSgn.Data(),11,binLimpTLc,41,binLimpTprong);
1640 TH2F* ptPiPOfflineBkg =
new TH2F(nameHistoBkg.Data(),titleHistoBkg.Data(),11,binLimpTLc,41,binLimpTprong);
1642 nameHistoSgn=
"histptPimOfflineSgn";
1643 nameHistoBkg=
"histptPimOfflineBkg";
1644 titleHistoSgn=
"p_{T}(#pi^{-}) vs p_{T}(#Lambda_{c}); p_{T}(#Lambda_{c}) [GeV/c]; p_{T}(#pi^{-}) [GeV/c]; Entries";
1645 titleHistoBkg=
"p_{T}(#pi^{-}) vs p_{T}(#Lambda_{c}); p_{T}(#Lambda_{c}) [GeV/c]; p_{T}(#pi^{-}) [GeV/c]; Entries";
1646 TH2F* ptPiMOfflineSgn =
new TH2F(nameHistoSgn.Data(),titleHistoSgn.Data(),11,binLimpTLc,41,binLimpTprong);
1647 TH2F* ptPiMOfflineBkg =
new TH2F(nameHistoBkg.Data(),titleHistoBkg.Data(),11,binLimpTLc,41,binLimpTprong);
1649 nameHistoSgn=
"histLambdaMassOfflineSgn";
1650 nameHistoBkg=
"histLambdaMassOfflineBkg";
1651 titleHistoSgn=
"m_{inv}(p,#pi^{-}) vs p_{T}(#Lambda_{c}); p_{T}(#Lambda_{c}) [GeV/c]; m_{inv}(p,#pi^{-}) [GeV/c^{2}]; Entries";
1652 titleHistoBkg=
"m_{inv}(p,#pi^{-}) vs p_{T}(#Lambda_{c}); p_{T}(#Lambda_{c}) [GeV/c]; m_{inv}(p,#pi^{-}) [GeV/c^{2}]; Entries";
1653 TH2F* massLambdaOfflineSgn =
new TH2F(nameHistoSgn.Data(),titleHistoSgn.Data(),11,binLimpTLc,1000,mMinLambdaPDG,mMinLambdaPDG+0.5);
1654 TH2F* massLambdaOfflineBkg =
new TH2F(nameHistoBkg.Data(),titleHistoBkg.Data(),11,binLimpTLc,1000,mMinLambdaPDG,mMinLambdaPDG+0.5);
1656 nameHistoSgn=
"histLambdaBarMassOfflineSgn";
1657 nameHistoBkg=
"histLambdaBarMassOfflineBkg";
1658 titleHistoSgn=
"m_{inv}(#bar{p},#pi^{+}) vs p_{T}(#Lambda_{c}); p_{T}(#Lambda_{c}) [GeV/c]; m_{inv}(#bar{p},#pi^{+}) [GeV/c^{2}]; Entries";
1659 titleHistoBkg=
"m_{inv}(#bar{p},#pi^{+}) vs p_{T}(#Lambda_{c}); p_{T}(#Lambda_{c}) [GeV/c]; m_{inv}(#bar{p},#pi^{+}) [GeV/c^{2}]; Entries";
1660 TH2F* massLambdaBarOfflineSgn =
new TH2F(nameHistoSgn.Data(),titleHistoSgn.Data(),11,binLimpTLc,1000,mMinLambdaPDG,mMinLambdaPDG+0.5);
1661 TH2F* massLambdaBarOfflineBkg =
new TH2F(nameHistoBkg.Data(),titleHistoBkg.Data(),11,binLimpTLc,1000,mMinLambdaPDG,mMinLambdaPDG+0.5);
1663 nameHistoSgn=
"histGammaMassOfflineSgn";
1664 nameHistoBkg=
"histGammaMassOfflineBkg";
1665 titleHistoSgn=
"m_{inv}(e^{+},e^{-}) vs p_{T}(#Lambda_{c}); p_{T}(#Lambda_{c}) [GeV/c]; m_{inv}(e^{+},e^{-}) [GeV/c^{2}]; Entries";
1666 titleHistoBkg=
"m_{inv}(e^{+},e^{-}) vs p_{T}(#Lambda_{c}); p_{T}(#Lambda_{c}) [GeV/c]; m_{inv}(e^{+},e^{-}) [GeV/c^{2}]; Entries";
1667 TH2F* massGammaOfflineSgn =
new TH2F(nameHistoSgn.Data(),titleHistoSgn.Data(),11,binLimpTLc,100,0.,1.);
1668 TH2F* massGammaOfflineBkg =
new TH2F(nameHistoBkg.Data(),titleHistoBkg.Data(),11,binLimpTLc,100,0.,1.);
1670 nameHistoSgn=
"histD0K0SOfflineSgn";
1671 nameHistoBkg=
"histD0K0SOfflineBkg";
1672 titleHistoSgn=
"d_{0}(K^{0}_{S}) vs p_{T}(#Lambda_{c}); p_{T}(#Lambda_{c}) [GeV/c]; d_{0}(K^{0}_{S}) [#sigmas]; Entries";
1673 titleHistoBkg=
"d_{0}(K^{0}_{S}) vs p_{T}(#Lambda_{c}); p_{T}(#Lambda_{c}) [GeV/c]; d_{0}(K^{0}_{S}) [#sigmas]; Entries";
1674 TH2F* d0K0SOfflineSgn =
new TH2F(nameHistoSgn.Data(),titleHistoSgn.Data(),11,binLimpTLc,1000,-1.,1.);
1675 TH2F* d0K0SOfflineBkg =
new TH2F(nameHistoBkg.Data(),titleHistoBkg.Data(),11,binLimpTLc,1000,-1.,1.);
1677 nameHistoSgn=
"histD0POfflineSgn";
1678 nameHistoBkg=
"histD0POfflineBkg";
1679 titleHistoSgn=
"d_{0}(p) vs p_{T}(#Lambda_{c}); p_{T}(#Lambda_{c}) [GeV/c]; d_{0}(p) [cm]; Entries";
1680 titleHistoBkg=
"d_{0}(p) vs p_{T}(#Lambda_{c}); p_{T}(#Lambda_{c}) [GeV/c]; d_{0}(p) [cm]; Entries";
1681 TH2F* d0POfflineSgn =
new TH2F(nameHistoSgn.Data(),titleHistoSgn.Data(),11,binLimpTLc,1000,-1.,1.);
1682 TH2F* d0POfflineBkg =
new TH2F(nameHistoBkg.Data(),titleHistoBkg.Data(),11,binLimpTLc,1000,-1.,1.);
1684 nameHistoSgn=
"histCosPAK0SOfflineSgn";
1685 nameHistoBkg=
"histCosPAK0SOfflineBkg";
1686 titleHistoSgn=
"K^{0}_{S} cosine of pointing angle wrt primary vertex vs p_{T}(#Lambda_{c}); p_{T}(#Lambda_{c}) [GeV/c]; cosine; Entries";
1687 titleHistoBkg=
"K^{0}_{S} cosine of pointing angle wrt primary vertex vs p_{T}(#Lambda_{c}); p_{T}(#Lambda_{c}) [GeV/c]; cosine; Entries";
1688 TH2F *cosPAK0SOfflineSgn =
new TH2F(nameHistoSgn.Data(),titleHistoSgn.Data(),41,binLimpTprong,100,0.99,1.);
1689 TH2F *cosPAK0SOfflineBkg =
new TH2F(nameHistoBkg.Data(),titleHistoBkg.Data(),41,binLimpTprong,100,0.99,1.);
1691 TH2F* allptK0SOfflineSgn = (TH2F*)ptK0SOfflineSgn->Clone();
1692 TH2F* allptK0SOfflineBkg = (TH2F*)ptK0SOfflineBkg->Clone();
1693 TH2F* allptPOfflineSgn = (TH2F*)ptPOfflineSgn->Clone();
1694 TH2F* allptPOfflineBkg = (TH2F*)ptPOfflineBkg->Clone();
1695 TH2F* allptPiPOfflineSgn = (TH2F*)ptPiPOfflineSgn->Clone();
1696 TH2F* allptPiPOfflineBkg = (TH2F*)ptPiPOfflineBkg->Clone();
1697 TH2F* allptPiMOfflineSgn = (TH2F*)ptPiMOfflineSgn->Clone();
1698 TH2F* allptPiMOfflineBkg = (TH2F*)ptPiMOfflineBkg->Clone();
1699 TH2F* allmassLambdaOfflineSgn = (TH2F*)massLambdaOfflineSgn->Clone();
1700 TH2F* allmassLambdaOfflineBkg = (TH2F*)massLambdaOfflineBkg->Clone();
1701 TH2F* allmassLambdaBarOfflineSgn = (TH2F*)massLambdaBarOfflineSgn->Clone();
1702 TH2F* allmassLambdaBarOfflineBkg = (TH2F*)massLambdaBarOfflineBkg->Clone();
1703 TH2F* allmassGammaOfflineSgn = (TH2F*)massGammaOfflineSgn->Clone();
1704 TH2F* allmassGammaOfflineBkg = (TH2F*)massGammaOfflineBkg->Clone();
1705 TH2F* alld0K0SOfflineSgn = (TH2F*)d0K0SOfflineSgn->Clone();
1706 TH2F* alld0K0SOfflineBkg = (TH2F*)d0K0SOfflineBkg->Clone();
1707 TH2F* alld0POfflineSgn = (TH2F*)d0POfflineSgn->Clone();
1708 TH2F* alld0POfflineBkg = (TH2F*)d0POfflineBkg->Clone();
1709 TH2F* allcosPAK0SOfflineSgn = (TH2F*)cosPAK0SOfflineSgn->Clone();
1710 TH2F* allcosPAK0SOfflineBkg = (TH2F*)cosPAK0SOfflineBkg->Clone();
1712 TH2F* pidptK0SOfflineSgn = (TH2F*)ptK0SOfflineSgn->Clone();
1713 TH2F* pidptK0SOfflineBkg = (TH2F*)ptK0SOfflineBkg->Clone();
1714 TH2F* pidptPOfflineSgn = (TH2F*)ptPOfflineSgn->Clone();
1715 TH2F* pidptPOfflineBkg = (TH2F*)ptPOfflineBkg->Clone();
1716 TH2F* pidptPiPOfflineSgn = (TH2F*)ptPiPOfflineSgn->Clone();
1717 TH2F* pidptPiPOfflineBkg = (TH2F*)ptPiPOfflineBkg->Clone();
1718 TH2F* pidptPiMOfflineSgn = (TH2F*)ptPiMOfflineSgn->Clone();
1719 TH2F* pidptPiMOfflineBkg = (TH2F*)ptPiMOfflineBkg->Clone();
1720 TH2F* pidmassLambdaOfflineSgn = (TH2F*)massLambdaOfflineSgn->Clone();
1721 TH2F* pidmassLambdaOfflineBkg = (TH2F*)massLambdaOfflineBkg->Clone();
1722 TH2F* pidmassLambdaBarOfflineSgn = (TH2F*)massLambdaBarOfflineSgn->Clone();
1723 TH2F* pidmassLambdaBarOfflineBkg = (TH2F*)massLambdaBarOfflineBkg->Clone();
1724 TH2F* pidmassGammaOfflineSgn = (TH2F*)massGammaOfflineSgn->Clone();
1725 TH2F* pidmassGammaOfflineBkg = (TH2F*)massGammaOfflineBkg->Clone();
1726 TH2F* pidd0K0SOfflineSgn = (TH2F*)d0K0SOfflineSgn->Clone();
1727 TH2F* pidd0K0SOfflineBkg = (TH2F*)d0K0SOfflineBkg->Clone();
1728 TH2F* pidd0POfflineSgn = (TH2F*)d0POfflineSgn->Clone();
1729 TH2F* pidd0POfflineBkg = (TH2F*)d0POfflineBkg->Clone();
1730 TH2F* pidcosPAK0SOfflineSgn = (TH2F*)cosPAK0SOfflineSgn->Clone();
1731 TH2F* pidcosPAK0SOfflineBkg = (TH2F*)cosPAK0SOfflineBkg->Clone();
1777 TH2F* pidTRptK0SOfflineSgn = (TH2F*)ptK0SOfflineSgn->Clone();
1778 TH2F* pidTRptK0SOfflineBkg = (TH2F*)ptK0SOfflineBkg->Clone();
1779 TH2F* pidTRptPOfflineSgn = (TH2F*)ptPOfflineSgn->Clone();
1780 TH2F* pidTRptPOfflineBkg = (TH2F*)ptPOfflineBkg->Clone();
1781 TH2F* pidTRptPiPOfflineSgn = (TH2F*)ptPiPOfflineSgn->Clone();
1782 TH2F* pidTRptPiPOfflineBkg = (TH2F*)ptPiPOfflineBkg->Clone();
1783 TH2F* pidTRptPiMOfflineSgn = (TH2F*)ptPiMOfflineSgn->Clone();
1784 TH2F* pidTRptPiMOfflineBkg = (TH2F*)ptPiMOfflineBkg->Clone();
1785 TH2F* pidTRmassLambdaOfflineSgn = (TH2F*)massLambdaOfflineSgn->Clone();
1786 TH2F* pidTRmassLambdaOfflineBkg = (TH2F*)massLambdaOfflineBkg->Clone();
1787 TH2F* pidTRmassLambdaBarOfflineSgn = (TH2F*)massLambdaBarOfflineSgn->Clone();
1788 TH2F* pidTRmassLambdaBarOfflineBkg = (TH2F*)massLambdaBarOfflineBkg->Clone();
1789 TH2F* pidTRmassGammaOfflineSgn = (TH2F*)massGammaOfflineSgn->Clone();
1790 TH2F* pidTRmassGammaOfflineBkg = (TH2F*)massGammaOfflineBkg->Clone();
1791 TH2F* pidTRcosPAK0SOfflineSgn = (TH2F*)cosPAK0SOfflineSgn->Clone();
1792 TH2F* pidTRcosPAK0SOfflineBkg = (TH2F*)cosPAK0SOfflineBkg->Clone();
1817 TH3F *phiVSthetaVSpt =
new TH3F(
"phiVSthetaVSpt",
"",35,0.,35.,360,0.,2.*TMath::Pi(),100,40.*TMath::DegToRad(),140.*TMath::DegToRad());
1818 TH3F *phiVSthetaVSptRot =
new TH3F(
"phiVSthetaVSptRot",
"",35,0.,35.,360,0.,2.*TMath::Pi(),100,40.*TMath::DegToRad(),140.*TMath::DegToRad());
1819 TH3F *phiVSthetaVSptOffline =
new TH3F(
"phiVSthetaVSptOffline",
"",35,0.,35.,360,0.,2.*TMath::Pi(),100,40.*TMath::DegToRad(),140.*TMath::DegToRad());
1820 TH3F *phiVSthetaVSptRotOffline =
new TH3F(
"phiVSthetaVSptRotOffline",
"",35,0.,35.,360,0.,2.*TMath::Pi(),100,40.*TMath::DegToRad(),140.*TMath::DegToRad());
1841 TH3F *phiVSthetaVSptSgn =
new TH3F(
"phiVSthetaVSptSgn",
"",35,0.,35.,360,0.,2.*TMath::Pi(),100,40.*TMath::DegToRad(),140.*TMath::DegToRad());
1842 TH3F *phiVSthetaVSptRotSgn =
new TH3F(
"phiVSthetaVSptRotSgn",
"",35,0.,35.,360,0.,2.*TMath::Pi(),100,40.*TMath::DegToRad(),140.*TMath::DegToRad());
1843 TH3F *phiVSthetaVSptOfflineSgn =
new TH3F(
"phiVSthetaVSptOfflineSgn",
"",35,0.,35.,360,0.,2.*TMath::Pi(),100,40.*TMath::DegToRad(),140.*TMath::DegToRad());
1844 TH3F *phiVSthetaVSptRotOfflineSgn =
new TH3F(
"phiVSthetaVSptRotOfflineSgn",
"",35,0.,35.,360,0.,2.*TMath::Pi(),100,40.*TMath::DegToRad(),140.*TMath::DegToRad());
1850 TH3F *phiVSthetaVSptBkg =
new TH3F(
"phiVSthetaVSptBkg",
"",35,0.,35.,360,0.,2.*TMath::Pi(),100,40.*TMath::DegToRad(),140.*TMath::DegToRad());
1851 TH3F *phiVSthetaVSptRotBkg =
new TH3F(
"phiVSthetaVSptRotBkg",
"",35,0.,35.,360,0.,2.*TMath::Pi(),100,40.*TMath::DegToRad(),140.*TMath::DegToRad());
1852 TH3F *phiVSthetaVSptOfflineBkg =
new TH3F(
"phiVSthetaVSptOfflineBkg",
"",35,0.,35.,360,0.,2.*TMath::Pi(),100,40.*TMath::DegToRad(),140.*TMath::DegToRad());
1853 TH3F *phiVSthetaVSptRotOfflineBkg =
new TH3F(
"phiVSthetaVSptRotOfflineBkg",
"",35,0.,35.,360,0.,2.*TMath::Pi(),100,40.*TMath::DegToRad(),140.*TMath::DegToRad());
1883 Double_t maxm=
fMinMass+nMassBins*0.001;
1884 TH3F *hMassVsPtVsY=
new TH3F(
"hMassVsPtVsY",
"",nMassBins,
fMinMass,maxm,15,0.,15.,20,-1.,1.);
1885 TH3F *hMassVsPtVsYOffline=
new TH3F(
"hMassVsPtVsYOffline",
"",nMassBins,
fMinMass,maxm,15,0.,15.,20,-1.,1.);
1899 TH3F *hMassVsPtVsYSgn=
new TH3F(
"hMassVsPtVsYSgn",
"",nMassBins,
fMinMass,maxm,15,0.,15.,20,-1.,1.);
1900 TH3F *hMassVsPtVsYOfflineSgn=
new TH3F(
"hMassVsPtVsYOfflineSgn",
"",nMassBins,
fMinMass,maxm,15,0.,15.,20,-1.,1.);
1901 TH3F *hMassVsPtVsYBkg=
new TH3F(
"hMassVsPtVsYBkg",
"",nMassBins,
fMinMass,maxm,15,0.,15.,20,-1.,1.);
1902 TH3F *hMassVsPtVsYOfflineBkg=
new TH3F(
"hMassVsPtVsYOfflineBkg",
"",nMassBins,
fMinMass,maxm,15,0.,15.,20,-1.,1.);
1923 TH3F *hMassVsPtVsYRot=
new TH3F(
"hMassVsPtVsYRot",
"",nMassBins,
fMinMass,maxm,15,0.,15.,20,-1.,1.);
1924 TH3F *hMassVsPtVsYRotOffline=
new TH3F(
"hMassVsPtVsYRotOffline",
"",nMassBins,
fMinMass,maxm,15,0.,15.,20,-1.,1.);
1938 TH3F *hMassVsPtVsYRotSgn=
new TH3F(
"hMassVsPtVsYRotSgn",
"",nMassBins,
fMinMass,maxm,15,0.,15.,20,-1.,1.);
1939 TH3F *hMassVsPtVsYRotOfflineSgn=
new TH3F(
"hMassVsPtVsYRotOfflineSgn",
"",nMassBins,
fMinMass,maxm,15,0.,15.,20,-1.,1.);
1940 TH3F *hMassVsPtVsYRotBkg=
new TH3F(
"hMassVsPtVsYRotBkg",
"",nMassBins,
fMinMass,maxm,15,0.,15.,20,-1.,1.);
1941 TH3F *hMassVsPtVsYRotOfflineBkg=
new TH3F(
"hMassVsPtVsYRotOfflineBkg",
"",nMassBins,
fMinMass,maxm,15,0.,15.,20,-1.,1.);
1961 TH1F *hDeltaMass=
new TH1F(
"hDeltaMass",
"",100,-0.4,0.4);
1962 TH1F *hDeltaMassOffline=
new TH1F(
"hDeltaMassOffline",
"",100,-0.4,0.4);
1976 TH1F *hDeltaMassSgn=
new TH1F(
"hDeltaMassSgn",
"",100,-0.4,0.4);
1977 TH1F *hDeltaMassOfflineSgn=
new TH1F(
"hDeltaMassOfflineSgn",
"",100,-0.4,0.4);
1978 TH1F *hDeltaMassBkg=
new TH1F(
"hDeltaMassBkg",
"",100,-0.4,0.4);
1979 TH1F *hDeltaMassOfflineBkg=
new TH1F(
"hDeltaMassOfflineBkg",
"",100,-0.4,0.4);
2041 TClonesArray *arrayLctopKos=0;
2043 if(AODEvent() && IsStandardAOD()) {
2046 aodEvent =
dynamic_cast<AliAODEvent*
> (AODEvent());
2049 AliAODHandler* aodHandler = (AliAODHandler*)
2050 ((AliAnalysisManager::GetAnalysisManager())->GetOutputEventHandler());
2052 if (aodHandler->GetExtensions()) {
2053 AliAODExtension *ext = (AliAODExtension*)aodHandler->GetExtensions()->FindObject(
"AliAOD.VertexingHF.root");
2054 AliAODEvent *aodFromExt = ext->GetAOD();
2055 arrayLctopKos=(TClonesArray*)aodFromExt->GetList()->FindObject(
"CascadesHF");
2059 arrayLctopKos=(TClonesArray*)aodEvent->GetList()->FindObject(
"CascadesHF");
2062 Float_t zVertex =
fVtx1->GetZ();
2063 TString titleVtx=
fVtx1->GetTitle();
2065 if (TMath::Abs(
fBzkG)>=0.001) {
2069 if (arrayLctopKos) {
2074 TClonesArray *mcArray = 0;
2075 AliAODMCHeader *mcHeader=0;
2079 mcArray =
dynamic_cast<TClonesArray*
>(aodEvent->FindListObject(AliAODMCParticle::StdBranchName()));
2084 mcHeader = (AliAODMCHeader*)aodEvent->GetList()->FindObject(AliAODMCHeader::StdBranchName());
2090 for (Int_t iii=0; iii<mcArray->GetEntries(); iii++)
2098 if (
fVtx1->GetNContributors()>0) {
2101 TString firedTriggerClasses = aodEvent->GetFiredTriggerClasses();
2102 ULong64_t fTriggerMask=AliVEvent::kAnyINT;
2103 Bool_t check1 = kFALSE;
2105 (aodEvent->GetRunNumber()<136851 || aodEvent->GetRunNumber()>139517) ) {
2106 if ( !(firedTriggerClasses.Contains(
"CINT1")) ) {
2107 AliInfo(Form(
" ======================== firedTriggerClasses.Data() = %s",firedTriggerClasses.Data()));
2114 Bool_t isSelectedAAA = (((AliInputEventHandler*)(AliAnalysisManager::GetAnalysisManager()->GetInputEventHandler()))->IsEventSelected() & fTriggerMask);
2115 if (!isSelectedAAA) {
2120 if (!isSelectedAAA || check1) {
2125 fTriggerMask=AliVEvent::kAny;
2126 Bool_t isSelectedBBB = (((AliInputEventHandler*)(AliAnalysisManager::GetAnalysisManager()->GetInputEventHandler()))->IsEventSelected() & fTriggerMask);
2127 if (!isSelectedBBB) {
2132 if (titleVtx.Contains(
"Z")) {
2136 else if (titleVtx.Contains(
"3D")) {
2169 Float_t zVertex =
fVtx1->GetZ();
2170 TString titleVtx=
fVtx1->GetTitle();
2171 TString firedTriggerClasses = aodEvent->GetFiredTriggerClasses();
2172 ULong64_t fTriggerMask=AliVEvent::kAnyINT;
2174 ((TH1F*)(
fOutput->FindObject(
"hEventsWithCandidates")))->Fill(6);
2177 Bool_t check1a = kFALSE;
2179 (aodEvent->GetRunNumber()<136851 || aodEvent->GetRunNumber()>139517) ) {
2180 if ( !(firedTriggerClasses.Contains(
"CINT1")) ) {
2181 AliInfo(Form(
" ======================== firedTriggerClasses.Data() = %s",firedTriggerClasses.Data()));
2182 ((TH1F*)(
fOutput->FindObject(
"hEventsWithCandidates")))->Fill(8);
2188 Bool_t isSelectedAAAa = (((AliInputEventHandler*)(AliAnalysisManager::GetAnalysisManager()->GetInputEventHandler()))->IsEventSelected() & fTriggerMask);
2189 if (!isSelectedAAAa) {
2190 ((TH1F*)(
fOutput->FindObject(
"hEventsWithCandidates")))->Fill(9);
2194 if (!isSelectedAAAa || check1a) {
2195 ((TH1F*)(
fOutput->FindObject(
"hEventsWithCandidates")))->Fill(16);
2199 fTriggerMask=AliVEvent::kAny;
2200 Bool_t isSelectedBBBa = (((AliInputEventHandler*)(AliAnalysisManager::GetAnalysisManager()->GetInputEventHandler()))->IsEventSelected() & fTriggerMask);
2201 if (!isSelectedBBBa) {
2202 ((TH1F*)(
fOutput->FindObject(
"hEventsWithCandidates")))->Fill(10);
2206 if (titleVtx.Contains(
"Z")) {
2207 ((TH1F*)(
fOutput->FindObject(
"hEventsWithCandidates")))->Fill(11);
2210 else if (titleVtx.Contains(
"3D")) {
2211 ((TH1F*)(
fOutput->FindObject(
"hEventsWithCandidates")))->Fill(12);
2214 ((TH1F*)(
fOutput->FindObject(
"hEventsWithCandidates")))->Fill(13);
2219 ((TH1F*)(
fOutput->FindObject(
"hEventsWithCandidates")))->Fill(14);
2224 ((TH1F*)(
fOutput->FindObject(
"hEventsWithCandidates")))->Fill(7);
2227 ((TH1F*)(
fOutput->FindObject(
"hEventsWithCandidates")))->Fill(15);
2236 Int_t *pdgDgLc2bacV0, Int_t *pdgDgV0,
2237 TClonesArray *mcArray) {
2243 AliAODTrack *bachelor = (AliAODTrack*)lc2bacV0->
GetBachelor();
2244 if (!bachelor)
return -1;
2245 Int_t labBachelor = TMath::Abs(bachelor->GetLabel());
2246 if (labBachelor<0)
return -1;
2247 AliAODMCParticle *partBachelor = (AliAODMCParticle*)mcArray->At(labBachelor);
2248 if (!partBachelor)
return -1;
2249 if (TMath::Abs(partBachelor->GetPdgCode())!=pdgDgLc2bacV0[0])
return -1;
2251 Int_t labBacMother = partBachelor->GetMother();
2252 if (labBacMother<0)
return -1;
2253 AliAODMCParticle *partBacMother = (AliAODMCParticle*)mcArray->At(labBacMother);
2254 if (!partBacMother)
return -1;
2255 if (TMath::Abs(partBacMother->GetPdgCode())!=4122)
return -1;
2260 if (!posV0Daugh || !negV0Daugh)
return -1;
2262 Int_t labV0pos = TMath::Abs(posV0Daugh->GetLabel());
2263 Int_t labV0neg = TMath::Abs(negV0Daugh->GetLabel());
2264 if (labV0pos<0 || labV0neg<0)
return -1;
2266 AliAODMCParticle *partV0pos = (AliAODMCParticle*)mcArray->At(labV0neg);
2267 AliAODMCParticle *partV0neg = (AliAODMCParticle*)mcArray->At(labV0pos);
2268 if (!partV0pos || !partV0neg)
return -1;
2270 if ( ! ( (TMath::Abs(partV0pos->GetPdgCode())==pdgDgV0[0] &&
2271 TMath::Abs(partV0neg->GetPdgCode())==pdgDgV0[1]) ||
2272 (TMath::Abs(partV0pos->GetPdgCode())==pdgDgV0[1] &&
2273 TMath::Abs(partV0neg->GetPdgCode())==pdgDgV0[0]) ) )
return -1;
2274 Int_t labV0posMother = partV0pos->GetMother();
2275 Int_t labV0negMother = partV0neg->GetMother();
2277 if (labV0posMother<0 || labV0negMother<0)
return -1;
2278 if (labV0posMother!=labV0negMother)
return -1;
2280 AliAODMCParticle *motherV0 = (AliAODMCParticle*)mcArray->At(labV0posMother);
2281 if (!motherV0)
return-1;
2283 if (TMath::Abs(motherV0->GetPdgCode())!=pdgDgLc2bacV0[1])
return -1;
2284 Int_t labV0mother = motherV0->GetMother();
2285 if (labV0mother<0)
return -1;
2286 AliAODMCParticle *gMotherV0 = (AliAODMCParticle*)mcArray->At(labV0mother);
2287 if (!gMotherV0)
return-1;
2289 if ( !(pdgDgLc2bacV0[1]==310 && TMath::Abs(gMotherV0->GetPdgCode())==311) &&
2290 !(pdgDgLc2bacV0[1]==3122 && TMath::Abs(motherV0->GetPdgCode())==3122) )
return -1;
2292 if ( (pdgDgLc2bacV0[1]==310 && TMath::Abs(gMotherV0->GetPdgCode())==311) ) {
2293 Int_t labV0GMother = gMotherV0->GetMother();
2294 if (labV0GMother<0)
return -1;
2295 AliAODMCParticle *ggMotherV0 = (AliAODMCParticle*)mcArray->At(labV0GMother);
2296 if (!ggMotherV0)
return-1;
2298 if (TMath::Abs(ggMotherV0->GetPdgCode())!=4122)
return -1;
2299 gMotherV0 = (AliAODMCParticle*)ggMotherV0;
2300 labV0mother=labV0GMother;
2302 else if (pdgDgLc2bacV0[1]==3122 && TMath::Abs(motherV0->GetPdgCode())==3122) {
2303 if (TMath::Abs(gMotherV0->GetPdgCode())!=4122)
return -1;
2306 if (labBacMother!=labV0mother) {
2310 return labBacMother;
2320 Int_t indexToBeReturned=-999;
2323 Int_t pdgLambda=3122;
2326 Int_t pdgBachelor=2212;
2327 Int_t pdgBachelorPi=211;
2329 TString fillthis=
"";
2330 fillthis=
"histMcStatLc";
2332 AliAODMCParticle *searchLc =
dynamic_cast<AliAODMCParticle*
>(arrayMC->At(iii));
2333 if(!searchLc)
return -999;
2334 if (TMath::Abs(searchLc->GetPdgCode()) != pdgLc)
return -999;
2336 ((TH1F*)(
fOutput->FindObject(fillthis)))->Fill(0);
2337 indexToBeReturned = 0;
2339 ((TH1F*)(
fOutput->FindObject(fillthis)))->Fill(TMath::Nint(searchLc->Charge()/3.)*1);
2340 indexToBeReturned = TMath::Nint(searchLc->Charge()/3.)*1;
2342 Int_t nDaughLc = searchLc->GetNDaughters();
2344 ((TH1F*)(
fOutput->FindObject(fillthis)))->Fill(TMath::Nint(searchLc->Charge()/3.)*10);
2345 indexToBeReturned = TMath::Nint(searchLc->Charge()/3.)*10;
2346 return indexToBeReturned;
2349 Int_t index1=searchLc->GetDaughter(0);
2350 Int_t index2=searchLc->GetDaughter(1);
2351 if (index1<=0 || index2<=0) {
2355 AliAODMCParticle *daugh1 =
dynamic_cast<AliAODMCParticle*
>(arrayMC->At(index1));
2356 AliAODMCParticle *daugh2 =
dynamic_cast<AliAODMCParticle*
>(arrayMC->At(index2));
2357 if (!daugh1 || !daugh2)
return -999;
2359 Int_t daughPdg1 = TMath::Abs(daugh1->GetPdgCode());
2360 Int_t daughPdg2 = TMath::Abs(daugh2->GetPdgCode());
2361 if ( !( (daughPdg1==pdgBachelor && daughPdg2==pdgK0) ||
2362 (daughPdg2==pdgBachelor && daughPdg1==pdgK0) ||
2363 (daughPdg1==pdgLambda && daughPdg2==pdgBachelorPi) ||
2364 (daughPdg2==pdgLambda && daughPdg1==pdgBachelorPi) ) ) {
2365 ((TH1F*)(
fOutput->FindObject(fillthis)))->Fill(TMath::Nint(searchLc->Charge()/3.)*10);
2366 indexToBeReturned = TMath::Nint(searchLc->Charge()/3.)*10;
2367 return indexToBeReturned;
2370 if (daughPdg1==pdgK0 || daughPdg1==pdgLambda) {
2371 index1=searchLc->GetDaughter(1);
2372 index2=searchLc->GetDaughter(0);
2374 daugh1 =
dynamic_cast<AliAODMCParticle*
>(arrayMC->At(index1));
2375 daugh2 =
dynamic_cast<AliAODMCParticle*
>(arrayMC->At(index2));
2376 if (!daugh1 || !daugh2)
return -999;
2378 daughPdg1=TMath::Abs(daugh1->GetPdgCode());
2379 daughPdg2=TMath::Abs(daugh2->GetPdgCode());
2381 if ( daughPdg1==pdgBachelor && daughPdg2==pdgK0 ) {
2383 ((TH1F*)(
fOutput->FindObject(fillthis)))->Fill(TMath::Nint(searchLc->Charge()/3.)*2);
2384 indexToBeReturned = TMath::Nint(searchLc->Charge()/3.)*2;
2386 Int_t nDaughK0 = daugh2->GetNDaughters();
2387 if (nDaughK0!=1)
return -999;
2389 Int_t indexK0daugh=daugh2->GetDaughter(0);
2390 if (indexK0daugh<=0)
return -999;
2392 AliAODMCParticle *daughK0 =
dynamic_cast<AliAODMCParticle*
>(arrayMC->At(indexK0daugh));
2393 if (!daughK0)
return -999;
2395 Int_t daughK0Pdg=TMath::Abs(daughK0->GetPdgCode());
2396 if (daughK0Pdg!=pdgV0) {
2397 ((TH1F*)(
fOutput->FindObject(fillthis)))->Fill(TMath::Nint(searchLc->Charge()/3.)*4);
2398 indexToBeReturned = TMath::Nint(searchLc->Charge()/3.)*4;
2399 return indexToBeReturned;
2401 ((TH1F*)(
fOutput->FindObject(fillthis)))->Fill(TMath::Nint(searchLc->Charge()/3.)*3);
2402 indexToBeReturned = TMath::Nint(searchLc->Charge()/3.)*3;
2404 Int_t nDaughK0S = daughK0->GetNDaughters();
2406 ((TH1F*)(
fOutput->FindObject(fillthis)))->Fill(TMath::Nint(searchLc->Charge()/3.)*5);
2407 indexToBeReturned = TMath::Nint(searchLc->Charge()/3.)*5;
2408 return indexToBeReturned;
2411 index1=daughK0->GetDaughter(0);
2412 index2=daughK0->GetDaughter(1);
2413 if(index1<=0 || index2<=0) {
2417 AliAODMCParticle *daughK0S1 =
dynamic_cast<AliAODMCParticle*
>(arrayMC->At(index1));
2418 AliAODMCParticle *daughK0S2 =
dynamic_cast<AliAODMCParticle*
>(arrayMC->At(index2));
2419 if (!daughK0S1 || !daughK0S2)
return -999;
2421 Int_t daughK0S1pdg=TMath::Abs(daughK0S1->GetPdgCode());
2422 Int_t daughK0S2pdg=TMath::Abs(daughK0S2->GetPdgCode());
2424 if ( daughK0S1pdg==211 && daughK0S2pdg==211 ) {
2425 ((TH1F*)(
fOutput->FindObject(fillthis)))->Fill(TMath::Nint(searchLc->Charge()/3.)*6);
2426 indexToBeReturned = TMath::Nint(searchLc->Charge()/3.)*6;
2428 ((TH1F*)(
fOutput->FindObject(fillthis)))->Fill(TMath::Nint(searchLc->Charge()/3.)*5);
2429 indexToBeReturned = TMath::Nint(searchLc->Charge()/3.)*5;
2433 else if ( daughPdg1==pdgBachelorPi && daughPdg2==pdgLambda ) {
2435 ((TH1F*)(
fOutput->FindObject(fillthis)))->Fill(TMath::Nint(searchLc->Charge()/3.)*7);
2436 indexToBeReturned = TMath::Nint(searchLc->Charge()/3.)*7;
2438 Int_t nDaughL = daugh2->GetNDaughters();
2440 ((TH1F*)(
fOutput->FindObject(fillthis)))->Fill(TMath::Nint(searchLc->Charge()/3.)*8);
2441 indexToBeReturned = TMath::Nint(searchLc->Charge()/3.)*8;
2442 return indexToBeReturned;
2445 index1=daugh2->GetDaughter(0);
2446 index2=daugh2->GetDaughter(1);
2447 if(index1<=0 || index2<=0) {
2451 AliAODMCParticle *daughL1 =
dynamic_cast<AliAODMCParticle*
>(arrayMC->At(index1));
2452 AliAODMCParticle *daughL2 =
dynamic_cast<AliAODMCParticle*
>(arrayMC->At(index2));
2453 if (!daughL1 || !daughL2)
return -999;
2455 Int_t daughL1pdg=TMath::Abs(daughL1->GetPdgCode());
2456 Int_t daughL2pdg=TMath::Abs(daughL2->GetPdgCode());
2457 if ( (daughL1pdg==211 && daughL2pdg==2212) ||
2458 (daughL2pdg==211 && daughL1pdg==2212) ) {
2459 ((TH1F*)(
fOutput->FindObject(fillthis)))->Fill(TMath::Nint(searchLc->Charge()/3.)*9);
2460 indexToBeReturned = TMath::Nint(searchLc->Charge()/3.)*9;
2462 ((TH1F*)(
fOutput->FindObject(fillthis)))->Fill(TMath::Nint(searchLc->Charge()/3.)*8);
2463 indexToBeReturned = TMath::Nint(searchLc->Charge()/3.)*8;
2468 return indexToBeReturned;
2474 Bool_t isCandidateSelectedCuts,
2475 Bool_t isBachelorID) {
2480 Double_t alpha = vZero->Alpha();
2481 Double_t qT = vZero->QtProng();
2483 ((TH2F*)(
fOutputAll->FindObject(histoTitle+
"0")))->Fill(alpha,qT);
2484 if (isCandidateSelectedCuts) {
2485 ((TH2F*)(
fOutputAll->FindObject(histoTitle)))->Fill(alpha,qT);
2487 ((TH2F*)(
fOutputPIDBach->FindObject(histoTitle)))->Fill(alpha,qT);
2500 AliAODv0 * v0part = (AliAODv0*)part->
Getv0();
2501 Bool_t onFlyV0 = v0part->GetOnFlyStatus();
2503 AliAODTrack *bachelor = (AliAODTrack*)part->
GetBachelor();
2506 ((TH1F*)(
fOutput->FindObject(
"hCandidateSelection")))->Fill(3);
2509 ((TH1F*)(
fOutput->FindObject(
"hCandidateSelection")))->Fill(4);
2511 ((TH1F*)(
fOutput->FindObject(
"hCandidateSelection")))->Fill(5);
2514 ((TH1F*)(
fOutput->FindObject(
"hCandidateSelection")))->Fill(6);
2517 ((TH1F*)(
fOutput->FindObject(
"hCandidateSelection")))->Fill(7);
2519 ((TH1F*)(
fOutput->FindObject(
"hCandidateSelection")))->Fill(8);
2521 ((TH1F*)(
fOutput->FindObject(
"hCandidateSelection")))->Fill(9);
2531 ((TH1F*)(
fOutput->FindObject(
"hSwitchOnCandidates1")))->Fill( -aaa );
2533 ((TH1F*)(
fOutput->FindObject(
"hSwitchOnCandidates1")))->Fill( aaa );
2538 if ((aaa&AliRDHFCutsLctoV0::kLcToK0Spr)==AliRDHFCutsLctoV0::kLcToK0Spr) {
2541 ((TH1F*)(
fOutput->FindObject(
"hSwitchOnCandidates2")))->Fill( -aaa );
2543 ((TH1F*)(
fOutput->FindObject(
"hSwitchOnCandidates2")))->Fill( aaa );
2548 if ((aaa&AliRDHFCutsLctoV0::kLcToK0Spr)==AliRDHFCutsLctoV0::kLcToK0Spr) {
2551 ((TH1F*)(
fOutput->FindObject(
"hSwitchOnCandidates3")))->Fill( -aaa );
2553 ((TH1F*)(
fOutput->FindObject(
"hSwitchOnCandidates3")))->Fill( aaa );
2557 if ((aaa&AliRDHFCutsLctoV0::kLcToK0Spr)==AliRDHFCutsLctoV0::kLcToK0Spr) {
2560 ((TH1F*)(
fOutput->FindObject(
"hSwitchOnCandidates4")))->Fill( -aaa );
2562 ((TH1F*)(
fOutput->FindObject(
"hSwitchOnCandidates4")))->Fill( aaa );
2577 Double_t mk0sPDG = TDatabasePDG::Instance()->GetParticle(310)->Mass();
2578 Double_t mLPDG = TDatabasePDG::Instance()->GetParticle(3122)->Mass();
2583 AliAODTrack *bachelor = (AliAODTrack*)part->
GetBachelor();
2585 AliAODv0 * v0part = (AliAODv0*)part->
Getv0();
2586 Double_t dcaV0ptp = v0part->GetDCA();
2587 Double_t invmassK0S = v0part->MassK0Short();
2588 Double_t invmassLambda = v0part->MassLambda();
2589 Double_t invmassLambdaBar = v0part->MassAntiLambda();
2591 Int_t isLc2LBarpi=0, isLc2Lpi=0;
2593 Int_t isDp2K0Spi=0, isDs2K0SK=0;
2594 Int_t mcLabel2 = -1;
2595 Int_t mcLabel3 = -1;
2596 Int_t isKstar12K0Spi=0, isKstar22K0Spi=0;
2597 Int_t mcLabel4 = -1;
2598 Int_t mcLabel5 = -1;
2599 Double_t ptCandByMC = 0.;
2600 Double_t yCandByMC = 0.;
2603 Int_t pdgCand0 = 4122;
2604 Int_t pdgDgLctoV0bachelor0[2]={2212,310};
2605 Int_t pdgDgV0toDaughters0[2]={211,211};
2606 Int_t mcLabelLc2pK0S = part->
MatchToMC(pdgCand0,pdgDgLctoV0bachelor0[1],pdgDgLctoV0bachelor0,pdgDgV0toDaughters0,mcArray,kTRUE);
2607 AliAODMCParticle *lambdaCpartMC = (AliAODMCParticle*)mcArray->At(mcLabelLc2pK0S);
2608 if (lambdaCpartMC) {
2609 ptCandByMC = lambdaCpartMC->Pt();
2610 yCandByMC = lambdaCpartMC->Y();
2614 Int_t pdgCand = 4122;
2615 Int_t pdgDgLctoV0bachelor[2]={211,3122};
2616 Int_t pdgDgV0toDaughters[2]={2212,211};
2617 mcLabel = part->
MatchToMC(pdgCand,pdgDgLctoV0bachelor[1],pdgDgLctoV0bachelor,pdgDgV0toDaughters,mcArray,kTRUE);
2619 if (bachelor->Charge()<0) isLc2LBarpi=1;
2620 if (bachelor->Charge()>0) isLc2Lpi=1;
2621 AliAODMCParticle *lambdaCpartMC = (AliAODMCParticle*)mcArray->At(mcLabel);
2622 if (lambdaCpartMC) {
2623 ptCandByMC = lambdaCpartMC->Pt();
2624 yCandByMC = lambdaCpartMC->Y();
2628 Int_t pdgCand2 = 411;
2629 Int_t pdgCand3 = 431;
2630 Int_t pdgDgCand2[2]={211,310};
2631 Int_t pdgDgCand3[2]={321,310};
2632 pdgDgV0toDaughters[0]=211;
2633 pdgDgV0toDaughters[1]=211;
2634 mcLabel2 = part->
MatchToMC(pdgCand2,pdgDgCand2[1],pdgDgCand2,pdgDgV0toDaughters,mcArray,kTRUE);
2635 mcLabel3 = part->
MatchToMC(pdgCand3,pdgDgCand3[1],pdgDgCand3,pdgDgV0toDaughters,mcArray,kTRUE);
2638 AliAODMCParticle *lambdaCpartMC = (AliAODMCParticle*)mcArray->At(mcLabel2);
2639 if (lambdaCpartMC) {
2640 ptCandByMC = lambdaCpartMC->Pt();
2641 yCandByMC = lambdaCpartMC->Y();
2646 AliAODMCParticle *lambdaCpartMC = (AliAODMCParticle*)mcArray->At(mcLabel3);
2647 if (lambdaCpartMC) {
2648 ptCandByMC = lambdaCpartMC->Pt();
2649 yCandByMC = lambdaCpartMC->Y();
2653 Int_t pdgCand4 = 313;
2654 Int_t pdgCand5 = 325;
2655 Int_t pdgDgCand4[2]={211,310};
2656 Int_t pdgDgCand5[2]={211,310};
2657 pdgDgV0toDaughters[0]=211;
2658 pdgDgV0toDaughters[1]=211;
2659 mcLabel4 = part->
MatchToMC(pdgCand4,pdgDgCand4[1],pdgDgCand4,pdgDgV0toDaughters,mcArray,kTRUE);
2660 mcLabel5 = part->
MatchToMC(pdgCand5,pdgDgCand5[1],pdgDgCand5,pdgDgV0toDaughters,mcArray,kTRUE);
2663 AliAODMCParticle *lambdaCpartMC = (AliAODMCParticle*)mcArray->At(mcLabel4);
2664 if (lambdaCpartMC) {
2665 ptCandByMC = lambdaCpartMC->Pt();
2666 yCandByMC = lambdaCpartMC->Y();
2671 AliAODMCParticle *lambdaCpartMC = (AliAODMCParticle*)mcArray->At(mcLabel5);
2672 if (lambdaCpartMC) {
2673 ptCandByMC = lambdaCpartMC->Pt();
2674 yCandByMC = lambdaCpartMC->Y();
2679 Int_t isLcByMC = isLc+isLc2LBarpi*2+isLc2Lpi*4+isDp2K0Spi*8+isDs2K0SK*16+isKstar12K0Spi*32+isKstar22K0Spi*64;
2681 Bool_t isMCparticleInFiducialAcceptance = kTRUE;
2682 if (isLc || isLc2LBarpi || isLc2Lpi || isDp2K0Spi || isDs2K0SK || isKstar12K0Spi || isKstar22K0Spi) {
2688 Int_t isLambdaBar = 0;
2691 Int_t pdgDg2prong[2] = {211, 211};
2692 Int_t labelK0S = v0part->MatchToMC(310,mcArray,2,pdgDg2prong);
2693 if (labelK0S>=0) isK0S = 1;
2695 pdgDg2prong[0] = 211;
2696 pdgDg2prong[1] = 2212;
2697 Int_t lambdaLabel = v0part->MatchToMC(3122,mcArray,2,pdgDg2prong);
2698 if (lambdaLabel>=0) {
2699 AliAODMCParticle *lambdaTrack = (AliAODMCParticle*)mcArray->At(lambdaLabel);
2700 if (lambdaTrack->GetPdgCode()==3122) isLambda = 1;
2701 else if (lambdaTrack->GetPdgCode()==-3122) isLambdaBar = 1;
2704 pdgDg2prong[0] = 11;
2705 pdgDg2prong[1] = 11;
2706 Int_t gammaLabel = v0part->MatchToMC(22,mcArray,2,pdgDg2prong);
2707 if (gammaLabel>=0) {
2708 AliAODMCParticle *gammaTrack = (AliAODMCParticle*)mcArray->At(gammaLabel);
2709 if (gammaTrack->GetPdgCode()==22) isGamma = 1;
2713 Int_t isV0ByMC = isK0S+isLambdaBar*2+isLambda*4+isGamma*8;
2715 Int_t isBachelorSelected = (bachelor->TestFilterMask(BIT(4)))*1 + (!(bachelor->TestFilterMask(BIT(4))))*2;
2716 isBachelorSelected += (bachelor->GetLabel()<0)*4 + (bachelor->GetLabel()>=0)*8;
2717 if ( ( !(bachelor->HasPointOnITSLayer(0)) && !(bachelor->HasPointOnITSLayer(1)) ) )
2718 isBachelorSelected += 16;
2720 if ( bachelor->HasPointOnITSLayer(0) && !(bachelor->HasPointOnITSLayer(1)) )
2721 isBachelorSelected += 32;
2722 else if ( !(bachelor->HasPointOnITSLayer(0)) && bachelor->HasPointOnITSLayer(1) )
2723 isBachelorSelected += 64;
2725 isBachelorSelected += 128;
2731 Int_t areV0daughtersSelected = (v0pos->TestFilterMask(BIT(4)))*1 + (!(v0pos->TestFilterMask(BIT(4))))*2;
2732 areV0daughtersSelected += (v0pos->GetLabel()<0)*4 + (v0pos->GetLabel()>=0)*8;
2733 areV0daughtersSelected += (v0neg->TestFilterMask(BIT(4)))*16 + (!(v0neg->TestFilterMask(BIT(4))))*32;
2734 areV0daughtersSelected += (v0neg->GetLabel()<0)*64 + (v0neg->GetLabel()>=0)*128;
2736 Double_t nSigmaITSpr=-999.;
2738 Double_t nSigmaTPCpr=-999.;
2740 Double_t nSigmaTOFpr=-999.;
2743 Double_t nSigmaITSpi=-999.;
2745 Double_t nSigmaTPCpi=-999.;
2747 Double_t nSigmaTOFpi=-999.;
2750 Double_t nSigmaITSka=-999.;
2752 Double_t nSigmaTPCka=-999.;
2754 Double_t nSigmaTOFka=-999.;
2758 Int_t flagToCheckCandidate = 1*(TMath::Abs(invmassK0S-mk0sPDG)<=0.050);
2759 flagToCheckCandidate+=2*((TMath::Abs(invmassLambdaBar-mLPDG)<=0.050) && (bachelor->Charge()<0));
2760 flagToCheckCandidate+=4*((TMath::Abs(invmassLambda-mLPDG)<=0.050) && (bachelor->Charge()>0));
2761 flagToCheckCandidate+=8*((TMath::Abs(invmassLambdaBar-mLPDG)<=0.050) && (bachelor->Charge()>0));
2762 flagToCheckCandidate+=16*((TMath::Abs(invmassLambda-mLPDG)<=0.050) && (bachelor->Charge()<0));
2819 Double_t xVtxLc=0, yVtxLc=0, zVtxLc=0;
2820 Double_t xLcMC=0,yLcMC=0,zLcMC=0;
2821 Double_t pxVtxBachelor=0, pyVtxBachelor=0, pzVtxBachelor=0;
2822 Double_t dcaForLc =
PropagateToDCA(v0part,bachelor,
fBzkG, xVtxLc, yVtxLc, zVtxLc, pxVtxBachelor, pyVtxBachelor, pzVtxBachelor);
2824 Int_t pdgCand0 = 4122;
2825 Int_t pdgDgLctoV0bachelor0[2]={2212,310};
2826 Int_t pdgDgV0toDaughters0[2]={211,211};
2827 Int_t mcLabel0 = part->
MatchToMC(pdgCand0,pdgDgLctoV0bachelor0[1],pdgDgLctoV0bachelor0,pdgDgV0toDaughters0,mcArray,kTRUE);
2828 AliAODMCParticle *partLc =
dynamic_cast<AliAODMCParticle*
>(mcArray->At(mcLabel0));
2830 AliAODMCParticle *partLcDaug0 =
dynamic_cast<AliAODMCParticle*
>(mcArray->At(partLc->GetDaughter(0)));
2832 xLcMC=partLcDaug0->Xv(), yLcMC=partLcDaug0->Yv(), zLcMC=partLcDaug0->Zv();
2835 }
else if (isLc2LBarpi || isLc2Lpi) {
2836 AliAODMCParticle *partLc =
dynamic_cast<AliAODMCParticle*
>(mcArray->At(mcLabel));
2837 AliAODMCParticle *partLcDaug0 =
dynamic_cast<AliAODMCParticle*
>(mcArray->At(partLc->GetDaughter(0)));
2838 xLcMC=partLcDaug0->Xv(), yLcMC=partLcDaug0->Yv(), zLcMC=partLcDaug0->Zv();
2839 }
else if (isDp2K0Spi) {
2840 AliAODMCParticle *partLc =
dynamic_cast<AliAODMCParticle*
>(mcArray->At(mcLabel2));
2841 AliAODMCParticle *partLcDaug0 =
dynamic_cast<AliAODMCParticle*
>(mcArray->At(partLc->GetDaughter(0)));
2842 xLcMC=partLcDaug0->Xv(), yLcMC=partLcDaug0->Yv(), zLcMC=partLcDaug0->Zv();
2843 }
else if (isDs2K0SK) {
2844 AliAODMCParticle *partLc =
dynamic_cast<AliAODMCParticle*
>(mcArray->At(mcLabel3));
2845 AliAODMCParticle *partLcDaug0 =
dynamic_cast<AliAODMCParticle*
>(mcArray->At(partLc->GetDaughter(0)));
2846 xLcMC=partLcDaug0->Xv(), yLcMC=partLcDaug0->Yv(), zLcMC=partLcDaug0->Zv();
2847 }
else if (isKstar12K0Spi) {
2848 AliAODMCParticle *partLc =
dynamic_cast<AliAODMCParticle*
>(mcArray->At(mcLabel4));
2849 AliAODMCParticle *partLcDaug0 =
dynamic_cast<AliAODMCParticle*
>(mcArray->At(partLc->GetDaughter(0)));
2850 xLcMC=partLcDaug0->Xv(), yLcMC=partLcDaug0->Yv(), zLcMC=partLcDaug0->Zv();
2851 }
else if (isKstar22K0Spi) {
2852 AliAODMCParticle *partLc =
dynamic_cast<AliAODMCParticle*
>(mcArray->At(mcLabel5));
2853 AliAODMCParticle *partLcDaug0 =
dynamic_cast<AliAODMCParticle*
>(mcArray->At(partLc->GetDaughter(0)));
2854 xLcMC=partLcDaug0->Xv(), yLcMC=partLcDaug0->Yv(), zLcMC=partLcDaug0->Zv();
2892 if (bachelor->GetLabel()!=-1) {
2893 AliAODMCParticle *partBachelor =
dynamic_cast<AliAODMCParticle*
>(mcArray->At(TMath::Abs(bachelor->GetLabel())));
2896 if (bachelor->GetLabel()!=-1 &&
2897 v0pos->GetLabel()!=-1 &&
2898 v0neg->GetLabel()!=-1) {
2900 Int_t dgLabels[ndg]={TMath::Abs(bachelor->GetLabel()),
2901 TMath::Abs(v0pos->GetLabel()),
2902 TMath::Abs(v0neg->GetLabel())};
2905 Int_t absLabelMother=-1;
2908 dgLabels,ndg,ndgCk,pdgDg,absLabelMother,nDauCand);
2910 if (v0pos->GetLabel()!=-1) {
2911 AliAODMCParticle *part1 =
dynamic_cast<AliAODMCParticle*
>(mcArray->At(TMath::Abs(v0pos->GetLabel())));
2914 if (v0neg->GetLabel()!=-1) {
2915 AliAODMCParticle *part2 =
dynamic_cast<AliAODMCParticle*
>(mcArray->At(TMath::Abs(v0neg->GetLabel())));
2918 if (v0pos->GetLabel()!=-1 &&
2919 v0neg->GetLabel()!=-1) {
2921 Int_t dgLabels[ndg]={TMath::Abs(v0pos->GetLabel()),
2922 TMath::Abs(v0neg->GetLabel())};
2925 Int_t absLabelMother=-1;
2928 dgLabels,ndg,ndgCk,pdgDg,absLabelMother,nDauCand);
2932 AliAnalysisManager *mgr = AliAnalysisManager::GetAnalysisManager();
2933 AliInputEventHandler *inputHandler=(AliInputEventHandler*)mgr->GetInputEventHandler();
2934 AliPIDResponse *pidResponse=inputHandler->GetPIDResponse();
2972 const char* nameoutput = GetOutputSlot(4)->GetContainer()->GetName();
2973 fVariablesTree =
new TTree(nameoutput,
"Candidates variables tree");
2976 TString * fCandidateVariableNames =
new TString[nVar];
2977 fCandidateVariableNames[ 0]=
"isLcByMC";
2978 fCandidateVariableNames[ 1]=
"isV0ByMC";
2979 fCandidateVariableNames[ 2]=
"flagToCheckBachelor";
2980 fCandidateVariableNames[ 3]=
"flagToCheckV0daughters";
2981 fCandidateVariableNames[ 4]=
"flagToCheckCandidate";
2982 fCandidateVariableNames[ 5]=
"massLc2K0Sp";
2983 fCandidateVariableNames[ 6]=
"massLc2Lambdapi";
2984 fCandidateVariableNames[ 7]=
"massD2K0Spi";
2985 fCandidateVariableNames[ 8]=
"massDS2K0SK";
2986 fCandidateVariableNames[ 9]=
"massK0S";
2987 fCandidateVariableNames[10]=
"massLambda";
2988 fCandidateVariableNames[11]=
"massLambdaBar";
2989 fCandidateVariableNames[12]=
"massGamma";
2990 fCandidateVariableNames[13]=
"dcaLcptp";
2991 fCandidateVariableNames[14]=
"dcaV0ptp";
2992 fCandidateVariableNames[15]=
"tImpParBach";
2993 fCandidateVariableNames[16]=
"tImpParV0";
2994 fCandidateVariableNames[17]=
"dcaV0postoPV";
2995 fCandidateVariableNames[18]=
"dcaV0negtoPV";
2996 fCandidateVariableNames[19]=
"cosPALc";
2997 fCandidateVariableNames[20]=
"cosPAK0S";
2998 fCandidateVariableNames[21]=
"rhoV0";
2999 fCandidateVariableNames[22]=
"nSigmaITSpr";
3000 fCandidateVariableNames[23]=
"nSigmaITSpi";
3001 fCandidateVariableNames[24]=
"nSigmaITSka";
3002 fCandidateVariableNames[25]=
"nSigmaTPCpr";
3003 fCandidateVariableNames[26]=
"nSigmaTPCpi";
3004 fCandidateVariableNames[27]=
"nSigmaTPCka";
3005 fCandidateVariableNames[28]=
"nSigmaTOFpr";
3006 fCandidateVariableNames[29]=
"nSigmaTOFpi";
3007 fCandidateVariableNames[30]=
"nSigmaTOFka";
3008 fCandidateVariableNames[31]=
"yLc";
3009 fCandidateVariableNames[32]=
"etaBach";
3010 fCandidateVariableNames[33]=
"etaV0pos";
3011 fCandidateVariableNames[34]=
"etaV0neg";
3012 fCandidateVariableNames[35]=
"LcP";
3013 fCandidateVariableNames[36]=
"LcPt";
3014 fCandidateVariableNames[37]=
"v0P";
3015 fCandidateVariableNames[38]=
"v0Pt";
3016 fCandidateVariableNames[39]=
"bachelorP";
3017 fCandidateVariableNames[40]=
"bachelorPt";
3018 fCandidateVariableNames[41]=
"V0positiveP";
3019 fCandidateVariableNames[42]=
"V0positivePt";
3020 fCandidateVariableNames[43]=
"V0negativeP";
3021 fCandidateVariableNames[44]=
"V0negativePt";
3022 fCandidateVariableNames[45]=
"decayLengthLc";
3023 fCandidateVariableNames[46]=
"decayLengthV0";
3024 fCandidateVariableNames[47]=
"cosPALcXY";
3025 fCandidateVariableNames[48]=
"cosPAV0XY";
3026 fCandidateVariableNames[49]=
"decayLengthLcXY";
3027 fCandidateVariableNames[50]=
"decayLengthV0XY";
3028 fCandidateVariableNames[51]=
"normalizedDecayLengthLc";
3029 fCandidateVariableNames[52]=
"normalizedDecayLengthV0";
3030 fCandidateVariableNames[53]=
"normalizedDecayLengthXYLc";
3031 fCandidateVariableNames[54]=
"normalizedDecayLengthXYV0";
3032 fCandidateVariableNames[55]=
"newLcDCA";
3033 fCandidateVariableNames[56]=
"xVtxLcBad";
3034 fCandidateVariableNames[57]=
"yVtxLcBad";
3035 fCandidateVariableNames[58]=
"zVtxLcBad";
3036 fCandidateVariableNames[59]=
"xVtxLcGood";
3037 fCandidateVariableNames[60]=
"yVtxLcGood";
3038 fCandidateVariableNames[61]=
"zVtxLcGood";
3039 fCandidateVariableNames[62]=
"xVtxLcMC";
3040 fCandidateVariableNames[63]=
"yVtxLcMC";
3041 fCandidateVariableNames[64]=
"zVtxLcMC";
3042 fCandidateVariableNames[65]=
"pxVtxBachelorBad";
3043 fCandidateVariableNames[66]=
"pyVtxBachelorBad";
3044 fCandidateVariableNames[67]=
"pxVtxBachelorGood";
3045 fCandidateVariableNames[68]=
"pyVtxBachelorGood";
3046 fCandidateVariableNames[69]=
"pxVtxV0";
3047 fCandidateVariableNames[70]=
"pyVtxV0";
3048 fCandidateVariableNames[71]=
"xPvtx";
3049 fCandidateVariableNames[72]=
"yPvtx";
3050 fCandidateVariableNames[73]=
"zPvtx";
3051 fCandidateVariableNames[74]=
"cosThetaStarBachelor";
3052 fCandidateVariableNames[75]=
"cosThetaStarV0";
3053 fCandidateVariableNames[76]=
"etaV0";
3054 fCandidateVariableNames[77]=
"yV0";
3055 fCandidateVariableNames[78]=
"pzVtxBachelorGood";
3056 fCandidateVariableNames[79]=
"pzVtxV0";
3057 fCandidateVariableNames[80]=
"bachelorCharge";
3058 fCandidateVariableNames[81]=
"isMCparticleInFiducialAcceptance";
3059 fCandidateVariableNames[82]=
"massKstar12K0Spi";
3060 fCandidateVariableNames[83]=
"massKstar22K0Spi";
3061 fCandidateVariableNames[84]=
"pdgBachelor";
3062 fCandidateVariableNames[85]=
"pdgCandidate";
3063 fCandidateVariableNames[86]=
"pdgV0pos";
3064 fCandidateVariableNames[87]=
"pdgV0neg";
3065 fCandidateVariableNames[88]=
"pdgV0Candidate";
3066 fCandidateVariableNames[89]=
"startTimeMask";
3092 for (Int_t ivar=0; ivar<nVar; ivar++) {
3105 fCEvents =
new TH1F(
"fCEvents",
"conter",18,0,18);
3107 fCEvents->GetXaxis()->SetBinLabel(1,
"X1");
3108 fCEvents->GetXaxis()->SetBinLabel(2,
"Analyzed events");
3109 fCEvents->GetXaxis()->SetBinLabel(3,
"AliAODVertex exists");
3110 fCEvents->GetXaxis()->SetBinLabel(4,
"CascadesHF exists");
3111 fCEvents->GetXaxis()->SetBinLabel(5,
"MCarray exists");
3112 fCEvents->GetXaxis()->SetBinLabel(6,
"MCheader exists");
3113 fCEvents->GetXaxis()->SetBinLabel(7,
"GetNContributors()>0");
3114 fCEvents->GetXaxis()->SetBinLabel(8,
"IsEventSelected");
3115 fCEvents->GetXaxis()->SetBinLabel(9,
"triggerClass!=CINT1");
3116 fCEvents->GetXaxis()->SetBinLabel(10,
"triggerMask!=kAnyINT");
3117 fCEvents->GetXaxis()->SetBinLabel(11,
"triggerMask!=kAny");
3118 fCEvents->GetXaxis()->SetBinLabel(12,
"vtxTitle.Contains(Z)");
3119 fCEvents->GetXaxis()->SetBinLabel(13,
"vtxTitle.Contains(3D)");
3120 fCEvents->GetXaxis()->SetBinLabel(14,
"vtxTitle.Doesn'tContain(Z-3D)");
3122 fCEvents->GetXaxis()->SetBinLabel(16,
"!IsEventSelected");
3123 fCEvents->GetXaxis()->SetBinLabel(17,
"triggerMask!=kAnyINT || triggerClass!=CINT1");
3126 fCEvents->GetYaxis()->SetTitle(
"counts");
3129 TString fillthis=
"";
3132 fillthis=
"histMcStatLc";
3133 TH1F* mcStatisticLc =
new TH1F(fillthis.Data(),
"#Lambda_{c} generated and their decays",21,-10.5,10.5);
3139 fillthis=
"histoprotonBachSigmaVspTOF";
3140 TH2F *hprotonBachSigmaVspTOF=
new TH2F(fillthis.Data(),fillthis.Data(),300,0.,30.,100,-5.,5.);
3143 fOutput->Add(hprotonBachSigmaVspTOF);
3147 fillthis=
"histoprotonBachSigmaVspTPC";
3148 TH2F *hprotonBachSigmaVspTPC=
new TH2F(fillthis.Data(),fillthis.Data(),300,0.,30.,100,-5.,5.);
3151 fOutput->Add(hprotonBachSigmaVspTPC);
3157 fillthis=
"histoprotonBachSigmaVspTOFsgn";
3158 TH2F *hprotonBachSigmaVspTOFsgn=
new TH2F(fillthis.Data(),fillthis.Data(),300,0.,30.,100,-5.,5.);
3161 fOutput->Add(hprotonBachSigmaVspTOFsgn);
3165 fillthis=
"histoprotonBachSigmaVspTPCsgn";
3166 TH2F *hprotonBachSigmaVspTPCsgn=
new TH2F(fillthis.Data(),fillthis.Data(),300,0.,30.,100,-5.,5.);
3169 fOutput->Add(hprotonBachSigmaVspTPCsgn);
3174 fillthis=
"histoprotonBachSigmaVspTOFbkg";
3175 TH2F *hprotonBachSigmaVspTOFbkg=
new TH2F(fillthis.Data(),fillthis.Data(),300,0.,30.,100,-5.,5.);
3178 fOutput->Add(hprotonBachSigmaVspTOFbkg);
3182 fillthis=
"histoprotonBachSigmaVspTPCbkg";
3183 TH2F *hprotonBachSigmaVspTPCbkg=
new TH2F(fillthis.Data(),fillthis.Data(),300,0.,30.,100,-5.,5.);
3186 fOutput->Add(hprotonBachSigmaVspTPCbkg);
3192 TH1F *hZ2 =
new TH1F(
"hZ2",
"",100,-50.,50.);
3194 TH1F *hZ3 =
new TH1F(
"hZ3",
"",100,-50.,50.);
3196 TH1F *hZ4 =
new TH1F(
"hZ4",
"",100,-50.,50.);
3198 TH1F *hZ5 =
new TH1F(
"hZ5",
"",100,-50.,50.);
3200 TH1F *hZ6 =
new TH1F(
"hZ6",
"",100,-50.,50.);
3202 TH1F *hZ7 =
new TH1F(
"hZ7",
"",100,-50.,50.);
3204 TH1F *hZ8 =
new TH1F(
"hZ8",
"",100,-50.,50.);
3206 TH1F *hZ9 =
new TH1F(
"hZ9",
"",100,-50.,50.);
3208 TH1F *hZ10 =
new TH1F(
"hZ10",
"",100,-50.,50.);
3210 TH1F *hZ11 =
new TH1F(
"hZ11",
"",100,-50.,50.);
3212 TH1F *hZ12 =
new TH1F(
"hZ12",
"",100,-50.,50.);
3214 TH1F *hZ13 =
new TH1F(
"hZ13",
"",100,-50.,50.);
3216 TH1F *hZ14 =
new TH1F(
"hZ14",
"",100,-50.,50.);
3218 TH1F *hZ15 =
new TH1F(
"hZ15",
"",100,-50.,50.);
3220 TH1F *hZ16 =
new TH1F(
"hZ16",
"",100,-50.,50.);
3224 TH1F *hCandidateSelection =
new TH1F(
"hCandidateSelection",
"",10,-0.5,9.5);
3225 hCandidateSelection->GetXaxis()->SetBinLabel(1,
"IsEventSelected");
3226 hCandidateSelection->GetXaxis()->SetBinLabel(2,
"IsSecondaryVtx");
3227 hCandidateSelection->GetXaxis()->SetBinLabel(3,
"V0toPosNeg");
3228 hCandidateSelection->GetXaxis()->SetBinLabel(4,
"offlineV0");
3229 hCandidateSelection->GetXaxis()->SetBinLabel(5,
"isInFiducialAcceptance");
3230 hCandidateSelection->GetXaxis()->SetBinLabel(6,
"analCuts::kTracks");
3231 hCandidateSelection->GetXaxis()->SetBinLabel(7,
"analCuts::kCandidateNoPID");
3232 hCandidateSelection->GetXaxis()->SetBinLabel(8,
"analCuts::kPID");
3233 hCandidateSelection->GetXaxis()->SetBinLabel(9,
"analCuts::kCandidateWithPID");
3234 hCandidateSelection->GetXaxis()->SetBinLabel(10,
"analCuts::kAll");
3235 fOutput->Add(hCandidateSelection);
3237 TH1F *hEventsWithCandidates =
new TH1F(
"hEventsWithCandidates",
"conter",11,5.5,16.5);
3238 hEventsWithCandidates->GetXaxis()->SetBinLabel(1,
"GetNContributors()>0");
3239 hEventsWithCandidates->GetXaxis()->SetBinLabel(2,
"IsEventSelected");
3240 hEventsWithCandidates->GetXaxis()->SetBinLabel(3,
"triggerClass!=CINT1");
3241 hEventsWithCandidates->GetXaxis()->SetBinLabel(4,
"triggerMask!=kAnyINT");
3242 hEventsWithCandidates->GetXaxis()->SetBinLabel(5,
"triggerMask!=kAny");
3243 hEventsWithCandidates->GetXaxis()->SetBinLabel(6,
"vtxTitle.Contains(Z)");
3244 hEventsWithCandidates->GetXaxis()->SetBinLabel(7,
"vtxTitle.Contains(3D)");
3245 hEventsWithCandidates->GetXaxis()->SetBinLabel(8,
"vtxTitle.Doesn'tContain(Z-3D)");
3246 hEventsWithCandidates->GetXaxis()->SetBinLabel(9,Form(
"zVtx<=%2.0fcm",
fAnalCuts->
GetMaxVtxZ()));
3247 hEventsWithCandidates->GetXaxis()->SetBinLabel(10,
"!IsEventSelected");
3248 hEventsWithCandidates->GetXaxis()->SetBinLabel(11,
"triggerMask!=kAnyINT || triggerClass!=CINT1");
3249 fOutput->Add(hEventsWithCandidates);
3253 TH1F *hZ6a =
new TH1F(
"hZ6a",
"",100,-50.,50.);
3255 TH1F *hZ7a =
new TH1F(
"hZ7a",
"",100,-50.,50.);
3257 TH1F *hZ8a =
new TH1F(
"hZ8a",
"",100,-50.,50.);
3259 TH1F *hZ9a =
new TH1F(
"hZ9a",
"",100,-50.,50.);
3261 TH1F *hZ10a =
new TH1F(
"hZ10a",
"",100,-50.,50.);
3263 TH1F *hZ11a =
new TH1F(
"hZ11a",
"",100,-50.,50.);
3265 TH1F *hZ12a =
new TH1F(
"hZ12a",
"",100,-50.,50.);
3267 TH1F *hZ13a =
new TH1F(
"hZ13a",
"",100,-50.,50.);
3269 TH1F *hZ14a =
new TH1F(
"hZ14a",
"",100,-50.,50.);
3271 TH1F *hZ15a =
new TH1F(
"hZ15a",
"",100,-50.,50.);
3273 TH1F *hZ16a =
new TH1F(
"hZ16a",
"",100,-50.,50.);
3277 TH1F *hSwitchOnCandidates1 =
new TH1F(
"hSwitchOnCandidates1",
"",15,-7.5,7.5);
3278 fOutput->Add(hSwitchOnCandidates1);
3279 TH1F *hSwitchOnCandidates2 =
new TH1F(
"hSwitchOnCandidates2",
"",15,-7.5,7.5);
3280 fOutput->Add(hSwitchOnCandidates2);
3281 TH1F *hSwitchOnCandidates3 =
new TH1F(
"hSwitchOnCandidates3",
"",15,-7.5,7.5);
3282 fOutput->Add(hSwitchOnCandidates3);
3283 TH1F *hSwitchOnCandidates4 =
new TH1F(
"hSwitchOnCandidates4",
"",15,-7.5,7.5);
3284 fOutput->Add(hSwitchOnCandidates4);
3295 TString fillthis=
"";
3303 Double_t lambdacpt = part->Pt();
3305 AliAODTrack *bachelor = (AliAODTrack*)part->
GetBachelor();
3306 Double_t momBach = bachelor->P();
3307 Double_t ptBach = bachelor->Pt();
3309 AliAODv0 *v0part = (AliAODv0*)part->
Getv0();
3310 Double_t momK0S = v0part->P();
3311 Double_t ptK0S = v0part->Pt();
3313 Double_t invmassK0S = v0part->MassK0Short();
3316 Double_t ptV0pos = v0pos->Pt();
3318 Double_t ptV0neg = v0neg->Pt();
3320 fillthis=
"histK0SMass"+appendthis;
3324 ((TH2F*)(
fOutputAll->FindObject(fillthis)))->Fill(lambdacpt,invmassK0S);
3325 if (isBachelorID) ((TH2F*)(
fOutputPIDBach->FindObject(fillthis)))->Fill(lambdacpt,invmassK0S);
3329 fillthis=
"histpK0Svsp"+appendthis;
3332 ((TH2F*)(
fOutputAll->FindObject(fillthis)))->Fill(momBach,momK0S);
3333 if (isBachelorID) ((TH2F*)(
fOutputPIDBach->FindObject(fillthis)))->Fill(momBach,momK0S);
3336 fillthis=
"histLcMassByK0S"+appendthis;
3339 ((TH2F*)(
fOutputAll->FindObject(fillthis)))->Fill(invmassLc,lambdacpt);
3340 if (isBachelorID)((TH2F*)(
fOutputPIDBach->FindObject(fillthis)))->Fill(invmassLc,lambdacpt);
3346 fillthis=
"histptK0S"+appendthis;
3350 ((TH2F*)(
fOutputAll->FindObject(fillthis)))->Fill(lambdacpt,ptK0S);
3351 if (isBachelorID)((TH2F*)(
fOutputPIDBach->FindObject(fillthis)))->Fill(lambdacpt,ptK0S);
3354 fillthis=
"histptP"+appendthis;
3358 ((TH2F*)(
fOutputAll->FindObject(fillthis)))->Fill(lambdacpt,ptBach);
3359 if (isBachelorID)((TH2F*)(
fOutputPIDBach->FindObject(fillthis)))->Fill(lambdacpt,ptBach);
3362 fillthis=
"histptPip"+appendthis;
3366 ((TH2F*)(
fOutputAll->FindObject(fillthis)))->Fill(lambdacpt,ptV0pos);
3367 if (isBachelorID)((TH2F*)(
fOutputPIDBach->FindObject(fillthis)))->Fill(lambdacpt,ptV0pos);
3370 fillthis=
"histptPim"+appendthis;
3374 ((TH2F*)(
fOutputAll->FindObject(fillthis)))->Fill(lambdacpt,ptV0neg);
3375 if (isBachelorID)((TH2F*)(
fOutputPIDBach->FindObject(fillthis)))->Fill(lambdacpt,ptV0neg);
3378 fillthis=
"histLambdaMass"+appendthis;
3382 ((TH2F*)(
fOutputAll->FindObject(fillthis)))->Fill(lambdacpt,v0part->MassLambda());
3383 if (isBachelorID)((TH2F*)(
fOutputPIDBach->FindObject(fillthis)))->Fill(lambdacpt,v0part->MassLambda());
3386 fillthis=
"histLambdaBarMass"+appendthis;
3390 ((TH2F*)(
fOutputAll->FindObject(fillthis)))->Fill(lambdacpt,v0part->MassAntiLambda());
3391 if (isBachelorID)((TH2F*)(
fOutputPIDBach->FindObject(fillthis)))->Fill(lambdacpt,v0part->MassAntiLambda());
3394 fillthis=
"histGammaMass"+appendthis;
3398 ((TH2F*)(
fOutputAll->FindObject(fillthis)))->Fill(lambdacpt,v0part->InvMass2Prongs(0,1,11,11));
3399 if (isBachelorID)((TH2F*)(
fOutputPIDBach->FindObject(fillthis)))->Fill(lambdacpt,v0part->InvMass2Prongs(0,1,11,11));
3402 fillthis=
"histD0K0S"+appendthis;
3406 ((TH2F*)(
fOutputAll->FindObject(fillthis)))->Fill(lambdacpt,part->Getd0Prong(1));
3407 if (isBachelorID)((TH2F*)(
fOutputPIDBach->FindObject(fillthis)))->Fill(lambdacpt,part->Getd0Prong(1));
3410 fillthis=
"histD0P"+appendthis;
3414 ((TH2F*)(
fOutputAll->FindObject(fillthis)))->Fill(lambdacpt,part->Getd0Prong(0));
3415 if (isBachelorID)((TH2F*)(
fOutputPIDBach->FindObject(fillthis)))->Fill(lambdacpt,part->Getd0Prong(0));
3418 fillthis=
"histCosPAK0S"+appendthis;
3433 Double_t &xVtxLc, Double_t &yVtxLc, Double_t &zVtxLc,
3434 Double_t &pxVtxBachelor, Double_t &pyVtxBachelor, Double_t &pzVtxBachelor) {
3441 Double_t xyz[3], pxpypz[3], cv[21]; Short_t sign;
3442 bachelor->PxPyPz(pxpypz);
3443 bachelor->XvYvZv(xyz);
3444 bachelor->GetCovarianceXYZPxPyPz(cv);
3445 sign=bachelor->Charge();
3446 AliExternalTrackParam *t =
new AliExternalTrackParam(xyz,pxpypz,cv,sign);
3448 Double_t alpha=t->GetAlpha(), cs1=TMath::Cos(alpha), sn1=TMath::Sin(alpha);
3452 Double_t x1=xyz[0], y1=xyz[1], z1=xyz[2];
3453 Double_t px1=pxpypz[0], py1=pxpypz[1], pz1=pxpypz[2];
3456 Double_t x2=v->DecayVertexV0X(),
3457 y2=v->DecayVertexV0Y(),
3458 z2=v->DecayVertexV0Z();
3459 Double_t px2=v->Px(),
3486 Double_t dd=
Det(x2-x1,y2-y1,z2-z1,px1,py1,pz1,px2,py2,pz2);
3487 Double_t ax=
Det(py1,pz1,py2,pz2);
3488 Double_t ay=-
Det(px1,pz1,px2,pz2);
3489 Double_t az=
Det(px1,py1,px2,py2);
3491 Double_t dca=TMath::Abs(dd)/TMath::Sqrt(ax*ax + ay*ay + az*az);
3494 Double_t t1 =
Det(x2-x1,y2-y1,z2-z1,px2,py2,pz2,ax,ay,az)/
3495 Det(px1,py1,pz1,px2,py2,pz2,ax,ay,az);
3496 x1 += px1*t1; y1 += py1*t1; z1 += pz1*t1;
3499 Double_t rho1=x1*cs1 + y1*sn1;
3500 if (!t->PropagateTo(rho1,b)) {
3501 Error(
"PropagateToDCA",
"Propagation failed !");
3506 Double_t pBachelorDCA[3]; t->GetPxPyPz(pBachelorDCA);
3507 pxVtxBachelor=pBachelorDCA[0], pyVtxBachelor=pBachelorDCA[1], pzVtxBachelor=pBachelorDCA[2];
3512 Double_t t2 =
Det(x1-x2,y1-y2,z1-z2,px1,py1,pz1,ax,ay,az)/
3513 Det(px2,py2,pz2,px1,py1,pz1,ax,ay,az);
3514 x2 += px2*t2; y2 += py2*t2; z2 += pz2*t2;
3518 xVtxLc = 0.5*(x1+x2);
3519 yVtxLc = 0.5*(y1+y2);
3520 zVtxLc = 0.5*(z1+z2);
3533 Double_t alpha = 0.;
3535 const double kSafe = 1e-5;
3536 Double_t radPos2 = xyz[0]*xyz[0]+xyz[1]*xyz[1];
3537 Double_t radMax = 45.;
3538 if (radPos2 < radMax*radMax) {
3539 alpha = TMath::ATan2(pxpypz[1],pxpypz[0]);
3541 Float_t phiPos = TMath::Pi()+TMath::ATan2(-xyz[1], -xyz[0]);
3543 TMath::DegToRad()*(20*((((Int_t)(phiPos*TMath::RadToDeg()))/20))+10);
3546 Double_t cs=TMath::Cos(alpha), sn=TMath::Sin(alpha);
3548 if (TMath::Abs(sn)<2*kSafe) {
3549 if (alpha>0) alpha += alpha< TMath::Pi()/2. ? 2*kSafe : -2*kSafe;
3550 else alpha += alpha>-TMath::Pi()/2. ? -2*kSafe : 2*kSafe;
3551 cs=TMath::Cos(alpha);
3552 sn=TMath::Sin(alpha);
3554 else if (TMath::Abs(cs)<2*kSafe) {
3555 if (alpha>0) alpha += alpha> TMath::Pi()/2. ? 2*kSafe : -2*kSafe;
3556 else alpha += alpha>-TMath::Pi()/2. ? 2*kSafe : -2*kSafe;
3557 cs=TMath::Cos(alpha);
3558 sn=TMath::Sin(alpha);
3567 Double_t a10, Double_t a11)
const {
3572 return a00*a11 - a01*a10;
3577 Double_t a10,Double_t a11,Double_t a12,
3578 Double_t a20,Double_t a21,Double_t a22)
const {
3583 return a00*
Det(a11,a12,a21,a22)-a01*
Det(a10,a12,a20,a22)+a02*
Det(a10,a11,a20,a21);
3588 TClonesArray *mcArray)
3596 AliAODv0 *theV0 =
dynamic_cast<AliAODv0*
>(candidate->
Getv0());
3597 AliVTrack *trk =
dynamic_cast<AliVTrack*
>(candidate->
GetBachelor());
3598 if (!trk || !theV0)
return -1;
3600 if (trk->GetLabel()==-1)
return -1;
3601 Int_t bachLabels = TMath::Abs(trk->GetLabel());
3602 AliAODMCParticle*bachelorMC =
dynamic_cast<AliAODMCParticle*
>(mcArray->At(bachLabels));
3603 if (!bachelorMC)
return -1;
3604 if (TMath::Abs(bachelorMC->GetPdgCode())!=2212)
return -1;
3605 Int_t indexMotherBach = bachelorMC->GetMother();
3606 if (indexMotherBach==-1)
return -1;
3608 Int_t pdgDg2prong[2] = {211,211};
3609 Int_t lab2Prong = theV0->MatchToMC(310,mcArray,2,pdgDg2prong);
3610 if(lab2Prong<0)
return -1;
3611 AliAODMCParticle*partK0S =
dynamic_cast<AliAODMCParticle*
>(mcArray->At(lab2Prong));
3612 if (!partK0S)
return -1;
3613 Int_t indexMotherK0S = partK0S->GetMother();
3614 if (indexMotherK0S==-1)
return -1;
3615 AliAODMCParticle*partK0 =
dynamic_cast<AliAODMCParticle*
>(mcArray->At(indexMotherK0S));
3616 if (!partK0)
return -1;
3617 Int_t indexMotherK0 = partK0->GetMother();
3618 if (indexMotherK0==-1)
return -1;
3620 if (indexMotherBach!=indexMotherK0)
return -1;
3622 AliAODMCParticle*partLc =
dynamic_cast<AliAODMCParticle*
>(mcArray->At(indexMotherK0));
3623 if (!partLc)
return -1;
3624 Int_t ndg2 = partLc->GetDaughter(1)-partLc->GetDaughter(0)+1;
3625 if (ndg2==2)
return -1;
3627 TString stringaCheck = Form(
">>>>>>>> %d -> ",partLc->GetPdgCode());
3628 for(Int_t ii=0; ii<ndg2; ii++) {
3629 AliAODMCParticle* partDau=(AliAODMCParticle*)(mcArray->At(partLc->GetDaughter(0)+ii));
3630 stringaCheck.Append(Form(
" %d",partDau->GetPdgCode()));
3634 return indexMotherBach;
3639 Int_t dgLabels[10],Int_t ndg,
3640 Int_t &ndgCk, Int_t *pdgDg, Int_t &absLabelMother, Int_t &nDauCand)
const
3648 Int_t lab=-1,labMother=-1,pdgMother=0;
3649 AliAODMCParticle *part=0;
3650 AliAODMCParticle *mother=0;
3653 TArrayI **labelMother =
new TArrayI*[ndg];
3654 for(Int_t i=0; i<ndg; i++) labelMother[i] =
new TArrayI(0);
3655 for(Int_t i=0; i<ndg; i++) {
3656 lab = TMath::Abs(dgLabels[i]);
3658 AliDebug(2,Form(
"daughter with negative label %d",lab));
3659 delete [] labelMother;
3662 part = (AliAODMCParticle*)mcArray->At(lab);
3664 AliDebug(2,
"no MC particle");
3665 delete [] labelMother;
3670 while(mother->GetMother()>=0) {
3671 labMother=mother->GetMother();
3672 mother = (AliAODMCParticle*)mcArray->At(labMother);
3674 AliDebug(2,
"no MC mother particle");
3677 pdgMother = TMath::Abs(mother->GetPdgCode());
3678 if (pdgMother<10 || (pdgMother>18 && pdgMother<111)) {
3681 labelMother[i]->Set(labelMother[i]->GetSize()+1);
3682 labelMother[i]->AddAt(labMother,labelMother[i]->GetSize()-1);
3688 TString stringaCheck;
3689 for(Int_t i=0; i<ndg; i++) {
3690 AliAODMCParticle*part0 = (AliAODMCParticle*)mcArray->At(TMath::Abs(dgLabels[i]));
3691 stringaCheck.Append(Form(
"part[%d]->GetLabel()=%d(%d) | ",i,dgLabels[i],part0->GetPdgCode()));
3692 stringaCheck.Append(Form(
"labelMother[%d] = ",i));
3693 for (Int_t jj=0;jj<labelMother[i]->GetSize(); jj++)
3694 stringaCheck.Append(Form(
"%d, ",labelMother[i]->At(jj)));
3696 AliDebug(2,Form(
"%s \n",stringaCheck.Data()));
3697 Int_t pdgToBeReturned=0;
3699 TString stringaCheck2;
3701 pdgDg =
new Int_t[ndgCk];
3702 for (Int_t index=1; index<ndg; index++) {
3703 Bool_t found=kFALSE;
3704 for (Int_t jj=0;jj<labelMother[index]->GetSize(); jj++) {
3705 for (Int_t ii=0;ii<labelMother[0]->GetSize(); ii++) {
3706 if (labelMother[0]->At(ii)==labelMother[index]->At(jj) &&
3707 labelMother[0]->At(ii)!=0 && labelMother[0]->At(ii)!=1 && !found) {
3708 mother = (AliAODMCParticle*)mcArray->At(labelMother[0]->At(ii));
3709 pdgToBeReturned=mother->GetPdgCode();
3710 absLabelMother=labelMother[0]->At(ii);
3711 AliDebug(2,Form(
"FOUND label for the mother of this candidate: %d (PDG=%d)\n",labelMother[0]->At(ii),pdgToBeReturned));
3713 nDauCand=mother->GetNDaughters();
3715 AliAODMCParticle *partMC = (AliAODMCParticle*)mcArray->At(dgLabels[0]);
3716 pdgDg[0]=partMC->GetPdgCode();
3717 partMC = (AliAODMCParticle*)mcArray->At(dgLabels[index]);
3718 pdgDg[index]=partMC->GetPdgCode();
3719 if (index==1) stringaCheck2.Append(Form(
"found daughters -> %d(%d)",dgLabels[0],pdgDg[0]));
3720 stringaCheck2.Append(Form(
" %d(%d)",dgLabels[index],pdgDg[index]));
3727 stringaCheck2.Prepend(Form(
"Ecco quanto trovato: %d(%d) with %d daughters; ",absLabelMother,pdgToBeReturned,nDauCand));
3728 AliDebug(2,Form(
"%s \n",stringaCheck2.Data()));
3730 delete [] labelMother;
3733 return pdgToBeReturned;
3742 Double_t px[2]={partCopy->PxProng(0),partCopy->PxProng(1)};
3743 Double_t py[2]={partCopy->PyProng(0),partCopy->PyProng(1)};
3744 Double_t pz[2]={partCopy->PzProng(0),partCopy->PzProng(1)};
3746 Double_t pt = partCopy->Pt();
3748 UInt_t pdgLc2pK0S[2]={2212,310};
3749 Double_t minv2 = partCopy->InvMass2(2,pdgLc2pK0S);
3750 Double_t
mass=TMath::Sqrt(minv2);
3751 Double_t rapid = partCopy->Y(pdgD);
3756 fillthis=
"hMassVsPtVsY"+appendthis;
3760 fillthis=
"phiVSthetaVSpt"+appendthis;
3762 ((TH3F*)(
fOutputPIDBachTR->FindObject(fillthis)))->Fill(pt,part->Phi(),part->Theta());
3773 Double_t tmpx=px[0];
3774 Double_t tmpy=py[0];
3775 px[0]=tmpx*TMath::Cos(phirot)-tmpy*TMath::Sin(phirot);
3776 py[0]=tmpx*TMath::Sin(phirot)+tmpy*TMath::Cos(phirot);
3777 partCopy->SetPxPyPzProngs(2,px,py,pz);
3778 pt = partCopy->Pt();
3779 minv2 = partCopy->InvMass2(2,pdgLc2pK0S);
3780 massRot=TMath::Sqrt(minv2);
3781 rapid = partCopy->Y(pdgD);
3786 fillthis=
"histLcMassByK0S"+appendthis;
3790 fillthis=
"hMassVsPtVsYRot"+appendthis;
3794 fillthis=
"phiVSthetaVSptRot"+appendthis;
3796 ((TH3F*)(
fOutputPIDBachTR->FindObject(fillthis)))->Fill(pt,partCopy->Phi(),partCopy->Theta());
3798 fillthis=
"hDeltaMass"+appendthis;
3812 fillthis=
"histptK0S"+appendthis;
3816 ((TH2F*)(
fOutputPIDBachTR->FindObject(fillthis)))->Fill(pt,TMath::Sqrt(px[1]*px[1]+py[1]*py[1]));
3819 fillthis=
"histptP"+appendthis;
3823 ((TH2F*)(
fOutputPIDBachTR->FindObject(fillthis)))->Fill(pt,TMath::Sqrt(px[0]*px[0]+py[0]*py[0]));
3826 fillthis=
"histptPip"+appendthis;
3833 fillthis=
"histptPim"+appendthis;
3840 fillthis=
"histLambdaMass"+appendthis;
3847 fillthis=
"histLambdaBarMass"+appendthis;
3854 fillthis=
"histGammaMass"+appendthis;
3858 ((TH2F*)(
fOutputPIDBachTR->FindObject(fillthis)))->Fill(pt,(partCopy->
Getv0())->InvMass2Prongs(0,1,11,11));
3861 fillthis=
"histCosPAK0S"+appendthis;
3874 fillthis=
"hNormRotated"+appendthis;
Int_t IsSelectedSingleCut(TObject *obj, Int_t selectionLevel, Int_t cutIndex)
Double_t NormalizedDecayLengthXY() const
virtual Int_t IsSelected(TObject *obj, Int_t selectionLevel)
Double_t NormalizedDecayLength() const
ClassImp(AliAnalysisTaskTriggerRates) AliAnalysisTaskTriggerRates
Float_t fBzkG
primary vertex
Bool_t fIsEventSelected
flag to analyze also on-the-fly V0 candidates
void StoreCandidates(AliVEvent *, Int_t nCand=0, Bool_t flagFilter=kTRUE)
Double_t Det(Double_t a00, Double_t a01, Double_t a10, Double_t a11) const
Double_t fPtMaxToFillTheTree
0.
Int_t GetnSigmaTOF(AliAODTrack *track, Int_t species, Double_t &sigma) const
Bool_t fAdditionalChecks
magnetic field value [kG]
void TrackRotation(AliRDHFCutsLctoV0 *cutsAnal, AliAODRecoCascadeHF *part, TString appendthis)
Double_t NormalizedV0DecayLength() const
void DefineGeneralHistograms()
Int_t MatchToMC(Int_t pdgabs, Int_t pdgabs2prong, Int_t *pdgDg, Int_t *pdgDg2prong, TClonesArray *mcArray, Bool_t isV0=kFALSE) const
AliAODTrack * Getv0NegativeTrack() const
void UnsetOwnPrimaryVtx()
TTree * fVariablesTree
flag to decide whether to write the candidate variables on a tree variables
Int_t GetnSigmaTPC(AliAODTrack *track, Int_t species, Double_t &sigma) const
Double_t InvMassLctoLambdaPi() const
Double_t CosV0PointingAngleXY() const
Double_t GetAlpha(Double_t xyz[3], Double_t pxpypz[3])
Double_t NormalizedV0DecayLengthXY() const
Double_t CosPointingAngleXY() const
void FillTheTree(AliAODRecoCascadeHF *part, AliRDHFCutsLctoV0 *cutsAnal, TClonesArray *mcArray, Int_t isLc)
Int_t SearchForCommonMother(TClonesArray *mcArray, Int_t dgLabels[10], Int_t ndg, Int_t &ndgCk, Int_t *pdgDg, Int_t &labelMother, Int_t &nDauCand) const
Bool_t fWriteVariableTree
flag for event selected
Double_t DecayLengthXYV0() const
Double_t fPtMinToFillTheTree
=9;
Double_t GetMaxVtxZ() const
TList * fOutputPIDBachTR
flag to check track rotation
Double_t InvMassLctoK0sP() const
AliAODPidHF * GetPidHF() const
AliNormalizationCounter * fCounter
Histogram to check selected events.
AliAODTrack * Getv0PositiveTrack() const
Int_t fNRotations
=mLcPDG+0.250;
void MakeAnalysisForLc2prK0S(TClonesArray *arrayLctopK0S, TClonesArray *mcArray, Int_t &nSelectedAnal, AliRDHFCutsLctoV0 *cutsAnal)
AliAnalysisTaskSELc2V0bachelor()
void SetExcludedCut(Int_t excludedCut)
Double_t fMaxAngleForRot
=5*TMath::Pi()/6;
Int_t MatchToMC(AliAODRecoCascadeHF *lc2bacV0, Int_t *pdgDgLc2bacV0, Int_t *pdgDgV0, TClonesArray *mcArray)
Bool_t fUseOnTheFlyV0
Cuts - sent to output slot 3.
Bool_t fUseTPCPIDtoFillTree
void DefineTreeVariables()
TList * fOutputAll
User output slot 1 // general histos.
AliAODTrack * GetBachelor() const
AliAODVertex * GetOwnPrimaryVtx() const
void CheckEventSelection(AliAODEvent *aodEvent)
virtual void Terminate(Option_t *option)
TList * fOutputPIDBach
User output slot 4 // histos without pid and cut on V0.
Int_t SearchLcDaughter(TClonesArray *arrayMC, Int_t iii)
Double_t fMinMass
=7*TMath::Pi()/6;
Double_t CosV0PointingAngle() const
Bool_t Data(TH1F *h, Double_t *rangefit, Bool_t writefit, Double_t &sgn, Double_t &errsgn, Double_t &bkg, Double_t &errbkg, Double_t &sgnf, Double_t &errsgnf, Double_t &sigmafit, Int_t &status)
TH1F * fCEvents
User output slot 5 // histos with PID on Bachelor.
void SetOwnPrimaryVtx(const AliAODVertex *vtx)
void FillLc2pK0Sspectrum(AliAODRecoCascadeHF *part, Int_t isLc, Int_t &nSelectedAnal, AliRDHFCutsLctoV0 *cutsAnal, TClonesArray *mcArray)
histos
Double_t DecayLengthXY() const
Double_t fMaxMass
=mLcPDG-0.250;
Int_t GetnSigmaITS(AliAODTrack *track, Int_t species, Double_t &sigma) const
Bool_t IsEventSelected(AliVEvent *event)
void SetUsePID(Bool_t flag=kTRUE)
virtual void UserExec(Option_t *option)
Double_t PropagateToDCA(AliAODv0 *v, AliAODTrack *bachelor, Double_t b, Double_t &xVtxLc, Double_t &yVtxLc, Double_t &zVtxLc, Double_t &pxVtxLc, Double_t &pyVtxLc, Double_t &pzVtxLc)
Int_t MatchToMClabelC(AliAODRecoCascadeHF *candidate, TClonesArray *mcArray)
Bool_t fTrackRotation
flag to fill additional histograms
Float_t * fCandidateVariables
! variables to be written to the tree
AliRDHFCutsLctoV0 * fAnalCuts
AliNormalizationCounter on output slot 2.
void FillArmPodDistribution(AliAODRecoDecay *vZero, TString histoTitle, Bool_t isCandidateSelectedCuts, Bool_t isBachelorID)
void CheckCandidatesAtDifferentLevels(AliAODRecoCascadeHF *part, AliRDHFCutsLctoV0 *cutsAnal)
Bool_t GetIsUsePID() const
Double_t fMinAngleForRot
User output slot 6 // histos with PID on Bachelor and track rotation.
void CheckEventSelectionWithCandidates(AliAODEvent *aodEvent)
void StoreEvent(AliVEvent *, AliRDHFCuts *, Bool_t mc=kFALSE, Int_t multiplicity=-9999)
Double_t CosPointingAngle() const
TList * fOutput
Use MC info.
Double_t DecayLengthV0() const
void SetTriggerClass(TString trclass0, TString trclass1="")
virtual Bool_t IsInFiducialAcceptance(Double_t pt, Double_t y) const
Double_t DecayLength() const
void FillAnalysisHistograms(AliAODRecoCascadeHF *part, AliRDHFCutsLctoV0 *cutsAnal, TString appendthis)
virtual void UserCreateOutputObjects()
Implementation of interface methods.
virtual ~AliAnalysisTaskSELc2V0bachelor()