]> git.uio.no Git - u/mrichter/AliRoot.git/commitdiff
Port changes from v4-06-Release to the HEAD
authorakisiel <akisiel@f7af4fe6-9843-0410-8265-dc069ae4e863>
Fri, 12 Oct 2007 14:57:18 +0000 (14:57 +0000)
committerakisiel <akisiel@f7af4fe6-9843-0410-8265-dc069ae4e863>
Fri, 12 Oct 2007 14:57:18 +0000 (14:57 +0000)
36 files changed:
PWG2/FEMTOSCOPY/AliFemto/AliFemtoBasicEventCut.cxx
PWG2/FEMTOSCOPY/AliFemto/AliFemtoBasicEventCut.h
PWG2/FEMTOSCOPY/AliFemto/AliFemtoCorrFctn.h
PWG2/FEMTOSCOPY/AliFemto/AliFemtoDummyPairCut.cxx
PWG2/FEMTOSCOPY/AliFemto/AliFemtoDummyPairCut.h
PWG2/FEMTOSCOPY/AliFemto/AliFemtoEvent.cxx
PWG2/FEMTOSCOPY/AliFemto/AliFemtoEvent.h
PWG2/FEMTOSCOPY/AliFemto/AliFemtoEventCut.h
PWG2/FEMTOSCOPY/AliFemto/AliFemtoEventReader.cxx
PWG2/FEMTOSCOPY/AliFemto/AliFemtoEventReader.h
PWG2/FEMTOSCOPY/AliFemto/AliFemtoEventReaderESD.cxx
PWG2/FEMTOSCOPY/AliFemto/AliFemtoEventReaderESD.h
PWG2/FEMTOSCOPY/AliFemto/AliFemtoEventReaderESDChain.cxx
PWG2/FEMTOSCOPY/AliFemto/AliFemtoEventReaderESDChain.h
PWG2/FEMTOSCOPY/AliFemto/AliFemtoModelCorrFctn.cxx
PWG2/FEMTOSCOPY/AliFemto/AliFemtoModelCorrFctn.h
PWG2/FEMTOSCOPY/AliFemto/AliFemtoModelGausLCMSFreezeOutGenerator.h
PWG2/FEMTOSCOPY/AliFemto/AliFemtoModelHiddenInfo.cxx
PWG2/FEMTOSCOPY/AliFemto/AliFemtoModelWeightGenerator.cxx
PWG2/FEMTOSCOPY/AliFemto/AliFemtoModelWeightGenerator.h
PWG2/FEMTOSCOPY/AliFemto/AliFemtoModelWeightGeneratorLednicky.cxx
PWG2/FEMTOSCOPY/AliFemto/AliFemtoPair.cxx
PWG2/FEMTOSCOPY/AliFemto/AliFemtoPairCut.h
PWG2/FEMTOSCOPY/AliFemto/AliFemtoParticle.h
PWG2/FEMTOSCOPY/AliFemto/AliFemtoParticleCut.h
PWG2/FEMTOSCOPY/AliFemto/AliFemtoPicoEvent.cxx
PWG2/FEMTOSCOPY/AliFemto/AliFemtoPicoEvent.h
PWG2/FEMTOSCOPY/AliFemto/AliFemtoTrack.cxx
PWG2/FEMTOSCOPY/AliFemto/AliFemtoTrack.h
PWG2/FEMTOSCOPY/AliFemto/AliFemtoVertexAnalysis.cxx
PWG2/FEMTOSCOPY/AliFemto/AliFemtoVertexAnalysis.h
PWG2/FEMTOSCOPY/AliFemto/AliFemtoVertexMultAnalysis.cxx
PWG2/FEMTOSCOPY/AliFemto/AliFemtoVertexMultAnalysis.h
PWG2/FEMTOSCOPY/AliFemto/AliFemtoXi.h
PWG2/FEMTOSCOPY/AliFemto/AliFmPhysicalHelix.h
PWG2/FEMTOSCOPY/AliFemto/SystemOfUnits.h

index 0dd854797ddb0df3893b270d40fcd9bb634c1c46..18bf7d2491a9c47fc902b91c788913d7a9a82f69 100644 (file)
@@ -6,7 +6,7 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 #include "AliFemtoBasicEventCut.h"
-#include <cstdio>
+//#include <cstdio>
 
 #ifdef __ROOT__
 ClassImp(AliFemtoBasicEventCut)
@@ -15,37 +15,40 @@ ClassImp(AliFemtoBasicEventCut)
 AliFemtoBasicEventCut::AliFemtoBasicEventCut() :
   fNEventsPassed(0), fNEventsFailed(0)
 {
-  /* no-op */
+  // Default constructor
 } 
 //------------------------------
-//AliFemtoBasicEventCut::~AliFemtoBasicEventCut(){
-//  /* noop */
-//}
+AliFemtoBasicEventCut::~AliFemtoBasicEventCut(){
+  // Default destructor
+}
 //------------------------------
 bool AliFemtoBasicEventCut::Pass(const AliFemtoEvent* event){
+  // Pass events if they fall within the multiplicity and z-vertex
+  // position range. Fail otherwise
   int mult =  event->NumberOfTracks();
-  double VertexZPos = event->PrimVertPos().z();
+  double vertexZPos = event->PrimVertPos().z();
   cout << "AliFemtoBasicEventCut:: mult:       " << fEventMult[0] << " < " << mult << " < " << fEventMult[1] << endl;
-  cout << "AliFemtoBasicEventCut:: VertexZPos: " << fVertZPos[0] << " < " << VertexZPos << " < " << fVertZPos[1] << endl;
+  cout << "AliFemtoBasicEventCut:: VertexZPos: " << fVertZPos[0] << " < " << vertexZPos << " < " << fVertZPos[1] << endl;
   bool goodEvent =
     ((mult > fEventMult[0]) && 
      (mult < fEventMult[1]) && 
-     (VertexZPos > fVertZPos[0]) &&
-     (VertexZPos < fVertZPos[1]));
+     (vertexZPos > fVertZPos[0]) &&
+     (vertexZPos < fVertZPos[1]));
   goodEvent ? fNEventsPassed++ : fNEventsFailed++ ;
   cout << "AliFemtoBasicEventCut:: return : " << goodEvent << endl;
   return (goodEvent);
 }
 //------------------------------
 AliFemtoString AliFemtoBasicEventCut::Report(){
-  string Stemp;
-  char Ctemp[100];
-  sprintf(Ctemp,"\nMultiplicity:\t %d-%d",fEventMult[0],fEventMult[1]);
-  Stemp = Ctemp;
-  sprintf(Ctemp,"\nVertex Z-position:\t %E-%E",fVertZPos[0],fVertZPos[1]);
-  Stemp += Ctemp;
-  sprintf(Ctemp,"\nNumber of events which passed:\t%ld  Number which failed:\t%ld",fNEventsPassed,fNEventsFailed);
-  Stemp += Ctemp;
-  AliFemtoString returnThis = Stemp;
+  // Prepare report
+  string stemp;
+  char ctemp[100];
+  sprintf(ctemp,"\nMultiplicity:\t %d-%d",fEventMult[0],fEventMult[1]);
+  stemp = ctemp;
+  sprintf(ctemp,"\nVertex Z-position:\t %E-%E",fVertZPos[0],fVertZPos[1]);
+  stemp += ctemp;
+  sprintf(ctemp,"\nNumber of events which passed:\t%ld  Number which failed:\t%ld",fNEventsPassed,fNEventsFailed);
+  stemp += ctemp;
+  AliFemtoString returnThis = stemp;
   return returnThis;
 }
index 2835283a7f5bb42c4bbef18d7766e4adae065427..5dabd214958f5e39c72498c9627bf470477a5e4c 100644 (file)
@@ -5,8 +5,8 @@
 //                                                                            //
 ////////////////////////////////////////////////////////////////////////////////
 
-#ifndef AliFemtoBasicEventCut_hh
-#define AliFemtoBasicEventCut_hh
+#ifndef ALIFEMTOBASICEVENTCUT_H
+#define ALIFEMTOBASICEVENTCUT_H
 
 // do I need these lines ?
 //#ifndef StMaker_H
@@ -20,16 +20,16 @@ class AliFemtoBasicEventCut : public AliFemtoEventCut {
 public:
 
   AliFemtoBasicEventCut();
-  AliFemtoBasicEventCut(AliFemtoBasicEventCut&);
-  //~AliFemtoBasicEventCut();
+  AliFemtoBasicEventCut(AliFemtoBasicEventCut& c);
+  virtual ~AliFemtoBasicEventCut();
 
   void SetEventMult(const int& lo,const int& hi);
   void SetVertZPos(const float& lo, const float& hi);
-  int NEventsPassed();
-  int NEventsFailed();
+  int NEventsPassed() const;
+  int NEventsFailed() const;
 
   virtual AliFemtoString Report();
-  virtual bool Pass(const AliFemtoEvent*);
+  virtual bool Pass(const AliFemtoEvent* event);
 
   AliFemtoBasicEventCut* Clone();
 
@@ -38,8 +38,8 @@ private:   // here are the quantities I want to cut on...
   int fEventMult[2];      // range of multiplicity
   float fVertZPos[2];     // range of z-position of vertex
 
-  long fNEventsPassed;
-  long fNEventsFailed;
+  long fNEventsPassed;    // Number of events checked by this cut that passed
+  long fNEventsFailed;    // Number of events checked by this cut that failed
 
 #ifdef __ROOT__
   ClassDef(AliFemtoBasicEventCut, 1)
@@ -49,8 +49,8 @@ private:   // here are the quantities I want to cut on...
 
 inline void AliFemtoBasicEventCut::SetEventMult(const int& lo, const int& hi){fEventMult[0]=lo; fEventMult[1]=hi;}
 inline void AliFemtoBasicEventCut::SetVertZPos(const float& lo, const float& hi){fVertZPos[0]=lo; fVertZPos[1]=hi;}
-inline int  AliFemtoBasicEventCut::NEventsPassed() {return fNEventsPassed;}
-inline int  AliFemtoBasicEventCut::NEventsFailed() {return fNEventsFailed;}
+inline int  AliFemtoBasicEventCut::NEventsPassed() const {return fNEventsPassed;}
+inline int  AliFemtoBasicEventCut::NEventsFailed() const {return fNEventsFailed;}
 inline AliFemtoBasicEventCut* AliFemtoBasicEventCut::Clone() { AliFemtoBasicEventCut* c = new AliFemtoBasicEventCut(*this); return c;}
 inline AliFemtoBasicEventCut::AliFemtoBasicEventCut(AliFemtoBasicEventCut& c) : AliFemtoEventCut(c), fNEventsPassed(0), fNEventsFailed(0) {
   fEventMult[0] = c.fEventMult[0];
index 7d356935794ccac06fb7e5eaaeb2d3f7f089cc22..0423e6d2d79b56f79c9e4a868e7815c848958042 100644 (file)
@@ -36,7 +36,7 @@ public:
 protected:
   AliFemtoAnalysis* fyAnalysis;
 
-private:
+  private:
 
 };
 
@@ -44,7 +44,7 @@ inline void AliFemtoCorrFctn::AddRealPair(AliFemtoPair*) { cout << "Not implemen
 inline void AliFemtoCorrFctn::AddMixedPair(AliFemtoPair*) { cout << "Not implemented" << endl; }
 
 inline AliFemtoCorrFctn::AliFemtoCorrFctn(const AliFemtoCorrFctn& c):fyAnalysis(0) {}
-inline AliFemtoCorrFctn::AliFemtoCorrFctn(): fyAnalysis(0) {/* no-op */};
+inline AliFemtoCorrFctn::AliFemtoCorrFctn(): fyAnalysis(0) {/* no-op */}
 inline void AliFemtoCorrFctn::SetAnalysis(AliFemtoAnalysis* analysis) { fyAnalysis = analysis; }
 inline AliFemtoCorrFctn& AliFemtoCorrFctn::operator=(const AliFemtoCorrFctn& aCorrFctn) { if (this == &aCorrFctn) return *this; fyAnalysis = aCorrFctn.fyAnalysis; return *this; }
 
index e33d6e4274aac89effb08e063c72c78dca7c761c..50d353c1cac5661be7c2b285041e001a930a8d93 100644 (file)
  ***************************************************************************
  *
  * $Log$
+ * Revision 1.2.2.1  2007/10/12 14:28:37  akisiel
+ * New wave of cleanup and rule conformance
+ *
+ * Revision 1.2  2007/05/22 09:01:42  akisiel
+ * Add the possibiloity to save cut settings in the ROOT file
+ *
  * Revision 1.1  2007/05/16 10:22:11  akisiel
  * Making the directory structure of AliFemto flat. All files go into one common directory
  *
@@ -64,17 +70,19 @@ AliFemtoDummyPairCut::AliFemtoDummyPairCut() :
 //}
 //__________________
 bool AliFemtoDummyPairCut::Pass(const AliFemtoPair* pair){
+  // Pass all pairs
   bool temp = true;
   temp ? fNPairsPassed++ : fNPairsFailed++;
   return true;
 }
 //__________________
 AliFemtoString AliFemtoDummyPairCut::Report(){
-  string Stemp = "AliFemtoDummy Pair Cut - total dummy-- always returns true\n";
-  char Ctemp[100];
-  sprintf(Ctemp,"Number of pairs which passed:\t%ld  Number which failed:\t%ld\n",fNPairsPassed,fNPairsFailed);
-  Stemp += Ctemp;
-  AliFemtoString returnThis = Stemp;
+  // prepare a report from the execution
+  string stemp = "AliFemtoDummy Pair Cut - total dummy-- always returns true\n";
+  char ctemp[100];
+  sprintf(ctemp,"Number of pairs which passed:\t%ld  Number which failed:\t%ld\n",fNPairsPassed,fNPairsFailed);
+  stemp += ctemp;
+  AliFemtoString returnThis = stemp;
   return returnThis;
 }
 //__________________
index af7d5462116c93df39d77e9dee7168afc2a788be..258d68373627999ce8574a6bd4dd457e5ad25bbd 100644 (file)
  ***************************************************************************
  *
  * $Log$
+ * Revision 1.2.2.1  2007/10/12 14:28:37  akisiel
+ * New wave of cleanup and rule conformance
+ *
+ * Revision 1.2  2007/05/22 09:01:42  akisiel
+ * Add the possibiloity to save cut settings in the ROOT file
+ *
  * Revision 1.1  2007/05/16 10:22:11  akisiel
  * Making the directory structure of AliFemto flat. All files go into one common directory
  *
@@ -64,8 +70,8 @@
  **************************************************************************/
 
 
-#ifndef AliFemtoDummyPairCut_hh
-#define AliFemtoDummyPairCut_hh
+#ifndef ALIFEMTODUMMYPAIRCUT_H
+#define ALIFEMTODUMMYPAIRCUT_H
 
 // do I need these lines ?
 //#ifndef StMaker_H
@@ -85,10 +91,9 @@ public:
   virtual TList *ListSettings();
   AliFemtoDummyPairCut* Clone();
 
-
 private:
-  long fNPairsPassed;
-  long fNPairsFailed;
+  long fNPairsPassed;  // number of pairs analyzed by this cut that passed
+  long fNPairsFailed;  // number of pairs analyzed by this cut that failed
 
 #ifdef __ROOT__
   ClassDef(AliFemtoDummyPairCut, 1)
index 09e7c69a1d96aa231269e2b6125e343a2d9d9620..8795dcf587781d9613963308625e123a366fcace 100644 (file)
@@ -123,6 +123,68 @@ AliFemtoEvent::AliFemtoEvent(const AliFemtoEvent& ev, AliFemtoTrackCut* tCut, Al
     }
   }
 }
