Fixed warnings and coverity + added option to control filling of THnSparse
authorfbellini <fbellini@f7af4fe6-9843-0410-8265-dc069ae4e863>
Wed, 18 Apr 2012 08:40:40 +0000 (08:40 +0000)
committerfbellini <fbellini@f7af4fe6-9843-0410-8265-dc069ae4e863>
Wed, 18 Apr 2012 08:40:40 +0000 (08:40 +0000)
PWGLF/RESONANCES/AliRsnCutTrackQuality.cxx
PWGLF/RESONANCES/AliRsnCutTrackQuality.h
PWGLF/RESONANCES/AliRsnCutV0.h
PWGLF/RESONANCES/AliRsnEvent.cxx
PWGLF/RESONANCES/AliRsnListOutput.cxx
PWGLF/RESONANCES/AliRsnListOutput.h
PWGLF/RESONANCES/AliRsnMiniOutput.cxx
PWGLF/RESONANCES/AliRsnMiniOutput.h
PWGLF/RESONANCES/AliRsnMiniPair.cxx
PWGLF/RESONANCES/AliRsnMother.cxx

index 43ad5ac..0ffb024 100644 (file)
@@ -46,8 +46,9 @@ AliRsnCutTrackQuality::AliRsnCutTrackQuality(const char *name) :
    fITSmaxChi2(1E20),
    fTPCminNClusters(0),
    fTPCmaxChi2(1E20),
