LCOV - code coverage report
Current view: top level - HLT/ITS - AliHLTITSSSDQARecPointsComponent.cxx (source / functions) Hit Total Coverage
Test: coverage.info Lines: 7 218 3.2 %
Date: 2016-06-14 17:26:59 Functions: 7 14 50.0 %

          Line data    Source code
       1             : // $Id$
       2             : //**************************************************************************
       3             : //* This file is property of and copyright by the ALICE HLT Project        * 
       4             : //* ALICE Experiment at CERN, All rights reserved.                         *
       5             : //*                                                                        *
       6             : //* Primary Authors: Ingrid Kielen                                         *
       7             : //*                  for The ALICE HLT Project.                            *
       8             : //*                                                                        *
       9             : //* Permission to use, copy, modify and distribute this software and its   *
      10             : //* documentation strictly for non-commercial purposes is hereby granted   *
      11             : //* without fee, provided that the above copyright notice appears in all   *
      12             : //* copies and that both the copyright notice and this permission notice   *
      13             : //* appear in the supporting documentation. The authors make no claims     *
      14             : //* about the suitability of this software for any purpose. It is          *
      15             : //* provided "as is" without express or implied warranty.                  *
      16             : //**************************************************************************
      17             : 
      18             : /** @file   AliHLTITSSSDQARecPointsComponent.cxx
      19             :     @author Ingrid Kielen - Panos Christakoglou (Panos.Christakoglou@cern.ch)
      20             :     @brief  Component for the SSD clusters QA
      21             : */
      22             : 
      23             : #include "AliHLTITSSSDQARecPointsComponent.h"
      24             : #include "AliHLTITSClusterDataFormat.h"
      25             : #include "AliCDBEntry.h"
      26             : #include "AliCDBManager.h"
      27             : #include "AliITSRecPoint.h"
      28             : #include <TFile.h>
      29             : #include <TMath.h>
      30             : #include <TString.h>
      31             : #include "TObjString.h"
      32             : #include "TObjArray.h"
      33             : #include "TH1.h"
      34             : #include "TH2.h"
      35             : #include "AliITSgeomTGeo.h"
      36             : #include "AliGeomManager.h"
      37             : 
      38             : //#include <stdlib.h>
      39             : //#include <cerrno>
      40             : 
      41             : using namespace std;
      42             : 
      43             : /** ROOT macro for the implementation of ROOT specific class methods */
      44           6 : ClassImp(AliHLTITSSSDQARecPointsComponent)
      45             : 
      46             : AliHLTITSSSDQARecPointsComponent::AliHLTITSSSDQARecPointsComponent()
      47           3 :   :AliHLTProcessor(),
      48          15 :    fHistSSDArray(NULL) {
      49             :   // see header file for class documentation
      50             :   // or
      51             :   // refer to README to build package
      52             :   // or
      53             :   // visit http://web.ift.uib.no/~kjeks/doc/alice-hlt
      54             : 
      55           6 : }
      56             : 
      57             : AliHLTITSSSDQARecPointsComponent::~AliHLTITSSSDQARecPointsComponent()
      58          12 : {
      59             :   // see header file for class documentation
      60          12 : }
      61             : 
      62             : // Public functions to implement AliHLTComponent's interface.
      63             : // These functions are required for the registration process
      64             : 
      65             : const char* AliHLTITSSSDQARecPointsComponent::GetComponentID()
      66             : {
      67             :   // see header file for class documentation
      68             :   
      69          78 :   return "ITSSSDQARecPoints";
      70             : }
      71             : 
      72             : void AliHLTITSSSDQARecPointsComponent::GetInputDataTypes(AliHLTComponentDataTypeList& list) {
      73             :   // see header file for class documentation
      74           0 :   list.clear();
      75           0 :   list.push_back( kAliHLTDataTypeClusters|kAliHLTDataOriginITSSSD );
      76           0 : }
      77             : 
      78             : AliHLTComponentDataType AliHLTITSSSDQARecPointsComponent::GetOutputDataType() {
      79             :   // see header file for class documentation
      80           0 :   return kAliHLTDataTypeTObjArray;
      81             : }
      82             : 
      83             : void AliHLTITSSSDQARecPointsComponent::GetOutputDataSize( unsigned long& constBase, double& inputMultiplier )
      84             : {
      85             :   // see header file for class documentation
      86             :   // XXX TODO: Find more realistic values.
      87           0 :   constBase = 80000;
      88           0 :   inputMultiplier = 10;
      89           0 : }
      90             : 
      91             : AliHLTComponent* AliHLTITSSSDQARecPointsComponent::Spawn()
      92             : {
      93             :   // see header file for class documentation
      94           0 :   return new AliHLTITSSSDQARecPointsComponent;
      95           0 : }
      96             : 
      97             : int AliHLTITSSSDQARecPointsComponent::DoInit(int /*argc*/, const char** /*argv*/) {
      98             :   //Inititalization of histograms for the SSD QA component
      99             :   
     100             :   
     101           0 :   if(AliGeomManager::GetGeometry()==NULL){
     102           0 :      AliGeomManager::LoadGeometry();
     103           0 :   }
     104             :   
     105             :   
     106           0 :   fHistSSDArray = new TObjArray();  
     107           0 :   fHistSSDArray->SetName("ssdArray");
     108             : 
     109             :   Int_t nModuleOffset = 500;
     110           0 :   Int_t nITSTotalModules = AliITSgeomTGeo::GetNModules();  
     111           0 :   TH1F *gHistSSDModuleIdLayer5 = new TH1F("fHistSSDModuleIdLayer5",
     112             :                                           "Module Id - Layer 5;Module Id;Entries",
     113             :                                           fgkSSDMODULESLAYER5,
     114             :                                           nModuleOffset - 0.5,
     115           0 :                                           nITSTotalModules-fgkSSDMODULESLAYER6+0.5);
     116           0 :   fHistSSDArray->Add(gHistSSDModuleIdLayer5);//entry 0
     117             : 
     118           0 :   TH1F *gHistSSDModuleIdLayer6 = new TH1F("fHistSSDModuleIdLayer6",
     119             :                                           "Module Id - Layer 6;Module Id;Entries",
     120             :                                           fgkSSDMODULESLAYER6,
     121             :                                           nModuleOffset+fgkSSDMODULESLAYER5 - 0.5,
     122           0 :                                           nITSTotalModules + 0.5);
     123           0 :   fHistSSDArray->Add(gHistSSDModuleIdLayer6);//entry 1
     124             :   
     125           0 :   TH1F *gHistSSDClusterPerEventLayer5 = new TH1F("fHistSSDClusterPerEventLayer5",
     126             :                                                  "N_{clusters} - Layer 5;N_{clusters};Entries;",
     127             :                                                  100,0.1,5000);
     128           0 :   fHistSSDArray->Add(gHistSSDClusterPerEventLayer5);//entry 2
     129             :   
     130           0 :   TH1F *gHistSSDClusterPerEventLayer6 = new TH1F("fHistSSDClusterPerEventLayer6",
     131             :                                                  "N_{clusters} - Layer 6;N_{clusters};Entries;",
     132             :                                                  100,0.1,5000);
     133           0 :   fHistSSDArray->Add(gHistSSDClusterPerEventLayer6);//entry 3
     134             :   
     135           0 :   TH1F *gHistSSDLocalXLayer5 = new TH1F("fHistSSDLocalXLayer5",
     136             :                                         "Local x coord.- Layer 5;x [cm];Entries;",
     137             :                                         100,-4.,4.);
     138           0 :   fHistSSDArray->Add(gHistSSDLocalXLayer5);//entry 4
     139             :   
     140           0 :   TH1F *gHistSSDLocalXLayer6 = new TH1F("fHistSSDLocalXLayer6",
     141             :                                         "Local x coord.- Layer 6;x [cm];Entries;",
     142             :                                         100,-4.,4.);
     143           0 :   fHistSSDArray->Add(gHistSSDLocalXLayer6);//entry 5
     144             :   
     145           0 :   TH1F *gHistSSDLocalZLayer5 = new TH1F("fHistSSDLocalZLayer5",
     146             :                                         "Local z coord.- Layer 5;z [cm];Entries;",
     147             :                                         100,-4.,4.);
     148           0 :   fHistSSDArray->Add(gHistSSDLocalZLayer5);//entry 6
     149             :   
     150           0 :   TH1F *gHistSSDLocalZLayer6 = new TH1F("fHistSSDLocalZLayer6",
     151             :                                         "Local z coord.- Layer 6;z [cm];Entries;",
     152             :                                         100,-4.,4.);
     153           0 :   fHistSSDArray->Add(gHistSSDLocalZLayer6);//entry 7
     154             :   
     155           0 :   TH1F *gHistSSDGlobalXLayer5 = new TH1F("fHistSSDGlobalXLayer5",
     156             :                                          "Global x - Layer 5;x [cm];Entries;",
     157             :                                          100,-40.,40.);
     158           0 :   fHistSSDArray->Add(gHistSSDGlobalXLayer5);//entry 8
     159             :   
     160           0 :   TH1F *gHistSSDGlobalXLayer6 = new TH1F("fHistSSDGlobalXLayer6",
     161             :                                          "Global x - Layer 6;x [cm];Entries;",
     162             :                                          100,-45.,45.);
     163           0 :   fHistSSDArray->Add(gHistSSDGlobalXLayer6);//entry 9
     164             :   
     165           0 :   TH1F *gHistSSDGlobalYLayer5 = new TH1F("fHistSSDGlobalYLayer5",
     166             :                                          "Global y - Layer 5;y [cm];Entries;",
     167             :                                          100,-40.,40);
     168           0 :   fHistSSDArray->Add(gHistSSDGlobalYLayer5);//entry 10
     169             :   
     170           0 :   TH1F *gHistSSDGlobalYLayer6 = new TH1F("fHistSSDGlobalYLayer6",
     171             :                                          "Global y - Layer 6;y [cm];Entries;",
     172             :                                          100,-45.,45.);
     173           0 :   fHistSSDArray->Add(gHistSSDGlobalYLayer6);//entry 11
     174             :   
     175           0 :   TH1F *gHistSSDGlobalZLayer5 = new TH1F("fHistSSDGlobalZLayer5",
     176             :                                          "Global z - Layer 5;z [cm];Entries;",
     177             :                                          100,-45.,45);
     178           0 :   fHistSSDArray->Add(gHistSSDGlobalZLayer5);//entry 12
     179             :   
     180           0 :   TH1F *gHistSSDGlobalZLayer6 = new TH1F("fHistSSDGlobalZLayer6",
     181             :                                          "Global z - Layer 6;z [cm];Entries;",
     182             :                                          100,-55.,55.);
     183           0 :   fHistSSDArray->Add(gHistSSDGlobalZLayer6);//entry 13
     184             :   
     185           0 :   TH1F *gHistSSDPhiLayer5 = new TH1F("fHistSSDPhiLayer5",
     186             :                                      "#phi - Layer 5;#phi [rad];Entries;",
     187           0 :                                      100,-TMath::Pi(),TMath::Pi());
     188           0 :   fHistSSDArray->Add(gHistSSDPhiLayer5);//entry 14
     189             :   
     190           0 :   TH1F *gHistSSDPhiLayer6 = new TH1F("fHistSSDPhiLayer6",
     191             :                                      "#phi - Layer 6;#phi [rad];Entries;",
     192           0 :                                      100,-TMath::Pi(),TMath::Pi());
     193           0 :   fHistSSDArray->Add(gHistSSDPhiLayer6);//entry 15
     194             :   
     195           0 :   TH1F *gHistSSDThetaLayer5 = new TH1F("fHistSSDThetaLayer5",
     196             :                                        "#theta - Layer 5;#theta [rad];Entries;",
     197           0 :                                        100,-TMath::Pi(),TMath::Pi());
     198           0 :   fHistSSDArray->Add(gHistSSDThetaLayer5);//entry 16
     199             :   
     200           0 :   TH1F *gHistSSDThetaLayer6 = new TH1F("fHistSSDThetaLayer6",
     201             :                                        "#theta - Layer 6;#theta [rad];Entries;",
     202           0 :                                        100,-TMath::Pi(),TMath::Pi());
     203           0 :   fHistSSDArray->Add(gHistSSDThetaLayer6);//entry 17
     204             :   
     205           0 :   TH1F *gHistSSDRadiusLayer5 = new TH1F("fHistSSDRadiusLayer5",
     206             :                                         "r - Layer 5;r [cm];Entries;",
     207             :                                         100,35.,50.);
     208           0 :   fHistSSDArray->Add(gHistSSDRadiusLayer5);//entry 18
     209             :   
     210           0 :   TH1F *gHistSSDRadiusLayer6 = new TH1F("fHistSSDRadiusLayer6",
     211             :                                         "r - Layer 6;r [cm];Entries;",
     212             :                                         100,35.,50.);
     213           0 :   fHistSSDArray->Add(gHistSSDRadiusLayer6);//entry 19
     214             :   
     215           0 :   TH1F *gHistSSDClusterTypeLayer5 = new TH1F("Layer5/fHistSSDClusterTypeLayer5",
     216             :                                              "CL type - Layer 5;Cluster type;Entries;",
     217             :                                              150,0,150);
     218           0 :   fHistSSDArray->Add(gHistSSDClusterTypeLayer5);//entry 20
     219             :   
     220           0 :   TH1F *gHistSSDClusterTypeLayer6 = new TH1F("fHistSSDClusterTypeLayer6",
     221             :                                              "CL type - Layer 6;Cluster type;Entries;",
     222             :                                              150,0,150);
     223           0 :   fHistSSDArray->Add(gHistSSDClusterTypeLayer6);//entry 21
     224             :   
     225           0 :   TH1F *gHistSSDChargeRatioLayer5 = new TH1F("fHistSSDChargeRatioLayer5",
     226             :                                              "Charge ratio - Layer 5;q_{ratio};Entries;",
     227             :                                              100,-2.0,2.0);
     228           0 :   fHistSSDArray->Add(gHistSSDChargeRatioLayer5);//entry 22
     229             :   
     230           0 :   TH1F *gHistSSDChargeRatioLayer6 = new TH1F("fHistSSDChargeRatioLayer6",
     231             :                                              "Charge ratio - Layer 6;q_{ratio};Entries;",
     232             :                                              100,-2.0,2.0);
     233           0 :   fHistSSDArray->Add(gHistSSDChargeRatioLayer6);//entry 23
     234             :   
     235           0 :   TH1F *gHistSSDChargekeVLayer5 = new TH1F("fHistSSDChargekeVLayer5",
     236             :                                            "Charge - Layer 5;q [keV];Entries;",
     237             :                                            100,0.,300.);
     238           0 :   fHistSSDArray->Add(gHistSSDChargekeVLayer5);//entry 24
     239             :   
     240           0 :   TH1F *gHistSSDChargekeVLayer6 = new TH1F("fHistSSDChargekeVLayer6",
     241             :                                            "Charge - Layer 6;q [keV];Entries;",
     242             :                                            100,0.,300.);
     243           0 :   fHistSSDArray->Add(gHistSSDChargekeVLayer6);//entry 25
     244             :   
     245           0 :   TH1F *gHistSSDChargePSideLayer5 = new TH1F("fHistSSDChargePSideLayer5",
     246             :                                              "Charge P- Layer 5;q_{P} [keV];Entries;",
     247             :                                              100,0.,300.);
     248           0 :   fHistSSDArray->Add(gHistSSDChargePSideLayer5);//entry 26
     249             :   
     250           0 :   TH1F *gHistSSDChargePSideLayer6 = new TH1F("fHistSSDChargePSideLayer6",
     251             :                                              "Charge P- Layer 6;q_{P} [keV];Entries;",
     252             :                                              100,0.,300.);
     253           0 :   fHistSSDArray->Add(gHistSSDChargePSideLayer6);//entry 27
     254             :   
     255           0 :   TH1F *gHistSSDChargeNSideLayer5 = new TH1F("fHistSSDChargeNSideLayer5",
     256             :                                              "Charge N- Layer 5;q_{N} [keV];Entries;",
     257             :                                              100,0.,300.);
     258           0 :   fHistSSDArray->Add(gHistSSDChargeNSideLayer5);//entry 28
     259             :   
     260           0 :   TH1F *gHistSSDChargeNSideLayer6 = new TH1F("fHistSSDChargeNSideLayer6",
     261             :                                              "Charge N- Layer 6;q_{N} [keV];Entries;",
     262             :                                              100,0.,300.);
     263           0 :   fHistSSDArray->Add(gHistSSDChargeNSideLayer6);//entry 29
     264             :   
     265           0 :   TH1F *gHistSSDChargeRatio2Layer5 = new TH1F("fHistSSDChargeRatio2Layer5",
     266             :                                               "Charge Ratio qN/qP - Layer 5;q_{N}/q_{P};Entries;",
     267             :                                               100,0,2);
     268           0 :   fHistSSDArray->Add(gHistSSDChargeRatio2Layer5);//entry 30
     269             :   
     270           0 :   TH1F *gHistSSDChargeRatio2Layer6 = new TH1F("fHistSSDChargeRatio2Layer6",
     271             :                                               "Charge Ratio qN/qP - Layer 6;q_{N}/q_{P};Entries;",
     272             :                                               100,0,2);
     273           0 :   fHistSSDArray->Add(gHistSSDChargeRatio2Layer6);//entry 31
     274             :   
     275           0 :   TH2F *gHistSSDChargePNSideLayer5 = new TH2F("fHistSSDChargePNSideLayer5",
     276             :                                               "Charge correlation - Layer 5;q_{P} [keV];q_{N} [keV]",
     277             :                                               100,0.,300.,
     278             :                                               100,0.,300.);
     279           0 :   fHistSSDArray->Add(gHistSSDChargePNSideLayer5);//entry 32
     280             :   
     281           0 :   TH2F *gHistSSDChargePNSideLayer6 = new TH2F("fHistSSDChargePNSideLayer6",
     282             :                                               "Charge correlation - Layer 6;q_{P} [keV];q_{N} [keV]",
     283             :                                               100,0.,300.,
     284             :                                               100,0.,300.);
     285           0 :   fHistSSDArray->Add(gHistSSDChargePNSideLayer6);//entry 33
     286             :   
     287           0 :   TH2F *gHistSSDChargeMapLayer5 = new TH2F("fHistSSDChargeMapLayer5",
     288             :                                            "Charge map;N_{modules};N_{Ladders}",
     289             :                                            fgkSSDMODULESPERLADDERLAYER5,
     290             :                                            -0.5,fgkSSDMODULESPERLADDERLAYER5+0.5,
     291             :                                            3*fgkSSDLADDERSLAYER5,
     292             :                                            -0.5,fgkSSDLADDERSLAYER5+0.5);
     293           0 :   fHistSSDArray->Add(gHistSSDChargeMapLayer5);//entry 34
     294             :   
     295           0 :   TH2F *gHistSSDChargeMapLayer6 = new TH2F("fHistSSDChargeMapLayer6",
     296             :                                            "Charge map;N_{modules};N_{Ladders}",
     297             :                                            fgkSSDMODULESPERLADDERLAYER6,
     298             :                                            -0.5,fgkSSDMODULESPERLADDERLAYER6+0.5,
     299             :                                            3*fgkSSDLADDERSLAYER6,
     300             :                                            -0.5,fgkSSDLADDERSLAYER6+0.5);
     301           0 :   fHistSSDArray->Add(gHistSSDChargeMapLayer6);//entry 35
     302             :   
     303           0 :   TH2F *gHistSSDClusterMapLayer5 = new TH2F("fHistSSDClusterMapLayer5",
     304             :                                             "Layer 5;N_{module};N_{ladder}",
     305             :                                             22,1,23,
     306             :                                             34,500,534);
     307           0 :   gHistSSDClusterMapLayer5->GetXaxis()->SetTitleColor(1);
     308           0 :   gHistSSDClusterMapLayer5->SetStats(kFALSE);
     309           0 :   gHistSSDClusterMapLayer5->GetYaxis()->SetTitleOffset(1.8);
     310           0 :   gHistSSDClusterMapLayer5->GetXaxis()->SetNdivisions(22);
     311           0 :   gHistSSDClusterMapLayer5->GetYaxis()->SetNdivisions(34);
     312           0 :   gHistSSDClusterMapLayer5->GetXaxis()->SetLabelSize(0.03);
     313           0 :   gHistSSDClusterMapLayer5->GetYaxis()->SetLabelSize(0.03);
     314           0 :   gHistSSDClusterMapLayer5->GetZaxis()->SetTitleOffset(1.4);
     315           0 :   gHistSSDClusterMapLayer5->GetZaxis()->SetTitle("N_{clusters}");
     316           0 :   fHistSSDArray->Add(gHistSSDClusterMapLayer5); //entry 36
     317             :   
     318           0 :   TH2F *gHistSSDClusterMapLayer6 = new TH2F("fHistSSDClusterMapLayer6",
     319             :                                             "Layer 6;N_{module};N_{ladder}",
     320             :                                             25,1,26,
     321             :                                             38,600,638);
     322           0 :   gHistSSDClusterMapLayer6->GetXaxis()->SetTitleColor(1);
     323           0 :   gHistSSDClusterMapLayer6->SetStats(kFALSE);
     324           0 :   gHistSSDClusterMapLayer6->GetYaxis()->SetTitleOffset(1.8);
     325           0 :   gHistSSDClusterMapLayer6->GetXaxis()->SetNdivisions(25);
     326           0 :   gHistSSDClusterMapLayer6->GetYaxis()->SetNdivisions(38);
     327           0 :   gHistSSDClusterMapLayer6->GetXaxis()->SetLabelSize(0.03);
     328           0 :   gHistSSDClusterMapLayer6->GetYaxis()->SetLabelSize(0.03);
     329           0 :   gHistSSDClusterMapLayer6->GetZaxis()->SetTitleOffset(1.4);
     330           0 :   gHistSSDClusterMapLayer6->GetZaxis()->SetTitle("N_{clusters}");
     331           0 :   fHistSSDArray->Add(gHistSSDClusterMapLayer6);//entry 37
     332             : 
     333           0 :   HLTInfo("Finished initialization of SSD histograms");  
     334             : 
     335           0 :   return 0;  
     336           0 : }
     337             :   
     338             : int AliHLTITSSSDQARecPointsComponent::DoDeinit() {
     339             :   // see header file for class documentation
     340           0 :   if(fHistSSDArray) delete fHistSSDArray;
     341             : 
     342           0 :   return 0;
     343             : }
     344             : 
     345             : int AliHLTITSSSDQARecPointsComponent::DoEvent(const AliHLTComponentEventData& /*evtData*/, AliHLTComponentTriggerData& /*trigData*/)
     346             : {
     347             :   
     348             :   Int_t nClustersLayer5 = 0, nClustersLayer6 = 0;   
     349             :   
     350             :   const AliHLTComponentBlockData* iter = NULL;
     351             :   
     352           0 :   if(!IsDataEvent())
     353           0 :     return 0;
     354             :   
     355           0 :   for ( iter = GetFirstInputBlock(kAliHLTDataTypeClusters); iter != NULL; iter = GetNextInputBlock() ) {
     356             :     
     357           0 :     if(iter->fDataType!=(kAliHLTAnyDataType|kAliHLTDataOriginITSSSD))
     358             :       continue;
     359             :     
     360           0 :     const AliHLTITSClusterData* clusterData = (const AliHLTITSClusterData*) iter->fPtr;
     361           0 :     Int_t nSpacepoint = (Int_t) clusterData->fSpacePointCnt;
     362           0 :     AliHLTITSSpacePointData *clusters = (AliHLTITSSpacePointData*) clusterData->fSpacePoints;
     363             :     
     364           0 :     for(int i = 0; i < nSpacepoint; i++) { //cluster loop
     365           0 :       Int_t lab[4]={0,0,0,0};
     366           0 :       Float_t hit[6]={0,0,0,0,0,0};
     367           0 :       Int_t info[3]={0,0,0};
     368             :       
     369           0 :       lab[0]=clusters[i].fTracks[0];
     370           0 :       lab[1]=clusters[i].fTracks[1];
     371           0 :       lab[2]=clusters[i].fTracks[2];
     372           0 :       lab[3]=clusters[i].fIndex;
     373           0 :       hit[0]=clusters[i].fY;
     374           0 :       hit[1]=clusters[i].fZ;
     375           0 :       hit[2]=clusters[i].fSigmaY2;
     376           0 :       hit[3]=clusters[i].fSigmaZ2;
     377           0 :       hit[4]=clusters[i].fQ;
     378           0 :       hit[5]=clusters[i].fSigmaYZ;
     379           0 :       info[0]=clusters[i].fNy;
     380           0 :       info[1]=clusters[i].fNz;
     381           0 :       info[2]=clusters[i].fLayer;
     382             :       
     383           0 :       AliITSRecPoint recp(lab,hit,info);
     384             :       
     385             :       Int_t module = 0;
     386           0 :       Int_t gLayer = 0, gLadder = 0, gModule = 0;
     387             :       Int_t lLadderLocationY = 0;
     388             :       
     389           0 :       Float_t cluglo[3]={0.,0.,0.}; 
     390             :       
     391           0 :       Int_t layer = recp.GetLayer();
     392           0 :       if (layer == 4) module = recp.GetDetectorIndex() + 500;
     393           0 :       if (layer == 5) module = recp.GetDetectorIndex() + 1248;
     394             :       
     395           0 :       AliITSgeomTGeo::GetModuleId(module,gLayer,gLadder,gModule);
     396           0 :       lLadderLocationY = 3*gLadder; 
     397             :       
     398           0 :       recp.GetGlobalXYZ(cluglo);
     399           0 :       Float_t radius = TMath::Sqrt(cluglo[0]*cluglo[0]+cluglo[1]*cluglo[1]); 
     400           0 :       Float_t phi = TMath::ATan2(cluglo[1],cluglo[0]);
     401           0 :       Float_t theta = TMath::ATan2(radius,cluglo[2]);
     402           0 :       Double_t chargeRatio = recp.GetChargeRatio();
     403           0 :       Double_t clusterCharge = recp.GetQ();
     404           0 :       Double_t chargePSide = clusterCharge*(1. + chargeRatio);
     405           0 :       Double_t chargeNSide = clusterCharge*(1. - chargeRatio);
     406             :       
     407           0 :       if(layer == 4) {
     408           0 :         dynamic_cast<TH1F *>(fHistSSDArray->At(0))->Fill(module);
     409           0 :         dynamic_cast<TH1F *>(fHistSSDArray->At(4))->Fill(recp.GetDetLocalX());
     410           0 :         dynamic_cast<TH1F *>(fHistSSDArray->At(6))->Fill(recp.GetDetLocalZ());
     411           0 :         dynamic_cast<TH1F *>(fHistSSDArray->At(8))->Fill(cluglo[0]);
     412           0 :         dynamic_cast<TH1F *>(fHistSSDArray->At(10))->Fill(cluglo[1]);
     413           0 :         dynamic_cast<TH1F *>(fHistSSDArray->At(12))->Fill(cluglo[2]);
     414           0 :         dynamic_cast<TH1F *>(fHistSSDArray->At(14))->Fill(phi);
     415           0 :         dynamic_cast<TH1F *>(fHistSSDArray->At(16))->Fill(theta);
     416           0 :         dynamic_cast<TH1F *>(fHistSSDArray->At(18))->Fill(radius);
     417           0 :         dynamic_cast<TH1F *>(fHistSSDArray->At(20))->Fill(recp.GetType());
     418           0 :         dynamic_cast<TH1F *>(fHistSSDArray->At(22))->Fill(recp.GetChargeRatio());
     419           0 :         dynamic_cast<TH1F *>(fHistSSDArray->At(24))->Fill(recp.GetQ());
     420           0 :         dynamic_cast<TH1F *>(fHistSSDArray->At(26))->Fill(chargePSide);
     421           0 :         dynamic_cast<TH1F *>(fHistSSDArray->At(28))->Fill(chargeNSide);
     422           0 :         if(chargePSide != 0.)
     423           0 :           dynamic_cast<TH1F *>(fHistSSDArray->At(30))->Fill(chargeNSide/chargePSide);
     424           0 :         dynamic_cast<TH2F *>(fHistSSDArray->At(32))->Fill(chargePSide,
     425             :                                                           chargeNSide);
     426           0 :         dynamic_cast<TH2F *>(fHistSSDArray->At(34))->SetBinContent(gModule,lLadderLocationY,recp.GetQ());
     427           0 :         dynamic_cast<TH2F *>(fHistSSDArray->At(36))->Fill(gModule,499+gLadder,1);
     428           0 :         nClustersLayer5 += 1;
     429           0 :       }//layer 5 histograms
     430           0 :       if(layer == 5) {
     431           0 :         dynamic_cast<TH1F *>(fHistSSDArray->At(1))->Fill(module);
     432           0 :         dynamic_cast<TH1F *>(fHistSSDArray->At(5))->Fill(recp.GetDetLocalX());
     433           0 :         dynamic_cast<TH1F *>(fHistSSDArray->At(6))->Fill(recp.GetDetLocalZ());
     434           0 :         dynamic_cast<TH1F *>(fHistSSDArray->At(9))->Fill(cluglo[0]);
     435           0 :         dynamic_cast<TH1F *>(fHistSSDArray->At(11))->Fill(cluglo[1]);
     436           0 :         dynamic_cast<TH1F *>(fHistSSDArray->At(13))->Fill(cluglo[2]);
     437           0 :         dynamic_cast<TH1F *>(fHistSSDArray->At(15))->Fill(phi);
     438           0 :         dynamic_cast<TH1F *>(fHistSSDArray->At(17))->Fill(theta);
     439           0 :         dynamic_cast<TH1F *>(fHistSSDArray->At(19))->Fill(radius);
     440           0 :         dynamic_cast<TH1F *>(fHistSSDArray->At(21))->Fill(recp.GetType());
     441           0 :         dynamic_cast<TH1F *>(fHistSSDArray->At(23))->Fill(recp.GetChargeRatio());
     442           0 :         dynamic_cast<TH1F *>(fHistSSDArray->At(25))->Fill(recp.GetQ());
     443           0 :         dynamic_cast<TH1F *>(fHistSSDArray->At(27))->Fill(chargePSide);
     444           0 :         dynamic_cast<TH1F *>(fHistSSDArray->At(29))->Fill(chargeNSide);
     445           0 :         if(chargePSide != 0.)
     446           0 :           dynamic_cast<TH1F *>(fHistSSDArray->At(31))->Fill(chargeNSide/chargePSide);
     447           0 :         dynamic_cast<TH2F *>(fHistSSDArray->At(33))->Fill(chargePSide,
     448             :                                                           chargeNSide);
     449           0 :         dynamic_cast<TH2F *>(fHistSSDArray->At(35))->SetBinContent(gModule,lLadderLocationY,recp.GetQ());
     450           0 :         dynamic_cast<TH2F *>(fHistSSDArray->At(37))->Fill(gModule,599+gLadder,1);
     451           0 :         nClustersLayer6 += 1;
     452           0 :       }//layer 6 histograms
     453           0 :     }//cluster loop
     454           0 :     dynamic_cast<TH1F *>(fHistSSDArray->At(2))->Fill(nClustersLayer5);
     455           0 :     dynamic_cast<TH1F *>(fHistSSDArray->At(3))->Fill(nClustersLayer6);
     456           0 :  }//input block
     457             :  
     458             :  //Publish array
     459             :  AliHLTUInt32_t fSpecification = 0x0;
     460           0 :  PushBack( (TObjArray*) fHistSSDArray,kAliHLTDataTypeTObjArray|kAliHLTDataOriginITSSSD,fSpecification);
     461             :  
     462           0 :  HLTInfo("ITSSSDQARecPoints found %d SSD clusters", nClustersLayer5+nClustersLayer6);
     463             : 
     464             :  return 0;
     465           0 : }

Generated by: LCOV version 1.11