]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - PWGGA/GammaConv/AliDalitzElectronCuts.cxx
Added LHC11h_pass2 calibration
[u/mrichter/AliRoot.git] / PWGGA / GammaConv / AliDalitzElectronCuts.cxx
index f95843ffa432c3f2532055f8a6e4ea33fcc39087..d5def29bb49c24af69bc396507ee7163f3d63141 100644 (file)
@@ -74,9 +74,9 @@ AliDalitzElectronCuts::AliDalitzElectronCuts(const char *name,const char *title)
     fPIDResponse(NULL),
     fesdTrackCuts(NULL),
     fEtaCut(0.9),
-    fEtaShift(0.0),
     fDoEtaCut(kFALSE),
-    fPtCut(0.0),
+    fPtMinCut(0.0),
+    fPtMaxCut(9999),
     fRadiusCut(1000.0),
     fPsiPairCut(0.45),
     fDeltaPhiCutMin(0.),
@@ -115,10 +115,14 @@ AliDalitzElectronCuts::AliDalitzElectronCuts(const char *name,const char *title)
     fBKGMethod(0),
     fnumberOfRotationEventsForBG(0),
     fDoMassCut(kFALSE),
+    fDoMassMinCut(kFALSE),
     fMassCutLowPt(999.),
     fMassCutHighPt(999.),
     fMassCutPtMin(-100.0),
+    fMassMinCut(-999.),
     fDoWeights(kFALSE),
+    fUseVPhotonMCPSmearing(kFALSE),
+    fUseElectronMCPSmearing(kFALSE),
     fCutString(NULL),
     hCutIndex(NULL),
     hdEdxCuts(NULL),
@@ -135,7 +139,11 @@ AliDalitzElectronCuts::AliDalitzElectronCuts(const char *name,const char *title)
     hTrackDCAzPtbefore(NULL),
     hTrackDCAzPtafter(NULL),
     hTrackNFindClsPtTPCbefore(NULL),