-  fAODTestFilterBit(-1),
-  fESDtrackCuts(0x0)
+   fCutMaxChi2TPCConstrainedVsGlobal(1E20),
+   fAODTestFilterBit(-1),
+   fESDtrackCuts(0x0)
 {
 //
 // Default constructor.
@@ -75,6 +76,7 @@ AliRsnCutTrackQuality::AliRsnCutTrackQuality(const AliRsnCutTrackQuality &copy)
    fITSmaxChi2(copy.fITSmaxChi2),
    fTPCminNClusters(copy.fTPCminNClusters),
    fTPCmaxChi2(copy.fTPCmaxChi2),
+   fCutMaxChi2TPCConstrainedVsGlobal(copy.fCutMaxChi2TPCConstrainedVsGlobal),
    fAODTestFilterBit(copy.fAODTestFilterBit),
    fESDtrackCuts(copy.fESDtrackCuts)
 {
@@ -143,10 +145,10 @@ void AliRsnCutTrackQuality::DisableAll()
    fTPCmaxChi2 = 1E20;
    fAODTestFilterBit = -1;
    if (fESDtrackCuts) {
-     const char *cutsName = fESDtrackCuts->GetName();
-     const char *cutsTitle = fESDtrackCuts->GetTitle();
-     delete fESDtrackCuts;
-     fESDtrackCuts = new AliESDtrackCuts(cutsName,cutsTitle);
+      const char *cutsName = fESDtrackCuts->GetName();
+      const char *cutsTitle = fESDtrackCuts->GetTitle();
+      delete fESDtrackCuts;
+      fESDtrackCuts = new AliESDtrackCuts(cutsName,cutsTitle);
    }
    SetPtRange(0.0, 1E20);
    SetEtaRange(-1E20, 1E20);
@@ -195,10 +197,10 @@ Bool_t AliRsnCutTrackQuality::IsSelected(TObject *object)
    AliAODTrack *aodTrack = fDaughter->Ref2AODtrack();
    if (esdTrack) {
       AliDebug(AliLog::kDebug + 2, "Checking an ESD track");
-      if (fESDtrackCuts) 
-       return fESDtrackCuts->IsSelected(esdTrack);
-      else 
-       return CheckESD(esdTrack);
+      if (fESDtrackCuts)
+         return fESDtrackCuts->IsSelected(esdTrack);
+      else
+         return CheckESD(esdTrack);
    } else if (aodTrack) {
       AliDebug(AliLog::kDebug + 2, "Checking an AOD track");
       return CheckAOD(aodTrack);
@@ -244,10 +246,10 @@ Bool_t AliRsnCutTrackQuality::CheckESD(AliESDtrack *track)
    cuts.SetMaxChi2PerClusterTPC(fTPCmaxChi2);
    cuts.SetAcceptKinkDaughters(!fRejectKinkDaughters);
    cuts.SetMaxChi2TPCConstrainedGlobal(fCutMaxChi2TPCConstrainedVsGlobal);
-   
+
    // ITS related cuts for TPC+ITS tracks
    if (fSPDminNClusters > 0)
-     cuts.SetClusterRequirementITS(AliESDtrackCuts::kSPD, AliESDtrackCuts::kAny);
+      cuts.SetClusterRequirementITS(AliESDtrackCuts::kSPD, AliESDtrackCuts::kAny);
    cuts.SetMaxChi2PerClusterITS(fITSmaxChi2);
 
    // now that all is initialized, do the check
index abf246c..63aa93d 100644 (file)
@@ -48,14 +48,14 @@ public:
    void      SetTPCminNClusters(Int_t value)           {fTPCminNClusters = value;}
    void      SetTPCmaxChi2(Double_t value)             {fTPCmaxChi2 = value;}
    void      SetMaxChi2TPCConstrainedGlobal(Float_t max) {fCutMaxChi2TPCConstrainedVsGlobal = max; }
-  
+
    void      SetRejectKinkDaughters(Bool_t yn = kTRUE) {fRejectKinkDaughters = yn;}
 
    void      SetAODTestFilterBit(Int_t value)          {fAODTestFilterBit = value;}
 
    void      SetDefaults2010();
-   void      SetESDtrackCuts(AliESDtrackCuts* esdTrackCuts){fESDtrackCuts = esdTrackCuts;}
-   AliESDtrackCuts*  GetESDtrackCuts(){return fESDtrackCuts;}
+   void      SetESDtrackCuts(AliESDtrackCuts *esdTrackCuts) {fESDtrackCuts = esdTrackCuts;}
+   AliESDtrackCuts  *GetESDtrackCuts() {return fESDtrackCuts;}
 
 
    virtual Bool_t IsSelected(TObject *obj);
index 69356ec..639f466 100644 (file)
@@ -75,7 +75,7 @@ inline void AliRsnCutV0::SetHypothesis(Int_t code)
    switch (fHypothesis) {
       case kLambda0:
          fMass = 1.11568;
-        break;
+         break;
       case kLambda0Bar:
          fMass = 1.11568;
          break;
index cc55f46..51f343b 100644 (file)
@@ -248,18 +248,18 @@ void AliRsnEvent::SetDaughterESDv0(AliRsnDaughter &out, Int_t i)
                TParticle *pp = mc->Stack()->Particle(lp);
                TParticle *pn = mc->Stack()->Particle(ln);
                if (pp && pn) {
-                // if their first mothers are the same, the V0 is true
-                // otherwise label remains '-1' --> fake V0
-                if (pp->GetFirstMother() == pn->GetFirstMother() && pp->GetFirstMother() >= 0) {
-                  out.SetLabel(pp->GetFirstMother());
-                  //patch for k0s/k0l
-                  TParticle *mom = mc->Stack()->Particle(pn->GetFirstMother());
-                  if(mom->GetPdgCode() == 310) {
-                    //take the mother of the k0s which is a k0 (311)
-                    out.SetLabel(mom->GetFirstMother());
-                  }
-                  SetMCInfoESD(out);
-                }
+                  // if their first mothers are the same, the V0 is true
+                  // otherwise label remains '-1' --> fake V0
+                  if (pp->GetFirstMother() == pn->GetFirstMother() && pp->GetFirstMother() >= 0) {
+                     out.SetLabel(pp->GetFirstMother());
+                     //patch for k0s/k0l
+                     TParticle *mom = mc->Stack()->Particle(pn->GetFirstMother());
+                     if(mom->GetPdgCode() == 310) {
+                        //take the mother of the k0s which is a k0 (311)
+                        out.SetLabel(mom->GetFirstMother());
+                     }
+                     SetMCInfoESD(out);
+                  }
                }
             }
          }
@@ -298,7 +298,7 @@ void AliRsnEvent::SetDaughterAODv0(AliRsnDaughter &out, Int_t i)
                   // otherwise label remains '-1' --> fake V0
                   if (pp->GetMother() == pn->GetMother() && pp->GetMother() >= 0) {
                      out.SetLabel(pp->GetMother());
-                    SetMCInfoAOD(out);
+                     SetMCInfoAOD(out);
                   }
                }
             }
