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"
91 fUseOnTheFlyV0(kFALSE),
92 fIsEventSelected(kFALSE),
93 fWriteVariableTree(kFALSE),
95 fCandidateVariables(),
98 fAdditionalChecks(kFALSE),
99 fTrackRotation(kFALSE),
101 fMinAngleForRot(5*TMath::Pi()/6),
102 fMaxAngleForRot(7*TMath::Pi()/6),
106 fPtMinToFillTheTree(0.),
107 fPtMaxToFillTheTree(999.),
108 fUseTPCPIDtoFillTree(kFALSE),
110 fCheckOrigin(kFALSE),
111 fReconstructSecVtx(kFALSE)
117 Double_t mLcPDG = TDatabasePDG::Instance()->GetParticle(4122)->Mass();
134 fUseOnTheFlyV0(useOnTheFly),
135 fIsEventSelected(kFALSE),
136 fWriteVariableTree(writeVariableTree),
138 fCandidateVariables(),
141 fAdditionalChecks(additionalChecks),
142 fTrackRotation(trackRotation),
144 fMinAngleForRot(5*TMath::Pi()/6),
145 fMaxAngleForRot(7*TMath::Pi()/6),
149 fPtMinToFillTheTree(0.),
150 fPtMaxToFillTheTree(999.),
151 fUseTPCPIDtoFillTree(useTPCpid),
153 fCheckOrigin(origin),
154 fReconstructSecVtx(kFALSE)
159 Info(
"AliAnalysisTaskSELc2V0bachelor",
"Calling Constructor");
166 Double_t mLcPDG = TDatabasePDG::Instance()->GetParticle(4122)->Mass();
170 DefineOutput(1,TList::Class());
171 DefineOutput(2,AliNormalizationCounter::Class());
172 DefineOutput(3,AliRDHFCutsLctoV0::Class());
173 if (!writeVariableTree) {
174 DefineOutput(4,TList::Class());
175 DefineOutput(5,TList::Class());
177 DefineOutput(6,TList::Class());
181 DefineOutput(4,TTree::Class());
193 Info(
"~AliAnalysisTaskSELc2V0bachelor",
"Calling Destructor");
239 if (fDebug > 1) AliInfo(
"Init");
251 AliError(
"NO EVENT FOUND!");
256 TClonesArray *arrayLctopKos=0;
258 if (!aodEvent && AODEvent() && IsStandardAOD()) {
261 aodEvent =
dynamic_cast<AliAODEvent*
> (AODEvent());
264 AliAODHandler* aodHandler = (AliAODHandler*)
265 ((AliAnalysisManager::GetAnalysisManager())->GetOutputEventHandler());
267 if (aodHandler->GetExtensions()) {
268 AliAODExtension *ext = (AliAODExtension*)aodHandler->GetExtensions()->FindObject(
"AliAOD.VertexingHF.root");
270 arrayLctopKos=(TClonesArray*)aodFromExt->GetList()->FindObject(
"CascadesHF");
273 arrayLctopKos=(TClonesArray*)aodEvent->GetList()->FindObject(
"CascadesHF");
282 fVtx1 = (AliAODVertex*)aodEvent->GetPrimaryVertex();
292 if (TMath::Abs(
fBzkG)<0.001)
return;
295 if (!arrayLctopKos) {
296 AliInfo(
"Could not find array of HF cascades, skipping the event");
299 if (arrayLctopKos->GetEntriesFast()) {
300 AliInfo(Form(
"Found %d cascades",arrayLctopKos->GetEntriesFast()));
306 TClonesArray *mcArray = 0;
307 AliAODMCHeader *mcHeader=0;
311 mcArray =
dynamic_cast<TClonesArray*
>(aodEvent->FindListObject(AliAODMCParticle::StdBranchName()));
313 AliError(
"Could not find Monte-Carlo in AOD");
319 mcHeader = (AliAODMCHeader*)aodEvent->GetList()->FindObject(AliAODMCHeader::StdBranchName());
321 AliError(
"AliAnalysisTaskSELc2V0bachelor::UserExec: MC header branch not found!\n");
326 Double_t zMCVertex = mcHeader->GetVtxZ();
328 AliDebug(2,Form(
"Event rejected: abs(zVtxMC)=%f > fAnalCuts->GetMaxVtxZ()=%f",zMCVertex,
fAnalCuts->
GetMaxVtxZ()));
335 Int_t runnumber = aodEvent->GetRunNumber();
336 if (aodEvent->GetTriggerMask() == 0 && (runnumber >= 195344 && runnumber <= 195677)){
337 AliDebug(3,
"Event rejected because of null trigger mask");
343 if (
fVtx1->GetNContributors()>0)
349 Int_t nSelectedAnal = 0;
382 AliAnalysisTaskSE::Terminate();
386 AliError(
"fOutput not available");
394 AliError(
"fOutputAll not available");
400 AliError(
"fOutputPIDBach not available");
407 AliError(
"fOutputPIDBachTR not available");
415 AliError(
"fVariablesTree not available");
425 AliInfo(Form(
"CreateOutputObjects of task %s\n", GetName()));
473 TClonesArray *mcArray,
474 Int_t &nSelectedAnal,
480 Int_t pdgCand = 4122;
481 Int_t pdgDgLctoV0bachelor[2]={2212,310};
482 Int_t pdgDgV0toDaughters[2]={211,211};
485 Int_t nCascades= arrayLctopKos->GetEntriesFast();
487 AliInfo(
"Could not find cascades, skipping the event");
491 for (
Int_t iLctopK0S = 0; iLctopK0S<nCascades; iLctopK0S++) {
493 ((TH1F*)(
fOutput->FindObject(
"hCandidateSelection")))->Fill(0);
498 AliDebug(2,Form(
"Cascade %d doens't exist, skipping",iLctopK0S));
503 AliDebug(2,Form(
"Cascade %d is not flagged as Lc candidate",iLctopK0S));
522 if (!lcK0Spr->GetSecondaryVtx()) {
523 AliInfo(
"No secondary vertex");
527 if (lcK0Spr->GetNDaughters()!=2) {
528 AliDebug(2,Form(
"Cascade %d has not 2 daughters (nDaughters=%d)",iLctopK0S,lcK0Spr->GetNDaughters()));
532 if ( (
fSign == 0 && lcK0Spr->Charge()<0) ||
533 (
fSign == 1 && lcK0Spr->Charge()>0) ) {
534 AliDebug(2,Form(
"Charge of the cascade %d is different with respect to the required one",iLctopK0S));
538 AliAODv0 * v0part =
dynamic_cast<AliAODv0*
>(lcK0Spr->
Getv0());
539 AliAODTrack * bachPart =
dynamic_cast<AliAODTrack*
>(lcK0Spr->
GetBachelor());
540 if (!v0part || !bachPart) {
541 AliDebug(2,Form(
"Cascade %d has no V0 or no bachelor object",iLctopK0S));
545 if (!v0part->GetSecondaryVtx()) {
546 AliDebug(2,Form(
"No secondary vertex for V0 by cascade %d",iLctopK0S));
550 if (v0part->GetNDaughters()!=2) {
551 AliDebug(2,Form(
"current V0 has not 2 daughters (onTheFly=%d, nDaughters=%d)",v0part->GetOnFlyStatus(),v0part->GetNDaughters()));
557 if (!v0Neg || !v0Pos) {
558 AliDebug(2,Form(
"V0 by cascade %d has no V0positive of V0negative object",iLctopK0S));
562 ((TH1F*)(
fOutput->FindObject(
"hCandidateSelection")))->Fill(1);
564 if (v0Pos->Charge() == v0Neg->Charge())
continue;
566 ((TH1F*)(
fOutput->FindObject(
"hCandidateSelection")))->Fill(2);
576 Int_t mcLabel = lcK0Spr->
MatchToMC(pdgCand,pdgDgLctoV0bachelor[1],pdgDgLctoV0bachelor,pdgDgV0toDaughters,mcArray,kTRUE);
578 AliDebug(2,Form(
" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~cascade number %d (total cascade number = %d)", iLctopK0S,nCascades));
580 AliAODMCParticle *partLc =
dynamic_cast<AliAODMCParticle*
>(mcArray->At(mcLabel));
582 pdgCode = partLc->GetPdgCode();
583 if (pdgCode<0) AliDebug(2,Form(
" ¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯ MClabel=%d ~~~~~~~~~~ pdgCode=%d", mcLabel, pdgCode));
584 pdgCode = TMath::Abs(pdgCode);
590 }
else if (pdgMom == 5) {
594 if (isThereaQuark<=0) originLc=3;
599 AliDebug(2,Form(
"No MC candidate (cascade number %d -total cascade number = %d -)", iLctopK0S,nCascades));
607 nSelectedAnal, cutsAnal,
615 AliDebug(2, Form(
"Found %d Reco particles that are Lc!!", nSelectedAnal));
623 Int_t &nSelectedAnal,
625 TClonesArray *mcArray,
634 AliAODTrack *bachelor = (AliAODTrack*)part->
GetBachelor();
637 AliAODv0 * v0part = (AliAODv0*)part->
Getv0();
638 Bool_t onFlyV0 = v0part->GetOnFlyStatus();
688 Double_t invmassK0S = v0part->MassK0Short();
689 Double_t mk0sPDG = TDatabasePDG::Instance()->GetParticle(310)->Mass();
692 if ( !onFlyV0 && isInCascadeWindow &&
708 Int_t pdgCand1 = 4122;
709 Int_t pdgDgLctoV0bachelor1[2]={2212,310};
710 Int_t pdgDgV0toDaughters1[2]={211,211};
711 Int_t mcLabel1=part->
MatchToMC(pdgCand1,pdgDgLctoV0bachelor1[1],pdgDgLctoV0bachelor1,pdgDgV0toDaughters1,mcArray,kTRUE);
712 AliDebug(2,Form(
" Found true MC candidate: Lc->pK0S(%d) - onTheFly=%1d",mcLabel1,onFlyV0));
733 fillthis=
"histArmPodK0S";
736 fillthis=
"histArmPodLc";
745 fillthis=
"histArmPodK0SOffline";
748 fillthis=
"histArmPodLcOffline";
752 if (isCandidateSelectedCuts) {
753 fillthis=
"histoprotonBachSigmaVspTOF";
754 ((
TH2F*)(
fOutput->FindObject(fillthis)))->Fill(momBach,nSigmaTOFpr);
755 fillthis=
"histoprotonBachSigmaVspTPC";
756 ((
TH2F*)(
fOutput->FindObject(fillthis)))->Fill(momBach,nSigmaTPCpr);
764 fillthis=
"histArmPodK0SSgn";
767 fillthis=
"histArmPodLcSgn";
789 fillthis=
"histArmPodK0SOfflineSgn";
792 fillthis=
"histArmPodLcOfflineSgn";
795 if (isCandidateSelectedCuts) {
796 fillthis=
"histoprotonBachSigmaVspTOFsgn";
797 ((
TH2F*)(
fOutput->FindObject(fillthis)))->Fill(momBach,nSigmaTOFpr);
798 fillthis=
"histoprotonBachSigmaVspTPCsgn";
799 ((
TH2F*)(
fOutput->FindObject(fillthis)))->Fill(momBach,nSigmaTPCpr);
823 fillthis=
"histArmPodK0SBkg";
826 fillthis=
"histArmPodLcBkg";
835 fillthis=
"histArmPodK0SOfflineBkg";
838 fillthis=
"histArmPodLcOfflineBkg";
842 if (isCandidateSelectedCuts) {
843 fillthis=
"histoprotonBachSigmaVspTOFbkg";
844 ((
TH2F*)(
fOutput->FindObject(fillthis)))->Fill(momBach,nSigmaTOFpr);
845 fillthis=
"histoprotonBachSigmaVspTPCbkg";
846 ((
TH2F*)(
fOutput->FindObject(fillthis)))->Fill(momBach,nSigmaTPCpr);
860 Double_t mLcPDG = TDatabasePDG::Instance()->GetParticle(4122)->Mass();
861 Double_t mK0SPDG = TDatabasePDG::Instance()->GetParticle(310)->Mass();
862 Double_t mMinLambdaPDG = TDatabasePDG::Instance()->GetParticle(2212)->Mass()+
863 TDatabasePDG::Instance()->GetParticle(211)->Mass();
865 TString nameHisto=
" ", nameHistoSgn=
" ", nameHistoBkg=
" ";
866 TString titleHisto=
" ", titleHistoSgn=
" ", titleHistoBkg=
" ";
885 binLimpTprong[ 0]= 0.0;
886 binLimpTprong[ 1]= 0.1;
887 binLimpTprong[ 2]= 0.2;
888 binLimpTprong[ 3]= 0.3;
889 binLimpTprong[ 4]= 0.4;
890 binLimpTprong[ 5]= 0.5;
891 binLimpTprong[ 6]= 0.6;
892 binLimpTprong[ 7]= 0.7;
893 binLimpTprong[ 8]= 0.8;
894 binLimpTprong[ 9]= 0.9;
895 binLimpTprong[10]= 1.0;
896 binLimpTprong[11]= 1.2;
897 binLimpTprong[12]= 1.4;
898 binLimpTprong[13]= 1.6;
899 binLimpTprong[14]= 1.8;
900 binLimpTprong[15]= 2.0;
901 binLimpTprong[16]= 2.2;
902 binLimpTprong[17]= 2.4;
903 binLimpTprong[18]= 2.6;
904 binLimpTprong[19]= 2.8;
905 binLimpTprong[20]= 3.0;
906 binLimpTprong[21]= 3.5;
907 binLimpTprong[22]= 4.0;
908 binLimpTprong[23]= 4.5;
909 binLimpTprong[24]= 5.0;
910 binLimpTprong[25]= 5.5;
911 binLimpTprong[26]= 6.0;
912 binLimpTprong[27]= 6.5;
913 binLimpTprong[28]= 7.0;
914 binLimpTprong[29]= 7.5;
915 binLimpTprong[30]= 8.0;
916 binLimpTprong[31]= 9.0;
917 binLimpTprong[32]=10.0;
918 binLimpTprong[33]=11.0;
919 binLimpTprong[34]=12.0;
920 binLimpTprong[35]=13.0;
921 binLimpTprong[36]=14.0;
922 binLimpTprong[37]=15.0;
923 binLimpTprong[38]=20.0;
924 binLimpTprong[39]=25.0;
925 binLimpTprong[40]=30.0;
926 binLimpTprong[41]=35.0;
931 nameHisto=
"histK0SMass";
932 titleHisto=
"K^{0}_{S} invariant mass VS p_{T}; p_{T}(#Lambda_{c}) [GeV/c]; m_{inv}(#pi^{+},#pi^{-}) [GeV/c^{2}]; Entries";
933 TH2F* spectrumK0SMass =
new TH2F(nameHisto.Data(),titleHisto.Data(),11,binLimpTLc,1000,mK0SPDG-0.050,mK0SPDG+0.050);
936 nameHisto=
"histLcMassByK0S";
937 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]";
938 TH2F* spectrumLcMassByK0S =
new TH2F(nameHisto.Data(),titleHisto.Data(),1000,mLcPDG-0.250,mLcPDG+0.250,11,binLimpTLc);
940 nameHisto=
"histpK0Svsp";
941 titleHisto=
"p(K^{0}_{S}) vs p(p); p(p) [GeV/c]; p(K^{0}_{S}) [GeV/c]";
942 TH2F* momentumDistributionK0Svsp =
new TH2F(nameHisto.Data(),titleHisto.Data(),41,binLimpTprong,41,binLimpTprong);
944 nameHisto=
"histArmPodK0S";
945 titleHisto=
"V0-candidate Armenteros-Podolanski distribution; #frac{p_{L}^{+}-p_{L}^{-}}{p_{L}^{+}+p_{L}^{-}}; p_{T}^{+} [GeV/c]";
946 TH2F* armenterosPodK0S =
new TH2F(nameHisto.Data(),titleHisto.Data(),200,-1.,1.,300,0.,0.3);
948 nameHisto=
"histArmPodLc";
949 titleHisto=
"#Lambda_{c}-candidate Armenteros-Podolanski distribution; #frac{p_{L}^{+}-p_{L}^{-}}{p_{L}^{+}+p_{L}^{-}}; p_{T}^{+} [GeV/c]";
950 TH2F* armenterosPodLc =
new TH2F(nameHisto.Data(),titleHisto.Data(),200,-4.,4.,800,0.,1.6);
952 TH2F* allspectrumK0SMass = (
TH2F*)spectrumK0SMass->Clone();
953 TH2F* allspectrumLcMassByK0S = (
TH2F*)spectrumLcMassByK0S->Clone();
954 TH2F* allmomentumDistributionK0Svsp = (
TH2F*)momentumDistributionK0Svsp->Clone();
955 TH2F* allArmenterosPodK0S = (
TH2F*)armenterosPodK0S->Clone();
956 TH2F* allArmenterosPodLc = (
TH2F*)armenterosPodLc->Clone();
958 TH2F* pidBachspectrumK0SMass = (
TH2F*)spectrumK0SMass->Clone();
959 TH2F* pidBachspectrumLcMassByK0S = (
TH2F*)spectrumLcMassByK0S->Clone();
960 TH2F* pidBachmomentumDistributionK0Svsp = (
TH2F*)momentumDistributionK0Svsp->Clone();
961 TH2F* pidBachArmenterosPodK0S = (
TH2F*)armenterosPodK0S->Clone();
962 TH2F* pidBachArmenterosPodLc = (
TH2F*)armenterosPodLc->Clone();
966 fOutputAll->Add(allmomentumDistributionK0Svsp);
976 nameHisto=
"histArmPodK0S0";
977 titleHisto=
"V0-candidate Armenteros-Podolanski distribution; #frac{p_{L}^{+}-p_{L}^{-}}{p_{L}^{+}+p_{L}^{-}}; p_{T}^{+} [GeV/c]";
978 TH2F* armenterosPodK0S0 =
new TH2F(nameHisto.Data(),titleHisto.Data(),200,-1.,1.,300,0.,0.3);
979 nameHisto=
"histArmPodLc0";
980 titleHisto=
"#Lambda_{c}-candidate Armenteros-Podolanski distribution; #frac{p_{L}^{+}-p_{L}^{-}}{p_{L}^{+}+p_{L}^{-}}; p_{T}^{+} [GeV/c]";
981 TH2F* armenterosPodLc0 =
new TH2F(nameHisto.Data(),titleHisto.Data(),200,-4.,4.,800,0.,1.6);
987 TH2F* pidBachTRspectrumLcMassByK0S = (
TH2F*)spectrumLcMassByK0S->Clone();
993 nameHisto=
"histptK0S";
994 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";
995 TH2F* ptK0S =
new TH2F(nameHisto.Data(),titleHisto.Data(),11,binLimpTLc,41,binLimpTprong);
998 titleHisto=
"p_{T}(p) vs p_{T}(#Lambda_{c}); p_{T}(#Lambda_{c}) [GeV/c]; p_{T}(p) [GeV/c]; Entries";
999 TH2F* ptP =
new TH2F(nameHisto.Data(),titleHisto.Data(),11,binLimpTLc,41,binLimpTprong);
1001 nameHisto=
"histptPip";
1002 titleHisto=
"p_{T}(#pi^{+}) vs p_{T}(#Lambda_{c}); p_{T}(#Lambda_{c}) [GeV/c]; p_{T}(#pi^{+}) [GeV/c]; Entries";
1003 TH2F* ptPiP =
new TH2F(nameHisto.Data(),titleHisto.Data(),11,binLimpTLc,41,binLimpTprong);
1005 nameHisto=
"histptPim";
1006 titleHisto=
"p_{T}(#pi^{-}) vs p_{T}(#Lambda_{c}); p_{T}(#Lambda_{c}) [GeV/c]; p_{T}(#pi^{-}) [GeV/c]; Entries";
1007 TH2F* ptPiM =
new TH2F(nameHisto.Data(),titleHisto.Data(),11,binLimpTLc,41,binLimpTprong);
1009 nameHisto=
"histLambdaMass";
1010 titleHisto=
"m_{inv}(p,#pi^{-}) vs p_{T}(#Lambda_{c}); p_{T}(#Lambda_{c}) [GeV/c]; m_{inv}(p,#pi^{-}) [GeV/c^{2}]; Entries";
1011 TH2F* massLambda =
new TH2F(nameHisto.Data(),titleHisto.Data(),11,binLimpTLc,1000,mMinLambdaPDG,mMinLambdaPDG+0.5);
1013 nameHisto=
"histLambdaBarMass";
1014 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";
1015 TH2F* massLambdaBar =
new TH2F(nameHisto.Data(),titleHisto.Data(),11,binLimpTLc,1000,mMinLambdaPDG,mMinLambdaPDG+0.5);
1017 nameHisto=
"histGammaMass";
1018 titleHisto=
"m_{inv}(e^{+},e^{-}) vs p_{T}(#Lambda_{c}); p_{T}(#Lambda_{c}) [GeV/c]; m_{inv}(e^{+},e^{-}) [GeV/c^{2}]; Entries";
1019 TH2F* massGamma =
new TH2F(nameHisto.Data(),titleHisto.Data(),11,binLimpTLc,100,0.,1.);
1021 nameHisto=
"histD0K0S";
1022 titleHisto=
"d_{0}(K^{0}_{S}) vs p_{T}(#Lambda_{c}); p_{T}(#Lambda_{c}) [GeV/c]; d_{0}(K^{0}_{S}) [#sigmas]; Entries";
1023 TH2F* d0K0S =
new TH2F(nameHisto.Data(),titleHisto.Data(),11,binLimpTLc,1000,-1.,1.);
1025 nameHisto=
"histD0P";
1026 titleHisto=
"d_{0}(p) vs p_{T}(#Lambda_{c}); p_{T}(#Lambda_{c}) [GeV/c]; d_{0}(p) [cm]; Entries";
1027 TH2F* d0P =
new TH2F(nameHisto.Data(),titleHisto.Data(),11,binLimpTLc,1000,-1.,1.);
1029 nameHisto=
"histCosPAK0S";
1030 titleHisto=
"K^{0}_{S} cosine of pointing angle wrt primary vertex vs p_{T}(#Lambda_{c}); p_{T}(#Lambda_{c}) [GeV/c]; cosine; Entries";
1031 TH2F *cosPAK0S =
new TH2F(nameHisto.Data(),titleHisto.Data(),41,binLimpTprong,100,0.99,1.);
1033 TH2F* allptK0S = (
TH2F*)ptK0S->Clone();
1034 TH2F* allptP = (
TH2F*)ptP->Clone();
1035 TH2F* allptPiP = (
TH2F*)ptPiP->Clone();
1036 TH2F* allptPiM = (
TH2F*)ptPiM->Clone();
1037 TH2F* allmassLambda = (
TH2F*)massLambda->Clone();
1038 TH2F* allmassLambdaBar = (
TH2F*)massLambdaBar->Clone();
1039 TH2F* allmassGamma = (
TH2F*)massGamma->Clone();
1040 TH2F* alld0K0S = (
TH2F*)d0K0S->Clone();
1041 TH2F* alld0P = (
TH2F*)d0P->Clone();
1042 TH2F* allcosPAK0S = (
TH2F*)cosPAK0S->Clone();
1044 TH2F* pidptK0S = (
TH2F*)ptK0S->Clone();
1045 TH2F* pidptP = (
TH2F*)ptP->Clone();
1046 TH2F* pidptPiP = (
TH2F*)ptPiP->Clone();
1047 TH2F* pidptPiM = (
TH2F*)ptPiM->Clone();
1048 TH2F* pidmassLambda = (
TH2F*)massLambda->Clone();
1049 TH2F* pidmassLambdaBar = (
TH2F*)massLambdaBar->Clone();
1050 TH2F* pidmassGamma = (
TH2F*)massGamma->Clone();
1051 TH2F* pidd0K0S = (
TH2F*)d0K0S->Clone();
1052 TH2F* pidd0P = (
TH2F*)d0P->Clone();
1053 TH2F* pidcosPAK0S = (
TH2F*)cosPAK0S->Clone();
1079 TH2F* pidTRptK0S = (
TH2F*)ptK0S->Clone();
1080 TH2F* pidTRptP = (
TH2F*)ptP->Clone();
1081 TH2F* pidTRptPiP = (
TH2F*)ptPiP->Clone();
1082 TH2F* pidTRptPiM = (
TH2F*)ptPiM->Clone();
1083 TH2F* pidTRmassLambda = (
TH2F*)massLambda->Clone();
1084 TH2F* pidTRmassLambdaBar = (
TH2F*)massLambdaBar->Clone();
1085 TH2F* pidTRmassGamma = (
TH2F*)massGamma->Clone();
1086 TH2F* pidTRcosPAK0S = (
TH2F*)cosPAK0S->Clone();
1101 nameHisto=
"histK0SMassOffline";
1102 titleHisto=
"K^{0}_{S} invariant mass VS p_{T}; p_{T}(#Lambda_{c}) [GeV/c]; m_{inv}(#pi^{+},#pi^{-}) [GeV/c^{2}]; Entries";
1103 TH2F* spectrumK0SMassOffline =
new TH2F(nameHisto.Data(),titleHisto.Data(),11,binLimpTLc,1000,mK0SPDG-0.050,mK0SPDG+0.050);
1106 nameHisto=
"histLcMassByK0SOffline";
1107 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]";
1108 TH2F* spectrumLcMassOfflineByK0S =
new TH2F(nameHisto.Data(),titleHisto.Data(),1000,mLcPDG-0.250,mLcPDG+0.250,11,binLimpTLc);
1110 nameHisto=
"histpK0SvspOffline";
1111 titleHisto=
"p(K^{0}_{S}) vs p(p); p(p) [GeV/c]; p(K^{0}_{S}) [GeV/c]";
1112 TH2F* momentumDistributionK0SvspOffline =
new TH2F(nameHisto.Data(),titleHisto.Data(),41,binLimpTprong,41,binLimpTprong);
1114 nameHisto=
"histArmPodK0SOffline";
1115 titleHisto=
"V0-candidate Armenteros-Podolanski distribution; #frac{p_{L}^{+}-p_{L}^{-}}{p_{L}^{+}+p_{L}^{-}}; p_{T}^{+} [GeV/c]";
1116 TH2F* armenterosPodK0SOffline =
new TH2F(nameHisto.Data(),titleHisto.Data(),200,-1.,1.,300,0.,0.3);
1118 nameHisto=
"histArmPodLcOffline";
1119 titleHisto=
"#Lambda_{c}-candidate Armenteros-Podolanski distribution; #frac{p_{L}^{+}-p_{L}^{-}}{p_{L}^{+}+p_{L}^{-}}; p_{T}^{+} [GeV/c]";
1120 TH2F* armenterosPodLcOffline =
new TH2F(nameHisto.Data(),titleHisto.Data(),200,-4.,4.,800,0.,1.6);
1122 TH2F* allspectrumK0SMassOffline = (
TH2F*)spectrumK0SMassOffline->Clone();
1123 TH2F* allspectrumLcMassOfflineByK0S = (
TH2F*)spectrumLcMassOfflineByK0S->Clone();
1124 TH2F* allmomentumDistributionK0SvspOffline = (
TH2F*)momentumDistributionK0SvspOffline->Clone();
1125 TH2F* allArmenterosPodK0SOffline = (
TH2F*)armenterosPodK0SOffline->Clone();
1126 TH2F* allArmenterosPodLcOffline = (
TH2F*)armenterosPodLcOffline->Clone();
1128 TH2F* pidBachspectrumK0SMassOffline = (
TH2F*)spectrumK0SMassOffline->Clone();
1129 TH2F* pidBachspectrumLcMassOfflineByK0S = (
TH2F*)spectrumLcMassOfflineByK0S->Clone();
1130 TH2F* pidBachmomentumDistributionK0SvspOffline = (
TH2F*)momentumDistributionK0SvspOffline->Clone();
1131 TH2F* pidBachArmenterosPodK0SOffline = (
TH2F*)armenterosPodK0SOffline->Clone();
1132 TH2F* pidBachArmenterosPodLcOffline = (
TH2F*)armenterosPodLcOffline->Clone();
1135 fOutputAll->Add(allspectrumLcMassOfflineByK0S);
1136 fOutputAll->Add(allmomentumDistributionK0SvspOffline);
1146 nameHisto=
"histArmPodK0SOffline0";
1147 titleHisto=
"V0-candidate Armenteros-Podolanski distribution; #frac{p_{L}^{+}-p_{L}^{-}}{p_{L}^{+}+p_{L}^{-}}; p_{T}^{+} [GeV/c]";
1148 TH2F* armenterosPodK0SOffline0 =
new TH2F(nameHisto.Data(),titleHisto.Data(),200,-1.,1.,300,0.,0.3);
1149 nameHisto=
"histArmPodLcOffline0";
1150 titleHisto=
"#Lambda_{c}-candidate Armenteros-Podolanski distribution; #frac{p_{L}^{+}-p_{L}^{-}}{p_{L}^{+}+p_{L}^{-}}; p_{T}^{+} [GeV/c]";
1151 TH2F* armenterosPodLcOffline0 =
new TH2F(nameHisto.Data(),titleHisto.Data(),200,-4.,4.,800,0.,1.6);
1156 TH2F* pidBachTRspectrumLcMassOfflineByK0S = (
TH2F*)spectrumLcMassOfflineByK0S->Clone();
1163 nameHisto=
"histptK0SOffline";
1164 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";
1165 TH2F* ptK0SOffline =
new TH2F(nameHisto.Data(),titleHisto.Data(),11,binLimpTLc,41,binLimpTprong);
1167 nameHisto=
"histptPOffline";
1168 titleHisto=
"p_{T}(p) vs p_{T}(#Lambda_{c}); p_{T}(#Lambda_{c}) [GeV/c]; p_{T}(p) [GeV/c]; Entries";
1169 TH2F* ptPOffline =
new TH2F(nameHisto.Data(),titleHisto.Data(),11,binLimpTLc,41,binLimpTprong);
1171 nameHisto=
"histptPipOffline";
1172 titleHisto=
"p_{T}(#pi^{+}) vs p_{T}(#Lambda_{c}); p_{T}(#Lambda_{c}) [GeV/c]; p_{T}(#pi^{+}) [GeV/c]; Entries";
1173 TH2F* ptPiPOffline =
new TH2F(nameHisto.Data(),titleHisto.Data(),11,binLimpTLc,41,binLimpTprong);
1175 nameHisto=
"histptPimOffline";
1176 titleHisto=
"p_{T}(#pi^{-}) vs p_{T}(#Lambda_{c}); p_{T}(#Lambda_{c}) [GeV/c]; p_{T}(#pi^{-}) [GeV/c]; Entries";
1177 TH2F* ptPiMOffline =
new TH2F(nameHisto.Data(),titleHisto.Data(),11,binLimpTLc,41,binLimpTprong);
1179 nameHisto=
"histLambdaMassOffline";
1180 titleHisto=
"m_{inv}(p,#pi^{-}) vs p_{T}(#Lambda_{c}); p_{T}(#Lambda_{c}) [GeV/c]; m_{inv}(p,#pi^{-}) [GeV/c^{2}]; Entries";
1181 TH2F* massLambdaOffline =
new TH2F(nameHisto.Data(),titleHisto.Data(),11,binLimpTLc,1000,mMinLambdaPDG,mMinLambdaPDG+0.5);
1183 nameHisto=
"histLambdaBarMassOffline";
1184 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";
1185 TH2F* massLambdaBarOffline =
new TH2F(nameHisto.Data(),titleHisto.Data(),11,binLimpTLc,1000,mMinLambdaPDG,mMinLambdaPDG+0.5);
1187 nameHisto=
"histGammaMassOffline";
1188 titleHisto=
"m_{inv}(e^{+},e^{-}) vs p_{T}(#Lambda_{c}); p_{T}(#Lambda_{c}) [GeV/c]; m_{inv}(e^{+},e^{-}) [GeV/c^{2}]; Entries";
1189 TH2F* massGammaOffline =
new TH2F(nameHisto.Data(),titleHisto.Data(),11,binLimpTLc,100,0.,1.);
1191 nameHisto=
"histD0K0SOffline";
1192 titleHisto=
"d_{0}(K^{0}_{S}) vs p_{T}(#Lambda_{c}); p_{T}(#Lambda_{c}) [GeV/c]; d_{0}(K^{0}_{S}) [#sigmas]; Entries";
1193 TH2F* d0K0SOffline =
new TH2F(nameHisto.Data(),titleHisto.Data(),11,binLimpTLc,1000,-1.,1.);
1195 nameHisto=
"histD0POffline";
1196 titleHisto=
"d_{0}(p) vs p_{T}(#Lambda_{c}); p_{T}(#Lambda_{c}) [GeV/c]; d_{0}(p) [cm]; Entries";
1197 TH2F* d0POffline =
new TH2F(nameHisto.Data(),titleHisto.Data(),11,binLimpTLc,1000,-1.,1.);
1199 nameHisto=
"histCosPAK0SOffline";
1200 titleHisto=
"K^{0}_{S} cosine of pointing angle wrt primary vertex vs p_{T}(#Lambda_{c}); p_{T}(#Lambda_{c}) [GeV/c]; cosine; Entries";
1201 TH2F *cosPAK0SOffline =
new TH2F(nameHisto.Data(),titleHisto.Data(),41,binLimpTprong,100,0.99,1.);
1203 TH2F* allptK0SOffline = (
TH2F*)ptK0SOffline->Clone();
1204 TH2F* allptPOffline = (
TH2F*)ptPOffline->Clone();
1205 TH2F* allptPiPOffline = (
TH2F*)ptPiPOffline->Clone();
1206 TH2F* allptPiMOffline = (
TH2F*)ptPiMOffline->Clone();
1207 TH2F* allmassLambdaOffline = (
TH2F*)massLambdaOffline->Clone();
1208 TH2F* allmassLambdaBarOffline = (
TH2F*)massLambdaBarOffline->Clone();
1209 TH2F* allmassGammaOffline = (
TH2F*)massGammaOffline->Clone();
1210 TH2F* alld0K0SOffline = (
TH2F*)d0K0SOffline->Clone();
1211 TH2F* alld0POffline = (
TH2F*)d0POffline->Clone();
1212 TH2F* allcosPAK0SOffline = (
TH2F*)cosPAK0SOffline->Clone();
1214 TH2F* pidptK0SOffline = (
TH2F*)ptK0SOffline->Clone();
1215 TH2F* pidptPOffline = (
TH2F*)ptPOffline->Clone();
1216 TH2F* pidptPiPOffline = (
TH2F*)ptPiPOffline->Clone();
1217 TH2F* pidptPiMOffline = (
TH2F*)ptPiMOffline->Clone();
1218 TH2F* pidmassLambdaOffline = (
TH2F*)massLambdaOffline->Clone();
1219 TH2F* pidmassLambdaBarOffline = (
TH2F*)massLambdaBarOffline->Clone();
1220 TH2F* pidmassGammaOffline = (
TH2F*)massGammaOffline->Clone();
1221 TH2F* pidd0K0SOffline = (
TH2F*)d0K0SOffline->Clone();
1222 TH2F* pidd0POffline = (
TH2F*)d0POffline->Clone();
1223 TH2F* pidcosPAK0SOffline = (
TH2F*)cosPAK0SOffline->Clone();
1249 TH2F* pidTRptK0SOffline = (
TH2F*)ptK0SOffline->Clone();
1250 TH2F* pidTRptPOffline = (
TH2F*)ptPOffline->Clone();
1251 TH2F* pidTRptPiPOffline = (
TH2F*)ptPiPOffline->Clone();
1252 TH2F* pidTRptPiMOffline = (
TH2F*)ptPiMOffline->Clone();
1253 TH2F* pidTRmassLambdaOffline = (
TH2F*)massLambdaOffline->Clone();
1254 TH2F* pidTRmassLambdaBarOffline = (
TH2F*)massLambdaBarOffline->Clone();
1255 TH2F* pidTRmassGammaOffline = (
TH2F*)massGammaOffline->Clone();
1256 TH2F* pidTRcosPAK0SOffline = (
TH2F*)cosPAK0SOffline->Clone();
1276 nameHistoSgn=
"histK0SMassSgn";
1277 nameHistoBkg=
"histK0SMassBkg";
1278 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";
1279 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";
1280 TH2F* spectrumK0SMassSgn =
new TH2F(nameHistoSgn.Data(),titleHistoSgn.Data(),11,binLimpTLc,1000,mK0SPDG-0.050,mK0SPDG+0.050);
1281 TH2F* spectrumK0SMassBkg =
new TH2F(nameHistoBkg.Data(),titleHistoBkg.Data(),11,binLimpTLc,1000,mK0SPDG-0.050,mK0SPDG+0.050);
1283 nameHistoSgn=
"histLcMassByK0SSgn";
1284 nameHistoBkg=
"histLcMassByK0SBkg";
1285 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]";
1286 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]";
1287 TH2F* spectrumLcMassByK0SSgn =
new TH2F(nameHistoSgn.Data(),titleHistoSgn.Data(),1000,mLcPDG-0.250,mLcPDG+0.250,11,binLimpTLc);
1288 TH2F* spectrumLcMassByK0SBkg =
new TH2F(nameHistoBkg.Data(),titleHistoBkg.Data(),1000,mLcPDG-0.250,mLcPDG+0.250,11,binLimpTLc);
1290 nameHistoSgn=
"histpK0SvspSgn";
1291 nameHistoBkg=
"histpK0SvspBkg";
1292 titleHistoSgn=
"#Lambda_{c} - sgn: K^{0}_{S} vs p Total Momentum Distribution - MC; p(p) [GeV/c]; p(K^{0}_{S}) [GeV/c]";
1293 titleHistoBkg=
"#Lambda_{c} - bkg: K^{0}_{S} vs p Total Momentum Distribution - MC; p(p) [GeV/c]; p(K^{0}_{S}) [GeV/c]";
1294 TH2F* momentumDistributionK0SvspSgn =
new TH2F(nameHistoSgn.Data(),titleHistoSgn.Data(),41,binLimpTprong,41,binLimpTprong);
1295 TH2F* momentumDistributionK0SvspBkg =
new TH2F(nameHistoBkg.Data(),titleHistoBkg.Data(),41,binLimpTprong,41,binLimpTprong);
1298 nameHistoSgn=
"histArmPodK0SSgn";
1299 nameHistoBkg=
"histArmPodK0SBkg";
1300 titleHistoSgn=
"V0-candidate Armenteros-Podolanski distribution (sgn); #frac{p_{L}^{+}-p_{L}^{-}}{p_{L}^{+}+p_{L}^{-}}; p_{T}^{+} [GeV/c]";
1301 titleHistoBkg=
"V0-candidate Armenteros-Podolanski distribution (bkg); #frac{p_{L}^{+}-p_{L}^{-}}{p_{L}^{+}+p_{L}^{-}}; p_{T}^{+} [GeV/c]";
1302 TH2F* armenterosPodK0SSgn =
new TH2F(nameHistoSgn.Data(),titleHistoSgn.Data(),200,-1.,1.,300,0.,0.3);
1303 TH2F* armenterosPodK0SBkg =
new TH2F(nameHistoBkg.Data(),titleHistoBkg.Data(),200,-1.,1.,300,0.,0.3);
1305 nameHistoSgn=
"histArmPodLcSgn";
1306 nameHistoBkg=
"histArmPodLcBkg";
1307 titleHistoSgn=
"#Lambda_{c}-candidate Armenteros-Podolanski distribution (sgn); #frac{p_{L}^{+}-p_{L}^{-}}{p_{L}^{+}+p_{L}^{-}}; p_{T}^{+} [GeV/c]";
1308 titleHistoBkg=
"#Lambda_{c}-candidate Armenteros-Podolanski distribution (bkg); #frac{p_{L}^{+}-p_{L}^{-}}{p_{L}^{+}+p_{L}^{-}}; p_{T}^{+} [GeV/c]";
1309 TH2F* armenterosPodLcSgn =
new TH2F(nameHistoSgn.Data(),titleHistoSgn.Data(),200,-4.,4.,800,0.,1.6);
1310 TH2F* armenterosPodLcBkg =
new TH2F(nameHistoBkg.Data(),titleHistoBkg.Data(),200,-4.,4.,800,0.,1.6);
1312 TH2F* allspectrumK0SMassSgn = (
TH2F*)spectrumK0SMassSgn->Clone();
1313 TH2F* allspectrumK0SMassBkg = (
TH2F*)spectrumK0SMassBkg->Clone();
1314 TH2F* allspectrumLcMassByK0SSgn = (
TH2F*)spectrumLcMassByK0SSgn->Clone();
1315 TH2F* allspectrumLcMassByK0SBkg = (
TH2F*)spectrumLcMassByK0SBkg->Clone();
1316 TH2F* allmomentumDistributionK0SvspSgn = (
TH2F*)momentumDistributionK0SvspSgn->Clone();
1317 TH2F* allmomentumDistributionK0SvspBkg = (
TH2F*)momentumDistributionK0SvspBkg->Clone();
1318 TH2F* allArmenterosPodK0SSgn = (
TH2F*)armenterosPodK0SSgn->Clone();
1319 TH2F* allArmenterosPodK0SBkg = (
TH2F*)armenterosPodK0SBkg->Clone();
1320 TH2F* allArmenterosPodLcSgn = (
TH2F*)armenterosPodLcSgn->Clone();
1321 TH2F* allArmenterosPodLcBkg = (
TH2F*)armenterosPodLcBkg->Clone();
1323 TH2F* pidBachspectrumK0SMassSgn = (
TH2F*)spectrumK0SMassSgn->Clone();
1324 TH2F* pidBachspectrumK0SMassBkg = (
TH2F*)spectrumK0SMassBkg->Clone();
1325 TH2F* pidBachspectrumLcMassByK0SSgn = (
TH2F*)spectrumLcMassByK0SSgn->Clone();
1326 TH2F* pidBachspectrumLcMassByK0SBkg = (
TH2F*)spectrumLcMassByK0SBkg->Clone();
1327 TH2F* pidBachmomentumDistributionK0SvspSgn = (
TH2F*)momentumDistributionK0SvspSgn->Clone();
1328 TH2F* pidBachmomentumDistributionK0SvspBkg = (
TH2F*)momentumDistributionK0SvspBkg->Clone();
1329 TH2F* pidBachArmenterosPodK0SSgn = (
TH2F*)armenterosPodK0SSgn->Clone();
1330 TH2F* pidBachArmenterosPodK0SBkg = (
TH2F*)armenterosPodK0SBkg->Clone();
1331 TH2F* pidBachArmenterosPodLcSgn = (
TH2F*)armenterosPodLcSgn->Clone();
1332 TH2F* pidBachArmenterosPodLcBkg = (
TH2F*)armenterosPodLcBkg->Clone();
1338 fOutputAll->Add(allmomentumDistributionK0SvspSgn);
1339 fOutputAll->Add(allmomentumDistributionK0SvspBkg);
1356 nameHistoSgn=
"histArmPodK0SSgn0";
1357 nameHistoBkg=
"histArmPodK0SBkg0";
1358 titleHistoSgn=
"V0-candidate Armenteros-Podolanski distribution (sgn); #frac{p_{L}^{+}-p_{L}^{-}}{p_{L}^{+}+p_{L}^{-}}; p_{T}^{+} [GeV/c]";
1359 titleHistoBkg=
"V0-candidate Armenteros-Podolanski distribution (bkg); #frac{p_{L}^{+}-p_{L}^{-}}{p_{L}^{+}+p_{L}^{-}}; p_{T}^{+} [GeV/c]";
1360 TH2F* armenterosPodK0SSgn0 =
new TH2F(nameHistoSgn.Data(),titleHistoSgn.Data(),200,-1.,1.,300,0.,0.3);
1361 TH2F* armenterosPodK0SBkg0 =
new TH2F(nameHistoBkg.Data(),titleHistoBkg.Data(),200,-1.,1.,300,0.,0.3);
1364 nameHistoSgn=
"histArmPodLcSgn0";
1365 nameHistoBkg=
"histArmPodLcBkg0";
1366 titleHistoSgn=
"#Lambda_{c}-candidate Armenteros-Podolanski distribution (sgn); #frac{p_{L}^{+}-p_{L}^{-}}{p_{L}^{+}+p_{L}^{-}}; p_{T}^{+} [GeV/c]";
1367 titleHistoBkg=
"#Lambda_{c}-candidate Armenteros-Podolanski distribution (bkg); #frac{p_{L}^{+}-p_{L}^{-}}{p_{L}^{+}+p_{L}^{-}}; p_{T}^{+} [GeV/c]";
1368 TH2F* armenterosPodLcSgn0 =
new TH2F(nameHistoSgn.Data(),titleHistoSgn.Data(),200,-4.,4.,800,0.,1.6);
1369 TH2F* armenterosPodLcBkg0 =
new TH2F(nameHistoBkg.Data(),titleHistoBkg.Data(),200,-4.,4.,800,0.,1.6);
1374 TH2F* pidBachTRspectrumLcMassByK0SSgn = (
TH2F*)spectrumLcMassByK0SSgn->Clone();
1375 TH2F* pidBachTRspectrumLcMassByK0SBkg = (
TH2F*)spectrumLcMassByK0SBkg->Clone();
1382 nameHistoSgn=
"histptK0SSgn";
1383 nameHistoBkg=
"histptK0SBkg";
1384 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";
1385 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";
1386 TH2F* ptK0SSgn =
new TH2F(nameHistoSgn.Data(),titleHistoSgn.Data(),11,binLimpTLc,41,binLimpTprong);
1387 TH2F* ptK0SBkg =
new TH2F(nameHistoBkg.Data(),titleHistoBkg.Data(),11,binLimpTLc,41,binLimpTprong);
1389 nameHistoSgn=
"histptPSgn";
1390 nameHistoBkg=
"histptPBkg";
1391 titleHistoSgn=
"p_{T}(p) vs p_{T}(#Lambda_{c}); p_{T}(#Lambda_{c}) [GeV/c]; p_{T}(p) [GeV/c]; Entries";
1392 titleHistoBkg=
"p_{T}(p) vs p_{T}(#Lambda_{c}); p_{T}(#Lambda_{c}) [GeV/c]; p_{T}(p) [GeV/c]; Entries";
1393 TH2F* ptPSgn =
new TH2F(nameHistoSgn.Data(),titleHistoSgn.Data(),11,binLimpTLc,41,binLimpTprong);
1394 TH2F* ptPBkg =
new TH2F(nameHistoBkg.Data(),titleHistoBkg.Data(),11,binLimpTLc,41,binLimpTprong);
1396 nameHistoSgn=
"histptPipSgn";
1397 nameHistoBkg=
"histptPipBkg";
1398 titleHistoSgn=
"p_{T}(#pi^{+}) vs p_{T}(#Lambda_{c}); p_{T}(#Lambda_{c}) [GeV/c]; p_{T}(#pi^{+}) [GeV/c]; Entries";
1399 titleHistoBkg=
"p_{T}(#pi^{+}) vs p_{T}(#Lambda_{c}); p_{T}(#Lambda_{c}) [GeV/c]; p_{T}(#pi^{+}) [GeV/c]; Entries";
1400 TH2F* ptPiPSgn =
new TH2F(nameHistoSgn.Data(),titleHistoSgn.Data(),11,binLimpTLc,41,binLimpTprong);
1401 TH2F* ptPiPBkg =
new TH2F(nameHistoBkg.Data(),titleHistoBkg.Data(),11,binLimpTLc,41,binLimpTprong);
1403 nameHistoSgn=
"histptPimSgn";
1404 nameHistoBkg=
"histptPimBkg";
1405 titleHistoSgn=
"p_{T}(#pi^{-}) vs p_{T}(#Lambda_{c}); p_{T}(#Lambda_{c}) [GeV/c]; p_{T}(#pi^{-}) [GeV/c]; Entries";
1406 titleHistoBkg=
"p_{T}(#pi^{-}) vs p_{T}(#Lambda_{c}); p_{T}(#Lambda_{c}) [GeV/c]; p_{T}(#pi^{-}) [GeV/c]; Entries";
1407 TH2F* ptPiMSgn =
new TH2F(nameHistoSgn.Data(),titleHistoSgn.Data(),11,binLimpTLc,41,binLimpTprong);
1408 TH2F* ptPiMBkg =
new TH2F(nameHistoBkg.Data(),titleHistoBkg.Data(),11,binLimpTLc,41,binLimpTprong);
1410 nameHistoSgn=
"histLambdaMassSgn";
1411 nameHistoBkg=
"histLambdaMassBkg";
1412 titleHistoSgn=
"m_{inv}(p,#pi^{-}) vs p_{T}(#Lambda_{c}); p_{T}(#Lambda_{c}) [GeV/c]; m_{inv}(p,#pi^{-}) [GeV/c^{2}]; Entries";
1413 titleHistoBkg=
"m_{inv}(p,#pi^{-}) vs p_{T}(#Lambda_{c}); p_{T}(#Lambda_{c}) [GeV/c]; m_{inv}(p,#pi^{-}) [GeV/c^{2}]; Entries";
1414 TH2F* massLambdaSgn =
new TH2F(nameHistoSgn.Data(),titleHistoSgn.Data(),11,binLimpTLc,1000,mMinLambdaPDG,mMinLambdaPDG+0.5);
1415 TH2F* massLambdaBkg =
new TH2F(nameHistoBkg.Data(),titleHistoBkg.Data(),11,binLimpTLc,1000,mMinLambdaPDG,mMinLambdaPDG+0.5);
1417 nameHistoSgn=
"histLambdaBarMassSgn";
1418 nameHistoBkg=
"histLambdaBarMassBkg";
1419 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";
1420 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";
1421 TH2F* massLambdaBarSgn =
new TH2F(nameHistoSgn.Data(),titleHistoSgn.Data(),11,binLimpTLc,1000,mMinLambdaPDG,mMinLambdaPDG+0.5);
1422 TH2F* massLambdaBarBkg =
new TH2F(nameHistoBkg.Data(),titleHistoBkg.Data(),11,binLimpTLc,1000,mMinLambdaPDG,mMinLambdaPDG+0.5);
1424 nameHistoSgn=
"histGammaMassSgn";
1425 nameHistoBkg=
"histGammaMassBkg";
1426 titleHistoSgn=
"m_{inv}(e^{+},e^{-}) vs p_{T}(#Lambda_{c}); p_{T}(#Lambda_{c}) [GeV/c]; m_{inv}(e^{+},e^{-}) [GeV/c^{2}]; Entries";
1427 titleHistoBkg=
"m_{inv}(e^{+},e^{-}) vs p_{T}(#Lambda_{c}); p_{T}(#Lambda_{c}) [GeV/c]; m_{inv}(e^{+},e^{-}) [GeV/c^{2}]; Entries";
1428 TH2F* massGammaSgn =
new TH2F(nameHistoSgn.Data(),titleHistoSgn.Data(),11,binLimpTLc,100,0.,1.);
1429 TH2F* massGammaBkg =
new TH2F(nameHistoBkg.Data(),titleHistoBkg.Data(),11,binLimpTLc,100,0.,1.);
1431 nameHistoSgn=
"histD0K0SSgn";
1432 nameHistoBkg=
"histD0K0SBkg";
1433 titleHistoSgn=
"d_{0}(K^{0}_{S}) vs p_{T}(#Lambda_{c}); p_{T}(#Lambda_{c}) [GeV/c]; d_{0}(K^{0}_{S}) [#sigmas]; Entries";
1434 titleHistoBkg=
"d_{0}(K^{0}_{S}) vs p_{T}(#Lambda_{c}); p_{T}(#Lambda_{c}) [GeV/c]; d_{0}(K^{0}_{S}) [#sigmas]; Entries";
1435 TH2F* d0K0SSgn =
new TH2F(nameHistoSgn.Data(),titleHistoSgn.Data(),11,binLimpTLc,1000,-1.,1.);
1436 TH2F* d0K0SBkg =
new TH2F(nameHistoBkg.Data(),titleHistoBkg.Data(),11,binLimpTLc,1000,-1.,1.);
1438 nameHistoSgn=
"histD0PSgn";
1439 nameHistoBkg=
"histD0PBkg";
1440 titleHistoSgn=
"d_{0}(p) vs p_{T}(#Lambda_{c}); p_{T}(#Lambda_{c}) [GeV/c]; d_{0}(p) [cm]; Entries";
1441 titleHistoBkg=
"d_{0}(p) vs p_{T}(#Lambda_{c}); p_{T}(#Lambda_{c}) [GeV/c]; d_{0}(p) [cm]; Entries";
1442 TH2F* d0PSgn =
new TH2F(nameHistoSgn.Data(),titleHistoSgn.Data(),11,binLimpTLc,1000,-1.,1.);
1443 TH2F* d0PBkg =
new TH2F(nameHistoBkg.Data(),titleHistoBkg.Data(),11,binLimpTLc,1000,-1.,1.);
1445 nameHistoSgn=
"histCosPAK0SSgn";
1446 nameHistoBkg=
"histCosPAK0SBkg";
1447 titleHistoSgn=
"K^{0}_{S} cosine of pointing angle wrt primary vertex vs p_{T}(#Lambda_{c}); p_{T}(#Lambda_{c}) [GeV/c]; cosine; Entries";
1448 titleHistoBkg=
"K^{0}_{S} cosine of pointing angle wrt primary vertex vs p_{T}(#Lambda_{c}); p_{T}(#Lambda_{c}) [GeV/c]; cosine; Entries";
1449 TH2F *cosPAK0SSgn =
new TH2F(nameHistoSgn.Data(),titleHistoSgn.Data(),41,binLimpTprong,100,0.99,1.);
1450 TH2F *cosPAK0SBkg =
new TH2F(nameHistoBkg.Data(),titleHistoBkg.Data(),41,binLimpTprong,100,0.99,1.);
1452 TH2F* allptK0SSgn = (
TH2F*)ptK0SSgn->Clone();
1453 TH2F* allptK0SBkg = (
TH2F*)ptK0SBkg->Clone();
1454 TH2F* allptPSgn = (
TH2F*)ptPSgn->Clone();
1455 TH2F* allptPBkg = (
TH2F*)ptPBkg->Clone();
1456 TH2F* allptPiPSgn = (
TH2F*)ptPiPSgn->Clone();
1457 TH2F* allptPiPBkg = (
TH2F*)ptPiPBkg->Clone();
1458 TH2F* allptPiMSgn = (
TH2F*)ptPiMSgn->Clone();
1459 TH2F* allptPiMBkg = (
TH2F*)ptPiMBkg->Clone();
1460 TH2F* allmassLambdaSgn = (
TH2F*)massLambdaSgn->Clone();
1461 TH2F* allmassLambdaBkg = (
TH2F*)massLambdaBkg->Clone();
1462 TH2F* allmassLambdaBarSgn = (
TH2F*)massLambdaBarSgn->Clone();
1463 TH2F* allmassLambdaBarBkg = (
TH2F*)massLambdaBarBkg->Clone();
1464 TH2F* allmassGammaSgn = (
TH2F*)massGammaSgn->Clone();
1465 TH2F* allmassGammaBkg = (
TH2F*)massGammaBkg->Clone();
1466 TH2F* alld0K0SSgn = (
TH2F*)d0K0SSgn->Clone();
1467 TH2F* alld0K0SBkg = (
TH2F*)d0K0SBkg->Clone();
1468 TH2F* alld0PSgn = (
TH2F*)d0PSgn->Clone();
1469 TH2F* alld0PBkg = (
TH2F*)d0PBkg->Clone();
1470 TH2F* allcosPAK0SSgn = (
TH2F*)cosPAK0SSgn->Clone();
1471 TH2F* allcosPAK0SBkg = (
TH2F*)cosPAK0SBkg->Clone();
1473 TH2F* pidptK0SSgn = (
TH2F*)ptK0SSgn->Clone();
1474 TH2F* pidptK0SBkg = (
TH2F*)ptK0SBkg->Clone();
1475 TH2F* pidptPSgn = (
TH2F*)ptPSgn->Clone();
1476 TH2F* pidptPBkg = (
TH2F*)ptPBkg->Clone();
1477 TH2F* pidptPiPSgn = (
TH2F*)ptPiPSgn->Clone();
1478 TH2F* pidptPiPBkg = (
TH2F*)ptPiPBkg->Clone();
1479 TH2F* pidptPiMSgn = (
TH2F*)ptPiMSgn->Clone();
1480 TH2F* pidptPiMBkg = (
TH2F*)ptPiMBkg->Clone();
1481 TH2F* pidmassLambdaSgn = (
TH2F*)massLambdaSgn->Clone();
1482 TH2F* pidmassLambdaBkg = (
TH2F*)massLambdaBkg->Clone();
1483 TH2F* pidmassLambdaBarSgn = (
TH2F*)massLambdaBarSgn->Clone();
1484 TH2F* pidmassLambdaBarBkg = (
TH2F*)massLambdaBarBkg->Clone();
1485 TH2F* pidmassGammaSgn = (
TH2F*)massGammaSgn->Clone();
1486 TH2F* pidmassGammaBkg = (
TH2F*)massGammaBkg->Clone();
1487 TH2F* pidd0K0SSgn = (
TH2F*)d0K0SSgn->Clone();
1488 TH2F* pidd0K0SBkg = (
TH2F*)d0K0SBkg->Clone();
1489 TH2F* pidd0PSgn = (
TH2F*)d0PSgn->Clone();
1490 TH2F* pidd0PBkg = (
TH2F*)d0PBkg->Clone();
1491 TH2F* pidcosPAK0SSgn = (
TH2F*)cosPAK0SSgn->Clone();
1492 TH2F* pidcosPAK0SBkg = (
TH2F*)cosPAK0SBkg->Clone();
1538 TH2F* pidTRptK0SSgn = (
TH2F*)ptK0SSgn->Clone();
1539 TH2F* pidTRptK0SBkg = (
TH2F*)ptK0SBkg->Clone();
1540 TH2F* pidTRptPSgn = (
TH2F*)ptPSgn->Clone();
1541 TH2F* pidTRptPBkg = (
TH2F*)ptPBkg->Clone();
1542 TH2F* pidTRptPiPSgn = (
TH2F*)ptPiPSgn->Clone();
1543 TH2F* pidTRptPiPBkg = (
TH2F*)ptPiPBkg->Clone();
1544 TH2F* pidTRptPiMSgn = (
TH2F*)ptPiMSgn->Clone();
1545 TH2F* pidTRptPiMBkg = (
TH2F*)ptPiMBkg->Clone();
1546 TH2F* pidTRmassLambdaSgn = (
TH2F*)massLambdaSgn->Clone();
1547 TH2F* pidTRmassLambdaBkg = (
TH2F*)massLambdaBkg->Clone();
1548 TH2F* pidTRmassLambdaBarSgn = (
TH2F*)massLambdaBarSgn->Clone();
1549 TH2F* pidTRmassLambdaBarBkg = (
TH2F*)massLambdaBarBkg->Clone();
1550 TH2F* pidTRmassGammaSgn = (
TH2F*)massGammaSgn->Clone();
1551 TH2F* pidTRmassGammaBkg = (
TH2F*)massGammaBkg->Clone();
1552 TH2F* pidTRcosPAK0SSgn = (
TH2F*)cosPAK0SSgn->Clone();
1553 TH2F* pidTRcosPAK0SBkg = (
TH2F*)cosPAK0SBkg->Clone();
1577 nameHistoSgn=
"histK0SMassOfflineSgn";
1578 nameHistoBkg=
"histK0SMassOfflineBkg";
1579 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";
1580 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";
1581 TH2F* spectrumK0SMassOfflineSgn =
new TH2F(nameHistoSgn.Data(),titleHistoSgn.Data(),11,binLimpTLc,1000,mK0SPDG-0.050,mK0SPDG+0.050);
1582 TH2F* spectrumK0SMassOfflineBkg =
new TH2F(nameHistoBkg.Data(),titleHistoBkg.Data(),11,binLimpTLc,1000,mK0SPDG-0.050,mK0SPDG+0.050);
1584 nameHistoSgn=
"histLcMassByK0SOfflineSgn";
1585 nameHistoBkg=
"histLcMassByK0SOfflineBkg";
1586 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]";
1587 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]";
1588 TH2F* spectrumLcMassOfflineByK0SSgn =
new TH2F(nameHistoSgn.Data(),titleHistoSgn.Data(),1000,mLcPDG-0.250,mLcPDG+0.250,11,binLimpTLc);
1589 TH2F* spectrumLcMassOfflineByK0SBkg =
new TH2F(nameHistoBkg.Data(),titleHistoBkg.Data(),1000,mLcPDG-0.250,mLcPDG+0.250,11,binLimpTLc);
1591 nameHistoSgn=
"histpK0SvspOfflineSgn";
1592 nameHistoBkg=
"histpK0SvspOfflineBkg";
1593 titleHistoSgn=
"#Lambda_{c} - sgn: K^{0}_{S} vs p Total Momentum Distribution - Offline - MC; p(p) [GeV/c]; p(K^{0}_{S}) [GeV/c]";
1594 titleHistoBkg=
"#Lambda_{c} - bkg: K^{0}_{S} vs p Total Momentum Distribution - Offline - MC; p(p) [GeV/c]; p(K^{0}_{S}) [GeV/c]";
1595 TH2F* momentumDistributionK0SvspOfflineSgn =
new TH2F(nameHistoSgn.Data(),titleHistoSgn.Data(),41,binLimpTprong,41,binLimpTprong);
1596 TH2F* momentumDistributionK0SvspOfflineBkg =
new TH2F(nameHistoBkg.Data(),titleHistoBkg.Data(),41,binLimpTprong,41,binLimpTprong);
1599 nameHistoSgn=
"histArmPodK0SOfflineSgn";
1600 nameHistoBkg=
"histArmPodK0SOfflineBkg";
1601 titleHistoSgn=
"V0-candidate Armenteros-Podolanski distribution (sgn) -offline-; #frac{p_{L}^{+}-p_{L}^{-}}{p_{L}^{+}+p_{L}^{-}}; p_{T}^{+} [GeV/c]";
1602 titleHistoBkg=
"V0-candidate Armenteros-Podolanski distribution (bkg) -offline-; #frac{p_{L}^{+}-p_{L}^{-}}{p_{L}^{+}+p_{L}^{-}}; p_{T}^{+} [GeV/c]";
1603 TH2F* armenterosPodK0SOfflineSgn =
new TH2F(nameHistoSgn.Data(),titleHistoSgn.Data(),200,-1.,1.,300,0.,0.3);
1604 TH2F* armenterosPodK0SOfflineBkg =
new TH2F(nameHistoBkg.Data(),titleHistoBkg.Data(),200,-1.,1.,300,0.,0.3);
1606 nameHistoSgn=
"histArmPodLcOfflineSgn";
1607 nameHistoBkg=
"histArmPodLcOfflineBkg";
1608 titleHistoSgn=
"#Lambda_{c}-candidate Armenteros-Podolanski distribution (sgn) -offline-; #frac{p_{L}^{+}-p_{L}^{-}}{p_{L}^{+}+p_{L}^{-}}; p_{T}^{+} [GeV/c]";
1609 titleHistoBkg=
"#Lambda_{c}-candidate Armenteros-Podolanski distribution (bkg) -offline-; #frac{p_{L}^{+}-p_{L}^{-}}{p_{L}^{+}+p_{L}^{-}}; p_{T}^{+} [GeV/c]";
1610 TH2F* armenterosPodLcOfflineSgn =
new TH2F(nameHistoSgn.Data(),titleHistoSgn.Data(),200,-4.,4.,800,0.,1.6);
1611 TH2F* armenterosPodLcOfflineBkg =
new TH2F(nameHistoBkg.Data(),titleHistoBkg.Data(),200,-4.,4.,800,0.,1.6);
1614 TH2F* allspectrumK0SMassOfflineSgn = (
TH2F*)spectrumK0SMassOfflineSgn->Clone();
1615 TH2F* allspectrumK0SMassOfflineBkg = (
TH2F*) spectrumK0SMassOfflineBkg->Clone();
1616 TH2F* allspectrumLcMassOfflineByK0SSgn = (
TH2F*)spectrumLcMassOfflineByK0SSgn->Clone();
1617 TH2F* allspectrumLcMassOfflineByK0SBkg = (
TH2F*) spectrumLcMassOfflineByK0SBkg->Clone();
1618 TH2F* allmomentumDistributionK0SvspOfflineSgn = (
TH2F*)momentumDistributionK0SvspOfflineSgn->Clone();
1619 TH2F* allmomentumDistributionK0SvspOfflineBkg = (
TH2F*)momentumDistributionK0SvspOfflineBkg->Clone();
1620 TH2F* allArmenterosPodK0SOfflineSgn = (
TH2F*)armenterosPodK0SOfflineSgn->Clone();
1621 TH2F* allArmenterosPodK0SOfflineBkg = (
TH2F*)armenterosPodK0SOfflineBkg->Clone();
1622 TH2F* allArmenterosPodLcOfflineSgn = (
TH2F*)armenterosPodLcOfflineSgn->Clone();
1623 TH2F* allArmenterosPodLcOfflineBkg = (
TH2F*)armenterosPodLcOfflineBkg->Clone();
1625 TH2F* pidBachspectrumLcMassOfflineByK0SSgn = (
TH2F*)spectrumLcMassOfflineByK0SSgn->Clone();
1626 TH2F* pidBachspectrumLcMassOfflineByK0SBkg = (
TH2F*) spectrumLcMassOfflineByK0SBkg->Clone();
1627 TH2F* pidBachspectrumK0SMassOfflineSgn = (
TH2F*)spectrumK0SMassOfflineSgn->Clone();
1628 TH2F* pidBachspectrumK0SMassOfflineBkg = (
TH2F*) spectrumK0SMassOfflineBkg->Clone();
1629 TH2F* pidBachmomentumDistributionK0SvspOfflineSgn = (
TH2F*)momentumDistributionK0SvspOfflineSgn->Clone();
1630 TH2F* pidBachmomentumDistributionK0SvspOfflineBkg = (
TH2F*)momentumDistributionK0SvspOfflineBkg->Clone();
1631 TH2F* pidBachArmenterosPodK0SOfflineSgn = (
TH2F*)armenterosPodK0SOfflineSgn->Clone();
1632 TH2F* pidBachArmenterosPodK0SOfflineBkg = (
TH2F*)armenterosPodK0SOfflineBkg->Clone();
1633 TH2F* pidBachArmenterosPodLcOfflineSgn = (
TH2F*)armenterosPodLcOfflineSgn->Clone();
1634 TH2F* pidBachArmenterosPodLcOfflineBkg = (
TH2F*)armenterosPodLcOfflineBkg->Clone();
1636 fOutputAll->Add(allspectrumK0SMassOfflineSgn);
1637 fOutputAll->Add(allspectrumK0SMassOfflineBkg);
1638 fOutputAll->Add(allspectrumLcMassOfflineByK0SSgn);
1639 fOutputAll->Add(allspectrumLcMassOfflineByK0SBkg);
1640 fOutputAll->Add(allmomentumDistributionK0SvspOfflineSgn);
1641 fOutputAll->Add(allmomentumDistributionK0SvspOfflineBkg);
1642 fOutputAll->Add(allArmenterosPodK0SOfflineSgn);
1643 fOutputAll->Add(allArmenterosPodK0SOfflineBkg);
1644 fOutputAll->Add(allArmenterosPodLcOfflineSgn);
1645 fOutputAll->Add(allArmenterosPodLcOfflineBkg);
1651 fOutputPIDBach->Add(pidBachmomentumDistributionK0SvspOfflineSgn);
1652 fOutputPIDBach->Add(pidBachmomentumDistributionK0SvspOfflineBkg);
1658 nameHistoSgn=
"histArmPodK0SOfflineSgn0";
1659 nameHistoBkg=
"histArmPodK0SOfflineBkg0";
1660 titleHistoSgn=
"V0-candidate Armenteros-Podolanski distribution (sgn) -offline-; #frac{p_{L}^{+}-p_{L}^{-}}{p_{L}^{+}+p_{L}^{-}}; p_{T}^{+} [GeV/c]";
1661 titleHistoBkg=
"V0-candidate Armenteros-Podolanski distribution (bkg) -offline-; #frac{p_{L}^{+}-p_{L}^{-}}{p_{L}^{+}+p_{L}^{-}}; p_{T}^{+} [GeV/c]";
1662 TH2F* armenterosPodK0SOfflineSgn0 =
new TH2F(nameHistoSgn.Data(),titleHistoSgn.Data(),200,-1.,1.,300,0.,0.3);
1663 TH2F* armenterosPodK0SOfflineBkg0 =
new TH2F(nameHistoBkg.Data(),titleHistoBkg.Data(),200,-1.,1.,300,0.,0.3);
1664 nameHistoSgn=
"histArmPodLcOfflineSgn0";
1665 nameHistoBkg=
"histArmPodLcOfflineBkg0";
1666 titleHistoSgn=
"#Lambda_{c}-candidate Armenteros-Podolanski distribution (sgn) -offline-; #frac{p_{L}^{+}-p_{L}^{-}}{p_{L}^{+}+p_{L}^{-}}; p_{T}^{+} [GeV/c]";
1667 titleHistoBkg=
"#Lambda_{c}-candidate Armenteros-Podolanski distribution (bkg) -offline-; #frac{p_{L}^{+}-p_{L}^{-}}{p_{L}^{+}+p_{L}^{-}}; p_{T}^{+} [GeV/c]";
1668 TH2F* armenterosPodLcOfflineSgn0 =
new TH2F(nameHistoSgn.Data(),titleHistoSgn.Data(),200,-4.,4.,800,0.,1.6);
1669 TH2F* armenterosPodLcOfflineBkg0 =
new TH2F(nameHistoBkg.Data(),titleHistoBkg.Data(),200,-4.,4.,800,0.,1.6);
1670 fOutputAll->Add(armenterosPodK0SOfflineSgn0);
1671 fOutputAll->Add(armenterosPodK0SOfflineBkg0);
1676 TH2F* pidBachTRspectrumLcMassOfflineByK0SSgn = (
TH2F*)spectrumLcMassOfflineByK0SSgn->Clone();
1677 TH2F* pidBachTRspectrumLcMassOfflineByK0SBkg = (
TH2F*) spectrumLcMassOfflineByK0SBkg->Clone();
1685 nameHistoSgn=
"histptK0SOfflineSgn";
1686 nameHistoBkg=
"histptK0SOfflineBkg";
1687 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";
1688 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";
1689 TH2F* ptK0SOfflineSgn =
new TH2F(nameHistoSgn.Data(),titleHistoSgn.Data(),11,binLimpTLc,41,binLimpTprong);
1690 TH2F* ptK0SOfflineBkg =
new TH2F(nameHistoBkg.Data(),titleHistoBkg.Data(),11,binLimpTLc,41,binLimpTprong);
1692 nameHistoSgn=
"histptPOfflineSgn";
1693 nameHistoBkg=
"histptPOfflineBkg";
1694 titleHistoSgn=
"p_{T}(p) vs p_{T}(#Lambda_{c}); p_{T}(#Lambda_{c}) [GeV/c]; p_{T}(p) [GeV/c]; Entries";
1695 titleHistoBkg=
"p_{T}(p) vs p_{T}(#Lambda_{c}); p_{T}(#Lambda_{c}) [GeV/c]; p_{T}(p) [GeV/c]; Entries";
1696 TH2F* ptPOfflineSgn =
new TH2F(nameHistoSgn.Data(),titleHistoSgn.Data(),11,binLimpTLc,41,binLimpTprong);
1697 TH2F* ptPOfflineBkg =
new TH2F(nameHistoBkg.Data(),titleHistoBkg.Data(),11,binLimpTLc,41,binLimpTprong);
1699 nameHistoSgn=
"histptPipOfflineSgn";
1700 nameHistoBkg=
"histptPipOfflineBkg";
1701 titleHistoSgn=
"p_{T}(#pi^{+}) vs p_{T}(#Lambda_{c}); p_{T}(#Lambda_{c}) [GeV/c]; p_{T}(#pi^{+}) [GeV/c]; Entries";
1702 titleHistoBkg=
"p_{T}(#pi^{+}) vs p_{T}(#Lambda_{c}); p_{T}(#Lambda_{c}) [GeV/c]; p_{T}(#pi^{+}) [GeV/c]; Entries";
1703 TH2F* ptPiPOfflineSgn =
new TH2F(nameHistoSgn.Data(),titleHistoSgn.Data(),11,binLimpTLc,41,binLimpTprong);
1704 TH2F* ptPiPOfflineBkg =
new TH2F(nameHistoBkg.Data(),titleHistoBkg.Data(),11,binLimpTLc,41,binLimpTprong);
1706 nameHistoSgn=
"histptPimOfflineSgn";
1707 nameHistoBkg=
"histptPimOfflineBkg";
1708 titleHistoSgn=
"p_{T}(#pi^{-}) vs p_{T}(#Lambda_{c}); p_{T}(#Lambda_{c}) [GeV/c]; p_{T}(#pi^{-}) [GeV/c]; Entries";
1709 titleHistoBkg=
"p_{T}(#pi^{-}) vs p_{T}(#Lambda_{c}); p_{T}(#Lambda_{c}) [GeV/c]; p_{T}(#pi^{-}) [GeV/c]; Entries";
1710 TH2F* ptPiMOfflineSgn =
new TH2F(nameHistoSgn.Data(),titleHistoSgn.Data(),11,binLimpTLc,41,binLimpTprong);
1711 TH2F* ptPiMOfflineBkg =
new TH2F(nameHistoBkg.Data(),titleHistoBkg.Data(),11,binLimpTLc,41,binLimpTprong);
1713 nameHistoSgn=
"histLambdaMassOfflineSgn";
1714 nameHistoBkg=
"histLambdaMassOfflineBkg";
1715 titleHistoSgn=
"m_{inv}(p,#pi^{-}) vs p_{T}(#Lambda_{c}); p_{T}(#Lambda_{c}) [GeV/c]; m_{inv}(p,#pi^{-}) [GeV/c^{2}]; Entries";
1716 titleHistoBkg=
"m_{inv}(p,#pi^{-}) vs p_{T}(#Lambda_{c}); p_{T}(#Lambda_{c}) [GeV/c]; m_{inv}(p,#pi^{-}) [GeV/c^{2}]; Entries";
1717 TH2F* massLambdaOfflineSgn =
new TH2F(nameHistoSgn.Data(),titleHistoSgn.Data(),11,binLimpTLc,1000,mMinLambdaPDG,mMinLambdaPDG+0.5);
1718 TH2F* massLambdaOfflineBkg =
new TH2F(nameHistoBkg.Data(),titleHistoBkg.Data(),11,binLimpTLc,1000,mMinLambdaPDG,mMinLambdaPDG+0.5);
1720 nameHistoSgn=
"histLambdaBarMassOfflineSgn";
1721 nameHistoBkg=
"histLambdaBarMassOfflineBkg";
1722 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";
1723 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";
1724 TH2F* massLambdaBarOfflineSgn =
new TH2F(nameHistoSgn.Data(),titleHistoSgn.Data(),11,binLimpTLc,1000,mMinLambdaPDG,mMinLambdaPDG+0.5);
1725 TH2F* massLambdaBarOfflineBkg =
new TH2F(nameHistoBkg.Data(),titleHistoBkg.Data(),11,binLimpTLc,1000,mMinLambdaPDG,mMinLambdaPDG+0.5);
1727 nameHistoSgn=
"histGammaMassOfflineSgn";
1728 nameHistoBkg=
"histGammaMassOfflineBkg";
1729 titleHistoSgn=
"m_{inv}(e^{+},e^{-}) vs p_{T}(#Lambda_{c}); p_{T}(#Lambda_{c}) [GeV/c]; m_{inv}(e^{+},e^{-}) [GeV/c^{2}]; Entries";
1730 titleHistoBkg=
"m_{inv}(e^{+},e^{-}) vs p_{T}(#Lambda_{c}); p_{T}(#Lambda_{c}) [GeV/c]; m_{inv}(e^{+},e^{-}) [GeV/c^{2}]; Entries";
1731 TH2F* massGammaOfflineSgn =
new TH2F(nameHistoSgn.Data(),titleHistoSgn.Data(),11,binLimpTLc,100,0.,1.);
1732 TH2F* massGammaOfflineBkg =
new TH2F(nameHistoBkg.Data(),titleHistoBkg.Data(),11,binLimpTLc,100,0.,1.);
1734 nameHistoSgn=
"histD0K0SOfflineSgn";
1735 nameHistoBkg=
"histD0K0SOfflineBkg";
1736 titleHistoSgn=
"d_{0}(K^{0}_{S}) vs p_{T}(#Lambda_{c}); p_{T}(#Lambda_{c}) [GeV/c]; d_{0}(K^{0}_{S}) [#sigmas]; Entries";
1737 titleHistoBkg=
"d_{0}(K^{0}_{S}) vs p_{T}(#Lambda_{c}); p_{T}(#Lambda_{c}) [GeV/c]; d_{0}(K^{0}_{S}) [#sigmas]; Entries";
1738 TH2F* d0K0SOfflineSgn =
new TH2F(nameHistoSgn.Data(),titleHistoSgn.Data(),11,binLimpTLc,1000,-1.,1.);
1739 TH2F* d0K0SOfflineBkg =
new TH2F(nameHistoBkg.Data(),titleHistoBkg.Data(),11,binLimpTLc,1000,-1.,1.);
1741 nameHistoSgn=
"histD0POfflineSgn";
1742 nameHistoBkg=
"histD0POfflineBkg";
1743 titleHistoSgn=
"d_{0}(p) vs p_{T}(#Lambda_{c}); p_{T}(#Lambda_{c}) [GeV/c]; d_{0}(p) [cm]; Entries";
1744 titleHistoBkg=
"d_{0}(p) vs p_{T}(#Lambda_{c}); p_{T}(#Lambda_{c}) [GeV/c]; d_{0}(p) [cm]; Entries";
1745 TH2F* d0POfflineSgn =
new TH2F(nameHistoSgn.Data(),titleHistoSgn.Data(),11,binLimpTLc,1000,-1.,1.);
1746 TH2F* d0POfflineBkg =
new TH2F(nameHistoBkg.Data(),titleHistoBkg.Data(),11,binLimpTLc,1000,-1.,1.);
1748 nameHistoSgn=
"histCosPAK0SOfflineSgn";
1749 nameHistoBkg=
"histCosPAK0SOfflineBkg";
1750 titleHistoSgn=
"K^{0}_{S} cosine of pointing angle wrt primary vertex vs p_{T}(#Lambda_{c}); p_{T}(#Lambda_{c}) [GeV/c]; cosine; Entries";
1751 titleHistoBkg=
"K^{0}_{S} cosine of pointing angle wrt primary vertex vs p_{T}(#Lambda_{c}); p_{T}(#Lambda_{c}) [GeV/c]; cosine; Entries";
1752 TH2F *cosPAK0SOfflineSgn =
new TH2F(nameHistoSgn.Data(),titleHistoSgn.Data(),41,binLimpTprong,100,0.99,1.);
1753 TH2F *cosPAK0SOfflineBkg =
new TH2F(nameHistoBkg.Data(),titleHistoBkg.Data(),41,binLimpTprong,100,0.99,1.);
1755 TH2F* allptK0SOfflineSgn = (
TH2F*)ptK0SOfflineSgn->Clone();
1756 TH2F* allptK0SOfflineBkg = (
TH2F*)ptK0SOfflineBkg->Clone();
1757 TH2F* allptPOfflineSgn = (
TH2F*)ptPOfflineSgn->Clone();
1758 TH2F* allptPOfflineBkg = (
TH2F*)ptPOfflineBkg->Clone();
1759 TH2F* allptPiPOfflineSgn = (
TH2F*)ptPiPOfflineSgn->Clone();
1760 TH2F* allptPiPOfflineBkg = (
TH2F*)ptPiPOfflineBkg->Clone();
1761 TH2F* allptPiMOfflineSgn = (
TH2F*)ptPiMOfflineSgn->Clone();
1762 TH2F* allptPiMOfflineBkg = (
TH2F*)ptPiMOfflineBkg->Clone();
1763 TH2F* allmassLambdaOfflineSgn = (
TH2F*)massLambdaOfflineSgn->Clone();
1764 TH2F* allmassLambdaOfflineBkg = (
TH2F*)massLambdaOfflineBkg->Clone();
1765 TH2F* allmassLambdaBarOfflineSgn = (
TH2F*)massLambdaBarOfflineSgn->Clone();
1766 TH2F* allmassLambdaBarOfflineBkg = (
TH2F*)massLambdaBarOfflineBkg->Clone();
1767 TH2F* allmassGammaOfflineSgn = (
TH2F*)massGammaOfflineSgn->Clone();
1768 TH2F* allmassGammaOfflineBkg = (
TH2F*)massGammaOfflineBkg->Clone();
1769 TH2F* alld0K0SOfflineSgn = (
TH2F*)d0K0SOfflineSgn->Clone();
1770 TH2F* alld0K0SOfflineBkg = (
TH2F*)d0K0SOfflineBkg->Clone();
1771 TH2F* alld0POfflineSgn = (
TH2F*)d0POfflineSgn->Clone();
1772 TH2F* alld0POfflineBkg = (
TH2F*)d0POfflineBkg->Clone();
1773 TH2F* allcosPAK0SOfflineSgn = (
TH2F*)cosPAK0SOfflineSgn->Clone();
1774 TH2F* allcosPAK0SOfflineBkg = (
TH2F*)cosPAK0SOfflineBkg->Clone();
1776 TH2F* pidptK0SOfflineSgn = (
TH2F*)ptK0SOfflineSgn->Clone();
1777 TH2F* pidptK0SOfflineBkg = (
TH2F*)ptK0SOfflineBkg->Clone();
1778 TH2F* pidptPOfflineSgn = (
TH2F*)ptPOfflineSgn->Clone();
1779 TH2F* pidptPOfflineBkg = (
TH2F*)ptPOfflineBkg->Clone();
1780 TH2F* pidptPiPOfflineSgn = (
TH2F*)ptPiPOfflineSgn->Clone();
1781 TH2F* pidptPiPOfflineBkg = (
TH2F*)ptPiPOfflineBkg->Clone();
1782 TH2F* pidptPiMOfflineSgn = (
TH2F*)ptPiMOfflineSgn->Clone();
1783 TH2F* pidptPiMOfflineBkg = (
TH2F*)ptPiMOfflineBkg->Clone();
1784 TH2F* pidmassLambdaOfflineSgn = (
TH2F*)massLambdaOfflineSgn->Clone();
1785 TH2F* pidmassLambdaOfflineBkg = (
TH2F*)massLambdaOfflineBkg->Clone();
1786 TH2F* pidmassLambdaBarOfflineSgn = (
TH2F*)massLambdaBarOfflineSgn->Clone();
1787 TH2F* pidmassLambdaBarOfflineBkg = (
TH2F*)massLambdaBarOfflineBkg->Clone();
1788 TH2F* pidmassGammaOfflineSgn = (
TH2F*)massGammaOfflineSgn->Clone();
1789 TH2F* pidmassGammaOfflineBkg = (
TH2F*)massGammaOfflineBkg->Clone();
1790 TH2F* pidd0K0SOfflineSgn = (
TH2F*)d0K0SOfflineSgn->Clone();
1791 TH2F* pidd0K0SOfflineBkg = (
TH2F*)d0K0SOfflineBkg->Clone();
1792 TH2F* pidd0POfflineSgn = (
TH2F*)d0POfflineSgn->Clone();
1793 TH2F* pidd0POfflineBkg = (
TH2F*)d0POfflineBkg->Clone();
1794 TH2F* pidcosPAK0SOfflineSgn = (
TH2F*)cosPAK0SOfflineSgn->Clone();
1795 TH2F* pidcosPAK0SOfflineBkg = (
TH2F*)cosPAK0SOfflineBkg->Clone();
1841 TH2F* pidTRptK0SOfflineSgn = (
TH2F*)ptK0SOfflineSgn->Clone();
1842 TH2F* pidTRptK0SOfflineBkg = (
TH2F*)ptK0SOfflineBkg->Clone();
1843 TH2F* pidTRptPOfflineSgn = (
TH2F*)ptPOfflineSgn->Clone();
1844 TH2F* pidTRptPOfflineBkg = (
TH2F*)ptPOfflineBkg->Clone();
1845 TH2F* pidTRptPiPOfflineSgn = (
TH2F*)ptPiPOfflineSgn->Clone();
1846 TH2F* pidTRptPiPOfflineBkg = (
TH2F*)ptPiPOfflineBkg->Clone();
1847 TH2F* pidTRptPiMOfflineSgn = (
TH2F*)ptPiMOfflineSgn->Clone();
1848 TH2F* pidTRptPiMOfflineBkg = (
TH2F*)ptPiMOfflineBkg->Clone();
1849 TH2F* pidTRmassLambdaOfflineSgn = (
TH2F*)massLambdaOfflineSgn->Clone();
1850 TH2F* pidTRmassLambdaOfflineBkg = (
TH2F*)massLambdaOfflineBkg->Clone();
1851 TH2F* pidTRmassLambdaBarOfflineSgn = (
TH2F*)massLambdaBarOfflineSgn->Clone();
1852 TH2F* pidTRmassLambdaBarOfflineBkg = (
TH2F*)massLambdaBarOfflineBkg->Clone();
1853 TH2F* pidTRmassGammaOfflineSgn = (
TH2F*)massGammaOfflineSgn->Clone();
1854 TH2F* pidTRmassGammaOfflineBkg = (
TH2F*)massGammaOfflineBkg->Clone();
1855 TH2F* pidTRcosPAK0SOfflineSgn = (
TH2F*)cosPAK0SOfflineSgn->Clone();
1856 TH2F* pidTRcosPAK0SOfflineBkg = (
TH2F*)cosPAK0SOfflineBkg->Clone();
1881 TH3F *phiVSthetaVSpt =
new TH3F(
"phiVSthetaVSpt",
"",35,0.,35.,360,0.,2.*TMath::Pi(),100,40.*TMath::DegToRad(),140.*TMath::DegToRad());
1882 TH3F *phiVSthetaVSptRot =
new TH3F(
"phiVSthetaVSptRot",
"",35,0.,35.,360,0.,2.*TMath::Pi(),100,40.*TMath::DegToRad(),140.*TMath::DegToRad());
1883 TH3F *phiVSthetaVSptOffline =
new TH3F(
"phiVSthetaVSptOffline",
"",35,0.,35.,360,0.,2.*TMath::Pi(),100,40.*TMath::DegToRad(),140.*TMath::DegToRad());
1884 TH3F *phiVSthetaVSptRotOffline =
new TH3F(
"phiVSthetaVSptRotOffline",
"",35,0.,35.,360,0.,2.*TMath::Pi(),100,40.*TMath::DegToRad(),140.*TMath::DegToRad());
1905 TH3F *phiVSthetaVSptSgn =
new TH3F(
"phiVSthetaVSptSgn",
"",35,0.,35.,360,0.,2.*TMath::Pi(),100,40.*TMath::DegToRad(),140.*TMath::DegToRad());
1906 TH3F *phiVSthetaVSptRotSgn =
new TH3F(
"phiVSthetaVSptRotSgn",
"",35,0.,35.,360,0.,2.*TMath::Pi(),100,40.*TMath::DegToRad(),140.*TMath::DegToRad());
1907 TH3F *phiVSthetaVSptOfflineSgn =
new TH3F(
"phiVSthetaVSptOfflineSgn",
"",35,0.,35.,360,0.,2.*TMath::Pi(),100,40.*TMath::DegToRad(),140.*TMath::DegToRad());
1908 TH3F *phiVSthetaVSptRotOfflineSgn =
new TH3F(
"phiVSthetaVSptRotOfflineSgn",
"",35,0.,35.,360,0.,2.*TMath::Pi(),100,40.*TMath::DegToRad(),140.*TMath::DegToRad());
1914 TH3F *phiVSthetaVSptBkg =
new TH3F(
"phiVSthetaVSptBkg",
"",35,0.,35.,360,0.,2.*TMath::Pi(),100,40.*TMath::DegToRad(),140.*TMath::DegToRad());
1915 TH3F *phiVSthetaVSptRotBkg =
new TH3F(
"phiVSthetaVSptRotBkg",
"",35,0.,35.,360,0.,2.*TMath::Pi(),100,40.*TMath::DegToRad(),140.*TMath::DegToRad());
1916 TH3F *phiVSthetaVSptOfflineBkg =
new TH3F(
"phiVSthetaVSptOfflineBkg",
"",35,0.,35.,360,0.,2.*TMath::Pi(),100,40.*TMath::DegToRad(),140.*TMath::DegToRad());
1917 TH3F *phiVSthetaVSptRotOfflineBkg =
new TH3F(
"phiVSthetaVSptRotOfflineBkg",
"",35,0.,35.,360,0.,2.*TMath::Pi(),100,40.*TMath::DegToRad(),140.*TMath::DegToRad());
1948 TH3F *hMassVsPtVsY=
new TH3F(
"hMassVsPtVsY",
"",nMassBins,
fMinMass,maxm,15,0.,15.,20,-1.,1.);
1949 TH3F *hMassVsPtVsYOffline=
new TH3F(
"hMassVsPtVsYOffline",
"",nMassBins,
fMinMass,maxm,15,0.,15.,20,-1.,1.);
1963 TH3F *hMassVsPtVsYSgn=
new TH3F(
"hMassVsPtVsYSgn",
"",nMassBins,
fMinMass,maxm,15,0.,15.,20,-1.,1.);
1964 TH3F *hMassVsPtVsYOfflineSgn=
new TH3F(
"hMassVsPtVsYOfflineSgn",
"",nMassBins,
fMinMass,maxm,15,0.,15.,20,-1.,1.);
1965 TH3F *hMassVsPtVsYBkg=
new TH3F(
"hMassVsPtVsYBkg",
"",nMassBins,
fMinMass,maxm,15,0.,15.,20,-1.,1.);
1966 TH3F *hMassVsPtVsYOfflineBkg=
new TH3F(
"hMassVsPtVsYOfflineBkg",
"",nMassBins,
fMinMass,maxm,15,0.,15.,20,-1.,1.);
1987 TH3F *hMassVsPtVsYRot=
new TH3F(
"hMassVsPtVsYRot",
"",nMassBins,
fMinMass,maxm,15,0.,15.,20,-1.,1.);
1988 TH3F *hMassVsPtVsYRotOffline=
new TH3F(
"hMassVsPtVsYRotOffline",
"",nMassBins,
fMinMass,maxm,15,0.,15.,20,-1.,1.);
2002 TH3F *hMassVsPtVsYRotSgn=
new TH3F(
"hMassVsPtVsYRotSgn",
"",nMassBins,
fMinMass,maxm,15,0.,15.,20,-1.,1.);
2003 TH3F *hMassVsPtVsYRotOfflineSgn=
new TH3F(
"hMassVsPtVsYRotOfflineSgn",
"",nMassBins,
fMinMass,maxm,15,0.,15.,20,-1.,1.);
2004 TH3F *hMassVsPtVsYRotBkg=
new TH3F(
"hMassVsPtVsYRotBkg",
"",nMassBins,
fMinMass,maxm,15,0.,15.,20,-1.,1.);
2005 TH3F *hMassVsPtVsYRotOfflineBkg=
new TH3F(
"hMassVsPtVsYRotOfflineBkg",
"",nMassBins,
fMinMass,maxm,15,0.,15.,20,-1.,1.);
2025 TH1F *hDeltaMass=
new TH1F(
"hDeltaMass",
"",100,-0.4,0.4);
2026 TH1F *hDeltaMassOffline=
new TH1F(
"hDeltaMassOffline",
"",100,-0.4,0.4);
2040 TH1F *hDeltaMassSgn=
new TH1F(
"hDeltaMassSgn",
"",100,-0.4,0.4);
2041 TH1F *hDeltaMassOfflineSgn=
new TH1F(
"hDeltaMassOfflineSgn",
"",100,-0.4,0.4);
2042 TH1F *hDeltaMassBkg=
new TH1F(
"hDeltaMassBkg",
"",100,-0.4,0.4);
2043 TH1F *hDeltaMassOfflineBkg=
new TH1F(
"hDeltaMassOfflineBkg",
"",100,-0.4,0.4);
2105 TClonesArray *arrayLctopKos=0;
2107 if(AODEvent() && IsStandardAOD()) {
2110 aodEvent =
dynamic_cast<AliAODEvent*
> (AODEvent());
2113 AliAODHandler* aodHandler = (AliAODHandler*)
2114 ((AliAnalysisManager::GetAnalysisManager())->GetOutputEventHandler());
2116 if (aodHandler->GetExtensions()) {
2117 AliAODExtension *ext = (AliAODExtension*)aodHandler->GetExtensions()->FindObject(
"AliAOD.VertexingHF.root");
2119 arrayLctopKos=(TClonesArray*)aodFromExt->GetList()->FindObject(
"CascadesHF");
2123 arrayLctopKos=(TClonesArray*)aodEvent->GetList()->FindObject(
"CascadesHF");
2129 if (TMath::Abs(
fBzkG)>=0.001) {
2133 if (arrayLctopKos) {
2138 TClonesArray *mcArray = 0;
2139 AliAODMCHeader *mcHeader=0;
2143 mcArray =
dynamic_cast<TClonesArray*
>(aodEvent->FindListObject(AliAODMCParticle::StdBranchName()));
2148 mcHeader = (AliAODMCHeader*)aodEvent->GetList()->FindObject(AliAODMCHeader::StdBranchName());
2154 for (
Int_t iii=0; iii<mcArray->GetEntries(); iii++)
2162 if (
fVtx1->GetNContributors()>0) {
2165 TString firedTriggerClasses = aodEvent->GetFiredTriggerClasses();
2166 ULong64_t fTriggerMask=AliVEvent::kAnyINT;
2169 (aodEvent->GetRunNumber()<136851 || aodEvent->GetRunNumber()>139517) ) {
2170 if ( !(firedTriggerClasses.Contains(
"CINT1")) ) {
2171 AliInfo(Form(
" ======================== firedTriggerClasses.Data() = %s",firedTriggerClasses.Data()));
2178 Bool_t isSelectedAAA = (((AliInputEventHandler*)(AliAnalysisManager::GetAnalysisManager()->GetInputEventHandler()))->IsEventSelected() & fTriggerMask);
2179 if (!isSelectedAAA) {
2184 if (!isSelectedAAA || check1) {
2189 fTriggerMask=AliVEvent::kAny;
2190 Bool_t isSelectedBBB = (((AliInputEventHandler*)(AliAnalysisManager::GetAnalysisManager()->GetInputEventHandler()))->IsEventSelected() & fTriggerMask);
2191 if (!isSelectedBBB) {
2196 if (titleVtx.Contains(
"Z")) {
2200 else if (titleVtx.Contains(
"3D")) {
2235 TString firedTriggerClasses = aodEvent->GetFiredTriggerClasses();
2236 ULong64_t fTriggerMask=AliVEvent::kAnyINT;
2238 ((TH1F*)(
fOutput->FindObject(
"hEventsWithCandidates")))->Fill(6);
2243 (aodEvent->GetRunNumber()<136851 || aodEvent->GetRunNumber()>139517) ) {
2244 if ( !(firedTriggerClasses.Contains(
"CINT1")) ) {
2245 AliInfo(Form(
" ======================== firedTriggerClasses.Data() = %s",firedTriggerClasses.Data()));
2246 ((TH1F*)(
fOutput->FindObject(
"hEventsWithCandidates")))->Fill(8);
2252 Bool_t isSelectedAAAa = (((AliInputEventHandler*)(AliAnalysisManager::GetAnalysisManager()->GetInputEventHandler()))->IsEventSelected() & fTriggerMask);
2253 if (!isSelectedAAAa) {
2254 ((TH1F*)(
fOutput->FindObject(
"hEventsWithCandidates")))->Fill(9);
2258 if (!isSelectedAAAa || check1a) {
2259 ((TH1F*)(
fOutput->FindObject(
"hEventsWithCandidates")))->Fill(16);
2263 fTriggerMask=AliVEvent::kAny;
2264 Bool_t isSelectedBBBa = (((AliInputEventHandler*)(AliAnalysisManager::GetAnalysisManager()->GetInputEventHandler()))->IsEventSelected() & fTriggerMask);
2265 if (!isSelectedBBBa) {
2266 ((TH1F*)(
fOutput->FindObject(
"hEventsWithCandidates")))->Fill(10);
2270 if (titleVtx.Contains(
"Z")) {
2271 ((TH1F*)(
fOutput->FindObject(
"hEventsWithCandidates")))->Fill(11);
2274 else if (titleVtx.Contains(
"3D")) {
2275 ((TH1F*)(
fOutput->FindObject(
"hEventsWithCandidates")))->Fill(12);
2278 ((TH1F*)(
fOutput->FindObject(
"hEventsWithCandidates")))->Fill(13);
2283 ((TH1F*)(
fOutput->FindObject(
"hEventsWithCandidates")))->Fill(14);
2288 ((TH1F*)(
fOutput->FindObject(
"hEventsWithCandidates")))->Fill(7);
2291 ((TH1F*)(
fOutput->FindObject(
"hEventsWithCandidates")))->Fill(15);
2301 TClonesArray *mcArray) {
2307 AliAODTrack *bachelor = (AliAODTrack*)lc2bacV0->
GetBachelor();
2308 if (!bachelor)
return -1;
2309 Int_t labBachelor = TMath::Abs(bachelor->GetLabel());
2310 if (labBachelor<0)
return -1;
2311 AliAODMCParticle *partBachelor = (AliAODMCParticle*)mcArray->At(labBachelor);
2312 if (!partBachelor)
return -1;
2313 if (TMath::Abs(partBachelor->GetPdgCode())!=pdgDgLc2bacV0[0])
return -1;
2315 Int_t labBacMother = partBachelor->GetMother();
2316 if (labBacMother<0)
return -1;
2317 AliAODMCParticle *partBacMother = (AliAODMCParticle*)mcArray->At(labBacMother);
2318 if (!partBacMother)
return -1;
2319 if (TMath::Abs(partBacMother->GetPdgCode())!=4122)
return -1;
2324 if (!posV0Daugh || !negV0Daugh)
return -1;
2326 Int_t labV0pos = TMath::Abs(posV0Daugh->GetLabel());
2327 Int_t labV0neg = TMath::Abs(negV0Daugh->GetLabel());
2328 if (labV0pos<0 || labV0neg<0)
return -1;
2330 AliAODMCParticle *partV0pos = (AliAODMCParticle*)mcArray->At(labV0neg);
2331 AliAODMCParticle *partV0neg = (AliAODMCParticle*)mcArray->At(labV0pos);
2332 if (!partV0pos || !partV0neg)
return -1;
2334 if ( ! ( (TMath::Abs(partV0pos->GetPdgCode())==pdgDgV0[0] &&
2335 TMath::Abs(partV0neg->GetPdgCode())==pdgDgV0[1]) ||
2336 (TMath::Abs(partV0pos->GetPdgCode())==pdgDgV0[1] &&
2337 TMath::Abs(partV0neg->GetPdgCode())==pdgDgV0[0]) ) )
return -1;
2338 Int_t labV0posMother = partV0pos->GetMother();
2339 Int_t labV0negMother = partV0neg->GetMother();
2341 if (labV0posMother<0 || labV0negMother<0)
return -1;
2342 if (labV0posMother!=labV0negMother)
return -1;
2344 AliAODMCParticle *motherV0 = (AliAODMCParticle*)mcArray->At(labV0posMother);
2345 if (!motherV0)
return-1;
2347 if (TMath::Abs(motherV0->GetPdgCode())!=pdgDgLc2bacV0[1])
return -1;
2348 Int_t labV0mother = motherV0->GetMother();
2349 if (labV0mother<0)
return -1;
2350 AliAODMCParticle *gMotherV0 = (AliAODMCParticle*)mcArray->At(labV0mother);
2351 if (!gMotherV0)
return-1;
2353 if ( !(pdgDgLc2bacV0[1]==310 && TMath::Abs(gMotherV0->GetPdgCode())==311) &&
2354 !(pdgDgLc2bacV0[1]==3122 && TMath::Abs(motherV0->GetPdgCode())==3122) )
return -1;
2356 if ( (pdgDgLc2bacV0[1]==310 && TMath::Abs(gMotherV0->GetPdgCode())==311) ) {
2357 Int_t labV0GMother = gMotherV0->GetMother();
2358 if (labV0GMother<0)
return -1;
2359 AliAODMCParticle *ggMotherV0 = (AliAODMCParticle*)mcArray->At(labV0GMother);
2360 if (!ggMotherV0)
return-1;
2362 if (TMath::Abs(ggMotherV0->GetPdgCode())!=4122)
return -1;
2363 gMotherV0 = (AliAODMCParticle*)ggMotherV0;
2364 labV0mother=labV0GMother;
2366 else if (pdgDgLc2bacV0[1]==3122 && TMath::Abs(motherV0->GetPdgCode())==3122) {
2367 if (TMath::Abs(gMotherV0->GetPdgCode())!=4122)
return -1;
2370 if (labBacMother!=labV0mother) {
2374 return labBacMother;
2384 Int_t indexToBeReturned=-999;
2387 Int_t pdgLambda=3122;
2390 Int_t pdgBachelor=2212;
2391 Int_t pdgBachelorPi=211;
2394 fillthis=
"histMcStatLc";
2396 AliAODMCParticle *searchLc =
dynamic_cast<AliAODMCParticle*
>(arrayMC->At(iii));
2397 if(!searchLc)
return -999;
2398 if (TMath::Abs(searchLc->GetPdgCode()) != pdgLc)
return -999;
2400 ((TH1F*)(
fOutput->FindObject(fillthis)))->Fill(0);
2401 indexToBeReturned = 0;
2403 ((TH1F*)(
fOutput->FindObject(fillthis)))->Fill(TMath::Nint(searchLc->Charge()/3.)*1);
2404 indexToBeReturned = TMath::Nint(searchLc->Charge()/3.)*1;
2406 Int_t nDaughLc = searchLc->GetNDaughters();
2408 ((TH1F*)(
fOutput->FindObject(fillthis)))->Fill(TMath::Nint(searchLc->Charge()/3.)*10);
2409 indexToBeReturned = TMath::Nint(searchLc->Charge()/3.)*10;
2410 return indexToBeReturned;
2413 Int_t index1=searchLc->GetDaughter(0);
2414 Int_t index2=searchLc->GetDaughter(1);
2415 if (index1<=0 || index2<=0) {
2419 AliAODMCParticle *daugh1 =
dynamic_cast<AliAODMCParticle*
>(arrayMC->At(index1));
2420 AliAODMCParticle *daugh2 =
dynamic_cast<AliAODMCParticle*
>(arrayMC->At(index2));
2421 if (!daugh1 || !daugh2)
return -999;
2423 Int_t daughPdg1 = TMath::Abs(daugh1->GetPdgCode());
2424 Int_t daughPdg2 = TMath::Abs(daugh2->GetPdgCode());
2425 if ( !( (daughPdg1==pdgBachelor && daughPdg2==pdgK0) ||
2426 (daughPdg2==pdgBachelor && daughPdg1==pdgK0) ||
2427 (daughPdg1==pdgLambda && daughPdg2==pdgBachelorPi) ||
2428 (daughPdg2==pdgLambda && daughPdg1==pdgBachelorPi) ) ) {
2429 ((TH1F*)(
fOutput->FindObject(fillthis)))->Fill(TMath::Nint(searchLc->Charge()/3.)*10);
2430 indexToBeReturned = TMath::Nint(searchLc->Charge()/3.)*10;
2431 return indexToBeReturned;
2434 if (daughPdg1==pdgK0 || daughPdg1==pdgLambda) {
2435 index1=searchLc->GetDaughter(1);
2436 index2=searchLc->GetDaughter(0);
2438 daugh1 =
dynamic_cast<AliAODMCParticle*
>(arrayMC->At(index1));
2439 daugh2 =
dynamic_cast<AliAODMCParticle*
>(arrayMC->At(index2));
2440 if (!daugh1 || !daugh2)
return -999;
2442 daughPdg1=TMath::Abs(daugh1->GetPdgCode());
2443 daughPdg2=TMath::Abs(daugh2->GetPdgCode());
2445 if ( daughPdg1==pdgBachelor && daughPdg2==pdgK0 ) {
2447 ((TH1F*)(
fOutput->FindObject(fillthis)))->Fill(TMath::Nint(searchLc->Charge()/3.)*2);
2448 indexToBeReturned = TMath::Nint(searchLc->Charge()/3.)*2;
2450 Int_t nDaughK0 = daugh2->GetNDaughters();
2451 if (nDaughK0!=1)
return -999;
2453 Int_t indexK0daugh=daugh2->GetDaughter(0);
2454 if (indexK0daugh<=0)
return -999;
2456 AliAODMCParticle *daughK0 =
dynamic_cast<AliAODMCParticle*
>(arrayMC->At(indexK0daugh));
2457 if (!daughK0)
return -999;
2459 Int_t daughK0Pdg=TMath::Abs(daughK0->GetPdgCode());
2460 if (daughK0Pdg!=pdgV0) {
2461 ((TH1F*)(
fOutput->FindObject(fillthis)))->Fill(TMath::Nint(searchLc->Charge()/3.)*4);
2462 indexToBeReturned = TMath::Nint(searchLc->Charge()/3.)*4;
2463 return indexToBeReturned;
2465 ((TH1F*)(
fOutput->FindObject(fillthis)))->Fill(TMath::Nint(searchLc->Charge()/3.)*3);
2466 indexToBeReturned = TMath::Nint(searchLc->Charge()/3.)*3;
2468 Int_t nDaughK0S = daughK0->GetNDaughters();
2470 ((TH1F*)(
fOutput->FindObject(fillthis)))->Fill(TMath::Nint(searchLc->Charge()/3.)*5);
2471 indexToBeReturned = TMath::Nint(searchLc->Charge()/3.)*5;
2472 return indexToBeReturned;
2475 index1=daughK0->GetDaughter(0);
2476 index2=daughK0->GetDaughter(1);
2477 if(index1<=0 || index2<=0) {
2481 AliAODMCParticle *daughK0S1 =
dynamic_cast<AliAODMCParticle*
>(arrayMC->At(index1));
2482 AliAODMCParticle *daughK0S2 =
dynamic_cast<AliAODMCParticle*
>(arrayMC->At(index2));
2483 if (!daughK0S1 || !daughK0S2)
return -999;
2485 Int_t daughK0S1pdg=TMath::Abs(daughK0S1->GetPdgCode());
2486 Int_t daughK0S2pdg=TMath::Abs(daughK0S2->GetPdgCode());
2488 if ( daughK0S1pdg==211 && daughK0S2pdg==211 ) {
2489 ((TH1F*)(
fOutput->FindObject(fillthis)))->Fill(TMath::Nint(searchLc->Charge()/3.)*6);
2490 indexToBeReturned = TMath::Nint(searchLc->Charge()/3.)*6;
2492 ((TH1F*)(
fOutput->FindObject(fillthis)))->Fill(TMath::Nint(searchLc->Charge()/3.)*5);
2493 indexToBeReturned = TMath::Nint(searchLc->Charge()/3.)*5;
2497 else if ( daughPdg1==pdgBachelorPi && daughPdg2==pdgLambda ) {
2499 ((TH1F*)(
fOutput->FindObject(fillthis)))->Fill(TMath::Nint(searchLc->Charge()/3.)*7);
2500 indexToBeReturned = TMath::Nint(searchLc->Charge()/3.)*7;
2502 Int_t nDaughL = daugh2->GetNDaughters();
2504 ((TH1F*)(
fOutput->FindObject(fillthis)))->Fill(TMath::Nint(searchLc->Charge()/3.)*8);
2505 indexToBeReturned = TMath::Nint(searchLc->Charge()/3.)*8;
2506 return indexToBeReturned;
2509 index1=daugh2->GetDaughter(0);
2510 index2=daugh2->GetDaughter(1);
2511 if(index1<=0 || index2<=0) {
2515 AliAODMCParticle *daughL1 =
dynamic_cast<AliAODMCParticle*
>(arrayMC->At(index1));
2516 AliAODMCParticle *daughL2 =
dynamic_cast<AliAODMCParticle*
>(arrayMC->At(index2));
2517 if (!daughL1 || !daughL2)
return -999;
2519 Int_t daughL1pdg=TMath::Abs(daughL1->GetPdgCode());
2520 Int_t daughL2pdg=TMath::Abs(daughL2->GetPdgCode());
2521 if ( (daughL1pdg==211 && daughL2pdg==2212) ||
2522 (daughL2pdg==211 && daughL1pdg==2212) ) {
2523 ((TH1F*)(
fOutput->FindObject(fillthis)))->Fill(TMath::Nint(searchLc->Charge()/3.)*9);
2524 indexToBeReturned = TMath::Nint(searchLc->Charge()/3.)*9;
2526 ((TH1F*)(
fOutput->FindObject(fillthis)))->Fill(TMath::Nint(searchLc->Charge()/3.)*8);
2527 indexToBeReturned = TMath::Nint(searchLc->Charge()/3.)*8;
2532 return indexToBeReturned;
2538 Bool_t isCandidateSelectedCuts,
2547 ((
TH2F*)(
fOutputAll->FindObject(histoTitle+
"0")))->Fill(alpha,qT);
2548 if (isCandidateSelectedCuts) {
2564 AliAODv0 * v0part = (AliAODv0*)part->
Getv0();
2565 Bool_t onFlyV0 = v0part->GetOnFlyStatus();
2567 AliAODTrack *bachelor = (AliAODTrack*)part->
GetBachelor();
2570 ((TH1F*)(
fOutput->FindObject(
"hCandidateSelection")))->Fill(3);
2573 ((TH1F*)(
fOutput->FindObject(
"hCandidateSelection")))->Fill(4);
2575 ((TH1F*)(
fOutput->FindObject(
"hCandidateSelection")))->Fill(5);
2578 ((TH1F*)(
fOutput->FindObject(
"hCandidateSelection")))->Fill(6);
2581 ((TH1F*)(
fOutput->FindObject(
"hCandidateSelection")))->Fill(7);
2583 ((TH1F*)(
fOutput->FindObject(
"hCandidateSelection")))->Fill(8);
2585 ((TH1F*)(
fOutput->FindObject(
"hCandidateSelection")))->Fill(9);
2595 ((TH1F*)(
fOutput->FindObject(
"hSwitchOnCandidates1")))->Fill( -aaa );
2597 ((TH1F*)(
fOutput->FindObject(
"hSwitchOnCandidates1")))->Fill( aaa );
2602 if ((aaa&AliRDHFCutsLctoV0::kLcToK0Spr)==AliRDHFCutsLctoV0::kLcToK0Spr) {
2605 ((TH1F*)(
fOutput->FindObject(
"hSwitchOnCandidates2")))->Fill( -aaa );
2607 ((TH1F*)(
fOutput->FindObject(
"hSwitchOnCandidates2")))->Fill( aaa );
2612 if ((aaa&AliRDHFCutsLctoV0::kLcToK0Spr)==AliRDHFCutsLctoV0::kLcToK0Spr) {
2615 ((TH1F*)(
fOutput->FindObject(
"hSwitchOnCandidates3")))->Fill( -aaa );
2617 ((TH1F*)(
fOutput->FindObject(
"hSwitchOnCandidates3")))->Fill( aaa );
2621 if ((aaa&AliRDHFCutsLctoV0::kLcToK0Spr)==AliRDHFCutsLctoV0::kLcToK0Spr) {
2624 ((TH1F*)(
fOutput->FindObject(
"hSwitchOnCandidates4")))->Fill( -aaa );
2626 ((TH1F*)(
fOutput->FindObject(
"hSwitchOnCandidates4")))->Fill( aaa );
2641 Double_t mk0sPDG = TDatabasePDG::Instance()->GetParticle(310)->Mass();
2642 Double_t mLPDG = TDatabasePDG::Instance()->GetParticle(3122)->Mass();
2647 AliAODTrack *bachelor = (AliAODTrack*)part->
GetBachelor();
2649 AliAODv0 * v0part = (AliAODv0*)part->
Getv0();
2650 Double_t dcaV0ptp = v0part->GetDCA();
2651 Double_t invmassK0S = v0part->MassK0Short();
2652 Double_t invmassLambda = v0part->MassLambda();
2653 Double_t invmassLambdaBar = v0part->MassAntiLambda();
2655 Int_t isLc2LBarpi=0, isLc2Lpi=0;
2657 Int_t isDp2K0Spi=0, isDs2K0SK=0;
2658 Int_t mcLabel2 = -1;
2659 Int_t mcLabel3 = -1;
2660 Int_t isKstar12K0Spi=0, isKstar22K0Spi=0;
2661 Int_t mcLabel4 = -1;
2662 Int_t mcLabel5 = -1;
2667 Int_t pdgCand0 = 4122;
2668 Int_t pdgDgLctoV0bachelor0[2]={2212,310};
2669 Int_t pdgDgV0toDaughters0[2]={211,211};
2670 Int_t mcLabelLc2pK0S = part->
MatchToMC(pdgCand0,pdgDgLctoV0bachelor0[1],pdgDgLctoV0bachelor0,pdgDgV0toDaughters0,mcArray,kTRUE);
2671 AliAODMCParticle *lambdaCpartMC = (AliAODMCParticle*)mcArray->At(mcLabelLc2pK0S);
2672 if (lambdaCpartMC) {
2673 ptCandByMC = lambdaCpartMC->Pt();
2674 yCandByMC = lambdaCpartMC->Y();
2678 Int_t pdgCand = 4122;
2679 Int_t pdgDgLctoV0bachelor[2]={211,3122};
2680 Int_t pdgDgV0toDaughters[2]={2212,211};
2681 mcLabel = part->
MatchToMC(pdgCand,pdgDgLctoV0bachelor[1],pdgDgLctoV0bachelor,pdgDgV0toDaughters,mcArray,kTRUE);
2683 if (bachelor->Charge()<0) isLc2LBarpi=1;
2684 if (bachelor->Charge()>0) isLc2Lpi=1;
2685 AliAODMCParticle *lambdaCpartMC = (AliAODMCParticle*)mcArray->At(mcLabel);
2686 if (lambdaCpartMC) {
2687 ptCandByMC = lambdaCpartMC->Pt();
2688 yCandByMC = lambdaCpartMC->Y();
2692 Int_t pdgCand2 = 411;
2693 Int_t pdgCand3 = 431;
2694 Int_t pdgDgCand2[2]={211,310};
2695 Int_t pdgDgCand3[2]={321,310};
2696 pdgDgV0toDaughters[0]=211;
2697 pdgDgV0toDaughters[1]=211;
2698 mcLabel2 = part->
MatchToMC(pdgCand2,pdgDgCand2[1],pdgDgCand2,pdgDgV0toDaughters,mcArray,kTRUE);
2699 mcLabel3 = part->
MatchToMC(pdgCand3,pdgDgCand3[1],pdgDgCand3,pdgDgV0toDaughters,mcArray,kTRUE);
2702 AliAODMCParticle *lambdaCpartMC = (AliAODMCParticle*)mcArray->At(mcLabel2);
2703 if (lambdaCpartMC) {
2704 ptCandByMC = lambdaCpartMC->Pt();
2705 yCandByMC = lambdaCpartMC->Y();
2710 AliAODMCParticle *lambdaCpartMC = (AliAODMCParticle*)mcArray->At(mcLabel3);
2711 if (lambdaCpartMC) {
2712 ptCandByMC = lambdaCpartMC->Pt();
2713 yCandByMC = lambdaCpartMC->Y();
2717 Int_t pdgCand4 = 313;
2718 Int_t pdgCand5 = 325;
2719 Int_t pdgDgCand4[2]={211,310};
2720 Int_t pdgDgCand5[2]={211,310};
2721 pdgDgV0toDaughters[0]=211;
2722 pdgDgV0toDaughters[1]=211;
2723 mcLabel4 = part->
MatchToMC(pdgCand4,pdgDgCand4[1],pdgDgCand4,pdgDgV0toDaughters,mcArray,kTRUE);
2724 mcLabel5 = part->
MatchToMC(pdgCand5,pdgDgCand5[1],pdgDgCand5,pdgDgV0toDaughters,mcArray,kTRUE);
2727 AliAODMCParticle *lambdaCpartMC = (AliAODMCParticle*)mcArray->At(mcLabel4);
2728 if (lambdaCpartMC) {
2729 ptCandByMC = lambdaCpartMC->Pt();
2730 yCandByMC = lambdaCpartMC->Y();
2735 AliAODMCParticle *lambdaCpartMC = (AliAODMCParticle*)mcArray->At(mcLabel5);
2736 if (lambdaCpartMC) {
2737 ptCandByMC = lambdaCpartMC->Pt();
2738 yCandByMC = lambdaCpartMC->Y();
2743 Int_t isLcByMC = isLc+isLc2LBarpi*2+isLc2Lpi*4+isDp2K0Spi*8+isDs2K0SK*16+isKstar12K0Spi*32+isKstar22K0Spi*64;
2745 Bool_t isMCparticleInFiducialAcceptance = kTRUE;
2746 if (isLc || isLc2LBarpi || isLc2Lpi || isDp2K0Spi || isDs2K0SK || isKstar12K0Spi || isKstar22K0Spi) {
2752 Int_t isLambdaBar = 0;
2755 Int_t pdgDg2prong[2] = {211, 211};
2756 Int_t labelK0S = v0part->MatchToMC(310,mcArray,2,pdgDg2prong);
2757 if (labelK0S>=0) isK0S = 1;
2759 pdgDg2prong[0] = 211;
2760 pdgDg2prong[1] = 2212;
2761 Int_t lambdaLabel = v0part->MatchToMC(3122,mcArray,2,pdgDg2prong);
2762 if (lambdaLabel>=0) {
2763 AliAODMCParticle *lambdaTrack = (AliAODMCParticle*)mcArray->At(lambdaLabel);
2764 if (lambdaTrack->GetPdgCode()==3122) isLambda = 1;
2765 else if (lambdaTrack->GetPdgCode()==-3122) isLambdaBar = 1;
2768 pdgDg2prong[0] = 11;
2769 pdgDg2prong[1] = 11;
2770 Int_t gammaLabel = v0part->MatchToMC(22,mcArray,2,pdgDg2prong);
2771 if (gammaLabel>=0) {
2772 AliAODMCParticle *gammaTrack = (AliAODMCParticle*)mcArray->At(gammaLabel);
2773 if (gammaTrack->GetPdgCode()==22) isGamma = 1;
2777 Int_t isV0ByMC = isK0S+isLambdaBar*2+isLambda*4+isGamma*8;
2779 Int_t isBachelorSelected = (bachelor->TestFilterMask(BIT(4)))*1 + (!(bachelor->TestFilterMask(BIT(4))))*2;
2780 isBachelorSelected += (bachelor->GetLabel()<0)*4 + (bachelor->GetLabel()>=0)*8;
2781 if ( ( !(bachelor->HasPointOnITSLayer(0)) && !(bachelor->HasPointOnITSLayer(1)) ) )
2782 isBachelorSelected += 16;
2784 if ( bachelor->HasPointOnITSLayer(0) && !(bachelor->HasPointOnITSLayer(1)) )
2785 isBachelorSelected += 32;
2786 else if ( !(bachelor->HasPointOnITSLayer(0)) && bachelor->HasPointOnITSLayer(1) )
2787 isBachelorSelected += 64;
2789 isBachelorSelected += 128;
2795 Int_t areV0daughtersSelected = (v0pos->TestFilterMask(BIT(4)))*1 + (!(v0pos->TestFilterMask(BIT(4))))*2;
2796 areV0daughtersSelected += (v0pos->GetLabel()<0)*4 + (v0pos->GetLabel()>=0)*8;
2797 areV0daughtersSelected += (v0pos->HasPointOnITSLayer(0))*16;
2798 areV0daughtersSelected += (v0pos->HasPointOnITSLayer(1))*32;
2799 areV0daughtersSelected += (v0pos->HasPointOnITSLayer(2))*64;
2800 areV0daughtersSelected += (v0pos->HasPointOnITSLayer(3))*128;
2801 areV0daughtersSelected += (v0pos->HasPointOnITSLayer(4))*256;
2802 areV0daughtersSelected += (v0pos->HasPointOnITSLayer(5))*512;
2804 areV0daughtersSelected += (v0neg->TestFilterMask(BIT(4)))*1024 + (!(v0neg->TestFilterMask(BIT(4))))*2048;
2805 areV0daughtersSelected += (v0neg->GetLabel()<0)*4096 + (v0neg->GetLabel()>=0)*8192;
2806 areV0daughtersSelected += (v0neg->HasPointOnITSLayer(0))*16384;
2807 areV0daughtersSelected += (v0neg->HasPointOnITSLayer(1))*32768;
2808 areV0daughtersSelected += (v0neg->HasPointOnITSLayer(2))*65536;
2809 areV0daughtersSelected += (v0neg->HasPointOnITSLayer(3))*131072;
2810 areV0daughtersSelected += (v0neg->HasPointOnITSLayer(4))*262144;
2811 areV0daughtersSelected += (v0neg->HasPointOnITSLayer(5))*524288;
2835 Int_t flagToCheckCandidate = 1*(TMath::Abs(invmassK0S-mk0sPDG)<=0.050);
2836 flagToCheckCandidate+=2*((TMath::Abs(invmassLambdaBar-mLPDG)<=0.050) && (bachelor->Charge()<0));
2837 flagToCheckCandidate+=4*((TMath::Abs(invmassLambda-mLPDG)<=0.050) && (bachelor->Charge()>0));
2838 flagToCheckCandidate+=8*((TMath::Abs(invmassLambdaBar-mLPDG)<=0.050) && (bachelor->Charge()>0));
2839 flagToCheckCandidate+=16*((TMath::Abs(invmassLambda-mLPDG)<=0.050) && (bachelor->Charge()<0));
2899 Double_t xVtxLc=0, yVtxLc=0, zVtxLc=0;
2901 Double_t pxVtxBachelor=0, pyVtxBachelor=0, pzVtxBachelor=0;
2902 dcaForLc =
PropagateToDCA(v0part,bachelor,
fBzkG, xVtxLc, yVtxLc, zVtxLc, pxVtxBachelor, pyVtxBachelor, pzVtxBachelor);
2904 Int_t pdgCand0 = 4122;
2905 Int_t pdgDgLctoV0bachelor0[2]={2212,310};
2906 Int_t pdgDgV0toDaughters0[2]={211,211};
2907 Int_t mcLabel0 = part->
MatchToMC(pdgCand0,pdgDgLctoV0bachelor0[1],pdgDgLctoV0bachelor0,pdgDgV0toDaughters0,mcArray,kTRUE);
2908 AliAODMCParticle *partLc =
dynamic_cast<AliAODMCParticle*
>(mcArray->At(mcLabel0));
2910 AliAODMCParticle *partLcDaug0 =
dynamic_cast<AliAODMCParticle*
>(mcArray->At(partLc->GetDaughter(0)));
2912 xLcMC=partLcDaug0->Xv(), yLcMC=partLcDaug0->Yv(), zLcMC=partLcDaug0->Zv();
2915 }
else if (isLc2LBarpi || isLc2Lpi) {
2916 AliAODMCParticle *partLc =
dynamic_cast<AliAODMCParticle*
>(mcArray->At(mcLabel));
2917 AliAODMCParticle *partLcDaug0 =
dynamic_cast<AliAODMCParticle*
>(mcArray->At(partLc->GetDaughter(0)));
2918 xLcMC=partLcDaug0->Xv(), yLcMC=partLcDaug0->Yv(), zLcMC=partLcDaug0->Zv();
2919 }
else if (isDp2K0Spi) {
2920 AliAODMCParticle *partLc =
dynamic_cast<AliAODMCParticle*
>(mcArray->At(mcLabel2));
2921 AliAODMCParticle *partLcDaug0 =
dynamic_cast<AliAODMCParticle*
>(mcArray->At(partLc->GetDaughter(0)));
2922 xLcMC=partLcDaug0->Xv(), yLcMC=partLcDaug0->Yv(), zLcMC=partLcDaug0->Zv();
2923 }
else if (isDs2K0SK) {
2924 AliAODMCParticle *partLc =
dynamic_cast<AliAODMCParticle*
>(mcArray->At(mcLabel3));
2925 AliAODMCParticle *partLcDaug0 =
dynamic_cast<AliAODMCParticle*
>(mcArray->At(partLc->GetDaughter(0)));
2926 xLcMC=partLcDaug0->Xv(), yLcMC=partLcDaug0->Yv(), zLcMC=partLcDaug0->Zv();
2927 }
else if (isKstar12K0Spi) {
2928 AliAODMCParticle *partLc =
dynamic_cast<AliAODMCParticle*
>(mcArray->At(mcLabel4));
2929 AliAODMCParticle *partLcDaug0 =
dynamic_cast<AliAODMCParticle*
>(mcArray->At(partLc->GetDaughter(0)));
2930 xLcMC=partLcDaug0->Xv(), yLcMC=partLcDaug0->Yv(), zLcMC=partLcDaug0->Zv();
2931 }
else if (isKstar22K0Spi) {
2932 AliAODMCParticle *partLc =
dynamic_cast<AliAODMCParticle*
>(mcArray->At(mcLabel5));
2933 AliAODMCParticle *partLcDaug0 =
dynamic_cast<AliAODMCParticle*
>(mcArray->At(partLc->GetDaughter(0)));
2934 xLcMC=partLcDaug0->Xv(), yLcMC=partLcDaug0->Yv(), zLcMC=partLcDaug0->Zv();
2977 if (bachelor->GetLabel()!=-1) {
2978 AliAODMCParticle *partBachelor =
dynamic_cast<AliAODMCParticle*
>(mcArray->At(TMath::Abs(bachelor->GetLabel())));
2981 if (bachelor->GetLabel()!=-1 &&
2982 v0pos->GetLabel()!=-1 &&
2983 v0neg->GetLabel()!=-1) {
2985 Int_t dgLabels[ndg]={TMath::Abs(bachelor->GetLabel()),
2986 TMath::Abs(v0pos->GetLabel()),
2987 TMath::Abs(v0neg->GetLabel())};
2990 Int_t absLabelMother=-1;
2993 dgLabels,ndg,ndgCk,pdgDg,absLabelMother,nDauCand);
2995 if (v0pos->GetLabel()!=-1) {
2996 AliAODMCParticle *part1 =
dynamic_cast<AliAODMCParticle*
>(mcArray->At(TMath::Abs(v0pos->GetLabel())));
2999 if (v0neg->GetLabel()!=-1) {
3000 AliAODMCParticle *part2 =
dynamic_cast<AliAODMCParticle*
>(mcArray->At(TMath::Abs(v0neg->GetLabel())));
3003 if (v0pos->GetLabel()!=-1 &&
3004 v0neg->GetLabel()!=-1) {
3006 Int_t dgLabels[ndg]={TMath::Abs(v0pos->GetLabel()),
3007 TMath::Abs(v0neg->GetLabel())};
3010 Int_t absLabelMother=-1;
3013 dgLabels,ndg,ndgCk,pdgDg,absLabelMother,nDauCand);
3018 AliInputEventHandler *inputHandler=(AliInputEventHandler*)mgr->GetInputEventHandler();
3019 AliPIDResponse *pidResponse=inputHandler->GetPIDResponse();
3022 AliPIDCombined *objectPIDCombined=
new AliPIDCombined;
3023 objectPIDCombined->SetDefaultTPCPriors();
3024 objectPIDCombined->SetDetectorMask(AliPIDResponse::kDetTPC+AliPIDResponse::kDetTOF);
3026 Double_t probTPCTOF[AliPID::kSPECIES]={-1.};
3027 UInt_t detUsed = objectPIDCombined->ComputeProbabilities(bachelor, pidResponse, probTPCTOF);
3032 if (detUsed == (
UInt_t)objectPIDCombined->GetDetectorMask() ) {
3033 AliDebug(2, Form(
"We have found the detector mask for TOF + TPC: probProton will be set to %f", probTPCTOF[
AliPID::kProton]));
3039 objectPIDCombined->SetDetectorMask(AliPIDResponse::kDetTPC);
3040 AliDebug(2,
"We did not find the detector mask for TOF + TPC, let's see only TPC");
3041 detUsed = objectPIDCombined->ComputeProbabilities(bachelor, pidResponse, probTPCTOF);
3042 AliDebug(2,Form(
" detUsed (TPC case) = %d", detUsed));
3043 if (detUsed == (
UInt_t)objectPIDCombined->GetDetectorMask()) {
3047 AliDebug(2, Form(
"TPC only worked: probProton will be set to %f", probTPCTOF[
AliPID::kProton]));
3050 AliDebug(2,
"Only TPC did not work...");
3053 objectPIDCombined->SetDetectorMask(AliPIDResponse::kDetTPC+AliPIDResponse::kDetTOF);
3055 AliDebug(2, Form(
"probProton = %f", probProton));
3060 Double_t pidTPC[AliPID::kSPECIES]={-1.};
3061 Double_t pidTOF[AliPID::kSPECIES]={-1.};
3062 Int_t respTPC = pidResponse->ComputePIDProbability(AliPIDResponse::kDetTPC, bachelor, AliPID::kSPECIES, pidTPC);
3063 Int_t respTOF = pidResponse->ComputePIDProbability(AliPIDResponse::kDetTOF, bachelor, AliPID::kSPECIES, pidTOF);
3064 if (respTPC == AliPIDResponse::kDetPidOk) probProtonTPC = pidTPC[
AliPID::kProton];
3065 if (respTOF == AliPIDResponse::kDetPidOk) probProtonTOF = pidTOF[
AliPID::kProton];
3075 delete objectPIDCombined;
3088 const char* nameoutput = GetOutputSlot(4)->GetContainer()->GetName();
3094 fCandidateVariableNames[ 0]=
"isLcByMC";
3095 fCandidateVariableNames[ 1]=
"isV0ByMC";
3096 fCandidateVariableNames[ 2]=
"flagToCheckBachelor";
3097 fCandidateVariableNames[ 3]=
"flagToCheckV0daughters";
3098 fCandidateVariableNames[ 4]=
"flagToCheckCandidate";
3099 fCandidateVariableNames[ 5]=
"massLc2K0Sp";
3100 fCandidateVariableNames[ 6]=
"massLc2Lambdapi";
3101 fCandidateVariableNames[ 7]=
"massD2K0Spi";
3102 fCandidateVariableNames[ 8]=
"massDS2K0SK";
3103 fCandidateVariableNames[ 9]=
"massK0S";
3104 fCandidateVariableNames[10]=
"massLambda";
3105 fCandidateVariableNames[11]=
"massLambdaBar";
3106 fCandidateVariableNames[12]=
"massGamma";
3107 fCandidateVariableNames[13]=
"dcaLcptp";
3108 fCandidateVariableNames[14]=
"dcaV0ptp";
3109 fCandidateVariableNames[15]=
"tImpParBach";
3110 fCandidateVariableNames[16]=
"tImpParV0";
3111 fCandidateVariableNames[17]=
"dcaV0postoPV";
3112 fCandidateVariableNames[18]=
"dcaV0negtoPV";
3113 fCandidateVariableNames[19]=
"cosPALc";
3114 fCandidateVariableNames[20]=
"cosPAK0S";
3115 fCandidateVariableNames[21]=
"rhoV0";
3116 fCandidateVariableNames[22]=
"nSigmaITSpr";
3117 fCandidateVariableNames[23]=
"nSigmaITSpi";
3118 fCandidateVariableNames[24]=
"nSigmaITSka";
3119 fCandidateVariableNames[25]=
"nSigmaTPCpr";
3120 fCandidateVariableNames[26]=
"nSigmaTPCpi";
3121 fCandidateVariableNames[27]=
"nSigmaTPCka";
3122 fCandidateVariableNames[28]=
"nSigmaTOFpr";
3123 fCandidateVariableNames[29]=
"nSigmaTOFpi";
3124 fCandidateVariableNames[30]=
"nSigmaTOFka";
3125 fCandidateVariableNames[31]=
"yLc";
3126 fCandidateVariableNames[32]=
"etaBach";
3127 fCandidateVariableNames[33]=
"etaV0pos";
3128 fCandidateVariableNames[34]=
"etaV0neg";
3129 fCandidateVariableNames[35]=
"LcP";
3130 fCandidateVariableNames[36]=
"LcPt";
3131 fCandidateVariableNames[37]=
"v0P";
3132 fCandidateVariableNames[38]=
"v0Pt";
3133 fCandidateVariableNames[39]=
"bachelorP";
3134 fCandidateVariableNames[40]=
"bachelorPt";
3135 fCandidateVariableNames[41]=
"V0positiveP";
3136 fCandidateVariableNames[42]=
"V0positivePt";
3137 fCandidateVariableNames[43]=
"V0negativeP";
3138 fCandidateVariableNames[44]=
"V0negativePt";
3139 fCandidateVariableNames[45]=
"decayLengthLc";
3140 fCandidateVariableNames[46]=
"decayLengthV0";
3141 fCandidateVariableNames[47]=
"cosPALcXY";
3142 fCandidateVariableNames[48]=
"cosPAV0XY";
3143 fCandidateVariableNames[49]=
"decayLengthLcXY";
3144 fCandidateVariableNames[50]=
"decayLengthV0XY";
3145 fCandidateVariableNames[51]=
"normalizedDecayLengthLc";
3146 fCandidateVariableNames[52]=
"normalizedDecayLengthV0";
3147 fCandidateVariableNames[53]=
"normalizedDecayLengthXYLc";
3148 fCandidateVariableNames[54]=
"normalizedDecayLengthXYV0";
3149 fCandidateVariableNames[55]=
"newLcDCA";
3151 fCandidateVariableNames[56]=
"cosThetaStarBachelor";
3152 fCandidateVariableNames[57]=
"cosThetaStarV0";
3153 fCandidateVariableNames[58]=
"etaV0";
3154 fCandidateVariableNames[59]=
"yV0";
3155 fCandidateVariableNames[60]=
"bachelorCharge";
3156 fCandidateVariableNames[61]=
"isMCparticleInFiducialAcceptance";
3158 fCandidateVariableNames[62]=
"massKstar12K0Spi";
3159 fCandidateVariableNames[63]=
"massKstar22K0Spi";
3160 fCandidateVariableNames[64]=
"pdgBachelor";
3161 fCandidateVariableNames[65]=
"pdgCandidate";
3162 fCandidateVariableNames[66]=
"pdgV0pos";
3163 fCandidateVariableNames[67]=
"pdgV0neg";
3164 fCandidateVariableNames[68]=
"pdgV0Candidate";
3165 fCandidateVariableNames[69]=
"startTimeMask";
3167 fCandidateVariableNames[70]=
"combinedProtonProb";
3168 fCandidateVariableNames[71]=
"TPCProtonProb";
3169 fCandidateVariableNames[72]=
"TOFProtonProb";
3170 fCandidateVariableNames[73]=
"checkLcOrigin";
3172 fCandidateVariableNames[74]=
"qtProng0V0";
3175 fCandidateVariableNames[75]=
"xVtxLcBad";
3176 fCandidateVariableNames[76]=
"yVtxLcBad";
3177 fCandidateVariableNames[77]=
"zVtxLcBad";
3178 fCandidateVariableNames[78]=
"xVtxLcGood";
3179 fCandidateVariableNames[79]=
"yVtxLcGood";
3180 fCandidateVariableNames[80]=
"zVtxLcGood";
3181 fCandidateVariableNames[81]=
"xVtxLcMC";
3182 fCandidateVariableNames[82]=
"yVtxLcMC";
3183 fCandidateVariableNames[83]=
"zVtxLcMC";
3184 fCandidateVariableNames[84]=
"pxVtxBachelorBad";
3185 fCandidateVariableNames[85]=
"pyVtxBachelorBad";
3186 fCandidateVariableNames[86]=
"pxVtxBachelorGood";
3187 fCandidateVariableNames[87]=
"pyVtxBachelorGood";
3188 fCandidateVariableNames[88]=
"pzVtxBachelorGood";
3189 fCandidateVariableNames[89]=
"pxVtxV0";
3190 fCandidateVariableNames[90]=
"pyVtxV0";
3191 fCandidateVariableNames[91]=
"pzVtxV0";
3192 fCandidateVariableNames[92]=
"xPvtx";
3193 fCandidateVariableNames[93]=
"yPvtx";
3194 fCandidateVariableNames[94]=
"zPvtx";
3210 fCEvents =
new TH1F(
"fCEvents",
"conter",19,0,19);
3212 fCEvents->GetXaxis()->SetBinLabel(1,
"X1");
3213 fCEvents->GetXaxis()->SetBinLabel(2,
"Analyzed events");
3214 fCEvents->GetXaxis()->SetBinLabel(3,
"AliAODVertex exists");
3215 fCEvents->GetXaxis()->SetBinLabel(4,
"CascadesHF exists");
3216 fCEvents->GetXaxis()->SetBinLabel(5,
"MCarray exists");
3217 fCEvents->GetXaxis()->SetBinLabel(6,
"MCheader exists");
3218 fCEvents->GetXaxis()->SetBinLabel(7,
"GetNContributors()>0");
3219 fCEvents->GetXaxis()->SetBinLabel(8,
"IsEventSelected");
3220 fCEvents->GetXaxis()->SetBinLabel(9,
"triggerClass!=CINT1");
3221 fCEvents->GetXaxis()->SetBinLabel(10,
"triggerMask!=kAnyINT");
3222 fCEvents->GetXaxis()->SetBinLabel(11,
"triggerMask!=kAny");
3223 fCEvents->GetXaxis()->SetBinLabel(12,
"vtxTitle.Contains(Z)");
3224 fCEvents->GetXaxis()->SetBinLabel(13,
"vtxTitle.Contains(3D)");
3225 fCEvents->GetXaxis()->SetBinLabel(14,
"vtxTitle.Doesn'tContain(Z-3D)");
3227 fCEvents->GetXaxis()->SetBinLabel(16,
"!IsEventSelected");
3228 fCEvents->GetXaxis()->SetBinLabel(17,
"triggerMask!=kAnyINT || triggerClass!=CINT1");
3230 fCEvents->GetXaxis()->SetBinLabel(19,
"Re-Fill Fail");
3232 fCEvents->GetYaxis()->SetTitle(
"counts");
3238 fillthis=
"histMcStatLc";
3239 TH1F* mcStatisticLc =
new TH1F(fillthis.Data(),
"#Lambda_{c} generated and their decays",21,-10.5,10.5);
3245 fillthis=
"histoprotonBachSigmaVspTOF";
3246 TH2F *hprotonBachSigmaVspTOF=
new TH2F(fillthis.Data(),fillthis.Data(),300,0.,30.,100,-5.,5.);
3249 fOutput->Add(hprotonBachSigmaVspTOF);
3253 fillthis=
"histoprotonBachSigmaVspTPC";
3254 TH2F *hprotonBachSigmaVspTPC=
new TH2F(fillthis.Data(),fillthis.Data(),300,0.,30.,100,-5.,5.);
3257 fOutput->Add(hprotonBachSigmaVspTPC);
3263 fillthis=
"histoprotonBachSigmaVspTOFsgn";
3264 TH2F *hprotonBachSigmaVspTOFsgn=
new TH2F(fillthis.Data(),fillthis.Data(),300,0.,30.,100,-5.,5.);
3267 fOutput->Add(hprotonBachSigmaVspTOFsgn);
3271 fillthis=
"histoprotonBachSigmaVspTPCsgn";
3272 TH2F *hprotonBachSigmaVspTPCsgn=
new TH2F(fillthis.Data(),fillthis.Data(),300,0.,30.,100,-5.,5.);
3275 fOutput->Add(hprotonBachSigmaVspTPCsgn);
3280 fillthis=
"histoprotonBachSigmaVspTOFbkg";
3281 TH2F *hprotonBachSigmaVspTOFbkg=
new TH2F(fillthis.Data(),fillthis.Data(),300,0.,30.,100,-5.,5.);
3284 fOutput->Add(hprotonBachSigmaVspTOFbkg);
3288 fillthis=
"histoprotonBachSigmaVspTPCbkg";
3289 TH2F *hprotonBachSigmaVspTPCbkg=
new TH2F(fillthis.Data(),fillthis.Data(),300,0.,30.,100,-5.,5.);
3292 fOutput->Add(hprotonBachSigmaVspTPCbkg);
3298 TH1F *hZ2 =
new TH1F(
"hZ2",
"",100,-50.,50.);
3300 TH1F *hZ3 =
new TH1F(
"hZ3",
"",100,-50.,50.);
3302 TH1F *hZ4 =
new TH1F(
"hZ4",
"",100,-50.,50.);
3304 TH1F *hZ5 =
new TH1F(
"hZ5",
"",100,-50.,50.);
3306 TH1F *hZ6 =
new TH1F(
"hZ6",
"",100,-50.,50.);
3308 TH1F *hZ7 =
new TH1F(
"hZ7",
"",100,-50.,50.);
3310 TH1F *hZ8 =
new TH1F(
"hZ8",
"",100,-50.,50.);
3312 TH1F *hZ9 =
new TH1F(
"hZ9",
"",100,-50.,50.);
3314 TH1F *hZ10 =
new TH1F(
"hZ10",
"",100,-50.,50.);
3316 TH1F *hZ11 =
new TH1F(
"hZ11",
"",100,-50.,50.);
3318 TH1F *hZ12 =
new TH1F(
"hZ12",
"",100,-50.,50.);
3320 TH1F *hZ13 =
new TH1F(
"hZ13",
"",100,-50.,50.);
3322 TH1F *hZ14 =
new TH1F(
"hZ14",
"",100,-50.,50.);
3324 TH1F *hZ15 =
new TH1F(
"hZ15",
"",100,-50.,50.);
3326 TH1F *hZ16 =
new TH1F(
"hZ16",
"",100,-50.,50.);
3330 TH1F *hCandidateSelection =
new TH1F(
"hCandidateSelection",
"",10,-0.5,9.5);
3331 hCandidateSelection->GetXaxis()->SetBinLabel(1,
"IsEventSelected");
3332 hCandidateSelection->GetXaxis()->SetBinLabel(2,
"IsSecondaryVtx");
3333 hCandidateSelection->GetXaxis()->SetBinLabel(3,
"V0toPosNeg");
3334 hCandidateSelection->GetXaxis()->SetBinLabel(4,
"offlineV0");
3335 hCandidateSelection->GetXaxis()->SetBinLabel(5,
"isInFiducialAcceptance");
3336 hCandidateSelection->GetXaxis()->SetBinLabel(6,
"analCuts::kTracks");
3337 hCandidateSelection->GetXaxis()->SetBinLabel(7,
"analCuts::kCandidateNoPID");
3338 hCandidateSelection->GetXaxis()->SetBinLabel(8,
"analCuts::kPID");
3339 hCandidateSelection->GetXaxis()->SetBinLabel(9,
"analCuts::kCandidateWithPID");
3340 hCandidateSelection->GetXaxis()->SetBinLabel(10,
"analCuts::kAll");
3341 fOutput->Add(hCandidateSelection);
3343 TH1F *hEventsWithCandidates =
new TH1F(
"hEventsWithCandidates",
"conter",11,5.5,16.5);
3344 hEventsWithCandidates->GetXaxis()->SetBinLabel(1,
"GetNContributors()>0");
3345 hEventsWithCandidates->GetXaxis()->SetBinLabel(2,
"IsEventSelected");
3346 hEventsWithCandidates->GetXaxis()->SetBinLabel(3,
"triggerClass!=CINT1");
3347 hEventsWithCandidates->GetXaxis()->SetBinLabel(4,
"triggerMask!=kAnyINT");
3348 hEventsWithCandidates->GetXaxis()->SetBinLabel(5,
"triggerMask!=kAny");
3349 hEventsWithCandidates->GetXaxis()->SetBinLabel(6,
"vtxTitle.Contains(Z)");
3350 hEventsWithCandidates->GetXaxis()->SetBinLabel(7,
"vtxTitle.Contains(3D)");
3351 hEventsWithCandidates->GetXaxis()->SetBinLabel(8,
"vtxTitle.Doesn'tContain(Z-3D)");
3352 hEventsWithCandidates->GetXaxis()->SetBinLabel(9,Form(
"zVtx<=%2.0fcm",
fAnalCuts->
GetMaxVtxZ()));
3353 hEventsWithCandidates->GetXaxis()->SetBinLabel(10,
"!IsEventSelected");
3354 hEventsWithCandidates->GetXaxis()->SetBinLabel(11,
"triggerMask!=kAnyINT || triggerClass!=CINT1");
3355 fOutput->Add(hEventsWithCandidates);
3359 TH1F *hZ6a =
new TH1F(
"hZ6a",
"",100,-50.,50.);
3361 TH1F *hZ7a =
new TH1F(
"hZ7a",
"",100,-50.,50.);
3363 TH1F *hZ8a =
new TH1F(
"hZ8a",
"",100,-50.,50.);
3365 TH1F *hZ9a =
new TH1F(
"hZ9a",
"",100,-50.,50.);
3367 TH1F *hZ10a =
new TH1F(
"hZ10a",
"",100,-50.,50.);
3369 TH1F *hZ11a =
new TH1F(
"hZ11a",
"",100,-50.,50.);
3371 TH1F *hZ12a =
new TH1F(
"hZ12a",
"",100,-50.,50.);
3373 TH1F *hZ13a =
new TH1F(
"hZ13a",
"",100,-50.,50.);
3375 TH1F *hZ14a =
new TH1F(
"hZ14a",
"",100,-50.,50.);
3377 TH1F *hZ15a =
new TH1F(
"hZ15a",
"",100,-50.,50.);
3379 TH1F *hZ16a =
new TH1F(
"hZ16a",
"",100,-50.,50.);
3383 TH1F *hSwitchOnCandidates1 =
new TH1F(
"hSwitchOnCandidates1",
"",15,-7.5,7.5);
3384 fOutput->Add(hSwitchOnCandidates1);
3385 TH1F *hSwitchOnCandidates2 =
new TH1F(
"hSwitchOnCandidates2",
"",15,-7.5,7.5);
3386 fOutput->Add(hSwitchOnCandidates2);
3387 TH1F *hSwitchOnCandidates3 =
new TH1F(
"hSwitchOnCandidates3",
"",15,-7.5,7.5);
3388 fOutput->Add(hSwitchOnCandidates3);
3389 TH1F *hSwitchOnCandidates4 =
new TH1F(
"hSwitchOnCandidates4",
"",15,-7.5,7.5);
3390 fOutput->Add(hSwitchOnCandidates4);
3411 AliAODTrack *bachelor = (AliAODTrack*)part->
GetBachelor();
3415 AliAODv0 *v0part = (AliAODv0*)part->
Getv0();
3419 Double_t invmassK0S = v0part->MassK0Short();
3426 if (!appendthis.Contains(
"SgnC") && !appendthis.Contains(
"SgnB") && !appendthis.Contains(
"SgnNoQ")) {
3427 fillthis=
"histpK0Svsp"+appendthis;
3430 ((
TH2F*)(
fOutputAll->FindObject(fillthis)))->Fill(momBach,momK0S);
3431 if (isBachelorID) ((
TH2F*)(
fOutputPIDBach->FindObject(fillthis)))->Fill(momBach,momK0S);
3435 fillthis=
"histLcMassByK0S"+appendthis;
3438 ((
TH2F*)(
fOutputAll->FindObject(fillthis)))->Fill(invmassLc,lambdacpt);
3439 if (isBachelorID)((
TH2F*)(
fOutputPIDBach->FindObject(fillthis)))->Fill(invmassLc,lambdacpt);
3442 if (!appendthis.Contains(
"SgnC") && !appendthis.Contains(
"SgnB") && !appendthis.Contains(
"SgnNoQ")) {
3443 fillthis=
"histK0SMass"+appendthis;
3447 ((
TH2F*)(
fOutputAll->FindObject(fillthis)))->Fill(lambdacpt,invmassK0S);
3448 if (isBachelorID) ((
TH2F*)(
fOutputPIDBach->FindObject(fillthis)))->Fill(lambdacpt,invmassK0S);
3453 fillthis=
"histptK0S"+appendthis;
3457 ((
TH2F*)(
fOutputAll->FindObject(fillthis)))->Fill(lambdacpt,ptK0S);
3458 if (isBachelorID)((
TH2F*)(
fOutputPIDBach->FindObject(fillthis)))->Fill(lambdacpt,ptK0S);
3461 fillthis=
"histptP"+appendthis;
3465 ((
TH2F*)(
fOutputAll->FindObject(fillthis)))->Fill(lambdacpt,ptBach);
3466 if (isBachelorID)((
TH2F*)(
fOutputPIDBach->FindObject(fillthis)))->Fill(lambdacpt,ptBach);
3469 fillthis=
"histptPip"+appendthis;
3473 ((
TH2F*)(
fOutputAll->FindObject(fillthis)))->Fill(lambdacpt,ptV0pos);
3474 if (isBachelorID)((
TH2F*)(
fOutputPIDBach->FindObject(fillthis)))->Fill(lambdacpt,ptV0pos);
3477 fillthis=
"histptPim"+appendthis;
3481 ((
TH2F*)(
fOutputAll->FindObject(fillthis)))->Fill(lambdacpt,ptV0neg);
3482 if (isBachelorID)((
TH2F*)(
fOutputPIDBach->FindObject(fillthis)))->Fill(lambdacpt,ptV0neg);
3485 if (!appendthis.Contains(
"SgnC") && !appendthis.Contains(
"SgnB") && !appendthis.Contains(
"SgnNoQ")) {
3486 fillthis=
"histLambdaMass"+appendthis;
3490 ((
TH2F*)(
fOutputAll->FindObject(fillthis)))->Fill(lambdacpt,v0part->MassLambda());
3491 if (isBachelorID)((
TH2F*)(
fOutputPIDBach->FindObject(fillthis)))->Fill(lambdacpt,v0part->MassLambda());
3494 fillthis=
"histLambdaBarMass"+appendthis;
3498 ((
TH2F*)(
fOutputAll->FindObject(fillthis)))->Fill(lambdacpt,v0part->MassAntiLambda());
3499 if (isBachelorID)((
TH2F*)(
fOutputPIDBach->FindObject(fillthis)))->Fill(lambdacpt,v0part->MassAntiLambda());
3502 fillthis=
"histGammaMass"+appendthis;
3506 ((
TH2F*)(
fOutputAll->FindObject(fillthis)))->Fill(lambdacpt,v0part->InvMass2Prongs(0,1,11,11));
3507 if (isBachelorID)((
TH2F*)(
fOutputPIDBach->FindObject(fillthis)))->Fill(lambdacpt,v0part->InvMass2Prongs(0,1,11,11));
3511 fillthis=
"histD0K0S"+appendthis;
3515 ((
TH2F*)(
fOutputAll->FindObject(fillthis)))->Fill(lambdacpt,part->Getd0Prong(1));
3516 if (isBachelorID)((
TH2F*)(
fOutputPIDBach->FindObject(fillthis)))->Fill(lambdacpt,part->Getd0Prong(1));
3519 fillthis=
"histD0P"+appendthis;
3523 ((
TH2F*)(
fOutputAll->FindObject(fillthis)))->Fill(lambdacpt,part->Getd0Prong(0));
3524 if (isBachelorID)((
TH2F*)(
fOutputPIDBach->FindObject(fillthis)))->Fill(lambdacpt,part->Getd0Prong(0));
3527 fillthis=
"histCosPAK0S"+appendthis;
3551 bachelor->PxPyPz(pxpypz);
3552 bachelor->XvYvZv(xyz);
3553 bachelor->GetCovarianceXYZPxPyPz(cv);
3554 sign=bachelor->Charge();
3555 AliExternalTrackParam *t =
new AliExternalTrackParam(xyz,pxpypz,cv,sign);
3557 Double_t alpha=t->GetAlpha(), cs1=TMath::Cos(alpha), sn1=TMath::Sin(alpha);
3561 Double_t x1=xyz[0], y1=xyz[1], z1=xyz[2];
3562 Double_t px1=pxpypz[0], py1=pxpypz[1], pz1=pxpypz[2];
3566 y2=v->DecayVertexV0Y(),
3567 z2=v->DecayVertexV0Z();
3595 Double_t dd=
Det(x2-x1,y2-y1,z2-z1,px1,py1,pz1,px2,py2,pz2);
3600 Double_t dca=TMath::Abs(dd)/TMath::Sqrt(ax*ax + ay*ay + az*az);
3603 Double_t t1 =
Det(x2-x1,y2-y1,z2-z1,px2,py2,pz2,ax,ay,az)/
3604 Det(px1,py1,pz1,px2,py2,pz2,ax,ay,az);
3605 x1 += px1*t1; y1 += py1*t1; z1 += pz1*t1;
3609 if (!t->PropagateTo(rho1,b)) {
3610 Error(
"PropagateToDCA",
"Propagation failed !");
3615 Double_t pBachelorDCA[3]; t->GetPxPyPz(pBachelorDCA);
3616 pxVtxBachelor=pBachelorDCA[0], pyVtxBachelor=pBachelorDCA[1], pzVtxBachelor=pBachelorDCA[2];
3621 Double_t t2 =
Det(x1-x2,y1-y2,z1-z2,px1,py1,pz1,ax,ay,az)/
3622 Det(px2,py2,pz2,px1,py1,pz1,ax,ay,az);
3623 x2 += px2*t2; y2 += py2*t2; z2 += pz2*t2;
3627 xVtxLc = 0.5*(x1+x2);
3628 yVtxLc = 0.5*(y1+y2);
3629 zVtxLc = 0.5*(z1+z2);
3644 const double kSafe = 1e-5;
3645 Double_t radPos2 = xyz[0]*xyz[0]+xyz[1]*xyz[1];
3647 if (radPos2 < radMax*radMax) {
3648 alpha = TMath::ATan2(pxpypz[1],pxpypz[0]);
3650 Float_t phiPos = TMath::Pi()+TMath::ATan2(-xyz[1], -xyz[0]);
3652 TMath::DegToRad()*(20*((((
Int_t)(phiPos*TMath::RadToDeg()))/20))+10);
3655 Double_t cs=TMath::Cos(alpha), sn=TMath::Sin(alpha);
3657 if (TMath::Abs(sn)<2*kSafe) {
3658 if (alpha>0) alpha += alpha< TMath::Pi()/2. ? 2*kSafe : -2*kSafe;
3659 else alpha += alpha>-TMath::Pi()/2. ? -2*kSafe : 2*kSafe;
3660 cs=TMath::Cos(alpha);
3661 sn=TMath::Sin(alpha);
3663 else if (TMath::Abs(cs)<2*kSafe) {
3664 if (alpha>0) alpha += alpha> TMath::Pi()/2. ? 2*kSafe : -2*kSafe;
3665 else alpha += alpha>-TMath::Pi()/2. ? 2*kSafe : -2*kSafe;
3666 cs=TMath::Cos(alpha);
3667 sn=TMath::Sin(alpha);
3681 return a00*a11 - a01*a10;
3692 return a00*
Det(a11,a12,a21,a22)-a01*
Det(a10,a12,a20,a22)+a02*
Det(a10,a11,a20,a21);
3697 TClonesArray *mcArray)
3705 AliAODv0 *theV0 =
dynamic_cast<AliAODv0*
>(candidate->
Getv0());
3706 AliVTrack *trk =
dynamic_cast<AliVTrack*
>(candidate->
GetBachelor());
3707 if (!trk || !theV0)
return -1;
3709 if (trk->GetLabel()==-1)
return -1;
3710 Int_t bachLabels = TMath::Abs(trk->GetLabel());
3711 AliAODMCParticle*bachelorMC =
dynamic_cast<AliAODMCParticle*
>(mcArray->At(bachLabels));
3712 if (!bachelorMC)
return -1;
3713 if (TMath::Abs(bachelorMC->GetPdgCode())!=2212)
return -1;
3714 Int_t indexMotherBach = bachelorMC->GetMother();
3715 if (indexMotherBach==-1)
return -1;
3717 Int_t pdgDg2prong[2] = {211,211};
3718 Int_t lab2Prong = theV0->MatchToMC(310,mcArray,2,pdgDg2prong);
3719 if(lab2Prong<0)
return -1;
3720 AliAODMCParticle*partK0S =
dynamic_cast<AliAODMCParticle*
>(mcArray->At(lab2Prong));
3721 if (!partK0S)
return -1;
3722 Int_t indexMotherK0S = partK0S->GetMother();
3723 if (indexMotherK0S==-1)
return -1;
3724 AliAODMCParticle*partK0 =
dynamic_cast<AliAODMCParticle*
>(mcArray->At(indexMotherK0S));
3725 if (!partK0)
return -1;
3726 Int_t indexMotherK0 = partK0->GetMother();
3727 if (indexMotherK0==-1)
return -1;
3729 if (indexMotherBach!=indexMotherK0)
return -1;
3731 AliAODMCParticle*partLc =
dynamic_cast<AliAODMCParticle*
>(mcArray->At(indexMotherK0));
3732 if (!partLc)
return -1;
3733 Int_t ndg2 = partLc->GetDaughter(1)-partLc->GetDaughter(0)+1;
3734 if (ndg2==2)
return -1;
3736 TString stringaCheck = Form(
">>>>>>>> %d -> ",partLc->GetPdgCode());
3737 for(
Int_t ii=0; ii<ndg2; ii++) {
3738 AliAODMCParticle* partDau=(AliAODMCParticle*)(mcArray->At(partLc->GetDaughter(0)+ii));
3739 stringaCheck.Append(Form(
" %d",partDau->GetPdgCode()));
3743 return indexMotherBach;
3757 Int_t lab=-1,labMother=-1,pdgMother=0;
3758 AliAODMCParticle *part=0;
3759 AliAODMCParticle *mother=0;
3763 for(
Int_t i=0; i<ndg; i++) labelMother[i] =
new TArrayI(0);
3764 for(
Int_t i=0; i<ndg; i++) {
3765 lab = TMath::Abs(dgLabels[i]);
3767 AliDebug(2,Form(
"daughter with negative label %d",lab));
3768 delete [] labelMother;
3771 part = (AliAODMCParticle*)mcArray->At(lab);
3773 AliDebug(2,
"no MC particle");
3774 delete [] labelMother;
3779 while(mother->GetMother()>=0) {
3780 labMother=mother->GetMother();
3781 mother = (AliAODMCParticle*)mcArray->At(labMother);
3783 AliDebug(2,
"no MC mother particle");
3786 pdgMother = TMath::Abs(mother->GetPdgCode());
3787 if (pdgMother<10 || (pdgMother>18 && pdgMother<111)) {
3790 labelMother[i]->Set(labelMother[i]->GetSize()+1);
3791 labelMother[i]->AddAt(labMother,labelMother[i]->GetSize()-1);
3798 for(
Int_t i=0; i<ndg; i++) {
3799 AliAODMCParticle*part0 = (AliAODMCParticle*)mcArray->At(TMath::Abs(dgLabels[i]));
3800 stringaCheck.Append(Form(
"part[%d]->GetLabel()=%d(%d) | ",i,dgLabels[i],part0->GetPdgCode()));
3801 stringaCheck.Append(Form(
"labelMother[%d] = ",i));
3802 for (
Int_t jj=0;jj<labelMother[i]->GetSize(); jj++)
3803 stringaCheck.Append(Form(
"%d, ",labelMother[i]->At(jj)));
3805 AliDebug(2,Form(
"%s \n",stringaCheck.Data()));
3806 Int_t pdgToBeReturned=0;
3810 pdgDg =
new Int_t[ndgCk];
3811 for (
Int_t index=1; index<ndg; index++) {
3813 for (
Int_t jj=0;jj<labelMother[index]->GetSize(); jj++) {
3814 for (
Int_t ii=0;ii<labelMother[0]->GetSize(); ii++) {
3815 if (labelMother[0]->At(ii)==labelMother[index]->At(jj) &&
3816 labelMother[0]->At(ii)!=0 && labelMother[0]->At(ii)!=1 && !found) {
3817 mother = (AliAODMCParticle*)mcArray->At(labelMother[0]->At(ii));
3818 pdgToBeReturned=mother->GetPdgCode();
3819 absLabelMother=labelMother[0]->At(ii);
3820 AliDebug(2,Form(
"FOUND label for the mother of this candidate: %d (PDG=%d)\n",labelMother[0]->At(ii),pdgToBeReturned));
3822 nDauCand=mother->GetNDaughters();
3824 AliAODMCParticle *partMC = (AliAODMCParticle*)mcArray->At(dgLabels[0]);
3825 pdgDg[0]=partMC->GetPdgCode();
3826 partMC = (AliAODMCParticle*)mcArray->At(dgLabels[index]);
3827 pdgDg[index]=partMC->GetPdgCode();
3828 if (index==1) stringaCheck2.Append(Form(
"found daughters -> %d(%d)",dgLabels[0],pdgDg[0]));
3829 stringaCheck2.Append(Form(
" %d(%d)",dgLabels[index],pdgDg[index]));
3836 stringaCheck2.Prepend(Form(
"Ecco quanto trovato: %d(%d) with %d daughters; ",absLabelMother,pdgToBeReturned,nDauCand));
3837 AliDebug(2,Form(
"%s \n",stringaCheck2.Data()));
3839 delete [] labelMother;
3842 return pdgToBeReturned;
3851 Double_t px[2]={partCopy->PxProng(0),partCopy->PxProng(1)};
3852 Double_t py[2]={partCopy->PyProng(0),partCopy->PyProng(1)};
3853 Double_t pz[2]={partCopy->PzProng(0),partCopy->PzProng(1)};
3857 UInt_t pdgLc2pK0S[2]={2212,310};
3858 Double_t minv2 = partCopy->InvMass2(2,pdgLc2pK0S);
3860 Double_t rapid = partCopy->Y(pdgD);
3865 fillthis=
"hMassVsPtVsY"+appendthis;
3869 fillthis=
"phiVSthetaVSpt"+appendthis;
3884 px[0]=tmpx*TMath::Cos(phirot)-tmpy*TMath::Sin(phirot);
3885 py[0]=tmpx*TMath::Sin(phirot)+tmpy*TMath::Cos(phirot);
3886 partCopy->SetPxPyPzProngs(2,px,py,pz);
3887 pt = partCopy->Pt();
3888 minv2 = partCopy->InvMass2(2,pdgLc2pK0S);
3889 massRot=TMath::Sqrt(minv2);
3890 rapid = partCopy->Y(pdgD);
3895 fillthis=
"histLcMassByK0S"+appendthis;
3899 fillthis=
"hMassVsPtVsYRot"+appendthis;
3903 fillthis=
"phiVSthetaVSptRot"+appendthis;
3907 fillthis=
"hDeltaMass"+appendthis;
3921 fillthis=
"histptK0S"+appendthis;
3925 ((
TH2F*)(
fOutputPIDBachTR->FindObject(fillthis)))->Fill(pt,TMath::Sqrt(px[1]*px[1]+py[1]*py[1]));
3928 fillthis=
"histptP"+appendthis;
3932 ((
TH2F*)(
fOutputPIDBachTR->FindObject(fillthis)))->Fill(pt,TMath::Sqrt(px[0]*px[0]+py[0]*py[0]));
3935 fillthis=
"histptPip"+appendthis;
3942 fillthis=
"histptPim"+appendthis;
3949 fillthis=
"histLambdaMass"+appendthis;
3956 fillthis=
"histLambdaBarMass"+appendthis;
3963 fillthis=
"histGammaMass"+appendthis;
3970 fillthis=
"histCosPAK0S"+appendthis;
3983 fillthis=
"hNormRotated"+appendthis;
4003 Double_t mLcPDG = TDatabasePDG::Instance()->GetParticle(4122)->Mass();
4004 Double_t mK0SPDG = TDatabasePDG::Instance()->GetParticle(310)->Mass();
4005 Double_t mMinLambdaPDG = TDatabasePDG::Instance()->GetParticle(2212)->Mass()+
4006 TDatabasePDG::Instance()->GetParticle(211)->Mass();
4008 TString nameHistoSgnC=
" ", nameHistoSgnB=
" ", nameHistoSgnNoQ=
" ";
4009 TString titleHistoSgnC=
" ", titleHistoSgnB=
" ", titleHistoSgnNoQ=
" ";
4028 binLimpTprong[ 0]= 0.0;
4029 binLimpTprong[ 1]= 0.1;
4030 binLimpTprong[ 2]= 0.2;
4031 binLimpTprong[ 3]= 0.3;
4032 binLimpTprong[ 4]= 0.4;
4033 binLimpTprong[ 5]= 0.5;
4034 binLimpTprong[ 6]= 0.6;
4035 binLimpTprong[ 7]= 0.7;
4036 binLimpTprong[ 8]= 0.8;
4037 binLimpTprong[ 9]= 0.9;
4038 binLimpTprong[10]= 1.0;
4039 binLimpTprong[11]= 1.2;
4040 binLimpTprong[12]= 1.4;
4041 binLimpTprong[13]= 1.6;
4042 binLimpTprong[14]= 1.8;
4043 binLimpTprong[15]= 2.0;
4044 binLimpTprong[16]= 2.2;
4045 binLimpTprong[17]= 2.4;
4046 binLimpTprong[18]= 2.6;
4047 binLimpTprong[19]= 2.8;
4048 binLimpTprong[20]= 3.0;
4049 binLimpTprong[21]= 3.5;
4050 binLimpTprong[22]= 4.0;
4051 binLimpTprong[23]= 4.5;
4052 binLimpTprong[24]= 5.0;
4053 binLimpTprong[25]= 5.5;
4054 binLimpTprong[26]= 6.0;
4055 binLimpTprong[27]= 6.5;
4056 binLimpTprong[28]= 7.0;
4057 binLimpTprong[29]= 7.5;
4058 binLimpTprong[30]= 8.0;
4059 binLimpTprong[31]= 9.0;
4060 binLimpTprong[32]=10.0;
4061 binLimpTprong[33]=11.0;
4062 binLimpTprong[34]=12.0;
4063 binLimpTprong[35]=13.0;
4064 binLimpTprong[36]=14.0;
4065 binLimpTprong[37]=15.0;
4066 binLimpTprong[38]=20.0;
4067 binLimpTprong[39]=25.0;
4068 binLimpTprong[40]=30.0;
4069 binLimpTprong[41]=35.0;
4073 nameHistoSgnC=
"histLcMassByK0SSgnC";
4074 nameHistoSgnB=
"histLcMassByK0SSgnB";
4075 nameHistoSgnNoQ=
"histLcMassByK0SSgnNoQ";
4076 titleHistoSgnC=
"#Lambda_{c} #leftarrow 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]";
4077 titleHistoSgnB=
"#Lambda_{c} #leftarrow b - 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]";
4078 titleHistoSgnNoQ=
"#Lambda_{c} #leftarrow no quark - 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]";
4079 TH2F* spectrumLcMassByK0SSgnC =
new TH2F(nameHistoSgnC.Data(),titleHistoSgnC.Data(),1000,mLcPDG-0.250,mLcPDG+0.250,11,binLimpTLc);
4080 TH2F* spectrumLcMassByK0SSgnB =
new TH2F(nameHistoSgnB.Data(),titleHistoSgnB.Data(),1000,mLcPDG-0.250,mLcPDG+0.250,11,binLimpTLc);
4081 TH2F* spectrumLcMassByK0SSgnNoQ =
new TH2F(nameHistoSgnNoQ.Data(),titleHistoSgnNoQ.Data(),1000,mLcPDG-0.250,mLcPDG+0.250,11,binLimpTLc);
4083 TH2F* allspectrumLcMassByK0SSgnC = (
TH2F*)spectrumLcMassByK0SSgnC->Clone();
4084 TH2F* allspectrumLcMassByK0SSgnB = (
TH2F*) spectrumLcMassByK0SSgnB->Clone();
4085 TH2F* allspectrumLcMassByK0SSgnNoQ = (
TH2F*) spectrumLcMassByK0SSgnNoQ->Clone();
4086 TH2F* pidBachspectrumLcMassByK0SSgnC = (
TH2F*)spectrumLcMassByK0SSgnC->Clone();
4087 TH2F* pidBachspectrumLcMassByK0SSgnB = (
TH2F*) spectrumLcMassByK0SSgnB->Clone();
4088 TH2F* pidBachspectrumLcMassByK0SSgnNoQ = (
TH2F*) spectrumLcMassByK0SSgnNoQ->Clone();
4092 fOutputAll->Add(allspectrumLcMassByK0SSgnNoQ);
4097 nameHistoSgnC=
"histptK0SSgnC";
4098 nameHistoSgnB=
"histptK0SSgnB";
4099 nameHistoSgnNoQ=
"histptK0SSgnNoQ";
4100 titleHistoSgnC=
"p_{T}(K^{0}_{S}) vs p_{T}(#Lambda_{c}); p_{T}(#Lambda_{c}) [GeV/c]; p_{T}(K^{0}_{S}) [GeV/c]; Entries";
4101 titleHistoSgnB=
"p_{T}(K^{0}_{S}) vs p_{T}(#Lambda_{c}); p_{T}(#Lambda_{c}) [GeV/c]; p_{T}(K^{0}_{S}) [GeV/c]; Entries";
4102 titleHistoSgnNoQ=
"p_{T}(K^{0}_{S}) vs p_{T}(#Lambda_{c}); p_{T}(#Lambda_{c}) [GeV/c]; p_{T}(K^{0}_{S}) [GeV/c]; Entries";
4103 TH2F* ptK0SSgnC =
new TH2F(nameHistoSgnC.Data(),titleHistoSgnC.Data(),11,binLimpTLc,41,binLimpTprong);
4104 TH2F* ptK0SSgnB =
new TH2F(nameHistoSgnB.Data(),titleHistoSgnB.Data(),11,binLimpTLc,41,binLimpTprong);
4105 TH2F* ptK0SSgnNoQ =
new TH2F(nameHistoSgnNoQ.Data(),titleHistoSgnNoQ.Data(),11,binLimpTLc,41,binLimpTprong);
4107 nameHistoSgnC=
"histptPSgnC";
4108 nameHistoSgnB=
"histptPSgnB";
4109 nameHistoSgnNoQ=
"histptPSgnNoQ";
4110 titleHistoSgnC=
"p_{T}(p) vs p_{T}(#Lambda_{c}); p_{T}(#Lambda_{c}) [GeV/c]; p_{T}(p) [GeV/c]; Entries";
4111 titleHistoSgnB=
"p_{T}(p) vs p_{T}(#Lambda_{c}); p_{T}(#Lambda_{c}) [GeV/c]; p_{T}(p) [GeV/c]; Entries";
4112 titleHistoSgnNoQ=
"p_{T}(p) vs p_{T}(#Lambda_{c}); p_{T}(#Lambda_{c}) [GeV/c]; p_{T}(p) [GeV/c]; Entries";
4113 TH2F* ptPSgnC =
new TH2F(nameHistoSgnC.Data(),titleHistoSgnC.Data(),11,binLimpTLc,41,binLimpTprong);
4114 TH2F* ptPSgnB =
new TH2F(nameHistoSgnB.Data(),titleHistoSgnB.Data(),11,binLimpTLc,41,binLimpTprong);
4115 TH2F* ptPSgnNoQ =
new TH2F(nameHistoSgnNoQ.Data(),titleHistoSgnNoQ.Data(),11,binLimpTLc,41,binLimpTprong);
4117 nameHistoSgnC=
"histptPipSgnC";
4118 nameHistoSgnB=
"histptPipSgnB";
4119 nameHistoSgnNoQ=
"histptPipSgnNoQ";
4120 titleHistoSgnC=
"p_{T}(#pi^{+}) vs p_{T}(#Lambda_{c}); p_{T}(#Lambda_{c}) [GeV/c]; p_{T}(#pi^{+}) [GeV/c]; Entries";
4121 titleHistoSgnB=
"p_{T}(#pi^{+}) vs p_{T}(#Lambda_{c}); p_{T}(#Lambda_{c}) [GeV/c]; p_{T}(#pi^{+}) [GeV/c]; Entries";
4122 titleHistoSgnNoQ=
"p_{T}(#pi^{+}) vs p_{T}(#Lambda_{c}); p_{T}(#Lambda_{c}) [GeV/c]; p_{T}(#pi^{+}) [GeV/c]; Entries";
4123 TH2F* ptPiPSgnC =
new TH2F(nameHistoSgnC.Data(),titleHistoSgnC.Data(),11,binLimpTLc,41,binLimpTprong);
4124 TH2F* ptPiPSgnB =
new TH2F(nameHistoSgnB.Data(),titleHistoSgnB.Data(),11,binLimpTLc,41,binLimpTprong);
4125 TH2F* ptPiPSgnNoQ =
new TH2F(nameHistoSgnNoQ.Data(),titleHistoSgnB.Data(),11,binLimpTLc,41,binLimpTprong);
4127 nameHistoSgnC=
"histptPimSgnC";
4128 nameHistoSgnB=
"histptPimSgnB";
4129 nameHistoSgnNoQ=
"histptPimSgnNoQ";
4130 titleHistoSgnC=
"p_{T}(#pi^{-}) vs p_{T}(#Lambda_{c}); p_{T}(#Lambda_{c}) [GeV/c]; p_{T}(#pi^{-}) [GeV/c]; Entries";
4131 titleHistoSgnB=
"p_{T}(#pi^{-}) vs p_{T}(#Lambda_{c}); p_{T}(#Lambda_{c}) [GeV/c]; p_{T}(#pi^{-}) [GeV/c]; Entries";
4132 titleHistoSgnNoQ=
"p_{T}(#pi^{-}) vs p_{T}(#Lambda_{c}); p_{T}(#Lambda_{c}) [GeV/c]; p_{T}(#pi^{-}) [GeV/c]; Entries";
4133 TH2F* ptPiMSgnC =
new TH2F(nameHistoSgnC.Data(),titleHistoSgnC.Data(),11,binLimpTLc,41,binLimpTprong);
4134 TH2F* ptPiMSgnB =
new TH2F(nameHistoSgnB.Data(),titleHistoSgnB.Data(),11,binLimpTLc,41,binLimpTprong);
4135 TH2F* ptPiMSgnNoQ =
new TH2F(nameHistoSgnNoQ.Data(),titleHistoSgnB.Data(),11,binLimpTLc,41,binLimpTprong);
4137 nameHistoSgnC=
"histD0K0SSgnC";
4138 nameHistoSgnB=
"histD0K0SSgnB";
4139 nameHistoSgnNoQ=
"histD0K0SSgnNoQ";
4140 titleHistoSgnC=
"d_{0}(K^{0}_{S}) vs p_{T}(#Lambda_{c}); p_{T}(#Lambda_{c}) [GeV/c]; d_{0}(K^{0}_{S}) [#sigmas]; Entries";
4141 titleHistoSgnB=
"d_{0}(K^{0}_{S}) vs p_{T}(#Lambda_{c}); p_{T}(#Lambda_{c}) [GeV/c]; d_{0}(K^{0}_{S}) [#sigmas]; Entries";
4142 titleHistoSgnNoQ=
"d_{0}(K^{0}_{S}) vs p_{T}(#Lambda_{c}); p_{T}(#Lambda_{c}) [GeV/c]; d_{0}(K^{0}_{S}) [#sigmas]; Entries";
4143 TH2F* d0K0SSgnC =
new TH2F(nameHistoSgnC.Data(),titleHistoSgnC.Data(),11,binLimpTLc,1000,-1.,1.);
4144 TH2F* d0K0SSgnB =
new TH2F(nameHistoSgnB.Data(),titleHistoSgnB.Data(),11,binLimpTLc,1000,-1.,1.);
4145 TH2F* d0K0SSgnNoQ =
new TH2F(nameHistoSgnNoQ.Data(),titleHistoSgnNoQ.Data(),11,binLimpTLc,1000,-1.,1.);
4147 nameHistoSgnC=
"histD0PSgnC";
4148 nameHistoSgnB=
"histD0PSgnB";
4149 nameHistoSgnNoQ=
"histD0PSgnNoQ";
4150 titleHistoSgnC=
"d_{0}(p) vs p_{T}(#Lambda_{c}); p_{T}(#Lambda_{c}) [GeV/c]; d_{0}(p) [cm]; Entries";
4151 titleHistoSgnB=
"d_{0}(p) vs p_{T}(#Lambda_{c}); p_{T}(#Lambda_{c}) [GeV/c]; d_{0}(p) [cm]; Entries";
4152 titleHistoSgnNoQ=
"d_{0}(p) vs p_{T}(#Lambda_{c}); p_{T}(#Lambda_{c}) [GeV/c]; d_{0}(p) [cm]; Entries";
4153 TH2F* d0PSgnC =
new TH2F(nameHistoSgnC.Data(),titleHistoSgnC.Data(),11,binLimpTLc,1000,-1.,1.);
4154 TH2F* d0PSgnB =
new TH2F(nameHistoSgnB.Data(),titleHistoSgnB.Data(),11,binLimpTLc,1000,-1.,1.);
4155 TH2F* d0PSgnNoQ =
new TH2F(nameHistoSgnNoQ.Data(),titleHistoSgnNoQ.Data(),11,binLimpTLc,1000,-1.,1.);
4157 nameHistoSgnC=
"histCosPAK0SSgnC";
4158 nameHistoSgnB=
"histCosPAK0SSgnB";
4159 nameHistoSgnNoQ=
"histCosPAK0SSgnNoQ";
4160 titleHistoSgnC=
"K^{0}_{S} cosine of pointing angle wrt primary vertex vs p_{T}(#Lambda_{c}); p_{T}(#Lambda_{c}) [GeV/c]; cosine; Entries";
4161 titleHistoSgnB=
"K^{0}_{S} cosine of pointing angle wrt primary vertex vs p_{T}(#Lambda_{c}); p_{T}(#Lambda_{c}) [GeV/c]; cosine; Entries";
4162 titleHistoSgnNoQ=
"K^{0}_{S} cosine of pointing angle wrt primary vertex vs p_{T}(#Lambda_{c}); p_{T}(#Lambda_{c}) [GeV/c]; cosine; Entries";
4163 TH2F *cosPAK0SSgnC =
new TH2F(nameHistoSgnC.Data(),titleHistoSgnC.Data(),41,binLimpTprong,100,0.99,1.);
4164 TH2F *cosPAK0SSgnB =
new TH2F(nameHistoSgnB.Data(),titleHistoSgnB.Data(),41,binLimpTprong,100,0.99,1.);
4165 TH2F *cosPAK0SSgnNoQ =
new TH2F(nameHistoSgnNoQ.Data(),titleHistoSgnNoQ.Data(),41,binLimpTprong,100,0.99,1.);
4167 TH2F* allptK0SSgnC = (
TH2F*)ptK0SSgnC->Clone();
4168 TH2F* allptK0SSgnB = (
TH2F*)ptK0SSgnB->Clone();
4169 TH2F* allptK0SSgnNoQ = (
TH2F*)ptK0SSgnNoQ->Clone();
4170 TH2F* allptPSgnC = (
TH2F*)ptPSgnC->Clone();
4171 TH2F* allptPSgnB = (
TH2F*)ptPSgnB->Clone();
4172 TH2F* allptPSgnNoQ = (
TH2F*)ptPSgnNoQ->Clone();
4173 TH2F* allptPiPSgnC = (
TH2F*)ptPiPSgnC->Clone();
4174 TH2F* allptPiPSgnB = (
TH2F*)ptPiPSgnB->Clone();
4175 TH2F* allptPiPSgnNoQ = (
TH2F*)ptPiPSgnNoQ->Clone();
4176 TH2F* allptPiMSgnC = (
TH2F*)ptPiMSgnC->Clone();
4177 TH2F* allptPiMSgnB = (
TH2F*)ptPiMSgnB->Clone();
4178 TH2F* allptPiMSgnNoQ = (
TH2F*)ptPiMSgnNoQ->Clone();
4179 TH2F* alld0K0SSgnC = (
TH2F*)d0K0SSgnC->Clone();
4180 TH2F* alld0K0SSgnB = (
TH2F*)d0K0SSgnB->Clone();
4181 TH2F* alld0K0SSgnNoQ = (
TH2F*)d0K0SSgnNoQ->Clone();
4182 TH2F* alld0PSgnC = (
TH2F*)d0PSgnC->Clone();
4183 TH2F* alld0PSgnB = (
TH2F*)d0PSgnB->Clone();
4184 TH2F* alld0PSgnNoQ = (
TH2F*)d0PSgnNoQ->Clone();
4185 TH2F* allcosPAK0SSgnC = (
TH2F*)cosPAK0SSgnC->Clone();
4186 TH2F* allcosPAK0SSgnB = (
TH2F*)cosPAK0SSgnB->Clone();
4187 TH2F* allcosPAK0SSgnNoQ = (
TH2F*)cosPAK0SSgnNoQ->Clone();
4189 TH2F* pidptK0SSgnC = (
TH2F*)ptK0SSgnC->Clone();
4190 TH2F* pidptK0SSgnB = (
TH2F*)ptK0SSgnB->Clone();
4191 TH2F* pidptK0SSgnNoQ = (
TH2F*)ptK0SSgnNoQ->Clone();
4192 TH2F* pidptPSgnC = (
TH2F*)ptPSgnC->Clone();
4193 TH2F* pidptPSgnB = (
TH2F*)ptPSgnB->Clone();
4194 TH2F* pidptPSgnNoQ = (
TH2F*)ptPSgnNoQ->Clone();
4195 TH2F* pidptPiPSgnC = (
TH2F*)ptPiPSgnC->Clone();
4196 TH2F* pidptPiPSgnB = (
TH2F*)ptPiPSgnB->Clone();
4197 TH2F* pidptPiPSgnNoQ = (
TH2F*)ptPiPSgnNoQ->Clone();
4198 TH2F* pidptPiMSgnC = (
TH2F*)ptPiMSgnC->Clone();
4199 TH2F* pidptPiMSgnB = (
TH2F*)ptPiMSgnB->Clone();
4200 TH2F* pidptPiMSgnNoQ = (
TH2F*)ptPiMSgnNoQ->Clone();
4201 TH2F* pidd0K0SSgnC = (
TH2F*)d0K0SSgnC->Clone();
4202 TH2F* pidd0K0SSgnB = (
TH2F*)d0K0SSgnB->Clone();
4203 TH2F* pidd0K0SSgnNoQ = (
TH2F*)d0K0SSgnNoQ->Clone();
4204 TH2F* pidd0PSgnC = (
TH2F*)d0PSgnC->Clone();
4205 TH2F* pidd0PSgnB = (
TH2F*)d0PSgnB->Clone();
4206 TH2F* pidd0PSgnNoQ = (
TH2F*)d0PSgnNoQ->Clone();
4207 TH2F* pidcosPAK0SSgnC = (
TH2F*)cosPAK0SSgnC->Clone();
4208 TH2F* pidcosPAK0SSgnB = (
TH2F*)cosPAK0SSgnB->Clone();
4209 TH2F* pidcosPAK0SSgnNoQ = (
TH2F*)cosPAK0SSgnNoQ->Clone();
4257 nameHistoSgnC=
"histLcMassByK0SOfflineSgnC";
4258 nameHistoSgnB=
"histLcMassByK0SOfflineSgnB";
4259 nameHistoSgnNoQ=
"histLcMassByK0SOfflineSgnNoQ";
4260 titleHistoSgnC=
"#Lambda_{c} #leftarrow 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]";
4261 titleHistoSgnB=
"#Lambda_{c} #leftarrow b - 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]";
4262 titleHistoSgnNoQ=
"#Lambda_{c} #leftarrow no quark - 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]";
4263 TH2F* spectrumLcMassOfflineByK0SSgnC =
new TH2F(nameHistoSgnC.Data(),titleHistoSgnC.Data(),1000,mLcPDG-0.250,mLcPDG+0.250,11,binLimpTLc);
4264 TH2F* spectrumLcMassOfflineByK0SSgnB =
new TH2F(nameHistoSgnB.Data(),titleHistoSgnB.Data(),1000,mLcPDG-0.250,mLcPDG+0.250,11,binLimpTLc);
4265 TH2F* spectrumLcMassOfflineByK0SSgnNoQ =
new TH2F(nameHistoSgnNoQ.Data(),titleHistoSgnNoQ.Data(),1000,mLcPDG-0.250,mLcPDG+0.250,11,binLimpTLc);
4267 TH2F* allspectrumLcMassOfflineByK0SSgnC = (
TH2F*)spectrumLcMassOfflineByK0SSgnC->Clone();
4268 TH2F* allspectrumLcMassOfflineByK0SSgnB = (
TH2F*) spectrumLcMassOfflineByK0SSgnB->Clone();
4269 TH2F* allspectrumLcMassOfflineByK0SSgnNoQ = (
TH2F*) spectrumLcMassOfflineByK0SSgnNoQ->Clone();
4270 TH2F* pidBachspectrumLcMassOfflineByK0SSgnC = (
TH2F*)spectrumLcMassOfflineByK0SSgnC->Clone();
4271 TH2F* pidBachspectrumLcMassOfflineByK0SSgnB = (
TH2F*) spectrumLcMassOfflineByK0SSgnB->Clone();
4272 TH2F* pidBachspectrumLcMassOfflineByK0SSgnNoQ = (
TH2F*) spectrumLcMassOfflineByK0SSgnNoQ->Clone();
4273 fOutputAll->Add(allspectrumLcMassOfflineByK0SSgnC);
4274 fOutputAll->Add(allspectrumLcMassOfflineByK0SSgnB);
4275 fOutputAll->Add(allspectrumLcMassOfflineByK0SSgnNoQ);
4280 nameHistoSgnC=
"histptK0SOfflineSgnC";
4281 nameHistoSgnB=
"histptK0SOfflineSgnB";
4282 nameHistoSgnNoQ=
"histptK0SOfflineSgnNoQ";
4283 titleHistoSgnC=
"p_{T}(K^{0}_{S}) vs p_{T}(#Lambda_{c}); p_{T}(#Lambda_{c}) [GeV/c]; p_{T}(K^{0}_{S}) [GeV/c]; Entries";
4284 titleHistoSgnB=
"p_{T}(K^{0}_{S}) vs p_{T}(#Lambda_{c}); p_{T}(#Lambda_{c}) [GeV/c]; p_{T}(K^{0}_{S}) [GeV/c]; Entries";
4285 titleHistoSgnNoQ=
"p_{T}(K^{0}_{S}) vs p_{T}(#Lambda_{c}); p_{T}(#Lambda_{c}) [GeV/c]; p_{T}(K^{0}_{S}) [GeV/c]; Entries";
4286 TH2F* ptK0SOfflineSgnC =
new TH2F(nameHistoSgnC.Data(),titleHistoSgnC.Data(),11,binLimpTLc,41,binLimpTprong);
4287 TH2F* ptK0SOfflineSgnB =
new TH2F(nameHistoSgnB.Data(),titleHistoSgnB.Data(),11,binLimpTLc,41,binLimpTprong);
4288 TH2F* ptK0SOfflineSgnNoQ =
new TH2F(nameHistoSgnNoQ.Data(),titleHistoSgnNoQ.Data(),11,binLimpTLc,41,binLimpTprong);
4290 nameHistoSgnC=
"histptPOfflineSgnC";
4291 nameHistoSgnB=
"histptPOfflineSgnB";
4292 nameHistoSgnNoQ=
"histptPOfflineSgnNoQ";
4293 titleHistoSgnC=
"p_{T}(p) vs p_{T}(#Lambda_{c}); p_{T}(#Lambda_{c}) [GeV/c]; p_{T}(p) [GeV/c]; Entries";
4294 titleHistoSgnB=
"p_{T}(p) vs p_{T}(#Lambda_{c}); p_{T}(#Lambda_{c}) [GeV/c]; p_{T}(p) [GeV/c]; Entries";
4295 titleHistoSgnNoQ=
"p_{T}(p) vs p_{T}(#Lambda_{c}); p_{T}(#Lambda_{c}) [GeV/c]; p_{T}(p) [GeV/c]; Entries";
4296 TH2F* ptPOfflineSgnC =
new TH2F(nameHistoSgnC.Data(),titleHistoSgnC.Data(),11,binLimpTLc,41,binLimpTprong);
4297 TH2F* ptPOfflineSgnB =
new TH2F(nameHistoSgnB.Data(),titleHistoSgnB.Data(),11,binLimpTLc,41,binLimpTprong);
4298 TH2F* ptPOfflineSgnNoQ =
new TH2F(nameHistoSgnNoQ.Data(),titleHistoSgnNoQ.Data(),11,binLimpTLc,41,binLimpTprong);
4300 nameHistoSgnC=
"histptPipOfflineSgnC";
4301 nameHistoSgnB=
"histptPipOfflineSgnB";
4302 nameHistoSgnNoQ=
"histptPipOfflineSgnNoQ";
4303 titleHistoSgnC=
"p_{T}(#pi^{+}) vs p_{T}(#Lambda_{c}); p_{T}(#Lambda_{c}) [GeV/c]; p_{T}(#pi^{+}) [GeV/c]; Entries";
4304 titleHistoSgnB=
"p_{T}(#pi^{+}) vs p_{T}(#Lambda_{c}); p_{T}(#Lambda_{c}) [GeV/c]; p_{T}(#pi^{+}) [GeV/c]; Entries";
4305 titleHistoSgnNoQ=
"p_{T}(#pi^{+}) vs p_{T}(#Lambda_{c}); p_{T}(#Lambda_{c}) [GeV/c]; p_{T}(#pi^{+}) [GeV/c]; Entries";
4306 TH2F* ptPiPOfflineSgnC =
new TH2F(nameHistoSgnC.Data(),titleHistoSgnC.Data(),11,binLimpTLc,41,binLimpTprong);
4307 TH2F* ptPiPOfflineSgnB =
new TH2F(nameHistoSgnB.Data(),titleHistoSgnB.Data(),11,binLimpTLc,41,binLimpTprong);
4308 TH2F* ptPiPOfflineSgnNoQ =
new TH2F(nameHistoSgnNoQ.Data(),titleHistoSgnB.Data(),11,binLimpTLc,41,binLimpTprong);
4310 nameHistoSgnC=
"histptPimOfflineSgnC";
4311 nameHistoSgnB=
"histptPimOfflineSgnB";
4312 nameHistoSgnNoQ=
"histptPimOfflineSgnNoQ";
4313 titleHistoSgnC=
"p_{T}(#pi^{-}) vs p_{T}(#Lambda_{c}); p_{T}(#Lambda_{c}) [GeV/c]; p_{T}(#pi^{-}) [GeV/c]; Entries";
4314 titleHistoSgnB=
"p_{T}(#pi^{-}) vs p_{T}(#Lambda_{c}); p_{T}(#Lambda_{c}) [GeV/c]; p_{T}(#pi^{-}) [GeV/c]; Entries";
4315 titleHistoSgnNoQ=
"p_{T}(#pi^{-}) vs p_{T}(#Lambda_{c}); p_{T}(#Lambda_{c}) [GeV/c]; p_{T}(#pi^{-}) [GeV/c]; Entries";
4316 TH2F* ptPiMOfflineSgnC =
new TH2F(nameHistoSgnC.Data(),titleHistoSgnC.Data(),11,binLimpTLc,41,binLimpTprong);
4317 TH2F* ptPiMOfflineSgnB =
new TH2F(nameHistoSgnB.Data(),titleHistoSgnB.Data(),11,binLimpTLc,41,binLimpTprong);
4318 TH2F* ptPiMOfflineSgnNoQ =
new TH2F(nameHistoSgnNoQ.Data(),titleHistoSgnB.Data(),11,binLimpTLc,41,binLimpTprong);
4320 nameHistoSgnC=
"histD0K0SOfflineSgnC";
4321 nameHistoSgnB=
"histD0K0SOfflineSgnB";
4322 nameHistoSgnNoQ=
"histD0K0SOfflineSgnNoQ";
4323 titleHistoSgnC=
"d_{0}(K^{0}_{S}) vs p_{T}(#Lambda_{c}); p_{T}(#Lambda_{c}) [GeV/c]; d_{0}(K^{0}_{S}) [#sigmas]; Entries";
4324 titleHistoSgnB=
"d_{0}(K^{0}_{S}) vs p_{T}(#Lambda_{c}); p_{T}(#Lambda_{c}) [GeV/c]; d_{0}(K^{0}_{S}) [#sigmas]; Entries";
4325 titleHistoSgnNoQ=
"d_{0}(K^{0}_{S}) vs p_{T}(#Lambda_{c}); p_{T}(#Lambda_{c}) [GeV/c]; d_{0}(K^{0}_{S}) [#sigmas]; Entries";
4326 TH2F* d0K0SOfflineSgnC =
new TH2F(nameHistoSgnC.Data(),titleHistoSgnC.Data(),11,binLimpTLc,1000,-1.,1.);
4327 TH2F* d0K0SOfflineSgnB =
new TH2F(nameHistoSgnB.Data(),titleHistoSgnB.Data(),11,binLimpTLc,1000,-1.,1.);
4328 TH2F* d0K0SOfflineSgnNoQ =
new TH2F(nameHistoSgnNoQ.Data(),titleHistoSgnNoQ.Data(),11,binLimpTLc,1000,-1.,1.);
4330 nameHistoSgnC=
"histD0POfflineSgnC";
4331 nameHistoSgnB=
"histD0POfflineSgnB";
4332 nameHistoSgnNoQ=
"histD0POfflineSgnNoQ";
4333 titleHistoSgnC=
"d_{0}(p) vs p_{T}(#Lambda_{c}); p_{T}(#Lambda_{c}) [GeV/c]; d_{0}(p) [cm]; Entries";
4334 titleHistoSgnB=
"d_{0}(p) vs p_{T}(#Lambda_{c}); p_{T}(#Lambda_{c}) [GeV/c]; d_{0}(p) [cm]; Entries";
4335 titleHistoSgnNoQ=
"d_{0}(p) vs p_{T}(#Lambda_{c}); p_{T}(#Lambda_{c}) [GeV/c]; d_{0}(p) [cm]; Entries";
4336 TH2F* d0POfflineSgnC =
new TH2F(nameHistoSgnC.Data(),titleHistoSgnC.Data(),11,binLimpTLc,1000,-1.,1.);
4337 TH2F* d0POfflineSgnB =
new TH2F(nameHistoSgnB.Data(),titleHistoSgnB.Data(),11,binLimpTLc,1000,-1.,1.);
4338 TH2F* d0POfflineSgnNoQ =
new TH2F(nameHistoSgnNoQ.Data(),titleHistoSgnNoQ.Data(),11,binLimpTLc,1000,-1.,1.);
4340 nameHistoSgnC=
"histCosPAK0SOfflineSgnC";
4341 nameHistoSgnB=
"histCosPAK0SOfflineSgnB";
4342 nameHistoSgnNoQ=
"histCosPAK0SOfflineSgnNoQ";
4343 titleHistoSgnC=
"K^{0}_{S} cosine of pointing angle wrt primary vertex vs p_{T}(#Lambda_{c}); p_{T}(#Lambda_{c}) [GeV/c]; cosine; Entries";
4344 titleHistoSgnB=
"K^{0}_{S} cosine of pointing angle wrt primary vertex vs p_{T}(#Lambda_{c}); p_{T}(#Lambda_{c}) [GeV/c]; cosine; Entries";
4345 titleHistoSgnNoQ=
"K^{0}_{S} cosine of pointing angle wrt primary vertex vs p_{T}(#Lambda_{c}); p_{T}(#Lambda_{c}) [GeV/c]; cosine; Entries";
4346 TH2F *cosPAK0SOfflineSgnC =
new TH2F(nameHistoSgnC.Data(),titleHistoSgnC.Data(),41,binLimpTprong,100,0.99,1.);
4347 TH2F *cosPAK0SOfflineSgnB =
new TH2F(nameHistoSgnB.Data(),titleHistoSgnB.Data(),41,binLimpTprong,100,0.99,1.);
4348 TH2F *cosPAK0SOfflineSgnNoQ =
new TH2F(nameHistoSgnNoQ.Data(),titleHistoSgnNoQ.Data(),41,binLimpTprong,100,0.99,1.);
4350 TH2F* allptK0SOfflineSgnC = (
TH2F*)ptK0SOfflineSgnC->Clone();
4351 TH2F* allptK0SOfflineSgnB = (
TH2F*)ptK0SOfflineSgnB->Clone();
4352 TH2F* allptK0SOfflineSgnNoQ = (
TH2F*)ptK0SOfflineSgnNoQ->Clone();
4353 TH2F* allptPOfflineSgnC = (
TH2F*)ptPOfflineSgnC->Clone();
4354 TH2F* allptPOfflineSgnB = (
TH2F*)ptPOfflineSgnB->Clone();
4355 TH2F* allptPOfflineSgnNoQ = (
TH2F*)ptPOfflineSgnNoQ->Clone();
4356 TH2F* allptPiPOfflineSgnC = (
TH2F*)ptPiPOfflineSgnC->Clone();
4357 TH2F* allptPiPOfflineSgnB = (
TH2F*)ptPiPOfflineSgnB->Clone();
4358 TH2F* allptPiPOfflineSgnNoQ = (
TH2F*)ptPiPOfflineSgnNoQ->Clone();
4359 TH2F* allptPiMOfflineSgnC = (
TH2F*)ptPiMOfflineSgnC->Clone();
4360 TH2F* allptPiMOfflineSgnB = (
TH2F*)ptPiMOfflineSgnB->Clone();
4361 TH2F* allptPiMOfflineSgnNoQ = (
TH2F*)ptPiMOfflineSgnNoQ->Clone();
4362 TH2F* alld0K0SOfflineSgnC = (
TH2F*)d0K0SOfflineSgnC->Clone();
4363 TH2F* alld0K0SOfflineSgnB = (
TH2F*)d0K0SOfflineSgnB->Clone();
4364 TH2F* alld0K0SOfflineSgnNoQ = (
TH2F*)d0K0SOfflineSgnNoQ->Clone();
4365 TH2F* alld0POfflineSgnC = (
TH2F*)d0POfflineSgnC->Clone();
4366 TH2F* alld0POfflineSgnB = (
TH2F*)d0POfflineSgnB->Clone();
4367 TH2F* alld0POfflineSgnNoQ = (
TH2F*)d0POfflineSgnNoQ->Clone();
4368 TH2F* allcosPAK0SOfflineSgnC = (
TH2F*)cosPAK0SOfflineSgnC->Clone();
4369 TH2F* allcosPAK0SOfflineSgnB = (
TH2F*)cosPAK0SOfflineSgnB->Clone();
4370 TH2F* allcosPAK0SOfflineSgnNoQ = (
TH2F*)cosPAK0SOfflineSgnNoQ->Clone();
4372 TH2F* pidptK0SOfflineSgnC = (
TH2F*)ptK0SOfflineSgnC->Clone();
4373 TH2F* pidptK0SOfflineSgnB = (
TH2F*)ptK0SOfflineSgnB->Clone();
4374 TH2F* pidptK0SOfflineSgnNoQ = (
TH2F*)ptK0SOfflineSgnNoQ->Clone();
4375 TH2F* pidptPOfflineSgnC = (
TH2F*)ptPOfflineSgnC->Clone();
4376 TH2F* pidptPOfflineSgnB = (
TH2F*)ptPOfflineSgnB->Clone();
4377 TH2F* pidptPOfflineSgnNoQ = (
TH2F*)ptPOfflineSgnNoQ->Clone();
4378 TH2F* pidptPiPOfflineSgnC = (
TH2F*)ptPiPOfflineSgnC->Clone();
4379 TH2F* pidptPiPOfflineSgnB = (
TH2F*)ptPiPOfflineSgnB->Clone();
4380 TH2F* pidptPiPOfflineSgnNoQ = (
TH2F*)ptPiPOfflineSgnNoQ->Clone();
4381 TH2F* pidptPiMOfflineSgnC = (
TH2F*)ptPiMOfflineSgnC->Clone();
4382 TH2F* pidptPiMOfflineSgnB = (
TH2F*)ptPiMOfflineSgnB->Clone();
4383 TH2F* pidptPiMOfflineSgnNoQ = (
TH2F*)ptPiMOfflineSgnNoQ->Clone();
4384 TH2F* pidd0K0SOfflineSgnC = (
TH2F*)d0K0SOfflineSgnC->Clone();
4385 TH2F* pidd0K0SOfflineSgnB = (
TH2F*)d0K0SOfflineSgnB->Clone();
4386 TH2F* pidd0K0SOfflineSgnNoQ = (
TH2F*)d0K0SOfflineSgnNoQ->Clone();
4387 TH2F* pidd0POfflineSgnC = (
TH2F*)d0POfflineSgnC->Clone();
4388 TH2F* pidd0POfflineSgnB = (
TH2F*)d0POfflineSgnB->Clone();
4389 TH2F* pidd0POfflineSgnNoQ = (
TH2F*)d0POfflineSgnNoQ->Clone();
4390 TH2F* pidcosPAK0SOfflineSgnC = (
TH2F*)cosPAK0SOfflineSgnC->Clone();
4391 TH2F* pidcosPAK0SOfflineSgnB = (
TH2F*)cosPAK0SOfflineSgnB->Clone();
4392 TH2F* pidcosPAK0SOfflineSgnNoQ = (
TH2F*)cosPAK0SOfflineSgnNoQ->Clone();
Double_t NormalizedDecayLengthXY() const
Double_t NormalizedDecayLength() const
Float_t fBzkG
primary vertex
void FillTheTree(AliAODRecoCascadeHF *part, AliRDHFCutsLctoV0 *cutsAnal, TClonesArray *mcArray, Int_t isLc, Int_t originLc)
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)
void FillLc2pK0Sspectrum(AliAODRecoCascadeHF *part, Int_t isLc, Int_t &nSelectedAnal, AliRDHFCutsLctoV0 *cutsAnal, TClonesArray *mcArray, Int_t originLc)
histos
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
Bool_t fReconstructSecVtx
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
static Int_t CheckOrigin(TClonesArray *arrayMC, AliAODMCParticle *mcPart, Bool_t searchUpToQuark=kTRUE)
Double_t fPtMinToFillTheTree
=9;
Double_t GetMaxVtxZ() const
TList * fOutputPIDBachTR
flag to check track rotation
Bool_t FillRecoCasc(AliVEvent *event, AliAODRecoCascadeHF *rc, Bool_t isDStar, Bool_t recoSecVtx=kFALSE)
Double_t InvMassLctoK0sP() const
AliAODPidHF * GetPidHF() const
AliNormalizationCounter * fCounter
Histogram to check selected events.
AliAODTrack * Getv0PositiveTrack() const
Int_t fNRotations
=mLcPDG+0.250;
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)
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 DefineSignalHistosSeparatedPerOrigin()
void StoreEvent(AliVEvent *, AliRDHFCuts *, Bool_t mc=kFALSE, Int_t multiplicity=-9999, Double_t spherocity=-99.)
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)
ClassImp(AliAnalysisTaskCRC) AliAnalysisTaskCRC
Int_t MatchToMClabelC(AliAODRecoCascadeHF *candidate, TClonesArray *mcArray)
Bool_t fTrackRotation
flag to fill additional histograms
void MakeAnalysisForLc2prK0S(AliAODEvent *aodEvent, TClonesArray *arrayLctopK0S, TClonesArray *mcArray, Int_t &nSelectedAnal, AliRDHFCutsLctoV0 *cutsAnal)
Bool_t CheckCascadeFlags(AliRDHFCuts::ESele selFlag=AliRDHFCuts::kLctoV0Cuts)
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)
Double_t CosPointingAngle() const
TList * fOutput
Use MC info.
Bool_t RecoSecondaryVertexForCascades(AliVEvent *event, AliAODRecoCascadeHF *rc)
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)
Int_t IsSelectedSingleCut(TObject *obj, Int_t selectionLevel, Int_t cutIndex, AliAODEvent *aod=0x0)
virtual Int_t IsSelected(TObject *obj, Int_t selectionLevel)
virtual void UserCreateOutputObjects()
Implementation of interface methods.
Class with functions useful for different D2H analyses //.
virtual ~AliAnalysisTaskSELc2V0bachelor()