From f4a47febfbfc5288f9ffe301eb949177297a2b3a Mon Sep 17 00:00:00 2001 From: Shinsuke OTA Date: Thu, 16 May 2019 23:45:59 +0900 Subject: [PATCH] [add] processor and container to store position of detector --- src/TTimingChargePositionMappingProcessor.cc | 55 ++++++++++++++++++++ src/TTimingChargePositionMappingProcessor.h | 37 +++++++++++++ src/cont/TTimingChargePositionData.cc | 25 +++++++++ src/cont/TTimingChargePositionData.h | 48 +++++++++++++++++ src/linkdef_user.h | 2 + src/makefile | 3 +- 6 files changed, 169 insertions(+), 1 deletion(-) create mode 100644 src/TTimingChargePositionMappingProcessor.cc create mode 100644 src/TTimingChargePositionMappingProcessor.h create mode 100644 src/cont/TTimingChargePositionData.cc create mode 100644 src/cont/TTimingChargePositionData.h diff --git a/src/TTimingChargePositionMappingProcessor.cc b/src/TTimingChargePositionMappingProcessor.cc new file mode 100644 index 0000000..d7c0ec7 --- /dev/null +++ b/src/TTimingChargePositionMappingProcessor.cc @@ -0,0 +1,55 @@ +/* @file TTimingChargePositionMappingProcessor.cc + * @brief timing charge and position mapping + * + * @date Create : 2019-05-15 15:56:25 JST + * Last Modified : 2019-05-15 11:38:43 JST (ota) + * @author: Shinsuke OTA + */ + + +#include "TTimingChargePositionMappingProcessor.h" + +#include "TTimingChargePositionData.h" +#include "TClonesArray.h" +#include "TDetectorGeometryInfo.h" + +ClassImp(art::TTimingChargePositionMappingProcessor) + +using art::TTimingChargePositionMappingProcessor; + +TTimingChargePositionMappingProcessor::TTimingChargePositionMappingProcessor() + : TTimingChargeMappingProcessor(), fPosition(NULL) +{ + OverrideOutputCollection("OutputCollection","name of output collection", + fOutputColName,TString("output"), + &fPlastic, TClonesArray::Class_Name(), TTimingChargePositionData::Class_Name()); + + RegisterInputInfo("PositionInfo","information of position", + fPositionInfoName,TString("glastPos"), + &fPosition,TObjArray::Class_Name()); + +} + +TTimingChargePositionMappingProcessor::~TTimingChargePositionMappingProcessor() +{ +} + +void TTimingChargePositionMappingProcessor::Process() +{ + TTimingChargeMappingProcessor::Process(); +// printf("fPosition = %p #hits = %d\n",fPosition,fPlastic->GetEntriesFast()); + + for (Int_t i = 0, n = (fPlastic->GetEntriesFast()); i < n; ++i) { + TTimingChargePositionData *pos = static_cast (fPlastic->UncheckedAt(i)); + const int id = pos->GetID(); + TDetectorGeometryInfo *posInfo = static_cast((*fPosition)->At(id)); +// printf("posInfo %p\n",posInfo); + + posInfo->IPosition::Copy(*pos); + } +} + + + + + diff --git a/src/TTimingChargePositionMappingProcessor.h b/src/TTimingChargePositionMappingProcessor.h new file mode 100644 index 0000000..4d209d7 --- /dev/null +++ b/src/TTimingChargePositionMappingProcessor.h @@ -0,0 +1,37 @@ +/* @file TTimingChargePositionMappingProcessor.h + * @brief mapping timing, charge and position + * + * @date Create : 2019-05-15 11:39:04 JST + * Last Modified : 2019-05-15 13:26:50 JST (ota) + * @author: Shinsuke OTA + */ + + +#ifndef INCLUDE_GUARD_UUID_C6858596_6798_42C2_95BE_2E1219DBA8D1 +#define INCLUDE_GUARD_UUID_C6858596_6798_42C2_95BE_2E1219DBA8D1 + +#include "TTimingChargeMappingProcessor.h" + +namespace art { + class TTimingChargePositionMappingProcessor; +} + +class TObjArray; + +class art::TTimingChargePositionMappingProcessor : public TTimingChargeMappingProcessor { +public: + TTimingChargePositionMappingProcessor(); + virtual ~TTimingChargePositionMappingProcessor(); + + virtual void Process(); + +protected: + TString fPositionInfoName; + TObjArray **fPosition; + + + ClassDef(TTimingChargePositionMappingProcessor,1) + +}; // end of TTimingChargePositionMappingProcessor + +#endif // #ifndef INCLUDE_GUARD_UUID_C6858596_6798_42C2_95BE_2E1219DBA8D1} diff --git a/src/cont/TTimingChargePositionData.cc b/src/cont/TTimingChargePositionData.cc new file mode 100644 index 0000000..a1ffed8 --- /dev/null +++ b/src/cont/TTimingChargePositionData.cc @@ -0,0 +1,25 @@ +/* @file TTimingChargePositionData.cc + * @brief timing charge and position data + * + * @date Create : 2019-05-15 11:29:53 JST + * Last Modified : 2019-05-15 11:35:40 JST (ota) + * @author: Shinsuke OTA + */ + + +#include "TTimingChargePositionData.h" + +ClassImp(art::TTimingChargePositionData) + +using art::TTimingChargePositionData; + +TTimingChargePositionData::TTimingChargePositionData() +{ + +} + +TTimingChargePositionData::~TTimingChargePositionData() +{ + +} + diff --git a/src/cont/TTimingChargePositionData.h b/src/cont/TTimingChargePositionData.h new file mode 100644 index 0000000..d5c2407 --- /dev/null +++ b/src/cont/TTimingChargePositionData.h @@ -0,0 +1,48 @@ +/* @file TTimingChargePositionData.h + * @brief container for timing, charge and position data + * + * @date Create : 2019-05-15 11:22:22 JST + * Last Modified : 2019-05-15 11:32:01 JST (ota) + * @author: Shinsuke OTA + */ + + +#ifndef INCLUDE_GUARD_UUID_6A41918E_20CB_4C54_9E29_123E4CED940C +#define INCLUDE_GUARD_UUID_6A41918E_20CB_4C54_9E29_123E4CED940C + +#include "TTimingChargeData.h" +#include "IPosition.h" + + +namespace art { + class TTimingChargePositionData; +} + +class art::TTimingChargePositionData : public TTimingChargeData, public IPosition { +public: + TTimingChargePositionData(); + virtual ~TTimingChargePositionData(); + virtual void Copy(TObject& dest) const { + TTimingChargeData::Copy(dest); + TTimingChargePositionData *obj = static_cast(&dest); + obj->SetXYZ(X(),Y(),Z()); + } + + virtual void SetX(double x) { fX = x; } + virtual void SetY(double y) { fY = y; } + virtual void SetZ(double z) { fZ = z; } + + virtual double X() const { return fX; } + virtual double Y() const { return fY; } + virtual double Z() const { return fZ; } + +protected: + double fX; + double fY; + double fZ; + + + ClassDef(TTimingChargePositionData, 1) +}; // end of TTimingChargePositionData + +#endif // #ifndef INCLUDE_GUARD_UUID_6A41918E_20CB_4C54_9E29_123E4CED940C} diff --git a/src/linkdef_user.h b/src/linkdef_user.h index 2685e9e..6e62daa 100644 --- a/src/linkdef_user.h +++ b/src/linkdef_user.h @@ -41,6 +41,8 @@ #pragma link C++ class art::TCatGausSampleProcessor+; #pragma link C++ class art::TTimingChargeData+; #pragma link C++ class art::TTimingChargeMappingProcessor; +#pragma link C++ class art::TTimingChargePositionData+; +#pragma link C++ class art::TTimingChargePositionMappingProcessor; #pragma link C++ class art::TTwoSidedPlasticData+; #pragma link C++ class art::TTwoSidedPlasticCalibrationProcessor; #pragma link C++ class art::TConverterBase+; diff --git a/src/makefile b/src/makefile index 229bf65..444825c 100644 --- a/src/makefile +++ b/src/makefile @@ -40,6 +40,7 @@ OBJ+= TGenericData.o OBJ+= TTimingData.o OBJ+= TChargeData.o OBJ+= TTimingChargeData.o +OBJ+= TTimingChargePositionData.o OBJ+= TCatFadcRawData.o OBJ+= TCatScalerData.o #OBJ+= TCatPulseShape.o @@ -98,6 +99,7 @@ OBJ += TGMWDCCalibration.o OBJ += TGMWDCConfig.o # others OBJ += TTimingChargeMappingProcessor.o +OBJ += TTimingChargePositionMappingProcessor.o OBJ += TTimeReferenceProcessor.o OBJ += TCoinRegMappingProcessor.o OBJ += TCatRecoilFinder.o @@ -135,7 +137,6 @@ OBJ += TCmdMWDCCalib.o OBJ += TCmdMWDCConfig.o OBJ += TCmdFiga.o - # check architecture #include $(ROOTSYS)/etc/root/Makefile.arch -- GitLab