16 #include <Riostream.h> 21 #include <TParameter.h> 23 #include <TParticle.h> 80 fEnableFillAOD(kTRUE),
90 fNumberOfPositiveTracks(0),
95 fOldESDformat(kFALSE),
97 fTPCConstrainedFilterMask(0),
98 fHybridFilterMaskTPCCG(0),
99 fWriteHybridTPCCOnly(kFALSE),
100 fGlobalConstrainedFilterMask(0),
101 fHybridFilterMaskGCG(0),
102 fWriteHybridGCOnly(kFALSE),
103 fIsVZEROEnabled(kTRUE),
104 fIsTZEROEnabled(kTRUE),
105 fIsZDCEnabled(kTRUE),
107 fIsHMPIDEnabled(kTRUE),
108 fIsV0CascadeRecoEnabled(kFALSE),
109 fAreCascadesEnabled(kTRUE),
110 fAreV0sEnabled(kTRUE),
111 fAreKinksEnabled(kTRUE),
112 fAreTracksEnabled(kTRUE),
113 fArePmdClustersEnabled(kTRUE),
114 fAreCaloClustersEnabled(kTRUE),
115 fAreEMCALCellsEnabled(kTRUE),
116 fArePHOSCellsEnabled(kTRUE),
117 fAreEMCALTriggerEnabled(kTRUE),
118 fArePHOSTriggerEnabled(kTRUE),
119 fAreTrackletsEnabled(kTRUE),
120 fIsTRDEnabled(kTRUE),
123 fTPCaloneTrackCuts(0),
124 fDoPropagateTrackToEMCal(kTRUE),
125 fEMCalSurfaceDistance(440),
126 fRefitVertexTracks(-1),
127 fRefitVertexTracksNCuts(0),
128 fRefitVertexTracksCuts(0),
129 fIsMuonCaloPass(kFALSE),
131 fbitfieldPCMv0sA(NULL),
132 fbitfieldPCMv0sB(NULL),
145 fCascadeCuts[0] = 33. ;
146 fCascadeCuts[1] = 0.05 ;
147 fCascadeCuts[2] = 0.008;
148 fCascadeCuts[3] = 0.03 ;
149 fCascadeCuts[4] = 0.3 ;
150 fCascadeCuts[5] = 0.999;
151 fCascadeCuts[6] = 0.9 ;
152 fCascadeCuts[7] = 100. ;
164 fEnableFillAOD(kTRUE),
174 fNumberOfPositiveTracks(0),
176 fNumberOfVertices(0),
177 fNumberOfCascades(0),
179 fOldESDformat(kFALSE),
181 fTPCConstrainedFilterMask(0),
182 fHybridFilterMaskTPCCG(0),
183 fWriteHybridTPCCOnly(kFALSE),
184 fGlobalConstrainedFilterMask(0),
185 fHybridFilterMaskGCG(0),
186 fWriteHybridGCOnly(kFALSE),
187 fIsVZEROEnabled(kTRUE),
188 fIsTZEROEnabled(kTRUE),
189 fIsZDCEnabled(kTRUE),
191 fIsHMPIDEnabled(kTRUE),
192 fIsV0CascadeRecoEnabled(kFALSE),
193 fAreCascadesEnabled(kTRUE),
194 fAreV0sEnabled(kTRUE),
195 fAreKinksEnabled(kTRUE),
196 fAreTracksEnabled(kTRUE),
197 fArePmdClustersEnabled(kTRUE),
198 fAreCaloClustersEnabled(kTRUE),
199 fAreEMCALCellsEnabled(kTRUE),
200 fArePHOSCellsEnabled(kTRUE),
201 fAreEMCALTriggerEnabled(kTRUE),
202 fArePHOSTriggerEnabled(kTRUE),
203 fAreTrackletsEnabled(kTRUE),
204 fIsTRDEnabled(kTRUE),
207 fTPCaloneTrackCuts(0),
208 fDoPropagateTrackToEMCal(kTRUE),
209 fEMCalSurfaceDistance(440),
210 fRefitVertexTracks(-1),
211 fRefitVertexTracksNCuts(0),
212 fRefitVertexTracksCuts(0),
213 fIsMuonCaloPass(kFALSE),
214 fAddPCMv0s(addPCMv0s),
215 fbitfieldPCMv0sA(NULL),
216 fbitfieldPCMv0sB(NULL),
259 fv0Histos =
new TH1D(
"v0CheckHisto",
"",8,1,9);
260 fv0Histos->GetXaxis()->SetBinLabel(1,
"All PCM On-Fly");
261 fv0Histos->GetXaxis()->SetBinLabel(2,
"All PCM Offline");
262 fv0Histos->GetXaxis()->SetBinLabel(3,
"PCM On-Fly & v0filter");
263 fv0Histos->GetXaxis()->SetBinLabel(4,
"PCM Offline & v0filter");
264 fv0Histos->GetXaxis()->SetBinLabel(5,
"PCM On-Fly & v0 cascades");
265 fv0Histos->GetXaxis()->SetBinLabel(6,
"PCM Offline & v0 cascades");
266 fv0Histos->GetXaxis()->SetBinLabel(7,
"PCM On-Fly not selected by filter");
267 fv0Histos->GetXaxis()->SetBinLabel(8,
"PCM Offline not selected by filter");
279 AliError(
"No OutputTree() for adding the track filter");
309 static Bool_t copyFirst = kFALSE;
313 AliError(
"AliAnalysisTaskESDfilter::AddMetadataToUserInfo() : No analysis manager !");
316 TTree *esdTree = mgr->
GetTree()->GetTree();
317 if (!esdTree)
return kFALSE;
318 TNamed *alirootVersion = (TNamed*)esdTree->GetUserInfo()->FindObject(
"alirootVersion");
319 if (!alirootVersion)
return kFALSE;
321 if (!aodHandler)
return kFALSE;
322 TTree *aodTree = aodHandler->
GetTree();
323 if (!aodTree)
return kFALSE;
324 aodTree->GetUserInfo()->Add(
new TNamed(*alirootVersion));
339 TString spaces(
' ',indent+3);
341 cout << spaces.Data() << Form(
"Cascades are %s",
fAreCascadesEnabled ?
"ENABLED":
"DISABLED") << endl;
342 cout << spaces.Data() << Form(
"V0s are %s",
fAreV0sEnabled ?
"ENABLED":
"DISABLED") << endl;
343 cout << spaces.Data() << Form(
"Kinks are %s",
fAreKinksEnabled ?
"ENABLED":
"DISABLED") << endl;
344 cout << spaces.Data() << Form(
"Tracks are %s",
fAreTracksEnabled ?
"ENABLED":
"DISABLED") << endl;
345 cout << spaces.Data() << Form(
"PmdClusters are %s",
fArePmdClustersEnabled ?
"ENABLED":
"DISABLED") << endl;
347 cout << spaces.Data() << Form(
"EMCAL cells are %s",
fAreEMCALCellsEnabled ?
"ENABLED":
"DISABLED") << endl;
349 cout << spaces.Data() << Form(
"PHOS triggers are %s",
fArePHOSTriggerEnabled ?
"ENABLED":
"DISABLED") << endl;
350 cout << spaces.Data() << Form(
"Tracklets are %s",
fAreTrackletsEnabled ?
"ENABLED":
"DISABLED") << endl;
351 cout << spaces.Data() << Form(
"HMPID is %s",
fIsHMPIDEnabled ?
"ENABLED":
"DISABLED") << endl;
352 cout << spaces.Data() << Form(
"TRD is %s",
fIsTRDEnabled ?
"ENABLED":
"DISABLED") << endl;
353 cout << spaces.Data() << Form(
"PropagateTrackToEMCal is %s",
fDoPropagateTrackToEMCal ?
"ENABLED":
"DISABLED") << endl;
354 if (
fRefitVertexTracks<0) cout << spaces.Data() << Form(
"RefitVerteTracks is DISABLED") << endl;
355 else cout << spaces.Data() << Form(
"RefitVerteTracks is ENABLED to %d",
fRefitVertexTracks) << endl;
363 Long64_t ientry =
Entry();
365 printf(
"Filter: Analysing event # %5d\n", (Int_t) ientry);
367 if (!
fPtshape)
AliInfo(
"detector PID signals are not stored below the pt threshold");
371 AliFatal(
"Cannot run ESD filter without an output event handler");
411 if(!header)
AliFatal(
"Not a standard AOD");
422 TFile* file = tree->GetCurrentFile();
442 if(const_cast<AliESDEvent&>(esd).GetCentrality()){
443 header->
SetCentrality(const_cast<AliESDEvent&>(esd).GetCentrality());
448 if(const_cast<AliESDEvent&>(esd).GetEventplane()){
449 header->
SetEventplane(const_cast<AliESDEvent&>(esd).GetEventplane());
520 Double_t pos[3] = { 0. };
521 Double_t covVtx[6] = { 0. };
522 Double_t momBach[3]={0.};
523 Double_t covTr[21]={0.};
530 Double_t momPos[3]={0.};
531 Double_t momNeg[3] = { 0. };
532 Double_t momPosAtV0vtx[3]={0.};
533 Double_t momNegAtV0vtx[3]={0.};
534 Int_t tofLabel[3] = {0};
535 TClonesArray& verticesArray =
Vertices();
536 TClonesArray& tracksArray =
Tracks();
537 TClonesArray& cascadesArray =
Cascades();
545 Int_t idxPosFromV0Dghter = esdCascade->
GetPindex();
546 Int_t idxNegFromV0Dghter = esdCascade->
GetNindex();
547 Int_t idxBachFromCascade = esdCascade->
GetBindex();
555 Int_t idxV0FromCascade = -1;
559 currentV0 = esd.
GetV0(iV0);
565 Int_t posCurrentV0 = currentV0->
GetPindex();
566 Int_t negCurrentV0 = currentV0->
GetNindex();
568 if (posCurrentV0==idxPosFromV0Dghter && negCurrentV0==idxNegFromV0Dghter) {
569 idxV0FromCascade = iV0;
574 if(idxV0FromCascade < 0){
575 printf(
"Cascade - no matching for the V0 (index V0 = -1) ! Skip ... \n");
635 esdCascadeBach->
GetXYZ(pos);
641 UInt_t selectInfo = 0;
651 (Short_t)esdCascadeBach->
GetSign(),
677 SetAODPID(esdCascadeBach,aodTrack,detpid);
689 if ( !
fUsedV0[idxV0FromCascade] ) {
693 esdV0FromCascade->
GetXYZ(pos[0], pos[1], pos[2]);
717 esdCascadePos->
GetXYZ(pos);
725 UInt_t selectInfo = 0;
735 (Short_t)esdCascadePos->
GetSign(),
761 SetAODPID(esdCascadePos,aodTrack,detpid);
771 esdCascadeNeg->
GetXYZ(pos);
779 UInt_t selectInfo = 0;
790 (Short_t)esdCascadeNeg->
GetSign(),
816 SetAODPID(esdCascadeNeg,aodTrack,detpid);
830 esdV0FromCascade->
GetPPxPyPz( momPosAtV0vtx[0],momPosAtV0vtx[1],momPosAtV0vtx[2] );
831 esdV0FromCascade->
GetNPxPyPz( momNegAtV0vtx[0],momNegAtV0vtx[1],momNegAtV0vtx[2] );
833 Double_t dcaDaughterToPrimVertex[2] = { 999., 999.};
846 dcaDaughterToPrimVertex);
853 fUsedV0[idxV0FromCascade] = kTRUE;
875 vCascade ->
SetParent(vCascadePreviousParent);
889 Double_t momBachAtCascadeVtx[3]={0.};
891 esdCascade->
GetBPxPyPz(momBachAtCascadeVtx[0], momBachAtCascadeVtx[1], momBachAtCascadeVtx[2]);
900 dcaBachToPrimVertexXY,
905 printf(
"---- Cascade / AOD cascade : \n\n");
924 Double_t pos[3] = { 0. };
926 Double_t covVtx[6] = { 0. };
927 Double_t momPos[3]={0.};
928 Double_t covTr[21]={0.};
932 Double_t momNeg[3]={0.};
933 Double_t momPosAtV0vtx[3]={0.};
934 Double_t momNegAtV0vtx[3]={0.};
935 Int_t tofLabel[3] = {0};
971 v0objects.AddAt(v0, 0);
972 v0objects.AddAt(esdV0Pos, 1);
973 v0objects.AddAt(esdV0Neg, 2);
974 v0objects.AddAt(esdVtx, 3);
995 delete v0objects.RemoveAt(3);
1000 delete v0objects.RemoveAt(3);
1021 v0->
GetXYZ(pos[0], pos[1], pos[2]);
1028 for (Int_t i = 0; i < 6; i++) covVtx[i] = 0.;
1054 UInt_t selectInfo = 0;
1104 UInt_t selectInfo = 0;
1151 v0->
GetPPxPyPz(momPosAtV0vtx[0],momPosAtV0vtx[1],momPosAtV0vtx[2]);
1152 v0->
GetNPxPyPz(momNegAtV0vtx[0],momNegAtV0vtx[1],momNegAtV0vtx[2]);
1154 Double_t dcaDaughterToPrimVertex[2] = { 999., 999.};
1167 dcaDaughterToPrimVertex);
1216 Double_t pos[3] = { 0. };
1217 Double_t covTr[21]={0.};
1219 Double_t
p[3] = { 0. };
1220 Double_t pDCA[3] = { 0. };
1221 Double_t rDCA[3] = { 0. };
1222 Float_t dDCA[2] = {0.};
1223 Float_t cDCA[3] = {0.};
1224 Int_t tofLabel[3] = {0};
1229 Float_t ptMax = 1E10;
1231 for(
int i = 0;i<32;i++){
1234 Float_t tmp1= 0,tmp2 = 0;
1236 if(tmp1>ptMin)ptMin=tmp1;
1237 if(tmp2<ptMax)ptMax=tmp2;
1245 UInt_t selectInfo = 0;
1246 Bool_t isHybridITSTPC =
false;
1255 isHybridITSTPC =
true;
1260 if (!selectInfo)
continue;
1264 if (!track)
continue;
1266 if (track->
Pt()>0.) {
1270 Bool_t relate =
false;
1289 Float_t pT = track->
Pt();
1290 if(pT<ptMin||pT>ptMax){
1328 aodTrack->
SetDCA(dDCA[0],dDCA[1]);
1372 Double_t pos[3] = { 0. };
1373 Double_t covTr[21]={0.};
1375 Double_t
p[3] = { 0. };
1377 Double_t pDCA[3] = { 0. };
1378 Double_t rDCA[3] = { 0. };
1379 Float_t dDCA[2] = {0.};
1380 Float_t cDCA[3] = {0.};
1381 Int_t tofLabel[3] = {0};
1388 Float_t ptMax = 1E10;
1390 for(
int i = 0;i<32;i++){
1393 Float_t tmp1= 0,tmp2 = 0;
1395 if(tmp1>ptMin)ptMin=tmp1;
1396 if(tmp2<ptMax)ptMax=tmp2;
1404 if(!exParamGC)
continue;
1406 UInt_t selectInfo = 0;
1407 Bool_t isHybridGC =
false;
1419 if (!selectInfo)
continue;
1427 Float_t pT = exParamGC->
Pt();
1428 if(pT<ptMin||pT>ptMax){
1466 aodTrack->
SetDCA(dDCA[0],dDCA[1]);
1492 Double_t
p[3] = { 0. };
1493 Double_t pos[3] = { 0. };
1494 Double_t covTr[21] = { 0. };
1496 Int_t tofLabel[3] = {0};
1506 UInt_t selectInfo = 0;
1565 Int_t jPmdClusters=0;
1574 Double_t pidPmd[13] = { 0.};
1595 Int_t
id = cluster->
GetID();
1599 for(
int i = 0;i < nLabel;++i) {
1604 Float_t energy = cluster->
E();
1605 Float_t posF[3] = { 0.};
1630 Int_t nMatchCount = 0;
1633 for (Int_t im = 0; im < matchedT->GetSize(); im++) {
1634 Int_t iESDtrack = matchedT->At(im);;
1645 caloClusters.Expand(jClusters);
1653 if (calo ==
"PHOS") {
1662 while (esdTrigger.
Next()) {
1665 aodTrigger.
Add(tmod,tabsId,a,0.,(Int_t*)NULL,0,esdTrigger.
GetL1TimeSum(),0);
1670 static Bool_t saveOnce = kFALSE;
1674 TTree *aodTree = aodHandler->
GetTree();
1677 for (Int_t i = 0; i < 15; i++) {
1678 aodTree->GetUserInfo()->Add(
new TParameter<int>(Form(
"EMCALCaloTrigger%d",i), type[i]));
1690 while (esdTrigger.
Next()) {
1691 Int_t px, py, ts, nTimes, times[10],
b;
1700 aodTrigger.
Add(px, py, a, t, times, nTimes, ts, b);
1726 for (Int_t iCell = 0; iCell < nEMcell; iCell++) {
1750 for (Int_t iCell = 0; iCell < nPHcell; iCell++) {
1799 Double_t covTr[21]={0.};
1802 Int_t tofLabel[3] = {0};
1822 if ( TMath::Abs(ikink)==TMath::Abs(jkink) ) {
1824 if (
fUsedKink[TMath::Abs(ikink)-1])
continue;
1827 Int_t idaughter = -1;
1829 if (ikink<0 && jkink>0) {
1832 }
else if (ikink>0 && jkink<0) {
1844 UInt_t selectInfo = 0;
1847 if (!selectInfo)
continue;
1853 Double_t
p[3] = { 0. };
1854 Double_t pos[3] = { 0. };
1868 (Short_t)esdTrackM->
GetSign(),
1916 Double_t
p[3] = { 0. };
1917 Double_t pos[3] = { 0. };
1933 (Short_t)esdTrackD->
GetSign(),
1978 Double_t pos[3] = { 0. };
1979 Double_t covVtx[6] = { 0. };
2010 mVSPD->SetName(vtxS->GetName());
2011 mVSPD->SetTitle(vtxS->GetTitle());
2021 pVSPD->SetName(vtxP->GetName());
2022 pVSPD->SetTitle(vtxP->GetTitle());
2034 pVTRK->SetName(vtxP->GetName());
2035 pVTRK->SetTitle(vtxP->GetTitle());
2046 mVTPC->SetName(vtxT->GetName());
2047 mVTPC->SetTitle(vtxT->GetTitle());
2068 for (Int_t icase=0; icase<3; icase++){
2076 Float_t rawTime[24];
2077 for(Int_t ipmt=0; ipmt<24; ipmt++)
2080 Int_t idxOfFirstPmtA = -1, idxOfFirstPmtC = -1;
2081 Float_t timeOfFirstPmtA = 9999, timeOfFirstPmtC = 9999;
2082 for(
int ipmt=0; ipmt<12; ipmt++){
2083 if( rawTime[ipmt] > -2 && rawTime[ipmt] < timeOfFirstPmtC && rawTime[ipmt]!=0){
2084 timeOfFirstPmtC = rawTime[ipmt];
2085 idxOfFirstPmtC = ipmt;
2088 for(
int ipmt=12; ipmt<24; ipmt++){
2089 if( rawTime[ipmt] > -2 && rawTime[ipmt] < timeOfFirstPmtA && rawTime[ipmt]!=0 ){
2090 timeOfFirstPmtA = rawTime[ipmt];
2091 idxOfFirstPmtA = ipmt;
2095 if(idxOfFirstPmtA != -1 && idxOfFirstPmtC != -1){
2097 Float_t vertexraw = TMath::C()*1e-7 * (rawTime[idxOfFirstPmtA] - rawTime[idxOfFirstPmtC])/2;
2106 for(
int ipmt=0; ipmt<24; ipmt++)
2107 aodTzero->
SetAmp(ipmt, amp[ipmt]);
2157 const Float_t kNoEntry = -999.;
2164 for(
int i=0; i<4; i++){
2169 else for(
int i=0; i<4; i++) zdcAOD->
SetZNCTDCm(i, kNoEntry);
2175 for(
int i=0; i<4; i++){
2180 else for(
int i=0; i<4; i++) zdcAOD->
SetZNATDCm(i, kNoEntry);
2186 for(
int i=0; i<4; i++){
2191 else for(
int i=0; i<4; i++) zdcAOD->
SetZPCTDCm(i, kNoEntry);
2197 for(
int i=0; i<4; i++){
2202 else for(
int i=0; i<4; i++) zdcAOD->
SetZPATDCm(i, kNoEntry);
2223 Int_t cntHmpidGoodTracks = 0;
2232 Float_t thetaTrk = 0;
2235 Double_t hmpPid[5]={0};
2236 Double_t hmpMom[3]={0};
2241 if(! esd.
GetTrack(iTrack) )
continue;
2244 (esd.
GetTrack(iTrack))->GetHMPIDmip(xMip, yMip, qMip, nphMip);
2245 (esd.
GetTrack(iTrack))->GetHMPIDtrk(xTrk,yTrk,thetaTrk,phiTrk);
2246 (esd.
GetTrack(iTrack))->GetHMPIDpid(hmpPid);
2247 if((esd.
GetTrack(iTrack))->GetOuterHmpParam()) (esd.
GetTrack(iTrack))->GetOuterHmpPxPyPz(hmpMom);
2252 1000000*nphMip+qMip,
2253 (esd.
GetTrack(iTrack))->GetHMPIDcluIdx(),
2256 (esd.
GetTrack(iTrack))->GetHMPIDsignal(),
2257 (esd.
GetTrack(iTrack))->GetHMPIDoccupancy(),
2258 (esd.
GetTrack(iTrack))->GetHMPIDchi2(),
2269 return cntHmpidGoodTracks;
2278 const Int_t nLayers = 6;
2280 for (Int_t iTrdTrack = 0; iTrdTrack < nTrdTracks; ++iTrdTrack) {
2286 for (Int_t iTracklet = 0; iTracklet < nLayers; ++iTracklet) {
2296 Int_t idx = esdTrkMatch->
GetID();
2299 AliError(
"track has a matched track that was not found");
2300 else if (esdTrkMatch != esd.
GetTrack(idx))
2301 AliError(
"wrong track found for ESD track index");
2307 AliDebug(2, Form(
"event %lld: existing track (idx %i, pt = %f) matched to TRD track (idx %i, pt = %f), cut flags: 0x%08x",
2308 Entry(), idx, esdTrkMatch->
Pt(), iTrdTrack, esdTrdTrk->
Pt(),
2314 AliWarning(Form(
"event %lld: copied track (idx %i, pt = %f) matched to TRD track (idx %i, pt = %f), cut flags: 0x%08x -> 0x%08x",
2315 Entry(), idx, esdTrkMatch->
Pt(), iTrdTrack, esdTrdTrk->
Pt(),
2318 AliDebug(2, Form(
"event %lld: unused track (idx %i, pt = %f) matched to TRD track (idx %i, pt = %f), cut flags: 0x%08x -> 0x%08x",
2319 Entry(), idx, esdTrkMatch->
Pt(), iTrdTrack, esdTrdTrk->
Pt(),
2322 Double_t mom[3]={0.};
2323 Double_t pos[3]={0.};
2324 Double_t covTr[21]={0.};
2328 esdTrkMatch->
GetXYZ(pos);
2343 (Short_t)esdTrkMatch->
GetSign(),
2367 SetAODPID(esdTrkMatch,aodTrkMatch,detpid);
2415 for (Int_t i=0;i<ntrack;++i) {
2450 Int_t nVertices = nV0s + nCascades + nKinks + 1 ;
2453 nVertices+=nPileSPDVertices;
2454 nVertices+=nPileTrkVertices;
2459 Int_t nHmpidRings = 0;
2461 AliDebug(1,Form(
" NV0=%d NCASCADES=%d NKINKS=%d", nV0s, nCascades, nKinks));
2463 AODEvent()->
ResetStd(nTracks, nVertices, nV0s, nCascades, nJets, nCaloClus, nFmdClus, nPmdClus, nHmpidRings);
2472 for (Int_t iV0=0; iV0<nV0s; ++iV0)
fUsedV0[iV0]=kFALSE;
2483 for (Int_t iTrack=0; iTrack<nTracks; ++iTrack) {
2492 for (Int_t iKink=0; iKink<nKinks; ++iKink)
fUsedKink[iKink]=kFALSE;
2512 Float_t t0spread[10];
2513 Float_t intrinsicTOFres=100;
2514 for (Int_t i=0; i<10; i++) t0spread[i] = (TMath::Sqrt(esd->
GetSigma2DiamondZ()))/0.03;
2518 AliTOFHeader tmpTOFHeader(0,t0spread[0],0,NULL,NULL,NULL,intrinsicTOFres,t0spread[0]);
2576 Bool_t pidSave = kFALSE;
2579 if (selectInfo) pidSave = kTRUE;
2589 if(gRandom->Rndm(0)<1./y){
2611 AliInfo(
"no ESD track found. .....exiting");
2619 Double_t itsdedx[4];
2629 TArrayD trdslices(nslices);
2635 for(Int_t iPl=0;iPl<6;iPl++){
2658 for (Int_t iMass=0; iMass<5; iMass++){
2671 if ( nClustersTPC > 5) {
2672 return (track->
GetTPCchi2()/Float_t(nClustersTPC - 5));
2683 if (
fDebug > 1)
printf(
"AnalysisESDfilter: Terminate() \n");
2691 if (!pStack)
return;
2692 label = TMath::Abs(label);
2693 TParticle *part = pStack->
Particle(label);
2694 Printf(
"########################");
2695 Printf(
"%s:%d %d UniqueID %d PDG %d P %3.3f",(
char*)__FILE__,__LINE__,label,part->GetUniqueID(),part->GetPdgCode(),part->P());
2697 TParticle* mother = part;
2698 Int_t imo = part->GetFirstMother();
2701 while((imo >= nprim)) {
2703 Printf(
"Mother %s:%d Label %d UniqueID %d PDG %d P %3.3f",(
char*)__FILE__,__LINE__,imo,mother->GetUniqueID(),mother->GetPdgCode(),mother->P());
2705 imo = mother->GetFirstMother();
2707 Printf(
"########################");
2745 if (algo>0 && cuts) {
2776 TIter next(&modifiedCuts);
2782 static Bool_t printOnce = kTRUE;
2784 AliInfoF(
"Event w/oTPC, reverted %d cuts asking for ITS_SA tracks, no more such messages will be printed",
2785 modifiedCuts.GetEntries());
2788 modifiedCuts.Clear();
2794 int nPureSA = 0, nCompSA = 0;
2809 if (nPureSA && !nCompSA) {
2814 if (cut->GetRequireITSStandAlone()) {
2815 cut->SetRequireITSStandAlone(kFALSE);
2816 cut->SetRequireITSPureStandAlone(kTRUE);
2817 modifiedCuts.Add(cut);
2820 modifiedCuts.SetOwner(kFALSE);
2821 static Bool_t printOnce = kTRUE;
2823 AliInfoF(
"Event w/oTPC, forced %d cuts asking for ITS_SA tracks to accept ITS_pureSA",modifiedCuts.GetEntries());
Int_t GetTrackMatchedIndex(Int_t i=0) const
void GetPPxPyPz(Double_t &px, Double_t &py, Double_t &pz) const
virtual Double_t GetZEM2Energy() const
Double_t GetTrackDx(void) const
Class for calorimeter cluster, EMCal and PHOS, data handling.
TClonesArray * GetCascades()
Double_t fCascadeCuts[8]
Array to store the values for the different reco selections cascades related.
TBits GetT0PileupBits() const
Bool_t fIsTRDEnabled
whether or not to fill on-line tracklets and tracks from TRD (true by default)
AliAODCaloTrigger * GetCaloTrigger(TString calo) const
Bool_t fAreEMCALTriggerEnabled
whether or not to fill the emcal trigger (true by default)
Double_t GetDispersion() const
Double_t GetTRDslice(Int_t plane, Int_t slice=-1) const
Double_t GetTRDmomentum(Int_t plane, Double_t *sp=0x0) const
const TBits & GetTPCFitMap() const
Double_t GetSigma2DiamondZ() const
Double_t GetTPCmomentum() const
void CopyCaloProps(AliESDtrack *esdt, AliAODTrack *aodt)
Bool_t GetConstrainedPxPyPz(Double_t *p) const
AliESDCaloCluster * GetCaloCluster(Int_t i) const
printf("Chi2/npoints = %f\n", TMath::Sqrt(chi2/npoints))
UInt_t fHybridFilterMaskTPCCG
Filter Mask used to mark global tracks as hybrid.
void SetIntegratedTimes(Double_t timeint[5])
Int_t GetNumberOfV0s() const
void SetL1FrameMask(Int_t m)
void SetBackgroundFlag(Bool_t back=false)
const Double_t * GetZPATowerEnergyLR() const
void SetTRDslices(Int_t nslices, const Double_t *const trdslices)
void SetTPCsignal(Double_t tpc)
Implementation of the Event Handler Interface for AOD.
Int_t fNumberOfTracks
current number of tracks
void SetZPATDC(Float_t tdc)
Double_t GetMagneticField() const
AliESDPmdTrack * GetPmdTrack(Int_t i) const
void GetAmplitude(Float_t &) const
Access to L0-amplitude of the current fastor channel.
AliESDkink * GetKink(Int_t i) const
Int_t GetNumberOfTrdTracks() const
Double_t GetDiamondY() const
AliESDVZERO * GetVZEROData() const
const Double_t * GetZPCTowerEnergyLR() const
Double_t GetClusterADC() const
void SetTPCTgl(Double_t tpcTgl)
void SetType(Char_t ttype)
void ConvertV0s(const AliESDEvent &esd)
virtual TTree * GetTree() const
void GetImpactParametersTPC(Float_t &xy, Float_t &z) const
Int_t GetNumberOfTPCClusters() const
UShort_t * GetClusterMCEdepFraction() const
void GetL0Times(Int_t times[]) const
Get level0 times for the current L0 patch.
Double_t GetCachedChi2TPCConstrainedVsGlobalVal() const
AliESDTrdTracklet * GetTracklet(Int_t idx) const
virtual UInt_t IsEventSelected()
AliAnalysisFilter * fTrackFilter
Track Filter.
AliESDAD * GetADData() const
Bool_t * fUsedKink
! indices of used kinks
TRefArray * fAODV0Refs
array of v0s references
void Set(T x, T alpha, const T param[5], const T covar[15])
Int_t GetNumberOfPileupVerticesSPD() const
virtual Double_t GetY() const
Bool_t fOldESDformat
is the ESD in old format ?
Bool_t GetBackgroundFlag() const
virtual const Float_t * GetVZEROEqFactors() const
Bool_t fAreEMCALCellsEnabled
whether or not to fill the emcal cells (true by default)
void GetNPxPyPz(Double_t &px, Double_t &py, Double_t &pz) const
Bool_t fArePHOSCellsEnabled
whether or not to fill the phos cells (true by default)
virtual void GetXYZ(Double_t position[3]) const
TRefArray * fAODTrackRefs
array of track references
void GetTriggerBits(Int_t &bits) const
Get the trigger bits for a given fastor position.
void SetDetectorRawSignals(AliAODPid *aodpid, AliESDtrack *track)
Int_t * GetCaloTriggerType() const
Double_t GetTrackPhiOnEMCal() const
Bool_t GetXYZ(Double_t *p) const
TArrayI * GetTracksMatched() const
virtual void PrintTask(Option_t *option="all", Int_t indent=0) const
AliESDcascade * GetCascade(Int_t i) const
Class for calorimeter cell AOD data handling.
static AliAnalysisManager * GetAnalysisManager()
const TBits & GetTPCClusterMap() const
TList * fHistov0List
TList containing PCM histos.
AliAODZDC * GetZDCData() const
Int_t GetZDCTDCData(Int_t i, Int_t j) const
Double_t GetChi2toNDF() const
Bool_t GetOnFlyStatus() const
virtual Short_t GetZDCPartSideA() const
AliAnalysysManager Manager analysis class. Allows creation of several analysis tasks and data contain...
void SetTRDntrackletsPID(UChar_t ntls)
Bool_t SetTracklet(Int_t pos, Double32_t theta, Double32_t phi, Double32_t deltaPhi, Int_t labelL1, Int_t labelL2)
void ResetStd(Int_t trkArrSize=0, Int_t vtxArrSize=0, Int_t v0ArrSize=0, Int_t cascadeArrSize=0, Int_t jetSize=0, Int_t caloClusSize=0, Int_t fmdClusSize=0, Int_t pmdClusSize=0, Int_t hmpidRingsSize=0, Int_t dimuonArrsize=0, Int_t nTrdTracks=0)
UInt_t fGlobalConstrainedFilterMask
Filter Mask used to select and store refitted TPC only tracks.
const Double_t * GetPosition() const
Float_t GetT0spread(Int_t i) const
Container class for AOD AD data.
void SetITSsignal(Double_t its)
Double_t GetZDCP2Energy() const
virtual Short_t GetNumberOfFiredChips(Int_t layer) const
virtual const Double_t * GetZNCTowerEnergyLR() const
Bool_t fIsV0CascadeRecoEnabled
whether or not to reconstruct again V0s and cascades (false by default)
void SetIsTPCConstrained(Bool_t b=kTRUE)
Int_t GetEMCALcluster() const
Int_t GetPIDForTracking() const
void GetPtRange(Float_t &r1, Float_t &r2) const
virtual Short_t Charge() const
Double_t fHighPthreshold
Pt threshold for detector signal setting.
Container with calorimeter trigger information in the AOD event.
TClonesArray * GetHMPIDrings() const
void SetT0resolution(Float_t *t0resolution)
void SetCellsAmplitudeFraction(Double32_t *array)
Bool_t fIsPidOwner
whether we own fESDpid
void SetZNATDCm(Int_t i, Float_t tdc)
Double_t GetTrackEtaOnEMCal() const
Bool_t PostData(Int_t iout, TObject *data, Option_t *option="")
Bool_t Add(Int_t col, Int_t row, Float_t amp, Float_t time, Int_t trgtimes[], Int_t ntrgtimes, Int_t trgts, Int_t trgbits)
AliAODTracklets * GetTracklets() const
virtual Bool_t Next()
Forward to next trigger entry (fastor / L0 patch)
TClonesArray * GetTracks() const
AliAODVZERO * GetVZEROData() const
void SetZNCTowers(const Double_t value[5], const Double_t valueLG[5])
AliESDtrackCuts * fTPCaloneTrackCuts
TPC stand-alone track cuts.
virtual void SetFillExtension(Bool_t)
Double32_t GetT0TOFbest(Int_t i) const
Int_t GetNumberOfPileupVerticesTracks() const
AliESDZDC * GetZDCData() const
Bool_t fAreTrackletsEnabled
whether or not to fill the tracklets (true by default)
void SetCellsMCEdepFractionMap(UInt_t *array)
void SetChi2perNDF(Double_t chi2perNDF)
ULong_t GetDetectorStatus() const
Bool_t GetSatellite() const
void DefineInput(Int_t islot, TClass *type)
void SetZEM2Energy(const Double_t zem2)
void GetXYZ(Double_t &x, Double_t &y, Double_t &z) const
ULong64_t GetTriggerMaskNext50() const
void SetCellsAbsId(UShort_t *array)
void SetT0TOFbest(Int_t icase, Double32_t time)
virtual void UserExec(Option_t *option)
Double_t GetAlpha() const
Double_t GetClusterZ() const
Bool_t fArePHOSTriggerEnabled
whether or not to fill the phos trigger (true by default)
AliVHeader * GetHeader() const
virtual Double_t GetZEM1Energy() const
virtual Int_t GetLabel(Int_t i, Int_t layer) const
void ConvertEMCALCells(const AliESDEvent &esd)
void SetRequireITSStandAlone(Bool_t b=kFALSE)
void ConvertPHOSCells(const AliESDEvent &esd)
virtual Double_t GetImpactParamSideC() const
void SetClusterMCEdepFraction(UShort_t *array)
void SetTPCClusterMap(const TBits amap)
void SetDCA(Double_t d, Double_t z)
Implementation of the Analysis Oriented Data (AOD) Xi vertex class.
Double_t * fRefitVertexTracksCuts
optional cuts for vertex refit
#define AliInfoF(message,...)
Bool_t GetCovarianceXYZPxPyPz(Double_t cv[21]) const
const AliExternalTrackParam * GetTPCInnerParam() const
virtual AliMCEvent * MCEvent() const
void SetT0TOF(Int_t icase, Double32_t time)
Double_t GetDiamondX() const
void SetOnFlyStatus(Bool_t status)
void SetTPCFitMap(const TBits amap)
Int_t fRefitVertexTracksNCuts
void AdjustCutsForEvent(const AliESDEvent &esd, TList &modifiedCuts, bool revert)
virtual Short_t GetZDCPartSideC() const
void ConvertAD(const AliESDEvent &esd)
virtual void SetFillAOD(Bool_t)
Int_t GetL1Threshold(Int_t i) const
UInt_t fHybridFilterMaskGCG
Filter Mask used to mark global tracks as hybrid.
UInt_t GetTimeStamp() const
const Double_t * GetParameter() const
Double_t GetZDCN1Energy() const
virtual AliVEvent * InputEvent() const
Double_t GetDistanceToBadChannel() const
Float_t GetZNTDCSum(Int_t ihit) const
void SetTPCNCrossedRows(UInt_t n)
void PrintXi(const Double_t &rPrimVtxX, const Double_t &rPrimVtxY, const Double_t &rPrimVtxZ) const
Bool_t fIsHMPIDEnabled
whether or not to fill the hmpid branch (true by default)
#define AliWarning(message)
void AddTrackMatched(TObject *trk)
void SetTOFsignal(Double_t tof)
void GetPosition(Int_t &col, Int_t &row) const
Access to position of the current fastor channel.
void SetTRDmomentum(Int_t nplane, Float_t trdMom)
Int_t fNumberOfVertices
current number of vertices
void SetPIDFromESD(const T *pid)
Int_t GetKinkIndex(Int_t i) const
void SetTimeResolution(Float_t res)
void SetIsHybridGlobalConstrainedGlobal(Bool_t hybrid=kTRUE)
const AliESDVertex * GetPrimaryVertexTracks() const
void SetTPCmomentum(Double_t tpcMom)
Int_t V0sTracks2CascadeVertices(AliESDEvent *event)
void GetITSdEdxSamples(Double_t s[4]) const
void SetPileupFlag(Bool_t back=false)
void ConvertVZERO(const AliESDEvent &esd)
Bool_t fDoPropagateTrackToEMCal
whether or not to propagate the tracks to the EMCal surface – true by default
void SetNContributors(Int_t nc)
void SetFlags(ULong64_t flags)
AOD class to store tracklets.
AOD Pid object for additional pid information.
UShort_t * GetCellsAbsId()
virtual void UserCreateOutputObjects()
void SetTPCdEdxInfo(AliTPCdEdxInfo *dEdxInfo)
AliVEventHandler * GetInputEventHandler() const
void ConvertAliPIDtoAODPID()
TObject * GetInputData(Int_t islot) const
virtual Double_t GetImpactParamSideA() const
void ConvertPmdClusters(const AliESDEvent &esd)
AliTPCdEdxInfo * GetTPCdEdxInfo() const
AliAnalysisFilter * fV0Filter
V0 Filter.
Double32_t GetT0TOF(Int_t i) const
Bool_t fIsADEnabled
whether or not to fill the ad branch (true by default)
TClonesArray & Cascades()
Double_t GetTPCTgl() const
virtual void ConvertESDtoAOD()
void SetCaloCluster(Double_t dist=-999., Double_t disp=-1., Double_t m20=0., Double_t m02=0., Double_t emcCpvDist=-999., UShort_t nExMax=0, Double_t tof=0.)
Int_t GetNprimary() const
AliESDv0 * GetV0(Int_t i) const
UInt_t GetDAQAttributes() const
Bool_t fAreTracksEnabled
whether or not to fill the (central) tracks branch (true by default)
TClonesArray * GetV0s() const
Class for handling of ESD track cuts.
Bool_t fAreV0sEnabled
whether or not to fill the v0 branch (true by default)
Double_t GetHMPIDsignal() const
void SetL1V0(const Int_t *v)
const AliESDVertex * GetPrimaryVertexTPC() const
void SetCuts(const Double_t *cuts)
Bool_t GetScaleDThetaBySin2T() const
Double_t GetZDCEMEnergy(Int_t i=0) const
UInt_t fTPCConstrainedFilterMask
Filter Mask used to select and store refitted TPC only tracks.
Bool_t fIsTZEROEnabled
whether or not to fill the tzero branch (true by default)
Bool_t IsOn(ULong64_t mask) const
ULong64_t GetTriggerMask() const
void SetTRDChi2(Double_t chi2)
virtual const Double_t * GetZPATowerEnergy() const
Bool_t AddMetadataToUserInfo()
TClonesArray & Vertices()
virtual TTree * GetTree() const
void SetFilterMap(UInt_t i)
void SetTOFLabel(const Int_t *p)
Bool_t * fUsedV0
! indices of used V0s
Double_t GetTPCsignal() const
Int_t GetEntries() const
Get the number of entries in the trigger data.
void GetBPxPyPz(Double_t &px, Double_t &py, Double_t &pz) const
virtual void Terminate(Option_t *option)
UInt_t GetEventType() const
void SetL1Threshold(Int_t i, Int_t thr)
void SetZNCTDC(Float_t tdc)
virtual void SetAODPID(AliESDtrack *esdtrack, AliAODTrack *aodtrack, AliAODPid *detpid)
const AliESDVertex * GetPileupVertexTracks(Int_t i) const
AliESDCaloTrigger * GetCaloTrigger(TString calo) const
void SetTrackPhiEtaPtOnEMCal(Double_t phi, Double_t eta, Double_t pt)
void SetITSdEdxSamples(const Double_t s[4])
const AliESDVertex * GetPileupVertexSPD(Int_t i) const
Double_t GetITSchi2() const
AliAnalysisTaskESDfilter()
void CreateContainer(Short_t nCells)
Float_t GetTPCCrossedRows() const
Double_t GetTRDchi2() const
Double_t GetChi2TPCConstrainedVsGlobal(const AliESDVertex *vtx) const
void SetEMCALcluster(Int_t index)
const Double32_t * GetT0amplitude() const
Int_t GetRunNumber() const
AliESDCaloCells * GetPHOSCells() const
AliESDCaloCells * GetEMCALCells() const
static Int_t GetReferenceMultiplicity(const AliESDEvent *esd, Bool_t tpcOnly)
Container with calorimeter trigger information in the ESD event.
TString GetFiredTriggerClasses() const
virtual Double_t GetTheta(Int_t i) const
Float_t GetZNTDCDiff(Int_t ihit) const
void SetPxPyPzAtDCA(Double_t pX, Double_t pY, Double_t pZ)
Double_t GetTrackPtOnEMCal() const
void SetZNATDC(Float_t tdc)
TBits * fbitfieldPCMv0sB
Bitfield with PCM v0s from offline v0 finder.
void SetZDCTDCDiff(Float_t tdc)
AliAODCaloCells * GetPHOSCells() const
#define AliCodeTimerAuto(message, counter)
void ConvertTPCOnlyTracks(const AliESDEvent &esd)
void SetZNCTDCm(Int_t i, Float_t tdc)
virtual void SetITSClusters(Int_t layer, UInt_t clusters)
virtual Short_t GetZDCParticipants() const
virtual Double_t GetZ() const
void SetTrackMatchReference(AliVTrack *trk)
void SetDetPID(AliAODPid *aodpid)
Double_t GetTrackDz(void) const
AliMultiplicity * GetMultiplicity() const
Bool_t fAreKinksEnabled
whether or not to fill the kinks (true by default)
const Double_t * GetCovariance() const
Double_t GetTPCchi2() const
Bool_t fEnableFillAOD
value that decides if this task activates AOD filling
ULong64_t GetStatus() const
Float_t GetZDCTDCCorrected(Int_t i, Int_t j) const
Bool_t GetPxPyPz(Double_t *p) const
UInt_t GetNLabels() const
void SetZPCTowers(const Double_t value[5], const Double_t valueLG[5])
Int_t * GetLabels() const
UShort_t GetTPCsignalN() const
AliAODTrdTrack & AddTrdTrack(const AliVTrdTrack *track)
UShort_t GetTPCNcls() const
void ConvertZDC(const AliESDEvent &esd)
Int_t Tracks2V0vertices(AliESDEvent *event)
Int_t fNumberOfPositiveTracks
current number of positive tracks
Bool_t fAreCaloClustersEnabled
whether or not to fill the calo clusters (true by default)
void SetZEM1Energy(const Double_t zem1)
void ConvertTracklets(const AliESDEvent &esd)
void SetParent(TObject *parent)
Float_t GetTimeFull(Int_t ch, Int_t hit) const
void SetIsGlobalConstrained(Bool_t b=kTRUE)
void ConvertKinks(const AliESDEvent &esd)
virtual Double_t GetImpactParameter() const
void ConvertCascades(const AliESDEvent &esd)
Bool_t fAreCascadesEnabled
whether or not to fill the cascades branch (true by default)
UChar_t GetNExMax() const
Int_t GetL1V0(Int_t i) const
AliVEventHandler * GetOutputEventHandler() const
Bool_t GetConstrainedXYZ(Double_t *r) const
void SetIntegratedLength(Double_t l)
Short_t GetCellNumber(Short_t pos) const
static AliESDtrackCuts * GetStandardTPCOnlyTrackCuts()
AliESDTrdTrack * GetTrdTrack(Int_t i) const
virtual AliAODEvent * AODEvent() const
UInt_t GetNumberOfITSClusters(Int_t layer) const
void SetTRDncls(UChar_t ncls, Int_t layer=-1)
Bool_t fArePmdClustersEnabled
whether or not to fill the pmd clusters (true by default)
void SelectParticle(Int_t i)
void SetZPCTDC(Float_t tdc)
Double_t GetTRDsignal() const
void SetZDCImpactParameter(Float_t b, Float_t bA, Float_t bC)
Calorimeter cluster data container.
#define AliFatal(message)
virtual Double_t GetX() const
Bool_t fIsMuonCaloPass
whether or not this filtering is used on a muon_calo ESD
void SetZPATDCm(Int_t i, Float_t tdc)
virtual TTree * OutputTree() const
UInt_t GetOrbitNumber() const
AliAODHeader * ConvertHeader(const AliESDEvent &esd)
TClonesArray * GetPmdClusters() const
const AliESDTZERO * GetESDTZERO() const
virtual void SetFastOrFiredChipMap(const TBits &fochips)
Double_t GetChi2Xi() const
virtual const Double_t * GetZNCTowerEnergy() const
void SetPropagateTrackToEMCal(Bool_t propagate)
TObjArray * RefitESDVertexTracks(AliESDEvent *esdEv, Int_t algo=6, const Double_t *cuts=0)
Bool_t SetCell(Short_t pos, Short_t cellNumber, Double_t amplitude, Double_t time, Int_t mclabel=-1, Double_t efrac=0., Bool_t isHG=kFALSE)
Int_t ConvertHMPID(const AliESDEvent &esd)
void CreateContainer(Int_t nTracks)
void SetITSSharedMap(UChar_t map)
Double_t GetEFraction(Short_t pos) const
Bool_t GetPileupFlag() const
void ConvertTZERO(const AliESDEvent &esd)
AliTOFPIDResponse & GetTOFResponse()
void SetT0zVertex(Double32_t z)
void SetTOFHeader(const AliTOFHeader *tofEventTime)
void ConvertCaloClusters(const AliESDEvent &esd)
Double_t GetClusterY() const
UChar_t GetTRDntrackletsPID() const
virtual Double_t GetDeltaPhi(Int_t i) const
Double_t Chi2perNDF(AliESDtrack *track)
void SetTOFpidResolution(Double_t tofPIDres[5])
void PrintTask(Option_t *option="all", Int_t indent=0) const
void SetTPCPointsF(UShort_t findable)
Double_t fV0Cuts[7]
Array to store the values for the different reco selections V0 related.
TParticle * Particle(Int_t id, Bool_t useInEmbedding=kFALSE)
#define AliDebug(logLevel, message)
Bool_t fAddPCMv0s
Add pcm v0s when v0filter is switched on.
Double_t GetITSsignal() const
Bool_t fIsVZEROEnabled
whether or not to fill the vzero branch (true by default)
Double_t GetIntegratedLength() const
void GetPosCov(Double_t cov[6]) const
virtual const Double_t * GetZNATowerEnergy() const
Bool_t fWriteHybridTPCCOnly
write only the complent tracks not all global constrained
void Print(Option_t *option="") const
void AddDaughter(TObject *daughter)
virtual const Double_t * GetZPCTowerEnergy() const
void GetDiamondCovXY(Float_t cov[3]) const
TClonesArray * GetCaloClusters() const
void PrintMCInfo(AliStack *pStack, Int_t label)
void SetCuts(const Double_t cuts[8])
Int_t GetNumberOfTRDslices() const
UShort_t GetTPCNclsF() const
virtual Int_t GetNContributors() const
virtual UInt_t IsSelected(TObject *obj)
void SetTPCsignalN(UShort_t tpcN)
void ConvertTRD(const AliESDEvent &esd)
UChar_t GetTRDncls() const
AliAODPid * GetDetPid() const
UChar_t GetTriggerCluster() const
const AliESDVertex * GetPrimaryVertexSPD() const
Int_t GetNumberOfCascades() const
void SetTPCSharedMap(const TBits amap)
Double_t GetEmcCpvDistance() const
Analysis Oriented Data (AOD) V0 vertex class.
void SetXYAtDCA(Double_t x, Double_t y)
virtual void GetImpactParameters(Float_t &xy, Float_t &z) const
const AliESDVertex * GetPrimaryVertex() const
Short_t GetNumberOfCells() const
Double_t GetDcaXiDaughters() const
Int_t GetMCLabel(Short_t pos) const
AliAODCaloCells * GetEMCALCells() const
void GetTOFLabel(Int_t *p) const
TObject * GetParent() const
void ConvertGlobalConstrainedTracks(const AliESDEvent &esd)
Int_t GetNumberOfTracks() const
UInt_t GetPeriodNumber() const
AliESDtrack * GetTrack(Int_t i) const
const AliESDRun * GetESDRun() const
Container class for AOD TZERO data.
AliVTrack * GetTrackMatch() const
Container class for AOD VZERO data.
Int_t fNumberOfKinks
current number of kinks
static Bool_t ExtrapolateTrackToEMCalSurface(AliVTrack *track, Double_t emcalR=440, Double_t mass=0.1396, Double_t step=20, Double_t minpT=0.35, Bool_t useMassForTracking=kFALSE, Bool_t useDCA=kFALSE)
void GetPosCovXi(Double_t cov[6]) const
Float_t GetCurrentDip() const
Double_t GetTime(Short_t pos) const
void SetTrackDistance(Double_t dx, Double_t dz)
virtual Double_t GetPhi(Int_t i) const
virtual void SetFiredChipMap(const TBits &firedChips)
Bool_t RelateToVertexTPC(const AliESDVertex *vtx, Double_t b, Double_t maxd, AliExternalTrackParam *cParam=0)
Int_t GetNumberOfCaloClusters() const
Double_t GetZDCN2Energy() const
AliESDHeader * GetHeader() const
virtual Bool_t GetStatus() const
void SetRequireITSPureStandAlone(Bool_t b=kFALSE)
virtual const Double_t * GetZNATowerEnergyLR() const
#define AliError(message)
void SetZDCTDCSum(Float_t tdc)
void GetCovMatrix(Double_t covmatrix[6]) const
void DefineOutput(Int_t islot, TClass *type)
void SetZNATowers(const Double_t value[5], const Double_t valueLG[5])
TF1 * fPtshape
Pt spectrum distribution.
void GetIntegratedTimes(Double_t *times, Int_t nspec=AliPID::kSPECIES) const
void DisablePmdClusters()
virtual Bool_t UsesTrack(Int_t index) const
void SetChi2TPCConstrainedVsGlobal(Double_t chi2)
UInt_t * fUsedTrackCopy
! filterbits of tracks for which a copy was added to the AODs
Class for calorimeter cell ESD data handling.
Bool_t GetHighGain(Short_t pos) const
format for the TRD tracks calculated in the
void SetPileupBits(TBits pileup)
Int_t GetNumberOfPmdTracks() const
void GetTime(Float_t &time) const
Int_t GetPHOScluster() const
AliAODTZERO * GetTZEROData() const
void ConvertTracks(const AliESDEvent &esd)
virtual void SetFiredChips(Int_t layer, Short_t firedChips)
void GetXYZcascade(Double_t &x, Double_t &y, Double_t &z) const
Double_t GetDiamondZ() const
void SetZDCParticipants(Int_t npart, Int_t npartA, Int_t npartC)
UChar_t GetITSClusterMap() const
void SetRefitVertexTracks(Int_t algo=6, Double_t *cuts=0)
UInt_t * GetCellsMCEdepFractionMap() const
Int_t GetNumberOfKinks() const
UChar_t GetITSSharedMap() const
AliVEventHandler * fInputHandler
! Input Handler
virtual const TBits & GetFiredChipMap() const
virtual ~AliAnalysisTaskESDfilter()
Float_t GetD(Double_t x0, Double_t y0) const
Class to handle the AOD tracks with good HMPID rings.
const TBits & GetTPCSharedMap() const
void GetL1TimeSum(Int_t ×um) const
Get the L1 time sums (L1 ADC values) for the current fastor.
Double32_t * GetCellsAmplitudeFraction()
void SetPIDForTracking(Int_t pid)
Double_t GetChi2V0() const
Double_t GetClusterX() const
TClonesArray * GetVertices() const
Double_t GetZDCP1Energy() const
Int_t fRefitVertexTracks
request to refit the vertex if >=0 (algoID if cuts not supplied, otherwise ncuts) ...
void GetPosition(Float_t *x) const
TH1D * fv0Histos
v0 histos for PCM consistency checks
Bool_t fIsZDCEnabled
whether or not to fill the zdc branch (true by default)
const AliESDEvent * GetESDEvent() const
Int_t fNumberOfCascades
current number of cascades
virtual Long64_t Entry() const
void SetZPATowers(const Double_t value[5], const Double_t valueLG[5])
void SetSatelliteFlag(Bool_t sat=false)
void Allocate(Int_t size)
AliESDpid * fESDpid
esd pid
AOD track implementation of AliVTrack.
void SetZPCTDCm(Int_t i, Float_t tdc)
Double_t GetAmplitude(Short_t pos) const
void SetAmp(Int_t pmt, Float_t amp)
AliTOFHeader * GetTOFHeader() const
void CopyChi2TPCConstrainedVsGlobal(AliESDtrack *esdt, AliAODTrack *aodt)
Double_t fEMCalSurfaceDistance
EMCal surface distance from the center of the detector (r = 440 by default)
void GetNL0Times(Int_t &ntimes) const
Get the number of L0 times for the current patch.
void SetScaleDThetaBySin2T(Bool_t v)
Double32_t GetT0zVertex() const
AliAODAD * GetADData() const
void SetIsHybridTPCConstrainedGlobal(Bool_t hybrid=kTRUE)
Bool_t fWriteHybridGCOnly
write only the complent tracks not all global constrained
void SetPHOScluster(Int_t index)
const AliExternalTrackParam * GetConstrainedParam() const
Double_t GetD(Double_t xv, Double_t yv, Double_t b) const
AliAODHandler * aodHandler
AliMCEventHandler * fMChandler
pointer to MC handler (if any)
UInt_t GetFilterMap() const
static AliESDtrack * GetTPCOnlyTrack(const AliESDEvent *esd, Int_t iTrack)
virtual const TBits & GetFastOrFiredChipMap() const
Int_t GetL1FrameMask() const
void ConvertPrimaryVertices(const AliESDEvent &esd)
AliAODVertex * fPrimaryVertex
pointer to primary vertex of the event
Int_t GetNumberOfTPCTracks() const
void ConvertCaloTrigger(TString calo, const AliESDEvent &esd)
const Double_t * GetPID() const
Double_t GetTOFsignal() const
void SetT0VertexRaw(Float_t vtx)
TRefArray * fAODV0VtxRefs
array of v0 vertices references
void SetITSchi2(Double_t ITSchi2)
virtual Int_t GetNumberOfTracklets() const
Double_t GetDcaV0Daughters() const
Int_t fNumberOfV0s
current number of v0s
UShort_t GetBunchCrossNumber() const
Bool_t * fUsedTrack
! indices of used tracks
void SetTRDsignal(Double_t sig)
TBits * fbitfieldPCMv0sA
Bitfield with PCM v0s from on-fly v0 finder.
void AddTracklet(const AliVTrdTracklet &trkl, Int_t layer)