ROOT logo
/**************************************************************************
 * Authors: Andrey Ivanov, Igor Altsybeev.                                                 *
 * Contributors are mentioned in the code where appropriate.              *
 *                                                                        *
 * Permission to use, copy, modify and distribute this software and its   *
 * documentation strictly for non-commercial purposes is hereby granted   *
 * without fee, provided that the above copyright notice appears in all   *
 * copies and that both the copyright notice and this permission notice   *
 * appear in the supporting documentation. The authors make no claims     *
 * about the suitability of this software for any purpose. It is          *
 * provided "as is" without express or implied warranty.                  *
 **************************************************************************/

// This class creates TH2D histogramms for Nch - Nch , Nch - Pt , Pt - Pt 
// dirtributions for given ETA windows and some supplementary data for Long Range Correlation (LRC) analysis .  
// Class is designid to work with AliAnalysisTaskLRC

// Authors : Andrey Ivanov, Igor Altsybeev, St.Peterburg State University
// Email: Igor.Altsybeev@cern.ch

#include "Riostream.h"
#include "AliLRCProcess.h"
//#include "THnSparse.h"
#include "TH1F.h"
#include "TH1D.h"
#include "TH2D.h"
#include "TProfile.h"
#include "TList.h"
#include "TString.h"
#include "TMath.h"
//#include "TClonesArray.h"

//#include <AliPID.h> //for particle mass only
ClassImp(AliLRCProcess)

//const bool useSparse = false;//false;
//const bool useAccumulatingHist = true;//false;
using std::endl;
using std::cout;

AliLRCProcess::AliLRCProcess():fIsEventOpend(kFALSE), fIsOnline(kFALSE), fDisplayInitOnDemandWarning(kTRUE)
  ,fUseSparse(false)
  ,fUseAccumulatingHist(true)
  ,fEventCount(0),fStartForwardETA(0), fEndForwardETA(0)
  ,fStartForwardPhi(0)
  ,fEndForwardPhi(0)
  ,fStartBackwardETA(0)
  ,fEndBackwardETA(0)
  ,fStartBackwardPhi(0)
  ,fEndBackwardPhi(0)
  ,fDoubleSidedBackwardPhiWindow(kFALSE)
  ,fHiPt(0)
  ,fLoPt(0)
  ,fHiMultHor(0)
  ,fLowMultHor(0)
  ,fHiMultVert(0)
  ,fLowMultVert(0)
  ,fMultBinsHor(0)
  ,fMultBinsVert(0)
  ,fPtBins(0)
  ,fPtHistXaxisRebinFactor(1)
  ,fSumPtFw(0)
  ,fSumPtBw(0)
  ,fSumPtBw2(0)
  ,fNchFw(0)
  ,fNchBw(0)
  ,fNchFwPlus(0)
  ,fNchBwPlus(0)
  ,fNchFwMinus(0)
  ,fNchBwMinus(0)
  ,fOutList(0), fShortDef(0),fOutputSlot(0), fHistPt(0),fHistEta(0),fHistClouds(0),fHistNN(0),fHistPtN(0),fHistPtPt(0),fProfNberr(0),fProfNberrPtPt(0),fProfdPtB(0),fProfTestLRC(0),fHistSparseDimensionLabeling(0),fHistSparsePIDblocksLabeling(0)

  ,fHistPtForward(0)
  ,fHistEtaForward(0)
  ,fHistNchForward(0)
  ,fHistNchForwardPtPt(0)
  ,fHistPhiForward(0)
  ,fHistTracksChargeForward(0)
  ,fHistPtPlusForward(0)
  ,fHistPtMinusForward(0)
  ,fHistNetChargeVsPtForward(0)

  ,fHistPtBackward(0)
  ,fHistEtaBackward(0)
  ,fHistNchBackward(0)
  ,fHistPhiBackward(0)
  ,fHistTracksChargeBackward(0)
  ,fHistPtPlusBackward(0)
  ,fHistPtMinusBackward(0)
  ,fHistNetChargeVsPtBackward(0)

  ,fArrAccumulatedValues(0)
  //  ,fHistArrayLabeling(0)
  ,fEventCentrality(0)
  ,fHistNfCentrality(0)
  ,fHistTestPIDForward(0)
  ,fHistTestPIDBackward(0)
  ,fHistDifferenceNf(0)
  ,fHistDifferenceNb(0)

  ,fPidForward(-1)//kLRCany)
  ,fPidBackward(-1)//kLRCany)
  //,fWhichParticleToProcess(kLRCany)//kLRCany)
  //,fPidFillCondition(kLRCpidIgnored)
  //,fNumberOfSectors(1)
  //,fNeedToRotateSector(kFALSE)
{
    //fWhichParticleToProcess = kLRCany;  //default - all particle types
    //fPidFillCondition = kLRCpidIgnored;
    SetCorrespondanceWithAliROOTpid();
    ZeroPidArrays();
}

AliLRCProcess::AliLRCProcess(Double_t _StartForwardETA,Double_t _EndForwardETA,Double_t _StartBakwardETA,Double_t _EndBakwardETA ): fIsEventOpend(kFALSE), fIsOnline(kFALSE), fDisplayInitOnDemandWarning(kTRUE)
  ,fUseSparse(false)
  ,fUseAccumulatingHist(true)
  ,fEventCount(0),fStartForwardETA(0), fEndForwardETA(0), fStartForwardPhi(0),fEndForwardPhi(0),fStartBackwardETA(0), fEndBackwardETA(0),fStartBackwardPhi(0)
  ,fEndBackwardPhi(0)
  ,fDoubleSidedBackwardPhiWindow(kFALSE)
  ,fHiPt(0)
  ,fLoPt(0)
  ,fHiMultHor(0)
  ,fLowMultHor(0)
  ,fHiMultVert(0)
  ,fLowMultVert(0)
  ,fMultBinsHor(0)
  ,fMultBinsVert(0)
  ,fPtBins(0)
  ,fPtHistXaxisRebinFactor(1)
  ,fSumPtFw(0),  fSumPtBw(0), fSumPtBw2(0),fNchFw(0)
  ,/*fNchFwPtPt(0),*/ fNchBw(0)
  ,fNchFwPlus(0)
  ,fNchBwPlus(0)
  ,fNchFwMinus(0)
  ,fNchBwMinus(0)
  ,fOutList(0), fShortDef(0),fOutputSlot(0), fHistPt(0),fHistEta(0),fHistClouds(0),fHistNN(0),fHistPtN(0),fHistPtPt(0),fProfNberr(0),fProfNberrPtPt(0),fProfdPtB(0),fProfTestLRC(0),fHistSparseDimensionLabeling(0),fHistSparsePIDblocksLabeling(0)

  ,fHistPtForward(0)
  ,fHistEtaForward(0)
  ,fHistNchForward(0)
  ,fHistNchForwardPtPt(0)
  ,fHistPhiForward(0)
  ,fHistTracksChargeForward(0)
  ,fHistPtPlusForward(0)
  ,fHistPtMinusForward(0)
  ,fHistNetChargeVsPtForward(0)

  ,fHistPtBackward(0)
  ,fHistEtaBackward(0)
  ,fHistNchBackward(0)
  ,fHistPhiBackward(0)
  ,fHistTracksChargeBackward(0)
  ,fHistPtPlusBackward(0)
  ,fHistPtMinusBackward(0)
  ,fHistNetChargeVsPtBackward(0)

  ,fArrAccumulatedValues(0)
  //  ,fHistArrayLabeling(0)
  ,fEventCentrality(0)
  ,fHistNfCentrality(0)
  ,fHistTestPIDForward(0)
  ,fHistTestPIDBackward(0)
  ,fHistDifferenceNf(0)
  ,fHistDifferenceNb(0)
  ,fPidForward(-1)//kLRCany)
  ,fPidBackward(-1)//kLRCany)
  //,fWhichParticleToProcess(kLRCany)//kLRCany)
  //,fPidFillCondition(kLRCpidIgnored)
  //,fNumberOfSectors(1)
  //,fNeedToRotateSector(kFALSE)
{
    // Constructor with window setup makes ready-to-run processor
    fEventCount=0;

    //fWhichParticleToProcess = kLRCany;  //default - all particle types
    //fPidFillCondition = kLRCpidIgnored;
    
    //cout << "TEST" << endl;
    SetETAWindows( _StartForwardETA, _EndForwardETA,_StartBakwardETA,_EndBakwardETA);
    SetHistPtRange( 0.15, 1.5, 270 );
    SetHistMultRange( 0, 0, 100 );
    SetForwardWindowPhi( 0, 2*TMath::Pi() );
    SetBackwardWindowPhi( 0, 2*TMath::Pi() );

    SetCorrespondanceWithAliROOTpid();
    ZeroPidArrays();

    

}

