ROOT logo
///////////////////////////////////////////////////////////////////////////
//                                                                       //
// This is an analysis which calculated the background from like sign    //
// pairs in the same event                                               //
//                                                                       //
///////////////////////////////////////////////////////////////////////////

#include "AliFemtoLikeSignAnalysis.h"
#include "AliFemtoParticleCollection.h"
#include "AliFemtoPicoEventCollectionVector.h"
#include "AliFemtoPicoEventCollectionVectorHideAway.h"

#ifdef __ROOT__ 
ClassImp(AliFemtoLikeSignAnalysis)
#endif

// this little function used to apply ParticleCuts (TrackCuts or V0Cuts) and fill ParticleCollections of picoEvent
//  it is called from AliFemtoSimpleAnalysis::ProcessEvent()


extern void FillHbtParticleCollection(AliFemtoParticleCut*         partCut,
				     AliFemtoEvent*               hbtEvent,
				     AliFemtoParticleCollection*  partCollection);

 
//____________________________
AliFemtoLikeSignAnalysis::AliFemtoLikeSignAnalysis(unsigned int bins, double min, double max) : 
  AliFemtoSimpleAnalysis(),
  fVertexBins(0),
  fOverFlow(0),  
  fUnderFlow(0)  
{
  // standard constructor
  fVertexBins = bins;
  fVertexZ[0] = min;
  fVertexZ[1] = max;
  fUnderFlow = 0; 
  fOverFlow = 0; 
  if (fMixingBuffer) delete fMixingBuffer;
  fPicoEventCollectionVectorHideAway = new AliFemtoPicoEventCollectionVectorHideAway(fVertexBins,fVertexZ[0],fVertexZ[1]);
    /* no-op */
}
//____________________________
AliFemtoLikeSignAnalysis::AliFemtoLikeSignAnalysis(const AliFemtoLikeSignAnalysis& a) : 
  AliFemtoSimpleAnalysis(a) ,
  fVertexBins(0),
  fOverFlow(0),  
  fUnderFlow(0)  
{
  // copy constructor
  fVertexBins = a.fVertexBins; 
  fVertexZ[0] = a.fVertexZ[0]; 
  fVertexZ[1] = a.fVertexZ[1];
  fUnderFlow = 0; 
  fOverFlow = 0; 
  if (fMixingBuffer) delete fMixingBuffer;
  fPicoEventCollectionVectorHideAway = new AliFemtoPicoEventCollectionVectorHideAway(fVertexBins,fVertexZ[0],fVertexZ[1]);
 }
AliFemtoLikeSignAnalysis& AliFemtoLikeSignAnalysis::operator=(const AliFemtoLikeSignAnalysis& OriginalAnalysis)
{
  if (this != &OriginalAnalysis) {
    fVertexBins = OriginalAnalysis.fVertexBins; 
    fVertexZ[0] = OriginalAnalysis.fVertexZ[0]; 
    fVertexZ[1] = OriginalAnalysis.fVertexZ[1];
    fUnderFlow = 0; 
    fOverFlow = 0; 
    if (fMixingBuffer) delete fMixingBuffer;
    if (fPicoEventCollectionVectorHideAway) delete fPicoEventCollectionVectorHideAway;
    fPicoEventCollectionVectorHideAway = new AliFemtoPicoEventCollectionVectorHideAway(fVertexBins,fVertexZ[0],fVertexZ[1]);
  }

  return *this;

}

