ROOT logo
//SSD dEdx gain calibration task
//to run in QA train
//autor Marek Chojnacki
//Marek.Chojnacki@cern.ch
// last line
#include "TChain.h"
#include "TTree.h"
#include "TH1F.h"
#include "TH2F.h"
#include "TH3F.h"
#include "TFile.h"

#include "AliAnalysisTaskdEdxSSDQA.h"
#include "AliAnalysisManager.h"

#include "AliESDEvent.h"
#include "AliESDInputHandler.h"


#include "AliESDtrack.h"
#include "AliExternalTrackParam.h"
#include "Riostream.h"

#include "AliESDfriend.h"
#include "AliESDfriendTrack.h"
#include "AliTrackPointArray.h"
#include "AliCDBManager.h"
#include "AliGeomManager.h"
#include "TMath.h"
#include "TGeoMatrix.h"

using namespace std;
ClassImp(AliAnalysisTaskdEdxSSDQA)

//________________________________________________________________________
AliAnalysisTaskdEdxSSDQA::AliAnalysisTaskdEdxSSDQA(const char *name) 
: AliAnalysisTaskSE(name), fHist1(0),fHist2(0),fHist3(0),fHist4(0),fHist5(0),fHist6(0),fListOfHistos(0),fPcut(0.0),fdothecorrection(0)
{
  // Constructor
	// Define input and output slots here
  // Input slot #1 works with a TChain
 // fcorrections=new Float_t[1698*12];
  for(int i=0;i<1698*12;i++)
  	fcorrections[i]=1.0;
  DefineOutput(1, TList::Class());
}

//________________________________________________________________________
void AliAnalysisTaskdEdxSSDQA::UserCreateOutputObjects()
{
  // Create histograms
  // Called once
  	
	fListOfHistos = new TList();
	fListOfHistos->SetOwner();
	fHist1 =new TH2F("QAChargeRatio","QAChargeRatio;Module;CR",1698,-0.5,1697.5,80,-1.0,1.0);
	fListOfHistos->Add(fHist1);
	fHist2=new TH2F("QACharge","QACharge;Module;Q",1698,-0.5,1697.5,150,0,300);
	fListOfHistos->Add(fHist2);
	fHist3=new TH3F("ChargeRatiovCharge","CRvQ;module;Q;CR",1698,-0.5,1697.5,80,0,1600,50,-1.0,1.0);
	fListOfHistos->Add(fHist3);
	fHist4=new TH2F("QAChargedinchips","chargedinchips;chip;Q",1698*12,-0.5,1698*12-0.5,150,0,300);
	fListOfHistos->Add(fHist4);
	if(fdothecorrection)
	{
		fHist5=new TH2F("QAChargeCorrected","chargedCorrected;Module;QCorrected",1698,-0.5,1697.5,150,0,300);
		fListOfHistos->Add(fHist5);
	}
	fHist6=new TH2F("QNvQP",";QN;QP",160,0,1600,1600,0,1600);
	fListOfHistos->Add(fHist6);
	
	PostData(1,  fListOfHistos);
}
//________________________________________________________________________
void AliAnalysisTaskdEdxSSDQA::LocalInit() 
{
	
	Printf("end of LocalInit");
}
//______________________________________________________________________
AliAnalysisTaskdEdxSSDQA::~AliAnalysisTaskdEdxSSDQA()
{
}

//________________________________________________________________________