Bool_t AliLRCProcess::InitDataMembers()
{
    //Printf("INITDATAMEMBERS");
    // This method is actualy creating output histogramms
    // Thist method  is to be called in CreateOutputObjects method of AliAnalysisTask
    //cout<<" # Init for "<<fShortDef<<" this="<<this<<"\n";
    if( fIsOnline )
    {
        Printf("Can't init data members more then one time! \n");
        return kFALSE;
    }
    fEventCount=0;
    fOutList = new TList();
    fOutList->SetOwner();  // IMPORTANT!

    fOutList->SetName(fShortDef);

    Double_t lowMultHor, hiMultHor;
    Double_t lowMultVert, hiMultVert;

    lowMultHor = fLowMultHor - 0.5;
    hiMultHor = fHiMultHor + 0.5;

    lowMultVert = fLowMultVert - 0.5;
    hiMultVert = fHiMultVert + 0.5;


    //TArray to accumulate data, with names hist
    //26.01.2013: array with accumulated values
    //fArrAccumulatedValues = new TClonesArray("Float_t", en_arr_labels_total );//TArrayF(en_arr_labels_total);
    if ( fUseAccumulatingHist )
    {
        fArrAccumulatedValues = new TH1D( "fArrAccumulatedValues", "Accumulating hist with labeling", en_arr_labels_total,-0.5,en_arr_labels_total-0.5);
        TString gArrayMemberNames[en_arr_labels_total];
        gArrayMemberNames[ en_arr_labels_NN_Nevents  ] = "NN_Nevents"       ;
        gArrayMemberNames[ en_arr_labels_NN_Nf       ] = "NN_Nf"            ;
        gArrayMemberNames[ en_arr_labels_NN_Nb       ] = "NN_Nb"            ;
        gArrayMemberNames[ en_arr_labels_NN_N2_f     ] = "NN_N2_f"          ;
        gArrayMemberNames[ en_arr_labels_NN_Nf_Nb    ] = "NN_Nf_Nb"         ;
        gArrayMemberNames[ en_arr_labels_NN_N2_b     ] = "NN_N2_b"          ;

        gArrayMemberNames[ en_arr_labels_PtN_Nevents ] = "PtN_Nevents"      ;
        gArrayMemberNames[ en_arr_labels_PtN_Nf      ] = "PtN_Nf"           ;
        gArrayMemberNames[ en_arr_labels_PtN_PtB     ] = "PtN_PtB"          ;
        gArrayMemberNames[ en_arr_labels_PtN_N2_f    ] = "PtN_N2_f"         ;
        gArrayMemberNames[ en_arr_labels_PtN_Ptb_Nf  ] = "PtN_Ptb_Nf"       ;

        gArrayMemberNames[ en_arr_labels_PtPt_Nevents] = "PtPt_Nevents"     ;
        gArrayMemberNames[ en_arr_labels_PtPt_PtF    ] = "PtPt_PtF"         ;
        gArrayMemberNames[ en_arr_labels_PtPt_PtB    ] = "PtPt_PtB"         ;
        gArrayMemberNames[ en_arr_labels_PtPt_Pt2_f  ] = "PtPt_Pt2_f"       ;
        gArrayMemberNames[ en_arr_labels_PtPt_Ptf_Ptb] = "PtPt_Ptf_Ptb"     ;

        for( Int_t i = 1; i <= en_arr_labels_total; i++ )
            fArrAccumulatedValues->GetXaxis()->SetBinLabel(i,gArrayMemberNames[i-1].Data());
        //fOutList->Add(fArrAccumulatedValues);
        fOutList->Add(fArrAccumulatedValues);
    }



    
    // Window statistics histograms

    // ########## Forward

    fHistPtForward = new TH1D("fHistPtForward", "P_{T} distribution in Forward window", 100, 0.0, 5);
    fHistPtForward->GetXaxis()->SetTitle("P_{T} (GeV/c)");
    fHistPtForward->GetYaxis()->SetTitle("dN/dP_{T} (c/GeV)");
    fHistPtForward->SetMarkerStyle(kFullCircle);


    fHistEtaForward = new TH1D("fEtaForward", "#eta distribution in Forward window", 200, -2, 2);
    fHistEtaForward->GetXaxis()->SetTitle("ETA");
    fHistEtaForward->GetYaxis()->SetTitle("dN/ETA");
    fHistEtaForward->SetMarkerStyle(kFullCircle);

    
    fHistNchForward = new TH1D("fHistNchForward", "N_{ch} distribution in Forward window", fMultBinsHor, lowMultHor, hiMultHor);
    fHistNchForward->GetXaxis()->SetTitle("N_{ch}");
    fHistNchForward->GetYaxis()->SetTitle("dN/dN_{ch}");
    fHistNchForward->SetMarkerStyle(kFullCircle);

    fHistNchForwardPtPt = new TH1D("fHistNchForwardPtPt", "N_{ch} distribution in Forward window for PtPt accept conditions", fMultBinsHor, lowMultHor, hiMultHor);
    fHistNchForwardPtPt->GetXaxis()->SetTitle("N_{ch}");
    fHistNchForwardPtPt->GetYaxis()->SetTitle("dN/dN_{ch}");
    fHistNchForwardPtPt->SetMarkerStyle(kFullCircle);

    fHistPhiForward = new TH1D("fPhiForward", "#phi distribution in Forward window", 144, 0, 2*TMath::Pi());
    fHistPhiForward->GetXaxis()->SetTitle("Phi");
    fHistPhiForward->GetYaxis()->SetTitle("dN/Phi");
    fHistPhiForward->SetMarkerStyle(kFullCircle);

    fHistTestPIDForward = new TH1D("fHistTestPIDForward","PID distribution in Forward window;PID;N",5,-0.5,4.5);
    TString gBinParticleNames[5] = {/*"Other",*/"Electron","Muon","Pion","Kaon", "Proton"};
    for(Int_t i = 1; i <= 5; i++)
        fHistTestPIDForward->GetXaxis()->SetBinLabel(i,gBinParticleNames[i-1].Data());

    //15/12/2012: charge hist
    fHistTracksChargeForward = new TH1D("fHistTracksChargeForward","Accepted tracks charge;charge;Entries",3,-1.5,1.5);


    // ### net charge vs pt study (July 2013)
    const int kPtNetChargePtBins = 200;
    const double kPtNetChargePtMin = 0.1;
    const double kPtNetChargePtMax = 2.1;

    //pt plus
    fHistPtPlusForward = new TH1D("fHistPtPlusForward","p_{T} +;p_{T};dN/dpT", kPtNetChargePtBins,  kPtNetChargePtMin, kPtNetChargePtMax                                  );
    fOutList->Add(fHistPtPlusForward);
    //pt minus
    fHistPtMinusForward = new TH1D("fHistPtMinusForward","p_{T} -;p_{T};dN/dpT", kPtNetChargePtBins,  kPtNetChargePtMin, kPtNetChargePtMax                                  );
    fOutList->Add(fHistPtMinusForward);
    //net charge vs pT
    fHistNetChargeVsPtForward = new TH1D("fHistNetChargeVsPtForward","charge vs p_{T};p_{T};Q", kPtNetChargePtBins,  kPtNetChargePtMin, kPtNetChargePtMax                                  );
    fOutList->Add(fHistNetChargeVsPtForward);


    // ########## Backward

    fHistPtBackward = new TH1D("fHistPtBakward", "P_{T} distribution in Backward window", 100, 0.0, 5);
    fHistPtBackward->GetXaxis()->SetTitle("P_{T} (GeV/c)");
    fHistPtBackward->GetYaxis()->SetTitle("dN/dP_{T} (c/GeV)");
    fHistPtBackward->SetMarkerStyle(kFullCircle);


    fHistEtaBackward = new TH1D("fEtaBakward", "#eta distribution in Backward window", 200, -2, 2);
    fHistEtaBackward->GetXaxis()->SetTitle("ETA");
    fHistEtaBackward->GetYaxis()->SetTitle("dN/ETA");
    fHistEtaBackward->SetMarkerStyle(kFullCircle);


    fHistNchBackward = new TH1D("fHistNchBakward", "N_{ch} distribution in Backward window", fMultBinsVert, lowMultVert, hiMultVert);
    fHistNchBackward->GetXaxis()->SetTitle("N_{ch}");
    fHistNchBackward->GetYaxis()->SetTitle("dN/dN_{ch}");
    fHistNchBackward->SetMarkerStyle(kFullCircle);

    fHistPhiBackward = new TH1D("fPhiBakward", "#phi distribution in Backward window", 144, 0, 2*TMath::Pi());
    fHistPhiBackward->GetXaxis()->SetTitle("Phi");
    fHistPhiBackward->GetYaxis()->SetTitle("dN/Phi");
    fHistPhiBackward->SetMarkerStyle(kFullCircle);

    fHistTestPIDBackward = new TH1D("fHistTestPIDBackward","PID distribution in Backward window;PID;N",5,-0.5,4.5);
    for(Int_t i = 1; i <= 5; i++)
        fHistTestPIDBackward->GetXaxis()->SetBinLabel(i,gBinParticleNames[i-1].Data());


    //15/12/2012: charge hist
    fHistTracksChargeBackward = new TH1D("fHistTracksChargeBackward","Accepted tracks charge;charge;Entries",3,-1.5,1.5);

    // ### net charge vs pt study (July 2013)
    //pt plus
    fHistPtPlusBackward = new TH1D("fHistPtPlusBackward","p_{T} +;p_{T};dN/dpT", kPtNetChargePtBins,  kPtNetChargePtMin, kPtNetChargePtMax                                  );
    fOutList->Add(fHistPtPlusBackward);
    //pt minus
    fHistPtMinusBackward = new TH1D("fHistPtMinusBackward","p_{T} -;p_{T};dN/dpT", kPtNetChargePtBins,  kPtNetChargePtMin, kPtNetChargePtMax                                  );
    fOutList->Add(fHistPtMinusBackward);
    //net charge vs pT
    fHistNetChargeVsPtBackward = new TH1D("fHistNetChargeVsPtBackward","charge vs p_{T};p_{T};Q", kPtNetChargePtBins,  kPtNetChargePtMin, kPtNetChargePtMax                                  );
    fOutList->Add(fHistNetChargeVsPtBackward);





    //Overal statistics histograms

    fHistPt = new TH1F("fHistPt", "P_{T} distribution", 100, 0.0, 5.0);
    fHistPt->GetXaxis()->SetTitle("P_{T} (GeV/c)");
    fHistPt->GetYaxis()->SetTitle("dN/dP_{T} (c/GeV)");
    fHistPt->SetMarkerStyle(kFullCircle);


    fHistEta = new TH1F("fHistEta", "#eta distribution", 200, -2, 2);
    fHistEta->GetXaxis()->SetTitle("ETA");
    fHistEta->GetYaxis()->SetTitle("dN/ETA");
    fHistEta->SetMarkerStyle(kFullCircle);
    
    
    
    // -------- LRC histograms
    //new cloud implementation
    //const int lSparseDim = en_sparse_total;
    //const int nSparseBins = 1000;


    /* from AliROOT //deprecated!
        enum EParticleType {
            kElectron = 0,
            kMuon = 1,
            kPion = 2,
            kKaon = 3,
            kProton = 4,
            kPhoton = 5,
            kPi0 = 6,
            kNeutron = 7,
            kKaon0 = 8,
            kEleCon = 9,
            kDeuteron = 10,
            kTriton = 11,
            kHe3 = 12,
            kAlpha = 13,
            kUnknown = 14
        };*/


    if ( fUseSparse )
    {

        //correspondance of PID blocks
        //it's a way to unlink THnSparse data dimenstion from enum
        fHistSparsePIDblocksLabeling = new TH1D("fHistSparsePIDblocksLabeling","THnSparse PID blocks labeling", kSparsePIDtotal,-0.5,kSparsePIDtotal-0.5);
        TString gEventCutBinPIDblocksNames[kSparsePIDtotal];    // = {"Total","No trigger","Centrality","No vertex","Bad vertex position","HighMult cut","LowMult cut","Analyzed"};
        gEventCutBinPIDblocksNames[kSparsePIDany]               = "any";
        gEventCutBinPIDblocksNames[kSparsePIDdefined]       = "defined";
        gEventCutBinPIDblocksNames[kSparsePIDpion]      = "pion";
        gEventCutBinPIDblocksNames[kSparsePIDkaon]      = "kaon";
        gEventCutBinPIDblocksNames[kSparsePIDproton]    = "proton";


        for(Int_t i = 1; i <= kSparsePIDtotal; i++)fHistSparsePIDblocksLabeling->GetXaxis()->SetBinLabel(i,gEventCutBinPIDblocksNames[i-1].Data());
        //for(Int_t i = 0; i < nEnumBins; i++)fHistSparseDimensionLabeling->Fill( i );

        //dimensions labelling

        fHistSparseDimensionLabeling = new TH1D("fHistSparseDimensionLabeling","THnSparse labeling", kSparseTotal,-0.5,kSparseTotal-0.5);
        TString gSparseDimensionsNames[kSparseTotal];    // = {"Total","No trigger","Centrality","No vertex","Bad vertex position","HighMult cut","LowMult cut","Analyzed"};
        gSparseDimensionsNames[kSparseNf] = "N_f";
        gSparseDimensionsNames[kSparseNb] = "N_b";
        gSparseDimensionsNames[kSparsePtF] = "Pt_f";
        gSparseDimensionsNames[kSparsePtB] = "Pt_b";
        gSparseDimensionsNames[en_sparse_N2_f] = "N2_f";
        gSparseDimensionsNames[en_sparse_Nf_Nb] = "Nf_Nb";
        gSparseDimensionsNames[en_sparse_Ptb_Nf] = "Ptb_Nf";
        gSparseDimensionsNames[en_sparse_Pt2_f] = "Pt2_f";
        gSparseDimensionsNames[en_sparse_Ptf_Ptb] = "Ptf_Ptb";

        for( Int_t i = 1; i <= kSparseTotal; i++ )
            fHistSparseDimensionLabeling->GetXaxis()->SetBinLabel(i,gSparseDimensionsNames[i-1].Data());



        Int_t* lSparseBins 	= new Int_t[kSparseTotal*kSparsePIDtotal];
        Double_t *lSparseXmin 	= new Double_t[kSparseTotal*kSparsePIDtotal];
        Double_t *lSparseXmax 	= new Double_t[kSparseTotal*kSparsePIDtotal];
        TString *lSparseAxisNames 	= new TString[kSparseTotal*kSparsePIDtotal];

        TString *lPIDNames 	= new TString[kSparsePIDtotal];
        lPIDNames[ kSparsePIDany      ] = Form( "any" );
        lPIDNames[ kSparsePIDdefined  ] = Form( "defined" );
        lPIDNames[ kSparsePIDpion     ] = Form( "pion" );
        lPIDNames[ kSparsePIDkaon     ] = Form( "kaon" );
        lPIDNames[ kSparsePIDproton   ] = Form( "proton" );



        for ( Int_t d = 0; d < kSparsePIDtotal; ++d )
        {
            Int_t binShift = kSparseTotal*d;

            lSparseAxisNames[kSparseNf + binShift] = Form( "axisNf_%s", lPIDNames[ d ].Data() );
            lSparseAxisNames[kSparseNb + binShift] = Form( "axisNb_%s", lPIDNames[ d ].Data() );
            lSparseAxisNames[kSparsePtF + binShift] = Form( "axisPtf_%s", lPIDNames[ d ].Data() );
            lSparseAxisNames[kSparsePtB + binShift] = Form( "axisPtb_%s", lPIDNames[ d ].Data() );

            lSparseAxisNames[en_sparse_N2_f + binShift]     = Form( "axisN2_%s", lPIDNames[ d ].Data() );
            lSparseAxisNames[en_sparse_Nf_Nb + binShift]    = Form( "axisNf_Nb_%s", lPIDNames[ d ].Data() );
            lSparseAxisNames[en_sparse_Ptb_Nf + binShift]   = Form( "axisPtb_Nf_%s", lPIDNames[ d ].Data() );
            lSparseAxisNames[en_sparse_Pt2_f + binShift]    = Form( "axisPt2_f_%s", lPIDNames[ d ].Data() );
            lSparseAxisNames[en_sparse_Ptf_Ptb + binShift]  = Form( "axisPtf_Ptb_%s", lPIDNames[ d ].Data() );


            lSparseBins[kSparseNf + binShift ] = fMultBinsHor;
            lSparseXmin[kSparseNf + binShift ] = lowMultHor;
            lSparseXmax[kSparseNf + binShift ] = hiMultHor;
            lSparseBins[kSparseNb + binShift ] = fMultBinsVert;
            lSparseXmin[kSparseNb + binShift ] = lowMultVert;
            lSparseXmax[kSparseNb + binShift ] = hiMultVert;
            //}
            //for (Int_t d = 2; d < lSparseDim; ++d) {
            lSparseBins[kSparsePtF + binShift ] = fPtBins;
            lSparseXmin[kSparsePtF + binShift ] = fLoPt;
            lSparseXmax[kSparsePtF + binShift ] = fHiPt;
            lSparseBins[kSparsePtB + binShift ] = fPtBins;
            lSparseXmin[kSparsePtB + binShift ] = fLoPt;
            lSparseXmax[kSparsePtB + binShift ] = fHiPt;





            //}
            /*
                lSparseBins[en_sparse_Et_f + binShift ] = 500;
            lSparseXmin[en_sparse_Et_f + binShift ] = 0.2;
            lSparseXmax[en_sparse_Et_f + binShift ] = 2.7;
            lSparseBins[en_sparse_Et_b + binShift ] = 500;
            lSparseXmin[en_sparse_Et_b + binShift ] = 0.2;
            lSparseXmax[en_sparse_Et_b + binShift ] = 2.7;
*/

            lSparseBins[en_sparse_N2_f + binShift ] = (fMultBinsHor-1)*(fMultBinsHor-1)+1;
            lSparseXmin[en_sparse_N2_f + binShift ] = fLowMultHor*fLowMultHor-0.5; // ! use global mult without shift
            lSparseXmax[en_sparse_N2_f + binShift ] = fHiMultHor*fHiMultHor+0.5;
            //lSparseBins[en_sparse_N_b] = fMultBinsVert;
            //lSparseXmin[en_sparse_N_b] = lowMultVert;
            //lSparseXmax[en_sparse_N_b] = hiMultVert;
            lSparseBins[en_sparse_Nf_Nb + binShift ] = (fMultBinsHor-1)*(fMultBinsVert-1)+1;
            lSparseXmin[en_sparse_Nf_Nb + binShift ] = fLowMultHor*fLowMultVert-0.5;
            lSparseXmax[en_sparse_Nf_Nb + binShift ] = fHiMultHor*fHiMultVert+0.5;



            lSparseBins[en_sparse_Ptb_Nf + binShift ] = /*(fMultBinsHor-1)**/(10*fPtBins);//+1;
            lSparseXmin[en_sparse_Ptb_Nf + binShift ] = fLowMultHor*fLoPt-0.5;
            lSparseXmax[en_sparse_Ptb_Nf + binShift ] = fHiMultHor*fHiPt+0.5;

            lSparseBins[en_sparse_Pt2_f + binShift ] = (10*fPtBins);//*(fPtBins);//+1;
            lSparseXmin[en_sparse_Pt2_f + binShift ] = fLoPt*fLoPt;
            lSparseXmax[en_sparse_Pt2_f + binShift ] = fHiPt*fHiPt;

            lSparseBins[en_sparse_Ptf_Ptb + binShift ] = (10*fPtBins);//*(fPtBins)+1;
            lSparseXmin[en_sparse_Ptf_Ptb + binShift ] = fLoPt*fLoPt;
            lSparseXmax[en_sparse_Ptf_Ptb + binShift ] = fHiPt*fHiPt;

            /*
                lSparseBins[en_sparse_Nf_plus + binShift ] = fMultBinsHor;
            lSparseXmin[en_sparse_Nf_plus + binShift ] = lowMultHor;
            lSparseXmax[en_sparse_Nf_plus + binShift ] = hiMultHor;
                lSparseBins[en_sparse_Nf_minus + binShift ] = fMultBinsHor;
            lSparseXmin[en_sparse_Nf_minus + binShift ] = lowMultHor;
            lSparseXmax[en_sparse_Nf_minus + binShift ] = hiMultHor;

                lSparseBins[en_sparse_Nb_plus + binShift ] = fMultBinsVert;
            lSparseXmin[en_sparse_Nb_plus + binShift ] = lowMultVert;
            lSparseXmax[en_sparse_Nb_plus + binShift ] = hiMultVert;
                lSparseBins[en_sparse_Nb_minus + binShift ] = fMultBinsVert;
            lSparseXmin[en_sparse_Nb_minus + binShift ] = lowMultVert;
            lSparseXmax[en_sparse_Nb_minus + binShift ] = hiMultVert;

                lSparseBins[en_sparse_Nf_plus_Nb_minus + binShift ] = (fMultBinsHor-1)*(fMultBinsVert-1)+1;
            lSparseXmin[en_sparse_Nf_plus_Nb_minus + binShift ] = fLowMultHor*fLowMultVert-0.5;
            lSparseXmax[en_sparse_Nf_plus_Nb_minus + binShift ] = fHiMultHor*fHiMultVert+0.5;

                lSparseBins[en_sparse_Nb_plus_Nf_minus + binShift ] = (fMultBinsHor-1)*(fMultBinsVert-1);
            lSparseXmin[en_sparse_Nb_plus_Nf_minus + binShift ] = fLowMultHor*fLowMultVert-0.5;
            lSparseXmax[en_sparse_Nb_plus_Nf_minus + binShift ] = fHiMultHor*fHiMultVert+0.5;
        */
        }

        fHistClouds = new THnSparseD("cloudLRC", "cloudLRC", kSparseTotal*kSparsePIDtotal, lSparseBins, lSparseXmin, lSparseXmax);
        //end of cloud implementation

        //set axis names
        TAxis *lSparseAxis = 0x0;
        for ( Int_t d = 0; d < kSparseTotal*kSparsePIDtotal; ++d )
        {
            lSparseAxis = fHistClouds->GetAxis( d );
            lSparseAxis->SetNameTitle( lSparseAxisNames[d], lSparseAxisNames[d] );
        }


        delete [] lSparseBins;
        delete [] lSparseXmin;
        delete [] lSparseXmax;
        delete [] lSparseAxisNames;


        fOutList->Add(fHistSparseDimensionLabeling);
        fOutList->Add(fHistSparsePIDblocksLabeling);

        //    bool useSparse = false;

        // !!!!!! temp comment!
        fOutList->Add(fHistClouds);
    }


    fHistNN = new TH2D("NN","NN",fMultBinsHor, lowMultHor, hiMultHor,fMultBinsVert, lowMultVert, hiMultVert );
    fHistPtN = new TH2D("PtN","PtN",fMultBinsHor, lowMultHor, hiMultHor,fPtBins/* /fPtHistXaxisRebinFactor*/,fLoPt,fHiPt);
    fHistPtPt = new TH2D("PtPt","PtPt",fPtBins/fPtHistXaxisRebinFactor,fLoPt,fHiPt,fPtBins,fLoPt,fHiPt);
    fProfNberr = new TProfile("nber","nber",fMultBinsHor, lowMultHor, hiMultHor);
    fProfNberrPtPt = new TProfile("nberPtPt","nberPtPt",fPtBins/fPtHistXaxisRebinFactor,fLoPt,fHiPt);
    fProfdPtB = new TProfile("dPtB","Overal multievent Pt_Backward (first bin) Pt_Backward^2 (sec. bin) ",16,0.5,16.5);
    fProfTestLRC = new TProfile("TestLRC","Test LRC calculaion via TProfile",fMultBinsHor, lowMultHor, hiMultHor);

    fHistNfCentrality = new TH2D("NfCentrality","NfCentrality",fMultBinsHor, lowMultHor, hiMultHor,101,-1.01,100.01);
    fHistDifferenceNf = new TH2D("fHistDifferenceNf","Hist nF-nB;nF;nF-nB",fMultBinsHor, lowMultHor, hiMultHor,fMultBinsHor,-hiMultHor,hiMultHor);
    fHistDifferenceNb = new TH2D("fHistDifferenceNb","Hist nB-nF;nB;nB-nF",fMultBinsVert, lowMultVert, hiMultVert,fMultBinsVert,-hiMultVert,hiMultVert);

    // ---------- Adding data members to output list

    // Adding overal statistics

    //commented: to save memory
    //fOutList->Add(fHistPt);
    //fOutList->Add(fHistEta);

    //Adding LRC hists

    
    if (1)
    {
        fOutList->Add(fHistNN);
        fOutList->Add(fHistPtN);
        fOutList->Add(fHistPtPt);
    }
    fOutList->Add(fProfNberr);
    fOutList->Add(fProfNberrPtPt);
    fOutList->Add(fProfdPtB);
    fOutList->Add(fProfTestLRC);


    //Adding window statistics
    


    fOutList->Add(fHistNchForward);
    fOutList->Add(fHistNchBackward);
    fOutList->Add(fHistNchForwardPtPt);

    fOutList->Add(fHistPtForward);
    fOutList->Add(fHistPtBackward);

    fOutList->Add(fHistEtaForward);
    fOutList->Add(fHistEtaBackward);

    fOutList->Add(fHistPhiForward);
    fOutList->Add(fHistPhiBackward);

    fOutList->Add(fHistTracksChargeForward);
    fOutList->Add(fHistTracksChargeBackward);

    fOutList->Add(fHistTestPIDForward);
    fOutList->Add(fHistTestPIDBackward);

    //    fOutList->Add(fHistNfCentrality);
    
    
    //fOutList->Add(fHistDifferenceNf);
    //fOutList->Add(fHistDifferenceNb);

    // Adding status to dPtB

    fProfdPtB->Fill(3 , fStartForwardETA);
    fProfdPtB->Fill(4 , fEndForwardETA);
    fProfdPtB->Fill(5 , fStartBackwardETA);
    fProfdPtB->Fill(6 , fEndBackwardETA);
    fProfdPtB->Fill(7 , fStartForwardPhi);
    fProfdPtB->Fill(8 , fEndForwardPhi);
    fProfdPtB->Fill(9 , fStartBackwardPhi);
    fProfdPtB->Fill(10 , fEndBackwardPhi);




    fIsOnline = kTRUE;
    return kTRUE;
}
AliLRCProcess::~AliLRCProcess()
{
    //Destructor

}