-    hTrackNFindClsPtTPCafter(NULL)
+    hTrackNFindClsPtTPCafter(NULL),
+    hTrackPosEtabeforeDedx(NULL),
+    hTrackNegEtabeforeDedx(NULL),
+    hTrackPosEtaafterDedx(NULL),
+    hTrackNegEtaafterDedx(NULL)
    {
     InitPIDResponse();
     for(Int_t jj=0;jj<kNCuts;jj++){fCuts[jj]=0;}
@@ -168,6 +176,8 @@ void AliDalitzElectronCuts::InitCutHistograms(TString name, Bool_t preCut,TStrin
 
     // Initialize Cut Histograms for QA (only initialized and filled if function is called)
 
+     TH1::AddDirectory(kFALSE);
+
      TString cutName = "";
     
      if( cutNumber==""){
@@ -186,6 +196,38 @@ void AliDalitzElectronCuts::InitCutHistograms(TString name, Bool_t preCut,TStrin
        if(name=="")fHistograms->SetName(Form("ElectronCuts_%s",cutName.Data()));
        else fHistograms->SetName(Form("%s_%s",name.Data(),cutName.Data()));
     }
+    
+    
+    Int_t kDedxSignalbins = 200;
+    
+     const Int_t kDCABins=62;
+    
+     Double_t binsDCADummy[63]={-3.0,-2.7,-2.4,-2.1,-1.8,-1.5,-1.2,-0.9,-0.6,-0.3,-0.25,-0.2,-0.19,-0.18,-0.17,-0.16,-0.15,-0.14,-0.13,-0.12,-0.11,-0.10,-0.09,-0.08,-0.07,-0.06,-0.05,-0.04,-0.03,-0.02,-0.01,0.0,0.01,0.02,0.03,0.04,0.05,0.06,0.07,0.08,0.09,0.1,0.11,0.12,0.13,0.14,0.15,0.16,0.17,0.18,0.19,0.2,0.25,0.3,0.6,0.9,1.2,1.5,1.8,2.1,2.4,2.7,3.0};
+
+     const Int_t kPtBins=110;
+     Double_t binsPtDummy[kPtBins+1];
+     const Int_t kPBins = 109;
+     Double_t binsPDummy[kPBins+1];
+     binsPtDummy[0]=0.0;
+     binsPDummy[0]=0.05;
+     
+        for(Int_t i=1;i<kPtBins+1;i++)
+        {
+                if(binsPtDummy[i-1]+0.05<1.01)
+                        binsPtDummy[i]=binsPtDummy[i-1]+0.05;
+                else
+                        binsPtDummy[i]=binsPtDummy[i-1]+0.1;
+               
+        }
+        for(Int_t i=1; i <kPBins+1;i++){
+                 
+                 if( binsPDummy[i-1]+0.05<1.01)
+                       binsPDummy[i] = binsPDummy[i-1]+0.05;
+                 else
+                       binsPDummy[i] = binsPDummy[i-1]+0.1;
+               
+       }
+       
 
 
     hCutIndex=new TH1F(Form("IsElectronSelected %s",cutName.Data()),"IsElectronSelected",10,-0.5,9.5);
@@ -222,29 +264,29 @@ void AliDalitzElectronCuts::InitCutHistograms(TString name, Bool_t preCut,TStrin
     if(preCut){
 
 
-       hITSdEdxbefore=new TH2F(Form("Electron_ITS_before %s",cutName.Data()),"ITS dEdx electron before" ,150,0.05,20,400,-10,10);
+       hITSdEdxbefore=new TH2F(Form("Electron_ITS_before %s",cutName.Data()),"ITS dEdx electron before" ,kPBins,binsPDummy,200,-10,10);
        fHistograms->Add(hITSdEdxbefore);
        AxisBeforeITS = hITSdEdxbefore->GetXaxis();
 
-       hTPCdEdxbefore=new TH2F(Form("Electron_dEdx_before %s",cutName.Data()),"dEdx electron before" ,150,0.05,20,400,-10,10);
+       hTPCdEdxbefore=new TH2F(Form("Electron_dEdx_before %s",cutName.Data()),"dEdx electron before" ,kPBins,binsPDummy,200,-10,10);
        fHistograms->Add(hTPCdEdxbefore);
        AxisBeforedEdx = hTPCdEdxbefore->GetXaxis();
 
-       hTPCdEdxSignalbefore=new TH2F(Form("Electron_dEdxSignal_before %s",cutName.Data()),"dEdx electron signal before" ,150,0.05,20.0,800,0.0,200);
+       hTPCdEdxSignalbefore=new TH2F(Form("Electron_dEdxSignal_before %s",cutName.Data()),"dEdx electron signal before" ,kPBins,binsPDummy,kDedxSignalbins,0.0,200);
        fHistograms->Add(hTPCdEdxSignalbefore);
        AxisBeforedEdxSignal = hTPCdEdxSignalbefore->GetXaxis();
 
-       hTOFbefore=new TH2F(Form("Electron_TOF_before %s",cutName.Data()),"TOF electron before" ,150,0.05,20,400,-6,10);
+       hTOFbefore=new TH2F(Form("Electron_TOF_before %s",cutName.Data()),"TOF electron before" ,kPBins,binsPDummy,200,-10,10);
        fHistograms->Add(hTOFbefore);
        AxisBeforeTOF = hTOFbefore->GetXaxis();
        
-       hTrackDCAxyPtbefore = new TH2F(Form("hTrack_DCAxy_Pt_before %s",cutName.Data()),"DCAxy Vs Pt of tracks before",800,-4.0,4.0,400,0.,10.);
+       hTrackDCAxyPtbefore = new TH2F(Form("hTrack_DCAxy_Pt_before %s",cutName.Data()),"DCAxy Vs Pt of tracks before",kDCABins,binsDCADummy,kPtBins,binsPtDummy);
        fHistograms->Add(hTrackDCAxyPtbefore);  
        
-       hTrackDCAzPtbefore  = new TH2F(Form("hTrack_DCAz_Pt_before %s",cutName.Data()), "DCAz  Vs Pt of tracks before",800,-4.0,4.0,400,0.,10.);
+       hTrackDCAzPtbefore  = new TH2F(Form("hTrack_DCAz_Pt_before %s",cutName.Data()), "DCAz  Vs Pt of tracks before",kDCABins,binsDCADummy,kPtBins,binsPtDummy);
        fHistograms->Add(hTrackDCAzPtbefore); 
        
-       hTrackNFindClsPtTPCbefore = new TH2F(Form("hTrack_NFindCls_Pt_TPC_before %s",cutName.Data()),"Track: N Findable Cls TPC Vs Pt before",100,0,1,400,0.,10.);
+       hTrackNFindClsPtTPCbefore = new TH2F(Form("hTrack_NFindCls_Pt_TPC_before %s",cutName.Data()),"Track: N Findable Cls TPC Vs Pt before",60,0,1.5,kPtBins,binsPtDummy);
        fHistograms->Add(hTrackNFindClsPtTPCbefore); 
        
        
@@ -252,27 +294,39 @@ void AliDalitzElectronCuts::InitCutHistograms(TString name, Bool_t preCut,TStrin
     }
 
 
-    hITSdEdxafter=new TH2F(Form("Electron_ITS_after %s",cutName.Data()),"ITS dEdx electron after" ,150,0.05,20,400, -10,10);
+    hITSdEdxafter=new TH2F(Form("Electron_ITS_after %s",cutName.Data()),"ITS dEdx electron after" ,kPBins,binsPDummy,200, -10,10);
     fHistograms->Add(hITSdEdxafter);
 
-    hTPCdEdxafter=new TH2F(Form("Electron_dEdx_after %s",cutName.Data()),"dEdx electron after" ,150,0.05,20,400, -10,10);
+    hTPCdEdxafter=new TH2F(Form("Electron_dEdx_after %s",cutName.Data()),"dEdx electron after" ,kPBins,binsPDummy,200, -10,10);
     fHistograms->Add(hTPCdEdxafter);
 
-    hTPCdEdxSignalafter=new TH2F(Form("Electron_dEdxSignal_after %s",cutName.Data()),"dEdx electron signal after" ,150,0.05,20.0,800,0.0,200);
+    hTPCdEdxSignalafter=new TH2F(Form("Electron_dEdxSignal_after %s",cutName.Data()),"dEdx electron signal after" ,kPBins,binsPDummy,kDedxSignalbins,0.0,200);
     fHistograms->Add(hTPCdEdxSignalafter);
 
-    hTOFafter=new TH2F(Form("Electron_TOF_after %s",cutName.Data()),"TOF electron after" ,150,0.05,20,400,-6,10);
+    hTOFafter=new TH2F(Form("Electron_TOF_after %s",cutName.Data()),"TOF electron after" ,kPBins,binsPDummy,200,-6,10);
     fHistograms->Add(hTOFafter);
       
-    hTrackDCAxyPtafter  = new TH2F(Form("hTrack_DCAxy_Pt_after %s",cutName.Data()),"DCAxy Vs Pt of tracks after",800,-4.0,4.0,400,0.,10.);
+    hTrackDCAxyPtafter  = new TH2F(Form("hTrack_DCAxy_Pt_after %s",cutName.Data()),"DCAxy Vs Pt of tracks after",kDCABins,binsDCADummy,kPtBins,binsPtDummy);
     fHistograms->Add(hTrackDCAxyPtafter); 
     
-    hTrackDCAzPtafter  = new TH2F(Form("hTrack_DCAz_Pt_after %s",cutName.Data()), "DCAz Vs Pt of tracks  after",800,-4.0,4.0,400,0.,10.);
+    hTrackDCAzPtafter  = new TH2F(Form("hTrack_DCAz_Pt_after %s",cutName.Data()), "DCAz Vs Pt of tracks  after",kDCABins,binsDCADummy,kPtBins,binsPtDummy);
     fHistograms->Add(hTrackDCAzPtafter); 
     
-    hTrackNFindClsPtTPCafter = new TH2F(Form("hTrack_NFindCls_Pt_TPC_after %s",cutName.Data()),"Track: N Findable Cls TPC Vs Pt after",100,0,1,400,0.,10.);
+    hTrackNFindClsPtTPCafter = new TH2F(Form("hTrack_NFindCls_Pt_TPC_after %s",cutName.Data()),"Track: N Findable Cls TPC Vs Pt after",60,0,1.5,kPtBins,binsPtDummy);
     fHistograms->Add(hTrackNFindClsPtTPCafter); 
     
+    hTrackPosEtabeforeDedx = new TH1F(Form("hTrack_Pos_Eta_before_Dedx %s",cutName.Data()),"hTrack_Pos_Eta_before_Dedx",600,-1.5,1.5);
+    fHistograms->Add(hTrackPosEtabeforeDedx);
+    
+    hTrackNegEtabeforeDedx = new TH1F(Form("hTrack_Neg_Eta_before_Dedx %s",cutName.Data()),"hTrack_Neg_Eta_before_Dedx",600,-1.5,1.5);
+    fHistograms->Add(hTrackNegEtabeforeDedx);
+    
+    hTrackPosEtaafterDedx  = new TH1F(Form("hTrack_Pos_Eta_after_Dedx %s",cutName.Data()),"hTrack_Pos_Eta_after_Dedx",600,-1.5,1.5);
+    fHistograms->Add(hTrackPosEtaafterDedx);
+    
+    hTrackNegEtaafterDedx  = new TH1F(Form("hTrack_Neg_Eta_afterDedx %s",cutName.Data()),"hTrack_Neg_Eta_after_Dedx",600,-1.5,1.5);
+    fHistograms->Add(hTrackNegEtaafterDedx);
+    
     
 
     TAxis *AxisAfter = hTPCdEdxafter->GetXaxis(); 
@@ -300,7 +354,8 @@ void AliDalitzElectronCuts::InitCutHistograms(TString name, Bool_t preCut,TStrin
     }
     delete [] newBins;
 
-        
+    TH1::AddDirectory(kTRUE);        
+
     // Event Cuts and Info
 }
 
@@ -333,7 +388,7 @@ Bool_t AliDalitzElectronCuts::ElectronIsSelectedMC(Int_t labelParticle,AliStack
         if( TMath::Abs( particle->GetPdgCode() ) != 11 )  return kFALSE;
         
         if( fDoEtaCut ){
-         if( particle->Eta() > (fEtaCut + fEtaShift) || particle->Eta() < (-fEtaCut + fEtaShift) )
+         if( particle->Eta() > fEtaCut  || particle->Eta() < -fEtaCut  )
          return kFALSE;
        }
         
@@ -388,13 +443,35 @@ Bool_t AliDalitzElectronCuts::ElectronIsSelected(AliESDtrack* lTrack)
          return kFALSE;
     }
 
-
+    if( lTrack->GetSign() > 0.0 ){
+       
+     if (hTrackPosEtabeforeDedx) hTrackPosEtabeforeDedx->Fill(lTrack->Eta());
+      
+    } else{
+      
+      if(hTrackNegEtabeforeDedx) hTrackNegEtabeforeDedx->Fill(lTrack->Eta());
+      
+    }
+    
+    
     // dEdx Cuts
     if( ! dEdxCuts( track ) ) {
          if(hCutIndex)hCutIndex->Fill(kdEdxCuts);
          return kFALSE;
 
     }
+    
+    if( lTrack->GetSign() > 0.0 ){
+       
+      if( hTrackPosEtaafterDedx) hTrackPosEtaafterDedx->Fill(lTrack->Eta());
+      
+    } else{
+      
+      if( hTrackNegEtaafterDedx) hTrackNegEtaafterDedx->Fill(lTrack->Eta());
+      
+    }
+    
+    
 
     //Electron passed the cuts
     if(hCutIndex)hCutIndex->Fill(kElectronOut);
@@ -421,13 +498,13 @@ Bool_t AliDalitzElectronCuts::TrackIsSelected(AliESDtrack* lTrack) {
     }
     
     if( fDoEtaCut ) {
-      if(  lTrack->Eta() > (fEtaCut + fEtaShift) || lTrack->Eta() < (-fEtaCut + fEtaShift) ) {
+      if(  lTrack->Eta() > fEtaCut  || lTrack->Eta() < -fEtaCut ) {
         return kFALSE;
       }
    }
    
    
-   if( lTrack->Pt() < fPtCut ) {
+   if( lTrack->Pt() < fPtMinCut || lTrack->Pt() > fPtMaxCut ) {
      
        return kFALSE;
        
@@ -923,7 +1000,14 @@ Bool_t AliDalitzElectronCuts::SetCut(cutIds cutID, const Int_t value) {
                         return kTRUE;
                 } else return kFALSE;
                
-               
+  case kuseVPhotonMCPSmearing:
+    
+                 if( SetUseVPhotonMCPmearing(value)) {
+                        fCuts[kuseVPhotonMCPSmearing] = value;
+                        UpdateCutString(cutID, value);
+                        return kTRUE;
+                  } else return kFALSE;
+                 
   case kNCuts:
                cout << "Error:: Cut id out of range"<< endl;
                return kFALSE;
@@ -1185,6 +1269,15 @@ Bool_t AliDalitzElectronCuts::SetITSClusterCut(Int_t clsITSCut){
                 fesdTrackCuts->SetMinNClustersITS(5);
                 // 5 hits in total in the ITS. At least 1 hit in any layer of SPD
                 break;
+       case 7: fesdTrackCuts->SetClusterRequirementITS(AliESDtrackCuts::kSPD, AliESDtrackCuts::kOff);
+                fesdTrackCuts->SetMinNClustersITS(4);
+               break;
+       case 8: fesdTrackCuts->SetClusterRequirementITS(AliESDtrackCuts::kSPD, AliESDtrackCuts::kBoth);
+                break;
+        case 9: fesdTrackCuts->SetClusterRequirementITS(AliESDtrackCuts::kSPD, AliESDtrackCuts::kBoth);
+               fesdTrackCuts->SetMinNClustersITS(4);
+                break;
+               
        default:
                cout<<"Warning: clsITSCut not defined "<<clsITSCut<<endl;
                return kFALSE;
@@ -1317,16 +1410,28 @@ Bool_t AliDalitzElectronCuts::SetPtCut(Int_t ptCut)
   
        switch(ptCut){
          
-       case 0: fPtCut = 0.075;         
+       case 0: fPtMinCut = 0.075;
+               fPtMaxCut = 9999;
                break;
        case 1:  // 0.1
-               fPtCut  = 0.1;  
+               fPtMinCut  = 0.1;       
+               fPtMaxCut  = 9999;
                break;
        case 2:  // 0.125 GeV
-               fPtCut  = 0.125;                
+               fPtMinCut = 0.125;              
+               fPtMaxCut = 9999;
                break;
        case 3: // 0.15 GeV
-               fPtCut  = 0.15;
+               fPtMinCut = 0.15;
+               fPtMaxCut = 9999;
+               break;
+               // 0.5 - 0.7 
+       case 4: fPtMinCut = 0.5;
+               fPtMaxCut = 0.7;
+               break;
+       case 5: // 0.175 GeV
+               fPtMinCut = 0.175;
+               fPtMaxCut = 9999;
                break;
        default:
                cout<<"Warning: PtCut not defined "<<ptCut<<endl;
@@ -1578,12 +1683,20 @@ Bool_t AliDalitzElectronCuts::SetPsiPairCut(Int_t psiCut) {
         fPsiPairCut = 0.52;
         fDeltaPhiCutMin = 0.0;
         fDeltaPhiCutMax = 0.12;
+       break;
   case 4:
         fDoPsiPairCut = kTRUE;
         fPsiPairCut = 0.30;
         fDeltaPhiCutMin = 0.0;
         fDeltaPhiCutMax = 0.12;
         break;
+  case 5:
+       fDoPsiPairCut = kTRUE;
+        fPsiPairCut = 0.60;
+        fDeltaPhiCutMin = 0.0;
+        fDeltaPhiCutMax = 0.06;
+       break;
+       
     
   default:
       cout<<"Warning: PsiPairCut not defined "<<fPsiPairCut<<endl;
@@ -1732,63 +1845,88 @@ Bool_t AliDalitzElectronCuts::SetMassCut(Int_t massCut)
                         fMassCutPtMin  = -999.; //GeV
                         fMassCutLowPt  =  999.; //GeV/c^2
                         fMassCutHighPt =  999.; //GeV/c^2
+                        fMassMinCut = -999;
                         fDoMassCut = kFALSE;   
+                       fDoMassMinCut = kFALSE;
                         break;
     case 1:
                         //fMassCut = 0.135;             //GeV/c^2
                         fMassCutPtMin  = -999.; //GeV
                         fMassCutLowPt  = 0.135; //GeV/c^2
                         fMassCutHighPt = 0.135; //GeV/c^2
+                        fMassMinCut = -999;
                         fDoMassCut = kTRUE;
+                       fDoMassMinCut = kFALSE;
                         break; 
     case 2:
                         //fMassCut = 0.100;     //GeV/c^2
                         fMassCutPtMin  = -999.; //GeV
                         fMassCutLowPt  = 0.100; //GeV/c^2
                         fMassCutHighPt = 0.100; //GeV/c^2
+                        fMassMinCut = -999;
                         fDoMassCut = kTRUE;
+                       fDoMassMinCut = kFALSE;
                         break;
     case 3:
-                        //fMassCut = 0.075;     //GeV/c^2
+                        /*fMassCut = 0.075;     //GeV/c^2 Changed from Feb 25
                         fMassCutPtMin  = -999.; //GeV
                         fMassCutLowPt  = 0.075; //GeV/c^2
                         fMassCutHighPt = 0.075; //GeV/c^2
                         fDoMassCut = kTRUE;
+                       fDoMassMinCut = kFALSE;*/
+                       fMassCutPtMin  = 1.0;   //GeV
+                        fMassCutLowPt  = 0.015; //GeV/c^2
+                        fMassCutHighPt = 0.035; //GeV/c^2
+                        fMassMinCut    = 0.002;
+                        fDoMassCut = kTRUE;
+                       fDoMassMinCut = kTRUE;
                         break;
     case 4:
                         //fMassCut = 0.050;     //GeV/c^2
                         fMassCutPtMin  = -999.; //GeV
                         fMassCutLowPt  = 0.050; //GeV/c^2
                         fMassCutHighPt = 0.050; //GeV/c^2
+                        fMassMinCut = -999;
                         fDoMassCut = kTRUE;
+                       fDoMassMinCut = kFALSE;
                         break;
     case 5:
                         
                         fMassCutPtMin  = -999.; //GeV
                         fMassCutLowPt  = 0.035; //GeV/c^2
                         fMassCutHighPt = 0.035; //GeV/c^2
+                        fMassMinCut = -999;
                         fDoMassCut = kTRUE;
+                       fDoMassMinCut = kFALSE;
                         break;
     case 6:
                         fMassCutPtMin  = -999.; //GeV
                         fMassCutLowPt  = 0.015; //GeV/c^2
                         fMassCutHighPt = 0.015; //GeV/c^2
+                        fMassMinCut = -999;
                         fDoMassCut = kTRUE;
+                       fDoMassMinCut = kFALSE;
                         break;
     case 7:             fMassCutPtMin  = 1.0;   //GeV
                         fMassCutLowPt  = 0.015; //GeV/c^2
                         fMassCutHighPt = 0.035; //GeV/c^2
+                        fMassMinCut = -999;
                         fDoMassCut = kTRUE;
+                       fDoMassMinCut = kFALSE;
                         break;
     case 8:             fMassCutPtMin  = 1.0;   //GeV
                         fMassCutLowPt  = 0.015; //GeV/c^2
                         fMassCutHighPt = 0.050; //GeV/c^2
+                        fMassMinCut = -999;
                         fDoMassCut = kTRUE;
+                       fDoMassMinCut = kFALSE;
                        break;
     case 9:             fMassCutPtMin  = 1.0;   //GeV
                         fMassCutLowPt  = 0.025; //GeV/c^2
                         fMassCutHighPt = 0.035; //GeV/c^2
+                        fMassMinCut = -999;
                         fDoMassCut = kTRUE;
+                       fDoMassMinCut = kFALSE;
                        break;
     default:
                         cout<<"Warning: MassCut not defined "<<massCut<<endl;
@@ -1796,7 +1934,31 @@ Bool_t AliDalitzElectronCuts::SetMassCut(Int_t massCut)
     }
     return kTRUE;
 }
-
+Bool_t AliDalitzElectronCuts::SetUseVPhotonMCPmearing(Int_t useMCPSmearing)
+{// Set Cut
+   switch(useMCPSmearing){
+     
+   case 0:
+      fUseVPhotonMCPSmearing=kFALSE;
+      fUseElectronMCPSmearing=kFALSE;
+      break;
+   case 1:
+      fUseVPhotonMCPSmearing=kTRUE;
+      fUseElectronMCPSmearing=kFALSE;
+      break;
+   case 2:
+      fUseVPhotonMCPSmearing=kFALSE;
+      fUseElectronMCPSmearing=kTRUE;
+      break;
+       
+      
+   default: cout<<"Warning: Virtual Photon SMearing not defined "<<useMCPSmearing<<endl;
+           return kFALSE;
+      
+   }
+   
+   return kTRUE;
+}
 
 
 ///________________________________________________________________________