LCOV - code coverage report
Current view: top level - STEER/STEERBase - AliVMultiplicity.h (source / functions) Hit Total Coverage
Test: coverage.info Lines: 9 17 52.9 %
Date: 2016-06-14 17:26:59 Functions: 9 21 42.9 %

          Line data    Source code
       1             : #ifndef ALIVMULTIPLICITY_H
       2             : #define ALIVMULTIPLICITY_H
       3             : 
       4             : #include <TNamed.h>
       5             : #include <TMath.h>
       6             : class TBits;
       7             : 
       8             : //////////////////////////////////////////////////////////
       9             : //                                                      //
      10             : //     Base virtual class for multiplicity information  //
      11             : //                                                      //
      12             : //////////////////////////////////////////////////////////
      13             : 
      14             : class AliVMultiplicity : public TNamed {
      15             : 
      16             :  public:
      17             :   //
      18             :   enum {kMultTrackRefs  =BIT(14), // in new format (old is default for bwd.comp.) multiple cluster->track references are allowed
      19             :         kScaleDThtbySin2=BIT(15), // scale Dtheta by 1/sin^2(theta). Default is DON'T scale, for bwd.comp.
      20             :         kSPD2Sng        =BIT(16)  // are SPD2 singles stored?
      21             :   };   
      22             :   //
      23           4 :   AliVMultiplicity() {}
      24         118 :  AliVMultiplicity(const char* name, const char* title) : TNamed(name,title) {}
      25           0 :   AliVMultiplicity(const AliVMultiplicity& m) : TNamed(m) {}
      26          40 :   AliVMultiplicity& operator=(const AliVMultiplicity& m) {if (this!=&m) TNamed::operator=(m); return *this;}
      27          90 :   virtual ~AliVMultiplicity() {}
      28             :   //
      29             :   // methods to access tracklet information
      30           0 :   Bool_t  GetMultTrackRefs()                          const {return TestBit(kMultTrackRefs);}
      31           0 :   Bool_t  GetScaleDThetaBySin2T()                     const {return TestBit(kScaleDThtbySin2);}
      32           0 :   void    SetMultTrackRefs(Bool_t v)                        {SetBit(kMultTrackRefs,v);}
      33           8 :   void    SetScaleDThetaBySin2T(Bool_t v)                   {SetBit(kScaleDThtbySin2,v);}
      34             :   //
      35             :   virtual void Clear(Option_t* opt="");
      36             :   //
      37             :   virtual Int_t    GetNumberOfTracklets()             const = 0;
      38             :   virtual Double_t GetTheta(Int_t i)                  const = 0;
      39             :   virtual Double_t GetPhi(Int_t i)                    const = 0;
      40             :   virtual Double_t GetDeltaPhi(Int_t i)               const = 0;
      41             :   virtual Int_t    GetLabel(Int_t i, Int_t layer)     const = 0;
      42             :   virtual void     SetLabel(Int_t i, Int_t layer, Int_t label) = 0;
      43             :   Double_t         GetEta(Int_t i)                    const 
      44             :   { 
      45         576 :     if(i>=0 && i<GetNumberOfTracklets()) return -TMath::Log(TMath::Tan(GetTheta(i)/2.));
      46           0 :     Error("GetEta","Invalid track number %d",i); return -9999.;
      47         144 :   }
      48             :   //
      49             :   // array getters
      50             :   virtual Double_t* GetTheta()                        const = 0;
      51             :   virtual Double_t* GetPhi()                          const = 0;
      52             :   virtual Double_t* GetDeltPhi()                      const = 0;
      53             :   virtual Int_t*    GetLabels()                       const = 0;
      54             :   virtual Int_t*    GetLabels2()                      const = 0;
      55             :   //
      56             :   virtual Short_t   GetNumberOfFiredChips(Int_t)      const = 0;
      57             :   virtual void      SetFiredChips(Int_t, Short_t)           = 0;
      58             :   virtual void      SetFastOrFiredChips(UInt_t )            = 0;
      59             :   virtual void      SetFastOrFiredChipMap(const TBits&)     = 0;
      60             :   virtual const TBits& GetFastOrFiredChips()          const = 0;
      61          16 :   virtual const TBits& GetFastOrFiredChipMap()        const {return GetFastOrFiredChips();}
      62             :   virtual Bool_t    TestFastOrFiredChips(UInt_t)      const = 0;
      63             :   virtual void      SetFiredChipMap(const TBits &)          = 0;
      64             :   virtual void      SetFiredChipMap(UInt_t)                 = 0;
      65             :   virtual const TBits& GetFiredChipMap()              const = 0;
      66             :   virtual Bool_t TestFiredChipMap(UInt_t chipKey)     const = 0;
      67             :   //
      68             :   virtual void Print(Option_t *opt="")                const = 0;
      69             :   //
      70           0 :   virtual UInt_t GetNumberOfITSClusters(Int_t /*layer*/) const { return 0; }
      71           0 :   virtual UInt_t GetNumberOfSPDClusters() const { return 0; }
      72           0 :   virtual void   SetITSClusters(Int_t /*layer*/, UInt_t /*clusters*/) {}
      73         196 :   ClassDef(AliVMultiplicity,1);
      74             : };
      75             : 
      76             : 
      77             : #endif

Generated by: LCOV version 1.11