void AliAnalysisTaskdEdxSSDQA::UserExec(Option_t *) 
{
    // Main loop
    // Called for each event
    AliESDEvent* esd = dynamic_cast<AliESDEvent*> (InputEvent());
    if(!esd) 
    {
	Printf("ERROR: Input ESD Event not available");
	PostData(1,  fListOfHistos);
	return;
    }
    
    Int_t nTracks=esd->GetNumberOfTracks();
    
    

	if(!ESDfriend())
	{
		Printf("problem with friend");
		PostData(1,  fListOfHistos);
		return;
	}
	//Printf("Event nTracks %d", nTracks);	
	AliTrackPointArray*  trackar=0x0;
	Bool_t l5;
	Bool_t l6;
	Int_t npoints;
	AliTrackPoint point;
	Int_t nlayer=0;
	Int_t id=0;
	Float_t chargeratio=0.0;
	Float_t charge=0.0;
	for(int itr=0;itr<nTracks;itr++)
	{
		AliESDtrack* track= esd->GetTrack(itr);

		if(TMath::Abs(track->Eta())>0.9)
			continue;
		if(track->GetP()>10.0)
			continue;	
		if (track->IsOn(AliESDtrack::kITSrefit)&&track->IsOn(AliESDtrack::kTPCrefit))
		{
			 l5=track->HasPointOnITSLayer(4);
			 l6=track->HasPointOnITSLayer(5);
			if (!(l5||l6))//only tracks with SSD point
				continue;
			Double_t tmpQESD[4]={-1.0,-1.0,-1.0,-1.0};
			track->GetITSdEdxSamples(tmpQESD);
			trackar=(AliTrackPointArray*)track->GetTrackPointArray(); 
			if(!trackar)
				continue;
			npoints=trackar->GetNPoints();			
			for(int itnp=0;itnp<npoints;itnp++)		
			{									
				if(trackar->GetPoint(point,itnp))
				{
					nlayer=AliGeomManager::VolUIDToLayer(point.GetVolumeID(), id);//layer number					
				}	
				else
					continue;		
				if(nlayer==5||nlayer==6)
				{
					TGeoHMatrix* geomatrix=AliGeomManager::GetMatrix(point.GetVolumeID());
					//geomatrix->Print();
					if(point.GetCharge()>0.0&&point.IsExtra()==kFALSE)//do not use additional clusters
					{		
						Double_t local[3]={0.0,0.0,0.0};
						Double_t global[3]={0.0,0.0,0.0};
						global[0]=point.GetX();
						global[1]=point.GetY();
						global[2]=point.GetZ();
						geomatrix->MasterToLocal(global,local);
						 chargeratio=point.GetChargeRatio();	
						 charge=point.GetCharge();
						 Float_t fQNnotcorr=charge*(1.0+chargeratio);
						 Float_t fQPnotcorr=charge*(1.0-chargeratio);						 
						 fHist6->Fill(fQNnotcorr,fQPnotcorr);
						// cout<<point.GetCharge()<<" "<<point.GetChargeRatio()<<" "<<nlayer<<" "<<id<<endl;
						if(nlayer==5&&tmpQESD[2]>0.0)
						{
							fHist1->Fill(id,chargeratio);
							if(track->GetP()>fPcut)
							{
								Float_t fQP=tmpQESD[2]*(1.0-chargeratio);
								Float_t fQN=tmpQESD[2]*(1.0+chargeratio);
								Int_t fPchip=Pstrip5(10000.0*local[0],10000.0*local[2])/128;
								Int_t fNchip=Nstrip5(10000.0*local[0],10000.0*local[2])/128;
								
								fHist2->Fill(id,tmpQESD[2]);
								fHist4->Fill(id*12+fPchip,fQP);	
								fHist4->Fill(id*12+6+fNchip,fQN);
								if(fdothecorrection)
									fHist5->Fill(id,0.5*(fQP*fcorrections[12*id+fPchip]+fQN*fcorrections[12*id+6+fNchip]));	
							}	
							fHist3->Fill(id,charge,chargeratio);
						}	
						if(nlayer==6&&tmpQESD[3]>0.0)
						{
							fHist1->Fill(id+748,chargeratio);
							if(track->GetP()>fPcut)
							{
							
								Float_t fQP=tmpQESD[3]*(1.0-chargeratio);
								Float_t fQN=tmpQESD[3]*(1.0+chargeratio);
								Int_t fPchip=Pstrip6(10000.0*local[0],10000.0*local[2])/128;
								Int_t fNchip=Nstrip6(10000.0*local[0],10000.0*local[2])/128;
							
								fHist2->Fill(id+748,tmpQESD[3]);
								fHist4->Fill((id+748)*12+fPchip,fQP);	
								fHist4->Fill((id+748)*12+6+fNchip,fQN);
								if(fdothecorrection)
									fHist5->Fill((id+748),0.5*(fQP*fcorrections[12*(id+748)+fPchip]+fQN*fcorrections[12*(id+748)+6+fNchip]));			
								
							}	
							fHist3->Fill(id+748,charge,chargeratio);	
						}
							
					}	
				}
			}	
		}
	}
	//Printf("Event nTracks end %d", nTracks);
	// Post output data.
	PostData(1,  fListOfHistos);
}      

//________________________________________________________________________
void AliAnalysisTaskdEdxSSDQA::Terminate(Option_t *) 
{
	//terminate
	Printf("end of Terminate");
}
//_____________________________________________________________________________
Int_t  AliAnalysisTaskdEdxSSDQA::Pstrip5(Float_t x,Float_t z) const
{
	// P strip for layer 5 from local cooridnates 
	Float_t value;
	x=x+36432.5-223.9;
	z=z-(76000.0/7.0);
	value=-(3.0/38000.0)*z+x/95.0;
	return TMath::Nint(value);
}
//___________________________________________________________________________
Int_t  AliAnalysisTaskdEdxSSDQA::Nstrip5(Float_t x,Float_t z)  const
{
	// N strip for layer 5 from local cooridnates 
	Float_t value;
	x=x+36432.5-223.9;
	z=z-(76000.0/7.0);
	value=x/95.0+(11.0/38000.0)*z;
	return TMath::Nint(value);
}
//___________________________________________________________________________
Int_t  AliAnalysisTaskdEdxSSDQA::Pstrip6(Float_t x,Float_t z)  const
{
	// P strip for layer 6 from local cooridnates 
	Float_t value;
	x=x-36432.5-223.9;
	z=z+(76000.0/7.0);
	value=-(3.0/38000.0)*z-x/95.0;
	return TMath::Nint(value);
}
//__________________________________________________________________________________
Int_t  AliAnalysisTaskdEdxSSDQA::Nstrip6(Float_t x,Float_t z)  const
{
	// N strip for layer 6 from local cooridnates 
	Float_t value;
	x=x-36432.5-223.9;
	z=z+(76000.0/7.0);
	value=x*(-1.0/95.0)+(11.0/38000.0)*z;
	return TMath::Nint(value);
}
//___________________________________________________________________________________
void  AliAnalysisTaskdEdxSSDQA::SetDoChipCorretions(const char* filename)
{
//Upload corrections for each chip only for test 
	cout<<filename<<endl;
	ifstream infile(filename);
	if(!infile.good())
		return;
	Float_t value=0.0;
	fdothecorrection=1;
	for (int i=0;i<1698;i++)
	{
		for (int j=0;j<6;j++)
		{
			infile>>value;
			cout<<value<<" ";
			if(value>0.0)
				fcorrections[i*12+j]=84.0/value;
			else
				fcorrections[i*12+j]=1.0;	
			infile>>value;
			infile>>value;
			cout<<value<<" ";
			if(value>0.0)
				fcorrections[i*12+j+6]=84.0/value;
			else
				fcorrections[i*12+j+6]=1.0;
			infile>>value;
		}
		cout<<endl;		
	}	
}

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