]> git.uio.no Git - u/mrichter/AliRoot.git/commitdiff
Fixing Effective C++ warnings
authorakisiel <akisiel@f7af4fe6-9843-0410-8265-dc069ae4e863>
Thu, 3 May 2007 09:46:10 +0000 (09:46 +0000)
committerakisiel <akisiel@f7af4fe6-9843-0410-8265-dc069ae4e863>
Thu, 3 May 2007 09:46:10 +0000 (09:46 +0000)
56 files changed:
PWG2/FEMTOSCOPY/AliFemto/Analysis/AliFemtoAnalysis.cxx
PWG2/FEMTOSCOPY/AliFemto/Analysis/AliFemtoAnalysis.h
PWG2/FEMTOSCOPY/AliFemto/Analysis/AliFemtoLikeSignAnalysis.cxx
PWG2/FEMTOSCOPY/AliFemto/Analysis/AliFemtoVertexAnalysis.cxx
PWG2/FEMTOSCOPY/AliFemto/Analysis/AliFemtoVertexMultAnalysis.cxx
PWG2/FEMTOSCOPY/AliFemto/Base/AliFemtoCorrFctn.h
PWG2/FEMTOSCOPY/AliFemto/Base/AliFemtoEventCut.h
PWG2/FEMTOSCOPY/AliFemto/Base/AliFemtoEventReader.cxx
PWG2/FEMTOSCOPY/AliFemto/Base/AliFemtoEventReader.h
PWG2/FEMTOSCOPY/AliFemto/Base/AliFemtoPairCut.h
PWG2/FEMTOSCOPY/AliFemto/Base/AliFemtoParticleCut.h
PWG2/FEMTOSCOPY/AliFemto/CorrFctn/AliFemtoBPLCMS3DCorrFctn.cxx
PWG2/FEMTOSCOPY/AliFemto/CorrFctn/AliFemtoBPLCMS3DCorrFctn.h
PWG2/FEMTOSCOPY/AliFemto/CorrFctn/AliFemtoQinvCorrFctn.cxx
PWG2/FEMTOSCOPY/AliFemto/CorrFctn/AliFemtoQinvCorrFctn.h
PWG2/FEMTOSCOPY/AliFemto/Cut/AliFemtoBasicEventCut.cxx
PWG2/FEMTOSCOPY/AliFemto/Cut/AliFemtoBasicEventCut.h
PWG2/FEMTOSCOPY/AliFemto/Cut/AliFemtoBasicTrackCut.cxx
PWG2/FEMTOSCOPY/AliFemto/Cut/AliFemtoDummyPairCut.cxx
PWG2/FEMTOSCOPY/AliFemto/Cut/AliFemtoDummyPairCut.h
PWG2/FEMTOSCOPY/AliFemto/Infrastructure/AliFemtoCoulomb.cxx
PWG2/FEMTOSCOPY/AliFemto/Infrastructure/AliFemtoCoulomb.h
PWG2/FEMTOSCOPY/AliFemto/Infrastructure/AliFemtoCutMonitorHandler.cxx
PWG2/FEMTOSCOPY/AliFemto/Infrastructure/AliFemtoCutMonitorHandler.h
PWG2/FEMTOSCOPY/AliFemto/Infrastructure/AliFemtoEvent.cxx
PWG2/FEMTOSCOPY/AliFemto/Infrastructure/AliFemtoEvent.h
PWG2/FEMTOSCOPY/AliFemto/Infrastructure/AliFemtoKink.cxx
PWG2/FEMTOSCOPY/AliFemto/Infrastructure/AliFemtoKink.h
PWG2/FEMTOSCOPY/AliFemto/Infrastructure/AliFemtoManager.cxx
PWG2/FEMTOSCOPY/AliFemto/Infrastructure/AliFemtoManager.h
PWG2/FEMTOSCOPY/AliFemto/Infrastructure/AliFemtoPair.cxx
PWG2/FEMTOSCOPY/AliFemto/Infrastructure/AliFemtoPair.h
PWG2/FEMTOSCOPY/AliFemto/Infrastructure/AliFemtoParticle.cxx
PWG2/FEMTOSCOPY/AliFemto/Infrastructure/AliFemtoParticle.h
PWG2/FEMTOSCOPY/AliFemto/Infrastructure/AliFemtoPicoEvent.cxx
PWG2/FEMTOSCOPY/AliFemto/Infrastructure/AliFemtoPicoEvent.h
PWG2/FEMTOSCOPY/AliFemto/Infrastructure/AliFemtoPicoEventCollectionVectorHideAway.cxx
PWG2/FEMTOSCOPY/AliFemto/Infrastructure/AliFemtoPicoEventCollectionVectorHideAway.h
PWG2/FEMTOSCOPY/AliFemto/Infrastructure/AliFemtoTrack.cxx
PWG2/FEMTOSCOPY/AliFemto/Infrastructure/AliFemtoTrack.h
PWG2/FEMTOSCOPY/AliFemto/Infrastructure/AliFemtoV0.cxx
PWG2/FEMTOSCOPY/AliFemto/Infrastructure/AliFemtoV0.h
PWG2/FEMTOSCOPY/AliFemto/Infrastructure/AliFemtoXi.cxx
PWG2/FEMTOSCOPY/AliFemto/Infrastructure/AliFemtoXi.h
PWG2/FEMTOSCOPY/AliFemto/Infrastructure/AliFmHelix.cxx
PWG2/FEMTOSCOPY/AliFemto/Infrastructure/AliFmHelix.h
PWG2/FEMTOSCOPY/AliFemto/Reader/AliFemtoEventReaderESD.cxx
PWG2/FEMTOSCOPY/AliFemto/Reader/AliFemtoEventReaderESD.h
PWG2/FEMTOSCOPY/AliFemto/Reader/AliFemtoEventReaderESDChain.cxx
PWG2/FEMTOSCOPY/AliFemto/Reader/AliFemtoEventReaderESDChain.h
PWG2/FEMTOSCOPY/AliFemtoUser/CorrFctn/AliFemtoShareQualityCorrFctn.cxx
PWG2/FEMTOSCOPY/AliFemtoUser/CorrFctn/AliFemtoShareQualityCorrFctn.h
PWG2/FEMTOSCOPY/AliFemtoUser/Cut/AliFemtoESDTrackCut.cxx
PWG2/FEMTOSCOPY/AliFemtoUser/Cut/AliFemtoQPairCut.cxx
PWG2/FEMTOSCOPY/AliFemtoUser/Cut/AliFemtoShareQualityPairCut.cxx
PWG2/FEMTOSCOPY/AliFemtoUser/Cut/AliFemtoShareQualityPairCut.h

index d9419f582eb87f02f3b4f0ec98ca33caf1efac52..0de85ab348850f1da40cb99c2821cc31191616a9 100644 (file)
@@ -193,36 +193,42 @@ void FillHbtParticleCollection(AliFemtoParticleCut*         partCut,
   }
 }
 //____________________________
