LCOV - code coverage report
Current view: top level - MUON/MUONgeometry - AliMUONSurveyChamber.cxx (source / functions) Hit Total Coverage
Test: coverage.info Lines: 1 83 1.2 %
Date: 2016-06-14 17:26:59 Functions: 1 18 5.6 %

          Line data    Source code
       1             : /**************************************************************************
       2             :  * Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
       3             :  *                                                                        *
       4             :  * Author: The ALICE Off-line Project.                                    *
       5             :  * Contributors are mentioned in the code where appropriate.              *
       6             :  *                                                                        *
       7             :  * Permission to use, copy, modify and distribute this software and its   *
       8             :  * documentation strictly for non-commercial purposes is hereby granted   *
       9             :  * without fee, provided that the above copyright notice appears in all   *
      10             :  * copies and that both the copyright notice and this permission notice   *
      11             :  * appear in the supporting documentation. The authors make no claims     *
      12             :  * about the suitability of this software for any purpose. It is          *
      13             :  * provided "as is" without express or implied warranty.                  *
      14             :  **************************************************************************/
      15             : 
      16             : //-----------------------------------------------------------------------------
      17             : /// \class AliMUONSurveyChamber
      18             : /// Class for the survey processing of the ALICE DiMuon spectrometer 
      19             : ///
      20             : /// This object provides the methods specific to the chambers (frames)
      21             : ///
      22             : /// \author Javier Castillo
      23             : //-----------------------------------------------------------------------------
      24             : 
      25             : 
      26             : #include <TClonesArray.h>
      27             : #include <TObjString.h>
      28             : #include <TString.h>
      29             : #include <TH2.h>
      30             : 
      31             : #include "AliLog.h"
      32             : #include "AliSurveyObj.h"
      33             : #include "AliSurveyPoint.h"
      34             : 
      35             : #include "AliMUONSurveyChamber.h"
      36             : #include "AliMUONSurveyDetElem.h"
      37             : 
      38             : /// \cond CLASSIMP
      39          18 : ClassImp(AliMUONSurveyChamber)
      40             : /// \endcond
      41             : 
      42             : AliMUONSurveyChamber::AliMUONSurveyChamber(Int_t lChamberId) 
      43           0 :   : AliMUONSurveyObj() /// Constructor with chamber id
      44           0 :   , fChamberId(lChamberId)
      45           0 :   , fNDetElem(0)
      46           0 :   , fSurveyObj(0x0)
      47           0 :   , fSurveyDetElem(0x0)
      48           0 : {
      49             :   /// Constructor with the chamber id
      50           0 :   fSurveyObj = new AliSurveyObj();
      51           0 :   fSurveyDetElem = new TClonesArray("AliMUONSurveyDetElem",4);
      52           0 : }
      53             : 
      54           0 : AliMUONSurveyChamber::~AliMUONSurveyChamber() {
      55             :   /// Destructor
      56           0 :   if (fSurveyObj) delete fSurveyObj;
      57           0 :   if (fSurveyDetElem) fSurveyDetElem->Delete();
      58           0 : }
      59             : 
      60             : Int_t AliMUONSurveyChamber::AddSurveyDetElem(Int_t lDetElemId) {
      61             :   /// Add a surveyed detection element to this chamber
      62           0 :   if (!fSurveyDetElem) {
      63           0 :     fSurveyDetElem = new TClonesArray("AliMUONSurveyDetElem",4);
      64           0 :     fNDetElem=0;
      65           0 :   }
      66           0 :   new((*fSurveyDetElem)[fNDetElem++]) AliMUONSurveyDetElem(lDetElemId,this);
      67             : 
      68           0 :   return fNDetElem;
      69           0 : }
      70             : 
      71             : AliMUONSurveyDetElem* AliMUONSurveyChamber::GetDetElem(Int_t lDetElemIndex) {
      72             :   /// Return AluMUONSurveyDetElem at lDetElemIndex
      73           0 :   if (lDetElemIndex<0||(lDetElemIndex>=fNDetElem)) {
      74           0 :     return 0x0;
      75             :   }
      76             :   else {
      77           0 :     return (AliMUONSurveyDetElem*)fSurveyDetElem->At(lDetElemIndex);
      78             :   }
      79           0 : }
      80             : 
      81             : Int_t AliMUONSurveyChamber::AddStickerTargets(TObjArray *pArray, TString stBaseName, Int_t lTargetMax) {
      82             :   /// Add a maximum of lTargetMax sticker targets with stBaseName from the pArray of targets
      83           0 :   return AliMUONSurveyObj::AddStickerTargets(pArray, stBaseName, lTargetMax);
      84           0 : }
      85             : 
      86             : Int_t AliMUONSurveyChamber::AddStickerTargets(TString stBaseName, Int_t lTargetMax) {
      87             :   /// Add a maximum of lTargetMax sticker targets with stBaseName from internal SurveyObj
      88           0 :   if (!fSurveyObj || !fSurveyObj->GetData()) {
      89           0 :     AliError("Survey data is missing!");
      90           0 :     return 0;    
      91             :   }
      92           0 :   return AddStickerTargets(fSurveyObj->GetData(),stBaseName,lTargetMax);
      93           0 : }
      94             : 
      95             : Int_t AliMUONSurveyChamber::AddGButtonTargets(TObjArray *pArray, TString stBaseName, Int_t lTargetMax) {
      96             :   /// Add a maximum of lTargetMax global targets with stBaseName from the pArray of targets
      97           0 :   return AliMUONSurveyObj::AddGButtonTargets(pArray, stBaseName, lTargetMax);
      98           0 : }
      99             : 
     100             : Int_t AliMUONSurveyChamber::AddGButtonTargets(TString stBaseName, Int_t lTargetMax) {
     101             :   /// Add a maximum of lTargetMax global button targets with stBaseName from internal SurveyObj
     102           0 :   if (!fSurveyObj || !fSurveyObj->GetData()) {
     103           0 :     AliError("Survey data is missing!");
     104           0 :     return 0;    
     105             :   }
     106           0 :   return AddGButtonTargets(fSurveyObj->GetData(),stBaseName,lTargetMax);
     107           0 : }
     108             : 
     109             : void AliMUONSurveyChamber::SetLocalTransformation(TGeoCombiTrans *localTrf, Bool_t ownerLocalTrf) {
     110           0 :   AliMUONSurveyObj::SetLocalTransformation(localTrf,ownerLocalTrf);
     111           0 :   AliMUONSurveyObj::SetBaseTransformation(localTrf,ownerLocalTrf);
     112           0 : }
     113             : 
     114             : void AliMUONSurveyChamber::PrintSurveyReport() {
     115             :   /// Print the survey report information and data
     116           0 :   printf("--> %d\n", fSurveyObj->GetEntries());
     117             : 
     118           0 :   printf("Title: \"%s\"\n", fSurveyObj->GetReportTitle().Data());
     119           0 :   printf("Date: \"%s\"\n", fSurveyObj->GetReportDate().Data());
     120           0 :   printf("Detector: \"%s\"\n", fSurveyObj->GetDetector().Data());
     121           0 :   printf("URL: \"%s\"\n", fSurveyObj->GetURL().Data());
     122           0 :   printf("Number: \"%d\"\n", fSurveyObj->GetReportNumber());
     123           0 :   printf("Version: \"%d\"\n", fSurveyObj->GetReportVersion());
     124           0 :   printf("Observations: \"%s\"\n", fSurveyObj->GetObservations().Data());
     125           0 :   printf("Coordinate System: \"%s\"\n", fSurveyObj->GetCoordSys().Data());
     126           0 :   printf("Measurement Units: \"%s\"\n", fSurveyObj->GetUnits().Data());
     127           0 :   printf("Nr Columns: \"%d\"\n", fSurveyObj->GetNrColumns());
     128             : 
     129           0 :   TObjArray *colNames = fSurveyObj->GetColumnNames();
     130           0 :   for (Int_t i = 0; i < colNames->GetEntries(); ++i)
     131           0 :     printf("  Column %d --> \"%s\"\n", i, ((TObjString *) colNames->At(i))->GetString().Data());
     132             : 
     133             :   // Get Array of surveyed points
     134           0 :   printf("Points:\n");
     135           0 :   TObjArray *points = fSurveyObj->GetData();
     136             :   
     137           0 :   for (Int_t i = 0; i < points->GetEntries(); ++i)
     138           0 :     printf("  Point %d --> \"%s\"  %s \n", i, ((AliSurveyPoint *) points->At(i))->GetPointName().Data(), points->At(i)->GetName());
     139             : 
     140           0 : }
     141             : 
     142             : void AliMUONSurveyChamber::FillCPSTHistograms(TString baseNameC, TH2 *hCPSTc, TString baseNameA, TH2 *hCPSTa) {
     143             :   /// Fill Chamber Plane Sticker Targest histograms for monitoring
     144           0 :   if(baseNameC.IsNull()||!hCPSTc){
     145           0 :     AliError("Need base name for points on side C and/or a histogram for them!");
     146           0 :     return;
     147             :   }
     148           0 :   AliMUONSurveyObj::FillSTHistograms(baseNameC,hCPSTc,baseNameA,hCPSTa);
     149           0 : }
     150             : 
     151             : void AliMUONSurveyChamber::FillDESTHistograms(TString baseNameC, TH2 *hDESTc, TString baseNameA, TH2 *hDESTa) {
     152             :   /// Fill Detection Element Sticker Targest histograms for monitoring
     153           0 :   for (Int_t iDE=0; iDE<GetNDetElem(); iDE++){
     154           0 :     GetDetElem(iDE)->FillSTHistograms(baseNameC,hDESTc,baseNameA,hDESTa);
     155             :   }
     156           0 : }
     157             : 
     158             : Double_t AliMUONSurveyChamber::GetMeanDetElemAlignResX() {
     159             :   /// Return the average uncertainty of the det. elem. translations along x parameter 
     160             :   Double_t alignResX = 0.;
     161           0 :   for (int iDE=0; iDE<GetNDetElem(); iDE++){
     162           0 :     alignResX += GetDetElem(iDE)->GetAlignResX();
     163             :   }
     164           0 :   if (GetNDetElem()==0){
     165           0 :     AliError("This Chamber has 0 detection elements!");
     166           0 :     return 0.;
     167             :   }
     168           0 :   return alignResX/GetNDetElem();
     169           0 : }
     170             : 
     171             : Double_t AliMUONSurveyChamber::GetMeanDetElemAlignResY() {
     172             :   /// Return the average uncertainty of the det. elem. translations along y parameter 
     173             :   Double_t alignResY = 0.;
     174           0 :   for (int iDE=0; iDE<GetNDetElem(); iDE++){
     175           0 :     alignResY += GetDetElem(iDE)->GetAlignResY();
     176             :   }
     177           0 :   if (GetNDetElem()==0){
     178           0 :     AliError("This Chamber has 0 detection elements!");
     179           0 :     return 0.;
     180             :   }
     181           0 :   return alignResY/GetNDetElem();
     182           0 : }

Generated by: LCOV version 1.11