- Three classes by MinJung Kweon AliHFEpriVtx, AliHFEsecVtx and AliHFEmcQA for primar...
[u/mrichter/AliRoot.git] / STEER / AliESDpid.cxx
1 /**************************************************************************
2  * Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
3  *                                                                        *
4  * Author: The ALICE Off-line Project.                                    *
5  * Contributors are mentioned in the code where appropriate.              *
6  *                                                                        *
7  * Permission to use, copy, modify and distribute this software and its   *
8  * documentation strictly for non-commercial purposes is hereby granted   *
9  * without fee, provided that the above copyright notice appears in all   *
10  * copies and that both the copyright notice and this permission notice   *
11  * appear in the supporting documentation. The authors make no claims     *
12  * about the suitability of this software for any purpose. It is          *
13  * provided "as is" without express or implied warranty.                  *
14  **************************************************************************/
15
16 /* $Id$ */
17
18 //-----------------------------------------------------------------
19 //           Implementation of the combined PID class
20 //           For the Event Summary Data Class
21 //           produced by the reconstruction process
22 //           and containing information on the particle identification
23 //      Origin: Iouri Belikov, CERN, Jouri.Belikov@cern.ch
24 //-----------------------------------------------------------------
25
26 #include "AliESDpid.h"
27 #include "AliESDEvent.h"
28 #include "AliESDtrack.h"
29
30 ClassImp(AliESDpid)
31
32 //_________________________________________________________________________
33 Int_t AliESDpid::MakePID(AliESDEvent *event)
34 {
35   //
36   // Combine the information of various detectors
37   // to determine the Particle Identification
38   //
39   Int_t ntrk=event->GetNumberOfTracks();
40   for (Int_t i=0; i<ntrk; i++) {
41     Int_t ns=AliPID::kSPECIES;
42     Double_t p[10]={1.,1.,1.,1.,1.,1.,1.,1.,1.,1.};
43
44     AliESDtrack *t=event->GetTrack(i);
45
46     if (t->IsOn(AliESDtrack::kITSpid)) {
47       Double_t d[10];
48       t->GetITSpid(d);
49       for (Int_t j=0; j<ns; j++) p[j]*=d[j];
50     }
51
52     if (t->IsOn(AliESDtrack::kTPCpid)) {
53       Double_t d[10];
54       t->GetTPCpid(d);
55       for (Int_t j=0; j<ns; j++) p[j]*=d[j];
56     }
57
58     if (t->IsOn(AliESDtrack::kTRDpid)) {
59       Double_t d[10];
60       t->GetTRDpid(d);
61       for (Int_t j=0; j<ns; j++) p[j]*=d[j];
62     }
63
64     if (t->IsOn(AliESDtrack::kTOFpid)) {
65       Double_t d[10];
66       t->GetTOFpid(d);
67       for (Int_t j=0; j<ns; j++) p[j]*=d[j];
68     }
69
70     if (t->IsOn(AliESDtrack::kHMPIDpid)) {
71       Double_t d[10];
72       t->GetHMPIDpid(d);
73       for (Int_t j=0; j<ns; j++) p[j]*=d[j];
74     }
75
76     t->SetESDpid(p);
77   }
78
79   return 0;
80 }