index 0f1a3dc..29f2b5d 100644 (file)
@@ -45,6 +45,7 @@ AliRsnListOutput::AliRsnListOutput(const char *name, AliRsnListOutput::EOut type
    fNValues(0),
    fList(0x0),
    fIndex(-1),
+   fCheckHistRange(kTRUE),
    fArray(0)
 {
 //
@@ -64,6 +65,7 @@ AliRsnListOutput::AliRsnListOutput(const AliRsnListOutput &copy) :
    fNValues(copy.fNValues),
    fList(copy.fList),
    fIndex(copy.fIndex),
+   fCheckHistRange(copy.fCheckHistRange),
    fArray(0)
 {
 //
@@ -93,6 +95,7 @@ AliRsnListOutput &AliRsnListOutput::operator=(const AliRsnListOutput &copy)
    fNValues = copy.fNValues;
    fList = copy.fList;
    fIndex = copy.fIndex;
+   fCheckHistRange = copy.fCheckHistRange;
    fArray = copy.fArray;
 
    Reset();
@@ -388,8 +391,10 @@ Bool_t AliRsnListOutput::Fill(TObject *target, Int_t step)
       return kTRUE;
    } else if (obj->InheritsFrom(THnSparse::Class())) {
       THnSparseF *h = (THnSparseF *)obj;
-      for (Int_t iAxis = 0; iAxis<h->GetNdimensions(); iAxis++) {
-         if (fArray.At(iAxis)>h->GetAxis(iAxis)->GetXmax() || fArray.At(iAxis)<h->GetAxis(iAxis)->GetXmin()) return kFALSE;
+      if (fCheckHistRange) {
+         for (Int_t iAxis = 0; iAxis<h->GetNdimensions(); iAxis++) {
+            if (fArray.At(iAxis)>h->GetAxis(iAxis)->GetXmax() || fArray.At(iAxis)<h->GetAxis(iAxis)->GetXmin()) return kFALSE;
+         }
       }
       h->Fill(fArray.GetArray());
       return kTRUE;
@@ -457,8 +462,10 @@ Bool_t AliRsnListOutput::Fill(AliRsnEvent *ev, AliRsnDaughter *d)
       return kTRUE;
    } else if (obj->InheritsFrom(THnSparse::Class())) {
       THnSparseF *h = (THnSparseF *)obj;
-      for (Int_t iAxis = 0; iAxis<h->GetNdimensions(); iAxis++) {
-         if (values[iAxis]>h->GetAxis(iAxis)->GetXmax() || values[iAxis]<h->GetAxis(iAxis)->GetXmin()) return kFALSE;
+      if (fCheckHistRange) {
+         for (Int_t iAxis = 0; iAxis<h->GetNdimensions(); iAxis++) {
+            if (values[iAxis]>h->GetAxis(iAxis)->GetXmax() || values[iAxis]<h->GetAxis(iAxis)->GetXmin()) return kFALSE;
+         }
       }
       h->Fill(values);
       return kTRUE;
index 34ec928..933eef1 100644 (file)
@@ -32,6 +32,7 @@
 #include <TH3.h>
 #include <TNtuple.h>
 #include <THnSparse.h>
+#include <Rtypes.h>
 
 class AliCFContainer;
 class AliRsnValue;
@@ -58,9 +59,11 @@ public:
    Int_t           GetNValues()            {return (fNValues = fValues.GetEntries());}
    AliRsnValue    *GetValue(Int_t i) const {return (AliRsnValue *)fValues[i];}
    Int_t           GetIndex() const        {return  fIndex;}
+   Bool_t          GetFillHistogramOnlyInRange() { return fCheckHistRange; }
    void            SetType(EOut type)      {fType = type;}
    void            SetSteps(Int_t n)       {fSteps = n;}
    void            SetSkipFailed(Bool_t y) {fSkipFailed = y;}
+   void            SetFillHistogramOnlyInRange(Bool_t fillInRangeOnly) { fCheckHistRange = fillInRangeOnly; }
 
    void            AddValue(AliRsnValue *value);
 
@@ -82,10 +85,11 @@ private:
    Int_t            fNValues;       //! number of values (internal use)
    TList           *fList;          //! list containing the output
    Int_t            fIndex;         //  index of object in the list
+   Bool_t           fCheckHistRange;//  check if values is in histogram range
 
    TArrayD          fArray;         //! temp array of computed values
 
-   ClassDef(AliRsnListOutput, 1)    //  AliRsnListOutput class
+   ClassDef(AliRsnListOutput, 2)    //  AliRsnListOutput class
 };
 
 #endif
index 5df3ea5..a139c6e 100644 (file)
@@ -44,7 +44,8 @@ AliRsnMiniOutput::AliRsnMiniOutput() :
    fPair(),
    fList(0x0),
    fSel1(0),
-   fSel2(0)
+   fSel2(0),
+   fCheckHistRange(kTRUE)
 {
 //
 // Constructor
@@ -69,7 +70,8 @@ AliRsnMiniOutput::AliRsnMiniOutput(const char *name, EOutputType type, EComputat
    fPair(),
    fList(0x0),
    fSel1(0),
-   fSel2(0)
+   fSel2(0),
+   fCheckHistRange(kTRUE)
 {
 //
 // Constructor
@@ -94,7 +96,8 @@ AliRsnMiniOutput::AliRsnMiniOutput(const char *name, const char *outType, const
    fPair(),
    fList(0x0),
    fSel1(0),
-   fSel2(0)
+   fSel2(0),
+   fCheckHistRange(kTRUE)
 {
 //
 // Constructor, with a more user friendly implementation, where
@@ -165,7 +168,8 @@ AliRsnMiniOutput::AliRsnMiniOutput(const AliRsnMiniOutput &copy) :
    fPair(),
    fList(copy.fList),
    fSel1(0),
-   fSel2(0)
+   fSel2(0),
+   fCheckHistRange(copy.fCheckHistRange)
 {
 //
 // Copy constructor
@@ -206,6 +210,7 @@ AliRsnMiniOutput &AliRsnMiniOutput::operator=(const AliRsnMiniOutput &copy)
 
    fSel1.Set(0);
    fSel2.Set(0);
+   fCheckHistRange = copy.fCheckHistRange;
 
    return (*this);
 }
@@ -566,7 +571,13 @@ void AliRsnMiniOutput::FillHistogram()
    } else if (obj->InheritsFrom(TH3F::Class())) {
       ((TH3F *)obj)->Fill(fComputed[0], fComputed[1], fComputed[2]);
    } else if (obj->InheritsFrom(THnSparseF::Class())) {
-      ((THnSparseF *)obj)->Fill(fComputed.GetArray());
+      THnSparseF *h = (THnSparseF *)obj;
+      if (fCheckHistRange) {
+         for (Int_t iAxis = 0; iAxis<h->GetNdimensions(); iAxis++) {
+            if (fComputed.At(iAxis)>h->GetAxis(iAxis)->GetXmax() || fComputed.At(iAxis)<h->GetAxis(iAxis)->GetXmin()) return;
+         }
+      }
+      h->Fill(fComputed.GetArray());
    } else {
       AliError("No output initialized");
    }
index 93e7605..5f473ab 100644 (file)
@@ -72,6 +72,7 @@ public:
    Int_t           GetCharge(Int_t i)   const {if (i <= 0) return fCharge[0]; else return fCharge[1];}
    Int_t           GetMotherPDG()       const {return fMotherPDG;}
    Double_t        GetMotherMass()      const {return fMotherMass;}
+   Bool_t          GetFillHistogramOnlyInRange() { return fCheckHistRange; }
 
    void            SetOutputType(EOutputType type)    {fOutputType = type;}
    void            SetComputation(EComputation src)   {fComputation = src;}
@@ -81,6 +82,7 @@ public:
    void            SetMotherPDG(Int_t pdg)            {fMotherPDG = pdg;}
    void            SetMotherMass(Double_t mass)       {fMotherMass = mass;}
    void            SetPairCuts(AliRsnCutSet *set)     {fPairCuts = set;}
+   void            SetFillHistogramOnlyInRange(Bool_t fillInRangeOnly) { fCheckHistRange = fillInRangeOnly; }
 
    void            AddAxis(Int_t id, Int_t nbins, Double_t min, Double_t max);
    void            AddAxis(Int_t id, Double_t min, Double_t max, Double_t step);
@@ -118,7 +120,9 @@ private:
    TArrayI          fSel1;             //! list of selected particles for definition 1
    TArrayI          fSel2;             //! list of selected particles for definition 2
 
-   ClassDef(AliRsnMiniOutput,1)  // AliRsnMiniOutput class
+   Bool_t           fCheckHistRange;   //  check if values is in histogram range
+
+   ClassDef(AliRsnMiniOutput,2)  // AliRsnMiniOutput class
 };
 
 #endif
index b4b1271..31a2dfe 100644 (file)
@@ -39,19 +39,19 @@ Double_t AliRsnMiniPair::CosThetaStar(Bool_t useMC)
 
    TLorentzVector &mother    = fSum[ID(useMC)];
    TLorentzVector &daughter0 = fP1[ID(useMC)];
-   TLorentzVector &daughter1 = fP2[ID(useMC)];
+//    TLorentzVector &daughter1 = fP2[ID(useMC)];
    TVector3 momentumM(mother.Vect());
    TVector3 normal(mother.Y() / momentumM.Mag(), -mother.X() / momentumM.Mag(), 0.0);
 
    // Computes first the invariant mass of the mother
-   Double_t mass0      = daughter0.M();
-   Double_t mass1      = daughter1.M();
-   Double_t p0         = daughter0.Vect().Mag();
-   Double_t p1         = daughter1.Vect().Mag();
-   Double_t E0         = TMath::Sqrt(mass0 * mass0 + p0 * p0);
-   Double_t E1         = TMath::Sqrt(mass1 * mass1 + p1 * p1);
-   Double_t MotherMass = TMath::Sqrt((E0 + E1) * (E0 + E1) - (p0 * p0 + 2.0 * daughter0.Vect().Dot(daughter1.Vect()) + p1 * p1));
-   MotherMass = mother.M();
+//    Double_t mass0      = daughter0.M();
+//    Double_t mass1      = daughter1.M();
+//    Double_t p0         = daughter0.Vect().Mag();
+//    Double_t p1         = daughter1.Vect().Mag();
+//    Double_t E0         = TMath::Sqrt(mass0 * mass0 + p0 * p0);
+//    Double_t E1         = TMath::Sqrt(mass1 * mass1 + p1 * p1);
+//    Double_t MotherMass = TMath::Sqrt((E0 + E1) * (E0 + E1) - (p0 * p0 + 2.0 * daughter0.Vect().Dot(daughter1.Vect()) + p1 * p1));
+//    MotherMass = mother.M();
 
    // Computes components of beta
    Double_t betaX = -mother.X() / mother.E();
index 7be7ab0..8f365f3 100644 (file)
@@ -196,19 +196,19 @@ Double_t AliRsnMother::CosThetaStar(Bool_t first, Bool_t useMC)
 
    TLorentzVector &mother    = Sum(useMC);
    TLorentzVector &daughter0 = (first ? fDaughter[0]->P(useMC) : fDaughter[1]->P(useMC));
-   TLorentzVector &daughter1 = (first ? fDaughter[1]->P(useMC) : fDaughter[0]->P(useMC));
+//    TLorentzVector &daughter1 = (first ? fDaughter[1]->P(useMC) : fDaughter[0]->P(useMC));
    TVector3 momentumM(mother.Vect());
    TVector3 normal(mother.Y() / momentumM.Mag(), -mother.X() / momentumM.Mag(), 0.0);
 
-   // Computes first the invariant mass of the mother
-   Double_t mass0      = fDaughter[0]->P(useMC).M();
-   Double_t mass1      = fDaughter[1]->P(useMC).M();
-   Double_t p0         = daughter0.Vect().Mag();
-   Double_t p1         = daughter1.Vect().Mag();
-   Double_t E0         = TMath::Sqrt(mass0 * mass0 + p0 * p0);
-   Double_t E1         = TMath::Sqrt(mass1 * mass1 + p1 * p1);
-   Double_t MotherMass = TMath::Sqrt((E0 + E1) * (E0 + E1) - (p0 * p0 + 2.0 * daughter0.Vect().Dot(daughter1.Vect()) + p1 * p1));
-   MotherMass = fSum.M();
+//    // Computes first the invariant mass of the mother
+//    Double_t mass0      = fDaughter[0]->P(useMC).M();
+//    Double_t mass1      = fDaughter[1]->P(useMC).M();
+//    Double_t p0         = daughter0.Vect().Mag();
+//    Double_t p1         = daughter1.Vect().Mag();
+//    Double_t E0         = TMath::Sqrt(mass0 * mass0 + p0 * p0);
+//    Double_t E1         = TMath::Sqrt(mass1 * mass1 + p1 * p1);
+//    Double_t MotherMass = TMath::Sqrt((E0 + E1) * (E0 + E1) - (p0 * p0 + 2.0 * daughter0.Vect().Dot(daughter1.Vect()) + p1 * p1));
+//    MotherMass = fSum.M();
 
    // Computes components of beta
    Double_t betaX = -mother.X() / mother.E();