-AliFemtoAnalysis::AliFemtoAnalysis(){
+AliFemtoAnalysis::AliFemtoAnalysis() :
+  fPicoEventCollectionVectorHideAway(0), 
+  fPairCut(0),            
+  fCorrFctnCollection(0), 
+  fEventCut(0),           
+  fFirstParticleCut(0),   
+  fSecondParticleCut(0),  
+  fMixingBuffer(0),       
+  fPicoEvent(0),          
+  fNumEventsToMix(0),                     
+  fNeventsProcessed(0),                   
+  fMinSizePartCollection(0)
+{
   //  mControlSwitch     = 0;
-  fEventCut          = 0;
-  fFirstParticleCut  = 0;
-  fSecondParticleCut = 0;
-  fPairCut           = 0;
-  fCorrFctnCollection= 0;
   fCorrFctnCollection = new AliFemtoCorrFctnCollection;
   fMixingBuffer = new AliFemtoPicoEventCollection;
-  fNeventsProcessed = 0;
-  fPicoEvent=0;
-
-  fPicoEventCollectionVectorHideAway = 0;
-
-  fMinSizePartCollection=0;  // minimum # particles in ParticleCollection
-
 }
 //____________________________
 
-AliFemtoAnalysis::AliFemtoAnalysis(const AliFemtoAnalysis& a) : AliFemtoBaseAnalysis() {
+AliFemtoAnalysis::AliFemtoAnalysis(const AliFemtoAnalysis& a) : 
+  AliFemtoBaseAnalysis(),
+  fPicoEventCollectionVectorHideAway(0), 
+  fPairCut(0),            
+  fCorrFctnCollection(0), 
+  fEventCut(0),           
+  fFirstParticleCut(0),   
+  fSecondParticleCut(0),  
+  fMixingBuffer(0),       
+  fPicoEvent(0),          
+  fNumEventsToMix(0),                     
+  fNeventsProcessed(0),                   
+  fMinSizePartCollection(0)
+{
   //AliFemtoAnalysis();
-  fEventCut          = 0;
-  fFirstParticleCut  = 0;
-  fSecondParticleCut = 0;
-  fPairCut           = 0;
-  fCorrFctnCollection= 0;
   fCorrFctnCollection = new AliFemtoCorrFctnCollection;
   fMixingBuffer = new AliFemtoPicoEventCollection;
-  fNeventsProcessed = 0;
-  fPicoEvent=0;
 
   // find the right event cut
   fEventCut = a.fEventCut->Clone();
@@ -291,6 +297,59 @@ AliFemtoAnalysis::~AliFemtoAnalysis(){
   }
 }
 //______________________
+AliFemtoAnalysis& AliFemtoAnalysis::operator=(const AliFemtoAnalysis& aAna) 
+{
+  if (this == &aAna)
+    return *this;
+
+  fCorrFctnCollection = new AliFemtoCorrFctnCollection;
+  fMixingBuffer = new AliFemtoPicoEventCollection;
+
+  // find the right event cut
+  fEventCut = aAna.fEventCut->Clone();
+  // find the right first particle cut
+  fFirstParticleCut = aAna.fFirstParticleCut->Clone();
+  // find the right second particle cut
+  if (aAna.fFirstParticleCut==aAna.fSecondParticleCut) 
+    SetSecondParticleCut(fFirstParticleCut); // identical particle hbt
+  else
+    fSecondParticleCut = aAna.fSecondParticleCut->Clone();
+
+  fPairCut = aAna.fPairCut->Clone();
+  
+  if ( fEventCut ) {
+      SetEventCut(fEventCut); // this will set the myAnalysis pointer inside the cut
+      cout << " AliFemtoAnalysis::AliFemtoAnalysis(const AliFemtoAnalysis& a) - event cut set " << endl;
+  }
+  if ( fFirstParticleCut ) {
+      SetFirstParticleCut(fFirstParticleCut); // this will set the myAnalysis pointer inside the cut
+      cout << " AliFemtoAnalysis::AliFemtoAnalysis(const AliFemtoAnalysis& a) - first particle cut set " << endl;
+  }
+  if ( fSecondParticleCut ) {
+      SetSecondParticleCut(fSecondParticleCut); // this will set the myAnalysis pointer inside the cut
+      cout << " AliFemtoAnalysis::AliFemtoAnalysis(const AliFemtoAnalysis& a) - second particle cut set " << endl;
+  }  if ( fPairCut ) {
+      SetPairCut(fPairCut); // this will set the myAnalysis pointer inside the cut
+      cout << " AliFemtoAnalysis::AliFemtoAnalysis(const AliFemtoAnalysis& a) - pair cut set " << endl;
+  }
+
+  AliFemtoCorrFctnIterator iter;
+  for (iter=aAna.fCorrFctnCollection->begin(); iter!=aAna.fCorrFctnCollection->end();iter++){
+    cout << " AliFemtoAnalysis::AliFemtoAnalysis(const AliFemtoAnalysis& a) - looking for correlation functions " << endl;
+    AliFemtoCorrFctn* fctn = (*iter)->Clone();
+    if (fctn) AddCorrFctn(fctn);
+    else cout << " AliFemtoAnalysis::AliFemtoAnalysis(const AliFemtoAnalysis& a) - correlation function not found " << endl;
+  }
+
+  fNumEventsToMix = aAna.fNumEventsToMix;
+
+  fMinSizePartCollection = aAna.fMinSizePartCollection;  // minimum # particles in ParticleCollection
+
+  cout << " AliFemtoAnalysis::AliFemtoAnalysis(const AliFemtoAnalysis& a) - analysis copied " << endl;
+
+  return *this;
+}
+//______________________
 AliFemtoCorrFctn* AliFemtoAnalysis::CorrFctn(int n){  // return pointer to n-th correlation function
   if ( n<0 || n > (int)fCorrFctnCollection->size() )
     return NULL;
index f709edfa1e2b75946db5e0200f223dff901abd27..9fdde6a690d2487efa0d56454254ca80f5de2156 100644 (file)
@@ -31,6 +31,8 @@ class AliFemtoAnalysis : public AliFemtoBaseAnalysis {
   AliFemtoAnalysis(const AliFemtoAnalysis& OriginalAnalysis);  // copy constructor
   virtual ~AliFemtoAnalysis();
 
+  AliFemtoAnalysis& operator=(const AliFemtoAnalysis& aAna);
+
   // Gets and Sets
 
   virtual AliFemtoPairCut*       PairCut();
index 1471dfe5779d5024df801bc3988661993f62bcce..1b3c197238b4c8d1b1e6b65bb63f59611f3a807e 100644 (file)
@@ -33,7 +33,12 @@ extern void FillHbtParticleCollection(AliFemtoParticleCut*         partCut,
 
  
 //____________________________
-AliFemtoLikeSignAnalysis::AliFemtoLikeSignAnalysis(unsigned int bins, double min, double max) : AliFemtoAnalysis() {
+AliFemtoLikeSignAnalysis::AliFemtoLikeSignAnalysis(unsigned int bins, double min, double max) : 
+  AliFemtoAnalysis(),
+  fVertexBins(0),
+  fOverFlow(0),  
+  fUnderFlow(0)  
+{
   fVertexBins = bins;
   fVertexZ[0] = min;
   fVertexZ[1] = max;
@@ -44,7 +49,12 @@ AliFemtoLikeSignAnalysis::AliFemtoLikeSignAnalysis(unsigned int bins, double min
     /* no-op */
 }
 //____________________________
-AliFemtoLikeSignAnalysis::AliFemtoLikeSignAnalysis(const AliFemtoLikeSignAnalysis& a) : AliFemtoAnalysis(a) {
+AliFemtoLikeSignAnalysis::AliFemtoLikeSignAnalysis(const AliFemtoLikeSignAnalysis& a) : 
+  AliFemtoAnalysis(a) ,
+  fVertexBins(0),
+  fOverFlow(0),  
+  fUnderFlow(0)  
+{
   fVertexBins = a.fVertexBins; 
   fVertexZ[0] = a.fVertexZ[0]; 
   fVertexZ[1] = a.fVertexZ[1];
index cd50d69fc9438182bea07bf48b836a3459cd6be3..f50a936309173b18a92add2185697fff72d115ce 100644 (file)
@@ -13,6 +13,9 @@
  ***************************************************************************
  *
  * $Log$
+ * Revision 1.1.1.1  2007/04/25 15:38:41  panos
+ * Importing the HBT code dir
+ *
  * Revision 1.1.1.1  2007/03/07 10:14:49  mchojnacki
  * First version on CVS
  *
@@ -51,7 +54,11 @@ extern void FillHbtParticleCollection(AliFemtoParticleCut*         partCut,
 
 
 //____________________________
-AliFemtoVertexAnalysis::AliFemtoVertexAnalysis(unsigned int bins, double min, double max){
+AliFemtoVertexAnalysis::AliFemtoVertexAnalysis(unsigned int bins, double min, double max):
+  fVertexBins(0),
+  fOverFlow(0),  
+  fUnderFlow(0)
+{
   //  mControlSwitch     = 0;
   fEventCut          = 0;
   fFirstParticleCut  = 0;
@@ -69,7 +76,12 @@ AliFemtoVertexAnalysis::AliFemtoVertexAnalysis(unsigned int bins, double min, do
 };
 //____________________________
 
-AliFemtoVertexAnalysis::AliFemtoVertexAnalysis(const AliFemtoVertexAnalysis& a) : AliFemtoAnalysis() {
+AliFemtoVertexAnalysis::AliFemtoVertexAnalysis(const AliFemtoVertexAnalysis& a) : 
+  AliFemtoAnalysis(),
+  fVertexBins(0),
+  fOverFlow(0),  
+  fUnderFlow(0)
+{
   //AliFemtoVertexAnalysis();
   fEventCut          = 0;
   fFirstParticleCut  = 0;
index f6cc2d9b7313606522d4960901c595908e39e4b3..0b97218ddc29f8bf7f3750ebe76d7399d2e50d5e 100644 (file)
@@ -13,6 +13,9 @@
  ***************************************************************************
  *
  * $Log$
+ * Revision 1.1.1.1  2007/04/25 15:38:41  panos
+ * Importing the HBT code dir
+ *
  * Revision 1.1.1.1  2007/03/07 10:14:49  mchojnacki
  * First version on CVS
  *
@@ -54,7 +57,14 @@ extern void FillHbtParticleCollection(AliFemtoParticleCut*         partCut,
 //____________________________
 AliFemtoVertexMultAnalysis::AliFemtoVertexMultAnalysis(unsigned int binsVertex, double minVertex, double maxVertex,
                                                 unsigned int binsMult, double minMult, double maxMult) 
-  : fVertexZBins(binsVertex), fMultBins(binsMult) {
+  : 
+  fVertexZBins(binsVertex), 
+  fOverFlowVertexZ(0), 
+  fUnderFlowVertexZ(0),
+  fMultBins(binsMult) ,
+  fOverFlowMult(0),    
+  fUnderFlowMult(0)    
+{
   //  mControlSwitch     = 0;
   fEventCut          = 0;
   fFirstParticleCut  = 0;
@@ -76,7 +86,15 @@ AliFemtoVertexMultAnalysis::AliFemtoVertexMultAnalysis(unsigned int binsVertex,
 };
 //____________________________
 
-AliFemtoVertexMultAnalysis::AliFemtoVertexMultAnalysis(const AliFemtoVertexMultAnalysis& a) : AliFemtoAnalysis() {
+AliFemtoVertexMultAnalysis::AliFemtoVertexMultAnalysis(const AliFemtoVertexMultAnalysis& a) : 
+  AliFemtoAnalysis(),
+  fVertexZBins(a.fVertexZBins), 
+  fOverFlowVertexZ(0), 
+  fUnderFlowVertexZ(0),
+  fMultBins(a.fMultBins) ,
+  fOverFlowMult(0),    
+  fUnderFlowMult(0)    
+{
   //AliFemtoVertexMultAnalysis();
   fEventCut          = 0;
   fFirstParticleCut  = 0;
@@ -84,12 +102,10 @@ AliFemtoVertexMultAnalysis::AliFemtoVertexMultAnalysis(const AliFemtoVertexMultA
   fPairCut           = 0;
   fCorrFctnCollection= 0;
   fCorrFctnCollection = new AliFemtoCorrFctnCollection;
-  fVertexZBins = a.fVertexZBins; 
   fVertexZ[0] = a.fVertexZ[0]; 
   fVertexZ[1] = a.fVertexZ[1];
   fUnderFlowVertexZ = 0; 
   fOverFlowVertexZ = 0; 
-  fMultBins = a.fMultBins; 
   fMult[0] = a.fMult[0]; 
   fMult[1] = a.fMult[1];
   fUnderFlowMult = 0; 
index 6dfbcf2786e78306aa2739d66888d6c02e1fb752..277d2d2e2bde40bb3586b1187ed01fb0f065bb2f 100644 (file)
@@ -14,14 +14,15 @@ class AliFemtoCorrFctn{
   friend class AliFemtoBaseAnalysis;
 
 public:
-  AliFemtoCorrFctn(){/* no-op */};
+  AliFemtoCorrFctn();
   AliFemtoCorrFctn(const AliFemtoCorrFctn& aCorrFctn);
   virtual ~AliFemtoCorrFctn(){/* no-op */};
+  AliFemtoCorrFctn& operator=(const AliFemtoCorrFctn& aCorrFctn);
 
   virtual AliFemtoString Report() = 0;
 
-  virtual void AddRealPair(const AliFemtoPair* aPair);
-  virtual void AddMixedPair(const AliFemtoPair* aPir);
+  virtual void AddRealPair(AliFemtoPair* aPair);
+  virtual void AddMixedPair(AliFemtoPair* aPir);
 
   virtual void EventBegin(const AliFemtoEvent* aEvent) { /* no-op */ }
   virtual void EventEnd(const AliFemtoEvent* aEvent) { /* no-op */ }
@@ -39,10 +40,12 @@ private:
 
 };
 
-inline void AliFemtoCorrFctn::AddRealPair(const AliFemtoPair*) { cout << "Not implemented" << endl; }
-inline void AliFemtoCorrFctn::AddMixedPair(const AliFemtoPair*) { cout << "Not implemented" << endl; }
+inline void AliFemtoCorrFctn::AddRealPair(AliFemtoPair*) { cout << "Not implemented" << endl; }
+inline void AliFemtoCorrFctn::AddMixedPair(AliFemtoPair*) { cout << "Not implemented" << endl; }
 
-inline AliFemtoCorrFctn::AliFemtoCorrFctn(const AliFemtoCorrFctn& c) { fyAnalysis =0; }
+inline AliFemtoCorrFctn::AliFemtoCorrFctn(const AliFemtoCorrFctn& c):fyAnalysis(0) {}
+inline AliFemtoCorrFctn::AliFemtoCorrFctn(): fyAnalysis(0) {/* no-op */};
 inline void AliFemtoCorrFctn::SetAnalysis(AliFemtoBaseAnalysis* analysis) { fyAnalysis = analysis; }
+inline AliFemtoCorrFctn& AliFemtoCorrFctn::operator=(const AliFemtoCorrFctn& aCorrFctn) { if (this == &aCorrFctn) return *this; fyAnalysis = aCorrFctn.fyAnalysis; return *this; }
 
 #endif
index 9944b7eaa2f88f61f5d578bc1f85df930d29f6c4..f3b50e49eefcc98180d22dd8d54838a0c2b4788a 100644 (file)
@@ -17,10 +17,11 @@ class AliFemtoEventCut : public AliFemtoCutMonitorHandler {
 
 public:
 
-  AliFemtoEventCut(){/* no-op */};                // default constructor. - Users should write their own
+  AliFemtoEventCut();                // default constructor. - Users should write their own
   AliFemtoEventCut(const AliFemtoEventCut& c); // copy constructor
   virtual ~AliFemtoEventCut(){/* no-op */};       // destructor
-  
+  AliFemtoEventCut& operator=(const AliFemtoEventCut& aCut);
+
   virtual bool Pass(const AliFemtoEvent* event) =0;  // true if passes, false if not
 
   virtual AliFemtoString Report() =0;    // user-written method to return string describing cuts
@@ -38,6 +39,8 @@ protected:
 #endif
 };
 
-inline AliFemtoEventCut::AliFemtoEventCut(const AliFemtoEventCut& c) : AliFemtoCutMonitorHandler() { fyAnalysis=0;}
+inline AliFemtoEventCut::AliFemtoEventCut(const AliFemtoEventCut& c) : AliFemtoCutMonitorHandler(), fyAnalysis(0) { }
 inline void AliFemtoEventCut::SetAnalysis(AliFemtoBaseAnalysis* analysis) { fyAnalysis = analysis; }
+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 fd37b6c954632011e98959c6bc5dd916c33c98bb..16beb41f95b6bee3da379f69a51068edceb1191d 100644 (file)
 ClassImp(AliFemtoEventReader)
 #endif
 
+AliFemtoEventReader::AliFemtoEventReader(const AliFemtoEventReader& aReader):
+  fEventCut(0),  
+  fTrackCut(0),    
+  fV0Cut(0),       
+  fXiCut(0),       
+  fKinkCut(0),    
+  fReaderStatus(0),  
+  fDebug(0)
+{
+  fEventCut = aReader.fEventCut;
+  fTrackCut = aReader.fTrackCut;
+  fV0Cut    = aReader.fV0Cut;
+  fXiCut    = aReader.fXiCut;
+  fKinkCut  = aReader.fKinkCut;
+  fReaderStatus = aReader.fReaderStatus;
+  fDebug = aReader.fDebug;
+}
+
+AliFemtoEventReader& AliFemtoEventReader::operator=(const AliFemtoEventReader& aReader)
+{
+  if (this == &aReader) 
+    return *this;
+
+  fEventCut = aReader.fEventCut;
+  fTrackCut = aReader.fTrackCut;
+  fV0Cut    = aReader.fV0Cut;
+  fXiCut    = aReader.fXiCut;
+  fKinkCut  = aReader.fKinkCut;
+  fReaderStatus = aReader.fReaderStatus;
+  fDebug = aReader.fDebug;
+
+  return *this;
+}
+
+
 AliFemtoString AliFemtoEventReader::Report(){
   // Create a simple report from the workings of the reader
   AliFemtoString temp = "\n This is the base class AliFemtoEventReader reporting";
index 3fa1d16568b62b8be2324d05955aef055d76078e..414ca95a608d15dcd07b88efcb946dd5ac8cb6d8 100644 (file)
@@ -19,13 +19,16 @@ using namespace std;
 #include "Infrastructure/AliFemtoString.h"
 
 class AliFemtoEventReader {
-
-public:
+  
+ public:
   // even tho it's only a base class and never constructed, if you don't have an implementation,
   // you get "AliFemtoEventReader type_info node" upon dynamical loading
-  AliFemtoEventReader() : fEventCut(0), fTrackCut(0), fV0Cut(0), fXiCut(0), fKinkCut(0), fDebug(1) { /* no-op */ }
+  AliFemtoEventReader() : fEventCut(0), fTrackCut(0), fV0Cut(0), fXiCut(0), fKinkCut(0), fReaderStatus(0), fDebug(1) { /* no-op */ };
+  AliFemtoEventReader(const AliFemtoEventReader& aReader);
   virtual ~AliFemtoEventReader(){/* no-op */}
   
+  AliFemtoEventReader& operator=(const AliFemtoEventReader& aReader);
+  
   virtual AliFemtoEvent* ReturnHbtEvent() =0;
 
   virtual AliFemtoString Report();    // user-written method to return string describing reader
index 25ba8ba8461d91bc432c9f76aba81b1e2f717c21..1fbc30ee7882d527f060c02aa9818df02ace7b89 100644 (file)
@@ -21,9 +21,10 @@ class AliFemtoPairCut : public AliFemtoCutMonitorHandler {
 
 public:
 
-  AliFemtoPairCut(){/* no-op */};   // default constructor. - Users should write their own
+  AliFemtoPairCut();   // default constructor. - Users should write their own
   AliFemtoPairCut(const AliFemtoPairCut& c); // copy constructor
   virtual ~AliFemtoPairCut(){/* no-op */};  // destructor
+  AliFemtoPairCut& operator=(const AliFemtoPairCut &aCut);
 
   virtual bool Pass(const AliFemtoPair* pair) =0;  // true if passes, false if not
 
@@ -45,6 +46,9 @@ protected:
 };
 
 
-inline AliFemtoPairCut::AliFemtoPairCut(const AliFemtoPairCut& c) : AliFemtoCutMonitorHandler() { fyAnalysis = 0; }
+inline AliFemtoPairCut::AliFemtoPairCut(const AliFemtoPairCut& c) :  AliFemtoCutMonitorHandler(), fyAnalysis(0) {  }
 inline void AliFemtoPairCut::SetAnalysis(AliFemtoBaseAnalysis* analysis) { fyAnalysis = analysis; }
+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 f1a0f23dd53b168085c01968f4d152cde166a4f5..51733e8b85a2b5935a13547f0001bb411ff8bec0 100644 (file)
@@ -16,9 +16,10 @@ class AliFemtoParticleCut : public AliFemtoCutMonitorHandler {
   friend class AliFemtoBaseAnalysis;
 
 public:
-  AliFemtoParticleCut(){/* no-op */};   // default constructor. - Users should write their own
+  AliFemtoParticleCut();   // default constructor. - Users should write their own
   AliFemtoParticleCut(const AliFemtoParticleCut&); // copy constructor
   virtual ~AliFemtoParticleCut(){/* no-op */};  // destructor
+  AliFemtoParticleCut& operator=(const AliFemtoParticleCut& aCut);
 
   virtual AliFemtoString Report() =0;    // user-written method to return string describing cuts
 
@@ -36,19 +37,21 @@ public:
   void SetAnalysis(AliFemtoBaseAnalysis*);
 
 protected:
-  double fMass;
   AliFemtoBaseAnalysis* fyAnalysis; // Link to the base analysis class
+  double fMass;
 
 #ifdef __ROOT__
   ClassDef(AliFemtoParticleCut, 0)
 #endif
 };
 
-inline AliFemtoParticleCut::AliFemtoParticleCut(const AliFemtoParticleCut& c) : AliFemtoCutMonitorHandler() { 
+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
   cout << " AliFemtoParticleCut::AliFemtoParticleCut(const AliFemtoParticleCut& c) - fMass: " << fMass << endl;
 #endif
 }
 inline void AliFemtoParticleCut::SetAnalysis(AliFemtoBaseAnalysis* analysis) { fyAnalysis = analysis; }
+inline AliFemtoParticleCut& AliFemtoParticleCut::operator=(const AliFemtoParticleCut& aCut) { if (this == &aCut) return *this; fyAnalysis = aCut.fyAnalysis; fMass=aCut.fMass; return *this; }
 #endif
index 30a312268954da4581572c6b3cab4d48a8a98619..9d1f85dcd22b30976c6c966512d2c7cb9f4fe404 100644 (file)
@@ -11,6 +11,9 @@
  ***************************************************************************
  *
  * $Log$
+ * Revision 1.1.1.1  2007/04/25 15:38:41  panos
+ * Importing the HBT code dir
+ *
  * Revision 1.1.1.1  2007/03/07 10:14:49  mchojnacki
  * First version on CVS
  *
@@ -47,7 +50,30 @@ ClassImp(AliFemtoBPLCMS3DCorrFctn)
 #endif
 
 //____________________________
-AliFemtoBPLCMS3DCorrFctn::AliFemtoBPLCMS3DCorrFctn(char* title, const int& nbins, const float& QLo, const float& QHi){
+AliFemtoBPLCMS3DCorrFctn::AliFemtoBPLCMS3DCorrFctn(char* title, const int& nbins, const float& QLo, const float& QHi)
+  :
+  fIDNumHisto(0),
+  fIDDenHisto(0),
+  fIDRatHisto(0),
+  fSMNumHisto(0),
+  fSMDenHisto(0),
+  fSMRatHisto(0),
+  fCorrectionHisto(0),
+  fCorrCFHisto(0),
+  fNumerator(0),
+  fDenominator(0),
+  fRatio(0),
+  fQinvHisto(0),
+  fLambda(0),
+  fRout2(0),
+  fRside2(0),
+  fRlong2(0),
+  fPairCut(0), 
+  fQinvNormLo(0),
+  fQinvNormHi(0),
+  fNumRealsNorm(0),
+  fNumMixedNorm(0)
+{
 
   // set some stuff...
   fQinvNormLo = 0.15;
@@ -139,6 +165,51 @@ AliFemtoBPLCMS3DCorrFctn::AliFemtoBPLCMS3DCorrFctn(char* title, const int& nbins
 
 }
 
+AliFemtoBPLCMS3DCorrFctn::AliFemtoBPLCMS3DCorrFctn(const AliFemtoBPLCMS3DCorrFctn& aCorrFctn) :
+  fIDNumHisto(0),
+  fIDDenHisto(0),
+  fIDRatHisto(0),
+  fSMNumHisto(0),
+  fSMDenHisto(0),
+  fSMRatHisto(0),
+  fCorrectionHisto(0),
+  fCorrCFHisto(0),
+  fNumerator(0),
+  fDenominator(0),
+  fRatio(0),
+  fQinvHisto(0),
+  fLambda(0),
+  fRout2(0),
+  fRside2(0),
+  fRlong2(0),
+  fPairCut(0), 
+  fQinvNormLo(0),
+  fQinvNormHi(0),
+  fNumRealsNorm(0),
+  fNumMixedNorm(0)
+{
+  fIDNumHisto = aCorrFctn.fIDNumHisto;
+  fIDDenHisto = aCorrFctn.fIDDenHisto;
+  fIDRatHisto = aCorrFctn.fIDRatHisto;
+  fSMNumHisto = aCorrFctn.fSMNumHisto;
+  fSMDenHisto = aCorrFctn.fSMDenHisto;
+  fSMRatHisto = aCorrFctn.fSMRatHisto;
+  fCorrectionHisto = aCorrFctn.fCorrectionHisto;
+  fCorrCFHisto = aCorrFctn.fCorrCFHisto;
+  fNumerator = aCorrFctn.fNumerator;
+  fDenominator = aCorrFctn.fDenominator;
+  fRatio = aCorrFctn.fRatio;
+  fQinvHisto = aCorrFctn.fQinvHisto;
+  fLambda = aCorrFctn.fLambda;
+  fRout2 = aCorrFctn.fRout2;
+  fRside2 = aCorrFctn.fRside2;
+  fRlong2 = aCorrFctn.fRlong2;
+  fPairCut = aCorrFctn.fPairCut; 
+  fQinvNormLo = aCorrFctn.fQinvNormLo;
+  fQinvNormHi = aCorrFctn.fQinvNormHi;
+  fNumRealsNorm = aCorrFctn.fNumRealsNorm;
+  fNumMixedNorm = aCorrFctn.fNumMixedNorm;
+}
 //____________________________
 AliFemtoBPLCMS3DCorrFctn::~AliFemtoBPLCMS3DCorrFctn(){
   delete fNumerator;
@@ -154,6 +225,49 @@ AliFemtoBPLCMS3DCorrFctn::~AliFemtoBPLCMS3DCorrFctn(){
   delete fCorrectionHisto;
   delete fCorrCFHisto;
 }
+//_________________________
+AliFemtoBPLCMS3DCorrFctn& AliFemtoBPLCMS3DCorrFctn::operator=(const AliFemtoBPLCMS3DCorrFctn& aCorrFctn)
+{
+  if (this == &aCorrFctn)
+    return *this;
+  if (fIDNumHisto) delete fIDNumHisto;
+  fIDNumHisto = new TH3D(*aCorrFctn.fIDNumHisto);
+  if (fIDDenHisto) delete fIDDenHisto;
+  fIDDenHisto = new TH3D(*aCorrFctn.fIDDenHisto);
+  if (fIDRatHisto) delete fIDRatHisto;
+  fIDRatHisto = new TH3D(*aCorrFctn.fIDRatHisto);
+  if (fSMNumHisto) delete fSMNumHisto;
+  fSMNumHisto = new TH3D(*aCorrFctn.fSMNumHisto);
+  if (fSMDenHisto) delete fSMDenHisto;
+  fSMDenHisto = new TH3D(*aCorrFctn.fSMDenHisto);
+  if (fSMRatHisto) delete fSMRatHisto;
+  fSMRatHisto = new TH3D(*aCorrFctn.fSMRatHisto);
+
+  if (fCorrectionHisto) delete fCorrectionHisto;
+  fCorrectionHisto = new TH3D(*aCorrFctn.fCorrectionHisto);
+  if (fCorrCFHisto) delete fCorrCFHisto;
+  fCorrCFHisto = new TH3D(*aCorrFctn.fCorrCFHisto);
+  if (fNumerator) delete fNumerator;
+  fNumerator = new TH3D(*aCorrFctn.fNumerator);
+  if (fDenominator) delete fDenominator;
+  fDenominator = new TH3D(*aCorrFctn.fDenominator);
+  if (fRatio) delete fRatio;
+  fRatio = new TH3D(*aCorrFctn.fRatio);
+  if (fQinvHisto) delete fQinvHisto;
+  fQinvHisto = new TH3D(*aCorrFctn.fQinvHisto);
+
+  fLambda = aCorrFctn.fLambda;
+  fRout2 = aCorrFctn.fRout2;
+  fRside2 = aCorrFctn.fRside2;
+  fRlong2 = aCorrFctn.fRlong2;
+  fPairCut = aCorrFctn.fPairCut; 
+  fQinvNormLo = aCorrFctn.fQinvNormLo;
+  fQinvNormHi = aCorrFctn.fQinvNormHi;
+  fNumRealsNorm = aCorrFctn.fNumRealsNorm;
+  fNumMixedNorm = aCorrFctn.fNumMixedNorm;
+  
+  return *this;
+}
 
 //_________________________
 void AliFemtoBPLCMS3DCorrFctn::WriteOutHistos(){
index c37919fec2b850589e4413bdcad8a4f28b428b01..1e274332632ceb26ecc8f92b5724ab27b69513c6 100644 (file)
@@ -11,6 +11,9 @@
  ***************************************************************************
  *
  * $Log$
+ * Revision 1.1.1.1  2007/04/25 15:38:41  panos
+ * Importing the HBT code dir
+ *
  * Revision 1.1.1.1  2007/03/07 10:14:49  mchojnacki
  * First version on CVS
  *
 class AliFemtoBPLCMS3DCorrFctn : public AliFemtoCorrFctn {
 public:
   AliFemtoBPLCMS3DCorrFctn(char* title, const int& nbins, const float& QLo, const float& QHi);
+  AliFemtoBPLCMS3DCorrFctn(const AliFemtoBPLCMS3DCorrFctn& aCorrFctn);
   virtual ~AliFemtoBPLCMS3DCorrFctn();
 
+  AliFemtoBPLCMS3DCorrFctn& operator=(const AliFemtoBPLCMS3DCorrFctn& aCorrFctn);
+
   virtual AliFemtoString Report();
   virtual void AddRealPair(const AliFemtoPair*);
   virtual void AddMixedPair(const AliFemtoPair*);
index 6b5eaea035a589cc29a5373cd5df56b21c4b99a8..7ddc088af41855784cd379b310e4dc228cb2131c 100644 (file)
@@ -11,6 +11,9 @@
  ***************************************************************************
  *
  * $Log$
+ * Revision 1.1.1.1  2007/04/25 15:38:41  panos
+ * Importing the HBT code dir
+ *
  * Revision 1.1.1.1  2007/03/07 10:14:49  mchojnacki
  * First version on CVS
  *
@@ -46,7 +49,11 @@ ClassImp(AliFemtoQinvCorrFctn)
 #endif
 
 //____________________________
-AliFemtoQinvCorrFctn::AliFemtoQinvCorrFctn(char* title, const int& nbins, const float& QinvLo, const float& QinvHi){
+AliFemtoQinvCorrFctn::AliFemtoQinvCorrFctn(char* title, const int& nbins, const float& QinvLo, const float& QinvHi):
+  fNumerator(0),
+  fDenominator(0),
+  fRatio(0)
+{
   // set up numerator
   //  title = "Num Qinv (MeV/c)";
   char TitNum[100] = "Num";
@@ -75,12 +82,38 @@ AliFemtoQinvCorrFctn::AliFemtoQinvCorrFctn(char* title, const int& nbins, const
 
 }
 
+//____________________________
+AliFemtoQinvCorrFctn::AliFemtoQinvCorrFctn(const AliFemtoQinvCorrFctn& aCorrFctn) :
+  fNumerator(0),
+  fDenominator(0),
+  fRatio(0)
+{
+  fNumerator = new TH1D(*aCorrFctn.fNumerator);
+  fDenominator = new TH1D(*aCorrFctn.fDenominator);
+  fRatio = new TH1D(*aCorrFctn.fRatio);
+}
 //____________________________
 AliFemtoQinvCorrFctn::~AliFemtoQinvCorrFctn(){
   delete fNumerator;
   delete fDenominator;
   delete fRatio;
 }
+//_________________________
+AliFemtoQinvCorrFctn& AliFemtoQinvCorrFctn::operator=(const AliFemtoQinvCorrFctn& aCorrFctn)
+{
+  if (this == &aCorrFctn)
+    return *this;
+
+  if (fNumerator) delete fNumerator;
+  fNumerator = new TH1D(*aCorrFctn.fNumerator);
+  if (fDenominator) delete fDenominator;
+  fDenominator = new TH1D(*aCorrFctn.fDenominator);
+  if (fRatio) delete fRatio;
+  fRatio = new TH1D(*aCorrFctn.fRatio);
+
+  return *this;
+}
+
 //_________________________
 void AliFemtoQinvCorrFctn::Finish(){
   // here is where we should normalize, fit, etc...
index 34dd0da8f28107510fb811efaff6703a9471c09f..1d1ca57ee2baa1cd67adc14f0e9b3d0e4d6b962c 100644 (file)
@@ -11,6 +11,9 @@
  ***************************************************************************
  *
  * $Log$
+ * Revision 1.1.1.1  2007/04/25 15:38:41  panos
+ * Importing the HBT code dir
+ *
  * Revision 1.1.1.1  2007/03/07 10:14:49  mchojnacki
  * First version on CVS
  *
 class AliFemtoQinvCorrFctn : public AliFemtoCorrFctn {
 public:
   AliFemtoQinvCorrFctn(char* title, const int& nbins, const float& QinvLo, const float& QinvHi);
+  AliFemtoQinvCorrFctn(const AliFemtoQinvCorrFctn& aCorrFctn);
   virtual ~AliFemtoQinvCorrFctn();
 
+  AliFemtoQinvCorrFctn& operator=(const AliFemtoQinvCorrFctn& aCorrFctn);
+
   virtual AliFemtoString Report();
   virtual void AddRealPair(const AliFemtoPair*);
   virtual void AddMixedPair(const AliFemtoPair*);
index 0e22b4ef8b4e23cbe823106043194c0c52d1bcc7..bb13bb40968476fdbaa4f7ab64129e98d13a8268 100644 (file)
@@ -12,6 +12,9 @@
  ***************************************************************************
  *
  * $Log$
+ * Revision 1.1.1.1  2007/04/25 15:38:41  panos
+ * Importing the HBT code dir
+ *
  * Revision 1.1.1.1  2007/03/07 10:14:49  mchojnacki
  * First version on CVS
  *
 ClassImp(AliFemtoBasicEventCut)
 #endif
 
-AliFemtoBasicEventCut::AliFemtoBasicEventCut(){
-  fNEventsPassed =  fNEventsFailed = 0;
+AliFemtoBasicEventCut::AliFemtoBasicEventCut() :
+  fNEventsPassed(0), fNEventsFailed(0)
+{
+  /* no-op */
 } 
 //------------------------------
 //AliFemtoBasicEventCut::~AliFemtoBasicEventCut(){
index 3fb25ab29c7e80f9a72fb8fe5500f55953d0ad4f..904bb16b8039bacf2073e514cd602afd39822671 100644 (file)
@@ -12,6 +12,9 @@
  ***************************************************************************
  *
  * $Log$
+ * Revision 1.1.1.1  2007/04/25 15:38:41  panos
+ * Importing the HBT code dir
+ *
  * Revision 1.1.1.1  2007/03/07 10:14:49  mchojnacki
  * First version on CVS
  *
@@ -102,13 +105,11 @@ inline void AliFemtoBasicEventCut::SetVertZPos(const float& lo, const float& hi)
 inline int  AliFemtoBasicEventCut::NEventsPassed() {return fNEventsPassed;}
 inline int  AliFemtoBasicEventCut::NEventsFailed() {return fNEventsFailed;}
 inline AliFemtoBasicEventCut* AliFemtoBasicEventCut::Clone() { AliFemtoBasicEventCut* c = new AliFemtoBasicEventCut(*this); return c;}
-inline AliFemtoBasicEventCut::AliFemtoBasicEventCut(AliFemtoBasicEventCut& c) : AliFemtoEventCut(c) {
+inline AliFemtoBasicEventCut::AliFemtoBasicEventCut(AliFemtoBasicEventCut& c) : AliFemtoEventCut(c), fNEventsPassed(0), fNEventsFailed(0) {
   fEventMult[0] = c.fEventMult[0];
   fEventMult[1] = c.fEventMult[1];
   fVertZPos[0] = c.fVertZPos[0];
   fVertZPos[1] = c.fVertZPos[1];
-  fNEventsPassed = 0;
-  fNEventsFailed = 0;
 }
 
 
index c342cd8675b23fb6936c4da57fb24f0aab9f1a1b..b50a58b0dba965ba2696e91a12d452aad5a40bf9 100644 (file)
 ClassImp(AliFemtoBasicTrackCut)
 #endif
 
-AliFemtoBasicTrackCut::AliFemtoBasicTrackCut(){
+AliFemtoBasicTrackCut::AliFemtoBasicTrackCut():
+  fCharge(0),
+  fNTracksPassed(0),
+  fNTracksFailed(0)
+{
   fNTracksPassed = fNTracksFailed = 0;
   fCharge = 1;  // takes both charges 0
   fNSigmaPion[0] = -100.0;   fNSigmaPion[1] = 100.0;
index 84a05e0437173a304393e67680391287c4a9eab5..db760c3bea8394f8e2a537b1a36e8fb8487f200b 100644 (file)
@@ -11,6 +11,9 @@
  ***************************************************************************
  *
  * $Log$
+ * Revision 1.1.1.1  2007/04/25 15:38:41  panos
+ * Importing the HBT code dir
+ *
  * Revision 1.1.1.1  2007-03-07 10:14:49  mchojnacki
  * First version on CVS
  *
@@ -43,8 +46,11 @@ ClassImp(AliFemtoDummyPairCut)
 #endif
 
 //__________________
-AliFemtoDummyPairCut::AliFemtoDummyPairCut(){
-  fNPairsPassed = fNPairsFailed = 0;
+AliFemtoDummyPairCut::AliFemtoDummyPairCut() :
+  fNPairsPassed(0),
+  fNPairsFailed(0)
+{
+  /* no-op */
 }
 //__________________
 //AliFemtoDummyPairCut::~AliFemtoDummyPairCut(){
index bf468477b0f541e9c48af4b1bb5e5b9d1ce1ce47..81ded7edfc054b5f7644485a9ea573efd820eda5 100644 (file)
@@ -11,6 +11,9 @@
  ***************************************************************************
  *
  * $Log$
+ * Revision 1.1.1.1  2007/04/25 15:38:41  panos
+ * Importing the HBT code dir
+ *
  * Revision 1.1.1.1  2007/03/07 10:14:49  mchojnacki
  * First version on CVS
  *
@@ -85,11 +88,7 @@ private:
 #endif
 };
 
-inline AliFemtoDummyPairCut::AliFemtoDummyPairCut(const AliFemtoDummyPairCut& c) : AliFemtoPairCut(c) {
-  fNPairsPassed = 0;
-  fNPairsFailed = 0;
-
-}
+inline AliFemtoDummyPairCut::AliFemtoDummyPairCut(const AliFemtoDummyPairCut& c) : AliFemtoPairCut(c), fNPairsPassed(0), fNPairsFailed(0) { /* no-op */ }
 inline AliFemtoDummyPairCut* AliFemtoDummyPairCut::Clone() { AliFemtoDummyPairCut* c = new AliFemtoDummyPairCut(*this); return c;}
 
 #endif
index 7ec3e9340c57a67f7b78f2e7a64d99af22b18272..4758180b91830e82651921bd23fcbef09513d238 100644 (file)
@@ -14,6 +14,9 @@
  ***************************************************************************
  *
  * $Log$
+ * Revision 1.3  2007/04/27 07:24:34  akisiel
+ * Make revisions needed for compilation from the main AliRoot tree
+ *
  * Revision 1.1.1.1  2007/04/25 15:38:41  panos
  * Importing the HBT code dir
  *
 ClassImp(AliFemtoCoulomb)
 #endif
 
-AliFemtoCoulomb::AliFemtoCoulomb() {
+AliFemtoCoulomb::AliFemtoCoulomb() :
+  fFile(""),
+  fRadius(-1.0),
+  fZ1Z2(1.0),
+  fNLines(0)
+{
   fFile = "/afs/rhic/star/hbt/coul/AliFemtoCorrectionFiles/correctionpp.dat";
   if (!fFile) {
     cout << " No file, dummy!" << endl;
     assert(0);
   }
-  fRadius = -1.0;
-  fZ1Z2 = 1.0; // Default has been set up to be same sign charges
   cout << "You have 1 default Coulomb correction!" << endl;
 }
 
-AliFemtoCoulomb::AliFemtoCoulomb(const char* readFile, const double& radius, const double& charge) {
+AliFemtoCoulomb::AliFemtoCoulomb(const AliFemtoCoulomb& aCoul) :
+  fFile(aCoul.fFile),
+  fRadius(aCoul.fRadius),
+  fZ1Z2(aCoul.fZ1Z2),
+  fNLines(0)
+{
+  CreateLookupTable(fRadius);
+}
+
+AliFemtoCoulomb::AliFemtoCoulomb(const char* readFile, const double& radius, const double& charge) :
+  fFile(readFile),
+  fRadius(radius),
+  fZ1Z2(0),
+  fNLines(0)
+{
   fFile = readFile;
   fRadius = radius;
   CreateLookupTable(fRadius);
@@ -79,6 +99,21 @@ AliFemtoCoulomb::~AliFemtoCoulomb() {
 
 }
 
+AliFemtoCoulomb& AliFemtoCoulomb::operator=(const AliFemtoCoulomb& aCoul)
+{
+  if (this == &aCoul)
+    return *this;
+
+  fFile = aCoul.fFile;
+  fRadius = aCoul.fRadius;
+  fZ1Z2 = aCoul.fZ1Z2;
+
+  CreateLookupTable(fRadius);
+  
+  return *this;
+}
+
+
 void AliFemtoCoulomb::SetRadius(const double& radius) {
   cout << " AliFemtoCoulomb::setRadius() " << endl;
   fRadius = radius;
index f23e48640d3fae80cb15fc4ac0cf5db0299b7639..aa1a3b29d09e44f22280cd1a7a8e7d3200038644 100644 (file)
@@ -14,6 +14,9 @@
  ***************************************************************************
  *
  * $Log$
+ * Revision 1.1.1.1  2007/04/25 15:38:41  panos
+ * Importing the HBT code dir
+ *
  * Revision 1.1.1.1  2007/03/07 10:14:49  mchojnacki
  * First version on CVS
  *
@@ -52,8 +55,11 @@ class AliFemtoCoulomb {
 public:
   AliFemtoCoulomb();
   AliFemtoCoulomb(const char *readFile, const double& radius, const double& charge);
+  AliFemtoCoulomb(const AliFemtoCoulomb& aCoul);
   virtual ~AliFemtoCoulomb();
 
+  AliFemtoCoulomb& operator=(const AliFemtoCoulomb& aCoul);
+
   void SetRadius(const double& radius);
   double GetRadius();
   void SetFile(const char *readFile);
index 4fb5fb1b7bb63a197639722d47dbe4e0b2c743d1..e819703b7deb21ec3dd193d84b295ab31f8d7ae9 100644 (file)
@@ -6,17 +6,61 @@
 ClassImp(AliFemtoCutMonitorHandler)
 #endif
 // ---------------------------------------------------------------------------
-AliFemtoCutMonitorHandler::AliFemtoCutMonitorHandler() {
+AliFemtoCutMonitorHandler::AliFemtoCutMonitorHandler():
+  fCollectionsEmpty(0), fPassColl(0), fFailColl(0)
+ {
   cout << " *** AliFemtoCutMonitorHandler::AliFemtoCutMonitorHandler() " << endl;
   fCollectionsEmpty = 0;
   fPassColl = new AliFemtoCutMonitorCollection();
   fFailColl = new AliFemtoCutMonitorCollection();
 }
+// ---------------------------------------------------------------------------
+AliFemtoCutMonitorHandler::AliFemtoCutMonitorHandler(const AliFemtoCutMonitorHandler& aHan):
+  fCollectionsEmpty(0), fPassColl(0), fFailColl(0)
+{
+  fCollectionsEmpty = aHan.fCollectionsEmpty;
+  fPassColl = new AliFemtoCutMonitorCollection();
+  AliFemtoCutMonitorIterator iter;
+  for (iter=aHan.fPassColl->begin(); iter!=aHan.fPassColl->end(); iter++){
+    fPassColl->push_back(*iter);
+  }
+  fFailColl = new AliFemtoCutMonitorCollection();
+  for (iter=aHan.fFailColl->begin(); iter!=aHan.fFailColl->end(); iter++){
+    fFailColl->push_back(*iter);
+  }
+}
+
 // ---------------------------------------------------------------------------
 AliFemtoCutMonitorHandler::~AliFemtoCutMonitorHandler() { 
   delete fPassColl;
   delete fFailColl;
 }   
+//__________________________
+AliFemtoCutMonitorHandler& AliFemtoCutMonitorHandler::operator=(const AliFemtoCutMonitorHandler& aHan)
+{
+  if (this == &aHan)
+    return *this;
+
+  AliFemtoCutMonitorIterator iter;
+  if (fPassColl) {
+    fPassColl->clear();
+    delete fPassColl;
+  }
+  if (fFailColl) {
+    fFailColl->clear();
+    delete fFailColl;
+  }
+  fPassColl = new AliFemtoCutMonitorCollection();
+  for (iter=aHan.fPassColl->begin(); iter!=aHan.fPassColl->end(); iter++){
+    fPassColl->push_back(*iter);
+  }
+  fFailColl = new AliFemtoCutMonitorCollection();
+  for (iter=aHan.fFailColl->begin(); iter!=aHan.fFailColl->end(); iter++){
+    fFailColl->push_back(*iter);
+  }
+  return *this;
+}
+
 // ---------------------------------------------------------------------------
 void AliFemtoCutMonitorHandler::FillCutMonitor(const AliFemtoEvent* event, bool pass) { 
   if (fCollectionsEmpty) return;
index f48a2bfb8bec67166301a1bb8d6e982a4d21abc7..5057d5eb4321649fb7ae006dcf83df6a76419d35 100644 (file)
@@ -17,8 +17,10 @@ class AliFemtoCutMonitorHandler{
  public:
   
   AliFemtoCutMonitorHandler();
+  AliFemtoCutMonitorHandler(const AliFemtoCutMonitorHandler& aHan);
   virtual ~AliFemtoCutMonitorHandler();
-  
+  AliFemtoCutMonitorHandler& operator=(const AliFemtoCutMonitorHandler& aHan);
+
   AliFemtoCutMonitorCollection* PassMonitorColl(); 
   AliFemtoCutMonitorCollection* FailMonitorColl(); 
   AliFemtoCutMonitor* PassMonitor(int n); 
index 5471c731600c2be03d6d63e418b190ae6623c30f..7e549239324444891758e53690b2785589078fd2 100644 (file)
@@ -13,6 +13,9 @@
  ***************************************************************************
  *
  * $Log$
+ * Revision 1.3  2007/04/27 07:24:34  akisiel
+ * Make revisions needed for compilation from the main AliRoot tree
+ *
  * Revision 1.1.1.1  2007/04/25 15:38:41  panos
  * Importing the HBT code dir
  *
 
 
 //___________________
-AliFemtoEvent::AliFemtoEvent(){
+AliFemtoEvent::AliFemtoEvent():
+  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)
+{
   fPrimVertPos[0]=-999.0;
   fPrimVertPos[1]=-999.0;
   fPrimVertPos[2]=-999.0;
@@ -149,7 +170,25 @@ AliFemtoEvent::AliFemtoEvent(){
   fMagneticField=0.0;
 }
 //___________________
-AliFemtoEvent::AliFemtoEvent(const AliFemtoEvent& ev, AliFemtoTrackCut* tCut, AliFemtoV0Cut* vCut, AliFemtoXiCut* xCut, AliFemtoKinkCut* kCut){ // copy constructor with track and v0 cuts
+AliFemtoEvent::AliFemtoEvent(const AliFemtoEvent& ev, AliFemtoTrackCut* tCut, AliFemtoV0Cut* vCut, AliFemtoXiCut* xCut, AliFemtoKinkCut* kCut):
+  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 with track and v0 cuts
   //cout << "AliFemtoEvent::AliFemtoEvent(const AliFemtoEvent& ev, AliFemtoTrackCut* tCut, AliFemtoV0Cut* vCut, AliFemtoV0Cut* kCut)" << endl;
   fEventNumber = ev.fEventNumber;
   fRunNumber = ev.fRunNumber;
@@ -200,6 +239,55 @@ AliFemtoEvent::AliFemtoEvent(const AliFemtoEvent& ev, AliFemtoTrackCut* tCut, Al
     }
   }
 }
+//______________________________
+AliFemtoEvent& AliFemtoEvent::operator=(const AliFemtoEvent& aEvent)
+{
+  if (this == &aEvent)
+    return *this;
+
+  fEventNumber = aEvent.fEventNumber;
+  fRunNumber = aEvent.fRunNumber;
+  
+  fZDCN1Energy=aEvent.fZDCN1Energy;     
+  fZDCP1Energy=aEvent.fZDCP1Energy;      
+  fZDCN2Energy=aEvent.fZDCN2Energy;      
+  fZDCP2Energy=aEvent.fZDCP2Energy;      
+  fZDCEMEnergy=aEvent.fZDCEMEnergy;
+  fZDCParticipants=aEvent.fZDCParticipants;
+  fNumberOfTracks = aEvent.fNumberOfTracks;
+  fMagneticField= aEvent.fMagneticField;
+  
+  fTriggerMask=aEvent.fTriggerMask;     // Trigger Type (mask)
+  fTriggerCluster=aEvent.fTriggerCluster;
+  // create collections
+  fTrackCollection = new AliFemtoTrackCollection;
+  fV0Collection = new AliFemtoV0Collection;
+  fXiCollection = new AliFemtoXiCollection;
+  fKinkCollection = new AliFemtoKinkCollection;
+  // copy track collection  
+  for ( AliFemtoTrackIterator tIter=aEvent.fTrackCollection->begin(); tIter!=aEvent.fTrackCollection->end(); tIter++) {
+    AliFemtoTrack* trackCopy = new AliFemtoTrack(**tIter);
+    fTrackCollection->push_back(trackCopy);
+  }
+  // copy v0 collection
+  for ( AliFemtoV0Iterator vIter=aEvent.fV0Collection->begin(); vIter!=aEvent.fV0Collection->end(); vIter++) {
+    AliFemtoV0* v0Copy = new AliFemtoV0(**vIter);
+    fV0Collection->push_back(v0Copy);
+  }
+  // copy xi collection
+  for ( AliFemtoXiIterator xIter=aEvent.fXiCollection->begin(); xIter!=aEvent.fXiCollection->end(); xIter++) {
+    AliFemtoXi* xiCopy = new AliFemtoXi(**xIter);
+    fXiCollection->push_back(xiCopy);
+  }
+  // copy kink collection  
+  for ( AliFemtoKinkIterator kIter=aEvent.fKinkCollection->begin(); kIter!=aEvent.fKinkCollection->end(); kIter++) {
+    AliFemtoKink* kinkCopy = new AliFemtoKink(**kIter);
+    fKinkCollection->push_back(kinkCopy);
+  }
+
+  return *this;
+}
+
 //___________________
 AliFemtoEvent::~AliFemtoEvent(){
 #ifdef STHBTDEBUG
index 26b75abd260c4c98dadb0d21515e34377f6e4c02..47aa5e65fccd152905354f352419121dc165a8e6 100644 (file)
@@ -15,6 +15,9 @@
  *
  *
  * $Log$
+ * Revision 1.1.1.1  2007/04/25 15:38:41  panos
+ * Importing the HBT code dir
+ *
  * Revision 1.1.1.1  2007/03/07 10:14:49  mchojnacki
  * First version on CVS
  *
@@ -127,6 +130,7 @@ public:
 #endif
   AliFemtoEvent(const AliFemtoEvent&, AliFemtoTrackCut* =0, AliFemtoV0Cut* =0,  AliFemtoXiCut* =0, AliFemtoKinkCut* =0); // copy constructor with track and v0 cuts
   ~AliFemtoEvent();
+  AliFemtoEvent& operator=(const AliFemtoEvent& aEvent);
 
   unsigned short EventNumber() const;
   int RunNumber() const;
index 02290b77e74bf67d640248df56e9945a1bd8da06..1d62c03070ef12754cc044551cad2592f3f34206 100644 (file)
@@ -12,6 +12,9 @@
  ***********************************************************************
  *
  * $Log$
+ * Revision 1.3  2007/04/27 07:24:34  akisiel
+ * Make revisions needed for compilation from the main AliRoot tree
+ *
  * Revision 1.1.1.1  2007/04/25 15:38:41  panos
  * Importing the HBT code dir
  *
 #include "Infrastructure/phys_constants.h"
 #include "Infrastructure/AliFemtoTrack.h"
 // -----------------------------------------------------------------------
-AliFemtoKink::AliFemtoKink(const AliFemtoKink& k){ // copy constructor
+AliFemtoKink::AliFemtoKink():
+  fDcaParentDaughter(0), fDcaDaughterPrimaryVertex(0), 
+  fDcaParentPrimaryVertex(0), fHitDistanceParentDaughter(0),  
+  fHitDistanceParentVertex(0),
+  fDecayAngle(0), fDecayAngleCM(0),             
+  fDaughter(),            
+  mParent(),               
+  mPosition(0,0,0)        
+{/* no-op */}
+// -----------------------------------------------------------------------
+AliFemtoKink::AliFemtoKink(const AliFemtoKink& k):
+  fDcaParentDaughter(0), fDcaDaughterPrimaryVertex(0), 
+  fDcaParentPrimaryVertex(0), fHitDistanceParentDaughter(0),  
+  fHitDistanceParentVertex(0),
+  fDecayAngle(0), fDecayAngleCM(0),             
+  fDaughter(),            
+  mParent(),               
+  mPosition(0,0,0)        
+{ // copy constructor
 
   fDcaParentDaughter          =   k.fDcaParentDaughter;           
   fDcaDaughterPrimaryVertex   =   k.fDcaDaughterPrimaryVertex;    
index 8d7f67c272f69d58f423480e646cdbf9a8737650..244742ca4e0b09bd258135b16f85852857391b33 100644 (file)
@@ -12,6 +12,9 @@
  ***********************************************************************
  *
  * $Log$
+ * Revision 1.1.1.1  2007/04/25 15:38:41  panos
+ * Importing the HBT code dir
+ *
  * Revision 1.1.1.1  2007/03/07 10:14:49  mchojnacki
  * First version on CVS
  *
@@ -52,7 +55,7 @@ class StKinkVertex;
 
 class AliFemtoKink {
 public:
-  AliFemtoKink(){/* no-op */}
+  AliFemtoKink();
   AliFemtoKink( const AliFemtoKink&); // copy constructor
 #ifndef __NO_STAR_DEPENDENCE_ALLOWED__
 #ifdef __ROOT__
index edaaf0cd91f3f76cd0426bd7487eb38a8ab7430a..e7ec1ecc9cc2b6e10efa3dcbbccc56a7ef13c37f 100644 (file)
@@ -13,6 +13,9 @@
  ***************************************************************************
  *
  * $Log$
+ * Revision 1.1.1.1  2007/04/25 15:38:41  panos
+ * Importing the HBT code dir
+ *
  * Revision 1.1.1.1  2007/03/07 10:14:49  mchojnacki
  * First version on CVS
  *
@@ -134,11 +137,34 @@ ClassImp(AliFemtoManager)
 
 
 //____________________________
-AliFemtoManager::AliFemtoManager(){
+AliFemtoManager::AliFemtoManager():
+  fAnalysisCollection(0),
+  fEventReader(0),
+  fEventWriterCollection(0)
+{
   fAnalysisCollection = new AliFemtoAnalysisCollection;
   fEventWriterCollection = new AliFemtoEventWriterCollection;
   fEventReader = 0;
 }
+//____________________________
+AliFemtoManager::AliFemtoManager(const AliFemtoManager& aManager) :
+  fAnalysisCollection(0),
+  fEventReader(0),
+  fEventWriterCollection(0)
+{
+  fEventReader = aManager.fEventReader;
+  AliFemtoAnalysisIterator AnalysisIter;
+  fAnalysisCollection = new AliFemtoAnalysisCollection;
+  for (AnalysisIter=aManager.fAnalysisCollection->begin();AnalysisIter!=aManager.fAnalysisCollection->end();AnalysisIter++){
+    fAnalysisCollection->push_back(*AnalysisIter);
+  }
+  AliFemtoEventWriterIterator EventWriterIter;
+  fEventWriterCollection = new AliFemtoEventWriterCollection;
+  for (EventWriterIter=aManager.fEventWriterCollection->begin();EventWriterIter!=aManager.fEventWriterCollection->end();EventWriterIter++){
+    fEventWriterCollection->push_back(*EventWriterIter);
+  }
+}
+
 //____________________________
 AliFemtoManager::~AliFemtoManager(){
   delete fEventReader;
@@ -157,6 +183,43 @@ AliFemtoManager::~AliFemtoManager(){
   }
   delete fEventWriterCollection;
 }
+//____________________________
+AliFemtoManager& AliFemtoManager::operator=(const AliFemtoManager& aManager)
+{
+  if (this == &aManager)
+    return *this;
+
+  fEventReader = aManager.fEventReader;
+  AliFemtoAnalysisIterator AnalysisIter;
+  if (fAnalysisCollection) {
+    for (AnalysisIter=fAnalysisCollection->begin();AnalysisIter!=fAnalysisCollection->end();AnalysisIter++){
+      delete *AnalysisIter;
+      *AnalysisIter = 0;
+    }
+    delete fAnalysisCollection;
+  }
+  // now delete each EventWriter in the Collection, and then the Collection itself
+  AliFemtoEventWriterIterator EventWriterIter;
+  if (fEventWriterCollection) {
+    for (EventWriterIter=fEventWriterCollection->begin();EventWriterIter!=fEventWriterCollection->end();EventWriterIter++){
+      delete *EventWriterIter;
+      *EventWriterIter = 0;
+    }
+    delete fEventWriterCollection;
+  }
+
+  fAnalysisCollection = new AliFemtoAnalysisCollection;
+  for (AnalysisIter=aManager.fAnalysisCollection->begin();AnalysisIter!=aManager.fAnalysisCollection->end();AnalysisIter++){
+    fAnalysisCollection->push_back(*AnalysisIter);
+  }
+
+  fEventWriterCollection = new AliFemtoEventWriterCollection;
+  for (EventWriterIter=aManager.fEventWriterCollection->begin();EventWriterIter!=aManager.fEventWriterCollection->end();EventWriterIter++){
+    fEventWriterCollection->push_back(*EventWriterIter);
+  }
+  return *this;
+}
+
 //____________________________
 int AliFemtoManager::Init(){
   AliFemtoString readerMessage;
@@ -215,7 +278,7 @@ AliFemtoString AliFemtoManager::Report(){
   // EventReader
   stemp = fEventReader->Report();
   // EventWriters
-  sprintf(ctemp,"\nAliFemtoManager Reporting %u EventWriters\n",fEventWriterCollection->size());
+  sprintf(ctemp,"\nAliFemtoManager Reporting %u EventWriters\n",(unsigned int) fEventWriterCollection->size());
   stemp += ctemp;
   AliFemtoEventWriterIterator EventWriterIter;
   AliFemtoEventWriter* currentEventWriter;
@@ -225,7 +288,7 @@ AliFemtoString AliFemtoManager::Report(){
     stemp+=currentEventWriter->Report();
   }
   // Analyses
-  sprintf(ctemp,"\nAliFemtoManager Reporting %u Analyses\n",fAnalysisCollection->size());
+  sprintf(ctemp,"\nAliFemtoManager Reporting %u Analyses\n",(unsigned int) fAnalysisCollection->size());
   stemp += ctemp;
   AliFemtoAnalysisIterator AnalysisIter;
   AliFemtoBaseAnalysis* currentAnalysis;
index 3693e9a2df6070ed7c892f5a52d0e2790f26a71c..d0e22fa068a8a2a3ae0665feea569fd29d73d473 100644 (file)
@@ -13,6 +13,9 @@
  ***************************************************************************
  *
  * $Log$
+ * Revision 1.1.1.1  2007/04/25 15:38:41  panos
+ * Importing the HBT code dir
+ *
  * Revision 1.1.1.1  2007/03/07 10:14:49  mchojnacki
  * First version on CVS
  *
@@ -84,8 +87,11 @@ private:
 
 public:
   AliFemtoManager();
+  AliFemtoManager(const AliFemtoManager& aManager);
   virtual ~AliFemtoManager();
 
+  AliFemtoManager& operator=(const AliFemtoManager& aManager);
+
   // Gets and Sets...
   AliFemtoAnalysisCollection* AnalysisCollection();
   AliFemtoBaseAnalysis* Analysis(int n);  // Access to Analysis within Collection
index 837d7f6ba4ac2004e851768db50314aa89b0e24c..6deb4f3cfcedfa32df937ac9cbd03f0620e743b2 100644 (file)
@@ -19,6 +19,9 @@
  * corrected calculation of opening angle 
  **
  * $Log$
+ * Revision 1.1.1.1  2007/04/25 15:38:41  panos
+ * Importing the HBT code dir
+ *
  * Revision 1.1.1.1  2007/03/07 10:14:49  mchojnacki
  * First version on CVS
  *
@@ -115,14 +118,74 @@ double AliFemtoPair::fMaxDuOuter = 1.4;
 double AliFemtoPair::fMaxDzOuter = 3.2;
 
 
-AliFemtoPair::AliFemtoPair(){
+AliFemtoPair::AliFemtoPair() :
+  fTrack1(0), fTrack2(0),
+  fNonIdParNotCalculated(0),
+  fDKSide(0),
+  fDKOut(0),
+  fDKLong(0),
+  fCVK(0),
+  kStarCalc(0),
+  fNonIdParNotCalculatedGlobal(0),
+  fMergingParNotCalculated(0),
+  fWeightedAvSep(0),
+  fFracOfMergedRow(0),
+  fClosestRowAtDCA(0),
+  fMergingParNotCalculatedTrkV0Pos(0),
+  fFracOfMergedRowTrkV0Pos(0),
+  fClosestRowAtDCATrkV0Pos(0),
+  fMergingParNotCalculatedTrkV0Neg(0),
+  fFracOfMergedRowTrkV0Neg(0),
+  fClosestRowAtDCATrkV0Neg(0),
+  fMergingParNotCalculatedV0PosV0Neg(0),
+  fFracOfMergedRowV0PosV0Neg(0),
+  fClosestRowAtDCAV0PosV0Neg(0),
+  fMergingParNotCalculatedV0NegV0Pos(0),
+  fFracOfMergedRowV0NegV0Pos(0),
+  fClosestRowAtDCAV0NegV0Pos(0),
+  fMergingParNotCalculatedV0PosV0Pos(0),
+  fFracOfMergedRowV0PosV0Pos(0),
+  fClosestRowAtDCAV0PosV0Pos(0),
+  fMergingParNotCalculatedV0NegV0Neg(0),
+  fFracOfMergedRowV0NegV0Neg(0),
+  fClosestRowAtDCAV0NegV0Neg(0)
+{
   fTrack1 = 0;
   fTrack2 = 0;
   setDefaultHalfFieldMergingPar();
 }
 
 AliFemtoPair::AliFemtoPair(AliFemtoParticle* a, AliFemtoParticle* b)
-  : fTrack1(a), fTrack2(b)
+  : fTrack1(a), fTrack2(b),
+  fNonIdParNotCalculated(0),
+  fDKSide(0),
+  fDKOut(0),
+  fDKLong(0),
+  fCVK(0),
+  kStarCalc(0),
+  fNonIdParNotCalculatedGlobal(0),
+  fMergingParNotCalculated(0),
+  fWeightedAvSep(0),
+  fFracOfMergedRow(0),
+  fClosestRowAtDCA(0),
+  fMergingParNotCalculatedTrkV0Pos(0),
+  fFracOfMergedRowTrkV0Pos(0),
+  fClosestRowAtDCATrkV0Pos(0),
+  fMergingParNotCalculatedTrkV0Neg(0),
+  fFracOfMergedRowTrkV0Neg(0),
+  fClosestRowAtDCATrkV0Neg(0),
+  fMergingParNotCalculatedV0PosV0Neg(0),
+  fFracOfMergedRowV0PosV0Neg(0),
+  fClosestRowAtDCAV0PosV0Neg(0),
+  fMergingParNotCalculatedV0NegV0Pos(0),
+  fFracOfMergedRowV0NegV0Pos(0),
+  fClosestRowAtDCAV0NegV0Pos(0),
+  fMergingParNotCalculatedV0PosV0Pos(0),
+  fFracOfMergedRowV0PosV0Pos(0),
+  fClosestRowAtDCAV0PosV0Pos(0),
+  fMergingParNotCalculatedV0NegV0Neg(0),
+  fFracOfMergedRowV0NegV0Neg(0),
+  fClosestRowAtDCAV0NegV0Neg(0)
 { 
   setDefaultHalfFieldMergingPar();
 }
@@ -149,9 +212,128 @@ void AliFemtoPair::setMergingPar(double aMaxDuInner, double aMaxDzInner,
 
 AliFemtoPair::~AliFemtoPair() {/* no-op */}
 
-//AliFemtoPair::AliFemtoPair(const AliFemtoPair &a) {/* missing */}
+AliFemtoPair::AliFemtoPair(const AliFemtoPair &aPair):
+  fTrack1(0), fTrack2(0),
+  fNonIdParNotCalculated(0),
+  fDKSide(0),
+  fDKOut(0),
+  fDKLong(0),
+  fCVK(0),
+  kStarCalc(0),
+  fNonIdParNotCalculatedGlobal(0),
+  fMergingParNotCalculated(0),
+  fWeightedAvSep(0),
+  fFracOfMergedRow(0),
+  fClosestRowAtDCA(0),
+  fMergingParNotCalculatedTrkV0Pos(0),
+  fFracOfMergedRowTrkV0Pos(0),
+  fClosestRowAtDCATrkV0Pos(0),
+  fMergingParNotCalculatedTrkV0Neg(0),
+  fFracOfMergedRowTrkV0Neg(0),
+  fClosestRowAtDCATrkV0Neg(0),
+  fMergingParNotCalculatedV0PosV0Neg(0),
+  fFracOfMergedRowV0PosV0Neg(0),
+  fClosestRowAtDCAV0PosV0Neg(0),
+  fMergingParNotCalculatedV0NegV0Pos(0),
+  fFracOfMergedRowV0NegV0Pos(0),
+  fClosestRowAtDCAV0NegV0Pos(0),
+  fMergingParNotCalculatedV0PosV0Pos(0),
+  fFracOfMergedRowV0PosV0Pos(0),
+  fClosestRowAtDCAV0PosV0Pos(0),
+  fMergingParNotCalculatedV0NegV0Neg(0),
+  fFracOfMergedRowV0NegV0Neg(0),
+  fClosestRowAtDCAV0NegV0Neg(0)
+{
+  fTrack1 = aPair.fTrack1;
+  fTrack2 = aPair.fTrack2;
+
+  fNonIdParNotCalculated = aPair.fNonIdParNotCalculated;
+  fDKSide = aPair.fDKSide;
+  fDKOut = aPair.fDKOut;
+  fDKLong = aPair.fDKLong;
+  fCVK = aPair.fCVK;
+  kStarCalc = aPair.kStarCalc;
+
+  fNonIdParNotCalculatedGlobal = aPair.fNonIdParNotCalculatedGlobal;
+
+  fMergingParNotCalculated = aPair.fMergingParNotCalculated;
+  fWeightedAvSep = aPair.fWeightedAvSep;
+  fFracOfMergedRow = aPair.fFracOfMergedRow;
+  fClosestRowAtDCA = aPair.fClosestRowAtDCA;
+
+  fMergingParNotCalculatedTrkV0Pos = aPair.fMergingParNotCalculatedTrkV0Pos;
+  fFracOfMergedRowTrkV0Pos = aPair.fFracOfMergedRowTrkV0Pos;
+  fClosestRowAtDCATrkV0Pos = aPair.fClosestRowAtDCATrkV0Pos;
+
+  fMergingParNotCalculatedTrkV0Neg = aPair.fMergingParNotCalculatedTrkV0Neg;
+  fFracOfMergedRowTrkV0Neg = aPair.fFracOfMergedRowTrkV0Neg;
+  fClosestRowAtDCATrkV0Neg = aPair.fClosestRowAtDCATrkV0Neg;
+
+  fMergingParNotCalculatedV0PosV0Neg = aPair.fMergingParNotCalculatedV0PosV0Neg;
+  fFracOfMergedRowV0PosV0Neg = aPair.fFracOfMergedRowV0PosV0Neg;
+  fClosestRowAtDCAV0PosV0Neg = aPair.fClosestRowAtDCAV0PosV0Neg;
+
+  fMergingParNotCalculatedV0NegV0Pos = aPair.fMergingParNotCalculatedV0NegV0Pos;
+  fFracOfMergedRowV0NegV0Pos = aPair.fFracOfMergedRowV0NegV0Pos;
+  fClosestRowAtDCAV0NegV0Pos = aPair.fClosestRowAtDCAV0NegV0Pos;
+
+  fMergingParNotCalculatedV0PosV0Pos = aPair.fMergingParNotCalculatedV0PosV0Pos;
+  fFracOfMergedRowV0PosV0Pos = aPair.fFracOfMergedRowV0PosV0Pos;
+  fClosestRowAtDCAV0PosV0Pos = aPair.fClosestRowAtDCAV0PosV0Pos;
+
+  fMergingParNotCalculatedV0NegV0Neg = aPair.fMergingParNotCalculatedV0NegV0Neg;
+  fFracOfMergedRowV0NegV0Neg = aPair.fFracOfMergedRowV0NegV0Neg;
+  fClosestRowAtDCAV0NegV0Neg = aPair.fClosestRowAtDCAV0NegV0Neg;
+}
+
+AliFemtoPair& AliFemtoPair::operator=(const AliFemtoPair &aPair)
+{
+  if (this == &aPair)
+    return *this;
+
+  fTrack1 = aPair.fTrack1;
+  fTrack2 = aPair.fTrack2;
+
+  fNonIdParNotCalculated = aPair.fNonIdParNotCalculated;
+  fDKSide = aPair.fDKSide;
+  fDKOut = aPair.fDKOut;
+  fDKLong = aPair.fDKLong;
+  fCVK = aPair.fCVK;
+  kStarCalc = aPair.kStarCalc;
+
+  fNonIdParNotCalculatedGlobal = aPair.fNonIdParNotCalculatedGlobal;
 
-//AliFemtoPair& AliFemtoPair::operator=(const AliFemtoPair &a)
+  fMergingParNotCalculated = aPair.fMergingParNotCalculated;
+  fWeightedAvSep = aPair.fWeightedAvSep;
+  fFracOfMergedRow = aPair.fFracOfMergedRow;
+  fClosestRowAtDCA = aPair.fClosestRowAtDCA;
+
+  fMergingParNotCalculatedTrkV0Pos = aPair.fMergingParNotCalculatedTrkV0Pos;
+  fFracOfMergedRowTrkV0Pos = aPair.fFracOfMergedRowTrkV0Pos;
+  fClosestRowAtDCATrkV0Pos = aPair.fClosestRowAtDCATrkV0Pos;
+
+  fMergingParNotCalculatedTrkV0Neg = aPair.fMergingParNotCalculatedTrkV0Neg;
+  fFracOfMergedRowTrkV0Neg = aPair.fFracOfMergedRowTrkV0Neg;
+  fClosestRowAtDCATrkV0Neg = aPair.fClosestRowAtDCATrkV0Neg;
+
+  fMergingParNotCalculatedV0PosV0Neg = aPair.fMergingParNotCalculatedV0PosV0Neg;
+  fFracOfMergedRowV0PosV0Neg = aPair.fFracOfMergedRowV0PosV0Neg;
+  fClosestRowAtDCAV0PosV0Neg = aPair.fClosestRowAtDCAV0PosV0Neg;
+
+  fMergingParNotCalculatedV0NegV0Pos = aPair.fMergingParNotCalculatedV0NegV0Pos;
+  fFracOfMergedRowV0NegV0Pos = aPair.fFracOfMergedRowV0NegV0Pos;
+  fClosestRowAtDCAV0NegV0Pos = aPair.fClosestRowAtDCAV0NegV0Pos;
+
+  fMergingParNotCalculatedV0PosV0Pos = aPair.fMergingParNotCalculatedV0PosV0Pos;
+  fFracOfMergedRowV0PosV0Pos = aPair.fFracOfMergedRowV0PosV0Pos;
+  fClosestRowAtDCAV0PosV0Pos = aPair.fClosestRowAtDCAV0PosV0Pos;
+
+  fMergingParNotCalculatedV0NegV0Neg = aPair.fMergingParNotCalculatedV0NegV0Neg;
+  fFracOfMergedRowV0NegV0Neg = aPair.fFracOfMergedRowV0NegV0Neg;
+  fClosestRowAtDCAV0NegV0Neg = aPair.fClosestRowAtDCAV0NegV0Neg;
+
+  return *this;
+}
 
 //_________________
 double AliFemtoPair::mInv() const
index 109264a52f0980929b4e9a5801c9cca5f02be08e..ea2b331ab04d4802b752171daca1b925d90f5119 100644 (file)
@@ -14,6 +14,9 @@
  ***************************************************************************
  *
  * $Log$
+ * Revision 1.1.1.1  2007/04/25 15:38:41  panos
+ * Importing the HBT code dir
+ *
  * Revision 1.1.1.1  2007/03/07 10:14:49  mchojnacki
  * First version on CVS
  *
 class AliFemtoPair {
 public:
   AliFemtoPair();
+  AliFemtoPair(const AliFemtoPair& aPair);
   AliFemtoPair(AliFemtoParticle*, AliFemtoParticle*);
-  
-
   ~AliFemtoPair();
-  //AliFemtoPair(const AliFemtoPair&);
-  //AliFemtoPair& operator=(const AliFemtoPair&);
+  AliFemtoPair& operator=(const AliFemtoPair& aPair);
 
   // track Gets:
   AliFemtoParticle* track1() const;
index 9dd4bda0c696c7432cc0ce9cd8235dfe90a40e3c..f3d00c48dab46aababef0ec27d36c4302b86b359 100644 (file)
@@ -14,6 +14,9 @@
  ***************************************************************************
  *
  * $Log$
+ * Revision 1.1.1.1  2007/04/25 15:38:41  panos
+ * Importing the HBT code dir
+ *
  * Revision 1.1.1.1  2007/03/07 10:14:49  mchojnacki
  * First version on CVS
  *
@@ -136,11 +139,107 @@ int TpcLocalTransform(AliFmThreeVectorD& xgl,
 
 
 //_____________________
-AliFemtoParticle::AliFemtoParticle() : fTrack(0), fV0(0), fKink(0), fHiddenInfo(0) {
+AliFemtoParticle::AliFemtoParticle() : 
+  fTpcV0NegPosSample(0),
+  fV0NegZ(0),
+  fV0NegU(0),
+  fV0NegSect(0),
+  fTrack(0), fV0(0), fKink(0), fXi(0), 
+  fFourMomentum(0),
+  fHelix(),
+  fNominalTpcExitPoint(0),
+  fNominalTpcEntrancePoint(0),
+  fHiddenInfo(0),
+  fPrimaryVertex(0),
+  fSecondaryVertex(0),
+  fHelixV0Pos(),
+  fTpcV0PosEntrancePoint(0),
+  fTpcV0PosExitPoint(0),
+  fHelixV0Neg(),
+  fTpcV0NegEntrancePoint(0),
+  fTpcV0NegExitPoint(0)
+{
   /* no-op for default */
   //  cout << "Created particle " << this << endl;
 }
 //_____________________
+AliFemtoParticle::AliFemtoParticle(const AliFemtoParticle& aParticle):
+  fTpcV0NegPosSample(0),
+  fV0NegZ(0),
+  fV0NegU(0),
+  fV0NegSect(0),
+  fTrack(0), fV0(0), fKink(0), fXi(0),
+  fFourMomentum(0),
+  fHelix(),
+  fNominalTpcExitPoint(0),
+  fNominalTpcEntrancePoint(0),
+  fHiddenInfo(0), 
+  fPrimaryVertex(0),
+  fSecondaryVertex(0),
+  fHelixV0Pos(),
+  fTpcV0PosEntrancePoint(0),
+  fTpcV0PosExitPoint(0),
+  fHelixV0Neg(),
+  fTpcV0NegEntrancePoint(0),
+  fTpcV0NegExitPoint(0)
+{
+  if (aParticle.fTrack)
+    fTrack = new AliFemtoTrack(*aParticle.fTrack);
+  if (aParticle.fV0)
+    fV0    = new AliFemtoV0(*aParticle.fV0);
+  if (aParticle.fKink)
+    fKink  = new AliFemtoKink(*aParticle.fKink);
+  if (aParticle.fXi)
+    fXi    = new AliFemtoXi(*aParticle.fXi);
+  fFourMomentum = aParticle.fFourMomentum;
+  fHelix = aParticle.fHelix;
+
+  for (int iter=0; iter<11; iter++)
+    fNominalPosSample[iter] = aParticle.fNominalPosSample[iter];
+
+  if (aParticle.fTpcV0NegPosSample) {
+    fTpcV0NegPosSample = (AliFemtoThreeVector *) malloc(sizeof(AliFemtoThreeVector) * 11);
+    for (int iter=0; iter<11; iter++)
+      fTpcV0NegPosSample[iter] = aParticle.fTpcV0NegPosSample[iter];
+  }
+
+  if (aParticle.fV0NegZ) {
+    fV0NegZ = (float *) malloc(sizeof(float) * 45);
+    for (int iter=0; iter<11; iter++)
+      fV0NegZ[iter] = aParticle.fV0NegZ[iter];
+  }
+  if (aParticle.fV0NegU) {
+    fV0NegU = (float *) malloc(sizeof(float) * 45);
+    for (int iter=0; iter<11; iter++)
+      fV0NegU[iter] = aParticle.fV0NegU[iter];
+  }
+  if (aParticle.fV0NegSect) {
+    fV0NegSect = (int *) malloc(sizeof(int) * 45);
+    for (int iter=0; iter<11; iter++)
+      fV0NegSect[iter] = aParticle.fV0NegSect[iter];
+  }
+
+  fPrimaryVertex = aParticle.fPrimaryVertex;
+  fSecondaryVertex = aParticle.fSecondaryVertex;
+  CalculatePurity();
+  if(aParticle.fHiddenInfo){
+    fHiddenInfo= aParticle.HiddenInfo()->clone();
+  }
+  
+  fNominalTpcEntrancePoint = aParticle.fNominalTpcEntrancePoint;
+  fNominalTpcExitPoint     = aParticle.fNominalTpcExitPoint;
+  
+  for (int iter=0; iter<6; iter++)
+    fPurity[iter] = aParticle.fPurity[iter];
+  
+  fHelixV0Pos = aParticle.fHelixV0Pos;
+  fTpcV0PosEntrancePoint = aParticle.fTpcV0PosEntrancePoint;
+  fTpcV0PosExitPoint     = aParticle.fTpcV0PosExitPoint;
+  fHelixV0Neg = aParticle.fHelixV0Neg;
+  fTpcV0NegEntrancePoint = aParticle.fTpcV0NegEntrancePoint;
+  fTpcV0NegExitPoint     = aParticle.fTpcV0NegExitPoint;
+}
+//_____________________
 AliFemtoParticle::~AliFemtoParticle(){
   //  cout << "Issuing delete for AliFemtoParticle." << endl;
 
@@ -162,7 +261,26 @@ AliFemtoParticle::~AliFemtoParticle(){
   //  cout << "Deleted particle " << this << endl;
 }
 //_____________________
-AliFemtoParticle::AliFemtoParticle(const AliFemtoTrack* const hbtTrack,const double& mass) : fTrack(0), fV0(0), fKink(0), fHiddenInfo(0) {
+AliFemtoParticle::AliFemtoParticle(const AliFemtoTrack* const hbtTrack,const double& mass) : 
+  fTpcV0NegPosSample(0),
+  fV0NegZ(0),
+  fV0NegU(0),
+  fV0NegSect(0),
+  fTrack(0), fV0(0), fKink(0), fXi(0),
+  fFourMomentum(0),
+  fHelix(),
+  fNominalTpcExitPoint(0),
+  fNominalTpcEntrancePoint(0),
+  fHiddenInfo(0), 
+  fPrimaryVertex(0),
+  fSecondaryVertex(0),
+  fHelixV0Pos(),
+  fTpcV0PosEntrancePoint(0),
+  fTpcV0PosExitPoint(0),
+  fHelixV0Neg(),
+  fTpcV0NegEntrancePoint(0),
+  fTpcV0NegExitPoint(0)
+{
   
   
   // I know there is a better way to do this...
@@ -205,7 +323,26 @@ AliFemtoParticle::AliFemtoParticle(const AliFemtoTrack* const hbtTrack,const dou
 
 }
 //_____________________
-AliFemtoParticle::AliFemtoParticle(const AliFemtoV0* const hbtV0,const double& mass) : fTrack(0), fV0(0), fKink(0), fHiddenInfo(0) {
+AliFemtoParticle::AliFemtoParticle(const AliFemtoV0* const hbtV0,const double& mass) : 
+  fTpcV0NegPosSample(0),
+  fV0NegZ(0),
+  fV0NegU(0),
+  fV0NegSect(0),
+  fTrack(0), fV0(0), fKink(0),  fXi(0),
+  fFourMomentum(0),
+  fHelix(),
+  fNominalTpcExitPoint(0),
+  fNominalTpcEntrancePoint(0),
+  fHiddenInfo(0),
+  fPrimaryVertex(0),
+  fSecondaryVertex(0),
+  fHelixV0Pos(),
+  fTpcV0PosEntrancePoint(0),
+  fTpcV0PosExitPoint(0),
+  fHelixV0Neg(),
+  fTpcV0NegEntrancePoint(0),
+  fTpcV0NegExitPoint(0)
+{
   fV0 = new AliFemtoV0(*hbtV0);
  //fMap[0]= 0;
   //fMap[1]= 0;
@@ -249,7 +386,26 @@ AliFemtoParticle::AliFemtoParticle(const AliFemtoV0* const hbtV0,const double& m
   // ***
 }
 //_____________________
-AliFemtoParticle::AliFemtoParticle(const AliFemtoKink* const hbtKink,const double& mass) : fTrack(0), fV0(0), fHiddenInfo(0) {
+AliFemtoParticle::AliFemtoParticle(const AliFemtoKink* const hbtKink,const double& mass) : 
+  fTpcV0NegPosSample(0),
+  fV0NegZ(0),
+  fV0NegU(0),
+  fV0NegSect(0),
+  fTrack(0), fV0(0), fKink(0), fXi(0),
+  fFourMomentum(0),
+  fHelix(),
+  fNominalTpcExitPoint(0),
+  fNominalTpcEntrancePoint(0),
+  fHiddenInfo(0),
+  fPrimaryVertex(0),
+  fSecondaryVertex(0),
+  fHelixV0Pos(),
+  fTpcV0PosEntrancePoint(0),
+  fTpcV0PosExitPoint(0),
+  fHelixV0Neg(),
+  fTpcV0NegEntrancePoint(0),
+  fTpcV0NegExitPoint(0)
+{
   fKink = new AliFemtoKink(*hbtKink);
  // fMap[0]= 0;
   //fMap[1]= 0;
@@ -261,7 +417,26 @@ AliFemtoParticle::AliFemtoParticle(const AliFemtoKink* const hbtKink,const doubl
 }
 
 //_____________________
-AliFemtoParticle::AliFemtoParticle(const AliFemtoXi* const hbtXi, const double& mass)  {
+AliFemtoParticle::AliFemtoParticle(const AliFemtoXi* const hbtXi, const double& mass) :
+  fTpcV0NegPosSample(0),
+  fV0NegZ(0),
+  fV0NegU(0),
+  fV0NegSect(0),
+  fTrack(0), fV0(0), fKink(0), fXi(0),
+  fFourMomentum(0),
+  fHelix(),
+  fNominalTpcExitPoint(0),
+  fNominalTpcEntrancePoint(0),
+  fHiddenInfo(0), 
+  fPrimaryVertex(0),
+  fSecondaryVertex(0),
+  fHelixV0Pos(),
+  fTpcV0PosEntrancePoint(0),
+  fTpcV0PosExitPoint(0),
+  fHelixV0Neg(),
+  fTpcV0NegEntrancePoint(0),
+  fTpcV0NegExitPoint(0)
+{
   fXi = new AliFemtoXi(*hbtXi);
  // fMap[0]= 0;
   //fMap[1]= 0;
@@ -272,6 +447,78 @@ AliFemtoParticle::AliFemtoParticle(const AliFemtoXi* const hbtXi, const double&
   fHiddenInfo = 0;
 }
 //_____________________
+AliFemtoParticle& AliFemtoParticle::operator=(const AliFemtoParticle& aParticle)
+{
+  if (this == &aParticle)
+    return *this;
+
+  if (aParticle.fTrack)
+    fTrack = new AliFemtoTrack(*aParticle.fTrack);
+  if (aParticle.fV0)
+    fV0    = new AliFemtoV0(*aParticle.fV0);
+  if (aParticle.fKink)
+    fKink  = new AliFemtoKink(*aParticle.fKink);
+  if (aParticle.fXi)
+    fXi    = new AliFemtoXi(*aParticle.fXi);
+  fFourMomentum = aParticle.fFourMomentum;
+  fHelix = aParticle.fHelix;
+
+  for (int iter=0; iter<11; iter++)
+    fNominalPosSample[iter] = aParticle.fNominalPosSample[iter];
+
+  if (fTpcV0NegPosSample) delete fTpcV0NegPosSample;
+  if (aParticle.fTpcV0NegPosSample) {
+    fTpcV0NegPosSample = (AliFemtoThreeVector *) malloc(sizeof(AliFemtoThreeVector) * 11);
+    for (int iter=0; iter<11; iter++)
+      fTpcV0NegPosSample[iter] = aParticle.fTpcV0NegPosSample[iter];
+  }
+
+  if (fV0NegZ) delete fV0NegZ;
+  if (aParticle.fV0NegZ) {
+    fV0NegZ = (float *) malloc(sizeof(float) * 45);
+    for (int iter=0; iter<11; iter++)
+      fV0NegZ[iter] = aParticle.fV0NegZ[iter];
+  }
+  if (fV0NegU) delete fV0NegU;
+  if (aParticle.fV0NegU) {
+    fV0NegU = (float *) malloc(sizeof(float) * 45);
+    for (int iter=0; iter<11; iter++)
+      fV0NegU[iter] = aParticle.fV0NegU[iter];
+  }
+  if (fV0NegSect) delete fV0NegSect;
+  if (aParticle.fV0NegSect) {
+    fV0NegSect = (int *) malloc(sizeof(int) * 45);
+    for (int iter=0; iter<11; iter++)
+      fV0NegSect[iter] = aParticle.fV0NegSect[iter];
+  }
+
+  fPrimaryVertex = aParticle.fPrimaryVertex;
+  fSecondaryVertex = aParticle.fSecondaryVertex;
+  CalculatePurity();
+  if(aParticle.fHiddenInfo){
+    fHiddenInfo= aParticle.fHiddenInfo->clone();
+  }
+  
+  fNominalTpcEntrancePoint = aParticle.fNominalTpcEntrancePoint;
+  fNominalTpcExitPoint     = aParticle.fNominalTpcExitPoint;
+  
+  if (fHiddenInfo) delete fHiddenInfo;
+  if (aParticle.fHiddenInfo) 
+    fHiddenInfo = aParticle.HiddenInfo()->clone();
+  
+  for (int iter=0; iter<6; iter++)
+    fPurity[iter] = aParticle.fPurity[iter];
+  
+  fHelixV0Pos = aParticle.fHelixV0Pos;
+  fTpcV0PosEntrancePoint = aParticle.fTpcV0PosEntrancePoint;
+  fTpcV0PosExitPoint     = aParticle.fTpcV0PosExitPoint;
+  fHelixV0Neg = aParticle.fHelixV0Neg;
+  fTpcV0NegEntrancePoint = aParticle.fTpcV0NegEntrancePoint;
+  fTpcV0NegExitPoint     = aParticle.fTpcV0NegExitPoint;
+
+  return *this;
+}
+//_____________________
 const AliFemtoThreeVector& AliFemtoParticle::NominalTpcExitPoint() const{
   // in future, may want to calculate this "on demand" only, sot this routine may get more sophisticated
   // for now, we calculate Exit and Entrance points upon instantiation
index 18b423d9e493a99639917ca37ba83e5f1d91221f..dda50266c6018544e95b6caab46657d84a28e293 100644 (file)
@@ -14,6 +14,9 @@
  ***************************************************************************
  *
  * $Log$
+ * Revision 1.1.1.1  2007/04/25 15:38:41  panos
+ * Importing the HBT code dir
+ *
  * Revision 1.2  2007-04-03 16:00:08  mchojnacki
  * Changes to iprove memory managing
  *
@@ -110,12 +113,15 @@ class AliFemtoHiddenInfo;
 class AliFemtoParticle{
 public:
   AliFemtoParticle();
+  AliFemtoParticle(const AliFemtoParticle& aParticle);
   AliFemtoParticle(const AliFemtoTrack* const hbtTrack, const double& mass);
   AliFemtoParticle(const AliFemtoV0* const hbtV0, const double& mass);
   AliFemtoParticle(const AliFemtoKink* const hbtKink, const double& mass);
   AliFemtoParticle(const AliFemtoXi* const hbtXi, const double& mass);
   ~AliFemtoParticle();
 
+  AliFemtoParticle& operator=(const AliFemtoParticle& aParticle);
+
   const AliFemtoLorentzVector& FourMomentum() const;
 
   AliFmPhysicalHelixD& Helix();
index 80cc772852a72db79025142d647d9de15fe1440a..a2c9eeed997896300385eb590d2c0b31a045b340 100644 (file)
@@ -16,6 +16,9 @@
  ***************************************************************************
  *
  * $Log$
+ * Revision 1.1.1.1  2007/04/25 15:38:41  panos
+ * Importing the HBT code dir
+ *
  * Revision 1.1.1.1  2007/03/07 10:14:49  mchojnacki
  * First version on CVS
  *
 #include "Infrastructure/AliFemtoPicoEvent.h"
 
 //________________
-AliFemtoPicoEvent::AliFemtoPicoEvent(){
+AliFemtoPicoEvent::AliFemtoPicoEvent() :
+  fFirstParticleCollection(0),
+  fSecondParticleCollection(0),
+  fThirdParticleCollection(0)
+{
   fFirstParticleCollection = new AliFemtoParticleCollection;
   fSecondParticleCollection = new AliFemtoParticleCollection;
   fThirdParticleCollection = new AliFemtoParticleCollection;
 }
 //_________________
+AliFemtoPicoEvent::AliFemtoPicoEvent(const AliFemtoPicoEvent& aPicoEvent) :
+  fFirstParticleCollection(0),
+  fSecondParticleCollection(0),
+  fThirdParticleCollection(0)
+{
+  AliFemtoParticleIterator iter;
+
+  fFirstParticleCollection = new AliFemtoParticleCollection;
+  if (aPicoEvent.fFirstParticleCollection) {
+    for (iter=aPicoEvent.fFirstParticleCollection->begin();iter!=aPicoEvent.fFirstParticleCollection->end();iter++){
+      fFirstParticleCollection->push_back(*iter);
+    }
+  }
+  fSecondParticleCollection = new AliFemtoParticleCollection;
+  if (aPicoEvent.fSecondParticleCollection) {
+    for (iter=aPicoEvent.fSecondParticleCollection->begin();iter!=aPicoEvent.fSecondParticleCollection->end();iter++){
+      fSecondParticleCollection->push_back(*iter);
+    }
+  }
+  fThirdParticleCollection = new AliFemtoParticleCollection;
+  if (aPicoEvent.fThirdParticleCollection) {
+    for (iter=aPicoEvent.fThirdParticleCollection->begin();iter!=aPicoEvent.fThirdParticleCollection->end();iter++){
+      fThirdParticleCollection->push_back(*iter);
+    }
+  }
+}
+//_________________
 AliFemtoPicoEvent::~AliFemtoPicoEvent(){
   AliFemtoParticleIterator iter;
+  
+  if (fFirstParticleCollection){
+    for (iter=fFirstParticleCollection->begin();iter!=fFirstParticleCollection->end();iter++){
+      delete *iter;
+    }
+    fFirstParticleCollection->clear();
+    delete fFirstParticleCollection;
+    fFirstParticleCollection = 0;
+  }
+  
+  if (fSecondParticleCollection){
+    for (iter=fSecondParticleCollection->begin();iter!=fSecondParticleCollection->end();iter++){
+      delete *iter;
+    }
+    fSecondParticleCollection->clear();
+    delete fSecondParticleCollection;
+    fSecondParticleCollection = 0;
+  }
 
+  if (fThirdParticleCollection){
+    if (fThirdParticleCollection->size() != 0 ) {
+      for (iter=fThirdParticleCollection->begin();iter!=fThirdParticleCollection->end();iter++){
+       delete *iter;
+      }
+    }
+    fThirdParticleCollection->clear();
+    delete fThirdParticleCollection;
+    fThirdParticleCollection = 0;
+  }
+}
+//_________________
+ AliFemtoPicoEvent& AliFemtoPicoEvent::operator=(AliFemtoPicoEvent& aPicoEvent) 
+{
+  if (this == &aPicoEvent) 
+    return *this;
 
+  AliFemtoParticleIterator iter;
+   
   if (fFirstParticleCollection){
       for (iter=fFirstParticleCollection->begin();iter!=fFirstParticleCollection->end();iter++){
        delete *iter;
@@ -82,5 +152,26 @@ AliFemtoPicoEvent::~AliFemtoPicoEvent(){
     delete fThirdParticleCollection;
     fThirdParticleCollection = 0;
   }
+
+  fFirstParticleCollection = new AliFemtoParticleCollection;
+  if (aPicoEvent.fFirstParticleCollection) {
+    for (iter=aPicoEvent.fFirstParticleCollection->begin();iter!=aPicoEvent.fFirstParticleCollection->end();iter++){
+      fFirstParticleCollection->push_back(*iter);
+    }
+  }
+  fSecondParticleCollection = new AliFemtoParticleCollection;
+  if (aPicoEvent.fSecondParticleCollection) {
+    for (iter=aPicoEvent.fSecondParticleCollection->begin();iter!=aPicoEvent.fSecondParticleCollection->end();iter++){
+      fSecondParticleCollection->push_back(*iter);
+    }
+  }
+  fThirdParticleCollection = new AliFemtoParticleCollection;
+  if (aPicoEvent.fThirdParticleCollection) {
+    for (iter=aPicoEvent.fThirdParticleCollection->begin();iter!=aPicoEvent.fThirdParticleCollection->end();iter++){
+      fThirdParticleCollection->push_back(*iter);
+    }
+  }
+
+  return *this;
 }
-//_________________
+
index 17ee411cb0571b32b423432ffcd4bd25bf7ad288..0351d47108a3e24e75e2b7a66776303465771083 100644 (file)
@@ -16,6 +16,9 @@
  ***************************************************************************
  *
  * $Log$
+ * Revision 1.1.1.1  2007/04/25 15:38:41  panos
+ * Importing the HBT code dir
+ *
  * Revision 1.1.1.1  2007/03/07 10:14:49  mchojnacki
  * First version on CVS
  *
 class AliFemtoPicoEvent{
 public:
   AliFemtoPicoEvent();
+  AliFemtoPicoEvent(const AliFemtoPicoEvent& aPicoEvent);
   ~AliFemtoPicoEvent();
 
+  AliFemtoPicoEvent& operator=(AliFemtoPicoEvent& aPicoEvent);
+
   /* may want to have other stuff in here, like where is primary vertex */
 
   AliFemtoParticleCollection* FirstParticleCollection();
@@ -53,6 +59,4 @@ inline AliFemtoParticleCollection* AliFemtoPicoEvent::FirstParticleCollection(){
 inline AliFemtoParticleCollection* AliFemtoPicoEvent::SecondParticleCollection(){return fSecondParticleCollection;}
 inline AliFemtoParticleCollection* AliFemtoPicoEvent::ThirdParticleCollection(){return fThirdParticleCollection;}
 
-
-
 #endif
index e236ce18756f9dc4f4dc266b68c0098847caeec4..9b453b3ceec5f2978343ea4fbab2e923386a8f06 100644 (file)
@@ -10,6 +10,9 @@
  ***************************************************************************
  *
  * $Log$
+ * Revision 1.1.1.1  2007/04/25 15:38:41  panos
+ * Importing the HBT code dir
+ *
  * Revision 1.1.1.1  2007/03/07 10:14:49  mchojnacki
  * First version on CVS
  *
 
 // -----------------------------------
 AliFemtoPicoEventCollectionVectorHideAway::AliFemtoPicoEventCollectionVectorHideAway(int bx, double lx, double ux,
-                                                                              int by, double ly, double uy,
-                                                                              int bz, double lz, double uz) {
-    fBinsx = bx;  fMinx = lx; fMaxx = ux;
-    fBinsy = by;  fMiny = ly; fMaxy = uy;
-    fBinsz = bz;  fMinz = lz; fMaxz = uz;
-
-    fBinsTot = fBinsx * fBinsy * fBinsz;
-    fStepx=0;  fStepx = (fMaxx-fMinx)/fBinsx;
-    fStepy=0;  fStepy = (fMaxy-fMiny)/fBinsy;
-    fStepz=0;  fStepz = (fMaxz-fMinz)/fBinsz;
-    
-
-    //fCollectionVector = new AliFemtoPicoEventCollectionVector();
-    fCollection = 0;
-    for ( int i=0; i<fBinsTot; i++) {
-       fCollection = new AliFemtoPicoEventCollection();
-       fCollectionVector.push_back(fCollection);
-    }
+                                                                                    int by, double ly, double uy,
+                                                                                    int bz, double lz, double uz):
+  fBinsTot(0),
+  fBinsx(bx), fBinsy(by), fBinsz(bz),
+  fMinx(lx),  fMiny(ly),  fMinz(lz),
+  fMaxx(ux),  fMaxy(uy),  fMaxz(uz),
+  fStepx(0),  fStepy(0),  fStepz(0),
+  fCollection(0),
+  fCollectionVector(0)
+{
+  fBinsTot = fBinsx * fBinsy * fBinsz;
+  fStepx=0;  fStepx = (fMaxx-fMinx)/fBinsx;
+  fStepy=0;  fStepy = (fMaxy-fMiny)/fBinsy;
+  fStepz=0;  fStepz = (fMaxz-fMinz)/fBinsz;
+  
+  
+  //fCollectionVector = new AliFemtoPicoEventCollectionVector();
+  fCollection = 0;
+  for ( int i=0; i<fBinsTot; i++) {
+    fCollection = new AliFemtoPicoEventCollection();
+    fCollectionVector.push_back(fCollection);
+  }
 }
 // -----------------------------------
 AliFemtoPicoEventCollection* AliFemtoPicoEventCollectionVectorHideAway::PicoEventCollection(int ix, int iy, int iz) { 
@@ -69,4 +76,68 @@ AliFemtoPicoEventCollection* AliFemtoPicoEventCollectionVectorHideAway::PicoEven
 
   return PicoEventCollection( ix,iy,iz );
 }
+//___________________________________
+AliFemtoPicoEventCollectionVectorHideAway::AliFemtoPicoEventCollectionVectorHideAway(const AliFemtoPicoEventCollectionVectorHideAway& aColl):
+  fBinsTot(0),
+  fBinsx(0), fBinsy(0), fBinsz(0),
+  fMinx(0),  fMiny(0),  fMinz(0),
+  fMaxx(0),  fMaxy(0),  fMaxz(0),
+  fStepx(0),  fStepy(0),  fStepz(0),
+  fCollection(0),
+  fCollectionVector(0)
+{
 
+  fBinsTot = aColl.fBinsTot;
+  fBinsx = aColl.fBinsx;
+  fBinsy = aColl.fBinsy;
+  fBinsz = aColl.fBinsz;
+  fMinx  = aColl.fMinx;
+  fMiny  = aColl.fMiny;
+  fMinz  = aColl.fMinz;
+  fMaxx  = aColl.fMaxx;
+  fMaxy  = aColl.fMaxy;
+  fMaxz  = aColl.fMaxz;
+  fStepx = aColl.fStepx;
+  fStepy = aColl.fStepy;
+  fStepz = aColl.fStepz;
+  fCollection = aColl.fCollection;
+
+  fCollectionVector.clear();
+  for (int iter=0; aColl.fCollectionVector.size();iter++){
+    fCollectionVector.push_back(aColl.fCollectionVector[iter]);
+  }
+}
+//___________________________________
+AliFemtoPicoEventCollectionVectorHideAway::~AliFemtoPicoEventCollectionVectorHideAway()
+{
+  fCollectionVector.clear();
+}
+//___________________________________
+AliFemtoPicoEventCollectionVectorHideAway& AliFemtoPicoEventCollectionVectorHideAway::operator=(const AliFemtoPicoEventCollectionVectorHideAway& aColl)
+{
+  if (this == &aColl)
+    return *this;
+
+  fBinsTot = aColl.fBinsTot;
+  fBinsx = aColl.fBinsx;
+  fBinsy = aColl.fBinsy;
+  fBinsz = aColl.fBinsz;
+  fMinx  = aColl.fMinx;
+  fMiny  = aColl.fMiny;
+  fMinz  = aColl.fMinz;
+  fMaxx  = aColl.fMaxx;
+  fMaxy  = aColl.fMaxy;
+  fMaxz  = aColl.fMaxz;
+  fStepx = aColl.fStepx;
+  fStepy = aColl.fStepy;
+  fStepz = aColl.fStepz;
+  fCollection = aColl.fCollection;
+
+  fCollectionVector.clear();
+
+  for (int iter=0; aColl.fCollectionVector.size();iter++){
+    fCollectionVector.push_back(aColl.fCollectionVector[iter]);
+  }
+
+  return *this;
+}
index 50ee0f0f6370c935d103350bc37af6abaa7a5a56..f8be9e767d2c06f747aeffb13a496bc7ca66bec4 100644 (file)
@@ -10,6 +10,9 @@
  ***************************************************************************
  *
  * $Log$
+ * Revision 1.1.1.1  2007/04/25 15:38:41  panos
+ * Importing the HBT code dir
+ *
  * Revision 1.1.1.1  2007/03/07 10:14:49  mchojnacki
  * First version on CVS
  *
@@ -45,6 +48,10 @@ public:
   AliFemtoPicoEventCollectionVectorHideAway(int bx=1, double lx=-FLT_MAX, double ux=FLT_MAX,
                                         int by=1, double ly=-FLT_MAX, double uy=FLT_MAX,
                                         int bz=1, double lz=-FLT_MAX, double uz=FLT_MAX);
+  AliFemtoPicoEventCollectionVectorHideAway(const AliFemtoPicoEventCollectionVectorHideAway& aColl);
+  ~AliFemtoPicoEventCollectionVectorHideAway();
+  AliFemtoPicoEventCollectionVectorHideAway& operator=(const AliFemtoPicoEventCollectionVectorHideAway& aColl);
+
   AliFemtoPicoEventCollection* PicoEventCollection(int, int, int);
   AliFemtoPicoEventCollection* PicoEventCollection(double x, double y=0, double z=0);
 private:
index 08c42093a99e3414ff99346f58c7c0f438bd02f2..b990ef493898d4b2e332b11ef0dbd39fba7acbc0 100644 (file)
@@ -10,6 +10,9 @@
  *
  ***************************************************************************
  * $Log$
+ * Revision 1.3  2007/04/27 07:24:34  akisiel
+ * Make revisions needed for compilation from the main AliRoot tree
+ *
  * Revision 1.1.1.1  2007/04/25 15:38:41  panos
  * Importing the HBT code dir
  *
 //#include "Infrastructure/AliFemtoTTreeTrack.h" 
 
 AliFemtoTrack::AliFemtoTrack():
+  fCharge(0),
+  fPidProbElectron(0),
+  fPidProbPion(0),
+  fPidProbKaon(0),
+  fPidProbProton(0),
+  fPidProbMuon(0),
   fTrackId(0),
+  fP(0,0,0),
+  fPt(0),
+  fHelix(),
   fFlags(0),
   fLabel(0),
   fImpactD(0),
@@ -108,14 +120,42 @@ AliFemtoTrack::AliFemtoTrack():
   fTPCsignalN(0),    
   fTPCsignalS(0),
   fClusters(159),
-  fShared(159)
+  fShared(159),
+  fHiddenInfo(0)
 {
   fHiddenInfo = NULL;
   //  cout << "Created track " << this << endl;
 }
 
 
-AliFemtoTrack::AliFemtoTrack(const AliFemtoTrack& t)
+AliFemtoTrack::AliFemtoTrack(const AliFemtoTrack& t) :
+  fCharge(0),
+  fPidProbElectron(0),
+  fPidProbPion(0),
+  fPidProbKaon(0),
+  fPidProbProton(0),
+  fPidProbMuon(0),
+  fTrackId(0),
+  fP(0,0,0),
+  fPt(0),
+  fHelix(),
+  fFlags(0),
+  fLabel(0),
+  fImpactD(0),
+  fImpactZ(0),
+  fCdd(0),
+  fCdz(0),
+  fCzz(0),
+  fITSchi2(0),       
+  fITSncls(0),        
+  fTPCchi2(0),       
+  fTPCncls(0),       
+  fTPCnclsF(0),      
+  fTPCsignalN(0),    
+  fTPCsignalS(0),
+  fClusters(159),
+  fShared(159),
+  fHiddenInfo(0)
  { // copy constructor
   fCharge = t.fCharge;
   fPidProbElectron = t.fPidProbElectron;
@@ -150,6 +190,46 @@ AliFemtoTrack::AliFemtoTrack(const AliFemtoTrack& t)
   //  cout << "Created track " << this << endl;
 };
 
+AliFemtoTrack& AliFemtoTrack::operator=(const AliFemtoTrack& aTrack)
+{
+  if (this == &aTrack)
+    return *this;
+  fCharge = aTrack.fCharge;
+  fPidProbElectron = aTrack.fPidProbElectron;
+  fPidProbPion = aTrack.fPidProbPion;
+  fPidProbKaon = aTrack.fPidProbKaon;
+  fPidProbProton = aTrack.fPidProbProton;
+  fPidProbMuon=aTrack.fPidProbMuon;
+  fP = aTrack.fP;
+  fPt = aTrack.fPt;
+  fHelix = aTrack.fHelix;
+  fTrackId = aTrack.fTrackId;
+  fFlags=aTrack.fFlags;
+  fLabel=aTrack.fLabel;
+  fImpactD=aTrack.fImpactD;
+  fImpactZ=aTrack.fImpactZ;
+  fCdd=aTrack.fCdd;
+  fCdz=aTrack.fCdz;
+  fCzz=aTrack.fCzz;
+  fITSchi2=aTrack.fITSchi2;       
+  fITSncls=aTrack.fITSncls;        
+  fTPCchi2=aTrack.fTPCchi2;       
+  fTPCncls=aTrack.fTPCncls;       
+  fTPCnclsF=aTrack.fTPCnclsF;      
+  fTPCsignalN=aTrack.fTPCsignalN;    
+  fTPCsignalS=aTrack.fTPCsignalS;  
+  fClusters=aTrack.fClusters;
+  fShared=aTrack.fShared;
+  if (ValidHiddenInfo())
+    delete fHiddenInfo;
+  if (aTrack.ValidHiddenInfo())
+    fHiddenInfo = aTrack.getHiddenInfo()->clone();
+  else 
+    fHiddenInfo = NULL;
+
+  return *this;
+}
+
 void AliFemtoTrack::SetCharge(const short& ch){fCharge=ch;}
 
 void AliFemtoTrack::SetPidProbElectron(const float& x){fPidProbElectron = x;}
index 1e8ac1b3444ae685582ae70bb9b9b38c6ba5b0f0..5c9ae6de2ddf899ad06ed8f74b3a5386bb116623 100644 (file)
@@ -31,13 +31,11 @@ class StMuDst;
 class StMuTrack;
 #endif
 
-
-
-
 class AliFemtoTrack{
 public:
   AliFemtoTrack();
   AliFemtoTrack(const AliFemtoTrack&);// copy constructor
+  AliFemtoTrack& operator=(const AliFemtoTrack& aTrack);
 #ifndef __NO_STAR_DEPENDENCE_ALLOWED__
 #ifdef __ROOT__
  //AliFemtoTrack(const StTrack*, AliFemtoThreeVector);   // c-tor from StTrack of STAR DSTs
index 6b8749f7ca4908eea1959c15c1395f4e31440cde..b178dc5eb7692ece3eea80205dbf5b47f78daf7d 100644 (file)
@@ -2,7 +2,57 @@
 #include "phys_constants.h"
 
 // -----------------------------------------------------------------------
-AliFemtoV0::AliFemtoV0(const AliFemtoV0& v){ // copy constructor
+AliFemtoV0::AliFemtoV0():
+  fDecayLengthV0(0), fDecayVertexV0(0), fPrimaryVertex(0),
+  fDcaV0Daughters(0), fDcaV0ToPrimVertex(0),
+  fDcaPosToPrimVertex(0), fDcaNegToPrimVertex(0),
+  fMomPos(0), fMomNeg(0),
+  fTpcHitsPos(0), fTpcHitsNeg(0),
+  fChi2V0(0),  fClV0(0),  fChi2Pos(0),  fClPos(0),  fChi2Neg(0),  fClNeg(0),
+  fDedxPos(0),  fErrDedxPos(0),  fLenDedxPos(0),
+  fDedxNeg(0),  fErrDedxNeg(0),  fLenDedxNeg(0),
+  fNufDedxPos(0), fNufDedxNeg(0),
+  fHelixPos(), fHelixNeg(), 
+  fMomV0(0),
+  fAlphaV0(0),  fPtArmV0(0),
+  fELambda(0),  fEK0Short(0),  
+  fEPosProton(0),  fEPosPion(0),
+  fENegProton(0),  fENegPion(0),
+  fMassLambda(0),  fMassAntiLambda(0),
+  fMassK0Short(0),  fRapLambda(0),
+  fRapK0Short(0),  fCTauLambda(0),
+  fCTauK0Short(0),  fPtV0(0),  fPtotV0(0),
+  fPtPos(0),  fPtotPos(0),
+  fPtNeg(0),  fPtotNeg(0),
+  fKeyNeg(0),   fKeyPos(0),
+  fHiddenInfo(0)  /***/
+{ /* no-op */}
+// -----------------------------------------------------------------------
+AliFemtoV0::AliFemtoV0(const AliFemtoV0& v) :
+  fDecayLengthV0(0), fDecayVertexV0(0), fPrimaryVertex(0),
+  fDcaV0Daughters(0), fDcaV0ToPrimVertex(0),
+  fDcaPosToPrimVertex(0), fDcaNegToPrimVertex(0),
+  fMomPos(0), fMomNeg(0),
+  fTpcHitsPos(0), fTpcHitsNeg(0),
+  fChi2V0(0),  fClV0(0),  fChi2Pos(0),  fClPos(0),  fChi2Neg(0),  fClNeg(0),
+  fDedxPos(0),  fErrDedxPos(0),  fLenDedxPos(0),
+  fDedxNeg(0),  fErrDedxNeg(0),  fLenDedxNeg(0),
+  fNufDedxPos(0), fNufDedxNeg(0),
+  fHelixPos(), fHelixNeg(), 
+  fMomV0(0),
+  fAlphaV0(0),  fPtArmV0(0),
+  fELambda(0),  fEK0Short(0),  
+  fEPosProton(0),  fEPosPion(0),
+  fENegProton(0),  fENegPion(0),
+  fMassLambda(0),  fMassAntiLambda(0),
+  fMassK0Short(0),  fRapLambda(0),
+  fRapK0Short(0),  fCTauLambda(0),
+  fCTauK0Short(0),  fPtV0(0),  fPtotV0(0),
+  fPtPos(0),  fPtotPos(0),
+  fPtNeg(0),  fPtotNeg(0),
+  fKeyNeg(0),   fKeyPos(0),
+  fHiddenInfo(0)  /***/
+{ // copy constructor
   fDecayLengthV0 = v.fDecayLengthV0;
   fDecayVertexV0 = v.fDecayVertexV0;
   fDcaV0Daughters = v.fDcaV0Daughters;
@@ -44,6 +94,55 @@ AliFemtoV0::AliFemtoV0(const AliFemtoV0& v){ // copy constructor
   fHiddenInfo = v.fHiddenInfo? v.fHiddenInfo->clone() : 0;// GR 11 DEC 02
   UpdateV0();
 }
+AliFemtoV0& AliFemtoV0::operator=(const AliFemtoV0& aV0)
+{
+  if (this == &aV0)
+    return *this;
+  fDecayLengthV0 = aV0.fDecayLengthV0;
+  fDecayVertexV0 = aV0.fDecayVertexV0;
+  fDcaV0Daughters = aV0.fDcaV0Daughters;
+  fDcaV0ToPrimVertex = aV0.fDcaV0ToPrimVertex;
+  fDcaPosToPrimVertex = aV0.fDcaPosToPrimVertex;
+  fDcaNegToPrimVertex = aV0.fDcaNegToPrimVertex;
+  fMomPos = aV0.fMomPos;
+  fMomNeg = aV0.fMomNeg;
+
+  fTrackTopologyMapPos[0] = aV0.fTrackTopologyMapPos[0];
+  fTrackTopologyMapPos[1] = aV0.fTrackTopologyMapPos[1];
+  fTrackTopologyMapNeg[0] = aV0.fTrackTopologyMapNeg[0];
+  fTrackTopologyMapNeg[1] = aV0.fTrackTopologyMapNeg[1];
+   
+  fKeyPos = aV0.fKeyPos;
+  fKeyNeg = aV0.fKeyNeg;
+     
+  fTpcHitsPos = aV0.fTpcHitsPos;
+  fTpcHitsNeg = aV0.fTpcHitsNeg;
+
+  fChi2V0 = aV0.fChi2V0;
+  fClV0 = aV0.fClV0;
+  fChi2Pos = aV0.fChi2Pos;
+  fClPos = aV0.fClPos;
+  fChi2Neg = aV0.fChi2Neg;
+  fClNeg = aV0.fClNeg;
+  fDedxPos = aV0.fDedxPos;
+  fErrDedxPos = aV0.fErrDedxPos;//Gael 04Fev2002
+  fLenDedxPos = aV0.fLenDedxPos;//Gael 04Fev2002
+  fDedxNeg = aV0.fDedxNeg;
+  fErrDedxNeg = aV0.fErrDedxNeg;//Gael 04Fev2002
+  fLenDedxNeg = aV0.fLenDedxNeg;//Gael 04Fev2002
+
+  fNufDedxPos = aV0.fNufDedxPos;
+  fNufDedxNeg = aV0.fNufDedxNeg;
+
+  fHelixPos = aV0.fHelixPos;// Gael 12 Sept
+  fHelixNeg = aV0.fHelixNeg;// Gael 12 Sept
+  if (fHiddenInfo) delete fHiddenInfo;
+  fHiddenInfo = aV0.fHiddenInfo? aV0.fHiddenInfo->clone() : 0;// GR 11 DEC 02
+  UpdateV0();
+  
+  return *this;
+}
+
 // -----------------------------------------------------------------------
 void AliFemtoV0::UpdateV0(){
   //Calc. derived memebers of the v0 class
index a4a676a0c4eb7e9b089003359036e72afcbde4c0..d76894fc1e249158c94f496d1f18e845fd143d2f 100644 (file)
@@ -11,6 +11,9 @@
  ***********************************************************************
  *
  * $Log$
+ * Revision 1.1.1.1  2007/04/25 15:38:41  panos
+ * Importing the HBT code dir
+ *
  * Revision 1.1.1.1  2007/03/07 10:14:49  mchojnacki
  * First version on CVS
  *
 
 class AliFemtoV0 {
 public:
-  AliFemtoV0(){/* no-op */}
+  AliFemtoV0();
   AliFemtoV0( const AliFemtoV0&); // copy constructor
 #ifdef __ROOT__
 #ifndef __NO_STAR_DEPENDENCE_ALLOWED__
   AliFemtoV0( StV0MuDst&); // from strangeness V0 micro dst structure
 #endif
 #endif
-  ~AliFemtoV0(){if(fHiddenInfo) delete fHiddenInfo;}
+  virtual ~AliFemtoV0(){if(fHiddenInfo) delete fHiddenInfo;}
+  AliFemtoV0& operator=(const AliFemtoV0& aV0);
 
 
   float decayLengthV0() const;       // 3-d decay distance
index 4dfe3f4040bed333ac7bf1d60b03c4ab5dabc1c8..e180d36a75d4fae686a4333e9c075ff6b8c98f4b 100644 (file)
@@ -1,6 +1,21 @@
 #include "Infrastructure/AliFemtoXi.h"
 #include "phys_constants.h"
 
+// -----------------------------------------------------------------------
+AliFemtoXi::AliFemtoXi():
+  fCharge(0), fDecayLengthXi(0),
+  fDecayVertexXi(0),
+  fDcaXiDaughters(0), fDcaXiToPrimVertex(0), fDcaBachelorToPrimVertex(0),
+  fMomBachelor(0), fKeyBachelor(0),
+  fTpcHitsBac(0), fChi2Xi(0), fClXi(0), fChi2Bachelor(0), fClBachelor(0),
+  fDedxBachelor(0), fNufDedxBachelor(0), fMomXi(0),
+  fAlphaXi(0), fPtArmXi(0),
+  fEXi(0), fEOmega(0), fEBacPion(0), fEBacKaon(0),
+  fMassXi(0), fMassOmega(0), fRapXi(0), fRapOmega(0),
+  fCTauXi(0), fCTauOmega(0),
+  fPtXi(0), fPtotXi(0), fPtBac(0), fPtotBac(0),
+  fKeyBac(0)
+{/* no-op */}
 // -----------------------------------------------------------------------
 void AliFemtoXi::UpdateXi(){
   //Calc. derived members of the xi class
index ec1dd45ed49aaafced0be14ab897938aee3331a6..3a42d26372d081fc23ea295ce9bf18c9cff24050 100644 (file)
 
 class AliFemtoXi : public AliFemtoV0 {
 public:
-  AliFemtoXi(){/* no-op */}
+  AliFemtoXi();
 #ifdef __ROOT__
 #ifndef __NO_STAR_DEPENDENCE_ALLOWED__
   AliFemtoXi(StXiMuDst&); // from strangeness Xi micro dst structure
 #endif
 #endif
-  ~AliFemtoXi(){/* no-op */}
+  virtual ~AliFemtoXi(){/* no-op */}
 
   void UpdateXi();
   float decayLengthXi() const;            // 3-d decay distance
@@ -244,6 +244,9 @@ inline void AliFemtoXi::SetdedxBac(float x){fDedxBachelor=x;}
 /***********************************************************************
  *
  * $Log$
+ * Revision 1.1.1.1  2007/04/25 15:38:41  panos
+ * Importing the HBT code dir
+ *
  * Revision 1.1.1.1  2007/03/07 10:14:49  mchojnacki
  * First version on CVS
  *
index 73bf1d2209f01c778507db908a04dd135a0b610b..a52153d3f341f50eb046a401933f6580fc7eba7b 100644 (file)
@@ -10,6 +10,9 @@
 ***************************************************************************
 *
 * $Log$
+* Revision 1.3  2007/04/27 07:24:34  akisiel
+* Make revisions needed for compilation from the main AliRoot tree
+*
 * Revision 1.1.1.1  2007/04/25 15:38:41  panos
 * Importing the HBT code dir
 *
@@ -129,10 +132,31 @@ using namespace std;
 
 const double AliFmHelix::NoSolution = 3.e+33;
 
-AliFmHelix::AliFmHelix(){ /*noop*/ }
+AliFmHelix::AliFmHelix() :
+  mSingularity(0),
+  mOrigin(0,0,0),
+  mDipAngle(0),
+  mCurvature(0),
+  mPhase(0),
+  mH(0),
+  mCosDipAngle(0),
+  mSinDipAngle(0),
+  mCosPhase(0),
+  mSinPhase(0)
+{ /*noop*/ }
 
 AliFmHelix::AliFmHelix(double c, double d, double phase,
-                                const AliFmThreeVector<double>& o, int h)
+                      const AliFmThreeVector<double>& o, int h) :
+  mSingularity(0),
+  mOrigin(0,0,0),
+  mDipAngle(0),
+  mCurvature(0),
+  mPhase(0),
+  mH(0),
+  mCosDipAngle(0),
+  mSinDipAngle(0),
+  mCosPhase(0),
+  mSinPhase(0)
 {
        setParameters(c, d, phase, o, h);
 }
index 50af0adb790b71584b8c1a129576845b902262f6..ed6df23289ad520ad308d7fac7aba3c08132badd 100644 (file)
@@ -18,6 +18,9 @@
  ***************************************************************************
  *
  * $Log$
+ * Revision 1.1.1.1  2007/04/25 15:38:41  panos
+ * Importing the HBT code dir
+ *
  * Revision 1.1.1.1  2007/03/07 10:14:49  mchojnacki
  * First version on CVS
  *
@@ -63,7 +66,7 @@ class AliFmHelix {
 public:
     /// curvature, dip angle, phase, origin, h
     AliFmHelix(double c, double dip, double phase,
-           const AliFmThreeVector<double>& o, int h=-1);
+              const AliFmThreeVector<double>& o, int h=-1);
     
     virtual ~AliFmHelix();
     // AliFmHelix(const AliFmHelix&);                  // use default
index 5dd915b9cb0fc09da37a445ced92c8e7c0041573..b2dbfa5478aa7149cab186c1f2f371ef9a13546b 100644 (file)
@@ -1,27 +1,25 @@
+////////////////////////////////////////////////////////////////////////////////
+///                                                                          ///
+/// AliFemtoEventReaderESD - the reader class for the Alice ESD              ///
+/// Reads in ESD information and converts it into internal AliFemtoEvent     ///
+/// Reads in AliESDfriend to create shared hit/quality information           ///
+/// Authors: Marek Chojnacki mchojnacki@knf.pw.edu.pl                        ///
+///          Adam Kisiel kisiel@mps.ohio-state.edu                           ///
+///                                                                          ///
+////////////////////////////////////////////////////////////////////////////////
+
 /*
  *$Id$
  *$Log$
+ *Revision 1.4  2007/04/27 07:28:34  akisiel
+ *Remove event number reading due to interface changes
+ *
  *Revision 1.3  2007/04/27 07:25:16  akisiel
  *Make revisions needed for compilation from the main AliRoot tree
  *
  *Revision 1.1.1.1  2007/04/25 15:38:41  panos
  *Importing the HBT code dir
  *
- *Revision 1.5  2007-04-03 16:00:08  mchojnacki
- *Changes to iprove memory managing
- *
- *Revision 1.4  2007/03/13 15:30:03  mchojnacki
- *adding reader for simulated data
- *
- *Revision 1.3  2007/03/08 14:58:03  mchojnacki
- *adding some alice stuff
- *
- *Revision 1.2  2007/03/07 13:36:16  mchojnacki
- *Add some comments
- *
- *Revision 1.1.1.1  2007/03/07 10:14:49  mchojnacki
- *First version on CVS
- *
  */
 
 #include "AliFemtoEventReaderESD.h"
@@ -56,10 +54,13 @@ AliFemtoEventReaderESD::AliFemtoEventReaderESD():
   fNumberofEvent(0),
   fCurEvent(0),
   fCurFile(0),
+  fListOfFiles(0x0),
   fTree(0x0),
   fEvent(0x0),
   fEsdFile(0x0),
-  fEventFriend(0)
+  fEventFriend(0),
+  fSharedList(0x0),
+  fClusterPerPadrow(0x0)
 {
   fClusterPerPadrow = (list<Int_t> **) malloc(sizeof(list<Int_t> *) * AliESDfriendTrack::kMaxTPCcluster);
   for (int tPad=0; tPad<AliESDfriendTrack::kMaxTPCcluster; tPad++) {
@@ -71,6 +72,50 @@ AliFemtoEventReaderESD::AliFemtoEventReaderESD():
   }
 }
 
+AliFemtoEventReaderESD::AliFemtoEventReaderESD(const AliFemtoEventReaderESD &aReader) :
+  fInputFile(" "),
+  fFileName(" "),
+  fConstrained(true),
+  fNumberofEvent(0),
+  fCurEvent(0),
+  fCurFile(0),
+  fListOfFiles(0x0),
+  fTree(0x0),
+  fEvent(0x0),
+  fEsdFile(0x0),
+  fEventFriend(0),
+  fSharedList(0x0),
+  fClusterPerPadrow(0x0)
+{
+  fInputFile = aReader.fInputFile;
+  fFileName  = aReader.fFileName;
+  fConstrained = aReader.fConstrained;
+  fNumberofEvent = aReader.fNumberofEvent;
+  fCurEvent = aReader.fCurEvent;
+  fCurFile = aReader.fCurFile;
+  fTree = aReader.fTree->CloneTree();
+  fEvent = new AliESD(*aReader.fEvent);
+  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
 AliFemtoEventReaderESD::~AliFemtoEventReaderESD()
@@ -92,6 +137,64 @@ AliFemtoEventReaderESD::~AliFemtoEventReaderESD()
   delete [] fSharedList;
 }
 
+//__________________
+AliFemtoEventReaderESD& AliFemtoEventReaderESD::operator=(const AliFemtoEventReaderESD& aReader)
+{
+  if (this == &aReader)
+    return *this;
+
+  fInputFile = aReader.fInputFile;
+  fFileName  = aReader.fFileName;
+  fConstrained = aReader.fConstrained;
+  fNumberofEvent = aReader.fNumberofEvent;
+  fCurEvent = aReader.fCurEvent;
+  fCurFile = aReader.fCurFile;
+  if (fTree) delete fTree;
+  fTree = aReader.fTree->CloneTree();
+  if (fEvent) delete fEvent;
+  fEvent = new AliESD(*aReader.fEvent);
+  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;
+}
 //__________________
 AliFemtoString AliFemtoEventReaderESD::Report()
 {
@@ -254,7 +357,7 @@ AliFemtoEvent* AliFemtoEventReaderESD::ReturnHbtEvent()
     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()) {
+         if (tClustIter == fClusterPerPadrow[tNcl]->end()) {
          fClusterPerPadrow[tNcl]->push_back(tTrackIndices[tNcl]);
        }
        else {
@@ -271,7 +374,7 @@ AliFemtoEvent* AliFemtoEventReaderESD::ReturnHbtEvent()
                
       AliFemtoTrack* trackCopy = new AliFemtoTrack();  
       const AliESDtrack *esdtrack=fEvent->GetTrack(i);//getting next track
-      const AliESDfriendTrack *tESDfriendTrack = esdtrack->GetFriendTrack();
+      //      const AliESDfriendTrack *tESDfriendTrack = esdtrack->GetFriendTrack();
 
       trackCopy->SetCharge((short)esdtrack->GetSign());
 
index b5ee133e49cf14c1359e6c294e10dc4c3745c069..0bb3ce33effba60e374da5ed1a6fa9d2c3e81554 100644 (file)
@@ -1,27 +1,27 @@
+////////////////////////////////////////////////////////////////////////////////
+///                                                                          ///
+/// AliFemtoEventReaderESD - the reader class for the Alice ESD              ///
+/// Reads in ESD information and converts it into internal AliFemtoEvent     ///
+/// Reads in AliESDfriend to create shared hit/quality information           ///
+/// Authors: Marek Chojnacki mchojnacki@knf.pw.edu.pl                        ///
+///          Adam Kisiel kisiel@mps.ohio-state.edu                           ///
+///                                                                          ///
+////////////////////////////////////////////////////////////////////////////////
+
 /*
  *$Id$
  *$Log$
+ *Revision 1.3  2007/04/27 07:25:16  akisiel
+ *Make revisions needed for compilation from the main AliRoot tree
+ *
  *Revision 1.1.1.1  2007/04/25 15:38:41  panos
  *Importing the HBT code dir
  *
- *Revision 1.3  2007/03/13 15:30:03  mchojnacki
- *adding reader for simulated data
- *
- *Revision 1.2  2007/03/07 13:36:17  mchojnacki
- *Add some comments
- *
- *Revision 1.1.1.1  2007/03/07 10:14:49  mchojnacki
- *First version on CVS
- *
  */
   
 
 #ifndef AliFemtoEventReaderESD_hh
 #define AliFemtoEventReaderESD_hh
-//Reader for ESD files for StHbt version 10 with hidden info part
-//made by Marek Chojnacki mchojnacki@knf.pw.edu.pl
-// Version 11 Added AliESDfriend reading
-// Adam Kisiel kisiel@mps.ohio-state.edu
 #include "Base/AliFemtoEventReader.h"
 #include "Infrastructure/AliFemtoEnumeration.h"
 
@@ -38,7 +38,11 @@ class AliFemtoEventReaderESD : public AliFemtoEventReader
 {
  public:
   AliFemtoEventReaderESD();
+  AliFemtoEventReaderESD(const AliFemtoEventReaderESD &aReader);
   ~AliFemtoEventReaderESD();
+
+  AliFemtoEventReaderESD& operator=(const AliFemtoEventReaderESD& aReader);
+
   AliFemtoEvent* ReturnHbtEvent();
   AliFemtoString Report();
   //void SetFileName(const char* fileName);
@@ -49,22 +53,22 @@ class AliFemtoEventReaderESD : public AliFemtoEventReader
  protected:
 
  private:
-  bool           GetNextFile();//setting next file to read 
+  bool           GetNextFile();     // setting next file to read 
 
-  string         fInputFile; //name of input file
-  string         fFileName; //name of current ESD file
-  bool           fConstrained; //flag to set which momentum from ESD file will be use
-  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
-  TFile*         fEsdFile;//ESD file 
-  AliESDfriend*  fEventFriend;
+  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
+  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
+  TFile*         fEsdFile;          // ESD file 
+  AliESDfriend*  fEventFriend;      // ESD friend informaion
 
-  list<Int_t>  **fSharedList;
-  list<Int_t>  **fClusterPerPadrow;
+  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(AliFemtoEventReaderESD, 10)
index aaaacda3a81c7c3b16cef1ecd959bd2beb1a79af..be4b8c94b439757686c5410f37934d1f41d4d84d 100644 (file)
@@ -28,7 +28,9 @@ AliFemtoEventReaderESDChain::AliFemtoEventReaderESDChain():
   fCurEvent(0),
   fCurFile(0),
   fEvent(0x0),
-  fEventFriend(0)
+  fEventFriend(0),
+  fSharedList(0x0),
+  fClusterPerPadrow(0x0)
 {
   fClusterPerPadrow = (list<Int_t> **) malloc(sizeof(list<Int_t> *) * AliESDfriendTrack::kMaxTPCcluster);
   for (int tPad=0; tPad<AliESDfriendTrack::kMaxTPCcluster; tPad++) {
@@ -40,6 +42,42 @@ AliFemtoEventReaderESDChain::AliFemtoEventReaderESDChain():
   }
 }
 
+//__________________
+// Copy constructor
+AliFemtoEventReaderESDChain::AliFemtoEventReaderESDChain(const AliFemtoEventReaderESDChain& aReader):
+  fFileName(" "),
+  fConstrained(true),
+  fNumberofEvent(0),
+  fCurEvent(0),
+  fCurFile(0),
+  fEvent(0x0),
+  fEventFriend(0),
+  fSharedList(0x0),
+  fClusterPerPadrow(0x0)
+{
+  fConstrained = aReader.fConstrained;
+  fNumberofEvent = aReader.fNumberofEvent;
+  fCurEvent = aReader.fCurEvent;
+  fCurFile = aReader.fCurFile;
+  fEvent = new AliESD(*aReader.fEvent);
+  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);
+    }
+  }
+}
 //__________________
 //Destructor
 AliFemtoEventReaderESDChain::~AliFemtoEventReaderESDChain()
@@ -58,6 +96,57 @@ AliFemtoEventReaderESDChain::~AliFemtoEventReaderESDChain()
   delete [] fSharedList;
 }
 
+//__________________
+// Assignment operator
+AliFemtoEventReaderESDChain& AliFemtoEventReaderESDChain::operator=(const AliFemtoEventReaderESDChain& aReader)
+{
+  if (this == &aReader)
+    return *this;
+
+  fConstrained = aReader.fConstrained;
+  fNumberofEvent = aReader.fNumberofEvent;
+  fCurEvent = aReader.fCurEvent;
+  fCurFile = aReader.fCurFile;
+  if (fEvent) delete fEvent;
+  fEvent = new AliESD(*aReader.fEvent);
+
+  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);
+    }
+  }
+  
+  return *this;
+}
 //__________________
 // Simple report
 AliFemtoString AliFemtoEventReaderESDChain::Report()
@@ -155,7 +244,7 @@ AliFemtoEvent* AliFemtoEventReaderESDChain::ReturnHbtEvent()
                
       AliFemtoTrack* trackCopy = new AliFemtoTrack();  
       const AliESDtrack *esdtrack=fEvent->GetTrack(i);//getting next track
-      const AliESDfriendTrack *tESDfriendTrack = esdtrack->GetFriendTrack();
+      //      const AliESDfriendTrack *tESDfriendTrack = esdtrack->GetFriendTrack();
 
       trackCopy->SetCharge((short)esdtrack->GetSign());
 
index 11e40b1057465f10e3c54c431dc6a5b47486f41f..add8e747738edd21484d2e5b3ea23dfc5607f9e4 100644 (file)
@@ -1,6 +1,11 @@
-// AliFemto reader for the ESD objects given back by the chain
-// Version 1:
-// Adam Kisiel, OSU kisiel@mps.ohio-state.edu
+////////////////////////////////////////////////////////////////////////////////
+///                                                                          ///
+/// AliFemtoEventReaderESDChain - the reader class for the Alice ESD         ///
+/// tailored for the Analysis/Task framework                                 ///
+/// Reads in AliESDfriend to create shared hit/quality information           ///
+/// Authors: Adam Kisiel kisiel@mps.ohio-state.edu                           ///
+///                                                                          ///
+////////////////////////////////////////////////////////////////////////////////
 #ifndef AliFemtoEventReaderESDChain_hh
 #define AliFemtoEventReaderESDChain_hh
 #include "Base/AliFemtoEventReader.h"
@@ -19,7 +24,11 @@ class AliFemtoEventReaderESDChain : public AliFemtoEventReader
 {
  public:
   AliFemtoEventReaderESDChain();
+  AliFemtoEventReaderESDChain(const AliFemtoEventReaderESDChain& aReader);
   ~AliFemtoEventReaderESDChain();
+
+  AliFemtoEventReaderESDChain& operator=(const AliFemtoEventReaderESDChain& aReader);
+
   AliFemtoEvent* ReturnHbtEvent();
   AliFemtoString Report();
   void SetConstrained(const bool constrained);
@@ -39,8 +48,8 @@ class AliFemtoEventReaderESDChain : public AliFemtoEventReader
   AliESD*        fEvent;         //ESD event
   AliESDfriend*  fEventFriend;
 
-  list<Int_t>  **fSharedList;
-  list<Int_t>  **fClusterPerPadrow;
+  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 d93e323a2807426dfb139974be608bb83ed5d65f..8a9f4ccbe339204346347ac0bf7071abbc205b55 100644 (file)
@@ -1,44 +1,10 @@
-/***************************************************************************
- *
- * $Id$
- *
- * Author: Mike Lisa, Ohio State, lisa@mps.ohio-state.edu
- ***************************************************************************
- *
- * Description: part of STAR HBT Framework: AliFemtoMaker package
- *   a simple Q-invariant correlation function           
- *
- ***************************************************************************
- *
- * $Log$
- * Revision 1.1.1.1  2007/04/25 15:38:41  panos
- * Importing the HBT code dir
- *
- * Revision 1.1.1.1  2007/03/07 10:14:49  mchojnacki
- * First version on CVS
- *
- * Revision 1.4  2000/01/25 17:34:45  laue
- * I. In order to run the stand alone version of the AliFemtoMaker the following
- * changes have been done:
- * a) all ClassDefs and ClassImps have been put into #ifdef __ROOT__ statements
- * b) unnecessary includes of StMaker.h have been removed
- * c) the subdirectory AliFemtoMaker/doc/Make has been created including everything
- * needed for the stand alone version
- *
- * II. To reduce the amount of compiler warning
- * a) some variables have been type casted
- * b) some destructors have been declared as virtual
- *
- * Revision 1.3  1999/07/29 02:47:09  lisa
- * 1) add OpeningAngle correlation function 2) add AliFemtoMcEventReader 3) make histos in CorrFctns do errors correctly
- *
- * Revision 1.2  1999/07/06 22:33:20  lisa
- * Adjusted all to work in pro and new - dev itself is broken
- *
- * Revision 1.1.1.1  1999/06/29 16:02:57  lisa
- * Installation of AliFemtoMaker
- *
- **************************************************************************/
+////////////////////////////////////////////////////////////////////////////////
+///                                                                          ///
+/// AliFemtoShareQualityCorrFctn - A correlation function that saves the     ///
+/// amount of sharing and splitting hits per pair as a function of qinv      ///
+/// Authors: Adam Kisiel kisiel@mps.ohio-state.edu                           ///
+///                                                                          ///
+////////////////////////////////////////////////////////////////////////////////
 
 #include "AliFemtoShareQualityCorrFctn.h"
 //#include "Infrastructure/AliFemtoHisto.hh"
@@ -49,7 +15,12 @@ ClassImp(AliFemtoShareQualityCorrFctn)
 #endif
 
 //____________________________
-AliFemtoShareQualityCorrFctn::AliFemtoShareQualityCorrFctn(char* title, const int& nbins, const float& QinvLo, const float& QinvHi){
+AliFemtoShareQualityCorrFctn::AliFemtoShareQualityCorrFctn(char* title, const int& nbins, const float& QinvLo, const float& QinvHi):
+  fShareNumerator(0),
+  fShareDenominator(0),
+  fQualityNumerator(0),
+  fQualityDenominator(0)
+{
   // set up numerator
   //  title = "Num Qinv (MeV/c)";
   char TitNum[100] = "NumShare";
@@ -85,6 +56,22 @@ AliFemtoShareQualityCorrFctn::AliFemtoShareQualityCorrFctn(char* title, const in
   fQualityDenominator->Sumw2();
 }
 
+//____________________________
+AliFemtoShareQualityCorrFctn::AliFemtoShareQualityCorrFctn(const AliFemtoShareQualityCorrFctn& aCorrFctn) :
+  fShareNumerator(0),
+  fShareDenominator(0),
+  fQualityNumerator(0),
+  fQualityDenominator(0)
+{
+  if (aCorrFctn.fShareNumerator)
+    fShareNumerator = new TH2D(*aCorrFctn.fShareNumerator);
+  if (aCorrFctn.fShareDenominator)
+    fShareDenominator = new TH2D(*aCorrFctn.fShareDenominator);
+  if (aCorrFctn.fQualityNumerator)
+    fQualityNumerator = new TH2D(*aCorrFctn.fQualityNumerator);
+  if (aCorrFctn.fQualityDenominator)
+    fQualityDenominator = new TH2D(*aCorrFctn.fQualityDenominator);
+}
 //____________________________
 AliFemtoShareQualityCorrFctn::~AliFemtoShareQualityCorrFctn(){
   delete fShareNumerator;
@@ -93,6 +80,31 @@ AliFemtoShareQualityCorrFctn::~AliFemtoShareQualityCorrFctn(){
   delete fQualityDenominator;
 }
 //_________________________
+AliFemtoShareQualityCorrFctn& AliFemtoShareQualityCorrFctn::operator=(const AliFemtoShareQualityCorrFctn& aCorrFctn)
+{
+  if (this == &aCorrFctn)
+    return *this;
+
+  if (aCorrFctn.fShareNumerator)
+    fShareNumerator = new TH2D(*aCorrFctn.fShareNumerator);
+  else
+    fShareNumerator = 0;
+  if (aCorrFctn.fShareDenominator)
+    fShareDenominator = new TH2D(*aCorrFctn.fShareDenominator);
+  else
+    fShareDenominator = 0;
+  if (aCorrFctn.fQualityNumerator)
+    fQualityNumerator = new TH2D(*aCorrFctn.fQualityNumerator);
+  else
+    fQualityNumerator = 0;
+  if (aCorrFctn.fQualityDenominator)
+    fQualityDenominator = new TH2D(*aCorrFctn.fQualityDenominator);
+  else
+    fQualityDenominator = 0;
+
+  return *this;
+}
+//_________________________
 void AliFemtoShareQualityCorrFctn::Finish(){
   // here is where we should normalize, fit, etc...
   // we should NOT Draw() the histos (as I had done it below),
index 4546a23f7d7cfc66c000d1722eeafba9afd00eb1..027077ace7fad97a9e5673fced7de1535c2d844f 100644 (file)
@@ -1,38 +1,10 @@
-/***************************************************************************
- *
- * $Id$
- *
- * Author: Mike Lisa, Ohio State, lisa@mps.ohio-state.edu
- ***************************************************************************
- *
- * Description: part of STAR HBT Framework: AliFemtoMaker package
- *   a simple Q-invariant correlation function           
- *
- ***************************************************************************
- *
- * $Log$
- * Revision 1.1.1.1  2007/03/07 10:14:49  mchojnacki
- * First version on CVS
- *
- * Revision 1.3  2000/01/25 17:34:45  laue
- * I. In order to run the stand alone version of the AliFemtoMaker the following
- * changes have been done:
- * a) all ClassDefs and ClassImps have been put into #ifdef __ROOT__ statements
- * b) unnecessary includes of StMaker.h have been removed
- * c) the subdirectory AliFemtoMaker/doc/Make has been created including everything
- * needed for the stand alone version
- *
- * II. To reduce the amount of compiler warning
- * a) some variables have been type casted
- * b) some destructors have been declared as virtual
- *
- * Revision 1.2  1999/07/06 22:33:20  lisa
- * Adjusted all to work in pro and new - dev itself is broken
- *
- * Revision 1.1.1.1  1999/06/29 16:02:57  lisa
- * Installation of AliFemtoMaker
- *
- **************************************************************************/
+////////////////////////////////////////////////////////////////////////////////
+///                                                                          ///
+/// AliFemtoShareQualityCorrFctn - A correlation function that saves the     ///
+/// amount of sharing and splitting hits per pair as a function of qinv      ///
+/// Authors: Adam Kisiel kisiel@mps.ohio-state.edu                           ///
+///                                                                          ///
+////////////////////////////////////////////////////////////////////////////////
 
 #ifndef AliFemtoShareQualityCorrFctn_hh
 #define AliFemtoShareQualityCorrFctn_hh
 class AliFemtoShareQualityCorrFctn : public AliFemtoCorrFctn {
 public:
   AliFemtoShareQualityCorrFctn(char* title, const int& nbins, const float& QinvLo, const float& QinvHi);
+  AliFemtoShareQualityCorrFctn(const AliFemtoShareQualityCorrFctn& aCorrFctn);
   virtual ~AliFemtoShareQualityCorrFctn();
 
+  AliFemtoShareQualityCorrFctn& operator=(const AliFemtoShareQualityCorrFctn& aCorrFctn);
+
   virtual AliFemtoString Report();
   virtual void AddRealPair(const AliFemtoPair*);
   virtual void AddMixedPair(const AliFemtoPair*);
index 175acf0180edf9a05b177a7601a550715e874dce..9dcdd3fcdb6fe125ab52665f6a1a0462730a6fb4 100644 (file)
@@ -11,6 +11,9 @@
  ***************************************************************************
  *
  * $Log$
+ * Revision 1.3  2007/04/27 07:25:59  akisiel
+ * Make revisions needed for compilation from the main AliRoot tree
+ *
  * Revision 1.1.1.1  2007/04/25 15:38:41  panos
  * Importing the HBT code dir
  *
 ClassImp(AliFemtoESDTrackCut)
 #endif
 
-AliFemtoESDTrackCut::AliFemtoESDTrackCut()
+AliFemtoESDTrackCut::AliFemtoESDTrackCut() :
+  fCharge(0),
+  fLabel(0),
+  fStatus(0),
+  fminTPCclsF(0),
+  fminITScls(0),
+  fNTracksPassed(0),
+  fNTracksFailed(0)
 {
     fNTracksPassed = fNTracksFailed = 0;
     fCharge = 0;  // takes both charges 0
index dfad06b477e361e19602cf9a6791b7490028774b..c6ca63724552dc75a147b4b2f9236eb3dd16b694 100644 (file)
@@ -7,6 +7,9 @@
  ***************************************************************************
  *
  * $Log$
+ * Revision 1.3  2007/04/27 07:25:59  akisiel
+ * Make revisions needed for compilation from the main AliRoot tree
+ *
  * Revision 1.1.1.1  2007/04/25 15:38:41  panos
  * Importing the HBT code dir
  *
@@ -25,7 +28,9 @@ ClassImp(AliFemtoQPairCut)
 #endif
     
 //__________________
-AliFemtoQPairCut::AliFemtoQPairCut()
+AliFemtoQPairCut::AliFemtoQPairCut():
+  fNPairsPassed(0),
+  fNPairsFailed(0)
 {
   fNPairsPassed = fNPairsFailed = 0;
   fQlong[0]=-1.0; fQlong[1]=100.0;
index 08354fc56d4b84e9ec5f84924356b8f97f3680be..f49f21494cb58333e220dbd77ff29b6040391318 100644 (file)
@@ -22,9 +22,11 @@ ClassImp(AliFemtoShareQualityPairCut)
 #endif
 
 //__________________
-AliFemtoShareQualityPairCut::AliFemtoShareQualityPairCut(){
-  fNPairsPassed = fNPairsFailed = 0;
-  fShareQualityMax = 1.0;
+AliFemtoShareQualityPairCut::AliFemtoShareQualityPairCut():
+  fNPairsPassed(0),
+  fNPairsFailed(0),
+  fShareQualityMax(1.0)
+{
 }
 //__________________
 AliFemtoShareQualityPairCut::~AliFemtoShareQualityPairCut(){
index 5544c94c09b67360fb9b3d8589f5ad66fae8b9ec..edc3d26bf72c3f68914295757a1715d79825df47 100644 (file)
@@ -46,11 +46,12 @@ private:
 #endif
 };
 
-inline AliFemtoShareQualityPairCut::AliFemtoShareQualityPairCut(const AliFemtoShareQualityPairCut& c) : AliFemtoPairCut(c) {
-  fNPairsPassed = 0;
-  fNPairsFailed = 0;
-  fShareQualityMax = 1.0; // no cut
-}
+inline AliFemtoShareQualityPairCut::AliFemtoShareQualityPairCut(const AliFemtoShareQualityPairCut& c) : 
+  AliFemtoPairCut(c),
+  fNPairsPassed(0),
+  fNPairsFailed(0),
+  fShareQualityMax(1.0) // no cut
+{ /* no-op */ }
 
 inline AliFemtoShareQualityPairCut* AliFemtoShareQualityPairCut::Clone() { AliFemtoShareQualityPairCut* c = new AliFemtoShareQualityPairCut(*this); return c;}