add few ebe dihadron and jet correlation to be compared to normal dihadron correlation
authorlmilano <lmilano@cern.ch>
Mon, 8 Dec 2014 15:35:40 +0000 (16:35 +0100)
committerlmilano <lmilano@cern.ch>
Mon, 8 Dec 2014 15:38:22 +0000 (16:38 +0100)
PWGCF/Correlations/JCORRAN/AliJHistManager.cxx
PWGCF/Correlations/JCORRAN/AliJHistManager.h
PWGCF/Correlations/JCORRAN/AliJJet.cxx
PWGCF/Correlations/JCORRAN/AliJJet.h

index 6721eb0..3e30f89 100644 (file)
@@ -1,4 +1,5 @@
 #include "AliJHistManager.h"
+#include <TMath.h>
 using namespace std;
 //////////////////////////////////////////////////////
 //  AliJBin
@@ -156,13 +157,13 @@ AliJBin& AliJBin::SetBin(const int  n){
 }
 //_____________________________________________________
 void AliJBin::AddBin( const TString& v ){
-    if( fIsFixedBin ) { JERROR( "You can't Add Bin"); }
+    if( fIsFixedBin ) { JERROR( "You can't Add Bini "+GetName()); }
     fBinStr.push_back( (v=="_")?"":v );
     fBinD.push_back( v.Atof() );
 }
 //_____________________________________________________
 void AliJBin::AddBin( float v ){
-    if( fIsFixedBin ) { JERROR( "You can't Add Bin"); }
+    if( fIsFixedBin ) { JERROR( "You can't Add Bin "+GetName()); }
     fBinD.push_back( v ); 
     fBinStr.push_back(Form("%f",v));
 }
@@ -189,6 +190,12 @@ void AliJBin::Print(){
     std::cout<<"*"+GetString()<<std::endl;
 }
 
+int AliJBin::GetBin(double x){
+  int i =  TMath::BinarySearch( fBinD.size(), &fBinD[0], x ); 
+  if( fMode == kRange && i+1 >= int(fBinD.size()) ) return -1;
+  return i;
+}
+
 //////////////////////////////////////////////////////
 // AliJArrayBase 
 //////////////////////////////////////////////////////
index a3dc3d1..40448a9 100644 (file)
@@ -98,6 +98,8 @@ class AliJBin : public AliJNamed {
         AliJBin & SetBin( const TString  v );
         AliJBin & SetBin( const int n );
 
+        int GetBin( double x );
+
         double GetMin(){ return fBinD[0]; }
         double GetMax(){ return fBinD[RawSize()-1]; }
 
index 5d0803e..034655e 100644 (file)
 
 AliJJet::AliJJet(): 
     AliJBaseTrack(), 
+    fLeadingTrackId(-1),
+    fLeadingTrackPt(-1),
+    fLeadingTrackE(-1),
+    fNConstituent(0),
     fArea(0),
     fConstituents()
 {;}
@@ -26,18 +30,30 @@ AliJJet::AliJJet():
 
 AliJJet::AliJJet(float px,float py, float pz, float e, Int_t id, Short_t ptype, Char_t charge):
     AliJBaseTrack( px, py, pz, e, id, ptype, charge ),
+    fLeadingTrackId(-1),
+    fLeadingTrackPt(-1),
+    fLeadingTrackE(-1),
+    fNConstituent(0),
     fArea(0),
     fConstituents()
 {;}
 
 AliJJet::AliJJet(const AliJJet& a):
     AliJBaseTrack( a ),
+    fLeadingTrackId( a.fLeadingTrackId),
+    fLeadingTrackPt( a.fLeadingTrackPt),
+    fLeadingTrackE( a.fLeadingTrackE),
+    fNConstituent(a.fNConstituent),
     fArea( a.fArea ),
     fConstituents( a.fConstituents )
 {;}
 
 AliJJet::AliJJet(const TLorentzVector & a):
     AliJBaseTrack( a ),
+    fLeadingTrackId(-1),
+    fLeadingTrackPt(-1),
+    fLeadingTrackE(-1),
+    fNConstituent(0),
     fArea(0),
     fConstituents()
 {;}
@@ -49,8 +65,38 @@ AliJJet& AliJJet::operator=(const AliJJet& trk){
     AliJBaseTrack::operator=(trk);
     fArea = trk.fArea;
     fConstituents = trk.fConstituents;
+    fLeadingTrackId = trk.fLeadingTrackId;
+    fLeadingTrackPt = trk.fLeadingTrackPt;
+    fLeadingTrackE = trk.fLeadingTrackE;
   }
   return *this;
 }
 
+void AliJJet::ReSum(){
+    TLorentzVector lv;
+    int lid = -1;
+    double lpt = 1e-10;
+    int lidE = -1;
+    double lE = 1e-10;
+    fNConstituent = fConstituents.GetEntriesFast();
+    for( int i=0;i<GetNConstituents();i++ ){
+        AliJBaseTrack * trk = (AliJBaseTrack*) fConstituents[i];
+        if( !trk ){ 
+            cout<<"DEBUG E1 : No trk in "<<endl;
+        continue;
+        }
+        TLorentzVector * v = (TLorentzVector*)fConstituents[i];
+        v->SetE( v->Perp() );
+        lv += *v;
+        double pt = trk->Pt();
+        if( pt > lpt ){lpt = pt;lid = i;}
+        double e = trk->E();
+        if( e > lE ){lE = e;lidE = i;}
+    }
+       fLeadingTrackId = lid;
+    fLeadingTrackPt = lpt;
+    fLeadingTrackE = lE;
+    TLorentzVector::operator=(lv);
+}
+
 ClassImp(AliJJet)
index a038197..ce15eab 100644 (file)
@@ -37,7 +37,9 @@ public:
   AliJJet(float px,float py, float pz, float e, Int_t id, Short_t ptype, Char_t charge); // constructor
   AliJJet(const AliJJet& a);
   AliJJet(const TLorentzVector & a);
-  virtual ~AliJJet(){; }    //destructor
+  virtual ~AliJJet(){
+      ; 
+  }    //destructor
   AliJJet& operator=(const AliJJet& trk);
   
   void SetArea(double a){ fArea = a; }
@@ -45,11 +47,22 @@ public:
   Double_t Area() const{ return fArea; }
   void AddConstituent(TObject* t){ fConstituents.Add(t); }
   TObjArray* GetConstituents(){ return &fConstituents; }
+  int GetNConstituents(){ return fNConstituent; }
+  //int GetNConstituents(){ return fConstituents.GetEntriesFast(); }
   AliJBaseTrack * GetConstituent(int i) const{ return (AliJBaseTrack*)fConstituents[i]; }
+  void ReSum();
+  int LeadingParticleId(){ return fLeadingTrackId; }
+  double LeadingParticlePt(){ return fLeadingTrackPt; }
+  double LeadingParticleE(){ return fLeadingTrackE; }
   
 private:
+  int      fLeadingTrackId;     //! id of leading track in constituents
+  double   fLeadingTrackPt;
+  double   fLeadingTrackE;
+  double   fNConstituent;
   Double_t fArea;              // Area of the jet
-  TObjArray fConstituents;     // Constituent tracks of the jets
+  TObjArray fConstituents;     //! Constituent tracks of the jets
+
   
   ClassDef(AliJJet,1)
 };