diff --git a/src/TTimingChargePositionMappingProcessor.cc b/src/TTimingChargePositionMappingProcessor.cc new file mode 100644 index 0000000000000000000000000000000000000000..d7c0ec790b8ef47f22b9f8c0563bddca49e72651 --- /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 0000000000000000000000000000000000000000..4d209d7607009bd864050a37e6e54d1dd57aa028 --- /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 0000000000000000000000000000000000000000..a1ffed81d368f0180b06527669167465be1a9996 --- /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 0000000000000000000000000000000000000000..d5c2407883302a9879b22904ef89358ba53ff66a --- /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 2685e9ec1eefa281917d17bcd7056aa2c2a064f8..6e62daa7c0b7005b7d63671187b21b9925562000 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 229bf6536cd81961c144959c9251e42f5b4eec6d..444825cd4502597e965ec494fee27b96bbb4745c 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