// ---------------------------------------  Setters ------------------
void AliLRCProcess::SetShortDef()
{
    // Creating task and output container name
    char str[200];
    snprintf(str,200, "TaskLRCw%3.1fto%3.1fvs%3.1fto%3.1f",fStartForwardETA,fEndForwardETA,fStartBackwardETA,fEndBackwardETA);
    /*if ( fWhichParticleToProcess != kLRCany
        && (int)fWhichParticleToProcess > 0 && (int)fWhichParticleToProcess <= 6 ) //to avoid program falling
    {
        char str2[80];
        TString gBinParticleNames[6] = {"Other","Electron","Muon","Pion","Kaon", "Proton"};
        snprintf(str2,80, "%s_%s",str,gBinParticleNames[(int)fWhichParticleToProcess].Data());
        fShortDef= str2;
    }
    else*/
    fShortDef= str;

}

void AliLRCProcess::SetForwardWindow(Double_t StartETA,Double_t EndETA)
{
    //setter for the forward eta window
    fStartForwardETA=StartETA;
    fEndForwardETA=EndETA;
    SetShortDef();
}
void AliLRCProcess::SetBackwardWindow(Double_t StartETA,Double_t EndETA)
{
    //setter for the backward eta window
    fStartBackwardETA=StartETA;
    fEndBackwardETA=EndETA;
    SetShortDef();
}
void AliLRCProcess::SetETAWindows(Double_t _StartForwardETA,Double_t _EndForwardETA,Double_t _StartBakwardETA,Double_t _EndBakwardETA)
{
    //setter for the eta windows
    fStartForwardETA=_StartForwardETA;
    fEndForwardETA=_EndForwardETA;
    fStartBackwardETA=_StartBakwardETA;
    fEndBackwardETA=_EndBakwardETA;
    SetShortDef();
}
void AliLRCProcess::GetETAWindows(Double_t &_StartForwardETA,Double_t &_EndForwardETA,Double_t &_StartBakwardETA,Double_t &_EndBakwardETA)
{
    //getter for the eta windows
    _StartForwardETA    = fStartForwardETA;
    _EndForwardETA      = fEndForwardETA;
    _StartBakwardETA    = fStartBackwardETA;
    _EndBakwardETA      = fEndBackwardETA;
}

void AliLRCProcess::GetPhiWindows(Double_t &_StartForwardPhi,Double_t &_EndForwardPhi,Double_t &_StartBakwardPhi,Double_t &_EndBakwardPhi)
{
    //getter for the eta windows
    _StartForwardPhi    = fStartForwardPhi;
    _EndForwardPhi      = fEndForwardPhi;
    _StartBakwardPhi    = fStartBackwardPhi;
    _EndBakwardPhi      = fEndBackwardPhi;
}

void AliLRCProcess::SetParticleType( char* strForwardOrBackward, char* strPid )
{
    //cout << "hm! strForwardOrBackward = " << strForwardOrBackward
    //	<< ", strPid = " << strPid << endl;
    //cout << "before ae! fPidForward = " << fPidForward << ", fPidBackward = " << fPidBackward << endl;

    int lPid = -1;//kLRCany;
    if ( !strcmp( strPid, "pion") )
        lPid = 2;//kLRCpion;
    else if ( !strcmp( strPid, "kaon") )
        lPid = 3;//kLRCkaon;
    else if ( !strcmp( strPid, "proton") )
        lPid = 4;//kLRCproton;
    else if ( !strcmp( strPid, "knownpid") )
        lPid = 100;//will will histos if we KNOW PID! (not important which)

    //set pid for window
    if ( !strcmp( strForwardOrBackward, "fwd") )
        fPidForward = lPid;
    else if ( !strcmp( strForwardOrBackward, "bkwd") )
        fPidBackward = lPid;
    //cout << "ae! lPid = " << lPid << ", fPidForward = " << fPidForward << ", fPidBackward = " << fPidBackward << endl;
    //int aaaa;
    //cin>> aaaa;
}


void AliLRCProcess::SetHistPtRangeForwardWindowRebinFactor( Int_t ptHistXaxisRebinFactor )
{
    // Rebining for Pt histograms X-axis
    if(fIsOnline)
    {
        Printf("Can't change histos paramiters after InitDataMembers() was called! \n");
        return ;
    }
    fPtHistXaxisRebinFactor = ptHistXaxisRebinFactor;
}

void AliLRCProcess::SetHistPtRange(Double_t LoPt,Double_t HiPt,Int_t PtBins)
{
    // Sets Pt range and number of bins for Pt axis of histos
    if(fIsOnline)
    {
        Printf("Can't change histos paramiters after InitDataMembers() was called! \n");
        return ;
    }
    // Setter for Pt range and N bins in histos
    fLoPt=LoPt;
    fHiPt=HiPt;
    fPtBins=PtBins;
}
void AliLRCProcess::SetHistMultRange( Int_t whichWindow, Int_t LoMult,Int_t HiMult,Int_t MultBins)
{
    // Setter for multiplicity range and N bins in histos
    if ( whichWindow == 0 ) //set range for both windows
    {
        SetHistMultRangeHor( LoMult, HiMult, MultBins) ;
        SetHistMultRangeVert( LoMult, HiMult, MultBins) ;
    }
    else if ( whichWindow == 1 ) //for fwd
        SetHistMultRangeHor( LoMult, HiMult, MultBins) ;
    else if ( whichWindow == 2 ) //for bwd
        SetHistMultRangeVert( LoMult, HiMult, MultBins) ;
    /*

    if(fIsOnline)
    {
        Printf("Can't change histos paramiters after InitDataMembers() was called! \n");
        return ;
    }
    fLoMult=LoMult;
    fHiMult=HiMult;
    if(!MultBins)
    {
    fMultBins=fHiMult-fLoMult+1;
    }else
    {
    fMultBins=MultBins;
    }*/
}

void AliLRCProcess::SetHistMultRangeHor(Int_t LoMult,Int_t HiMult,Int_t MultBins)
{
    // Setter for multiplicity range and N bins in histos
    if(fIsOnline)
    {
        Printf("Can't change histos paramiters after InitDataMembers() was called! \n");
        return ;
    }
    fLowMultHor	= LoMult;
    fHiMultHor 	= HiMult;
    if(!MultBins)
    {
        fMultBinsHor = fHiMultHor-fLowMultHor+1;
    }else
    {
        fMultBinsHor = MultBins;
    }
}

void AliLRCProcess::SetHistMultRangeVert(Int_t LoMult,Int_t HiMult,Int_t MultBins)
{
    // Setter for multiplicity range and N bins in histos
    if(fIsOnline)
    {
        Printf("Can't change histos parameters after InitDataMembers() was called! \n");
        return ;
    }
    fLowMultVert	= LoMult;
    fHiMultVert 	= HiMult;
    if(!MultBins)
    {
        fMultBinsVert = fHiMultVert-fLowMultVert+1;
    }else
    {
        fMultBinsVert = MultBins;
    }
}

void AliLRCProcess::SetOutputSlotNumber(Int_t SlotNumber)
{
    //Sets number of output slot for LRCProcessor
    fOutputSlot=SlotNumber;
}

//________________________________________________________________________



TList*   AliLRCProcess::CreateOutput() const
{
    // Creates a link to output data TList
    return fOutList;
}

TString  AliLRCProcess::GetShortDef() const
{
    return fShortDef;
}

Int_t AliLRCProcess::GetOutputSlotNumber() const
{
    // Returns number of output slot for LRCProcessor
    return fOutputSlot;
}

void AliLRCProcess::StartEvent()
{
    // Open new Event for track by track event import
    if(fIsEventOpend)                     // Check if trying to open event more than once !
    {
        Printf("Event is already opened! Auto finishing ! \n");
//        cout<<fShortDef<<": event count = "<<fEventCount<<" ";
        Printf("NchF = %i,NchB = %i \n",fNchFw,fNchBw);

        FinishEvent();
    }
    if(!fIsOnline)                        // Autocreating histos if InitDataMembers was not called by hand
    {
        Printf("InitDataMembers was not called by hand ! Autocreating histos...\n");
        InitDataMembers();
    }

    fNchFw=0;
    fSumPtFw=0;
    fNchBw=0;
    fSumPtBw=0;
    fSumPtBw2=0;
    
    fNchFwPlus = 0;
    fNchBwPlus = 0;
    fNchFwMinus = 0;
    fNchBwMinus = 0;
    
    ZeroPidArrays();
        
    //fNchFwPtPt = 0;

    fIsEventOpend=kTRUE;
}
void AliLRCProcess::AddTrackForward(Double_t Pt, Double_t Eta ,Double_t Phi, Short_t Charge, Int_t particleType  )
{
    // Imports track to the event directly to Forward window
    if(!fIsEventOpend)
    {Printf("Event is not opened!\n");
        return;}

    //Bool_t lAddDecision = kFALSE;

    //if ( fPidForward == 100 ) //add particle if we know pid (i.e. particleType != -1)
    //{
    //if ( particleType != -1 )
    //{
    //	lAddDecision = kTRUE;
    //cout << "fill fwd with pid " << particleType << endl;
    //}
    //}
    //else if ( fPidForward != -1 ) //if we specify pid for this window - just check it
    //{
    //if ( particleType == fPidForward )
    //{
    //lAddDecision = kTRUE;
    //cout << "fill fwd with pid " << particleType << endl;
    //}
    //}
    //else
    //lAddDecision = kTRUE;

    //if ( !lAddDecision )
    //return;

    fHistTestPIDForward->Fill( particleType );

    fNchFw++;
    Charge > 0 ? fNchFwPlus++ : fNchFwMinus++;
    fSumPtFw+=Pt;
    fHistPtForward->Fill(Pt);
    fHistEtaForward->Fill(Eta);
    fHistPhiForward->Fill(Phi);

    //added 15.12.12
    fHistTracksChargeForward->Fill(Charge);
    
    //added 23.03
    for ( int pid = 0; pid < kSparsePIDtotal; pid++ )
    {
        if (   pid == kSparsePIDany //write ALL pid types
               ||
               ( pid == kSparsePIDdefined && particleType != -1 ) //write defined particles
               ||
               ( fCorrespondanceWithAliROOTpid[pid] == particleType ) //write not defined particles
               )
        {
            fNchFwPID[pid]++;
            Charge > 0 ? fNchFwPlusPID[pid]++ : fNchFwMinusPID[pid]++;
            fSumPtFwPID[pid] += Pt;
            if ( pid != kSparsePIDany )
            {
                Double_t lMass = 0;//AliPID::ParticleMass( particleType );
                fSumEtFwPID[pid] += sqrt( Pt*Pt + lMass*lMass ) ;
            }
        }
    }

    //netcharge part (July 2013)
    fHistNetChargeVsPtForward->Fill( Pt, Charge );
    if ( Charge > 0 )
        fHistPtPlusForward->Fill( Pt );
    else if ( Charge < 0 )
        fHistPtMinusForward->Fill( Pt );


}
void AliLRCProcess::AddTrackBackward(Double_t Pt, Double_t Eta ,Double_t Phi, Short_t Charge, Int_t particleType  )
{
    // Imports track to the event directly to Backward window
    if(!fIsEventOpend)
    {Printf("Event is not opened!\n");
        return;}

    /*Bool_t lAddDecision = kFALSE;

    if ( fPidBackward == 100 ) //add particle if we know pid (i.e. particleType != -1)
    {
        if ( particleType != -1 )
        {
            lAddDecision = kTRUE;
            //cout << "fill fwd with pid " << particleType << endl;
        }
    }
    else if ( fPidBackward != -1 ) //if we specify pid for this window - just check it
    {
        if ( particleType == fPidBackward )
        {
            lAddDecision = kTRUE;
            //cout << "fill fwd with pid " << particleType << endl;
        }
    }
    else
        lAddDecision = kTRUE;

    if ( !lAddDecision )
        return;
        */
    fHistTestPIDBackward->Fill( particleType );

    fNchBw++;
    Charge > 0 ? fNchBwPlus++ : fNchBwMinus++;
    fSumPtBw += Pt;
    fSumPtBw2 += Pt*Pt;
    fProfdPtB->Fill( 1, Pt );
    fProfdPtB->Fill( 2, Pt*Pt );
    fHistPtBackward->Fill( Pt );
    fHistEtaBackward->Fill( Eta );
    fHistPhiBackward->Fill( Phi );

    //added 15.12.12
    fHistTracksChargeBackward->Fill(Charge);

    //added 23.03
    for ( int pid = 0; pid < kSparsePIDtotal; pid++ )
    {
        if (   pid == kSparsePIDany //write ALL pid types
               ||
               ( pid == kSparsePIDdefined && particleType != -1 ) //write defined particles
               ||
               ( fCorrespondanceWithAliROOTpid[pid] == particleType )
               )
        {
            fNchBwPID[pid]++;
            Charge > 0 ? fNchBwPlusPID[pid]++ : fNchBwMinusPID[pid]++;
            fSumPtBwPID[pid] += Pt;
            if ( pid != kSparsePIDany )
            {
                Double_t lMass = 0;//AliPID::ParticleMass( particleType );
                fSumEtBwPID[pid] += sqrt( Pt*Pt + lMass*lMass ) ;
            }
            
        }
    }

    //netcharge part (July 2013)
    fHistNetChargeVsPtBackward->Fill( Pt, Charge );
    if ( Charge > 0 )
        fHistPtPlusBackward->Fill( Pt );
    else if ( Charge < 0 )
        fHistPtMinusBackward->Fill( Pt );

}



