]>
Commit | Line | Data |
---|---|---|
06351446 | 1 | // |
2 | // *** Class AliRsnEvent *** | |
3 | // | |
4 | // A container for a collection of AliRsnDaughter objects from an event. | |
5 | // Contains also the primary vertex, useful for some cuts. | |
6 | // In order to retrieve easily the tracks which have been identified | |
7 | // as a specific type and charge, there is an array of indexes which | |
8 | // allows to avoid to loop on all tracks and have only the neede ones. | |
9 | // | |
10 | // authors: A. Pulvirenti (email: alberto.pulvirenti@ct.infn.it) | |
11 | // M. Vala (email: martin.vala@cern.ch) | |
12 | // | |
0dffcc8a | 13 | |
14 | #ifndef ALIRSNEVENT_H | |
15 | #define ALIRSNEVENT_H | |
16 | ||
4fbb2459 | 17 | #include "AliPID.h" |
18 | #include "AliRsnPIDDefESD.h" | |
e2bafbbc | 19 | #include "AliRsnDaughter.h" |
78b94cbd | 20 | |
5eb970a4 | 21 | class AliVEvent; |
22 | class AliMCEvent; | |
7c2974c8 | 23 | |
5eb970a4 | 24 | class AliRsnEvent : public TObject |
0dffcc8a | 25 | { |
06351446 | 26 | public: |
27 | ||
5eb970a4 | 28 | AliRsnEvent(AliVEvent *ref = 0, AliMCEvent *refMC = 0); |
aec0ec32 | 29 | AliRsnEvent(const AliRsnEvent& copy); |
06351446 | 30 | AliRsnEvent& operator= (const AliRsnEvent& copy); |
7c2974c8 | 31 | virtual ~AliRsnEvent(); |
32 | ||
4fbb2459 | 33 | void SetRef(AliVEvent *const event, AliMCEvent *const mc = 0) {fRef = event; fRefMC = mc;} |
34 | void SetRefMC(AliMCEvent * const mc) {fRefMC = mc;} | |
35 | AliVEvent* GetRef() {return fRef;} | |
36 | AliMCEvent* GetRefMC() {return fRefMC;} | |
37 | AliRsnPIDDefESD* GetPIDDefESD() {return &fPIDDefESD;} | |
38 | ||
39 | void SetDaughter(AliRsnDaughter &daughter, Int_t index); | |
40 | AliRsnDaughter GetDaughter(Int_t i); | |
41 | Int_t GetMultiplicity(); | |
42 | Double_t GetVz(); | |
43 | AliRsnDaughter GetLeadingParticle(Double_t ptMin = 0.0, AliPID::EParticleType type = AliPID::kUnknown); | |
44 | Double_t GetAverageMomentum(Int_t &count, AliPID::EParticleType type = AliPID::kUnknown); | |
45 | Bool_t GetAngleDistr(Double_t &angleMean, Double_t &angleRMS, AliRsnDaughter d); | |
15d5fd02 | 46 | |
4fbb2459 | 47 | void SetPriorProbability(AliPID::EParticleType type, Double_t p) {if (type>=0&&type<(Int_t)AliPID::kSPECIES)fPrior[type]=p;} |
48 | void SetPriorProbability(Double_t* const out); | |
49 | void DumpPriors(); | |
50 | void GetPriorProbability(Double_t *out) const; | |
06351446 | 51 | |
52 | private: | |
53 | ||
4fbb2459 | 54 | Bool_t AcceptTrackPID(AliRsnDaughter*const d, AliPID::EParticleType type = AliPID::kUnknown); |
15d5fd02 | 55 | |
4fbb2459 | 56 | Double_t fPrior[AliPID::kSPECIES]; // prior probabilities |
57 | AliVEvent *fRef; // pointer to input event | |
58 | AliMCEvent *fRefMC; // pointer to reference MC event (if any) | |
59 | AliRsnPIDDefESD fPIDDefESD; // (optional) customization of PID weights for ESD | |
06351446 | 60 | |
15d5fd02 | 61 | ClassDef(AliRsnEvent, 3); |
0dffcc8a | 62 | }; |
63 | ||
64 | #endif |