Changes for request #60532 Port to the release: Include number of ITS cluster per...
authorhristov <hristov@f7af4fe6-9843-0410-8265-dc069ae4e863>
Mon, 14 Dec 2009 20:56:17 +0000 (20:56 +0000)
committerhristov <hristov@f7af4fe6-9843-0410-8265-dc069ae4e863>
Mon, 14 Dec 2009 20:56:17 +0000 (20:56 +0000)
ITS/AliITSVertexer.cxx
STEER/AliMultiplicity.cxx
STEER/AliMultiplicity.h

index 8852db2..c6c7749 100644 (file)
@@ -4,6 +4,7 @@
 #include "AliITSVertexer.h"
 #include "AliITSLoader.h"
 #include "AliITSMultReconstructor.h"
+#include "AliITSRecPointContainer.h"
 
 const Float_t AliITSVertexer::fgkPipeRadius = 3.0;
 
@@ -94,6 +95,11 @@ void AliITSVertexer::FindMultiplicity(TTree *itsClusterTree){
     Short_t nfcL1 = multReco.GetNFiredChips(0);
     Short_t nfcL2 = multReco.GetNFiredChips(1);
     fMult = new AliMultiplicity(0,0,0,0,0,0,0,0,0,0,nfcL1,nfcL2,fastOrFiredMap);
+    AliITSRecPointContainer* rcont = AliITSRecPointContainer::Instance();
+    fMult->SetITSClusters(0,rcont->GetNClustersInLayer(1,itsClusterTree));
+    for(Int_t kk=2;kk<=6;kk++){
+      fMult->SetITSClusters(kk-1,rcont->GetNClustersInLayerFast(kk));
+    }
     return;
   }
 
@@ -132,7 +138,11 @@ void AliITSVertexer::FindMultiplicity(TTree *itsClusterTree){
   Short_t nfcL1 = multReco.GetNFiredChips(0);
   Short_t nfcL2 = multReco.GetNFiredChips(1);
   fMult = new AliMultiplicity(notracks,tht,phi,dtht,dphi,labels,labelsL2,nosingleclus,ths,phs,nfcL1,nfcL2,fastOrFiredMap);
-
+  AliITSRecPointContainer* rcont = AliITSRecPointContainer::Instance();
+  fMult->SetITSClusters(0,rcont->GetNClustersInLayer(1,itsClusterTree));
+  for(Int_t kk=2;kk<=6;kk++){
+    fMult->SetITSClusters(kk-1,rcont->GetNClustersInLayerFast(kk));
+  }
   delete [] tht;
   delete [] phi;
   delete [] dtht;
index a88fbc7..1615633 100644 (file)
@@ -1,5 +1,6 @@
 #include <string.h>
 #include "AliMultiplicity.h"
+#include "AliLog.h"
 
 ClassImp(AliMultiplicity)
 
@@ -21,6 +22,7 @@ AliMultiplicity::AliMultiplicity():
   // Default Constructor
   fFiredChips[0] = 0;
   fFiredChips[1] = 0;
+  for(Int_t ilayer = 0; ilayer < 6; ilayer++)fITSClusters[ilayer] = 0;
 }
 
 //______________________________________________________________________
@@ -66,6 +68,7 @@ AliMultiplicity::AliMultiplicity(Int_t ntr, Float_t *th,  Float_t *ph, Float_t *
   fFiredChips[0] = nfcL1;
   fFiredChips[1] = nfcL2;
   fFastOrFiredChips = fFastOr;
+  for(Int_t ilayer = 0; ilayer < 6; ilayer++)fITSClusters[ilayer] = 0;
 }
 
 //______________________________________________________________________
@@ -160,6 +163,11 @@ void AliMultiplicity::Duplicate(const AliMultiplicity& m){
 
   fFiredChips[0] = m.fFiredChips[0];
   fFiredChips[1] = m.fFiredChips[1];
+  for(Int_t ilayer = 0; ilayer < 6; ilayer++){
+    fITSClusters[ilayer] = m.fITSClusters[ilayer];
+  }
+
+  
 
   fFastOrFiredChips = m.fFastOrFiredChips;
 }
@@ -194,3 +202,25 @@ void AliMultiplicity::SetLabel(Int_t i, Int_t layer, Int_t label)
     }
     Error("SetLabel","Invalid track number %d or layer %d",i,layer);
 }
+
+//______________________________________________________________________
+UInt_t AliMultiplicity::GetNumberOfITSClusters(Int_t layMin, Int_t layMax) const {
+
+  if(layMax < layMin) {
+    AliError("layer min > layer max");
+    return 0;
+  }
+  if(layMin < 0) {
+    AliError("layer min < 0");
+    return 0;
+  }
+  if(layMax < 0) {
+    AliError("layer max > 0");
+    return 0;
+  }
+
+  Int_t sum=0; 
+  for (Int_t i=layMin; i<=layMax; i++) sum+=fITSClusters[i]; 
+  return sum; 
+
+}
index 7324694..860170a 100644 (file)
@@ -48,6 +48,10 @@ class AliMultiplicity : public TObject {
   Short_t GetNumberOfFiredChips(Int_t layer) const { return fFiredChips[layer]; }
   void SetFiredChips(Int_t layer, Short_t firedChips) { fFiredChips[layer] = firedChips; }
 
+  UInt_t GetNumberOfITSClusters(Int_t layer) const { return layer<6 ? fITSClusters[layer] : 0; }
+  UInt_t GetNumberOfITSClusters(Int_t layMin, Int_t layMax) const ;
+  void SetITSClusters(Int_t layer, UInt_t clusters) { fITSClusters[layer] = clusters; }
+
   void   SetFastOrFiredChips(UInt_t chipKey){fFastOrFiredChips.SetBitNumber(chipKey);}
   TBits  GetFastOrFiredChips() const {return fFastOrFiredChips;}
   Bool_t TestFastOrFiredChips(UInt_t chipKey) const {return fFastOrFiredChips.TestBitNumber(chipKey);}
@@ -67,10 +71,10 @@ class AliMultiplicity : public TObject {
   Double32_t *fThsingle;     //[fNsingle] array with theta values of L1 clusters
   Double32_t *fPhisingle;    //[fNsingle] array with phi values of L2 clusters
   Short_t fFiredChips[2];    // Number of fired chips in the two SPD layers
-
+  UInt_t fITSClusters[6];   // Number of ITS cluster per layer
   TBits fFastOrFiredChips;   // Map of FastOr fired chips
 
-  ClassDef(AliMultiplicity,9);
+  ClassDef(AliMultiplicity,10);
 };
 
 inline Int_t AliMultiplicity::GetLabel(Int_t i, Int_t layer) const