void AliLRCProcess::AddTrackPtEta(Double_t Pt, Double_t Eta ,Double_t Phi, Short_t Charge, Int_t particleType  )
{
    //cout << Pt << endl;


    //if particle type is different - ignore the track
    //if ( fWhichParticleToFill != -1 && ParticleType != fWhichParticleToFill )
    //	return;
    //Track by track event import :  Imports track to the event

    //cout << "fWhichParticleToProcess = " << fWhichParticleToProcess
    //	<< ", particleType = " << particleType << endl;
    if(!fIsEventOpend)
    {Printf("Event is not opened!\n");
        return;}

    //  Global track data
    fHistPt->Fill(Pt);
    fHistEta->Fill(Eta);

    //Bool_t lAddForwardDecision = kFALSE;
    //Bool_t lAddBackwardDecision = kFALSE;

    //Forward window
    if( ( fStartForwardETA < Eta ) && ( Eta < fEndForwardETA ) )
        if( IsPhiInRange( Phi, fStartForwardPhi, fEndForwardPhi) )//( fStartForwardPhi < Phi ) && ( Phi < fEndForwardPhi ) )
        {
            AddTrackForward( Pt, Eta, Phi, Charge, particleType );
            //if ( fPidFillCondition == kLRCpidForForwardOnly
            //	|| fPidFillCondition == kLRCpidForBoth )
            //if ( fPidForward != -1 )//kLRCany )
            //{
            //	if ( particleType == fPidForward )//kLRCpion )//particleType )
            //	{
            //		lAddForwardDecision = kTRUE;//AddTrackForward( Pt, Eta, Phi );
            //cout << "fill fwd with pid " << particleType << endl;
            //	}
            //}
            //else
            //	lAddForwardDecision = kTRUE;//AddTrackForward( Pt, Eta, Phi );
        }
    //if ( lAddForwardDecision )
    //{
    //	AddTrackForward( Pt, Eta, Phi, particleType );
    //	fHistTestPIDForward->Fill( particleType );
    //}

    //Backward window
    if( ( fStartBackwardETA < Eta ) && ( Eta < fEndBackwardETA ) )
        if (
                (
                    IsPhiInRange( Phi, fStartBackwardPhi, fEndBackwardPhi)  //( fStartBackwardPhi < Phi ) && ( Phi < fEndBackwardPhi )
                    )
                ||
                (
                    fDoubleSidedBackwardPhiWindow //if this option is true
                    && IsPhiInRange( Phi, fStartBackwardPhi + TMath::Pi(), fEndBackwardPhi + TMath::Pi() )  //
                    //&& ( fStartBackwardPhi + TMath::Pi() < Phi )
                    //&& ( Phi < fEndBackwardPhi + TMath::Pi() )
                    )
                )
        {
            AddTrackBackward( Pt, Eta, Phi, Charge, particleType );
            //if ( fPidFillCondition == kLRCpidForBackwardOnly
            //	|| fPidFillCondition == kLRCpidForBoth )
            //if ( fPidBackward != -1 )//kLRCany )
            //{
            //	if ( particleType == fPidBackward )//kLRCpion )//particleType )
            //	{
            //		lAddBackwardDecision = kTRUE;//AddTrackBackward( Pt, Eta, Phi );
            //cout << "fill bkwd with pid " << particleType << endl;
            //	}

            //}
            //else
            //	lAddBackwardDecision = kTRUE;//AddTrackBackward( Pt, Eta, Phi );
        }
    //if ( lAddBackwardDecision )
    //{
    //	AddTrackBackward( Pt, Eta, Phi, particleType );
    //	fHistTestPIDBackward->Fill( particleType );
    //}

}



void AliLRCProcess::AddTrackPtEtaMixing( Int_t winFB, Double_t Pt, Double_t Eta ,Double_t Phi, Short_t Charge, Int_t particleType  )
{
    // put track in F or B window using varible winFB
    if(!fIsEventOpend)
    {
        Printf("Event is not opened!\n");
        return;
    }

    //  Global track data
    fHistPt->Fill(Pt);
    fHistEta->Fill(Eta);


    //Forward window
    if( winFB == 0
            && ( fStartForwardETA < Eta ) && ( Eta < fEndForwardETA ) )
        if( IsPhiInRange( Phi, fStartForwardPhi, fEndForwardPhi) ) // (fStartForwardPhi < Phi ) && ( Phi < fEndForwardPhi ) )
        {
            AddTrackForward( Pt, Eta, Phi, Charge, particleType );
        }

    //Backward window
    if( winFB == 1
            && ( fStartBackwardETA < Eta ) && ( Eta < fEndBackwardETA ) )
        if (
                (
                    IsPhiInRange( Phi, fStartBackwardPhi, fEndBackwardPhi)  //( fStartBackwardPhi < Phi ) && ( Phi < fEndBackwardPhi )
                    )
                ||
                (
                    fDoubleSidedBackwardPhiWindow //if this option is true
                    && IsPhiInRange( Phi, fStartBackwardPhi + TMath::Pi(), fEndBackwardPhi + TMath::Pi() )
                    //&& ( fStartBackwardPhi + TMath::Pi() < Phi )
                    //&& ( Phi < fEndBackwardPhi + TMath::Pi() )
                    )
                )
        {
            AddTrackBackward( Pt, Eta, Phi, Charge, particleType );
        }


}

void AliLRCProcess::FinishEvent(Bool_t kDontCount)
{
    // Track by track event import : Close opened event and fill event summary histos

    if(!fIsEventOpend)
    {
        Printf("Event is not opened!\n");
        return;
    }
    if ( kDontCount ) //don't count this event! just ignore it
    {
        fIsEventOpend = kFALSE;
        return;
    }
    //fHistSparseDimensionLabeling->Fill(1);
    //Filling even-total data
    //cout << "filling" << endl;
    /*Double_t lCloudData[en_sparse_total*en_sparse_PID_total];
    lCloudData[en_sparse_N_f] = fNchFw;     //write Nf
    lCloudData[en_sparse_N_b] = fNchBw;     //write Nb
    lCloudData[en_sparse_N2_f] = fNchFw*fNchFw;     //write Nf^2
    lCloudData[en_sparse_Nf_Nb] = fNchFw*fNchBw;     //write Nb
    
    lCloudData[en_sparse_Pt_f] = 0; //fill bin 0, if don't have appropriate PtSum
    lCloudData[en_sparse_Pt_b] = 0; //fill bin 0, if don't have appropriate PtSum

    lCloudData[en_sparse_Nf_plus] = fNchFwPlus;
    lCloudData[en_sparse_Nf_minus] = fNchFwMinus;
    lCloudData[en_sparse_Nb_plus] = fNchBwPlus;
    lCloudData[en_sparse_Nb_minus] = fNchBwMinus;
    lCloudData[en_sparse_Nf_plus_Nb_minus] = fNchFwPlus * fNchBwMinus;
    lCloudData[en_sparse_Nb_plus_Nf_minus] = fNchBwPlus * fNchFwMinus; */
    
    fHistNN->Fill(fNchFw,fNchBw);

    if ( fUseAccumulatingHist )
    {
        fArrAccumulatedValues->Fill( en_arr_labels_NN_Nevents,   1                  );
        fArrAccumulatedValues->Fill( en_arr_labels_NN_Nf     ,   fNchFw             );
        fArrAccumulatedValues->Fill( en_arr_labels_NN_Nb     ,   fNchBw             );
        fArrAccumulatedValues->Fill( en_arr_labels_NN_N2_f   ,   fNchFw*fNchFw      );
        fArrAccumulatedValues->Fill( en_arr_labels_NN_Nf_Nb  ,   fNchFw*fNchBw      );
        fArrAccumulatedValues->Fill( en_arr_labels_NN_N2_b   ,   fNchBw*fNchBw      );
    }

    if( fNchBw != 0 )
    {
        fSumPtBw = fSumPtBw / fNchBw;
        //lCloudData[en_sparse_Pt_b] = fSumPtBw; //write <PtB>
        fProfTestLRC->Fill( fNchFw, fSumPtBw );
        fHistPtN->Fill( fNchFw, fSumPtBw );
        //cout << "fill PtN: fNchFw = " << fNchFw << ", fSumPtBw=" << fSumPtBw <<  endl;
        fProfNberr->Fill(fNchFw, 1.0 / fNchBw);

        if ( fUseAccumulatingHist )
        {
            fArrAccumulatedValues->Fill( en_arr_labels_PtN_Nevents,  1                  );
            fArrAccumulatedValues->Fill( en_arr_labels_PtN_Nf     ,  fNchFw             );
            fArrAccumulatedValues->Fill( en_arr_labels_PtN_PtB    ,  fSumPtBw           );
            fArrAccumulatedValues->Fill( en_arr_labels_PtN_N2_f   ,  fNchFw*fNchFw      );
            fArrAccumulatedValues->Fill( en_arr_labels_PtN_Ptb_Nf ,  fSumPtBw*fNchFw    );
        }

        if( fNchFw != 0 )
        {
            fSumPtFw = fSumPtFw / fNchFw;
            //lCloudData[en_sparse_Pt_f] = fSumPtFw; //write <PtF>
            fHistPtPt->Fill( fSumPtFw, fSumPtBw );
            fProfNberrPtPt->Fill( fSumPtFw, 1.0 / fNchBw );
            // dPtB for PtPt
            fProfdPtB->Fill( 15, fSumPtBw, fNchBw );
            fProfdPtB->Fill( 16, fSumPtBw2 / fNchBw, fNchBw );
            fHistNchForwardPtPt->Fill(fNchFw);

            if ( fUseAccumulatingHist )
            {
                fArrAccumulatedValues->Fill( en_arr_labels_PtPt_Nevents,   1                   );
                fArrAccumulatedValues->Fill( en_arr_labels_PtPt_PtF    ,   fSumPtFw            );
                fArrAccumulatedValues->Fill( en_arr_labels_PtPt_PtB    ,   fSumPtBw            );
                fArrAccumulatedValues->Fill( en_arr_labels_PtPt_Pt2_f  ,   fSumPtFw*fSumPtFw   );
                fArrAccumulatedValues->Fill( en_arr_labels_PtPt_Ptf_Ptb,   fSumPtBw*fSumPtFw   );
            }

        }
    }





    if ( fUseSparse )
    {
        Double_t lCloudData[kSparseTotal*kSparsePIDtotal];

        for (Int_t d = 0; d < kSparsePIDtotal; ++d)
        {
            Int_t binShift = kSparseTotal*d; //step over dimension set

            lCloudData[kSparseNf + binShift ] = fNchFwPID[d];     //write Nf
            lCloudData[kSparseNb + binShift ] = fNchBwPID[d];     //write Nb
            lCloudData[en_sparse_N2_f + binShift ] = fNchFwPID[d]*fNchFwPID[d];     //write Nf^2
            lCloudData[en_sparse_Nf_Nb + binShift ] = fNchFwPID[d]*fNchBwPID[d];     //write Nb

            lCloudData[kSparsePtF + binShift ] = 0; //fill bin 0, if don't have appropriate PtSum
            lCloudData[kSparsePtB + binShift ] = 0; //fill bin 0, if don't have appropriate PtSum

            lCloudData[en_sparse_Ptb_Nf + binShift ] = 0;
            lCloudData[en_sparse_Pt2_f + binShift ] = 0;
            lCloudData[en_sparse_Ptf_Ptb + binShift ] = 0;


            if( fNchBwPID[d] != 0 )
            {
                double lSumPtBwPID = fSumPtBwPID[d] / fNchBwPID[d];
                lCloudData[kSparsePtB + binShift ] = lSumPtBwPID; //write <PtB>

                fSumEtBwPID[d] = fSumEtBwPID[d] / fNchBwPID[d];
                //lCloudData[en_sparse_Et_b + binShift ] = fSumEtBwPID[d]; //write <PtB>
                lCloudData[en_sparse_Ptb_Nf + binShift ] = lSumPtBwPID * fNchFwPID[d];

                //fProfTestLRC->Fill( fNchFw, fSumPtBw );
                //fHistPtN->Fill( fNchFw, fSumPtBw );
                //cout << "fill PtN: fNchFw = " << fNchFw << ", fSumPtBw=" << fSumPtBw <<  endl;

                //fProfNberr->Fill(fNchFw, 1.0 / fNchBw);


                if( fNchFwPID[d] != 0 )
                {
                    double lSumPtFwPID = fSumPtFwPID[d] / fNchFwPID[d];
                    lCloudData[kSparsePtF + binShift ] = lSumPtFwPID; //write <PtF>

                    fSumEtFwPID[d] = fSumEtFwPID[d] / fNchFwPID[d];

                    lCloudData[en_sparse_Pt2_f + binShift ] = lSumPtFwPID * lSumPtFwPID;
                    lCloudData[en_sparse_Ptf_Ptb + binShift ] = lSumPtFwPID*lSumPtBwPID;

                    //lCloudData[en_sparse_Et_f + binShift ] = fSumEtFwPID[d]; //write <PtF>
                    //fHistPtPt->Fill( fSumPtFw, fSumPtBw );
                    //fProfNberrPtPt->Fill( fSumPtFw, 1.0 / fNchBw );
                    // dPtB for PtPt
                    //fProfdPtB->Fill( 15, fSumPtBw, fNchBw );
                    //fProfdPtB->Fill( 16, fSumPtBw2 / fNchBw, fNchBw );
                    //fHistNchForwardPtPt->Fill(fNchFw);

                }
            }
            /*
            lCloudData[en_sparse_Nf_plus + binShift ] = fNchFwPlusPID[d];
            lCloudData[en_sparse_Nf_minus + binShift ] = fNchFwMinusPID[d];
            lCloudData[en_sparse_Nb_plus + binShift ] = fNchBwPlusPID[d];
            lCloudData[en_sparse_Nb_minus + binShift ] = fNchBwMinusPID[d];
            lCloudData[en_sparse_Nf_plus_Nb_minus + binShift ] = fNchFwPlusPID[d] * fNchBwMinusPID[d];
            lCloudData[en_sparse_Nb_plus_Nf_minus + binShift ] = fNchBwPlusPID[d] * fNchFwMinusPID[d];
             */
        }

        //tmp (22.03): fill pid with fignya data
        /* for (Int_t d = 1; d < en_sparse_PID_total; ++d)
        {
            Int_t binShift = en_sparse_total*d;
            lCloudData[en_sparse_N_f + binShift ] = 1+d;     //write Nf
            lCloudData[en_sparse_N_b + binShift ] = 2+d;     //write Nb
            lCloudData[en_sparse_N2_f + binShift ] = 3+d;     //write Nf^2
            lCloudData[en_sparse_Nf_Nb + binShift ] = 4+d;     //write Nb

            lCloudData[en_sparse_Pt_f + binShift ] = 5+d; //fill bin 0, if don't have appropriate PtSum
            lCloudData[en_sparse_Pt_b + binShift ] = 6+d; //fill bin 0, if don't have appropriate PtSum

            lCloudData[en_sparse_Nf_plus + binShift ] = 7+d;
            lCloudData[en_sparse_Nf_minus + binShift ] = 8+d;
            lCloudData[en_sparse_Nb_plus + binShift ] = 9+d;
            lCloudData[en_sparse_Nb_minus + binShift ] = 10+d;
            lCloudData[en_sparse_Nf_plus_Nb_minus + binShift ] = 11+d;
            lCloudData[en_sparse_Nb_plus_Nf_minus + binShift ] = 12+d;
        }
    */

        //    cout << "before filling" << endl;
        fHistClouds->Fill( lCloudData ); //fill sparse hist with Nf, Nb, <PtF>, <PtB>
        //        cout << "filled." << endl;
    }




    //additional info-hist
    if ( fNchFw > 0 || fNchBw > 0 )
    {
        Double_t lAvMult = ( fNchFw + fNchBw ) / 2.;
        fHistDifferenceNf->Fill( fNchFw, ( fNchFw-fNchBw ) / lAvMult );
        fHistDifferenceNb->Fill( fNchBw, ( fNchBw-fNchFw ) / lAvMult);
    }

    //cout << "n particles: " << fNchFw << " , Back = " << fNchBw << endl;
    //cout << "fHistNN: " << fHistNN->GetEntries() <<  endl;
    //cout << "mean= " << fHistNN->GetMean() <<  endl;


    fHistNchForward->Fill(fNchFw);
    fHistNchBackward->Fill(fNchBw);

    fEventCount++;
    fIsEventOpend = kFALSE;
    
    //fill nf-centr plot
    fHistNfCentrality->Fill( fNchFw, fEventCentrality );
    
    //cout<<fShortDef<<": event count = "<<fEventCount<<" ";
    //	 Printf("NchF = %i,NchB = %i",fNchFw,fNchBw);
}

