]> git.uio.no Git - u/mrichter/AliRoot.git/blob - PWG2/RESONANCES/AliRsnPairDef.h
Introduce the case when no files are to be processed and sent to the OCDB
[u/mrichter/AliRoot.git] / PWG2 / RESONANCES / AliRsnPairDef.h
1 //
2 // Class AliRsnPairDef
3 //
4 // Defines a decay channel for a resonance,
5 // resulting in a specified PDG code for the mother,
6 // and the particle type for the daughters, defined
7 // according to the internal PID format of the package
8 //
9 // author: A. Pulvirenti (alberto.pulvirenti@ct.infn.it)
10 //
11
12 #ifndef ALIRSNPAIRDEF_H
13 #define ALIRSNPAIRDEF_H
14
15 #include <TString.h>
16
17 #include "AliRsnPID.h"
18
19 class AliRsnDaughter;
20
21 class AliRsnPairDef : public TObject
22 {
23   public:
24
25     AliRsnPairDef();
26     AliRsnPairDef(Char_t sign1, AliRsnPID::EType type1,
27                   Char_t sign2, AliRsnPID::EType type2, Int_t motherPDG = 0);
28     AliRsnPairDef(AliRsnPID::EType type1, Char_t sign1,
29                   AliRsnPID::EType type2, Char_t sign2, Int_t motherPDG = 0);
30     AliRsnPairDef(const AliRsnPairDef &copy);
31     const AliRsnPairDef& operator= (const AliRsnPairDef &copy);
32     virtual ~AliRsnPairDef() { }
33
34     // getters
35     Char_t           GetCharge(Int_t i) const {if (i>=0&&i<2) return fCharge[i]; else return 0;}
36     AliRsnPID::EType GetType(Int_t i) const {if (i>=0&&i<2) return fType[i]; else return AliRsnPID::kUnknown;}
37     Double_t         GetMass(Int_t i) const {if (i>=0&&i<2) return fMass[i]; else return 0.0;}
38     Int_t            GetMotherPDG() const {return fMotherPDG;}
39     TString          GetPairName();
40
41     // setters
42     Bool_t SetPairElement(Int_t i, Char_t charge, AliRsnPID::EType pid);
43     Bool_t SetPair(Char_t ch1, AliRsnPID::EType pid1, Char_t ch2, AliRsnPID::EType pid2);
44     void   SetMotherPDG(Int_t pdg) {fMotherPDG = pdg;}
45
46     // pair information methods
47     Bool_t IsLikeSign() {return (fCharge[0] == fCharge[1]);}
48     Bool_t HasEqualTypes() {return (fType[0] == fType[1]);}
49
50     // working routines
51     Double_t ComputeWeight(AliRsnDaughter *d0, AliRsnDaughter *d1);
52
53   private:
54
55     // pair parameters
56     Int_t             fMotherPDG;  // PDG code of true mother (if known)
57     Double_t          fMass[2];    // mass of particles
58     Char_t            fCharge[2];  // charge of particles
59     AliRsnPID::EType  fType[2];    // PID of particles
60
61     // ROOT dictionary
62     ClassDef(AliRsnPairDef, 1)
63 };
64
65 #endif