//____________________________ 
AliFemtoLikeSignAnalysis::~AliFemtoLikeSignAnalysis(){
  // destructor
  delete fPicoEventCollectionVectorHideAway; fPicoEventCollectionVectorHideAway=0;
}
//____________________________
AliFemtoString AliFemtoLikeSignAnalysis::Report()
{  
  // prepare report
  char tCtemp[200];
  cout << "AliFemtoLikeSignAnalysis - constructing Report..."<<endl;
  AliFemtoString temp = "-----------\nHbt Analysis Report:\n";
  snprintf(tCtemp , 200, "Events are mixed in %d bins in the range %E cm to %E cm.\n",fVertexBins,fVertexZ[0],fVertexZ[1]);
  temp += tCtemp;
  snprintf(tCtemp , 200, "Events underflowing: %d\n",fUnderFlow);
  temp += tCtemp;
  snprintf(tCtemp , 200, "Events overflowing: %d\n",fOverFlow);
  temp += tCtemp;
  snprintf(tCtemp , 200, "Now adding AliFemtoSimpleAnalysis(base) Report\n");
  temp += tCtemp; 
  temp += "Adding AliFemtoSimpleAnalysis(base) Report now:\n";
  temp += AliFemtoSimpleAnalysis::Report();
  temp += "-------------\n";
  AliFemtoString returnThis=temp;
  return returnThis;
}
//_________________________
void AliFemtoLikeSignAnalysis::ProcessEvent(const AliFemtoEvent* hbtEvent) {
  // perform all the analysis tasks for a single event
  // get right mixing buffer
  double vertexZ = hbtEvent->PrimVertPos().z();
  fMixingBuffer = fPicoEventCollectionVectorHideAway->PicoEventCollection(vertexZ); 
  if (!fMixingBuffer) {
    if ( vertexZ < fVertexZ[0] ) fUnderFlow++;
    if ( vertexZ > fVertexZ[1] ) fOverFlow++;
    return;
  }

  // startup for EbyE 
  EventBegin(hbtEvent);  
  // event cut and event cut monitor
  bool tmpPassEvent = fEventCut->Pass(hbtEvent);
  fEventCut->FillCutMonitor(hbtEvent, tmpPassEvent);
  if (tmpPassEvent) {
      fNeventsProcessed++;
      cout << "AliFemtoLikeSignAnalysis::ProcessEvent() - " << hbtEvent->TrackCollection()->size();
      cout << " #track=" << hbtEvent->TrackCollection()->size();
      // OK, analysis likes the event-- build a pico event from it, using tracks the analysis likes...
      AliFemtoPicoEvent* picoEvent = new AliFemtoPicoEvent;       // this is what we will make pairs from and put in Mixing Buffer
      FillHbtParticleCollection(fFirstParticleCut,(AliFemtoEvent*)hbtEvent,picoEvent->FirstParticleCollection());
      if ( !(AnalyzeIdenticalParticles()) )
	FillHbtParticleCollection(fSecondParticleCut,(AliFemtoEvent*)hbtEvent,picoEvent->SecondParticleCollection());
      cout <<"   #particles in First, Second Collections: " <<
	picoEvent->FirstParticleCollection()->size() << " " <<
	picoEvent->SecondParticleCollection()->size() << endl;
      
      if (picoEvent->SecondParticleCollection()->size()*picoEvent->FirstParticleCollection()->size()==0) {
	delete picoEvent;
	cout << "AliFemtoLikeSignAnalysis - picoEvent deleted due to empty collection " <<endl; 
	return;
      }
      // OK, pico event is built
      // make real pairs...
      
      // Fabrice points out that we do not need to keep creating/deleting pairs all the time
      // We only ever need ONE pair, and we can just keep changing internal pointers
      // this should help speed things up
      AliFemtoPair* tThePair = new AliFemtoPair;
      
      AliFemtoParticleIterator tPartIter1;
      AliFemtoParticleIterator tPartIter2;
      AliFemtoCorrFctnIterator tCorrFctnIter;
      AliFemtoParticleIterator tStartOuterLoop = picoEvent->FirstParticleCollection()->begin();  // always
      AliFemtoParticleIterator tEndOuterLoop   = picoEvent->FirstParticleCollection()->end();    // will be one less if identical
      AliFemtoParticleIterator tStartInnerLoop;
      AliFemtoParticleIterator tEndInnerLoop;
      if (AnalyzeIdenticalParticles()) {             // only use First collection
	tEndOuterLoop--;                                               // outer loop goes to next-to-last particle in First collection
	tEndInnerLoop = picoEvent->FirstParticleCollection()->end() ;  // inner loop goes to last particle in First collection
      }
      else {                                                          // nonidentical - loop over First and Second collections
	tStartInnerLoop = picoEvent->SecondParticleCollection()->begin(); // inner loop starts at first particle in Second collection
	tEndInnerLoop   = picoEvent->SecondParticleCollection()->end() ;  // inner loop goes to last particle in Second collection
      }
      // real pairs
      for (tPartIter1=tStartOuterLoop;tPartIter1!=tEndOuterLoop;tPartIter1++){
	if (AnalyzeIdenticalParticles()){
	  tStartInnerLoop = tPartIter1;
	  tStartInnerLoop++;
	}
	tThePair->SetTrack1(*tPartIter1);
	for (tPartIter2 = tStartInnerLoop; tPartIter2!=tEndInnerLoop;tPartIter2++){
	  tThePair->SetTrack2(*tPartIter2);
	  // The following lines have to be uncommented if you want pairCutMonitors
	  // they are not in for speed reasons
	  // bool tmpPassPair = mPairCut->Pass(tThePair);
          // mPairCut->FillCutMonitor(tThePair, tmpPassPair);
	  // if ( tmpPassPair ) {
	  if (fPairCut->Pass(tThePair)){
	    for (tCorrFctnIter=fCorrFctnCollection->begin();
		 tCorrFctnIter!=fCorrFctnCollection->end();tCorrFctnIter++){
	      AliFemtoLikeSignCorrFctn* tCorrFctn = dynamic_cast<AliFemtoLikeSignCorrFctn*>(*tCorrFctnIter);
	      if (tCorrFctn) tCorrFctn->AddRealPair(tThePair);
	    }
	  }  // if passed pair cut
	}    // loop over second particle
      }      // loop over first particle
#ifdef STHBTDEBUG
      cout << "AliFemtoLikeSignAnalysis::ProcessEvent() - reals done" << endl;
#endif

      AliFemtoParticleIterator nextIter;
      AliFemtoParticleIterator prevIter;

      // like sign first partilce collection pairs
      prevIter = tEndOuterLoop;
      prevIter--;
      for (tPartIter1=tStartOuterLoop;tPartIter1!=prevIter;tPartIter1++){
	tThePair->SetTrack1(*tPartIter1);
	nextIter = tPartIter1;
	nextIter++;
	for (tPartIter2 = nextIter; tPartIter2!=tEndOuterLoop;tPartIter2++){
	  tThePair->SetTrack2(*tPartIter2);
	  // The following lines have to be uncommented if you want pairCutMonitors
	  // they are not in for speed reasons
	  // bool tmpPassPair = mPairCut->Pass(tThePair);
          // mPairCut->FillCutMonitor(tThePair, tmpPassPair);
	  // if ( tmpPassPair ) {
	  if (fPairCut->Pass(tThePair)){
	    for (tCorrFctnIter=fCorrFctnCollection->begin();
		 tCorrFctnIter!=fCorrFctnCollection->end();tCorrFctnIter++){
	      AliFemtoLikeSignCorrFctn* tCorrFctn = dynamic_cast<AliFemtoLikeSignCorrFctn*>(*tCorrFctnIter);
	      if (tCorrFctn) tCorrFctn->AddLikeSignPositivePair(tThePair);
	    }
	  }  // if passed pair cut
	}    // loop over second particle
      }      // loop over first particle
#ifdef STHBTDEBUG
      cout << "AliFemtoLikeSignAnalysis::ProcessEvent() - like sign first collection done" << endl;
#endif
      // like sign second partilce collection pairs
      prevIter = tEndInnerLoop;
      prevIter--;
      for (tPartIter1=tStartInnerLoop;tPartIter1!=prevIter;tPartIter1++){
	tThePair->SetTrack1(*tPartIter1);
	nextIter = tPartIter1;
	nextIter++;
	for (tPartIter2 = nextIter; tPartIter2!=tEndInnerLoop;tPartIter2++){
	  tThePair->SetTrack2(*tPartIter2);
	  // The following lines have to be uncommented if you want pairCutMonitors
	  // they are not in for speed reasons
	  // bool tmpPassPair = mPairCut->Pass(tThePair);
          // mPairCut->FillCutMonitor(tThePair, tmpPassPair);
	  // if ( tmpPassPair ) {
	  if (fPairCut->Pass(tThePair)){
	    for (tCorrFctnIter=fCorrFctnCollection->begin();
		 tCorrFctnIter!=fCorrFctnCollection->end();tCorrFctnIter++){
	      AliFemtoLikeSignCorrFctn* tCorrFctn = dynamic_cast<AliFemtoLikeSignCorrFctn*>(*tCorrFctnIter);
	      if (tCorrFctn) tCorrFctn->AddLikeSignNegativePair(tThePair);
	    }
	  }  // if passed pair cut
	}    // loop over second particle
      }      // loop over first particle
#ifdef STHBTDEBUG
      cout << "AliFemtoLikeSignAnalysis::ProcessEvent() - like sign second collection done" << endl;
#endif
      
      if (MixingBufferFull()){
#ifdef STHBTDEBUG
	cout << "Mixing Buffer is full - lets rock and roll" << endl;
#endif
      }
      else {
	cout << "Mixing Buffer not full -gotta wait " << MixingBuffer()->size() << endl;
      }
      if (MixingBufferFull()){
	tStartOuterLoop = picoEvent->FirstParticleCollection()->begin();
	tEndOuterLoop   = picoEvent->FirstParticleCollection()->end();
	AliFemtoPicoEvent* storedEvent;
	AliFemtoPicoEventIterator picoEventIter;
	for (picoEventIter=MixingBuffer()->begin();picoEventIter!=MixingBuffer()->end();picoEventIter++){
	  storedEvent = *picoEventIter;
	  if (AnalyzeIdenticalParticles()){
	    tStartInnerLoop = storedEvent->FirstParticleCollection()->begin();
	    tEndInnerLoop = storedEvent->FirstParticleCollection()->end();
	  }
	  else{
	    tStartInnerLoop = storedEvent->SecondParticleCollection()->begin();
	    tEndInnerLoop = storedEvent->SecondParticleCollection()->end();
	  }
	  for (tPartIter1=tStartOuterLoop;tPartIter1!=tEndOuterLoop;tPartIter1++){
	    tThePair->SetTrack1(*tPartIter1);
	    for (tPartIter2=tStartInnerLoop;tPartIter2!=tEndInnerLoop;tPartIter2++){
	      tThePair->SetTrack2(*tPartIter2);
	      // testing...	      cout << "tThePair defined... going to pair cut... ";
	      if (fPairCut->Pass(tThePair)){
		// testing...		cout << " tThePair passed PairCut... ";
		for (tCorrFctnIter=fCorrFctnCollection->begin();
		     tCorrFctnIter!=fCorrFctnCollection->end();tCorrFctnIter++){
		  AliFemtoLikeSignCorrFctn* tCorrFctn = dynamic_cast<AliFemtoLikeSignCorrFctn*>(*tCorrFctnIter);
		  if (tCorrFctn) { 
		    tCorrFctn->AddMixedPair(tThePair);
		    //cout << " tThePair has been added to MixedPair method " << endl;
		  }
		}
	      }  // if passed pair cut
	    }    // loop over second particle
	  }      // loop over first particle
	}        // loop over pico-events stored in Mixing buffer
	// Now get rid of oldest stored pico-event in buffer.
	// This means (1) delete the event from memory, (2) "pop" the pointer to it from the MixingBuffer
	delete MixingBuffer()->back();
	MixingBuffer()->pop_back();
      }  // if mixing buffer is full
      delete tThePair;
      MixingBuffer()->push_front(picoEvent);  // store the current pico-event in buffer
    }   // if currentEvent is accepted by currentAnalysis
    EventEnd(hbtEvent);  // cleanup for EbyE 
    //    cout << "AliFemtoLikeSignAnalysis::ProcessEvent() - return to caller ... " << endl;
}



 AliFemtoLikeSignAnalysis.cxx:1
 AliFemtoLikeSignAnalysis.cxx:2
 AliFemtoLikeSignAnalysis.cxx:3
 AliFemtoLikeSignAnalysis.cxx:4
 AliFemtoLikeSignAnalysis.cxx:5
 AliFemtoLikeSignAnalysis.cxx:6
 AliFemtoLikeSignAnalysis.cxx:7
 AliFemtoLikeSignAnalysis.cxx:8
 AliFemtoLikeSignAnalysis.cxx:9
 AliFemtoLikeSignAnalysis.cxx:10
 AliFemtoLikeSignAnalysis.cxx:11
 AliFemtoLikeSignAnalysis.cxx:12
 AliFemtoLikeSignAnalysis.cxx:13
 AliFemtoLikeSignAnalysis.cxx:14
 AliFemtoLikeSignAnalysis.cxx:15
 AliFemtoLikeSignAnalysis.cxx:16
 AliFemtoLikeSignAnalysis.cxx:17
 AliFemtoLikeSignAnalysis.cxx:18
 AliFemtoLikeSignAnalysis.cxx:19
 AliFemtoLikeSignAnalysis.cxx:20
 AliFemtoLikeSignAnalysis.cxx:21
 AliFemtoLikeSignAnalysis.cxx:22
 AliFemtoLikeSignAnalysis.cxx:23
 AliFemtoLikeSignAnalysis.cxx:24
 AliFemtoLikeSignAnalysis.cxx:25
 AliFemtoLikeSignAnalysis.cxx:26
 AliFemtoLikeSignAnalysis.cxx:27
 AliFemtoLikeSignAnalysis.cxx:28
 AliFemtoLikeSignAnalysis.cxx:29
 AliFemtoLikeSignAnalysis.cxx:30
 AliFemtoLikeSignAnalysis.cxx:31
 AliFemtoLikeSignAnalysis.cxx:32
 AliFemtoLikeSignAnalysis.cxx:33
 AliFemtoLikeSignAnalysis.cxx:34
 AliFemtoLikeSignAnalysis.cxx:35
 AliFemtoLikeSignAnalysis.cxx:36
 AliFemtoLikeSignAnalysis.cxx:37
 AliFemtoLikeSignAnalysis.cxx:38
 AliFemtoLikeSignAnalysis.cxx:39
 AliFemtoLikeSignAnalysis.cxx:40
 AliFemtoLikeSignAnalysis.cxx:41
 AliFemtoLikeSignAnalysis.cxx:42
 AliFemtoLikeSignAnalysis.cxx:43
 AliFemtoLikeSignAnalysis.cxx:44
 AliFemtoLikeSignAnalysis.cxx:45
 AliFemtoLikeSignAnalysis.cxx:46
 AliFemtoLikeSignAnalysis.cxx:47
 AliFemtoLikeSignAnalysis.cxx:48
 AliFemtoLikeSignAnalysis.cxx:49
 AliFemtoLikeSignAnalysis.cxx:50
 AliFemtoLikeSignAnalysis.cxx:51
 AliFemtoLikeSignAnalysis.cxx:52
 AliFemtoLikeSignAnalysis.cxx:53
 AliFemtoLikeSignAnalysis.cxx:54
 AliFemtoLikeSignAnalysis.cxx:55
 AliFemtoLikeSignAnalysis.cxx:56
 AliFemtoLikeSignAnalysis.cxx:57
 AliFemtoLikeSignAnalysis.cxx:58
 AliFemtoLikeSignAnalysis.cxx:59
 AliFemtoLikeSignAnalysis.cxx:60
 AliFemtoLikeSignAnalysis.cxx:61
 AliFemtoLikeSignAnalysis.cxx:62
 AliFemtoLikeSignAnalysis.cxx:63
 AliFemtoLikeSignAnalysis.cxx:64
 AliFemtoLikeSignAnalysis.cxx:65
 AliFemtoLikeSignAnalysis.cxx:66
 AliFemtoLikeSignAnalysis.cxx:67
 AliFemtoLikeSignAnalysis.cxx:68
 AliFemtoLikeSignAnalysis.cxx:69
 AliFemtoLikeSignAnalysis.cxx:70
 AliFemtoLikeSignAnalysis.cxx:71
 AliFemtoLikeSignAnalysis.cxx:72
 AliFemtoLikeSignAnalysis.cxx:73
 AliFemtoLikeSignAnalysis.cxx:74
 AliFemtoLikeSignAnalysis.cxx:75
 AliFemtoLikeSignAnalysis.cxx:76
 AliFemtoLikeSignAnalysis.cxx:77
 AliFemtoLikeSignAnalysis.cxx:78
 AliFemtoLikeSignAnalysis.cxx:79
 AliFemtoLikeSignAnalysis.cxx:80
 AliFemtoLikeSignAnalysis.cxx:81
 AliFemtoLikeSignAnalysis.cxx:82
 AliFemtoLikeSignAnalysis.cxx:83
 AliFemtoLikeSignAnalysis.cxx:84
 AliFemtoLikeSignAnalysis.cxx:85
 AliFemtoLikeSignAnalysis.cxx:86
 AliFemtoLikeSignAnalysis.cxx:87
 AliFemtoLikeSignAnalysis.cxx:88
 AliFemtoLikeSignAnalysis.cxx:89
 AliFemtoLikeSignAnalysis.cxx:90
 AliFemtoLikeSignAnalysis.cxx:91
 AliFemtoLikeSignAnalysis.cxx:92
 AliFemtoLikeSignAnalysis.cxx:93
 AliFemtoLikeSignAnalysis.cxx:94
 AliFemtoLikeSignAnalysis.cxx:95
 AliFemtoLikeSignAnalysis.cxx:96
 AliFemtoLikeSignAnalysis.cxx:97
 AliFemtoLikeSignAnalysis.cxx:98
 AliFemtoLikeSignAnalysis.cxx:99
 AliFemtoLikeSignAnalysis.cxx:100
 AliFemtoLikeSignAnalysis.cxx:101
 AliFemtoLikeSignAnalysis.cxx:102
 AliFemtoLikeSignAnalysis.cxx:103
 AliFemtoLikeSignAnalysis.cxx:104
 AliFemtoLikeSignAnalysis.cxx:105
 AliFemtoLikeSignAnalysis.cxx:106
 AliFemtoLikeSignAnalysis.cxx:107
 AliFemtoLikeSignAnalysis.cxx:108
 AliFemtoLikeSignAnalysis.cxx:109
 AliFemtoLikeSignAnalysis.cxx:110
 AliFemtoLikeSignAnalysis.cxx:111
 AliFemtoLikeSignAnalysis.cxx:112
 AliFemtoLikeSignAnalysis.cxx:113
 AliFemtoLikeSignAnalysis.cxx:114
 AliFemtoLikeSignAnalysis.cxx:115
 AliFemtoLikeSignAnalysis.cxx:116
 AliFemtoLikeSignAnalysis.cxx:117
 AliFemtoLikeSignAnalysis.cxx:118
 AliFemtoLikeSignAnalysis.cxx:119
 AliFemtoLikeSignAnalysis.cxx:120
 AliFemtoLikeSignAnalysis.cxx:121
 AliFemtoLikeSignAnalysis.cxx:122
 AliFemtoLikeSignAnalysis.cxx:123
 AliFemtoLikeSignAnalysis.cxx:124
 AliFemtoLikeSignAnalysis.cxx:125
 AliFemtoLikeSignAnalysis.cxx:126
 AliFemtoLikeSignAnalysis.cxx:127
 AliFemtoLikeSignAnalysis.cxx:128
 AliFemtoLikeSignAnalysis.cxx:129
 AliFemtoLikeSignAnalysis.cxx:130
 AliFemtoLikeSignAnalysis.cxx:131
 AliFemtoLikeSignAnalysis.cxx:132
 AliFemtoLikeSignAnalysis.cxx:133
 AliFemtoLikeSignAnalysis.cxx:134
 AliFemtoLikeSignAnalysis.cxx:135
 AliFemtoLikeSignAnalysis.cxx:136
 AliFemtoLikeSignAnalysis.cxx:137
 AliFemtoLikeSignAnalysis.cxx:138
 AliFemtoLikeSignAnalysis.cxx:139
 AliFemtoLikeSignAnalysis.cxx:140
 AliFemtoLikeSignAnalysis.cxx:141
 AliFemtoLikeSignAnalysis.cxx:142
 AliFemtoLikeSignAnalysis.cxx:143
 AliFemtoLikeSignAnalysis.cxx:144
 AliFemtoLikeSignAnalysis.cxx:145
 AliFemtoLikeSignAnalysis.cxx:146
 AliFemtoLikeSignAnalysis.cxx:147
 AliFemtoLikeSignAnalysis.cxx:148
 AliFemtoLikeSignAnalysis.cxx:149
 AliFemtoLikeSignAnalysis.cxx:150
 AliFemtoLikeSignAnalysis.cxx:151
 AliFemtoLikeSignAnalysis.cxx:152
 AliFemtoLikeSignAnalysis.cxx:153
 AliFemtoLikeSignAnalysis.cxx:154
 AliFemtoLikeSignAnalysis.cxx:155
 AliFemtoLikeSignAnalysis.cxx:156
 AliFemtoLikeSignAnalysis.cxx:157
 AliFemtoLikeSignAnalysis.cxx:158
 AliFemtoLikeSignAnalysis.cxx:159
 AliFemtoLikeSignAnalysis.cxx:160
 AliFemtoLikeSignAnalysis.cxx:161
 AliFemtoLikeSignAnalysis.cxx:162
 AliFemtoLikeSignAnalysis.cxx:163
 AliFemtoLikeSignAnalysis.cxx:164
 AliFemtoLikeSignAnalysis.cxx:165
 AliFemtoLikeSignAnalysis.cxx:166
 AliFemtoLikeSignAnalysis.cxx:167
 AliFemtoLikeSignAnalysis.cxx:168
 AliFemtoLikeSignAnalysis.cxx:169
 AliFemtoLikeSignAnalysis.cxx:170
 AliFemtoLikeSignAnalysis.cxx:171
 AliFemtoLikeSignAnalysis.cxx:172
 AliFemtoLikeSignAnalysis.cxx:173
 AliFemtoLikeSignAnalysis.cxx:174
 AliFemtoLikeSignAnalysis.cxx:175
 AliFemtoLikeSignAnalysis.cxx:176
 AliFemtoLikeSignAnalysis.cxx:177
 AliFemtoLikeSignAnalysis.cxx:178
 AliFemtoLikeSignAnalysis.cxx:179
 AliFemtoLikeSignAnalysis.cxx:180
 AliFemtoLikeSignAnalysis.cxx:181
 AliFemtoLikeSignAnalysis.cxx:182
 AliFemtoLikeSignAnalysis.cxx:183
 AliFemtoLikeSignAnalysis.cxx:184
 AliFemtoLikeSignAnalysis.cxx:185
 AliFemtoLikeSignAnalysis.cxx:186
 AliFemtoLikeSignAnalysis.cxx:187
 AliFemtoLikeSignAnalysis.cxx:188
 AliFemtoLikeSignAnalysis.cxx:189
 AliFemtoLikeSignAnalysis.cxx:190
 AliFemtoLikeSignAnalysis.cxx:191
 AliFemtoLikeSignAnalysis.cxx:192
 AliFemtoLikeSignAnalysis.cxx:193
 AliFemtoLikeSignAnalysis.cxx:194
 AliFemtoLikeSignAnalysis.cxx:195
 AliFemtoLikeSignAnalysis.cxx:196
 AliFemtoLikeSignAnalysis.cxx:197
 AliFemtoLikeSignAnalysis.cxx:198
 AliFemtoLikeSignAnalysis.cxx:199
 AliFemtoLikeSignAnalysis.cxx:200
 AliFemtoLikeSignAnalysis.cxx:201
 AliFemtoLikeSignAnalysis.cxx:202
 AliFemtoLikeSignAnalysis.cxx:203
 AliFemtoLikeSignAnalysis.cxx:204
 AliFemtoLikeSignAnalysis.cxx:205
 AliFemtoLikeSignAnalysis.cxx:206
 AliFemtoLikeSignAnalysis.cxx:207
 AliFemtoLikeSignAnalysis.cxx:208
 AliFemtoLikeSignAnalysis.cxx:209
 AliFemtoLikeSignAnalysis.cxx:210
 AliFemtoLikeSignAnalysis.cxx:211
 AliFemtoLikeSignAnalysis.cxx:212
 AliFemtoLikeSignAnalysis.cxx:213
 AliFemtoLikeSignAnalysis.cxx:214
 AliFemtoLikeSignAnalysis.cxx:215
 AliFemtoLikeSignAnalysis.cxx:216
 AliFemtoLikeSignAnalysis.cxx:217
 AliFemtoLikeSignAnalysis.cxx:218
 AliFemtoLikeSignAnalysis.cxx:219
 AliFemtoLikeSignAnalysis.cxx:220
 AliFemtoLikeSignAnalysis.cxx:221
 AliFemtoLikeSignAnalysis.cxx:222
 AliFemtoLikeSignAnalysis.cxx:223
 AliFemtoLikeSignAnalysis.cxx:224
 AliFemtoLikeSignAnalysis.cxx:225
 AliFemtoLikeSignAnalysis.cxx:226
 AliFemtoLikeSignAnalysis.cxx:227
 AliFemtoLikeSignAnalysis.cxx:228
 AliFemtoLikeSignAnalysis.cxx:229
 AliFemtoLikeSignAnalysis.cxx:230
 AliFemtoLikeSignAnalysis.cxx:231
 AliFemtoLikeSignAnalysis.cxx:232
 AliFemtoLikeSignAnalysis.cxx:233
 AliFemtoLikeSignAnalysis.cxx:234
 AliFemtoLikeSignAnalysis.cxx:235
 AliFemtoLikeSignAnalysis.cxx:236
 AliFemtoLikeSignAnalysis.cxx:237
 AliFemtoLikeSignAnalysis.cxx:238
 AliFemtoLikeSignAnalysis.cxx:239
 AliFemtoLikeSignAnalysis.cxx:240
 AliFemtoLikeSignAnalysis.cxx:241
 AliFemtoLikeSignAnalysis.cxx:242
 AliFemtoLikeSignAnalysis.cxx:243
 AliFemtoLikeSignAnalysis.cxx:244
 AliFemtoLikeSignAnalysis.cxx:245
 AliFemtoLikeSignAnalysis.cxx:246
 AliFemtoLikeSignAnalysis.cxx:247
 AliFemtoLikeSignAnalysis.cxx:248
 AliFemtoLikeSignAnalysis.cxx:249
 AliFemtoLikeSignAnalysis.cxx:250
 AliFemtoLikeSignAnalysis.cxx:251
 AliFemtoLikeSignAnalysis.cxx:252
 AliFemtoLikeSignAnalysis.cxx:253
 AliFemtoLikeSignAnalysis.cxx:254
 AliFemtoLikeSignAnalysis.cxx:255
 AliFemtoLikeSignAnalysis.cxx:256
 AliFemtoLikeSignAnalysis.cxx:257
 AliFemtoLikeSignAnalysis.cxx:258
 AliFemtoLikeSignAnalysis.cxx:259
 AliFemtoLikeSignAnalysis.cxx:260
 AliFemtoLikeSignAnalysis.cxx:261
 AliFemtoLikeSignAnalysis.cxx:262
 AliFemtoLikeSignAnalysis.cxx:263
 AliFemtoLikeSignAnalysis.cxx:264
 AliFemtoLikeSignAnalysis.cxx:265
 AliFemtoLikeSignAnalysis.cxx:266
 AliFemtoLikeSignAnalysis.cxx:267
 AliFemtoLikeSignAnalysis.cxx:268
 AliFemtoLikeSignAnalysis.cxx:269
 AliFemtoLikeSignAnalysis.cxx:270
 AliFemtoLikeSignAnalysis.cxx:271
 AliFemtoLikeSignAnalysis.cxx:272
 AliFemtoLikeSignAnalysis.cxx:273
 AliFemtoLikeSignAnalysis.cxx:274
 AliFemtoLikeSignAnalysis.cxx:275
 AliFemtoLikeSignAnalysis.cxx:276
 AliFemtoLikeSignAnalysis.cxx:277
 AliFemtoLikeSignAnalysis.cxx:278
 AliFemtoLikeSignAnalysis.cxx:279
 AliFemtoLikeSignAnalysis.cxx:280
 AliFemtoLikeSignAnalysis.cxx:281
 AliFemtoLikeSignAnalysis.cxx:282
 AliFemtoLikeSignAnalysis.cxx:283
 AliFemtoLikeSignAnalysis.cxx:284
 AliFemtoLikeSignAnalysis.cxx:285
 AliFemtoLikeSignAnalysis.cxx:286
 AliFemtoLikeSignAnalysis.cxx:287
 AliFemtoLikeSignAnalysis.cxx:288
 AliFemtoLikeSignAnalysis.cxx:289
 AliFemtoLikeSignAnalysis.cxx:290
 AliFemtoLikeSignAnalysis.cxx:291
 AliFemtoLikeSignAnalysis.cxx:292
 AliFemtoLikeSignAnalysis.cxx:293
 AliFemtoLikeSignAnalysis.cxx:294
 AliFemtoLikeSignAnalysis.cxx:295
 AliFemtoLikeSignAnalysis.cxx:296
 AliFemtoLikeSignAnalysis.cxx:297
 AliFemtoLikeSignAnalysis.cxx:298