<commit_before>/* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
 * See cxx source for full Copyright notice                               */

// $Id$

/// \ingroup geometry
/// \class AliMUONSegmentation
/// \brief Container class for modules segmentations
///
/// It provides access to segmentations on all levels:
/// - mapping segmentation
/// - DE segmentation (operating in local DE reference frame)
/// - module segmentation (operating in global reference frame)
/// As some detection element are sharing the same objects
/// (AliMpVSegmentation, AliMUONVGeometryDESegmentation),
/// all segmentations objects have to be always deleted
/// altogether via deleting this container object. 
/// 
/// Author: <NAME>, <NAME>

#ifndef ALI_MUON_SEGMENTATION_H
#define ALI_MUON_SEGMENTATION_H

#include <TObject.h>
#include <TGeoMatrix.h>

class TObjArray;

class AliMpVSegmentation;

class AliMUONGeometrySegmentation;
class AliMUONVGeometryDESegmentation;

class AliMUONSegmentation : public TObject
{
  public:
    AliMUONSegmentation(Int_t nofModules);
    AliMUONSegmentation();
    virtual  ~AliMUONSegmentation();
    
    // methods
    void  AddMpSegmentation(AliMpVSegmentation* segmentation);
    void  AddDESegmentation(AliMUONVGeometryDESegmentation* segmentation);

    void  AddModuleSegmentation(Int_t moduleId, Int_t cathod,
                            AliMUONGeometrySegmentation* segmentation);
    void  Init();
            // This function should not be needed;
	    // the segmentations should be built in a valid state
	    // To be revised			    

    //
    // get methods
    //
    
    // Geometry segmentations
    //
    AliMUONGeometrySegmentation* GetModuleSegmentation(
                     Int_t moduleId, Int_t cathod, Bool_t warn = true) const;

    AliMUONGeometrySegmentation* GetModuleSegmentationByDEId(
                     Int_t detElemId, Int_t cathod, Bool_t warn = true) const;

    // DE segmentations
    //
    const AliMUONVGeometryDESegmentation* GetDESegmentation(
                     Int_t detElemId, Int_t cathod, Bool_t warn = true) const;

    // Mapping segmentations
    //
    const AliMpVSegmentation* GetMpSegmentation(
                     Int_t detElemId, Int_t cathod, Bool_t warn = true) const;
		     
    // DE properties
    //
    Bool_t   HasDE(Int_t detElemId, Int_t cathod = 0) const;
    TString  GetDEName(Int_t detElemId, Int_t cathod = 0) const;

  protected:
    AliMUONSegmentation(const AliMUONSegmentation& right);
    AliMUONSegmentation&  operator = (const AliMUONSegmentation& right);
 
  private:
    // data members
    TObjArray*  fMpSegmentations;        // array of mapping segmentations
    TObjArray*  fDESegmentations;        // array of DE segmentations
    TObjArray*  fModuleSegmentations[2]; // array of module segmentations
                                         // for two cathods         

  ClassDef(AliMUONSegmentation,1)  // Container class for module segmentations
};

#endif //ALI_MUON_SEGMENTATION_H


<commit_msg>Incrementing class version<commit_after>/* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
 * See cxx source for full Copyright notice                               */

// $Id$

/// \ingroup geometry
/// \class AliMUONSegmentation
/// \brief Container class for modules segmentations
///
/// It provides access to segmentations on all levels:
/// - mapping segmentation
/// - DE segmentation (operating in local DE reference frame)
/// - module segmentation (operating in global reference frame)
/// As some detection element are sharing the same objects
/// (AliMpVSegmentation, AliMUONVGeometryDESegmentation),
/// all segmentations objects have to be always deleted
/// altogether via deleting this container object. 
/// 
/// Author: <NAME>, <NAME>

#ifndef ALI_MUON_SEGMENTATION_H
#define ALI_MUON_SEGMENTATION_H

#include <TObject.h>
#include <TGeoMatrix.h>

class TObjArray;

class AliMpVSegmentation;

class AliMUONGeometrySegmentation;
class AliMUONVGeometryDESegmentation;

class AliMUONSegmentation : public TObject
{
  public:
    AliMUONSegmentation(Int_t nofModules);
    AliMUONSegmentation();
    virtual  ~AliMUONSegmentation();
    
    // methods
    void  AddMpSegmentation(AliMpVSegmentation* segmentation);
    void  AddDESegmentation(AliMUONVGeometryDESegmentation* segmentation);

    void  AddModuleSegmentation(Int_t moduleId, Int_t cathod,
                            AliMUONGeometrySegmentation* segmentation);
    void  Init();
            // This function should not be needed;
	    // the segmentations should be built in a valid state
	    // To be revised			    

    //
    // get methods
    //
    
    // Geometry segmentations
    //
    AliMUONGeometrySegmentation* GetModuleSegmentation(
                     Int_t moduleId, Int_t cathod, Bool_t warn = true) const;

    AliMUONGeometrySegmentation* GetModuleSegmentationByDEId(
                     Int_t detElemId, Int_t cathod, Bool_t warn = true) const;

    // DE segmentations
    //
    const AliMUONVGeometryDESegmentation* GetDESegmentation(
                     Int_t detElemId, Int_t cathod, Bool_t warn = true) const;

    // Mapping segmentations
    //
    const AliMpVSegmentation* GetMpSegmentation(
                     Int_t detElemId, Int_t cathod, Bool_t warn = true) const;
		     
    // DE properties
    //
    Bool_t   HasDE(Int_t detElemId, Int_t cathod = 0) const;
    TString  GetDEName(Int_t detElemId, Int_t cathod = 0) const;

  protected:
    AliMUONSegmentation(const AliMUONSegmentation& right);
    AliMUONSegmentation&  operator = (const AliMUONSegmentation& right);
 
  private:
    // data members
    TObjArray*  fMpSegmentations;        // array of mapping segmentations
    TObjArray*  fDESegmentations;        // array of DE segmentations
    TObjArray*  fModuleSegmentations[2]; // array of module segmentations
                                         // for two cathods         

  ClassDef(AliMUONSegmentation,2)  // Container class for module segmentations
};

#endif //ALI_MUON_SEGMENTATION_H



{'fraction_non_alphanumeric': 0.07733901359986892, 'fraction_numerical': 0.0039324922169424875, 'mean_word_length': 2.706132361870067, 'pattern_counts': {'":': 0, '<': 11, '<?xml version=': 0, '>': 11, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 4, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '6480364', 'n_tokens_mistral': 1877, 'n_tokens_neox': 1731, 'n_words': 498}