diff --git a/.gitignore b/.gitignore index 02099f4c25f7f88707f81163b1149db59e181505..bbe3de9c4c67b44979f235befa1e5e802522fa89 100644 --- a/.gitignore +++ b/.gitignore @@ -81,3 +81,4 @@ Session.vim # *.d +*.root \ No newline at end of file diff --git a/processors/TPlasticMappingProcessor.cc b/processors/TPlasticMappingProcessor.cc index fb27a730a5f152f2767172f496dd29fa299bc5af..f8a38db205366ae2373d7173d71931811179d90f 100644 --- a/processors/TPlasticMappingProcessor.cc +++ b/processors/TPlasticMappingProcessor.cc @@ -3,7 +3,7 @@ * @brief * * @date Created: 2013-08-12 12:45:58 - * Last Modified: 2013-09-05 16:09:08 + * Last Modified: 2013-10-07 16:43:25 * @author KAWASE Shoichiro * * Copyright (C) 2013 KAWASE Shoichiro All rights reserved. @@ -16,6 +16,7 @@ #include using art::TPlasticMappingProcessor; +using art::TTimingChargeData; // Default constructor TPlasticMappingProcessor::TPlasticMappingProcessor() @@ -28,7 +29,7 @@ TPlasticMappingProcessor::TPlasticMappingProcessor() RegisterProcessorParameter("CatID","Category ID of plastic",fCatID,21); RegisterProcessorParameter("ChargeType","0: V1190 width (default), 1: QDC (V792 etc.)", fChargeType,0); - RegisterProcessorParameter("ChargeTypeID","data type id for charge information (default: 2)", + RegisterProcessorParameter("ChargeTypeID","data type id for charge information (valid when ChargeType != 0, default: 2)", fChargeTypeID,2); RegisterProcessorParameter("TimingTypeID","data type id for timing information (default: 1)", fTimingTypeID,1); @@ -43,7 +44,7 @@ TPlasticMappingProcessor::~TPlasticMappingProcessor() { } void TPlasticMappingProcessor::Init(TEventCollection *col) { - fCategorizedData = (TCategorizedData**)col->Get(fInputColName.front())->GetObjectRef(); + fCategorizedData = reinterpret_cast(col->Get(fInputColName.front())->GetObjectRef()); fPlastic = new TClonesArray("art::TTimingChargeData"); fPlastic->SetName(fOutputColName); col->Add(fOutputColName,fPlastic,fOutputIsTransparent); @@ -53,6 +54,8 @@ void TPlasticMappingProcessor::Process() { fPlastic->Clear("C"); + if (!fCategorizedData) return; + TObjArray *cat = (*fCategorizedData)->FindCategory(fCatID); if (!cat) return; @@ -63,18 +66,19 @@ void TPlasticMappingProcessor::Process() { TRefArray *qArray = NULL; for(Int_t i = 0 ; i != n ; ++i){ - det = (TObjArray*)cat->At(i); + det = static_cast(cat->At(i)); + // Int_t did = det->GetUniqueID(); // cout << "did = " << did << endl; // cout << det->GetEntriesFast() << endl; - tArray = (TRefArray*)det->At(fTimingTypeID); + tArray = static_cast(det->At(fTimingTypeID)); if (!tArray){ continue; } if (fChargeType == kWIDTH) { MapEdgedTime(tArray); } else /* if (fChargeType == kQDC) */ { - qArray = (TRefArray*)det->At(fChargeTypeID); + qArray = static_cast(det->At(fChargeTypeID)); MapTimeCharge(tArray,qArray); } @@ -92,19 +96,15 @@ void TPlasticMappingProcessor::MapEdgedTime(TRefArray *tArray) TRawTimingWithEdge *hit = NULL; Bool_t isLeading = kFALSE; Int_t nHit = tArray->GetLast() + 1; -// cout << "nHit = " << nHit << endl; - -// printf("MapEdgedTime()\n"); for(Int_t iHit = 0; iHit != nHit; ++iHit) { - hit = (TRawTimingWithEdge*) tArray->At(iHit); + hit = static_cast(tArray->At(iHit)); if (!hit) continue; isLeading = (hit->IsLeading() != fTrailingComesFirst); if(isLeading) { -// printf("IsLeading\n"); // "Leading" edge data = static_cast(fPlastic->ConstructedAt(fPlastic->GetEntriesFast())); if (!data) { @@ -135,16 +135,16 @@ void TPlasticMappingProcessor::MapTimeCharge(TRefArray *tArray, TRefArray *qArra TRawTiming *tHit = NULL; TRawTiming *qHit = NULL; - tHit = (TRawTiming*) tArray->At(0); + tHit = static_cast(tArray->At(0)); if (!tHit) { return; } data = static_cast(fPlastic->ConstructedAt(fPlastic->GetEntriesFast())); data->SetTiming(tHit->GetTiming()); data->SetDetID(tHit->GetDetID()); - if(!qArray || qArray->GetLast() != 0) return; + if(!qArray || qArray->GetLast()) return; - qHit = (TRawTiming*) qArray->At(0); + qHit = static_cast(qArray->At(0)); data->SetCharge(qHit->GetTiming()); diff --git a/processors/TPlasticMappingProcessor.h b/processors/TPlasticMappingProcessor.h index f5eefede6fb56f2a279351b4cfb750f3f16993ad..bb8f322e9213622dae835186ec9e8f431b4ed0d3 100644 --- a/processors/TPlasticMappingProcessor.h +++ b/processors/TPlasticMappingProcessor.h @@ -3,7 +3,7 @@ * @brief * * @date Created: 2013-08-12 12:36:40 - * Last Modified: 2013-09-05 13:44:25 + * Last Modified: 2013-10-07 16:04:11 * @author KAWASE Shoichiro * * Copyright (C) 2013 KAWASE Shoichiro All rights reserved @@ -22,6 +22,8 @@ namespace art{ class TClonesArray; class TRefArray; +using art::TProcessor; + class art::TPlasticMappingProcessor : public TProcessor { public: diff --git a/processors/TTimingChargeData.cc b/processors/TTimingChargeData.cc index 932c01abc7f730c56e1b5828bfa52682abe428e4..98e2181dc8aec07e26a86419eaed1445f90814f8 100644 --- a/processors/TTimingChargeData.cc +++ b/processors/TTimingChargeData.cc @@ -3,7 +3,7 @@ * @brief * * @date Created: 2013-08-14 10:34:09 - * Last Modified: 2013-08-21 11:26:15 + * Last Modified: 2013-10-07 16:56:39 * @author KAWASE Shoichiro * * Copyright (C) 2013 KAWASE Shoichiro All rights reserved. @@ -11,15 +11,16 @@ #include "TTimingChargeData.h" -#include "TMath.h" +using art::TTimingChargeData; -ClassImp(art::TTimingChargeData); +ClassImp(art::TTimingChargeData) -using art::TTimingChargeData; +Int_t TTimingChargeData::fSortType = TTimingChargeData::kID; +Int_t TTimingChargeData::fSortOrder = TTimingChargeData::kDESC; // Default constructor TTimingChargeData::TTimingChargeData() - : fTiming(TMath::QuietNaN()), fCharge(TMath::QuietNaN()) { + : fTiming(-10000), fCharge(-10000), fDetectorID(-1) { } // Default destructor @@ -31,6 +32,7 @@ TTimingChargeData::TTimingChargeData(const TTimingChargeData& rhs) : TObject(rhs) { fTiming = rhs.fTiming; fCharge = rhs.fCharge; + fDetectorID = rhs.fDetectorID; } // Assignment operator @@ -39,7 +41,14 @@ TTimingChargeData& TTimingChargeData::operator=(const TTimingChargeData& rhs) { ((TTimingChargeData&)rhs).Copy(*this); } return *this; - } +} + +void TTimingChargeData::Clear(Option_t *opt="") { + TObject::Clear(opt); + fTiming = -10000; + fCharge = -10000; + fDetectorID = -1; +} Int_t TTimingChargeData::Compare(const TObject *obj) const{ @@ -81,6 +90,3 @@ Int_t TTimingChargeData::Compare(const TObject *obj) const{ return 0; } - -Int_t TTimingChargeData::fSortType = TTimingChargeData::kID; -Int_t TTimingChargeData::fSortOrder = TTimingChargeData::kDESC; diff --git a/processors/TTimingChargeData.h b/processors/TTimingChargeData.h index 201403dd6b5d046cf8a22ce75a3b9002ccf2b39d..9b204289d8b3dbc52f7d7bbc72068bf7f3e8776c 100644 --- a/processors/TTimingChargeData.h +++ b/processors/TTimingChargeData.h @@ -3,7 +3,7 @@ * @brief * * @date Created: 2013-08-14 10:19:28 - * Last Modified: 2013-08-21 11:53:01 + * Last Modified: 2013-10-07 16:44:37 * @author KAWASE Shoichiro * * Copyright (C) 2013 KAWASE Shoichiro All rights reserved @@ -15,8 +15,10 @@ #include namespace art{ + class TTimingChargeData; +} -class TTimingChargeData : public TObject { +class art::TTimingChargeData : public TObject { public: typedef enum {kID, kCharge, kTime} ETimingChargeSortType; //! typedef enum {kASC, kDESC} ESortOrder; //! @@ -54,6 +56,8 @@ public: cobj.fDetectorID = fDetectorID; } + virtual void Clear(Option_t *opt); + protected: Double_t fTiming; Double_t fCharge; @@ -61,8 +65,7 @@ protected: static Int_t fSortType; //! static Int_t fSortOrder; //! - ClassDef(TTimingChargeData,1); + ClassDef(TTimingChargeData,1) }; -} #endif // TTIMINGCHARGEDATA_H diff --git a/processors/linkdef_user.h b/processors/linkdef_user.h index 366ccd17f43436473c04559a8ad0b38f806934b4..276fb640d05640854db07f71d5104c72391747f1 100644 --- a/processors/linkdef_user.h +++ b/processors/linkdef_user.h @@ -3,7 +3,7 @@ * @brief * * @date Created: 2013-08-12 14:48:07 - * Last Modified: 2013-09-05 13:45:06 + * Last Modified: 2013-10-07 16:21:58 * @author KAWASE Shoichiro * * Copyright (C) 2013 KAWASE Shoichiro All rights reserved @@ -18,9 +18,8 @@ #pragma link off all classes; #pragma link off all functions; -#pragma link C++ class art::TPlasticMappingProcessor-; #pragma link C++ class art::TTimingChargeData+; - +#pragma link C++ class art::TPlasticMappingProcessor-!; #endif // __CINT__