Bool_t AliLRCProcess::IsPhiInRange( Double_t phi, Double_t phiBoundMin, Double_t phiBoundMax )
{
    if ( ( phiBoundMin < phi ) && ( phi < phiBoundMax ) )
        return kTRUE;

    //when bound is more than 2pi - check phi+2pi!
    phi += 2 * TMath::Pi();
    if ( ( phiBoundMin < phi ) && ( phi < phiBoundMax ) )
        return kTRUE;

    return kFALSE; //phi not in range
}

void AliLRCProcess::SetCorrespondanceWithAliROOTpid()
{
    fCorrespondanceWithAliROOTpid[kSparsePIDany] = kSparsePIDany;
    fCorrespondanceWithAliROOTpid[kSparsePIDdefined] = -1000;
    fCorrespondanceWithAliROOTpid[kSparsePIDpion] = 2;
    fCorrespondanceWithAliROOTpid[kSparsePIDkaon] = 3;
    fCorrespondanceWithAliROOTpid[kSparsePIDproton] = 4;
}

void AliLRCProcess::ZeroPidArrays()
{
    //added 23.03
    for ( int pid = 0; pid < kSparsePIDtotal; pid++ )
    {
        fNchFwPID[pid] = 0;
        fNchFwPlusPID[pid] = 0;
        fNchFwMinusPID[pid] = 0;
        fSumPtFwPID[pid] = 0;
        fSumEtFwPID[pid] = 0;

        fNchBwPID[pid] = 0;
        fNchBwPlusPID[pid] = 0;
        fNchBwMinusPID[pid] = 0;
        fSumPtBwPID[pid] = 0;
        fSumEtBwPID[pid] = 0;
    }
}
 AliLRCProcess.cxx:1
 AliLRCProcess.cxx:2
 AliLRCProcess.cxx:3
 AliLRCProcess.cxx:4
 AliLRCProcess.cxx:5
 AliLRCProcess.cxx:6
 AliLRCProcess.cxx:7
 AliLRCProcess.cxx:8
 AliLRCProcess.cxx:9
 AliLRCProcess.cxx:10
 AliLRCProcess.cxx:11
 AliLRCProcess.cxx:12
 AliLRCProcess.cxx:13
 AliLRCProcess.cxx:14
 AliLRCProcess.cxx:15
 AliLRCProcess.cxx:16
 AliLRCProcess.cxx:17
 AliLRCProcess.cxx:18
 AliLRCProcess.cxx:19
 AliLRCProcess.cxx:20
 AliLRCProcess.cxx:21
 AliLRCProcess.cxx:22
 AliLRCProcess.cxx:23
 AliLRCProcess.cxx:24
 AliLRCProcess.cxx:25
 AliLRCProcess.cxx:26
 AliLRCProcess.cxx:27
 AliLRCProcess.cxx:28
 AliLRCProcess.cxx:29
 AliLRCProcess.cxx:30
 AliLRCProcess.cxx:31
 AliLRCProcess.cxx:32
 AliLRCProcess.cxx:33
 AliLRCProcess.cxx:34
 AliLRCProcess.cxx:35
 AliLRCProcess.cxx:36
 AliLRCProcess.cxx:37
 AliLRCProcess.cxx:38
 AliLRCProcess.cxx:39
 AliLRCProcess.cxx:40
 AliLRCProcess.cxx:41
 AliLRCProcess.cxx:42
 AliLRCProcess.cxx:43
 AliLRCProcess.cxx:44
 AliLRCProcess.cxx:45
 AliLRCProcess.cxx:46
 AliLRCProcess.cxx:47
 AliLRCProcess.cxx:48
 AliLRCProcess.cxx:49
 AliLRCProcess.cxx:50
 AliLRCProcess.cxx:51
 AliLRCProcess.cxx:52
 AliLRCProcess.cxx:53
 AliLRCProcess.cxx:54
 AliLRCProcess.cxx:55
 AliLRCProcess.cxx:56
 AliLRCProcess.cxx:57
 AliLRCProcess.cxx:58
 AliLRCProcess.cxx:59
 AliLRCProcess.cxx:60
 AliLRCProcess.cxx:61
 AliLRCProcess.cxx:62
 AliLRCProcess.cxx:63
 AliLRCProcess.cxx:64
 AliLRCProcess.cxx:65
 AliLRCProcess.cxx:66
 AliLRCProcess.cxx:67
 AliLRCProcess.cxx:68
 AliLRCProcess.cxx:69
 AliLRCProcess.cxx:70
 AliLRCProcess.cxx:71
 AliLRCProcess.cxx:72
 AliLRCProcess.cxx:73
 AliLRCProcess.cxx:74
 AliLRCProcess.cxx:75
 AliLRCProcess.cxx:76
 AliLRCProcess.cxx:77
 AliLRCProcess.cxx:78
 AliLRCProcess.cxx:79
 AliLRCProcess.cxx:80
 AliLRCProcess.cxx:81
 AliLRCProcess.cxx:82
 AliLRCProcess.cxx:83
 AliLRCProcess.cxx:84
 AliLRCProcess.cxx:85
 AliLRCProcess.cxx:86
 AliLRCProcess.cxx:87
 AliLRCProcess.cxx:88
 AliLRCProcess.cxx:89
 AliLRCProcess.cxx:90
 AliLRCProcess.cxx:91
 AliLRCProcess.cxx:92
 AliLRCProcess.cxx:93
 AliLRCProcess.cxx:94
 AliLRCProcess.cxx:95
 AliLRCProcess.cxx:96
 AliLRCProcess.cxx:97
 AliLRCProcess.cxx:98
 AliLRCProcess.cxx:99
 AliLRCProcess.cxx:100
 AliLRCProcess.cxx:101
 AliLRCProcess.cxx:102
 AliLRCProcess.cxx:103
 AliLRCProcess.cxx:104
 AliLRCProcess.cxx:105
 AliLRCProcess.cxx:106
 AliLRCProcess.cxx:107
 AliLRCProcess.cxx:108
 AliLRCProcess.cxx:109
 AliLRCProcess.cxx:110
 AliLRCProcess.cxx:111
 AliLRCProcess.cxx:112
 AliLRCProcess.cxx:113
 AliLRCProcess.cxx:114
 AliLRCProcess.cxx:115
 AliLRCProcess.cxx:116
 AliLRCProcess.cxx:117
 AliLRCProcess.cxx:118
 AliLRCProcess.cxx:119
 AliLRCProcess.cxx:120
 AliLRCProcess.cxx:121
 AliLRCProcess.cxx:122
 AliLRCProcess.cxx:123
 AliLRCProcess.cxx:124
 AliLRCProcess.cxx:125
 AliLRCProcess.cxx:126
 AliLRCProcess.cxx:127
 AliLRCProcess.cxx:128
 AliLRCProcess.cxx:129
 AliLRCProcess.cxx:130
 AliLRCProcess.cxx:131
 AliLRCProcess.cxx:132
 AliLRCProcess.cxx:133
 AliLRCProcess.cxx:134
 AliLRCProcess.cxx:135
 AliLRCProcess.cxx:136
 AliLRCProcess.cxx:137
 AliLRCProcess.cxx:138
 AliLRCProcess.cxx:139
 AliLRCProcess.cxx:140
 AliLRCProcess.cxx:141
 AliLRCProcess.cxx:142
 AliLRCProcess.cxx:143
 AliLRCProcess.cxx:144
 AliLRCProcess.cxx:145
 AliLRCProcess.cxx:146
 AliLRCProcess.cxx:147
 AliLRCProcess.cxx:148
 AliLRCProcess.cxx:149
 AliLRCProcess.cxx:150
 AliLRCProcess.cxx:151
 AliLRCProcess.cxx:152
 AliLRCProcess.cxx:153
 AliLRCProcess.cxx:154
 AliLRCProcess.cxx:155
 AliLRCProcess.cxx:156
 AliLRCProcess.cxx:157
 AliLRCProcess.cxx:158
 AliLRCProcess.cxx:159
 AliLRCProcess.cxx:160
 AliLRCProcess.cxx:161
 AliLRCProcess.cxx:162
 AliLRCProcess.cxx:163
 AliLRCProcess.cxx:164
 AliLRCProcess.cxx:165
 AliLRCProcess.cxx:166
 AliLRCProcess.cxx:167
 AliLRCProcess.cxx:168
 AliLRCProcess.cxx:169
 AliLRCProcess.cxx:170
 AliLRCProcess.cxx:171
 AliLRCProcess.cxx:172
 AliLRCProcess.cxx:173
 AliLRCProcess.cxx:174
 AliLRCProcess.cxx:175
 AliLRCProcess.cxx:176
 AliLRCProcess.cxx:177
 AliLRCProcess.cxx:178
 AliLRCProcess.cxx:179
 AliLRCProcess.cxx:180
 AliLRCProcess.cxx:181
 AliLRCProcess.cxx:182
 AliLRCProcess.cxx:183
 AliLRCProcess.cxx:184
 AliLRCProcess.cxx:185
 AliLRCProcess.cxx:186
 AliLRCProcess.cxx:187
 AliLRCProcess.cxx:188
 AliLRCProcess.cxx:189
 AliLRCProcess.cxx:190
 AliLRCProcess.cxx:191
 AliLRCProcess.cxx:192
 AliLRCProcess.cxx:193
 AliLRCProcess.cxx:194
 AliLRCProcess.cxx:195
 AliLRCProcess.cxx:196
 AliLRCProcess.cxx:197
 AliLRCProcess.cxx:198
 AliLRCProcess.cxx:199
 AliLRCProcess.cxx:200
 AliLRCProcess.cxx:201
 AliLRCProcess.cxx:202
 AliLRCProcess.cxx:203
 AliLRCProcess.cxx:204
 AliLRCProcess.cxx:205
 AliLRCProcess.cxx:206
 AliLRCProcess.cxx:207
 AliLRCProcess.cxx:208
 AliLRCProcess.cxx:209
 AliLRCProcess.cxx:210
 AliLRCProcess.cxx:211
 AliLRCProcess.cxx:212
 AliLRCProcess.cxx:213
 AliLRCProcess.cxx:214
 AliLRCProcess.cxx:215
 AliLRCProcess.cxx:216
 AliLRCProcess.cxx:217
 AliLRCProcess.cxx:218
 AliLRCProcess.cxx:219
 AliLRCProcess.cxx:220
 AliLRCProcess.cxx:221
 AliLRCProcess.cxx:222
 AliLRCProcess.cxx:223
 AliLRCProcess.cxx:224
 AliLRCProcess.cxx:225
 AliLRCProcess.cxx:226
 AliLRCProcess.cxx:227
 AliLRCProcess.cxx:228
 AliLRCProcess.cxx:229
 AliLRCProcess.cxx:230
 AliLRCProcess.cxx:231
 AliLRCProcess.cxx:232
 AliLRCProcess.cxx:233
 AliLRCProcess.cxx:234
 AliLRCProcess.cxx:235
 AliLRCProcess.cxx:236
 AliLRCProcess.cxx:237
 AliLRCProcess.cxx:238
 AliLRCProcess.cxx:239
 AliLRCProcess.cxx:240
 AliLRCProcess.cxx:241
 AliLRCProcess.cxx:242
 AliLRCProcess.cxx:243
 AliLRCProcess.cxx:244
 AliLRCProcess.cxx:245
 AliLRCProcess.cxx:246
 AliLRCProcess.cxx:247
 AliLRCProcess.cxx:248
 AliLRCProcess.cxx:249
 AliLRCProcess.cxx:250
 AliLRCProcess.cxx:251
 AliLRCProcess.cxx:252
 AliLRCProcess.cxx:253
 AliLRCProcess.cxx:254
 AliLRCProcess.cxx:255
 AliLRCProcess.cxx:256
 AliLRCProcess.cxx:257
 AliLRCProcess.cxx:258
 AliLRCProcess.cxx:259
 AliLRCProcess.cxx:260
 AliLRCProcess.cxx:261
 AliLRCProcess.cxx:262
 AliLRCProcess.cxx:263
 AliLRCProcess.cxx:264
 AliLRCProcess.cxx:265
 AliLRCProcess.cxx:266
 AliLRCProcess.cxx:267
 AliLRCProcess.cxx:268
 AliLRCProcess.cxx:269
 AliLRCProcess.cxx:270
 AliLRCProcess.cxx:271
 AliLRCProcess.cxx:272
 AliLRCProcess.cxx:273
 AliLRCProcess.cxx:274
 AliLRCProcess.cxx:275
 AliLRCProcess.cxx:276
 AliLRCProcess.cxx:277
 AliLRCProcess.cxx:278
 AliLRCProcess.cxx:279
 AliLRCProcess.cxx:280
 AliLRCProcess.cxx:281
 AliLRCProcess.cxx:282
 AliLRCProcess.cxx:283
 AliLRCProcess.cxx:284
 AliLRCProcess.cxx:285
 AliLRCProcess.cxx:286
 AliLRCProcess.cxx:287
 AliLRCProcess.cxx:288
 AliLRCProcess.cxx:289
 AliLRCProcess.cxx:290
 AliLRCProcess.cxx:291
 AliLRCProcess.cxx:292
 AliLRCProcess.cxx:293
 AliLRCProcess.cxx:294
 AliLRCProcess.cxx:295
 AliLRCProcess.cxx:296
 AliLRCProcess.cxx:297
 AliLRCProcess.cxx:298
 AliLRCProcess.cxx:299
 AliLRCProcess.cxx:300
 AliLRCProcess.cxx:301
 AliLRCProcess.cxx:302
 AliLRCProcess.cxx:303
 AliLRCProcess.cxx:304
 AliLRCProcess.cxx:305
 AliLRCProcess.cxx:306
 AliLRCProcess.cxx:307
 AliLRCProcess.cxx:308
 AliLRCProcess.cxx:309
 AliLRCProcess.cxx:310
 AliLRCProcess.cxx:311
 AliLRCProcess.cxx:312
 AliLRCProcess.cxx:313
 AliLRCProcess.cxx:314
 AliLRCProcess.cxx:315
 AliLRCProcess.cxx:316
 AliLRCProcess.cxx:317
 AliLRCProcess.cxx:318
 AliLRCProcess.cxx:319
 AliLRCProcess.cxx:320
 AliLRCProcess.cxx:321
 AliLRCProcess.cxx:322
 AliLRCProcess.cxx:323
 AliLRCProcess.cxx:324
 AliLRCProcess.cxx:325
 AliLRCProcess.cxx:326
 AliLRCProcess.cxx:327
 AliLRCProcess.cxx:328
 AliLRCProcess.cxx:329
 AliLRCProcess.cxx:330
 AliLRCProcess.cxx:331
 AliLRCProcess.cxx:332
 AliLRCProcess.cxx:333
 AliLRCProcess.cxx:334
 AliLRCProcess.cxx:335
 AliLRCProcess.cxx:336
 AliLRCProcess.cxx:337
 AliLRCProcess.cxx:338
 AliLRCProcess.cxx:339
 AliLRCProcess.cxx:340
 AliLRCProcess.cxx:341
 AliLRCProcess.cxx:342
 AliLRCProcess.cxx:343
 AliLRCProcess.cxx:344
 AliLRCProcess.cxx:345
 AliLRCProcess.cxx:346
 AliLRCProcess.cxx:347
 AliLRCProcess.cxx:348
 AliLRCProcess.cxx:349
 AliLRCProcess.cxx:350
 AliLRCProcess.cxx:351
 AliLRCProcess.cxx:352
 AliLRCProcess.cxx:353
 AliLRCProcess.cxx:354
 AliLRCProcess.cxx:355
 AliLRCProcess.cxx:356
 AliLRCProcess.cxx:357
 AliLRCProcess.cxx:358
 AliLRCProcess.cxx:359
 AliLRCProcess.cxx:360
 AliLRCProcess.cxx:361
 AliLRCProcess.cxx:362
 AliLRCProcess.cxx:363
 AliLRCProcess.cxx:364
 AliLRCProcess.cxx:365
 AliLRCProcess.cxx:366
 AliLRCProcess.cxx:367
 AliLRCProcess.cxx:368
 AliLRCProcess.cxx:369
 AliLRCProcess.cxx:370
 AliLRCProcess.cxx:371
 AliLRCProcess.cxx:372
 AliLRCProcess.cxx:373
 AliLRCProcess.cxx:374
 AliLRCProcess.cxx:375
 AliLRCProcess.cxx:376
 AliLRCProcess.cxx:377
 AliLRCProcess.cxx:378
 AliLRCProcess.cxx:379
 AliLRCProcess.cxx:380
 AliLRCProcess.cxx:381
 AliLRCProcess.cxx:382
 AliLRCProcess.cxx:383
 AliLRCProcess.cxx:384
 AliLRCProcess.cxx:385
 AliLRCProcess.cxx:386
 AliLRCProcess.cxx:387
 AliLRCProcess.cxx:388
 AliLRCProcess.cxx:389
 AliLRCProcess.cxx:390
 AliLRCProcess.cxx:391
 AliLRCProcess.cxx:392
 AliLRCProcess.cxx:393
 AliLRCProcess.cxx:394
 AliLRCProcess.cxx:395
 AliLRCProcess.cxx:396
 AliLRCProcess.cxx:397
 AliLRCProcess.cxx:398
 AliLRCProcess.cxx:399
 AliLRCProcess.cxx:400
 AliLRCProcess.cxx:401
 AliLRCProcess.cxx:402
 AliLRCProcess.cxx:403
 AliLRCProcess.cxx:404
 AliLRCProcess.cxx:405
 AliLRCProcess.cxx:406
 AliLRCProcess.cxx:407
 AliLRCProcess.cxx:408
 AliLRCProcess.cxx:409
 AliLRCProcess.cxx:410
 AliLRCProcess.cxx:411
 AliLRCProcess.cxx:412
 AliLRCProcess.cxx:413
 AliLRCProcess.cxx:414
 AliLRCProcess.cxx:415
 AliLRCProcess.cxx:416
 AliLRCProcess.cxx:417
 AliLRCProcess.cxx:418
 AliLRCProcess.cxx:419
 AliLRCProcess.cxx:420
 AliLRCProcess.cxx:421
 AliLRCProcess.cxx:422
 AliLRCProcess.cxx:423
 AliLRCProcess.cxx:424
 AliLRCProcess.cxx:425
 AliLRCProcess.cxx:426
 AliLRCProcess.cxx:427
 AliLRCProcess.cxx:428
 AliLRCProcess.cxx:429
 AliLRCProcess.cxx:430
 AliLRCProcess.cxx:431
 AliLRCProcess.cxx:432
 AliLRCProcess.cxx:433
 AliLRCProcess.cxx:434
 AliLRCProcess.cxx:435
 AliLRCProcess.cxx:436
 AliLRCProcess.cxx:437
 AliLRCProcess.cxx:438
 AliLRCProcess.cxx:439
 AliLRCProcess.cxx:440
 AliLRCProcess.cxx:441
 AliLRCProcess.cxx:442
 AliLRCProcess.cxx:443
 AliLRCProcess.cxx:444
 AliLRCProcess.cxx:445
 AliLRCProcess.cxx:446
 AliLRCProcess.cxx:447
 AliLRCProcess.cxx:448
 AliLRCProcess.cxx:449
 AliLRCProcess.cxx:450
 AliLRCProcess.cxx:451
 AliLRCProcess.cxx:452
 AliLRCProcess.cxx:453
 AliLRCProcess.cxx:454
 AliLRCProcess.cxx:455
 AliLRCProcess.cxx:456
 AliLRCProcess.cxx:457
 AliLRCProcess.cxx:458
 AliLRCProcess.cxx:459
 AliLRCProcess.cxx:460
 AliLRCProcess.cxx:461
 AliLRCProcess.cxx:462
 AliLRCProcess.cxx:463
 AliLRCProcess.cxx:464
 AliLRCProcess.cxx:465
 AliLRCProcess.cxx:466
 AliLRCProcess.cxx:467
 AliLRCProcess.cxx:468
 AliLRCProcess.cxx:469
 AliLRCProcess.cxx:470
 AliLRCProcess.cxx:471
 AliLRCProcess.cxx:472
 AliLRCProcess.cxx:473
 AliLRCProcess.cxx:474
 AliLRCProcess.cxx:475
 AliLRCProcess.cxx:476
 AliLRCProcess.cxx:477
 AliLRCProcess.cxx:478
 AliLRCProcess.cxx:479
 AliLRCProcess.cxx:480
 AliLRCProcess.cxx:481
 AliLRCProcess.cxx:482
 AliLRCProcess.cxx:483
 AliLRCProcess.cxx:484
 AliLRCProcess.cxx:485
 AliLRCProcess.cxx:486
 AliLRCProcess.cxx:487
 AliLRCProcess.cxx:488
 AliLRCProcess.cxx:489
 AliLRCProcess.cxx:490
 AliLRCProcess.cxx:491
 AliLRCProcess.cxx:492
 AliLRCProcess.cxx:493
 AliLRCProcess.cxx:494
 AliLRCProcess.cxx:495
 AliLRCProcess.cxx:496
 AliLRCProcess.cxx:497
 AliLRCProcess.cxx:498
 AliLRCProcess.cxx:499
 AliLRCProcess.cxx:500
 AliLRCProcess.cxx:501
 AliLRCProcess.cxx:502
 AliLRCProcess.cxx:503
 AliLRCProcess.cxx:504
 AliLRCProcess.cxx:505
 AliLRCProcess.cxx:506
 AliLRCProcess.cxx:507
 AliLRCProcess.cxx:508
 AliLRCProcess.cxx:509
 AliLRCProcess.cxx:510
 AliLRCProcess.cxx:511
 AliLRCProcess.cxx:512
 AliLRCProcess.cxx:513
 AliLRCProcess.cxx:514
 AliLRCProcess.cxx:515
 AliLRCProcess.cxx:516
 AliLRCProcess.cxx:517
 AliLRCProcess.cxx:518
 AliLRCProcess.cxx:519
 AliLRCProcess.cxx:520
 AliLRCProcess.cxx:521
 AliLRCProcess.cxx:522
 AliLRCProcess.cxx:523
 AliLRCProcess.cxx:524
 AliLRCProcess.cxx:525
 AliLRCProcess.cxx:526
 AliLRCProcess.cxx:527
 AliLRCProcess.cxx:528
 AliLRCProcess.cxx:529
 AliLRCProcess.cxx:530
 AliLRCProcess.cxx:531
 AliLRCProcess.cxx:532
 AliLRCProcess.cxx:533
 AliLRCProcess.cxx:534
 AliLRCProcess.cxx:535
 AliLRCProcess.cxx:536
 AliLRCProcess.cxx:537
 AliLRCProcess.cxx:538
 AliLRCProcess.cxx:539
 AliLRCProcess.cxx:540
 AliLRCProcess.cxx:541
 AliLRCProcess.cxx:542
 AliLRCProcess.cxx:543
 AliLRCProcess.cxx:544
 AliLRCProcess.cxx:545
 AliLRCProcess.cxx:546
 AliLRCProcess.cxx:547
 AliLRCProcess.cxx:548
 AliLRCProcess.cxx:549
 AliLRCProcess.cxx:550
 AliLRCProcess.cxx:551
 AliLRCProcess.cxx:552
 AliLRCProcess.cxx:553
 AliLRCProcess.cxx:554
 AliLRCProcess.cxx:555
 AliLRCProcess.cxx:556
 AliLRCProcess.cxx:557
 AliLRCProcess.cxx:558
 AliLRCProcess.cxx:559
 AliLRCProcess.cxx:560
 AliLRCProcess.cxx:561
 AliLRCProcess.cxx:562
 AliLRCProcess.cxx:563
 AliLRCProcess.cxx:564
 AliLRCProcess.cxx:565
 AliLRCProcess.cxx:566
 AliLRCProcess.cxx:567
 AliLRCProcess.cxx:568
 AliLRCProcess.cxx:569
 AliLRCProcess.cxx:570
 AliLRCProcess.cxx:571
 AliLRCProcess.cxx:572
 AliLRCProcess.cxx:573
 AliLRCProcess.cxx:574
 AliLRCProcess.cxx:575
 AliLRCProcess.cxx:576
 AliLRCProcess.cxx:577
 AliLRCProcess.cxx:578
 AliLRCProcess.cxx:579
 AliLRCProcess.cxx:580
 AliLRCProcess.cxx:581
 AliLRCProcess.cxx:582
 AliLRCProcess.cxx:583
 AliLRCProcess.cxx:584
 AliLRCProcess.cxx:585
 AliLRCProcess.cxx:586
 AliLRCProcess.cxx:587
 AliLRCProcess.cxx:588
 AliLRCProcess.cxx:589
 AliLRCProcess.cxx:590
 AliLRCProcess.cxx:591
 AliLRCProcess.cxx:592
 AliLRCProcess.cxx:593
 AliLRCProcess.cxx:594
 AliLRCProcess.cxx:595
 AliLRCProcess.cxx:596
 AliLRCProcess.cxx:597
 AliLRCProcess.cxx:598
 AliLRCProcess.cxx:599
 AliLRCProcess.cxx:600
 AliLRCProcess.cxx:601
 AliLRCProcess.cxx:602
 AliLRCProcess.cxx:603
 AliLRCProcess.cxx:604
 AliLRCProcess.cxx:605
 AliLRCProcess.cxx:606
 AliLRCProcess.cxx:607
 AliLRCProcess.cxx:608
 AliLRCProcess.cxx:609
 AliLRCProcess.cxx:610
 AliLRCProcess.cxx:611
 AliLRCProcess.cxx:612
 AliLRCProcess.cxx:613
 AliLRCProcess.cxx:614
 AliLRCProcess.cxx:615
 AliLRCProcess.cxx:616
 AliLRCProcess.cxx:617
 AliLRCProcess.cxx:618
 AliLRCProcess.cxx:619
 AliLRCProcess.cxx:620
 AliLRCProcess.cxx:621
 AliLRCProcess.cxx:622
 AliLRCProcess.cxx:623
 AliLRCProcess.cxx:624
 AliLRCProcess.cxx:625
 AliLRCProcess.cxx:626
 AliLRCProcess.cxx:627
 AliLRCProcess.cxx:628
 AliLRCProcess.cxx:629
 AliLRCProcess.cxx:630
 AliLRCProcess.cxx:631
 AliLRCProcess.cxx:632
 AliLRCProcess.cxx:633
 AliLRCProcess.cxx:634
 AliLRCProcess.cxx:635
 AliLRCProcess.cxx:636
 AliLRCProcess.cxx:637
 AliLRCProcess.cxx:638
 AliLRCProcess.cxx:639
 AliLRCProcess.cxx:640
 AliLRCProcess.cxx:641
 AliLRCProcess.cxx:642
 AliLRCProcess.cxx:643
 AliLRCProcess.cxx:644
 AliLRCProcess.cxx:645
 AliLRCProcess.cxx:646
 AliLRCProcess.cxx:647
 AliLRCProcess.cxx:648
 AliLRCProcess.cxx:649
 AliLRCProcess.cxx:650
 AliLRCProcess.cxx:651
 AliLRCProcess.cxx:652
 AliLRCProcess.cxx:653
 AliLRCProcess.cxx:654
 AliLRCProcess.cxx:655
 AliLRCProcess.cxx:656
 AliLRCProcess.cxx:657
 AliLRCProcess.cxx:658
 AliLRCProcess.cxx:659
 AliLRCProcess.cxx:660
 AliLRCProcess.cxx:661
 AliLRCProcess.cxx:662
 AliLRCProcess.cxx:663
 AliLRCProcess.cxx:664
 AliLRCProcess.cxx:665
 AliLRCProcess.cxx:666
 AliLRCProcess.cxx:667
 AliLRCProcess.cxx:668
 AliLRCProcess.cxx:669
 AliLRCProcess.cxx:670
 AliLRCProcess.cxx:671
 AliLRCProcess.cxx:672
 AliLRCProcess.cxx:673
 AliLRCProcess.cxx:674
 AliLRCProcess.cxx:675
 AliLRCProcess.cxx:676
 AliLRCProcess.cxx:677
 AliLRCProcess.cxx:678
 AliLRCProcess.cxx:679
 AliLRCProcess.cxx:680
 AliLRCProcess.cxx:681
 AliLRCProcess.cxx:682
 AliLRCProcess.cxx:683
 AliLRCProcess.cxx:684
 AliLRCProcess.cxx:685
 AliLRCProcess.cxx:686
 AliLRCProcess.cxx:687
 AliLRCProcess.cxx:688
 AliLRCProcess.cxx:689
 AliLRCProcess.cxx:690
 AliLRCProcess.cxx:691
 AliLRCProcess.cxx:692
 AliLRCProcess.cxx:693
 AliLRCProcess.cxx:694
 AliLRCProcess.cxx:695
 AliLRCProcess.cxx:696
 AliLRCProcess.cxx:697
 AliLRCProcess.cxx:698
 AliLRCProcess.cxx:699
 AliLRCProcess.cxx:700
 AliLRCProcess.cxx:701
 AliLRCProcess.cxx:702
 AliLRCProcess.cxx:703
 AliLRCProcess.cxx:704
 AliLRCProcess.cxx:705
 AliLRCProcess.cxx:706
 AliLRCProcess.cxx:707
 AliLRCProcess.cxx:708
 AliLRCProcess.cxx:709
 AliLRCProcess.cxx:710
 AliLRCProcess.cxx:711
 AliLRCProcess.cxx:712
 AliLRCProcess.cxx:713
 AliLRCProcess.cxx:714
 AliLRCProcess.cxx:715
 AliLRCProcess.cxx:716
 AliLRCProcess.cxx:717
 AliLRCProcess.cxx:718
 AliLRCProcess.cxx:719
 AliLRCProcess.cxx:720
 AliLRCProcess.cxx:721
 AliLRCProcess.cxx:722
 AliLRCProcess.cxx:723
 AliLRCProcess.cxx:724
 AliLRCProcess.cxx:725
 AliLRCProcess.cxx:726
 AliLRCProcess.cxx:727
 AliLRCProcess.cxx:728
 AliLRCProcess.cxx:729
 AliLRCProcess.cxx:730
 AliLRCProcess.cxx:731
 AliLRCProcess.cxx:732
 AliLRCProcess.cxx:733
 AliLRCProcess.cxx:734
 AliLRCProcess.cxx:735
 AliLRCProcess.cxx:736
 AliLRCProcess.cxx:737
 AliLRCProcess.cxx:738
 AliLRCProcess.cxx:739
 AliLRCProcess.cxx:740
 AliLRCProcess.cxx:741
 AliLRCProcess.cxx:742
 AliLRCProcess.cxx:743
 AliLRCProcess.cxx:744
 AliLRCProcess.cxx:745
 AliLRCProcess.cxx:746
 AliLRCProcess.cxx:747
 AliLRCProcess.cxx:748
 AliLRCProcess.cxx:749
 AliLRCProcess.cxx:750
 AliLRCProcess.cxx:751
 AliLRCProcess.cxx:752
 AliLRCProcess.cxx:753
 AliLRCProcess.cxx:754
 AliLRCProcess.cxx:755
 AliLRCProcess.cxx:756
 AliLRCProcess.cxx:757
 AliLRCProcess.cxx:758
 AliLRCProcess.cxx:759
 AliLRCProcess.cxx:760
 AliLRCProcess.cxx:761
 AliLRCProcess.cxx:762
 AliLRCProcess.cxx:763
 AliLRCProcess.cxx:764
 AliLRCProcess.cxx:765
 AliLRCProcess.cxx:766
 AliLRCProcess.cxx:767
 AliLRCProcess.cxx:768
 AliLRCProcess.cxx:769
 AliLRCProcess.cxx:770
 AliLRCProcess.cxx:771
 AliLRCProcess.cxx:772
 AliLRCProcess.cxx:773
 AliLRCProcess.cxx:774
 AliLRCProcess.cxx:775
 AliLRCProcess.cxx:776
 AliLRCProcess.cxx:777
 AliLRCProcess.cxx:778
 AliLRCProcess.cxx:779
 AliLRCProcess.cxx:780
 AliLRCProcess.cxx:781
 AliLRCProcess.cxx:782
 AliLRCProcess.cxx:783
 AliLRCProcess.cxx:784
 AliLRCProcess.cxx:785
 AliLRCProcess.cxx:786
 AliLRCProcess.cxx:787
 AliLRCProcess.cxx:788
 AliLRCProcess.cxx:789
 AliLRCProcess.cxx:790
 AliLRCProcess.cxx:791
 AliLRCProcess.cxx:792
 AliLRCProcess.cxx:793
 AliLRCProcess.cxx:794
 AliLRCProcess.cxx:795
 AliLRCProcess.cxx:796
 AliLRCProcess.cxx:797
 AliLRCProcess.cxx:798
 AliLRCProcess.cxx:799
 AliLRCProcess.cxx:800
 AliLRCProcess.cxx:801
 AliLRCProcess.cxx:802
 AliLRCProcess.cxx:803
 AliLRCProcess.cxx:804
 AliLRCProcess.cxx:805
 AliLRCProcess.cxx:806
 AliLRCProcess.cxx:807
 AliLRCProcess.cxx:808
 AliLRCProcess.cxx:809
 AliLRCProcess.cxx:810
 AliLRCProcess.cxx:811
 AliLRCProcess.cxx:812
 AliLRCProcess.cxx:813
 AliLRCProcess.cxx:814
 AliLRCProcess.cxx:815
 AliLRCProcess.cxx:816
 AliLRCProcess.cxx:817
 AliLRCProcess.cxx:818
 AliLRCProcess.cxx:819
 AliLRCProcess.cxx:820
 AliLRCProcess.cxx:821
 AliLRCProcess.cxx:822
 AliLRCProcess.cxx:823
 AliLRCProcess.cxx:824
 AliLRCProcess.cxx:825
 AliLRCProcess.cxx:826
 AliLRCProcess.cxx:827
 AliLRCProcess.cxx:828
 AliLRCProcess.cxx:829
 AliLRCProcess.cxx:830
 AliLRCProcess.cxx:831
 AliLRCProcess.cxx:832
 AliLRCProcess.cxx:833
 AliLRCProcess.cxx:834
 AliLRCProcess.cxx:835
 AliLRCProcess.cxx:836
 AliLRCProcess.cxx:837
 AliLRCProcess.cxx:838
 AliLRCProcess.cxx:839
 AliLRCProcess.cxx:840
 AliLRCProcess.cxx:841
 AliLRCProcess.cxx:842
 AliLRCProcess.cxx:843
 AliLRCProcess.cxx:844
 AliLRCProcess.cxx:845
 AliLRCProcess.cxx:846
 AliLRCProcess.cxx:847
 AliLRCProcess.cxx:848
 AliLRCProcess.cxx:849
 AliLRCProcess.cxx:850
 AliLRCProcess.cxx:851
 AliLRCProcess.cxx:852
 AliLRCProcess.cxx:853
 AliLRCProcess.cxx:854
 AliLRCProcess.cxx:855
 AliLRCProcess.cxx:856
 AliLRCProcess.cxx:857
 AliLRCProcess.cxx:858
 AliLRCProcess.cxx:859
 AliLRCProcess.cxx:860
 AliLRCProcess.cxx:861
 AliLRCProcess.cxx:862
 AliLRCProcess.cxx:863
 AliLRCProcess.cxx:864
 AliLRCProcess.cxx:865
 AliLRCProcess.cxx:866
 AliLRCProcess.cxx:867
 AliLRCProcess.cxx:868
 AliLRCProcess.cxx:869
 AliLRCProcess.cxx:870
 AliLRCProcess.cxx:871
 AliLRCProcess.cxx:872
 AliLRCProcess.cxx:873
 AliLRCProcess.cxx:874
 AliLRCProcess.cxx:875
 AliLRCProcess.cxx:876
 AliLRCProcess.cxx:877
 AliLRCProcess.cxx:878
 AliLRCProcess.cxx:879
 AliLRCProcess.cxx:880
 AliLRCProcess.cxx:881
 AliLRCProcess.cxx:882
 AliLRCProcess.cxx:883
 AliLRCProcess.cxx:884
 AliLRCProcess.cxx:885
 AliLRCProcess.cxx:886
 AliLRCProcess.cxx:887
 AliLRCProcess.cxx:888
 AliLRCProcess.cxx:889
 AliLRCProcess.cxx:890
 AliLRCProcess.cxx:891
 AliLRCProcess.cxx:892
 AliLRCProcess.cxx:893
 AliLRCProcess.cxx:894
 AliLRCProcess.cxx:895
 AliLRCProcess.cxx:896
 AliLRCProcess.cxx:897
 AliLRCProcess.cxx:898
 AliLRCProcess.cxx:899
 AliLRCProcess.cxx:900
 AliLRCProcess.cxx:901
 AliLRCProcess.cxx:902
 AliLRCProcess.cxx:903
 AliLRCProcess.cxx:904
 AliLRCProcess.cxx:905
 AliLRCProcess.cxx:906
 AliLRCProcess.cxx:907
 AliLRCProcess.cxx:908
 AliLRCProcess.cxx:909
 AliLRCProcess.cxx:910
 AliLRCProcess.cxx:911
 AliLRCProcess.cxx:912
 AliLRCProcess.cxx:913
 AliLRCProcess.cxx:914
 AliLRCProcess.cxx:915
 AliLRCProcess.cxx:916
 AliLRCProcess.cxx:917
 AliLRCProcess.cxx:918
 AliLRCProcess.cxx:919
 AliLRCProcess.cxx:920
 AliLRCProcess.cxx:921
 AliLRCProcess.cxx:922
 AliLRCProcess.cxx:923
 AliLRCProcess.cxx:924
 AliLRCProcess.cxx:925
 AliLRCProcess.cxx:926
 AliLRCProcess.cxx:927
 AliLRCProcess.cxx:928
 AliLRCProcess.cxx:929
 AliLRCProcess.cxx:930
 AliLRCProcess.cxx:931
 AliLRCProcess.cxx:932
 AliLRCProcess.cxx:933
 AliLRCProcess.cxx:934
 AliLRCProcess.cxx:935
 AliLRCProcess.cxx:936
 AliLRCProcess.cxx:937
 AliLRCProcess.cxx:938
 AliLRCProcess.cxx:939
 AliLRCProcess.cxx:940
 AliLRCProcess.cxx:941
 AliLRCProcess.cxx:942
 AliLRCProcess.cxx:943
 AliLRCProcess.cxx:944
 AliLRCProcess.cxx:945
 AliLRCProcess.cxx:946
 AliLRCProcess.cxx:947
 AliLRCProcess.cxx:948
 AliLRCProcess.cxx:949
 AliLRCProcess.cxx:950
 AliLRCProcess.cxx:951
 AliLRCProcess.cxx:952
 AliLRCProcess.cxx:953
 AliLRCProcess.cxx:954
 AliLRCProcess.cxx:955
 AliLRCProcess.cxx:956
 AliLRCProcess.cxx:957
 AliLRCProcess.cxx:958
 AliLRCProcess.cxx:959
 AliLRCProcess.cxx:960
 AliLRCProcess.cxx:961
 AliLRCProcess.cxx:962
 AliLRCProcess.cxx:963
 AliLRCProcess.cxx:964
 AliLRCProcess.cxx:965
 AliLRCProcess.cxx:966
 AliLRCProcess.cxx:967
 AliLRCProcess.cxx:968
 AliLRCProcess.cxx:969
 AliLRCProcess.cxx:970
 AliLRCProcess.cxx:971
 AliLRCProcess.cxx:972
 AliLRCProcess.cxx:973
 AliLRCProcess.cxx:974
 AliLRCProcess.cxx:975
 AliLRCProcess.cxx:976
 AliLRCProcess.cxx:977
 AliLRCProcess.cxx:978
 AliLRCProcess.cxx:979
 AliLRCProcess.cxx:980
 AliLRCProcess.cxx:981
 AliLRCProcess.cxx:982
 AliLRCProcess.cxx:983
 AliLRCProcess.cxx:984
 AliLRCProcess.cxx:985
 AliLRCProcess.cxx:986
 AliLRCProcess.cxx:987
 AliLRCProcess.cxx:988
 AliLRCProcess.cxx:989
 AliLRCProcess.cxx:990
 AliLRCProcess.cxx:991
 AliLRCProcess.cxx:992
 AliLRCProcess.cxx:993
 AliLRCProcess.cxx:994
 AliLRCProcess.cxx:995
 AliLRCProcess.cxx:996
 AliLRCProcess.cxx:997
 AliLRCProcess.cxx:998
 AliLRCProcess.cxx:999
 AliLRCProcess.cxx:1000
 AliLRCProcess.cxx:1001
 AliLRCProcess.cxx:1002
 AliLRCProcess.cxx:1003
 AliLRCProcess.cxx:1004
 AliLRCProcess.cxx:1005
 AliLRCProcess.cxx:1006
 AliLRCProcess.cxx:1007
 AliLRCProcess.cxx:1008
 AliLRCProcess.cxx:1009
 AliLRCProcess.cxx:1010
 AliLRCProcess.cxx:1011
 AliLRCProcess.cxx:1012
 AliLRCProcess.cxx:1013
 AliLRCProcess.cxx:1014
 AliLRCProcess.cxx:1015
 AliLRCProcess.cxx:1016
 AliLRCProcess.cxx:1017
 AliLRCProcess.cxx:1018
 AliLRCProcess.cxx:1019
 AliLRCProcess.cxx:1020
 AliLRCProcess.cxx:1021
 AliLRCProcess.cxx:1022
 AliLRCProcess.cxx:1023
 AliLRCProcess.cxx:1024
 AliLRCProcess.cxx:1025
 AliLRCProcess.cxx:1026
 AliLRCProcess.cxx:1027
 AliLRCProcess.cxx:1028
 AliLRCProcess.cxx:1029
 AliLRCProcess.cxx:1030
 AliLRCProcess.cxx:1031
 AliLRCProcess.cxx:1032
 AliLRCProcess.cxx:1033
 AliLRCProcess.cxx:1034
 AliLRCProcess.cxx:1035
 AliLRCProcess.cxx:1036
 AliLRCProcess.cxx:1037
 AliLRCProcess.cxx:1038
 AliLRCProcess.cxx:1039
 AliLRCProcess.cxx:1040
 AliLRCProcess.cxx:1041
 AliLRCProcess.cxx:1042
 AliLRCProcess.cxx:1043
 AliLRCProcess.cxx:1044
 AliLRCProcess.cxx:1045
 AliLRCProcess.cxx:1046
 AliLRCProcess.cxx:1047
 AliLRCProcess.cxx:1048
 AliLRCProcess.cxx:1049
 AliLRCProcess.cxx:1050
 AliLRCProcess.cxx:1051
 AliLRCProcess.cxx:1052
 AliLRCProcess.cxx:1053
 AliLRCProcess.cxx:1054
 AliLRCProcess.cxx:1055
 AliLRCProcess.cxx:1056
 AliLRCProcess.cxx:1057
 AliLRCProcess.cxx:1058
 AliLRCProcess.cxx:1059
 AliLRCProcess.cxx:1060
 AliLRCProcess.cxx:1061
 AliLRCProcess.cxx:1062
 AliLRCProcess.cxx:1063
 AliLRCProcess.cxx:1064
 AliLRCProcess.cxx:1065
 AliLRCProcess.cxx:1066
 AliLRCProcess.cxx:1067
 AliLRCProcess.cxx:1068
 AliLRCProcess.cxx:1069
 AliLRCProcess.cxx:1070
 AliLRCProcess.cxx:1071
 AliLRCProcess.cxx:1072
 AliLRCProcess.cxx:1073
 AliLRCProcess.cxx:1074
 AliLRCProcess.cxx:1075
 AliLRCProcess.cxx:1076
 AliLRCProcess.cxx:1077
 AliLRCProcess.cxx:1078
 AliLRCProcess.cxx:1079
 AliLRCProcess.cxx:1080
 AliLRCProcess.cxx:1081
 AliLRCProcess.cxx:1082
 AliLRCProcess.cxx:1083
 AliLRCProcess.cxx:1084
 AliLRCProcess.cxx:1085
 AliLRCProcess.cxx:1086
 AliLRCProcess.cxx:1087
 AliLRCProcess.cxx:1088
 AliLRCProcess.cxx:1089
 AliLRCProcess.cxx:1090
 AliLRCProcess.cxx:1091
 AliLRCProcess.cxx:1092
 AliLRCProcess.cxx:1093
 AliLRCProcess.cxx:1094
 AliLRCProcess.cxx:1095
 AliLRCProcess.cxx:1096
 AliLRCProcess.cxx:1097
 AliLRCProcess.cxx:1098
 AliLRCProcess.cxx:1099
 AliLRCProcess.cxx:1100
 AliLRCProcess.cxx:1101
 AliLRCProcess.cxx:1102
 AliLRCProcess.cxx:1103
 AliLRCProcess.cxx:1104
 AliLRCProcess.cxx:1105
 AliLRCProcess.cxx:1106
 AliLRCProcess.cxx:1107
 AliLRCProcess.cxx:1108
 AliLRCProcess.cxx:1109
 AliLRCProcess.cxx:1110
 AliLRCProcess.cxx:1111
 AliLRCProcess.cxx:1112
 AliLRCProcess.cxx:1113
 AliLRCProcess.cxx:1114
 AliLRCProcess.cxx:1115
 AliLRCProcess.cxx:1116
 AliLRCProcess.cxx:1117
 AliLRCProcess.cxx:1118
 AliLRCProcess.cxx:1119
 AliLRCProcess.cxx:1120
 AliLRCProcess.cxx:1121
 AliLRCProcess.cxx:1122
 AliLRCProcess.cxx:1123
 AliLRCProcess.cxx:1124
 AliLRCProcess.cxx:1125
 AliLRCProcess.cxx:1126
 AliLRCProcess.cxx:1127
 AliLRCProcess.cxx:1128
 AliLRCProcess.cxx:1129
 AliLRCProcess.cxx:1130
 AliLRCProcess.cxx:1131
 AliLRCProcess.cxx:1132
 AliLRCProcess.cxx:1133
 AliLRCProcess.cxx:1134
 AliLRCProcess.cxx:1135
 AliLRCProcess.cxx:1136
 AliLRCProcess.cxx:1137
 AliLRCProcess.cxx:1138
 AliLRCProcess.cxx:1139
 AliLRCProcess.cxx:1140
 AliLRCProcess.cxx:1141
 AliLRCProcess.cxx:1142
 AliLRCProcess.cxx:1143
 AliLRCProcess.cxx:1144
 AliLRCProcess.cxx:1145
 AliLRCProcess.cxx:1146
 AliLRCProcess.cxx:1147
 AliLRCProcess.cxx:1148
 AliLRCProcess.cxx:1149
 AliLRCProcess.cxx:1150
 AliLRCProcess.cxx:1151
 AliLRCProcess.cxx:1152
 AliLRCProcess.cxx:1153
 AliLRCProcess.cxx:1154
 AliLRCProcess.cxx:1155
 AliLRCProcess.cxx:1156
 AliLRCProcess.cxx:1157
 AliLRCProcess.cxx:1158
 AliLRCProcess.cxx:1159
 AliLRCProcess.cxx:1160
 AliLRCProcess.cxx:1161
 AliLRCProcess.cxx:1162
 AliLRCProcess.cxx:1163
 AliLRCProcess.cxx:1164
 AliLRCProcess.cxx:1165
 AliLRCProcess.cxx:1166
 AliLRCProcess.cxx:1167
 AliLRCProcess.cxx:1168
 AliLRCProcess.cxx:1169
 AliLRCProcess.cxx:1170
 AliLRCProcess.cxx:1171
 AliLRCProcess.cxx:1172
 AliLRCProcess.cxx:1173
 AliLRCProcess.cxx:1174
 AliLRCProcess.cxx:1175
 AliLRCProcess.cxx:1176
 AliLRCProcess.cxx:1177
 AliLRCProcess.cxx:1178
 AliLRCProcess.cxx:1179
 AliLRCProcess.cxx:1180
 AliLRCProcess.cxx:1181
 AliLRCProcess.cxx:1182
 AliLRCProcess.cxx:1183
 AliLRCProcess.cxx:1184
 AliLRCProcess.cxx:1185
 AliLRCProcess.cxx:1186
 AliLRCProcess.cxx:1187
 AliLRCProcess.cxx:1188
 AliLRCProcess.cxx:1189
 AliLRCProcess.cxx:1190
 AliLRCProcess.cxx:1191
 AliLRCProcess.cxx:1192
 AliLRCProcess.cxx:1193
 AliLRCProcess.cxx:1194
 AliLRCProcess.cxx:1195
 AliLRCProcess.cxx:1196
 AliLRCProcess.cxx:1197
 AliLRCProcess.cxx:1198
 AliLRCProcess.cxx:1199
 AliLRCProcess.cxx:1200
 AliLRCProcess.cxx:1201
 AliLRCProcess.cxx:1202
 AliLRCProcess.cxx:1203
 AliLRCProcess.cxx:1204
 AliLRCProcess.cxx:1205
 AliLRCProcess.cxx:1206
 AliLRCProcess.cxx:1207
 AliLRCProcess.cxx:1208
 AliLRCProcess.cxx:1209
 AliLRCProcess.cxx:1210
 AliLRCProcess.cxx:1211
 AliLRCProcess.cxx:1212
 AliLRCProcess.cxx:1213
 AliLRCProcess.cxx:1214
 AliLRCProcess.cxx:1215
 AliLRCProcess.cxx:1216
 AliLRCProcess.cxx:1217
 AliLRCProcess.cxx:1218
 AliLRCProcess.cxx:1219
 AliLRCProcess.cxx:1220
 AliLRCProcess.cxx:1221
 AliLRCProcess.cxx:1222
 AliLRCProcess.cxx:1223
 AliLRCProcess.cxx:1224
 AliLRCProcess.cxx:1225
 AliLRCProcess.cxx:1226
 AliLRCProcess.cxx:1227
 AliLRCProcess.cxx:1228
 AliLRCProcess.cxx:1229
 AliLRCProcess.cxx:1230
 AliLRCProcess.cxx:1231
 AliLRCProcess.cxx:1232
 AliLRCProcess.cxx:1233
 AliLRCProcess.cxx:1234
 AliLRCProcess.cxx:1235
 AliLRCProcess.cxx:1236
 AliLRCProcess.cxx:1237
 AliLRCProcess.cxx:1238
 AliLRCProcess.cxx:1239
 AliLRCProcess.cxx:1240
 AliLRCProcess.cxx:1241
 AliLRCProcess.cxx:1242
 AliLRCProcess.cxx:1243
 AliLRCProcess.cxx:1244
 AliLRCProcess.cxx:1245
 AliLRCProcess.cxx:1246
 AliLRCProcess.cxx:1247
 AliLRCProcess.cxx:1248
 AliLRCProcess.cxx:1249
 AliLRCProcess.cxx:1250
 AliLRCProcess.cxx:1251
 AliLRCProcess.cxx:1252
 AliLRCProcess.cxx:1253
 AliLRCProcess.cxx:1254
 AliLRCProcess.cxx:1255
 AliLRCProcess.cxx:1256
 AliLRCProcess.cxx:1257
 AliLRCProcess.cxx:1258
 AliLRCProcess.cxx:1259
 AliLRCProcess.cxx:1260
 AliLRCProcess.cxx:1261
 AliLRCProcess.cxx:1262
 AliLRCProcess.cxx:1263
 AliLRCProcess.cxx:1264
 AliLRCProcess.cxx:1265
 AliLRCProcess.cxx:1266
 AliLRCProcess.cxx:1267
 AliLRCProcess.cxx:1268
 AliLRCProcess.cxx:1269
 AliLRCProcess.cxx:1270
 AliLRCProcess.cxx:1271
 AliLRCProcess.cxx:1272
 AliLRCProcess.cxx:1273
 AliLRCProcess.cxx:1274
 AliLRCProcess.cxx:1275
 AliLRCProcess.cxx:1276
 AliLRCProcess.cxx:1277
 AliLRCProcess.cxx:1278
 AliLRCProcess.cxx:1279
 AliLRCProcess.cxx:1280
 AliLRCProcess.cxx:1281
 AliLRCProcess.cxx:1282
 AliLRCProcess.cxx:1283
 AliLRCProcess.cxx:1284
 AliLRCProcess.cxx:1285
 AliLRCProcess.cxx:1286
 AliLRCProcess.cxx:1287
 AliLRCProcess.cxx:1288
 AliLRCProcess.cxx:1289
 AliLRCProcess.cxx:1290
 AliLRCProcess.cxx:1291
 AliLRCProcess.cxx:1292
 AliLRCProcess.cxx:1293
 AliLRCProcess.cxx:1294
 AliLRCProcess.cxx:1295
 AliLRCProcess.cxx:1296
 AliLRCProcess.cxx:1297
 AliLRCProcess.cxx:1298
 AliLRCProcess.cxx:1299
 AliLRCProcess.cxx:1300
 AliLRCProcess.cxx:1301
 AliLRCProcess.cxx:1302
 AliLRCProcess.cxx:1303
 AliLRCProcess.cxx:1304
 AliLRCProcess.cxx:1305
 AliLRCProcess.cxx:1306
 AliLRCProcess.cxx:1307
 AliLRCProcess.cxx:1308
 AliLRCProcess.cxx:1309
 AliLRCProcess.cxx:1310
 AliLRCProcess.cxx:1311
 AliLRCProcess.cxx:1312
 AliLRCProcess.cxx:1313
 AliLRCProcess.cxx:1314
 AliLRCProcess.cxx:1315
 AliLRCProcess.cxx:1316
 AliLRCProcess.cxx:1317
 AliLRCProcess.cxx:1318
 AliLRCProcess.cxx:1319
 AliLRCProcess.cxx:1320
 AliLRCProcess.cxx:1321
 AliLRCProcess.cxx:1322
 AliLRCProcess.cxx:1323
 AliLRCProcess.cxx:1324
 AliLRCProcess.cxx:1325
 AliLRCProcess.cxx:1326
 AliLRCProcess.cxx:1327
 AliLRCProcess.cxx:1328
 AliLRCProcess.cxx:1329
 AliLRCProcess.cxx:1330
 AliLRCProcess.cxx:1331
 AliLRCProcess.cxx:1332
 AliLRCProcess.cxx:1333
 AliLRCProcess.cxx:1334
 AliLRCProcess.cxx:1335
 AliLRCProcess.cxx:1336
 AliLRCProcess.cxx:1337
 AliLRCProcess.cxx:1338
 AliLRCProcess.cxx:1339
 AliLRCProcess.cxx:1340
 AliLRCProcess.cxx:1341
 AliLRCProcess.cxx:1342
 AliLRCProcess.cxx:1343
 AliLRCProcess.cxx:1344
 AliLRCProcess.cxx:1345
 AliLRCProcess.cxx:1346
 AliLRCProcess.cxx:1347
 AliLRCProcess.cxx:1348
 AliLRCProcess.cxx:1349
 AliLRCProcess.cxx:1350
 AliLRCProcess.cxx:1351
 AliLRCProcess.cxx:1352
 AliLRCProcess.cxx:1353
 AliLRCProcess.cxx:1354
 AliLRCProcess.cxx:1355
 AliLRCProcess.cxx:1356
 AliLRCProcess.cxx:1357
 AliLRCProcess.cxx:1358
 AliLRCProcess.cxx:1359
 AliLRCProcess.cxx:1360
 AliLRCProcess.cxx:1361
 AliLRCProcess.cxx:1362
 AliLRCProcess.cxx:1363
 AliLRCProcess.cxx:1364
 AliLRCProcess.cxx:1365
 AliLRCProcess.cxx:1366
 AliLRCProcess.cxx:1367
 AliLRCProcess.cxx:1368
 AliLRCProcess.cxx:1369
 AliLRCProcess.cxx:1370
 AliLRCProcess.cxx:1371
 AliLRCProcess.cxx:1372
 AliLRCProcess.cxx:1373
 AliLRCProcess.cxx:1374
 AliLRCProcess.cxx:1375
 AliLRCProcess.cxx:1376
 AliLRCProcess.cxx:1377
 AliLRCProcess.cxx:1378
 AliLRCProcess.cxx:1379
 AliLRCProcess.cxx:1380
 AliLRCProcess.cxx:1381
 AliLRCProcess.cxx:1382
 AliLRCProcess.cxx:1383
 AliLRCProcess.cxx:1384
 AliLRCProcess.cxx:1385
 AliLRCProcess.cxx:1386
 AliLRCProcess.cxx:1387
 AliLRCProcess.cxx:1388
 AliLRCProcess.cxx:1389
 AliLRCProcess.cxx:1390
 AliLRCProcess.cxx:1391
 AliLRCProcess.cxx:1392
 AliLRCProcess.cxx:1393
 AliLRCProcess.cxx:1394
 AliLRCProcess.cxx:1395
 AliLRCProcess.cxx:1396
 AliLRCProcess.cxx:1397
 AliLRCProcess.cxx:1398
 AliLRCProcess.cxx:1399
 AliLRCProcess.cxx:1400
 AliLRCProcess.cxx:1401
 AliLRCProcess.cxx:1402
 AliLRCProcess.cxx:1403
 AliLRCProcess.cxx:1404
 AliLRCProcess.cxx:1405
 AliLRCProcess.cxx:1406
 AliLRCProcess.cxx:1407
 AliLRCProcess.cxx:1408
 AliLRCProcess.cxx:1409
 AliLRCProcess.cxx:1410
 AliLRCProcess.cxx:1411
 AliLRCProcess.cxx:1412
 AliLRCProcess.cxx:1413
 AliLRCProcess.cxx:1414
 AliLRCProcess.cxx:1415
 AliLRCProcess.cxx:1416
 AliLRCProcess.cxx:1417
 AliLRCProcess.cxx:1418
 AliLRCProcess.cxx:1419
 AliLRCProcess.cxx:1420
 AliLRCProcess.cxx:1421
 AliLRCProcess.cxx:1422
 AliLRCProcess.cxx:1423
 AliLRCProcess.cxx:1424
 AliLRCProcess.cxx:1425
 AliLRCProcess.cxx:1426
 AliLRCProcess.cxx:1427
 AliLRCProcess.cxx:1428
 AliLRCProcess.cxx:1429
 AliLRCProcess.cxx:1430
 AliLRCProcess.cxx:1431