+//___________________
+AliFemtoEvent::AliFemtoEvent(const AliFemtoEvent& ev):
+  fEventNumber(0),
+  fRunNumber(0),
+  fNumberOfTracks(0),
+  fMagneticField(0),
+  fPrimVertPos(0,0,0),
+  fTrackCollection(0),
+  fV0Collection(0),
+  fXiCollection(0),
+  fKinkCollection(0),
+  fZDCN1Energy(0),   
+  fZDCP1Energy(0),   
+  fZDCN2Energy(0),   
+  fZDCP2Energy(0),   
+  fZDCEMEnergy(0),   
+  fZDCParticipants(0),
+  fTriggerMask(0),  
+  fTriggerCluster(0)
+{ 
+  // copy constructor 
+  fEventNumber = ev.fEventNumber;
+  fRunNumber = ev.fRunNumber;
+  
+  fZDCN1Energy=ev.fZDCN1Energy;     
+  fZDCP1Energy=ev.fZDCP1Energy;      
+  fZDCN2Energy=ev.fZDCN2Energy;      
+  fZDCP2Energy=ev.fZDCP2Energy;      
+  fZDCEMEnergy=ev.fZDCEMEnergy;
+  fZDCParticipants=ev.fZDCParticipants;
+  fNumberOfTracks = ev.fNumberOfTracks;
+  fMagneticField= ev.fMagneticField;
+  
+  fTriggerMask=ev.fTriggerMask;     // Trigger Type (mask)
+  fTriggerCluster=ev.fTriggerCluster;
+  // create collections
+  fTrackCollection = new AliFemtoTrackCollection;
+  fV0Collection = new AliFemtoV0Collection;
+  fXiCollection = new AliFemtoXiCollection;
+  fKinkCollection = new AliFemtoKinkCollection;
+  // copy track collection  
+  for ( AliFemtoTrackIterator tIter=ev.fTrackCollection->begin(); tIter!=ev.fTrackCollection->end(); tIter++) {
+    AliFemtoTrack* trackCopy = new AliFemtoTrack(**tIter);
+    fTrackCollection->push_back(trackCopy);
+  }
+  // copy v0 collection
+  for ( AliFemtoV0Iterator vIter=ev.fV0Collection->begin(); vIter!=ev.fV0Collection->end(); vIter++) {
+    AliFemtoV0* v0Copy = new AliFemtoV0(**vIter);
+    fV0Collection->push_back(v0Copy);
+  }
+  // copy xi collection
+  for ( AliFemtoXiIterator xIter=ev.fXiCollection->begin(); xIter!=ev.fXiCollection->end(); xIter++) {
+    AliFemtoXi* xiCopy = new AliFemtoXi(**xIter);
+    fXiCollection->push_back(xiCopy);
+  }
+  // copy kink collection  
+  for ( AliFemtoKinkIterator kIter=ev.fKinkCollection->begin(); kIter!=ev.fKinkCollection->end(); kIter++) {
+    //cout << " kinkCut passed " << endl;
+    AliFemtoKink* kinkCopy = new AliFemtoKink(**kIter);
+    fKinkCollection->push_back(kinkCopy);
+  }
+}
 //______________________________
 AliFemtoEvent& AliFemtoEvent::operator=(const AliFemtoEvent& aEvent)
 {
index d36ed3a25cf418257051cd7a8c5081590c77b945..7f7003934a26d62e9320cbe4a925e36bb3f20840 100644 (file)
@@ -40,7 +40,8 @@ public:
 //
 #endif
 #endif
-  AliFemtoEvent(const AliFemtoEvent&, AliFemtoTrackCut* =0, AliFemtoV0Cut* =0,  AliFemtoXiCut* =0, AliFemtoKinkCut* =0); // copy constructor with track and v0 cuts
+  AliFemtoEvent(const AliFemtoEvent& ev, AliFemtoTrackCut* tCut=0, AliFemtoV0Cut* vCut=0,  AliFemtoXiCut* xCut=0, AliFemtoKinkCut* kCut=0); // copy constructor with track and v0 cuts
+  AliFemtoEvent(const AliFemtoEvent& ev); // copy constructor
   ~AliFemtoEvent();
   AliFemtoEvent& operator=(const AliFemtoEvent& aEvent);
 
index 29229d9f698f103ec515140e1be00e2e942e22df..2507f81f7a91506ce23460b765d27a6a9bfefc08 100644 (file)
@@ -41,6 +41,6 @@ protected:
 
 inline AliFemtoEventCut::AliFemtoEventCut(const AliFemtoEventCut& c) : AliFemtoCutMonitorHandler(), fyAnalysis(0) { }
 inline void AliFemtoEventCut::SetAnalysis(AliFemtoAnalysis* analysis) { fyAnalysis = analysis; }
-inline AliFemtoEventCut::AliFemtoEventCut(): AliFemtoCutMonitorHandler(), fyAnalysis(0){};                // default constructor. - Users should write their own
+inline AliFemtoEventCut::AliFemtoEventCut(): AliFemtoCutMonitorHandler(), fyAnalysis(0){}                // default constructor. - Users should write their own
 inline AliFemtoEventCut& AliFemtoEventCut::operator=(const AliFemtoEventCut& aCut) { if (this == &aCut) return *this; fyAnalysis = aCut.fyAnalysis; return *this; }
 #endif
index 92f0876b4ed28b67ac80e6fe4dbbf2c25351a2f5..b1d160e415d42a6d23c430a559e4de9c9f9003b4 100644 (file)
@@ -1,6 +1,8 @@
 ////////////////////////////////////////////////////////////////////////////////
+///                                                                          ///
 /// AliFemtoEventReader - the pure virtual base class for the event reader   ///
 /// All event readers must inherit from this one                             ///
+///                                                                          ///
 ////////////////////////////////////////////////////////////////////////////////
 #include "AliFemtoEvent.h"
 #include "AliFemtoEventCut.h"
@@ -23,6 +25,7 @@ AliFemtoEventReader::AliFemtoEventReader(const AliFemtoEventReader& aReader):
   fReaderStatus(0),  
   fDebug(0)
 {
+  // Copy constructor
   fEventCut = aReader.fEventCut;
   fTrackCut = aReader.fTrackCut;
   fV0Cut    = aReader.fV0Cut;
@@ -34,6 +37,7 @@ AliFemtoEventReader::AliFemtoEventReader(const AliFemtoEventReader& aReader):
 
 AliFemtoEventReader& AliFemtoEventReader::operator=(const AliFemtoEventReader& aReader)
 {
+  // Assignment operator
   if (this == &aReader) 
     return *this;
 
index 585fe4cd8189081c243fd1253628d0e60c5a9eb6..c66484625b470b49c24fb4f48b65be1128623d38 100644 (file)
@@ -2,8 +2,9 @@
 /// AliFemtoEventReader - the pure virtual base class for the event reader   ///
 /// All event readers must inherit from this one                             ///
 ////////////////////////////////////////////////////////////////////////////////
-#ifndef AliFemtoEventReader_hh
-#define AliFemtoEventReader_hh
+#ifndef ALIFEMTOEVENTREADER_H
+#define ALIFEMTOEVENTREADER_H
+
 class AliFemtoEvent;
 class AliFemtoEventCut;
 class AliFemtoTrackCut;
@@ -11,12 +12,12 @@ class AliFemtoV0Cut;
 class AliFemtoXiCut;
 class AliFemtoKinkCut;
 
+#include "AliFemtoString.h"
 #include <iostream>
 #include <fstream>
 #include <stdio.h>
-using namespace std;
 
-#include "AliFemtoString.h"
+using namespace std;
 
 class AliFemtoEventReader {
   
@@ -42,7 +43,7 @@ class AliFemtoEventReader {
   virtual int Init(const char* ReadWrite, AliFemtoString& Message){cout << "do-nothing AliFemtoEventReader::Init()\n"; return(0);}
   virtual void Finish(){/*no-op*/};
 
-  int Status(){return fReaderStatus;} // AliFemtoManager looks at this for guidance if it gets null pointer from ReturnHbtEvent
+  int Status() const {return fReaderStatus;} // AliFemtoManager looks at this for guidance if it gets null pointer from ReturnHbtEvent
 
   virtual void SetEventCut(AliFemtoEventCut* ecut);
   virtual void SetTrackCut(AliFemtoTrackCut* pcut);
@@ -61,7 +62,7 @@ class AliFemtoEventReader {
   /* 2: once per event                                    */
   /* 3: once per track                                    */
   /* 4: once per pair                                     */
-  int Debug(){return fDebug;} 
+  int Debug() const {return fDebug;} 
   void SetDebug(int d){fDebug=d;}
 
 protected:
index 1ae7983d0382894cc18ec76fea59e3465949871b..88235bcc2fa25a720c8281ac6571982f9bcc2fd5 100644 (file)
 /*
  *$Id$
  *$Log$
+ *Revision 1.2.2.2  2007/10/04 13:10:52  akisiel
+ *Add Kink index storageAliFemtoEventReaderESD.cxx AliFemtoTrack.cxx AliFemtoTrack.h
+ *
+ *Revision 1.2.2.1  2007/09/30 11:38:59  akisiel
+ *Adapt the readers to the new AliESDEvent structure
+ *
+ *Revision 1.2  2007/05/22 09:01:42  akisiel
+ *Add the possibiloity to save cut settings in the ROOT file
+ *
  *Revision 1.1  2007/05/16 10:22:11  akisiel
  *Making the directory structure of AliFemto flat. All files go into one common directory
  *
@@ -32,8 +41,9 @@
 
 #include "TFile.h"
 #include "TTree.h"
-#include "AliESD.h"
+#include "AliESDEvent.h"
 #include "AliESDtrack.h"
+#include "AliESDVertex.h"
 
 //#include "TSystem.h"
 
@@ -43,6 +53,7 @@
 #include "SystemOfUnits.h"
 
 #include "AliFemtoEvent.h"
+#include "AliFemtoModelHiddenInfo.h"
 
 ClassImp(AliFemtoEventReaderESD)
 
@@ -57,73 +68,38 @@ AliFemtoEventReaderESD::AliFemtoEventReaderESD():
   fInputFile(" "),
   fFileName(" "),
   fConstrained(true),
+  fReadInner(false),
   fNumberofEvent(0),
   fCurEvent(0),
-  fCurFile(0),
-  fListOfFiles(0x0),
   fTree(0x0),
-  fEvent(0x0),
   fEsdFile(0x0),
-  fEventFriend(0),
-  fSharedList(0x0),
-  fClusterPerPadrow(0x0)
+  fEvent(0x0)
 {
   // default constructor
-  fClusterPerPadrow = (list<Int_t> **) malloc(sizeof(list<Int_t> *) * AliESDfriendTrack::kMaxTPCcluster);
-  for (int tPad=0; tPad<AliESDfriendTrack::kMaxTPCcluster; tPad++) {
-    fClusterPerPadrow[tPad] = new list<Int_t>();
-  }
-  fSharedList = (list<Int_t> **) malloc(sizeof(list<Int_t> *) * AliESDfriendTrack::kMaxTPCcluster);
-  for (int tPad=0; tPad<AliESDfriendTrack::kMaxTPCcluster; tPad++) {
-    fSharedList[tPad] = new list<Int_t>();
-  }
 }
 
 AliFemtoEventReaderESD::AliFemtoEventReaderESD(const AliFemtoEventReaderESD &aReader) :
   fInputFile(" "),
   fFileName(" "),
   fConstrained(true),
+  fReadInner(false),
   fNumberofEvent(0),
   fCurEvent(0),
-  fCurFile(0),
-  fListOfFiles(0x0),
   fTree(0x0),
-  fEvent(0x0),
   fEsdFile(0x0),
-  fEventFriend(0),
-  fSharedList(0x0),
-  fClusterPerPadrow(0x0)
+  fEvent(0x0)
 {
   // copy constructor
   fInputFile = aReader.fInputFile;
   fFileName  = aReader.fFileName;
   fConstrained = aReader.fConstrained;
+  fReadInner = aReader.fReadInner;
   fNumberofEvent = aReader.fNumberofEvent;
   fCurEvent = aReader.fCurEvent;
-  fCurFile = aReader.fCurFile;
-  fTree = aReader.fTree->CloneTree();
+  //  fTree = aReader.fTree->CloneTree();
   //  fEvent = new AliESD(*aReader.fEvent);
-  fEvent = new AliESD();
+  fEvent = new AliESDEvent();
   fEsdFile = new TFile(aReader.fEsdFile->GetName());
-  fEventFriend = aReader.fEventFriend;
-  fClusterPerPadrow = (list<Int_t> **) malloc(sizeof(list<Int_t> *) * AliESDfriendTrack::kMaxTPCcluster);
-  for (int tPad=0; tPad<AliESDfriendTrack::kMaxTPCcluster; tPad++) {
-    fClusterPerPadrow[tPad] = new list<Int_t>();
-    list<Int_t>::iterator iter;
-    for (iter=aReader.fClusterPerPadrow[tPad]->begin(); iter!=aReader.fClusterPerPadrow[tPad]->end(); iter++) {
-      fClusterPerPadrow[tPad]->push_back(*iter);
-    }
-  }
-  fSharedList = (list<Int_t> **) malloc(sizeof(list<Int_t> *) * AliESDfriendTrack::kMaxTPCcluster);
-  for (int tPad=0; tPad<AliESDfriendTrack::kMaxTPCcluster; tPad++) {
-    fSharedList[tPad] = new list<Int_t>();
-    list<Int_t>::iterator iter;
-    for (iter=aReader.fSharedList[tPad]->begin(); iter!=aReader.fSharedList[tPad]->end(); iter++) {
-      fSharedList[tPad]->push_back(*iter);
-    }
-  }
-  for (unsigned int veciter = 0; veciter<aReader.fListOfFiles.size(); veciter++)
-    fListOfFiles.push_back(aReader.fListOfFiles[veciter]);
 }
 //__________________
 //Destructor
@@ -134,17 +110,6 @@ AliFemtoEventReaderESD::~AliFemtoEventReaderESD()
   delete fTree;
   delete fEvent;
   delete fEsdFile;
-
-  for (int tPad=0; tPad<AliESDfriendTrack::kMaxTPCcluster; tPad++) {
-    fClusterPerPadrow[tPad]->clear();
-    delete fClusterPerPadrow[tPad];
-  }
-  delete [] fClusterPerPadrow;
-  for (int tPad=0; tPad<AliESDfriendTrack::kMaxTPCcluster; tPad++) {
-    fSharedList[tPad]->clear();
-    delete fSharedList[tPad];
-  }
-  delete [] fSharedList;
 }
 
 //__________________
@@ -157,53 +122,16 @@ AliFemtoEventReaderESD& AliFemtoEventReaderESD::operator=(const AliFemtoEventRea
   fInputFile = aReader.fInputFile;
   fFileName  = aReader.fFileName;
   fConstrained = aReader.fConstrained;
+  fReadInner = aReader.fReadInner;
   fNumberofEvent = aReader.fNumberofEvent;
   fCurEvent = aReader.fCurEvent;
-  fCurFile = aReader.fCurFile;
   if (fTree) delete fTree;
-  fTree = aReader.fTree->CloneTree();
+  //  fTree = aReader.fTree->CloneTree();
   if (fEvent) delete fEvent;
-  fEvent = new AliESD();
+  fEvent = new AliESDEvent();
   if (fEsdFile) delete fEsdFile;
   fEsdFile = new TFile(aReader.fEsdFile->GetName());
 
-  fEventFriend = aReader.fEventFriend;
-  
-  if (fClusterPerPadrow) {
-    for (int tPad=0; tPad<AliESDfriendTrack::kMaxTPCcluster; tPad++) {
-      fClusterPerPadrow[tPad]->clear();
-      delete fClusterPerPadrow[tPad];
-    }
-    delete [] fClusterPerPadrow;
-  }
-  
-  if (fSharedList) {
-    for (int tPad=0; tPad<AliESDfriendTrack::kMaxTPCcluster; tPad++) {
-      fSharedList[tPad]->clear();
-      delete fSharedList[tPad];
-    }
-    delete [] fSharedList;
-  }
-
-  fClusterPerPadrow = (list<Int_t> **) malloc(sizeof(list<Int_t> *) * AliESDfriendTrack::kMaxTPCcluster);
-  for (int tPad=0; tPad<AliESDfriendTrack::kMaxTPCcluster; tPad++) {
-    fClusterPerPadrow[tPad] = new list<Int_t>();
-    list<Int_t>::iterator iter;
-    for (iter=aReader.fClusterPerPadrow[tPad]->begin(); iter!=aReader.fClusterPerPadrow[tPad]->end(); iter++) {
-      fClusterPerPadrow[tPad]->push_back(*iter);
-    }
-  }
-  fSharedList = (list<Int_t> **) malloc(sizeof(list<Int_t> *) * AliESDfriendTrack::kMaxTPCcluster);
-  for (int tPad=0; tPad<AliESDfriendTrack::kMaxTPCcluster; tPad++) {
-    fSharedList[tPad] = new list<Int_t>();
-    list<Int_t>::iterator iter;
-    for (iter=aReader.fSharedList[tPad]->begin(); iter!=aReader.fSharedList[tPad]->end(); iter++) {
-      fSharedList[tPad]->push_back(*iter);
-    }
-  }
-  for (unsigned int veciter = 0; veciter<aReader.fListOfFiles.size(); veciter++)
-    fListOfFiles.push_back(aReader.fListOfFiles[veciter]);
-  
   return *this;
 }
 //__________________
@@ -223,6 +151,9 @@ void AliFemtoEventReaderESD::SetInputFile(const char* inputFile)
   fInputFile=string(inputFile);
   cout<<"Input File set on "<<fInputFile<<endl;
   ifstream infile(inputFile);
+
+  fTree = new TChain("esdTree");
+
   if(infile.good()==true)
     { 
       //checking if all give files have good tree inside
@@ -237,7 +168,7 @@ void AliFemtoEventReaderESD::SetInputFile(const char* inputFile)
              if (tree!=0x0)
                {
                  cout<<"putting file  "<<string(buffer)<<" into analysis"<<endl;
-                 fListOfFiles.push_back(string(buffer));
+                 fTree->AddFile(buffer);
                  delete tree;
                }
              esdFile->Close(); 
@@ -247,18 +178,6 @@ void AliFemtoEventReaderESD::SetInputFile(const char* inputFile)
     }
 }
 
-//setting the next file to read        
-bool AliFemtoEventReaderESD::GetNextFile()
-{      
-  // Begin reading the next file
-  if (fCurFile>=fListOfFiles.size())
-    return false;
-  fFileName=fListOfFiles.at(fCurFile); 
-  cout<<"FileName set on "<<fFileName<<" "<<fCurFile<<endl;
-
-  fCurFile++;
-  return true;
-}
 void AliFemtoEventReaderESD::SetConstrained(const bool constrained)
 {
   fConstrained=constrained;
@@ -269,46 +188,47 @@ bool AliFemtoEventReaderESD::GetConstrained() const
   return fConstrained;
 }
 
+void AliFemtoEventReaderESD::SetReadTPCInner(const bool readinner)
+{
+  fReadInner=readinner;
+}
+
+bool AliFemtoEventReaderESD::GetReadTPCInner() const
+{
+  return fReadInner;
+}
+
 AliFemtoEvent* AliFemtoEventReaderESD::ReturnHbtEvent()
 {
   // read in a next hbt event from the chain
   // convert it to AliFemtoEvent and return
   // for further analysis
   AliFemtoEvent *hbtEvent = 0;
-  string tFriendFileName;
 
   if (fCurEvent==fNumberofEvent)//open next file  
     {
-      cout<<"next file"<<endl;
-      if(GetNextFile())        
+      if(fNumberofEvent==0)    
        {
-         delete fEventFriend;
-         fEventFriend = 0;
-         delete fEvent;//added 1.04.2007
-         fEvent=new AliESD();
+         //      delete fEvent;//added 1.04.2007
+         fEvent=new AliESDEvent();
          //      delete fTree;
          //fTree=0;
-         delete fEsdFile;
+         //      delete fEsdFile;
                
          //ESD data
-         fEsdFile=TFile::Open(fFileName.c_str(),"READ");
-         fTree = (TTree*) fEsdFile->Get("esdTree");                    
-         fTree->SetBranchAddress("ESD", &fEvent);                      
-
-         // Attach the friend tree with additional information
-         tFriendFileName = fFileName;
-         tFriendFileName.insert(tFriendFileName.find("s.root"),"friend");
-         cout << "Reading friend " << tFriendFileName.c_str() << endl;;
-         fTree->AddFriend("esdFriendTree",tFriendFileName.c_str());
-         fTree->SetBranchAddress("ESDfriend",&fEventFriend);
-
-//       chain->SetBranchStatus("*",0);
-//       chain->SetBranchStatus("fUniqueID",1);
-//       chain->SetBranchStatus("fTracks",1);
-//       chain->SetBranchStatus("fTracks.*",1);
-//       chain->SetBranchStatus("fTracks.fTPCindex[160]",1);
-         fTree->SetBranchStatus("fTracks.fCalibContainer",0);
-
+         //      fEsdFile=TFile::Open(fFileName.c_str(),"READ");
+         //      fTree = (TTree*) fEsdFile->Get("esdTree");                    
+         //      fTree->SetBranchAddress("ESD", &fEvent);                      
+         fTree->SetBranchStatus("MuonTracks*",0);
+         fTree->SetBranchStatus("PmdTracks*",0);
+         fTree->SetBranchStatus("TrdTracks*",0);
+         fTree->SetBranchStatus("V0s*",0);
+         fTree->SetBranchStatus("Cascades*",0);
+         fTree->SetBranchStatus("Kinks*",0);
+         fTree->SetBranchStatus("CaloClusters*",0);
+         fTree->SetBranchStatus("AliRawDataErrorLogs*",0);
+         fTree->SetBranchStatus("ESDfriend*",0);
+         fEvent->ReadFromTree(fTree);
 
          fNumberofEvent=fTree->GetEntries();
          cout<<"Number of Entries in file "<<fNumberofEvent<<endl;
@@ -324,7 +244,7 @@ AliFemtoEvent* AliFemtoEventReaderESD::ReturnHbtEvent()
     }          
   cout<<"starting to read event "<<fCurEvent<<endl;
   fTree->GetEvent(fCurEvent);//getting next event
-  fEvent->SetESDfriend(fEventFriend);
+  cout << "Read event " << fEvent << " from file " << fTree << endl;
   //  vector<int> tLabelTable;//to check labels
        
   hbtEvent = new AliFemtoEvent;
@@ -353,36 +273,7 @@ AliFemtoEvent* AliFemtoEventReaderESD::ReturnHbtEvent()
   int nofTracks=0;  //number of reconstructed tracks in event
   nofTracks=fEvent->GetNumberOfTracks();
   int realnofTracks=0;//number of track which we use ina analysis
-
-  // Clear the shared cluster list
-  for (int tPad=0; tPad<AliESDfriendTrack::kMaxTPCcluster; tPad++) {
-    fClusterPerPadrow[tPad]->clear();
-  }
-  for (int tPad=0; tPad<AliESDfriendTrack::kMaxTPCcluster; tPad++) {
-    fSharedList[tPad]->clear();
-  }
-
-
-  for (int i=0;i<nofTracks;i++) {
-    const AliESDtrack *esdtrack=fEvent->GetTrack(i);//getting next track
-
-    list<Int_t>::iterator tClustIter;
-
-    Int_t tTrackIndices[AliESDfriendTrack::kMaxTPCcluster];
-    Int_t tNClusters = esdtrack->GetTPCclusters(tTrackIndices);
-    for (int tNcl=0; tNcl<AliESDfriendTrack::kMaxTPCcluster; tNcl++) {
-      if (tTrackIndices[tNcl] >= 0) {
-       tClustIter = find(fClusterPerPadrow[tNcl]->begin(), fClusterPerPadrow[tNcl]->end(), tTrackIndices[tNcl]);
-         if (tClustIter == fClusterPerPadrow[tNcl]->end()) {
-         fClusterPerPadrow[tNcl]->push_back(tTrackIndices[tNcl]);
-       }
-       else {
-         fSharedList[tNcl]->push_back(tTrackIndices[tNcl]);
-       }
-      }
-    }
-      
-  }
+  cout << "Event has " << nofTracks << " tracks " << endl;
 
   for (int i=0;i<nofTracks;i++)
     {
@@ -406,6 +297,21 @@ AliFemtoEvent* AliFemtoEventReaderESD::ReturnHbtEvent()
       trackCopy->SetPidProbProton(esdpid[4]);
                                                
       double pxyz[3];
+      if (fReadInner == true) {
+       
+       if (esdtrack->GetTPCInnerParam()) {
+         AliExternalTrackParam *param = new AliExternalTrackParam(*esdtrack->GetTPCInnerParam());
+         param->PropagateToDCA(fEvent->GetPrimaryVertex(), (fEvent->GetMagneticField()), 10000);
+         param->GetPxPyPz(pxyz);//reading noconstarined momentum
+         delete param;
+
+         AliFemtoModelHiddenInfo *tInfo = new AliFemtoModelHiddenInfo();
+         tInfo->SetPDGPid(211);
+         tInfo->SetTrueMomentum(pxyz[0], pxyz[1], pxyz[2]);
+         tInfo->SetMass(0.13957);
+         trackCopy->SetHiddenInfo(tInfo);
+       }
+      }
       if (fConstrained==true)              
        tGoodMomentum=esdtrack->GetConstrainedPxPyPz(pxyz); //reading constrained momentum
       else
@@ -425,7 +331,7 @@ AliFemtoEvent* AliFemtoEventReaderESD::ReturnHbtEvent()
                
       trackCopy->SetTrackId(esdtrack->GetID());
       trackCopy->SetFlags(esdtrack->GetStatus());
-      //trackCopy->SetLabel(esdtrack->GetLabel());
+      trackCopy->SetLabel(esdtrack->GetLabel());
                
       //some stuff which could be useful 
       float impact[2];
@@ -444,34 +350,14 @@ AliFemtoEvent* AliFemtoEventReaderESD::ReturnHbtEvent()
       trackCopy->SetTPCsignalN((short)esdtrack->GetTPCsignalN()); //due to bug in aliesdtrack class   
       trackCopy->SetTPCsignalS(esdtrack->GetTPCsignalSigma()); 
 
-      // Fill cluster per padrow information
-      Int_t tTrackIndices[AliESDfriendTrack::kMaxTPCcluster];
-      Int_t tNClusters = esdtrack->GetTPCclusters(tTrackIndices);
-      for (int tNcl=0; tNcl<AliESDfriendTrack::kMaxTPCcluster; tNcl++) {
-       if (tTrackIndices[tNcl] > 0)
-         trackCopy->SetTPCcluster(tNcl, 1);
-       else
-         trackCopy->SetTPCcluster(tNcl, 0);
-      }
-      
-      // Fill shared cluster information
-      list<Int_t>::iterator tClustIter;
-
-      for (int tNcl=0; tNcl<AliESDfriendTrack::kMaxTPCcluster; tNcl++) {
-       if (tTrackIndices[tNcl] > 0) {
-         tClustIter = find(fSharedList[tNcl]->begin(), fSharedList[tNcl]->end(), tTrackIndices[tNcl]);
-         if (tClustIter != fSharedList[tNcl]->end()) {
-           trackCopy->SetTPCshared(tNcl, 1);
-           cout << "Event next" <<  endl;
-           cout << "Track: " << i << endl;
-           cout << "Shared cluster: " << tNcl << " " << tTrackIndices[tNcl] << endl;
-         }
-         else {
-           trackCopy->SetTPCshared(tNcl, 0);
-         }
-       }
-      }
+      trackCopy->SetTPCClusterMap(esdtrack->GetTPCClusterMap());
+      trackCopy->SetTPCSharedMap(esdtrack->GetTPCSharedMap());
 
+      int indexes[3];
+      for (int ik=0; ik<3; ik++) {
+       indexes[ik] = esdtrack->GetKinkIndex(ik);
+      }
+      trackCopy->SetKinkIndexes(indexes);
       //decision if we want this track
       //if we using diffrent labels we want that this label was use for first time 
       //if we use hidden info we want to have match between sim data and ESD
@@ -490,12 +376,12 @@ AliFemtoEvent* AliFemtoEventReaderESD::ReturnHbtEvent()
   hbtEvent->SetNumberOfTracks(realnofTracks);//setting number of track which we read in event  
   fCurEvent++; 
   cout<<"end of reading nt "<<nofTracks<<" real number "<<realnofTracks<<endl;
-  if (fCurEvent== fNumberofEvent)//if end of current file close all
-    {   
-      fTree->Reset(); 
-      delete fTree;
-      fEsdFile->Close();
-    }
+//   if (fCurEvent== fNumberofEvent)//if end of current file close all
+//     {   
+//       fTree->Reset(); 
+//       delete fTree;
+//       fEsdFile->Close();
+//     }
   return hbtEvent; 
 }
 
index ad920146f9e3c77de58306cc92c2ef4eabb6a1f9..c83d9c5f3160886f8cd2d725b9b0e8ea172740bd 100644 (file)
 /*
  *$Id$
  *$Log$
+ *Revision 1.1.2.1  2007/09/30 11:38:59  akisiel
+ *Adapt the readers to the new AliESDEvent structure
+ *
+ *Revision 1.1  2007/05/16 10:22:11  akisiel
+ *Making the directory structure of AliFemto flat. All files go into one common directory
+ *
  *Revision 1.4  2007/05/03 09:45:20  akisiel
  *Fixing Effective C++ warnings
  *
@@ -31,8 +37,8 @@
 #include <string>
 #include <vector>
 #include "TTree.h"
-#include "AliESD.h"
-#include "AliESDfriend.h"
+#include "TChain.h"
+#include "AliESDEvent.h"
 #include <list>
 
 class AliFemtoEvent;
@@ -46,35 +52,31 @@ class AliFemtoEventReaderESD : public AliFemtoEventReader
 
   AliFemtoEventReaderESD& operator=(const AliFemtoEventReaderESD& aReader);
 
-  AliFemtoEvent* ReturnHbtEvent();
+  virtual AliFemtoEvent* ReturnHbtEvent();
   AliFemtoString Report();
   //void SetFileName(const char* fileName);
   void SetInputFile(const char* inputFile);
   void SetConstrained(const bool constrained);
   bool GetConstrained() const;
+  void SetReadTPCInner(const bool readinner);
+  bool GetReadTPCInner() const;
 
  protected:
 
  private:
-  bool           GetNextFile();     // setting next file to read 
-
   string         fInputFile;        // name of input file with ESD filenames
   string         fFileName;         // name of current ESD file
   bool           fConstrained;      // flag to set which momentum from ESD file will be use
+  bool           fReadInner;        // flag to set if one wants to read TPC-only momentum
+                                    // instead of the global one
   int            fNumberofEvent;    // number of Events in ESD file
   int            fCurEvent;         // number of current event
-  unsigned int   fCurFile;          // number of current file
-  vector<string> fListOfFiles;      // list of ESD files               
-  TTree*         fTree;             // ESD tree
-  AliESD*        fEvent;            // ESD event
+  TChain*        fTree;             // ESD tree
   TFile*         fEsdFile;          // ESD file 
-  AliESDfriend*  fEventFriend;      // ESD friend informaion
-
-  list<Int_t>  **fSharedList;       //! Table (one list per padrow) of clusters which are shared
-  list<Int_t>  **fClusterPerPadrow; //! Table (one list per padrow) of clusters in each padrow
+  AliESDEvent*   fEvent;            // ESD event
                
 #ifdef __ROOT__
-  ClassDef(AliFemtoEventReaderESD, 10)
+  ClassDef(AliFemtoEventReaderESD, 11)
 #endif
 
     };
index bd25337899aeef29dec00122f2d290beaf70bf35..cc4a8c8d8a577b30fe41bf056a4e3398ba53e966 100644 (file)
@@ -10,8 +10,9 @@
 
 #include "TFile.h"
 #include "TTree.h"
-#include "AliESD.h"
+#include "AliESDEvent.h"
 #include "AliESDtrack.h"
+#include "AliESDVertex.h"
 
 #include "AliFmPhysicalHelixD.h"
 #include "AliFmThreeVectorF.h"
@@ -34,20 +35,17 @@ AliFemtoEventReaderESDChain::AliFemtoEventReaderESDChain():
   fNumberofEvent(0),
   fCurEvent(0),
   fCurFile(0),
-  fEvent(0x0),
-  fEventFriend(0),
-  fSharedList(0x0),
-  fClusterPerPadrow(0x0)
+  fEvent(0x0)
 {
   //constructor with 0 parameters , look at default settings 
-  fClusterPerPadrow = (list<Int_t> **) malloc(sizeof(list<Int_t> *) * AliESDfriendTrack::kMaxTPCcluster);
-  for (int tPad=0; tPad<AliESDfriendTrack::kMaxTPCcluster; tPad++) {
-    fClusterPerPadrow[tPad] = new list<Int_t>();
-  }
-  fSharedList = (list<Int_t> **) malloc(sizeof(list<Int_t> *) * AliESDfriendTrack::kMaxTPCcluster);
-  for (int tPad=0; tPad<AliESDfriendTrack::kMaxTPCcluster; tPad++) {
-    fSharedList[tPad] = new list<Int_t>();
-  }
+//   fClusterPerPadrow = (list<Int_t> **) malloc(sizeof(list<Int_t> *) * AliESDfriendTrack::kMaxTPCcluster);
+//   for (int tPad=0; tPad<AliESDfriendTrack::kMaxTPCcluster; tPad++) {
+//     fClusterPerPadrow[tPad] = new list<Int_t>();
+//   }
+//   fSharedList = (list<Int_t> **) malloc(sizeof(list<Int_t> *) * AliESDfriendTrack::kMaxTPCcluster);
+//   for (int tPad=0; tPad<AliESDfriendTrack::kMaxTPCcluster; tPad++) {
+//     fSharedList[tPad] = new list<Int_t>();
+//   }
 }
 
 //__________________
@@ -57,10 +55,7 @@ AliFemtoEventReaderESDChain::AliFemtoEventReaderESDChain(const AliFemtoEventRead
   fNumberofEvent(0),
   fCurEvent(0),
   fCurFile(0),
-  fEvent(0x0),
-  fEventFriend(0),
-  fSharedList(0x0),
-  fClusterPerPadrow(0x0)
+  fEvent(0x0)
 {
   // Copy constructor
   fConstrained = aReader.fConstrained;
@@ -68,24 +63,24 @@ AliFemtoEventReaderESDChain::AliFemtoEventReaderESDChain(const AliFemtoEventRead
   fCurEvent = aReader.fCurEvent;
   fCurFile = aReader.fCurFile;
   //  fEvent = new AliESD(*aReader.fEvent);
-  fEvent = new AliESD();
-  fEventFriend = aReader.fEventFriend;
-  fClusterPerPadrow = (list<Int_t> **) malloc(sizeof(list<Int_t> *) * AliESDfriendTrack::kMaxTPCcluster);
-  for (int tPad=0; tPad<AliESDfriendTrack::kMaxTPCcluster; tPad++) {
-    fClusterPerPadrow[tPad] = new list<Int_t>();
-    list<Int_t>::iterator iter;
-    for (iter=aReader.fClusterPerPadrow[tPad]->begin(); iter!=aReader.fClusterPerPadrow[tPad]->end(); iter++) {
-      fClusterPerPadrow[tPad]->push_back(*iter);
-    }
-  }
-  fSharedList = (list<Int_t> **) malloc(sizeof(list<Int_t> *) * AliESDfriendTrack::kMaxTPCcluster);
-  for (int tPad=0; tPad<AliESDfriendTrack::kMaxTPCcluster; tPad++) {
-    fSharedList[tPad] = new list<Int_t>();
-    list<Int_t>::iterator iter;
-    for (iter=aReader.fSharedList[tPad]->begin(); iter!=aReader.fSharedList[tPad]->end(); iter++) {
-      fSharedList[tPad]->push_back(*iter);
-    }
-  }
+  fEvent = new AliESDEvent();
+//   fEventFriend = aReader.fEventFriend;
+//   fClusterPerPadrow = (list<Int_t> **) malloc(sizeof(list<Int_t> *) * AliESDfriendTrack::kMaxTPCcluster);
+//   for (int tPad=0; tPad<AliESDfriendTrack::kMaxTPCcluster; tPad++) {
+//     fClusterPerPadrow[tPad] = new list<Int_t>();
+//     list<Int_t>::iterator iter;
+//     for (iter=aReader.fClusterPerPadrow[tPad]->begin(); iter!=aReader.fClusterPerPadrow[tPad]->end(); iter++) {
+//       fClusterPerPadrow[tPad]->push_back(*iter);
+//     }
+//   }
+//   fSharedList = (list<Int_t> **) malloc(sizeof(list<Int_t> *) * AliESDfriendTrack::kMaxTPCcluster);
+//   for (int tPad=0; tPad<AliESDfriendTrack::kMaxTPCcluster; tPad++) {
+//     fSharedList[tPad] = new list<Int_t>();
+//     list<Int_t>::iterator iter;
+//     for (iter=aReader.fSharedList[tPad]->begin(); iter!=aReader.fSharedList[tPad]->end(); iter++) {
+//       fSharedList[tPad]->push_back(*iter);
+//     }
+//   }
 }
 //__________________
 AliFemtoEventReaderESDChain::~AliFemtoEventReaderESDChain()
@@ -93,16 +88,16 @@ AliFemtoEventReaderESDChain::~AliFemtoEventReaderESDChain()
   //Destructor
   delete fEvent;
 
-  for (int tPad=0; tPad<AliESDfriendTrack::kMaxTPCcluster; tPad++) {
-    fClusterPerPadrow[tPad]->clear();
-    delete fClusterPerPadrow[tPad];
-  }
-  delete [] fClusterPerPadrow;
-  for (int tPad=0; tPad<AliESDfriendTrack::kMaxTPCcluster; tPad++) {
-    fSharedList[tPad]->clear();
-    delete fSharedList[tPad];
-  }
-  delete [] fSharedList;
+//   for (int tPad=0; tPad<AliESDfriendTrack::kMaxTPCcluster; tPad++) {
+//     fClusterPerPadrow[tPad]->clear();
+//     delete fClusterPerPadrow[tPad];
+//   }
+//   delete [] fClusterPerPadrow;
+//   for (int tPad=0; tPad<AliESDfriendTrack::kMaxTPCcluster; tPad++) {
+//     fSharedList[tPad]->clear();
+//     delete fSharedList[tPad];
+//   }
+//   delete [] fSharedList;
 }
 
 //__________________
@@ -117,42 +112,42 @@ AliFemtoEventReaderESDChain& AliFemtoEventReaderESDChain::operator=(const AliFem
   fCurEvent = aReader.fCurEvent;
   fCurFile = aReader.fCurFile;
   if (fEvent) delete fEvent;
-  fEvent = new AliESD();
+  fEvent = new AliESDEvent();
 
-  fEventFriend = aReader.fEventFriend;
+  //  fEventFriend = aReader.fEventFriend;
   
-  if (fClusterPerPadrow) {
-    for (int tPad=0; tPad<AliESDfriendTrack::kMaxTPCcluster; tPad++) {
-      fClusterPerPadrow[tPad]->clear();
-      delete fClusterPerPadrow[tPad];
-    }
-    delete [] fClusterPerPadrow;
-  }
+//   if (fClusterPerPadrow) {
+//     for (int tPad=0; tPad<AliESDfriendTrack::kMaxTPCcluster; tPad++) {
+//       fClusterPerPadrow[tPad]->clear();
+//       delete fClusterPerPadrow[tPad];
+//     }
+//     delete [] fClusterPerPadrow;
+//   }
   
-  if (fSharedList) {
-    for (int tPad=0; tPad<AliESDfriendTrack::kMaxTPCcluster; tPad++) {
-      fSharedList[tPad]->clear();
-      delete fSharedList[tPad];
-    }
-    delete [] fSharedList;
-  }
-
-  fClusterPerPadrow = (list<Int_t> **) malloc(sizeof(list<Int_t> *) * AliESDfriendTrack::kMaxTPCcluster);
-  for (int tPad=0; tPad<AliESDfriendTrack::kMaxTPCcluster; tPad++) {
-    fClusterPerPadrow[tPad] = new list<Int_t>();
-    list<Int_t>::iterator iter;
-    for (iter=aReader.fClusterPerPadrow[tPad]->begin(); iter!=aReader.fClusterPerPadrow[tPad]->end(); iter++) {
-      fClusterPerPadrow[tPad]->push_back(*iter);
-    }
-  }
-  fSharedList = (list<Int_t> **) malloc(sizeof(list<Int_t> *) * AliESDfriendTrack::kMaxTPCcluster);
-  for (int tPad=0; tPad<AliESDfriendTrack::kMaxTPCcluster; tPad++) {
-    fSharedList[tPad] = new list<Int_t>();
-    list<Int_t>::iterator iter;
-    for (iter=aReader.fSharedList[tPad]->begin(); iter!=aReader.fSharedList[tPad]->end(); iter++) {
-      fSharedList[tPad]->push_back(*iter);
-    }
-  }
+//   if (fSharedList) {
+//     for (int tPad=0; tPad<AliESDfriendTrack::kMaxTPCcluster; tPad++) {
+//       fSharedList[tPad]->clear();
+//       delete fSharedList[tPad];
+//     }
+//     delete [] fSharedList;
+//   }
+
+//   fClusterPerPadrow = (list<Int_t> **) malloc(sizeof(list<Int_t> *) * AliESDfriendTrack::kMaxTPCcluster);
+//   for (int tPad=0; tPad<AliESDfriendTrack::kMaxTPCcluster; tPad++) {
+//     fClusterPerPadrow[tPad] = new list<Int_t>();
+//     list<Int_t>::iterator iter;
+//     for (iter=aReader.fClusterPerPadrow[tPad]->begin(); iter!=aReader.fClusterPerPadrow[tPad]->end(); iter++) {
+//       fClusterPerPadrow[tPad]->push_back(*iter);
+//     }
+//   }
+//   fSharedList = (list<Int_t> **) malloc(sizeof(list<Int_t> *) * AliESDfriendTrack::kMaxTPCcluster);
+//   for (int tPad=0; tPad<AliESDfriendTrack::kMaxTPCcluster; tPad++) {
+//     fSharedList[tPad] = new list<Int_t>();
+//     list<Int_t>::iterator iter;
+//     for (iter=aReader.fSharedList[tPad]->begin(); iter!=aReader.fSharedList[tPad]->end(); iter++) {
+//       fSharedList[tPad]->push_back(*iter);
+//     }
+//   }
   
   return *this;
 }
@@ -187,7 +182,7 @@ AliFemtoEvent* AliFemtoEventReaderESDChain::ReturnHbtEvent()
 
   // Get the friend information
   cout<<"starting to read event "<<fCurEvent<<endl;
-  fEvent->SetESDfriend(fEventFriend);
+  //  fEvent->SetESDfriend(fEventFriend);
   vector<int> tLabelTable;//to check labels
        
   hbtEvent = new AliFemtoEvent;
@@ -217,35 +212,35 @@ AliFemtoEvent* AliFemtoEventReaderESDChain::ReturnHbtEvent()
   nofTracks=fEvent->GetNumberOfTracks();
   int realnofTracks=0;//number of track which we use ina analysis
 
-  // Clear the shared cluster list
-  for (int tPad=0; tPad<AliESDfriendTrack::kMaxTPCcluster; tPad++) {
-    fClusterPerPadrow[tPad]->clear();
-  }
-  for (int tPad=0; tPad<AliESDfriendTrack::kMaxTPCcluster; tPad++) {
-    fSharedList[tPad]->clear();
-  }
-
-
-  for (int i=0;i<nofTracks;i++) {
-    const AliESDtrack *esdtrack=fEvent->GetTrack(i);//getting next track
-
-    list<Int_t>::iterator tClustIter;
-
-    Int_t tTrackIndices[AliESDfriendTrack::kMaxTPCcluster];
-    Int_t tNClusters = esdtrack->GetTPCclusters(tTrackIndices);
-    for (int tNcl=0; tNcl<AliESDfriendTrack::kMaxTPCcluster; tNcl++) {
-      if (tTrackIndices[tNcl] >= 0) {
-       tClustIter = find(fClusterPerPadrow[tNcl]->begin(), fClusterPerPadrow[tNcl]->end(), tTrackIndices[tNcl]);
-       if (tClustIter == fClusterPerPadrow[tNcl]->end()) {
-         fClusterPerPadrow[tNcl]->push_back(tTrackIndices[tNcl]);
-       }
-       else {
-         fSharedList[tNcl]->push_back(tTrackIndices[tNcl]);
-       }
-      }
-    }
+//   // Clear the shared cluster list
+//   for (int tPad=0; tPad<AliESDfriendTrack::kMaxTPCcluster; tPad++) {
+//     fClusterPerPadrow[tPad]->clear();
+//   }
+//   for (int tPad=0; tPad<AliESDfriendTrack::kMaxTPCcluster; tPad++) {
+//     fSharedList[tPad]->clear();
+//   }
+
+
+//   for (int i=0;i<nofTracks;i++) {
+//     const AliESDtrack *esdtrack=fEvent->GetTrack(i);//getting next track
+
+//     list<Int_t>::iterator tClustIter;
+
+//     Int_t tTrackIndices[AliESDfriendTrack::kMaxTPCcluster];
+//     Int_t tNClusters = esdtrack->GetTPCclusters(tTrackIndices);
+//     for (int tNcl=0; tNcl<AliESDfriendTrack::kMaxTPCcluster; tNcl++) {
+//       if (tTrackIndices[tNcl] >= 0) {
+//     tClustIter = find(fClusterPerPadrow[tNcl]->begin(), fClusterPerPadrow[tNcl]->end(), tTrackIndices[tNcl]);
+//     if (tClustIter == fClusterPerPadrow[tNcl]->end()) {
+//       fClusterPerPadrow[tNcl]->push_back(tTrackIndices[tNcl]);
+//     }
+//     else {
+//       fSharedList[tNcl]->push_back(tTrackIndices[tNcl]);
+//     }
+//       }
+//     }
       
-  }
+//   }
 
   for (int i=0;i<nofTracks;i++)
     {
@@ -309,33 +304,36 @@ AliFemtoEvent* AliFemtoEventReaderESDChain::ReturnHbtEvent()
       trackCopy->SetTPCsignalN((short)esdtrack->GetTPCsignalN()); //due to bug in aliesdtrack class   
       trackCopy->SetTPCsignalS(esdtrack->GetTPCsignalSigma()); 
 
-      // Fill cluster per padrow information
-      Int_t tTrackIndices[AliESDfriendTrack::kMaxTPCcluster];
-      Int_t tNClusters = esdtrack->GetTPCclusters(tTrackIndices);
-      for (int tNcl=0; tNcl<AliESDfriendTrack::kMaxTPCcluster; tNcl++) {
-       if (tTrackIndices[tNcl] > 0)
-         trackCopy->SetTPCcluster(tNcl, 1);
-       else
-         trackCopy->SetTPCcluster(tNcl, 0);
-      }
+//       // Fill cluster per padrow information
+//       Int_t tTrackIndices[AliESDfriendTrack::kMaxTPCcluster];
+//       Int_t tNClusters = esdtrack->GetTPCclusters(tTrackIndices);
+//       for (int tNcl=0; tNcl<AliESDfriendTrack::kMaxTPCcluster; tNcl++) {
+//     if (tTrackIndices[tNcl] > 0)
+//       trackCopy->SetTPCcluster(tNcl, 1);
+//     else
+//       trackCopy->SetTPCcluster(tNcl, 0);
+//       }
       
-      // Fill shared cluster information
-      list<Int_t>::iterator tClustIter;
-
-      for (int tNcl=0; tNcl<AliESDfriendTrack::kMaxTPCcluster; tNcl++) {
-       if (tTrackIndices[tNcl] > 0) {
-         tClustIter = find(fSharedList[tNcl]->begin(), fSharedList[tNcl]->end(), tTrackIndices[tNcl]);
-         if (tClustIter != fSharedList[tNcl]->end()) {
-           trackCopy->SetTPCshared(tNcl, 1);
-           cout << "Event next" <<  endl;
-           cout << "Track: " << i << endl;
-           cout << "Shared cluster: " << tNcl << " " << tTrackIndices[tNcl] << endl;
-         }
-         else {
-           trackCopy->SetTPCshared(tNcl, 0);
-         }
-       }
-      }
+//       // Fill shared cluster information
+//       list<Int_t>::iterator tClustIter;
+
+//       for (int tNcl=0; tNcl<AliESDfriendTrack::kMaxTPCcluster; tNcl++) {
+//     if (tTrackIndices[tNcl] > 0) {
+//       tClustIter = find(fSharedList[tNcl]->begin(), fSharedList[tNcl]->end(), tTrackIndices[tNcl]);
+//       if (tClustIter != fSharedList[tNcl]->end()) {
+//         trackCopy->SetTPCshared(tNcl, 1);
+//         cout << "Event next" <<  endl;
+//         cout << "Track: " << i << endl;
+//         cout << "Shared cluster: " << tNcl << " " << tTrackIndices[tNcl] << endl;
+//       }
+//       else {
+//         trackCopy->SetTPCshared(tNcl, 0);
+//       }
+//     }
+//       }
+
+      trackCopy->SetTPCClusterMap(esdtrack->GetTPCClusterMap());
+      trackCopy->SetTPCSharedMap(esdtrack->GetTPCSharedMap());
 
       if (tGoodMomentum==true)
        {
@@ -356,19 +354,19 @@ AliFemtoEvent* AliFemtoEventReaderESDChain::ReturnHbtEvent()
   return hbtEvent; 
 }
 //___________________
-void AliFemtoEventReaderESDChain::SetESDSource(AliESD *aESD)
+void AliFemtoEventReaderESDChain::SetESDSource(AliESDEvent *aESD)
 {
   // The chain loads the ESD for us
   // You must provide the address where it can be found
   fEvent = aESD;
 }
 //___________________
-void AliFemtoEventReaderESDChain::SetESDfriendSource(AliESDfriend *aFriend)
-{
-  // We need the ESD tree to obtain
-  // information about the friend file location
-  fEventFriend = aFriend;
-}
+// void AliFemtoEventReaderESDChain::SetESDfriendSource(AliESDfriend *aFriend)
+// {
+//   // We need the ESD tree to obtain
+//   // information about the friend file location
+//   fEventFriend = aFriend;
+// }
 
 
 
index 5a445177795d5f15b97d6ff1401ade12eb4a7a54..ac4368fec8f11688e0185217232bebafdda85f88 100644 (file)
@@ -15,7 +15,7 @@
 #include <string>
 #include <vector>
 #include "TTree.h"
-#include "AliESD.h"
+#include "AliESDEvent.h"
 #include "AliESDfriend.h"
 #include <list>
 
@@ -35,8 +35,8 @@ class AliFemtoEventReaderESDChain : public AliFemtoEventReader
   void SetConstrained(const bool constrained);
   bool GetConstrained() const;
 
-  void SetESDSource(AliESD *aESD);
-  void SetESDfriendSource(AliESDfriend *aFriend);
+  void SetESDSource(AliESDEvent *aESD);
+  //  void SetESDfriendSource(AliESDfriend *aFriend);
 
  protected:
 
@@ -46,11 +46,11 @@ class AliFemtoEventReaderESDChain : public AliFemtoEventReader
   int            fNumberofEvent; //number of Events in ESD file
   int            fCurEvent;      //number of current event
   unsigned int   fCurFile;       //number of current file
-  AliESD*        fEvent;         //ESD event
-  AliESDfriend*  fEventFriend;
+  AliESDEvent*   fEvent;         //ESD event
+  //  AliESDfriend*  fEventFriend;
 
-  list<Int_t>  **fSharedList;       //! Table (one list per padrow) of clusters which are shared
-  list<Int_t>  **fClusterPerPadrow; //! Table (one list per padrow) of clusters in each padrow
+/*   list<Int_t>  **fSharedList;       //! Table (one list per padrow) of clusters which are shared */
+/*   list<Int_t>  **fClusterPerPadrow; //! Table (one list per padrow) of clusters in each padrow */
                
 #ifdef __ROOT__
   ClassDef(AliFemtoEventReaderESDChain, 1)
index 819c72b779286ab7226eac869eb9a8c3abcbcd2b..c73dc1f89d09d1649b6ed7b4cde2aa7e059b5fa8 100644 (file)
@@ -11,6 +11,9 @@
 #include "AliFemtoModelGausLCMSFreezeOutGenerator.h"
 #include "AliFemtoModelHiddenInfo.h"
 #include "AliFemtoModelCorrFctn.h"
+#include "AliFemtoPair.h"
+#include "AliFemtoModelManager.h"
+#include <TH1D.h>
     
 //_______________________
 AliFemtoModelCorrFctn::AliFemtoModelCorrFctn(): 
@@ -19,6 +22,7 @@ AliFemtoModelCorrFctn::AliFemtoModelCorrFctn():
   fNumeratorFake(0),
   fDenominator(0)
 {
+  // Default constructor
   fNumeratorTrue = new TH1D("ModelNumTrue","ModelNumTrue",50,0.0,0.5);
   fNumeratorFake = new TH1D("ModelNumFake","ModelNumFake",50,0.0,0.5);
   fDenominator = new TH1D("ModelDen","ModelDen",50,0.0,0.5);
@@ -34,6 +38,7 @@ AliFemtoModelCorrFctn::AliFemtoModelCorrFctn(const char *title, Int_t aNbins, Do
   fNumeratorFake(0),
   fDenominator(0)
 {
+  // Normal constructor
   char buf[100];
   sprintf(buf, "NumTrue%s", title);
   fNumeratorTrue = new TH1D(buf,buf,aNbins,aQinvLo,aQinvHi);
@@ -53,6 +58,7 @@ AliFemtoModelCorrFctn::AliFemtoModelCorrFctn(const AliFemtoModelCorrFctn& aCorrF
   fNumeratorFake(0),
   fDenominator(0)
 {
+  // Copy constructor
   if (aCorrFctn.fNumeratorTrue)
     fNumeratorTrue = new TH1D(*(aCorrFctn.fNumeratorTrue));
   if (aCorrFctn.fNumeratorFake)
@@ -64,6 +70,7 @@ AliFemtoModelCorrFctn::AliFemtoModelCorrFctn(const AliFemtoModelCorrFctn& aCorrF
 //_______________________
 AliFemtoModelCorrFctn::~AliFemtoModelCorrFctn()
 {
+  // Destructor
   if (fNumeratorTrue) delete fNumeratorTrue;
   if (fNumeratorFake) delete fNumeratorFake;
   if (fDenominator) delete fDenominator;
@@ -71,6 +78,7 @@ AliFemtoModelCorrFctn::~AliFemtoModelCorrFctn()
 //_______________________
 AliFemtoModelCorrFctn& AliFemtoModelCorrFctn::operator=(const AliFemtoModelCorrFctn& aCorrFctn)
 {
+  // Assignment operator
   if (this == &aCorrFctn)
     return *this;
   
@@ -99,6 +107,7 @@ void AliFemtoModelCorrFctn::ConnectToManager(AliFemtoModelManager *aManager)
 //_______________________
 AliFemtoString AliFemtoModelCorrFctn::Report()
 {
+  // Prepare report
   AliFemtoString tStr = "AliFemtoModelCorrFctn report";
 
   return tStr;
@@ -135,6 +144,7 @@ void AliFemtoModelCorrFctn::Finish()
 //_______________________
 void AliFemtoModelCorrFctn::Write()
 {
+  // Write out data histos
   fNumeratorTrue->Write();
   fNumeratorFake->Write();
   fDenominator->Write();
@@ -142,6 +152,7 @@ void AliFemtoModelCorrFctn::Write()
 //_______________________
 AliFemtoModelCorrFctn* AliFemtoModelCorrFctn::Clone()
 {
+  // Create clone
   AliFemtoModelCorrFctn *tCopy = new AliFemtoModelCorrFctn(*this);
   
   return tCopy;
index efd6bcce6007b095911c27f2d102d5c67e2f02ed..74eaa776ebe691d7cd70c3d6456872f61a2a35e3 100644 (file)
@@ -4,12 +4,13 @@
 /// uses the model framework and weight generation                           ///
 ///                                                                          ///
 ////////////////////////////////////////////////////////////////////////////////
-#ifndef AliFemtoModelCorrFctn_hh
-#define AliFemtoModelCorrFctn_hh
+#ifndef ALIFEMTOMODELCORRFCTN_H
+#define ALIFEMTOMODELCORRFCTN_H
 
 #include "AliFemtoCorrFctn.h"
-#include "AliFemtoPair.h"
-#include "AliFemtoModelManager.h"
+class AliFemtoPair;
+class AliFemtoModelManager;
+class TH1D;
 
 class AliFemtoModelCorrFctn: public AliFemtoCorrFctn {
 
index 28b1af1bd94ae5eecad2ef8226d8cb16ec38833c..a3f3b70b9654f292153d6fda9c3e31359df876d1 100644 (file)
@@ -18,7 +18,7 @@ class AliFemtoModelGausLCMSFreezeOutGenerator : public AliFemtoModelFreezeOutGen
   AliFemtoModelGausLCMSFreezeOutGenerator();
   AliFemtoModelGausLCMSFreezeOutGenerator(const AliFemtoModelGausLCMSFreezeOutGenerator &aModel);
   virtual ~AliFemtoModelGausLCMSFreezeOutGenerator();
-  virtual void GenerateFreezeOut(AliFemtoPair *aPair);;
+  virtual void GenerateFreezeOut(AliFemtoPair *aPair);
 
   void SetSizeOut(Double_t aSizeOut);
   void SetSizeSide(Double_t aSizeSide);
index da48ab257e40226d7e8ab45674db632b271cc5f4..98662cc48d46b04c1750a6feaecf7b50b58e3a0e 100644 (file)
@@ -15,7 +15,7 @@ AliFemtoModelHiddenInfo::AliFemtoModelHiddenInfo() :
   fMass(0)
 {
   // Default constructor
-};
+}
 //_____________________________________________
 AliFemtoModelHiddenInfo::AliFemtoModelHiddenInfo(const AliFemtoModelHiddenInfo &aInfo) :
   fTrueMomentum(0),
index f92119c0896d7e4b67121685e71f8a4db649288f..e1f767497cd1ef280552ab510a045eef6f09b85d 100644 (file)
@@ -9,6 +9,8 @@
   ClassImp(AliFemtoModelGausLCMSFreezeOutGenerator, 1)
 #endif
 
+#include "AliFemtoPair.h"
+
 #include "AliFemtoModelWeightGenerator.h"
 #include "AliFemtoModelHiddenInfo.h"
 
@@ -56,6 +58,7 @@ Int_t    AliFemtoModelWeightGenerator::GetPairType() const
 //_____________________________________________
 void     AliFemtoModelWeightGenerator::SetPairTypeFromPair(AliFemtoPair *aPair)
 {
+  // Get the type of pair from PID of particles in the pair
   AliFemtoModelHiddenInfo *inf1 = ( AliFemtoModelHiddenInfo *) aPair->Track1()->HiddenInfo();
   AliFemtoModelHiddenInfo *inf2 = ( AliFemtoModelHiddenInfo *) aPair->Track2()->HiddenInfo();
 
index ae9eb441783c414617b8a7d4b74a73e8030db0c5..286597bca4cabf470b5a80abcfa552fc86be94ce 100644 (file)
@@ -5,11 +5,11 @@
 /// Authors: Adam Kisiel kisiel@mps.ohio-state.edu                           ///
 ///                                                                          ///
 ////////////////////////////////////////////////////////////////////////////////
-#ifndef AliFemtoModelWeightGenerator_hh
-#define AliFemtoModelWeightGenerator_hh
+#ifndef ALIFEMTOMODELWEIGHTGENERATOR_H
+#define ALIFEMTOMODELWEIGHTGENERATOR_H
 
 #include "TRandom2.h"
-#include "AliFemtoPair.h"
+class AliFemtoPair;
 
 class AliFemtoModelWeightGenerator 
 {
@@ -48,7 +48,7 @@ class AliFemtoModelWeightGenerator
   static const Int_t fgkKaonPlusAntiproton;// opposite-charge kaon proton pair
 
  protected:
-  Int_t fPairType;
+  Int_t fPairType;     // Type of the pair for which the calculation is done
 
   Double_t fKStarOut;  // relative momentum out component in PRF
   Double_t fKStarSide; // relative momentum side component in PRF
index d2018a9027a4c95afce3ed05b5dc685d787edbf6..a879c51434e708b1625f37920b604fb72eb64262 100644 (file)
@@ -13,6 +13,7 @@
 //#include "StHbtMaker/ThCorrFctn/AliFemtoModelWeightGeneratorLednicky.h"
 #include "AliFemtoModelWeightGeneratorLednicky.h"
 #include "AliFemtoModelHiddenInfo.h"
+#include "AliFemtoPair.h"
 //#include "StarCallf77.h"
 //#include <strstream.h>
 //#include <iomanip.h>
@@ -145,7 +146,7 @@ AliFemtoModelWeightGeneratorLednicky::AliFemtoModelWeightGeneratorLednicky() :
   strcpy( fLLName[30],"Proton Anti-proton");// gael 21May02
   FsiInit();
   FsiNucl();
-};
+}
 //______________________
 AliFemtoModelWeightGeneratorLednicky::AliFemtoModelWeightGeneratorLednicky(const AliFemtoModelWeightGeneratorLednicky &aWeight):
   AliFemtoModelWeightGenerator(),
@@ -383,8 +384,8 @@ double AliFemtoModelWeightGeneratorLednicky::GenerateWeight(AliFemtoPair* aPair)
     if (fI3c==0) return fWein;
     fWeightDen=fWeif;
     return fWei;
-  };
-};
+  }
+}
 
 AliFemtoString AliFemtoModelWeightGeneratorLednicky::Report() {
   // create report
@@ -418,7 +419,7 @@ void AliFemtoModelWeightGeneratorLednicky::FsiInit(){
   cout <<"mIsi dans FsiInit() = " << fIsi << endl;
   cout <<"mI3c dans FsiInit() = " << fI3c << endl;
   fsiin(fItest,fIch,fIqs,fIsi,fI3c);
-};
+}
 
 void AliFemtoModelWeightGeneratorLednicky::FsiNucl(){
   // initialize weight generation taking into account the residual charge
@@ -427,15 +428,15 @@ void AliFemtoModelWeightGeneratorLednicky::FsiNucl(){
   cout <<"fNuclCharge dans FsiNucl() = " << fNuclCharge << endl;
   cout <<"fNuclChargeSign dans FsiNucl() = " << fNuclChargeSign << endl;
   fsinucl(fNuclMass,fNuclCharge*fNuclChargeSign);
-};
+}
 
 void AliFemtoModelWeightGeneratorLednicky::FsiSetLL(){
   // set internal pair type for the module
   int tNS;
   if (fSphereApp||(fLL>5)) {
     if (fT0App) { tNS=4;} 
-    else {tNS=2;};
-  } else { tNS=1;};
+    else {tNS=2;}
+  } else { tNS=1;}
    //cout <<"fLL dans FsiSetLL() = "<< fLL << endl;
    //cout <<"tNS dans FsiSetLL() = "<< tNS << endl;
    //cout <<"fItest dans FsiSetLL() = "<< fItest << endl;
@@ -488,7 +489,7 @@ bool AliFemtoModelWeightGeneratorLednicky::SetPid(const int aPid1,const int aPid
     case ksLamPid:     fLL=27;tChargeFactor*=1 ;break;
     case -ksProtPid:   fLL=30;tChargeFactor*=1 ;break;
     default: fLL=0;
-    };
+    }
     break;
   case ksKPid:
     switch (tPidh) {
@@ -497,20 +498,20 @@ bool AliFemtoModelWeightGeneratorLednicky::SetPid(const int aPid1,const int aPid
     case ksProtPid:    fLL=16;tChargeFactor*=1 ;break;
     case -ksProtPid:   fLL=17;tChargeFactor*=-1 ;break;
     default: fLL=0;
-    };
+    }
     break;    
   case ksK0Pid:
     switch (tPidh) {
     case ksK0Pid:         fLL=22;tChargeFactor*=1 ;break;
     case -ksK0Pid:        fLL=23;tChargeFactor*=1 ;break;
     default: fLL=0;
-    };
+    }
     break;   
   case ksPi0Pid:
     switch (tPidh) {
     case ksPi0Pid:        fLL=6; tChargeFactor*=1 ;break;
     default: fLL=0;
-    };
+    }
     break;
   case ksNeutPid:
     switch (tPidh) {
@@ -518,13 +519,13 @@ bool AliFemtoModelWeightGeneratorLednicky::SetPid(const int aPid1,const int aPid
     case ksProtPid:      fLL=3; tChargeFactor*=1 ;break;
     case ksLamPid:       fLL=28;tChargeFactor*=1 ;break;
     default: fLL=0;
-    };
+    }
     break;                                             //Gael 21May02 
   case ksLamPid:                                        //Gael 21May02 
     switch (tPidh) {                                   //Gael 21May02 
     case ksLamPid:       fLL=29;tChargeFactor*=1 ;break;//Gael 21May02  
     default: fLL=0;                                    //Gael 21May02 
-    };                                                 //Gael 21May02 
+    }                                                 //Gael 21May02 
     break;                                             //Gael 21May02 
   default: fLL=0;
   }
@@ -546,7 +547,7 @@ bool AliFemtoModelWeightGeneratorLednicky::SetPid(const int aPid1,const int aPid
 
 }    
 AliFemtoModelWeightGeneratorLednicky::~AliFemtoModelWeightGeneratorLednicky() 
-{ /* no-op */ };
+{ /* no-op */ }
 
 //_____________________________________________
 void     AliFemtoModelWeightGeneratorLednicky::SetPairType(Int_t aPairType)
@@ -623,25 +624,25 @@ void     AliFemtoModelWeightGeneratorLednicky::SetPairTypeFromPair(AliFemtoPair
   SetPid(ktPid1, ktPid2);
 }
 
-void AliFemtoModelWeightGeneratorLednicky::SetNuclCharge(const double aNuclCharge) {fNuclCharge=aNuclCharge;FsiNucl();};
-void AliFemtoModelWeightGeneratorLednicky::SetNuclMass(const double aNuclMass){fNuclMass=aNuclMass;FsiNucl();};
+void AliFemtoModelWeightGeneratorLednicky::SetNuclCharge(const double aNuclCharge) {fNuclCharge=aNuclCharge;FsiNucl();}
+void AliFemtoModelWeightGeneratorLednicky::SetNuclMass(const double aNuclMass){fNuclMass=aNuclMass;FsiNucl();}
 
-void AliFemtoModelWeightGeneratorLednicky::SetSphere(){fSphereApp=true;};
-void AliFemtoModelWeightGeneratorLednicky::SetSquare(){fSphereApp=false;};
-void AliFemtoModelWeightGeneratorLednicky::SetT0ApproxOn(){ fT0App=true;};
-void AliFemtoModelWeightGeneratorLednicky::SetT0ApproxOff(){ fT0App=false;};
+void AliFemtoModelWeightGeneratorLednicky::SetSphere(){fSphereApp=true;}
+void AliFemtoModelWeightGeneratorLednicky::SetSquare(){fSphereApp=false;}
+void AliFemtoModelWeightGeneratorLednicky::SetT0ApproxOn(){ fT0App=true;}
+void AliFemtoModelWeightGeneratorLednicky::SetT0ApproxOff(){ fT0App=false;}
 void AliFemtoModelWeightGeneratorLednicky::SetDefaultCalcPar(){
   fItest=1;fIqs=1;fIsi=1;fI3c=0;fIch=1;FsiInit();
-  fSphereApp=false;fT0App=false;};
-
-void AliFemtoModelWeightGeneratorLednicky::SetCoulOn()    {fItest=1;fIch=1;FsiInit();};
-void AliFemtoModelWeightGeneratorLednicky::SetCoulOff()   {fItest=1;fIch=0;FsiInit();};
-void AliFemtoModelWeightGeneratorLednicky::SetQuantumOn() {fItest=1;fIqs=1;FsiInit();};
-void AliFemtoModelWeightGeneratorLednicky::SetQuantumOff(){fItest=1;fIqs=0;FsiInit();};
-void AliFemtoModelWeightGeneratorLednicky::SetStrongOn()  {fItest=1;fIsi=1;FsiInit();};
-void AliFemtoModelWeightGeneratorLednicky::SetStrongOff() {fItest=1;fIsi=0;FsiInit();};
-void AliFemtoModelWeightGeneratorLednicky::Set3BodyOn()   {fItest=1;fI3c=1;FsiInit();FsiNucl();};
-void AliFemtoModelWeightGeneratorLednicky::Set3BodyOff()  {fItest=1;fI3c=0;FsiInit();fWeightDen=1.;FsiNucl();};
+  fSphereApp=false;fT0App=false;}
+
+void AliFemtoModelWeightGeneratorLednicky::SetCoulOn()    {fItest=1;fIch=1;FsiInit();}
+void AliFemtoModelWeightGeneratorLednicky::SetCoulOff()   {fItest=1;fIch=0;FsiInit();}
+void AliFemtoModelWeightGeneratorLednicky::SetQuantumOn() {fItest=1;fIqs=1;FsiInit();}
+void AliFemtoModelWeightGeneratorLednicky::SetQuantumOff(){fItest=1;fIqs=0;FsiInit();}
+void AliFemtoModelWeightGeneratorLednicky::SetStrongOn()  {fItest=1;fIsi=1;FsiInit();}
+void AliFemtoModelWeightGeneratorLednicky::SetStrongOff() {fItest=1;fIsi=0;FsiInit();}
+void AliFemtoModelWeightGeneratorLednicky::Set3BodyOn()   {fItest=1;fI3c=1;FsiInit();FsiNucl();}
+void AliFemtoModelWeightGeneratorLednicky::Set3BodyOff()  {fItest=1;fI3c=0;FsiInit();fWeightDen=1.;FsiNucl();}
 
 Double_t AliFemtoModelWeightGeneratorLednicky::GetKStar() const {return AliFemtoModelWeightGenerator::GetKStar();}
 Double_t AliFemtoModelWeightGeneratorLednicky::GetKStarOut() const { return AliFemtoModelWeightGenerator::GetKStarOut(); }
index a7bf76dd6cb4c5f1b85f9f73a876f895d122b5e0..a51eb241f19fa2749898f49190d4b32c201807e2 100644 (file)
@@ -110,7 +110,7 @@ void AliFemtoPair::SetMergingPar(double aMaxDuInner, double aMaxDzInner,
   fgMaxDzInner = aMaxDzInner;
   fgMaxDuOuter = aMaxDuOuter;
   fgMaxDzOuter = aMaxDzOuter;
-};
+}
 
 AliFemtoPair::~AliFemtoPair() {
   // Destructor
index b0be8b8b14d4bdb90e5389f21ea192e1b380174b..99a9389ba4ad6c3c599b71c9b045727b94977688 100644 (file)
@@ -51,7 +51,7 @@ protected:
 
 inline AliFemtoPairCut::AliFemtoPairCut(const AliFemtoPairCut& c) :  AliFemtoCutMonitorHandler(), fyAnalysis(0) {  }
 inline void AliFemtoPairCut::SetAnalysis(AliFemtoAnalysis* analysis) { fyAnalysis = analysis; }
-inline AliFemtoPairCut::AliFemtoPairCut(): AliFemtoCutMonitorHandler(), fyAnalysis(0) {};   // default constructor. - Users should write their own
+inline AliFemtoPairCut::AliFemtoPairCut(): AliFemtoCutMonitorHandler(), fyAnalysis(0) {}   // default constructor. - Users should write their own
 inline AliFemtoPairCut& AliFemtoPairCut::operator=(const AliFemtoPairCut &aCut) { if (this == &aCut) return *this; fyAnalysis = aCut.fyAnalysis; return *this; }
 
 #endif
index d433e9243f9b786ebd63dfe4d22d9a204bbf61d6..b351f7f6606e2e313db1da27cb8035a4cc81a9dc 100644 (file)
@@ -55,7 +55,8 @@ public:
 
   // the following method is for explicit internal calculation to fill datamembers.
   // It is invoked automatically if AliFemtoParticle constructed from AliFemtoTrack
-  //void CalculateNominalTpcExitAndEntrancePoints(); // NOTE - this requires the fHelix, so be sure this is filled
+  // void CalculateNominalTpcExitAndEntrancePoints(); 
+  // NOTE - this requires the fHelix, so be sure this is filled
 
 
   AliFemtoThreeVector fNominalPosSample[11];  // I make this public for convenience and speed of AliFemtoPair()
@@ -130,7 +131,7 @@ private:
 };
 
 inline AliFemtoTrack* AliFemtoParticle::Track() const { return fTrack; }
-inline unsigned long  AliFemtoParticle::TrackId() const { return fTrack->TrackId(); }
+inline unsigned long  AliFemtoParticle::TrackId() const { return fTrack->TrackId(); }
 inline const AliFemtoLorentzVector& AliFemtoParticle::FourMomentum() const {return fFourMomentum;}
 inline AliFmPhysicalHelixD& AliFemtoParticle::Helix() {return fHelix;}
 //inline unsigned long AliFemtoParticle::TopologyMap(const int word) const {return fMap[word];}
index 582033b19ce742222c4fa0f89f6c71e1473b8533..6cb509df39d4c4a52ed52eb10b18f01c2b69d14e 100644 (file)
@@ -50,7 +50,7 @@ protected:
 #endif
 };
 
-inline AliFemtoParticleCut::AliFemtoParticleCut(): AliFemtoCutMonitorHandler(), fyAnalysis(0), fMass(0){};   // default constructor. - Users should write their own
+inline AliFemtoParticleCut::AliFemtoParticleCut(): AliFemtoCutMonitorHandler(), fyAnalysis(0), fMass(0){}   // default constructor. - Users should write their own
 inline AliFemtoParticleCut::AliFemtoParticleCut(const AliFemtoParticleCut& c): AliFemtoCutMonitorHandler(), fyAnalysis(0), fMass(0) { 
   fMass = c.fMass; fyAnalysis = 0; 
 #ifdef STHBTDEBUG
index e0557f2846cdde15a6866722ebeb8a3753c01d7b..06bcbf31ce6c4e98d56c8dd8eb7905574650a9a1 100644 (file)
@@ -1,3 +1,10 @@
+////////////////////////////////////////////////////////////////////////////////
+//                                                                            //
+// AliFemtoPicoEvent - internal AliFemto representation of the event.         //
+// Created for the sake of minimizing the used size. Multiple instances are   //
+// stored in memory when several mixing bins are used.                        //
+//                                                                            //
+////////////////////////////////////////////////////////////////////////////////
 /***************************************************************************
  *
  * $Id$
  ***************************************************************************
  *
  * $Log$
+ * Revision 1.1.2.1  2007/10/12 14:28:37  akisiel
+ * New wave of cleanup and rule conformance
+ *
+ * Revision 1.1  2007/05/16 10:22:11  akisiel
+ * Making the directory structure of AliFemto flat. All files go into one common directory
+ *
  * Revision 1.2  2007/05/03 09:42:29  akisiel
  * Fixing Effective C++ warnings
  *
@@ -48,6 +61,7 @@
  **************************************************************************/
 
 #include "AliFemtoPicoEvent.h"
+#include "AliFemtoParticleCollection.h"
 
 //________________
 AliFemtoPicoEvent::AliFemtoPicoEvent() :
@@ -55,6 +69,7 @@ AliFemtoPicoEvent::AliFemtoPicoEvent() :
   fSecondParticleCollection(0),
   fThirdParticleCollection(0)
 {
+  // Default constructor
   fFirstParticleCollection = new AliFemtoParticleCollection;
   fSecondParticleCollection = new AliFemtoParticleCollection;
   fThirdParticleCollection = new AliFemtoParticleCollection;
@@ -65,6 +80,7 @@ AliFemtoPicoEvent::AliFemtoPicoEvent(const AliFemtoPicoEvent& aPicoEvent) :
   fSecondParticleCollection(0),
   fThirdParticleCollection(0)
 {
+  // Copy constructor
   AliFemtoParticleIterator iter;
 
   fFirstParticleCollection = new AliFemtoParticleCollection;
@@ -88,6 +104,7 @@ AliFemtoPicoEvent::AliFemtoPicoEvent(const AliFemtoPicoEvent& aPicoEvent) :
 }
 //_________________
 AliFemtoPicoEvent::~AliFemtoPicoEvent(){
+  // Destructor
   AliFemtoParticleIterator iter;
   
   if (fFirstParticleCollection){
@@ -120,8 +137,9 @@ AliFemtoPicoEvent::~AliFemtoPicoEvent(){
   }
 }
 //_________________
- AliFemtoPicoEvent& AliFemtoPicoEvent::operator=(AliFemtoPicoEvent& aPicoEvent) 
+AliFemtoPicoEvent& AliFemtoPicoEvent::operator=(const AliFemtoPicoEvent& aPicoEvent) 
 {
+  // Assignment operator
   if (this == &aPicoEvent) 
     return *this;
 
index 1d33736fd389df8481b4046ecce55d20e304fcbe..bcea239af046083f7f6dd3e5ceed6a8ed2d7be2d 100644 (file)
  ***************************************************************************
  *
  * $Log$
+ * Revision 1.1.2.1  2007/10/12 14:28:37  akisiel
+ * New wave of cleanup and rule conformance
+ *
+ * Revision 1.1  2007/05/16 10:22:11  akisiel
+ * Making the directory structure of AliFemto flat. All files go into one common directory
+ *
  * Revision 1.2  2007/05/03 09:42:29  akisiel
  * Fixing Effective C++ warnings
  *
@@ -33,8 +39,8 @@
  *
  **************************************************************************/
 
-#ifndef AliFemtoPicoEvent_hh
-#define AliFemtoPicoEvent_hh
+#ifndef ALIFEMTOPICOEVENT_H
+#define ALIFEMTOPICOEVENT_H
 
 #include "AliFemtoParticleCollection.h"
 
@@ -44,7 +50,7 @@ public:
   AliFemtoPicoEvent(const AliFemtoPicoEvent& aPicoEvent);
   ~AliFemtoPicoEvent();
 
-  AliFemtoPicoEvent& operator=(AliFemtoPicoEvent& aPicoEvent);
+  AliFemtoPicoEvent& operator=(const AliFemtoPicoEvent& aPicoEvent);
 
   /* may want to have other stuff in here, like where is primary vertex */
 
@@ -53,9 +59,9 @@ public:
   AliFemtoParticleCollection* ThirdParticleCollection();
 
 private:
-  AliFemtoParticleCollection* fFirstParticleCollection;
-  AliFemtoParticleCollection* fSecondParticleCollection;
-  AliFemtoParticleCollection* fThirdParticleCollection;
+  AliFemtoParticleCollection* fFirstParticleCollection;  // Collection of particles of type 1
+  AliFemtoParticleCollection* fSecondParticleCollection; // Collection of particles of type 2
+  AliFemtoParticleCollection* fThirdParticleCollection;  // Collection of particles of type 3
 };
 
 inline AliFemtoParticleCollection* AliFemtoPicoEvent::FirstParticleCollection(){return fFirstParticleCollection;}
index fd0623e49d56279c28dddb3a28ef6a2aa4eb1b4b..c5c857fbff9552c2177cc9d98ebef81b0f4496af 100644 (file)
@@ -53,6 +53,9 @@ AliFemtoTrack::AliFemtoTrack():
 {
   // Default constructor
   fHiddenInfo = NULL;
+  fKinkIndexes[0] = 0;
+  fKinkIndexes[1] = 0;
+  fKinkIndexes[2] = 0;
   //  cout << "Created track " << this << endl;
 }
 
@@ -117,8 +120,11 @@ AliFemtoTrack::AliFemtoTrack(const AliFemtoTrack& t) :
     fHiddenInfo = t.GetHiddenInfo()->Clone();
   else 
     fHiddenInfo = NULL;
+  fKinkIndexes[0] = t.fKinkIndexes[0];
+  fKinkIndexes[1] = t.fKinkIndexes[1];
+  fKinkIndexes[2] = t.fKinkIndexes[2];
   //  cout << "Created track " << this << endl;
-};
+}
 
 AliFemtoTrack& AliFemtoTrack::operator=(const AliFemtoTrack& aTrack)
 {
@@ -151,6 +157,9 @@ AliFemtoTrack& AliFemtoTrack::operator=(const AliFemtoTrack& aTrack)
   fTPCsignalS=aTrack.fTPCsignalS;  
   fClusters=aTrack.fClusters;
   fShared=aTrack.fShared;
+  fKinkIndexes[0] = aTrack.fKinkIndexes[0];
+  fKinkIndexes[1] = aTrack.fKinkIndexes[1];
+  fKinkIndexes[2] = aTrack.fKinkIndexes[2];
   if (ValidHiddenInfo())
     delete fHiddenInfo;
   if (aTrack.ValidHiddenInfo())
@@ -233,3 +242,26 @@ void AliFemtoTrack::SetTPCshared(const short& aNBit, const Bool_t& aValue)
   fShared.SetBitNumber(aNBit, aValue);
 }
 
+void AliFemtoTrack::SetTPCClusterMap(const TBits& aBits)
+{
+  fClusters = aBits;
+}
+void AliFemtoTrack::SetTPCSharedMap(const TBits& aBits)
+{
+  fShared = aBits;
+}
+
+void AliFemtoTrack::SetKinkIndexes(int points[3])
+{
+  fKinkIndexes[0] = points[0];
+  fKinkIndexes[1] = points[1];
+  fKinkIndexes[2] = points[2];
+}
+
+int  AliFemtoTrack::KinkIndex(int aIndex) const
+{
+  if ((aIndex <3) && (aIndex>=0))
+    return fKinkIndexes[aIndex];
+  else
+    return 0;
+}
index 85a43a0495d6374c271b4b5563d8d23647ce07c9..744e724c22144e3ade05fdb8a2c9725db1e41494 100644 (file)
@@ -101,6 +101,12 @@ public:
   void SetTPCcluster(const short& aNBit, const Bool_t& aValue);
   void SetTPCshared(const short& aNBit, const Bool_t& aValue);
 
+  void SetTPCClusterMap(const TBits& aBits);
+  void SetTPCSharedMap(const TBits& aBits);
+
+  void SetKinkIndexes(int points[3]);
+  int  KinkIndex(int aIndex) const;
+
   /* Th stuff */
   void SetHiddenInfo(AliFemtoHiddenInfo* aHiddenInfo);
   bool ValidHiddenInfo() const;
@@ -114,7 +120,7 @@ public:
     kTPCin=0x0010,kTPCout=0x0020,kTPCrefit=0x0040,kTPCpid=0x0080,
     kTRDin=0x0100,kTRDout=0x0200,kTRDrefit=0x0400,kTRDpid=0x0800,
     kTOFin=0x1000,kTOFout=0x2000,kTOFrefit=0x4000,kTOFpid=0x8000,
-    kHMPIDpid=0x20000,
+    kRICHpid=0x20000,
     kTRDbackup=0x80000,
     kTRDStop=0x20000000,
     kESDpid=0x40000000,
@@ -147,12 +153,13 @@ public:
   // TPC related track information
   float  fTPCchi2;       // chi2 in the TPC
   int    fTPCncls;       // number of clusters assigned in the TPC
-  short fTPCnclsF;      // number of findable clusters in the TPC
-  short fTPCsignalN;    // number of points used for dEdx
-  float fTPCsignalS;    // RMS of dEdx measurement
-  TBits fClusters;      // Cluster per padrow map
-  TBits fShared;        // Sharing per padrow map
-  
+  short fTPCnclsF;       // number of findable clusters in the TPC
+  short fTPCsignalN;     // number of points used for dEdx
+  float fTPCsignalS;     // RMS of dEdx measurement
+  TBits fClusters;       // Cluster per padrow map
+  TBits fShared;         // Sharing per padrow map
+
+  int   fKinkIndexes[3]; // Kink Index list
   /* Th stuff */
   // Fab private : add mutable
   //  mutable 
index bcdfd6393a98f079ff9f531ddfdc543cbfa6eec7..ce6a65a9247ad255d65cdb8611849d5ba150d651 100644 (file)
@@ -1,3 +1,9 @@
+////////////////////////////////////////////////////////////////////////////
+//                                                                        //
+// AliFemtoVertexAnalysis - Femtoscopic analysis which mixes events       //
+// with respect to the z position of the primary vertex                   //
+//                                                                        //
+////////////////////////////////////////////////////////////////////////////
 /***************************************************************************
  *
  * $Id$
  ***************************************************************************
  *
  * $Log$
+ * Revision 1.2.2.2  2007/10/12 14:28:37  akisiel
+ * New wave of cleanup and rule conformance
+ *
+ * Revision 1.2.2.1  2007/10/05 09:38:17  akisiel
+ * Fix stray colons
+ *
+ * Revision 1.2  2007/07/09 16:17:11  mlisa
+ * several files changed to change name of AliFemtoAnalysis to AliFemtoSimpleAnalysis and AliFemtoBaseAnalysis to AliFemtoAnalysis.  Also removed some hard-coded cuts of Marek
+ *
  * Revision 1.1  2007/05/16 10:22:12  akisiel
  * Making the directory structure of AliFemto flat. All files go into one common directory
  *
@@ -79,7 +94,7 @@ AliFemtoVertexAnalysis::AliFemtoVertexAnalysis(unsigned int bins, double min, do
   fOverFlow = 0; 
   if (fMixingBuffer) delete fMixingBuffer;
   fPicoEventCollectionVectorHideAway = new AliFemtoPicoEventCollectionVectorHideAway(fVertexBins,fVertexZ[0],fVertexZ[1]);
-};
+}
 //____________________________
 
 AliFemtoVertexAnalysis::AliFemtoVertexAnalysis(const AliFemtoVertexAnalysis& a) : 
@@ -153,23 +168,25 @@ AliFemtoVertexAnalysis::~AliFemtoVertexAnalysis(){
 //____________________________
 AliFemtoString AliFemtoVertexAnalysis::Report()
 {
+  // prepare report fromt the execution
   cout << "AliFemtoVertexAnalysis - constructing Report..."<<endl;
-  char Ctemp[200];
+  char ctemp[200];
   AliFemtoString temp = "-----------\nHbt AliFemtoVertexAnalysis Report:\n";
-  sprintf(Ctemp,"Events are mixed in %d bins in the range %E cm to %E cm.\n",fVertexBins,fVertexZ[0],fVertexZ[1]);
-  temp += Ctemp;
-  sprintf(Ctemp,"Events underflowing: %d\n",fUnderFlow);
-  temp += Ctemp;
-  sprintf(Ctemp,"Events overflowing: %d\n",fOverFlow);
-  temp += Ctemp;
-  sprintf(Ctemp,"Now adding AliFemtoSimpleAnalysis(base) Report\n");
-  temp += Ctemp;
+  sprintf(ctemp,"Events are mixed in %d bins in the range %E cm to %E cm.\n",fVertexBins,fVertexZ[0],fVertexZ[1]);
+  temp += ctemp;
+  sprintf(ctemp,"Events underflowing: %d\n",fUnderFlow);
+  temp += ctemp;
+  sprintf(ctemp,"Events overflowing: %d\n",fOverFlow);
+  temp += ctemp;
+  sprintf(ctemp,"Now adding AliFemtoSimpleAnalysis(base) Report\n");
+  temp += ctemp;
   temp += AliFemtoSimpleAnalysis::Report();
   AliFemtoString returnThis=temp;
   return returnThis;
 }
 //_________________________
 void AliFemtoVertexAnalysis::ProcessEvent(const AliFemtoEvent* hbtEvent) {
+  // Put the event though the analysis
   cout << " AliFemtoVertexAnalysis::ProcessEvent(const AliFemtoEvent* hbtEvent) " << endl;
   // get right mixing buffer
   double vertexZ = hbtEvent->PrimVertPos().z();
index fedd161f188689acc917fc4e06082bd576b3cee9..4218bfdd8cb599db2a45d403b87ea09a5113593b 100644 (file)
@@ -1,11 +1,18 @@
+////////////////////////////////////////////////////////////////////////////
+//                                                                        //
+// AliFemtoVertexAnalysis - Femtoscopic analysis which mixes events       //
+// with respect to the z position of the primary vertex                   //
+//                                                                        //
+////////////////////////////////////////////////////////////////////////////
+
 /***************************************************************************
  * Collection and analysis for vertex dependent event mixing
  * Frank Laue, Ohio State, 2000
  *
  **************************************************************************/
 
-#ifndef AliFemtoVertexAnalysis_hh
-#define AliFemtoVertexAnalysis_hh
+#ifndef ALIFEMTOVERTEXANALYSIS_H
+#define ALIFEMTOVERTEXANALYSIS_H
 
 #include "AliFemtoSimpleAnalysis.h"        // base analysis class
 
@@ -13,7 +20,7 @@ class AliFemtoVertexAnalysis : public AliFemtoSimpleAnalysis {
 
 public:
 
-  AliFemtoVertexAnalysis(unsigned int =10, double =-100., double=+100.);
+  AliFemtoVertexAnalysis(unsigned int bins=10, double min=-100., double max=+100.);
   AliFemtoVertexAnalysis(const AliFemtoVertexAnalysis& OriginalAnalysis);  // copy constructor
   virtual void ProcessEvent(const AliFemtoEvent* ProcessThisEvent);
   virtual ~AliFemtoVertexAnalysis();
index 02770aee8c1fd44c3c154c8911e68ea37a3876a7..ba7d6fa9aee9cbd89518dd057591ae81d491c211 100644 (file)
  ***************************************************************************
  *
  * $Log$
+ * Revision 1.2.2.2  2007/10/12 14:28:37  akisiel
+ * New wave of cleanup and rule conformance
+ *
+ * Revision 1.2.2.1  2007/10/05 09:38:17  akisiel
+ * Fix stray colons
+ *
+ * Revision 1.2  2007/07/09 16:17:11  mlisa
+ * several files changed to change name of AliFemtoAnalysis to AliFemtoSimpleAnalysis and AliFemtoBaseAnalysis to AliFemtoAnalysis.  Also removed some hard-coded cuts of Marek
+ *
  * Revision 1.1  2007/05/16 10:22:12  akisiel
  * Making the directory structure of AliFemto flat. All files go into one common directory
  *
  *
  *
  **************************************************************************/
+////////////////////////////////////////////////////////////////////////////
+//                                                                        //
+// AliFemtoVertexMultAnalysis - Femtoscopic analysis which mixes event    //
+// with respect to the z position of the primary vertex and event total   //
+// multiplicity                                                           //
+// You need to provide the number of z-vertex and multiplicity bins       //
+// as well as ranges for the variables                                    //
+//                                                                        //
+////////////////////////////////////////////////////////////////////////////
 
 #include "AliFemtoVertexMultAnalysis.h"
 #include "AliFemtoParticleCollection.h"
@@ -56,13 +74,13 @@ ClassImp(AliFemtoVertexMultAnalysis)
 #endif
 
 extern void FillHbtParticleCollection(AliFemtoParticleCut*         partCut,
-                                    AliFemtoEvent*               hbtEvent,
-                                    AliFemtoParticleCollection*  partCollection);
+                                     AliFemtoEvent*               hbtEvent,
+                                     AliFemtoParticleCollection*  partCollection);
 
 
 //____________________________
 AliFemtoVertexMultAnalysis::AliFemtoVertexMultAnalysis(unsigned int binsVertex, double minVertex, double maxVertex,
-                                                unsigned int binsMult, double minMult, double maxMult) 
+                                                      unsigned int binsMult, double minMult, double maxMult) 
   : 
   fVertexZBins(binsVertex), 
   fOverFlowVertexZ(0), 
@@ -89,7 +107,7 @@ AliFemtoVertexMultAnalysis::AliFemtoVertexMultAnalysis(unsigned int binsVertex,
   if (fMixingBuffer) delete fMixingBuffer;
   fPicoEventCollectionVectorHideAway = new AliFemtoPicoEventCollectionVectorHideAway(fVertexZBins,fVertexZ[0],fVertexZ[1],
                                                                                  fMultBins,fMult[0],fMult[1]);
-};
+}
 //____________________________
 
 AliFemtoVertexMultAnalysis::AliFemtoVertexMultAnalysis(const AliFemtoVertexMultAnalysis& a) : 
@@ -170,29 +188,33 @@ AliFemtoVertexMultAnalysis::~AliFemtoVertexMultAnalysis(){
 //____________________________
 AliFemtoString AliFemtoVertexMultAnalysis::Report()
 {
+  // Prepare a report of the execution
   cout << "AliFemtoVertexMultAnalysis - constructing Report..."<<endl;
-  char Ctemp[200];
+  char ctemp[200];
   AliFemtoString temp = "-----------\nHbt AliFemtoVertexMultAnalysis Report:\n";
-  sprintf(Ctemp,"Events are mixed in %d VertexZ bins in the range %E cm to %E cm.\n",fVertexZBins,fVertexZ[0],fVertexZ[1]);
-  temp += Ctemp;
-  sprintf(Ctemp,"Events underflowing: %d\n",fUnderFlowVertexZ);
-  temp += Ctemp;
-  sprintf(Ctemp,"Events overflowing: %d\n",fOverFlowVertexZ);
-  temp += Ctemp;
-  sprintf(Ctemp,"Events are mixed in %d Mult bins in the range %E cm to %E cm.\n",fMultBins,fMult[0],fMult[1]);
-  temp += Ctemp;
-  sprintf(Ctemp,"Events underflowing: %d\n",fUnderFlowMult);
-  temp += Ctemp;
-  sprintf(Ctemp,"Events overflowing: %d\n",fOverFlowMult);
-  temp += Ctemp;
-  sprintf(Ctemp,"Now adding AliFemtoSimpleAnalysis(base) Report\n");
-  temp += Ctemp;
+  sprintf(ctemp,"Events are mixed in %d VertexZ bins in the range %E cm to %E cm.\n",fVertexZBins,fVertexZ[0],fVertexZ[1]);
+  temp += ctemp;
+  sprintf(ctemp,"Events underflowing: %d\n",fUnderFlowVertexZ);
+  temp += ctemp;
+  sprintf(ctemp,"Events overflowing: %d\n",fOverFlowVertexZ);
+  temp += ctemp;
+  sprintf(ctemp,"Events are mixed in %d Mult bins in the range %E cm to %E cm.\n",fMultBins,fMult[0],fMult[1]);
+  temp += ctemp;
+  sprintf(ctemp,"Events underflowing: %d\n",fUnderFlowMult);
+  temp += ctemp;
+  sprintf(ctemp,"Events overflowing: %d\n",fOverFlowMult);
+  temp += ctemp;
+  sprintf(ctemp,"Now adding AliFemtoSimpleAnalysis(base) Report\n");
+  temp += ctemp;
   temp += AliFemtoSimpleAnalysis::Report();
   AliFemtoString returnThis=temp;
   return returnThis;
 }
 //_________________________
 void AliFemtoVertexMultAnalysis::ProcessEvent(const AliFemtoEvent* hbtEvent) {
+  // Perform event processing
+  // in bins of z vertex and multiplicity
+
   cout << " AliFemtoVertexMultAnalysis::ProcessEvent(const AliFemtoEvent* hbtEvent) " << endl;
   // get right mixing buffer
   double vertexZ = hbtEvent->PrimVertPos().z();
index 7370d2b6446636e4bf7a67de7275cc569631b563..bd4df980b21dc251e432b237971ec5b39e04be6f 100644 (file)
@@ -1,27 +1,29 @@
-/***************************************************************************
- * Frank Laue, Ohio State, 2001
- *
- **************************************************************************/
+////////////////////////////////////////////////////////////////////////////
+//                                                                        //
+// AliFemtoVertexMultAnalysis - Femtoscopic analysis which mixes event    //
+// with respect to the z position of the primary vertex and event total   //
+// multiplicity                                                           //
+//                                                                        //
+////////////////////////////////////////////////////////////////////////////
 
-#ifndef AliFemtoVertexMultAnalysis_hh
-#define AliFemtoVertexMultAnalysis_hh
+#ifndef ALIFEMTOVERTEXMULTANALYSIS_H
+#define ALIFEMTOVERTEXMULTANALYSIS_H
 
 #include "AliFemtoSimpleAnalysis.h"        // base analysis class
-#include <limits.h>
 
 class AliFemtoVertexMultAnalysis : public AliFemtoSimpleAnalysis {
 
 public:
 
-  AliFemtoVertexMultAnalysis(unsigned int=10, double=-100., double=+100., unsigned int b=10, double=-1.e9, double=+1.e9);
+  AliFemtoVertexMultAnalysis(unsigned int binsVertex=10, double minVertex=-100., double maxVertex=+100., unsigned int binsMult=10, double minMult=-1.e9, double maxMult=+1.e9);
   AliFemtoVertexMultAnalysis(const AliFemtoVertexMultAnalysis& TheOriginalAnalysis);  // copy constructor
   virtual void ProcessEvent(const AliFemtoEvent* ProcessThisEvent);
   virtual ~AliFemtoVertexMultAnalysis();
   virtual AliFemtoString Report();       //! returns reports of all cuts applied and correlation functions being done
-  virtual unsigned int OverflowVertexZ() { return fOverFlowVertexZ;}
-  virtual unsigned int UnderflowVertexZ() { return fUnderFlowVertexZ;}
-  virtual unsigned int OverflowMult() { return fOverFlowMult;}
-  virtual unsigned int UnderflowMult() { return fUnderFlowMult;}
+  virtual unsigned int OverflowVertexZ() const { return fOverFlowVertexZ;}
+  virtual unsigned int UnderflowVertexZ() const { return fUnderFlowVertexZ;}
+  virtual unsigned int OverflowMult() const { return fOverFlowMult;}
+  virtual unsigned int UnderflowMult() const { return fUnderFlowMult;}
 protected:
   double fVertexZ[2];                 /* min/max z-vertex position allowed to be processed */
   unsigned int fVertexZBins;          /* number of VERTEX mixing bins in z-vertex in EventMixing Buffer */
index f05709e08f9b755937b8a7c0c9e70e3e079c6905..fff3f1c98532051da98d9c1b0bab98e0f12f84b2 100644 (file)
@@ -191,7 +191,7 @@ inline int   AliFemtoXi::TpcHitsBac() const
 inline float AliFemtoXi::DedxBac() const {return fDedxBachelor;}
 
 inline unsigned long    AliFemtoXi::TrackTopologyMapBac(unsigned int word) const { return fTopologyMapBachelor[word]; }
-inline unsigned short   AliFemtoXi::IdBac() const { return fKeyBac; }
+inline unsigned short   AliFemtoXi::IdBac() const { return fKeyBac; }
 inline unsigned short   AliFemtoXi::KeyBac() const { return fKeyBac; }
 
 inline void AliFemtoXi::SetdecayLengthXi(const float x){ fDecayLengthXi= x;}   
@@ -239,6 +239,12 @@ inline void AliFemtoXi::SetdedxBac(float x){fDedxBachelor=x;}
 /***********************************************************************
  *
  * $Log$
+ * Revision 1.1.2.1  2007/10/05 09:38:17  akisiel
+ * Fix stray colons
+ *
+ * Revision 1.1  2007/05/16 10:22:12  akisiel
+ * Making the directory structure of AliFemto flat. All files go into one common directory
+ *
  * Revision 1.2  2007/05/03 09:42:29  akisiel
  * Fixing Effective C++ warnings
  *
index 192b9a7c0a620c485ed9bd20c2f93f663975e5fe..4b41a11731fa296d70e7809d186b46bedbc6daef 100644 (file)
@@ -3,8 +3,8 @@
 // AliFmHelix: a helper helix class                                      //
 //                                                                       //
 ///////////////////////////////////////////////////////////////////////////
-#ifndef ALIPHYSICALHELIX_H
-#define ALIPHYSICALHELIX_H
+#ifndef ALIFMPHYSICALHELIX_H
+#define ALIFMPHYSICALHELIX_H
 
 #include "AliFmThreeVector.h"
 #include "AliFmHelix.h"
index c5cf7a52a938974ef83b7ed3d6a8f0e60745ce7c..b09fdb451fa84f0b2c2e90492bb4012d79e031cd 100644 (file)
  ***************************************************************************
  *
  * $Log$
+ * Revision 1.1.2.1  2007/10/05 09:38:17  akisiel
+ * Fix stray colons
+ *
+ * Revision 1.1  2007/05/16 10:22:12  akisiel
+ * Making the directory structure of AliFemto flat. All files go into one common directory
+ *
  * Revision 1.1.1.1  2007/04/25 15:38:41  panos
  * Importing the HBT code dir
  *
@@ -302,6 +308,6 @@ namespace units {
 
 #endif
 
-};
+}
 using namespace units;
 #endif /* HEP_SYSTEM_OF_UNITS_H */